Compartilhamento de tecnologia

[Mecanismo de visualização de código aberto doméstico Meta2d.js] Arrastar e soltar

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

Meta2d.js ouviu eventos de arrastar, suporta o recebimento de dados Json primitivos válidos e cria um objeto primitivo na tela.

Arrastar e soltar da biblioteca gráfica

1. Crie uma barra de ferramentas da biblioteca gráfica

Criar elemento html da barra de ferramentas da biblioteca gráfica e vincular evento de arrastar ou evento de toque

  1. <div v-for="item in list" draggable="true"
  2. ondragstart="onDragstart($event, item.data)"
  3. onclick="onTouchstart($event, item.data)"
  4. ontouchstart="onTouchstart($event, item.data)">
  5. <img :src="item.svg" />
  6. </div>

cópia de

2. Transferir dados

  1. // 示例pen
  2. const pen = {
  3. name: "rectangle",
  4. text: "矩形",
  5. width: 100,
  6. height: 100,
  7. };
  8. // 拖拽添加图元
  9. onDragstart = (e, pen) => {
  10. e.dataTransfer.setData("Text", JSON.stringify(pen));
  11. };
  12. // 支持单击添加图元
  13. import { deepClone } from "@meta2d/core";
  14. onTouchstart = (e, pen) => {
  15. meta2d.canvas.addCaches = deepClone([pen]);
  16. };

cópia de

Arraste e solte imagens da área de trabalho

Método 1: uploadUrl

Configuração de front-end: meta2d.store.options.uploadUrl.

Configuração de back-end:

  1. O nome do atributo do arquivo formData aceito deve ser file
  2. Na resposta retornada pelo backend, o atributo de primeiro nível deve conter url como endereço de visualização da imagem.
  1. new Meta2d("meta2d", {
  2. uploadUrl: "/api/image",
  3. uploadHeaders: {
  4. token: "xxx"
  5. },
  6. uploadParams: {
  7. // 参数
  8. public: true,
  9. },
  10. });

cópia de

Método 2: uploadFn

Configure meta2d.store.options.uploadFn. Este método é uma função de retorno de chamada e o parâmetro é um arquivo, ou seja, um arquivo de imagem. Após o upload para o backend, o URL acessível da imagem precisa ser retornado.

uploadFn converte imagens em base64 por padrão, o que faz com que o arquivo json baixado seja grande e não possa ser reutilizado após a cópia da imagem.Recomenda-se passar a imagem para o backend e usar a url para acessar a imagem

  1. new Meta2d("meta2d", {
  2. uploadFn: async (file: File) => {
  3. // 伪代码,复制后根据实际情况使用
  4. const formData = new FormData();
  5. formData.append("file", file);
  6. const res = await axios.post(url, file);
  7. return res.url;
  8. },
  9. });

cópia de

Código aberto doméstico

LeWule se dedica à pesquisa e desenvolvimento, é independente e controlável e continua a iterar e otimizar.

Github:GitHub - le5le-com/meta2d.js: O meta2d.js é uma troca de dados em tempo real e um mecanismo 2D interativo da web. Os desenvolvedores são capazes de construir Web SCADA, IoT, gêmeos digitais e assim por diante. troca de dados e mecanismo 2D interativo, que pode ser usado em configuração Web, Internet das Coisas, gêmeos digitais e outros cenários.

Turismo rural: meta2d.js: O meta2d.js é uma troca de dados em tempo real e um mecanismo 2D interativo da web. Os desenvolvedores são capazes de construir Web SCADA, IoT, gêmeos digitais e assim por diante. e outros cenários.

Bem-vindo Star, Fork e suporte do blog