<template>
  <!-- <vueImg /> -->
  <div class="w-1/1 h-100vh">
    <mt-edit
      :use-thumbnail="true"
      @on-preview-click="onPreviewClick"
      @on-return-click="onReturnClick"
      @on-save-click="onSaveClick"
      @on-thumbnail-click="onThumbnailClick"
    ></mt-edit>
  </div>
</template>

<script setup lang="ts">
import type { IExportJson } from '@/views/teacher/teacherStatistics/components/mt-edit/components/types';
import { useGenThumbnail } from '@/views/teacher/teacherStatistics/components/mt-edit/composables/thumbnail';
import MtEdit from '@/views/teacher/teacherStatistics/components/mt-edit';
import { getCurrentInstance, onBeforeUnmount } from 'vue';
import { leftAsideStore } from '@/views/teacher/teacherStatistics/components/mt-edit/store/left-aside';

// xq 组件
import vueSignalGaudy from '@/views/teacher/teacherStatistics/components/vue-xq-test/vue-signal-gaudy.vue';
import VueImg from '@/views/teacher/teacherStatistics/components/vue-xq-test/vue-img.vue';
// F:\vue\workspace\Real-time-monitoring-frontend\src\views\teacher\teacherStatistics\components\vue-xq-test\vue-camera.vue
import VueCamera from '@/views/teacher/teacherStatistics/components/vue-xq-test/vue-camera.vue';

const instance = getCurrentInstance();
instance?.appContext.app.component('vue-my-signal-gaudy', vueSignalGaudy);
instance?.appContext.app.component('vue-my-img', VueImg);
instance?.appContext.app.component('vue-my-camera', VueCamera);

leftAsideStore.registerConfig('工作组件', [
  {
    id: 'vue-my-signal-gaudy',
    title: 'vue遥信02',
    type: 'vue',
    thumbnail: `${import.meta.env.BASE_URL}svgs/signal-gaudy.svg`,
    // thumbnail:"/svgs/signal-gaudy.svg",
    props: {
      moduleType: {
        type: 'inputTypeTag',
        val: '遥信',
        title: '四遥类型'
      },
      moduleId: {
        type: 'inputSelectId',
        val: '',
        title: '绑定ID'
      },
      location: {
        type: 'select',
        val: 'bottom',
        title: '名称位置',
        options: [
          {
            value: 'top',
            label: '上'
          },
          {
            value: 'bottom',
            label: '下'
          },
          {
            value: 'left',
            label: '左'
          },
          {
            value: 'right',
            label: '右'
          }
        ]
      }
    }
  },
  {
    id: 'vue-my-img',
    title: '图形组件',
    type: 'vue',
    thumbnail: '/svgs/image.svg',
    props: {
      moduleId: {
        type: 'upload',
        val: '--',
        title: '绑定'
      }
    }
  },
  {
    id: 'vue-my-camera',
    title: '监控组件',
    type: 'vue',
    thumbnail: '/svgs/image.svg',
    props: {
      moduleId: {
        type: 'upload',
        val: '--',
        title: '绑定'
      }
    }
  }
]);

const electrical_modules_files = import.meta.glob('./assets/svgs/electrical/**.svg', {
  eager: true,
  as: 'raw'
});
const electrical_stroke_modules_files = import.meta.glob('./assets/svgs/electrical/stroke/**.svg', {
  eager: true,
  as: 'raw'
});
const electrical_register_config: any = [];
for (const key in electrical_modules_files) {
  //根据路径获取svg文件名
  const name = key.split('/').pop()!.split('.')[0];
  electrical_register_config.push({
    id: name,
    title: name,
    type: 'svg',
    thumbnail: 'data:image/svg+xml;utf8,' + encodeURIComponent(electrical_modules_files[key] as string),
    svg: electrical_modules_files[key],
    props: {
      fill: {
        type: 'color',
        val: '#FF0000',
        title: '填充色'
      }
    }
  });
}
for (const key in electrical_stroke_modules_files) {
  //根据路径获取svg文件名
  const name = key.split('/').pop()!.split('.')[0];
  electrical_register_config.push({
    id: name,
    title: name,
    type: 'svg',
    thumbnail: 'data:image/svg+xml;utf8,' + encodeURIComponent(electrical_stroke_modules_files[key]),
    svg: electrical_stroke_modules_files[key],
    props: {
      stroke: {
        type: 'color',
        val: '#00ff00',
        title: '边框色'
      }
    }
  });
}

const onPreviewClick = (exportJson: IExportJson) => {
  sessionStorage.setItem('exportJson', JSON.stringify(exportJson));
  // const routeUrl = router.resolve({
  //   name: 'preview'
  // });
  // window.open(routeUrl.href, '_blank');
};
const onSaveClick = (e: IExportJson) => {
  console.log(e, '这是要保存的数据');
};
const onReturnClick = () => {
  // router.go(-1);
};
const onThumbnailClick = () => {
  useGenThumbnail();
};
</script>

<style scoped></style>
