Compartir tecnología

[Motor de visualización de código abierto nacional Meta2d.js] Arrastrar y soltar

2024-07-12

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

Meta2d.js ha escuchado eventos de arrastre, admite la recepción de datos Json primitivos válidos y crea un objeto primitivo en el lienzo.

Arrastrar y soltar la biblioteca de gráficos

1. Cree una barra de herramientas de biblioteca de gráficos.

Cree un elemento html de la barra de herramientas de la biblioteca de gráficos y vincule un evento de arrastre o un evento táctil

  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>

Copiar

2. Transferir datos

  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. };

Copiar

Arrastra y suelta imágenes del escritorio

Método 1: cargar URL

Configuración de front-end: meta2d.store.options.uploadUrl.

Configuración de fondo:

  1. El nombre del atributo del archivo formData aceptado debe ser file
  2. En la respuesta devuelta por el backend, el atributo de primer nivel debe contener la URL como dirección de vista previa de la imagen.
  1. new Meta2d("meta2d", {
  2. uploadUrl: "/api/image",
  3. uploadHeaders: {
  4. token: "xxx"
  5. },
  6. uploadParams: {
  7. // 参数
  8. public: true,
  9. },
  10. });

Copiar

Método 2: cargarFn

Configure meta2d.store.options.uploadFn. Este método es una función de devolución de llamada y el parámetro es un archivo, es decir, un archivo de imagen. Después de cargarlo en el backend, se debe devolver la URL accesible de la imagen.

uploadFn convierte imágenes a base64 de forma predeterminada, lo que hace que el archivo json descargado sea grande y no se pueda reutilizar después de copiar la imagen.Se recomienda pasar la imagen al backend y usar la URL para acceder a la imagen.

  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. });

Copiar

Código abierto nacional

LeWule se dedica a la investigación y el desarrollo, es independiente y controlable, y continúa iterando y optimizando.

Github:GitHub - le5le-com/meta2d.js: meta2d.js es un motor web 2D interactivo y de intercambio de datos en tiempo real. Los desarrolladores pueden crear SCADA web, IoT, gemelos digitales, etc. Intercambio de datos y motor 2D interactivo, que se puede utilizar en configuración web, Internet de las cosas, gemelos digitales y otros escenarios.

Casa rural: meta2d.js: meta2d.js es un motor web 2D interactivo y de intercambio de datos en tiempo real. Los desarrolladores pueden crear SCADA web, IoT, gemelos digitales, etc. Se puede utilizar en configuración web, Internet de las cosas y gemelos digitales. y otros escenarios.

Bienvenido soporte de Star, Fork y blog