Ventilate.vue 1.3 KB

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