123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081 |
- <template>
- <div class="preview">
- <div class="meta2d-canvas" ref="meta2dDom"></div>
- </div>
- </template>
- <script setup lang="ts">
- import { ref, onMounted, watch, onUnmounted } from "vue";
- import localforage from "localforage";
- import { localMeta2dDataName } from "@/services/utils";
- import { registerNormalShape } from "../components/register";
- import { defaultFormat } from "@/services/defaults";
- import { useRouter, useRoute } from "vue-router";
- import { Meta2d, Options, Pen } from "@meta2d/core";
- import { registerBasicDiagram } from "@/services/register";
- import { cdn } from "@/services/api";
- const route = useRoute();
- const meta2dDom = ref("");
- const meta2dOptions: Options = {
- cdn,
- // rule: true,
- background: "#1e2430",
- x: 10,
- y: 10,
- width: 1920,
- height: 1080,
- // defaultFormat: { ...defaultFormat },
- };
- onMounted(() => {
- meta2d = new Meta2d(meta2dDom.value, meta2dOptions);
- registerBasicDiagram();
- open();
- meta2d.on("opened", opened);
- });
- const watcher = watch(
- () => route.query.id,
- async () => {
- open();
- }
- );
- const open = async () => {
- if (route.query.id) {
- const ret: any = getLe5le2d(route.query.id + "");
- ret && meta2d.open(ret);
- } else {
- const data: any = JSON.parse(
- await localforage.getItem(localMeta2dDataName)
- );
- data&&meta2d.open(data);
- }
- };
- const opened = () => {
- meta2d.fitSizeView(true, 10);
- };
- onUnmounted(() => {
- watcher();
- if (meta2d) {
- meta2d.off("opened", opened);
- meta2d.destroy();
- }
- });
- </script>
- <style lang="postcss" scoped>
- .preview {
- width: 100vw;
- height: 100vh;
- background-color: var(--color-background-editor);
- .meta2d-canvas {
- width: 100%;
- height: 100%;
- }
- }
- </style>
|