Commit 49198f160287abf342ea83448497be172d051604
Merge branch 'local_dev_ft' into 'main'
feat:设备列表命令下发记录新增查询条件 See merge request yunteng/thingskit-front!493
Showing
2 changed files
with
75 additions
and
15 deletions
1 | -import { BasicColumn } from '/@/components/Table'; | |
1 | +import { BasicColumn, FormSchema } from '/@/components/Table'; | |
2 | 2 | import moment from 'moment'; |
3 | 3 | import { Tag } from 'ant-design-vue'; |
4 | 4 | import { h } from 'vue'; |
... | ... | @@ -18,9 +18,9 @@ export const configColumns: BasicColumn[] = [ |
18 | 18 | return h( |
19 | 19 | Tag, |
20 | 20 | { |
21 | - color: Number(text) === 0 ? 'blue' : 'green', | |
21 | + color: Number(text) === 1 ? 'green' : 'blue', | |
22 | 22 | }, |
23 | - () => (Number(text) === 0 ? '自定义' : '服务') | |
23 | + () => (Number(text) === 1 ? '服务' : '自定义') | |
24 | 24 | ); |
25 | 25 | }, |
26 | 26 | }, |
... | ... | @@ -51,27 +51,80 @@ export const configColumns: BasicColumn[] = [ |
51 | 51 | ? '#00C9A7' |
52 | 52 | : text == 'FAILED' |
53 | 53 | ? 'red' |
54 | - : 'green', | |
54 | + : text == 'SUCCESSFUL' | |
55 | + ? 'green' | |
56 | + : 'red', | |
55 | 57 | }, |
56 | 58 | () => record?.statusName |
57 | 59 | ); |
58 | 60 | }, |
59 | 61 | }, |
60 | 62 | { |
61 | - title: '响应结果', | |
63 | + title: '响应内容', | |
62 | 64 | dataIndex: 'response111', |
63 | 65 | slots: { customRender: 'responseContent' }, |
64 | 66 | }, |
65 | - // { | |
66 | - // title: '响应失败内容', | |
67 | - // dataIndex: 'response.error', | |
68 | - // format: (_, record) => { | |
69 | - // return record?.response === null ? '无' : record?.response?.error; | |
70 | - // }, | |
71 | - // }, | |
72 | 67 | { |
73 | 68 | title: '命令内容', |
74 | 69 | dataIndex: 'request.body', |
75 | 70 | slots: { customRender: 'recordContent' }, |
76 | 71 | }, |
77 | 72 | ]; |
73 | + | |
74 | +export const searchFormSchema: FormSchema[] = [ | |
75 | + { | |
76 | + field: 'status', | |
77 | + label: '命令状态', | |
78 | + component: 'Select', | |
79 | + colProps: { span: 6 }, | |
80 | + componentProps: { | |
81 | + options: [ | |
82 | + { | |
83 | + label: '队列中', | |
84 | + value: 'QUEUED', | |
85 | + }, | |
86 | + { | |
87 | + label: '已发送', | |
88 | + value: 'SENT', | |
89 | + }, | |
90 | + { | |
91 | + label: '发送成功', | |
92 | + value: 'DELIVERED', | |
93 | + }, | |
94 | + | |
95 | + { | |
96 | + label: '响应成功', | |
97 | + value: 'SUCCESSFUL', | |
98 | + }, | |
99 | + { | |
100 | + label: '超时', | |
101 | + value: 'TIMEOUT', | |
102 | + }, | |
103 | + { | |
104 | + label: '已过期', | |
105 | + value: 'EXPIRED', | |
106 | + }, | |
107 | + { | |
108 | + label: '响应失败', | |
109 | + value: 'FAILED', | |
110 | + }, | |
111 | + { | |
112 | + label: '已删除', | |
113 | + value: 'DELETED', | |
114 | + }, | |
115 | + ], | |
116 | + placeholder: '请选择命令状态', | |
117 | + }, | |
118 | + }, | |
119 | + { | |
120 | + field: 'sendTime', | |
121 | + label: '命令下发时间', | |
122 | + component: 'RangePicker', | |
123 | + componentProps: { | |
124 | + showTime: { | |
125 | + defaultValue: [moment('00:00:00', 'HH:mm:ss'), moment('23:59:59', 'HH:mm:ss')], | |
126 | + }, | |
127 | + }, | |
128 | + colProps: { span: 6 }, | |
129 | + }, | |
130 | +]; | ... | ... |
... | ... | @@ -5,17 +5,18 @@ |
5 | 5 | </template> |
6 | 6 | <template #responseContent="{ record }"> |
7 | 7 | <div v-if="!record.request?.oneway"> |
8 | - <a-button v-if="record?.response === null" type="text" class="ml-2"> 无 </a-button> | |
8 | + <a-button v-if="record?.response === null" type="text" class="ml-2"> 未响应 </a-button> | |
9 | 9 | <a-button v-else type="link" class="ml-2" @click="handleRecordResponseContent(record)"> |
10 | 10 | 查看 |
11 | 11 | </a-button> |
12 | 12 | </div> |
13 | + <div v-else>--</div> | |
13 | 14 | </template> |
14 | 15 | </BasicTable> |
15 | 16 | </template> |
16 | 17 | <script lang="ts" setup> |
17 | 18 | import { h } from 'vue'; |
18 | - import { configColumns } from './config'; | |
19 | + import { configColumns, searchFormSchema } from './config'; | |
19 | 20 | import { deviceCommandRecordGetQuery } from '/@/api/device/deviceConfigApi'; |
20 | 21 | import { BasicTable, useTable } from '/@/components/Table'; |
21 | 22 | import { Modal } from 'ant-design-vue'; |
... | ... | @@ -39,6 +40,12 @@ |
39 | 40 | showTableSetting: true, |
40 | 41 | bordered: true, |
41 | 42 | showIndexColumn: false, |
43 | + formConfig: { | |
44 | + labelWidth: 120, | |
45 | + schemas: searchFormSchema, | |
46 | + fieldMapToTime: [['sendTime', ['startTime', 'endTime'], 'x']], | |
47 | + }, | |
48 | + useSearchForm: true, | |
42 | 49 | }); |
43 | 50 | const commonModalInfo = (title, value) => { |
44 | 51 | Modal.info({ |
... | ... | @@ -55,7 +62,7 @@ |
55 | 62 | }; |
56 | 63 | const handleRecordResponseContent = (record) => { |
57 | 64 | const jsonParams = record?.response; |
58 | - commonModalInfo('响应结果', jsonParams); | |
65 | + commonModalInfo('响应内容', jsonParams); | |
59 | 66 | }; |
60 | 67 | </script> |
61 | 68 | ... | ... |