Ventilate.vue 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. <!-- eslint-disable vue/multi-word-component-names -->
  2. <template>
  3. <ModuleBasic :title="config.moduleName" :version="config.showStyle?.version" :size="config.showStyle?.size" :position="config.showStyle?.position">
  4. <CostumeHeader v-model:value="selectedDeviceID" :options="options">
  5. <div class="w-200px flex flex-items-center">
  6. <RightCircleOutlined class="w-30px" />
  7. <div class="flex-grow-1">
  8. {{ selectedDevice.strinstallpos }}
  9. </div>
  10. </div>
  11. </CostumeHeader>
  12. <div class="flex justify-around mt-10px">
  13. <MiniBoard v-for="(label, prop) in config.moduleData?.main" :key="`vhccv-${prop}`" :label="label" :value="get(selectedDevice, prop)" type="C" />
  14. </div>
  15. </ModuleBasic>
  16. </template>
  17. <script lang="ts" setup>
  18. import { onMounted } from 'vue';
  19. import ModuleBasic from './moduleBasic.vue';
  20. import CostumeHeader from './CostumeHeader.vue';
  21. import { RightCircleOutlined } from '@ant-design/icons-vue';
  22. import MiniBoard from './MiniBoard.vue';
  23. import { useInitConfig, useInitDevices } from '../hooks/useInit';
  24. import { get } from '../../billboard/utils';
  25. // import mapComponent from './components/3Dmap/index.vue';
  26. // 设备类别,是个枚举 TODO: 将手动换为自动获取类别
  27. const devicekind = 'fanmain';
  28. const { config, fetchConfig } = useInitConfig(devicekind);
  29. const { options, selectedDevice, selectedDeviceID, fetchDevices } = useInitDevices(devicekind);
  30. onMounted(() => {
  31. fetchConfig();
  32. fetchDevices();
  33. });
  34. </script>
  35. <style scoped></style>