1
|
-<template>
|
|
|
2
|
- <BasicDrawer
|
|
|
3
|
- v-bind="$attrs"
|
|
|
4
|
- isDetail
|
|
|
5
|
- @register="register"
|
|
|
6
|
- destroyOnClose
|
|
|
7
|
- @close="closeDrawer"
|
|
|
8
|
- :title="deviceDetail.alias || deviceDetail.name"
|
|
|
9
|
- width="80%"
|
|
|
10
|
- >
|
|
|
11
|
- <Tabs v-model:activeKey="activeKey" :size="size">
|
|
|
12
|
- <TabPane key="1" tab="详情">
|
|
|
13
|
- <Detail
|
|
|
14
|
- ref="deviceDetailRef"
|
|
|
15
|
- :deviceDetail="deviceDetail"
|
|
|
16
|
- @open-gateway-device="handleOpenGatewayDevice"
|
|
|
17
|
- />
|
|
|
18
|
- </TabPane>
|
|
|
19
|
- <TabPane key="modelOfMatter" tab="物模型数据">
|
|
|
20
|
- <ModelOfMatter :deviceDetail="deviceDetail" />
|
|
|
21
|
- </TabPane>
|
|
|
22
|
- <!-- <TabPane key="2" tab="实时数据" v-if="deviceDetail?.deviceType !== 'GATEWAY'">
|
|
|
23
|
- <RealTimeData :deviceDetail="deviceDetail" />
|
|
|
24
|
- </TabPane>
|
|
|
25
|
- <TabPane key="7" tab="历史数据" v-if="deviceDetail?.deviceType !== 'GATEWAY'">
|
|
|
26
|
- <HistoryData :deviceDetail="deviceDetail" />
|
|
|
27
|
- </TabPane> -->
|
|
|
28
|
- <TabPane key="5" tab="命令下发" v-if="deviceDetail?.deviceType !== 'SENSOR'">
|
|
|
29
|
- <CommandIssuance :deviceDetail="deviceDetail" />
|
|
|
30
|
- </TabPane>
|
|
|
31
|
- <TabPane key="3" tab="告警"><Alarm :id="deviceDetail.id" /></TabPane>
|
|
|
32
|
- <TabPane key="4" tab="子设备" v-if="deviceDetail?.deviceType === 'GATEWAY'">
|
|
|
33
|
- <ChildDevice
|
|
|
34
|
- :fromId="deviceDetail?.tbDeviceId"
|
|
|
35
|
- @openTbDeviceDetail="handleOpenTbDeviceDetail"
|
|
|
36
|
- />
|
|
|
37
|
- </TabPane>
|
|
|
38
|
- <TabPane key="7" tab="命令下发记录">
|
|
|
39
|
- <CommandRecord :fromId="deviceDetail?.tbDeviceId" />
|
|
|
40
|
- </TabPane>
|
|
|
41
|
- <!-- 网关设备并且场家是TBox -->
|
|
|
42
|
- <TabPane
|
|
|
43
|
- key="6"
|
|
|
44
|
- tab="TBox"
|
|
|
45
|
- v-if="deviceDetail?.deviceType === 'GATEWAY' && deviceDetail?.brand == 'TBox'"
|
|
|
46
|
- >
|
|
|
47
|
- <TBoxDetail :deviceDetail="deviceDetail" />
|
|
|
48
|
- </TabPane>
|
|
|
49
|
- <!-- 网关设备并且是TBox -->
|
|
|
50
|
- </Tabs>
|
|
|
51
|
- </BasicDrawer>
|
|
|
52
|
-</template>
|
|
|
53
|
-<script lang="ts">
|
|
|
54
|
- import { defineComponent, ref } from 'vue';
|
|
|
55
|
- import { BasicDrawer, useDrawerInner } from '/@/components/Drawer';
|
|
|
56
|
-
|
|
|
57
|
- import { Tabs } from 'ant-design-vue';
|
|
|
58
|
- import Detail from '../tabs/Detail.vue';
|
|
|
59
|
- // import RealTimeData from '../tabs/RealTimeData.vue';
|
|
|
60
|
- import Alarm from '../tabs/Alarm.vue';
|
|
|
61
|
- import ChildDevice from '../tabs/ChildDevice.vue';
|
|
|
62
|
- import TBoxDetail from '../tabs/TBoxDetail.vue';
|
|
|
63
|
- import CommandIssuance from '../tabs/CommandIssuance.vue';
|
|
|
64
|
- import { CommandRecord } from '../tabs/commandRecord/index';
|
|
|
65
|
- import { getDeviceDetail } from '/@/api/device/deviceManager';
|
|
|
66
|
- // import HistoryData from '../tabs/HistoryData.vue';
|
|
|
67
|
- import ModelOfMatter from '../tabs/ModelOfMatter.vue';
|
|
|
68
|
- export default defineComponent({
|
|
|
69
|
- name: 'DeviceModal',
|
|
|
70
|
- components: {
|
|
|
71
|
- BasicDrawer,
|
|
|
72
|
- Tabs,
|
|
|
73
|
- TabPane: Tabs.TabPane,
|
|
|
74
|
- Detail,
|
|
|
75
|
- // RealTimeData,
|
|
|
76
|
- Alarm,
|
|
|
77
|
- ChildDevice,
|
|
|
78
|
- CommandIssuance,
|
|
|
79
|
- TBoxDetail,
|
|
|
80
|
- // HistoryData,
|
|
|
81
|
- ModelOfMatter,
|
|
|
82
|
- CommandRecord,
|
|
|
83
|
- },
|
|
|
84
|
- emits: ['reload', 'register', 'openTbDeviceDetail', 'openGatewayDeviceDetail'],
|
|
|
85
|
- setup(_props, { emit }) {
|
|
|
86
|
- const activeKey = ref('1');
|
|
|
87
|
- const size = ref('small');
|
|
|
88
|
- const deviceDetailRef = ref();
|
|
|
89
|
- const deviceDetail = ref<any>({});
|
|
|
90
|
- const tbDeviceId = ref('');
|
|
|
91
|
- // 详情回显
|
|
|
92
|
- const [register] = useDrawerInner(async (data) => {
|
|
|
93
|
- const { id } = data;
|
|
|
94
|
- // 设备详情
|
|
|
95
|
- const res = await getDeviceDetail(id);
|
|
|
96
|
- deviceDetail.value = res;
|
|
|
97
|
- const { latitude, longitude, address } = res.deviceInfo;
|
|
|
98
|
- if (latitude) {
|
|
|
99
|
- deviceDetailRef.value.initMap(longitude, latitude, address);
|
|
|
100
|
- }
|
|
|
101
|
- });
|
|
|
102
|
- const closeDrawer = () => {
|
|
|
103
|
- activeKey.value = '1';
|
|
|
104
|
- };
|
|
|
105
|
-
|
|
|
106
|
- const handleOpenTbDeviceDetail = (data: { id: string; tbDeviceId: string }) => {
|
|
|
107
|
- emit('openTbDeviceDetail', data);
|
|
|
108
|
- };
|
|
|
109
|
-
|
|
|
110
|
- const handleOpenGatewayDevice = (data: { gatewayId: string; tbDeviceId: string }) => {
|
|
|
111
|
- emit('openGatewayDeviceDetail', { id: data.gatewayId });
|
|
|
112
|
- };
|
|
|
113
|
-
|
|
|
114
|
- return {
|
|
|
115
|
- size,
|
|
|
116
|
- activeKey,
|
|
|
117
|
- register,
|
|
|
118
|
- closeDrawer,
|
|
|
119
|
- deviceDetail,
|
|
|
120
|
- deviceDetailRef,
|
|
|
121
|
- tbDeviceId,
|
|
|
122
|
- handleOpenTbDeviceDetail,
|
|
|
123
|
- handleOpenGatewayDevice,
|
|
|
124
|
- };
|
|
|
125
|
- },
|
|
|
126
|
- });
|
|
|
127
|
-</script> |
1
|
+<template>
|
|
|
2
|
+ <BasicDrawer
|
|
|
3
|
+ v-bind="$attrs"
|
|
|
4
|
+ isDetail
|
|
|
5
|
+ @register="register"
|
|
|
6
|
+ destroyOnClose
|
|
|
7
|
+ @close="closeDrawer"
|
|
|
8
|
+ :title="deviceDetail.alias || deviceDetail.name"
|
|
|
9
|
+ width="80%"
|
|
|
10
|
+ >
|
|
|
11
|
+ <Tabs v-model:activeKey="activeKey" :size="size">
|
|
|
12
|
+ <TabPane key="1" tab="详情">
|
|
|
13
|
+ <Detail
|
|
|
14
|
+ ref="deviceDetailRef"
|
|
|
15
|
+ :deviceDetail="deviceDetail"
|
|
|
16
|
+ @open-gateway-device="handleOpenGatewayDevice"
|
|
|
17
|
+ />
|
|
|
18
|
+ </TabPane>
|
|
|
19
|
+ <TabPane key="modelOfMatter" tab="物模型数据">
|
|
|
20
|
+ <ModelOfMatter :deviceDetail="deviceDetail" />
|
|
|
21
|
+ </TabPane>
|
|
|
22
|
+ <!-- <TabPane key="2" tab="实时数据" v-if="deviceDetail?.deviceType !== 'GATEWAY'">
|
|
|
23
|
+ <RealTimeData :deviceDetail="deviceDetail" />
|
|
|
24
|
+ </TabPane>
|
|
|
25
|
+ <TabPane key="7" tab="历史数据" v-if="deviceDetail?.deviceType !== 'GATEWAY'">
|
|
|
26
|
+ <HistoryData :deviceDetail="deviceDetail" />
|
|
|
27
|
+ </TabPane> -->
|
|
|
28
|
+ <TabPane key="5" tab="命令下发" v-if="deviceDetail?.deviceType !== 'SENSOR'">
|
|
|
29
|
+ <CommandIssuance :deviceDetail="deviceDetail" />
|
|
|
30
|
+ </TabPane>
|
|
|
31
|
+ <TabPane key="3" tab="告警"><Alarm :id="deviceDetail.id" /></TabPane>
|
|
|
32
|
+ <TabPane key="4" tab="子设备" v-if="deviceDetail?.deviceType === 'GATEWAY'">
|
|
|
33
|
+ <ChildDevice
|
|
|
34
|
+ :fromId="deviceDetail?.tbDeviceId"
|
|
|
35
|
+ @openTbDeviceDetail="handleOpenTbDeviceDetail"
|
|
|
36
|
+ />
|
|
|
37
|
+ </TabPane>
|
|
|
38
|
+ <TabPane key="7" tab="命令下发记录">
|
|
|
39
|
+ <CommandRecord :fromId="deviceDetail?.tbDeviceId" />
|
|
|
40
|
+ </TabPane>
|
|
|
41
|
+ <!-- 网关设备并且场家是TBox -->
|
|
|
42
|
+ <TabPane
|
|
|
43
|
+ key="6"
|
|
|
44
|
+ tab="TBox"
|
|
|
45
|
+ v-if="deviceDetail?.deviceType === 'GATEWAY' && deviceDetail?.brand == 'TBox'"
|
|
|
46
|
+ >
|
|
|
47
|
+ <TBoxDetail :deviceDetail="deviceDetail" />
|
|
|
48
|
+ </TabPane>
|
|
|
49
|
+ <!-- 网关设备并且是TBox -->
|
|
|
50
|
+
|
|
|
51
|
+ <TabPane key="eventManage" tab="事件管理">
|
|
|
52
|
+ <EventManage />
|
|
|
53
|
+ </TabPane>
|
|
|
54
|
+ </Tabs>
|
|
|
55
|
+ </BasicDrawer>
|
|
|
56
|
+</template>
|
|
|
57
|
+<script lang="ts">
|
|
|
58
|
+ import { defineComponent, ref } from 'vue';
|
|
|
59
|
+ import { BasicDrawer, useDrawerInner } from '/@/components/Drawer';
|
|
|
60
|
+
|
|
|
61
|
+ import { Tabs } from 'ant-design-vue';
|
|
|
62
|
+ import Detail from '../tabs/Detail.vue';
|
|
|
63
|
+ // import RealTimeData from '../tabs/RealTimeData.vue';
|
|
|
64
|
+ import Alarm from '../tabs/Alarm.vue';
|
|
|
65
|
+ import ChildDevice from '../tabs/ChildDevice.vue';
|
|
|
66
|
+ import TBoxDetail from '../tabs/TBoxDetail.vue';
|
|
|
67
|
+ import CommandIssuance from '../tabs/CommandIssuance.vue';
|
|
|
68
|
+ import { CommandRecord } from '../tabs/commandRecord/index';
|
|
|
69
|
+ import { getDeviceDetail } from '/@/api/device/deviceManager';
|
|
|
70
|
+ // import HistoryData from '../tabs/HistoryData.vue';
|
|
|
71
|
+ import ModelOfMatter from '../tabs/ModelOfMatter.vue';
|
|
|
72
|
+ import EventManage from '../tabs/EventManage/index.vue';
|
|
|
73
|
+
|
|
|
74
|
+ export default defineComponent({
|
|
|
75
|
+ name: 'DeviceModal',
|
|
|
76
|
+ components: {
|
|
|
77
|
+ BasicDrawer,
|
|
|
78
|
+ Tabs,
|
|
|
79
|
+ TabPane: Tabs.TabPane,
|
|
|
80
|
+ Detail,
|
|
|
81
|
+ // RealTimeData,
|
|
|
82
|
+ Alarm,
|
|
|
83
|
+ ChildDevice,
|
|
|
84
|
+ CommandIssuance,
|
|
|
85
|
+ TBoxDetail,
|
|
|
86
|
+ // HistoryData,
|
|
|
87
|
+ ModelOfMatter,
|
|
|
88
|
+ CommandRecord,
|
|
|
89
|
+ EventManage,
|
|
|
90
|
+ },
|
|
|
91
|
+ emits: ['reload', 'register', 'openTbDeviceDetail', 'openGatewayDeviceDetail'],
|
|
|
92
|
+ setup(_props, { emit }) {
|
|
|
93
|
+ const activeKey = ref('1');
|
|
|
94
|
+ const size = ref('small');
|
|
|
95
|
+ const deviceDetailRef = ref();
|
|
|
96
|
+ const deviceDetail = ref<any>({});
|
|
|
97
|
+ const tbDeviceId = ref('');
|
|
|
98
|
+ // 详情回显
|
|
|
99
|
+ const [register] = useDrawerInner(async (data) => {
|
|
|
100
|
+ const { id } = data;
|
|
|
101
|
+ // 设备详情
|
|
|
102
|
+ const res = await getDeviceDetail(id);
|
|
|
103
|
+ deviceDetail.value = res;
|
|
|
104
|
+ const { latitude, longitude, address } = res.deviceInfo;
|
|
|
105
|
+ if (latitude) {
|
|
|
106
|
+ deviceDetailRef.value.initMap(longitude, latitude, address);
|
|
|
107
|
+ }
|
|
|
108
|
+ });
|
|
|
109
|
+ const closeDrawer = () => {
|
|
|
110
|
+ activeKey.value = '1';
|
|
|
111
|
+ };
|
|
|
112
|
+
|
|
|
113
|
+ const handleOpenTbDeviceDetail = (data: { id: string; tbDeviceId: string }) => {
|
|
|
114
|
+ emit('openTbDeviceDetail', data);
|
|
|
115
|
+ };
|
|
|
116
|
+
|
|
|
117
|
+ const handleOpenGatewayDevice = (data: { gatewayId: string; tbDeviceId: string }) => {
|
|
|
118
|
+ emit('openGatewayDeviceDetail', { id: data.gatewayId });
|
|
|
119
|
+ };
|
|
|
120
|
+
|
|
|
121
|
+ return {
|
|
|
122
|
+ size,
|
|
|
123
|
+ activeKey,
|
|
|
124
|
+ register,
|
|
|
125
|
+ closeDrawer,
|
|
|
126
|
+ deviceDetail,
|
|
|
127
|
+ deviceDetailRef,
|
|
|
128
|
+ tbDeviceId,
|
|
|
129
|
+ handleOpenTbDeviceDetail,
|
|
|
130
|
+ handleOpenGatewayDevice,
|
|
|
131
|
+ };
|
|
|
132
|
+ },
|
|
|
133
|
+ });
|
|
|
134
|
+</script> |