Berbagi teknologi

[Mesin visualisasi sumber terbuka domestik Meta2d.js] Seret dan lepas

2024-07-12

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

Meta2d.js telah mendengarkan peristiwa drag, mendukung penerimaan data Json primitif yang valid, dan membuat objek primitif di kanvas.

Seret dan lepas perpustakaan grafis

1. Buat toolbar perpustakaan grafis

Buat elemen html bilah alat perpustakaan grafis dan ikat acara seret atau acara sentuh

  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>

Menyalin

2. Mentransfer data

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

Menyalin

Seret dan lepas gambar desktop

Metode 1: unggahUrl

Konfigurasi front-end: meta2d.store.options.uploadUrl.

Konfigurasi ujung belakang:

  1. Nama atribut file formData yang diterima harus berupa file
  2. Dalam respons yang dikembalikan oleh backend, atribut tingkat pertama harus berisi url sebagai alamat pratinjau gambar.
  1. new Meta2d("meta2d", {
  2. uploadUrl: "/api/image",
  3. uploadHeaders: {
  4. token: "xxx"
  5. },
  6. uploadParams: {
  7. // 参数
  8. public: true,
  9. },
  10. });

Menyalin

Metode 2: unggahFn

Konfigurasikan meta2d.store.options.uploadFn. Metode ini adalah fungsi panggilan balik, dan parameternya adalah file, yaitu file gambar. Setelah diunggah ke backend, URL gambar yang dapat diakses perlu dikembalikan.

uploadFn mengonversi gambar ke base64 secara default, yang menyebabkan file json yang diunduh berukuran besar dan tidak dapat digunakan kembali setelah menyalin gambar.Disarankan untuk meneruskan gambar ke backend dan menggunakan url untuk mengakses gambar

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

Menyalin

Sumber terbuka domestik

LeWule mengabdikan dirinya pada penelitian dan pengembangan, independen dan terkendali, serta terus melakukan iterasi dan optimalisasi.

Github:GitHub - le5le-com/meta2d.js: Meta2d.js adalah pertukaran data real-time dan mesin 2D web interaktif. Pengembang dapat membangun Web SCADA, IoT, Digital twins, dan sebagainya pertukaran data dan mesin 2D interaktif, yang dapat digunakan dalam konfigurasi Web, Internet of Things, digital twins dan skenario lainnya.

Gitee: meta2d.js: Meta2d.js adalah pertukaran data real-time dan mesin 2D web interaktif. Pengembang dapat membangun Web SCADA, IoT, Digital twins, dan sebagainya . Ini dapat digunakan dalam konfigurasi Web, Internet of Things, digital twins, dan skenario lainnya.

Selamat datang Star, Fork, dan dukungan blog