detail.vue 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. <template>
  2. <a-card>
  3. <a-tabs v-model:activeKey="state.tabsActive">
  4. <a-tab-pane
  5. v-for="item in tabs"
  6. :key="item.key"
  7. :tab="item.name"
  8. />
  9. </a-tabs>
  10. <OverView :deviceId="state.deviceId" :key="state.deviceId" v-if="state.tabsActive === '1'"/>
  11. <CloudView v-else-if="state.tabsActive === '2'"/>
  12. <DeviceShadow v-else-if="state.tabsActive === '3'" />
  13. <MsgTrack v-else-if="state.tabsActive === '4'" />
  14. <SubDevice @goDetail="goDetail" v-else-if="state.tabsActive === '5'" />
  15. <DeviceTag @goDetail="goDetail" v-else-if="state.tabsActive === '6'" />
  16. </a-card>
  17. </template>
  18. <script lang="ts" setup >
  19. import { computed, onMounted, reactive } from 'vue'
  20. import OverView from './components/overview.vue'
  21. import CloudView from './components/cloudview.vue'
  22. import DeviceShadow from './components/deviceShadow.vue'
  23. import MsgTrack from './components/msgTrack.vue'
  24. import SubDevice from './components/subDevice.vue'
  25. import DeviceTag from './components/deviceTag.vue'
  26. import { useRoute } from 'vue-router'
  27. import { DeviceContriller } from '@/controller'
  28. import { StateEffect } from '@codemirror/state'
  29. const tabs = [
  30. {
  31. name: '概述',
  32. key: '1'
  33. },
  34. {
  35. name: '云端下发',
  36. key: '2'
  37. },
  38. {
  39. name: '设备影子',
  40. key: '3'
  41. },
  42. {
  43. name: '消息跟踪',
  44. key: '4'
  45. },
  46. {
  47. name: '子设备',
  48. key: '5'
  49. },
  50. {
  51. name: '标签',
  52. key: '6'
  53. }
  54. ]
  55. const route = useRoute()
  56. const deviceId = route.query.id as string
  57. const state = reactive({
  58. tabsActive: '1',
  59. deviceId: deviceId
  60. })
  61. const goDetail = ({ id }) => {
  62. state.tabsActive = '1'
  63. state.deviceId = id
  64. }
  65. </script>
  66. <style lang="less" scoped >
  67. </style>