Commit 655799a1f9b99192743b62eac40ef9fc418c7c6b
Merge branch 'sqy_dev' into 'main'
fix:修改teambition上的几个问题:告警时间范围,消息配置回显错误,首页样式调整以及数据调整 See merge request huang/yun-teng-iot-front!102
Showing
13 changed files
with
53 additions
and
53 deletions
1 | 1 | import { alarmLevel, statusType } from '/@/views/device/manage/config/detail.config'; |
2 | 2 | import { FormSchema } from '/@/components/Form'; |
3 | 3 | import { BasicColumn } from '/@/components/Table'; |
4 | +import dayjs from 'moment'; | |
4 | 5 | export const alarmSearchSchemas: FormSchema[] = [ |
5 | 6 | { |
6 | 7 | field: 'status', |
... | ... | @@ -57,6 +58,7 @@ export const alarmSearchSchemas: FormSchema[] = [ |
57 | 58 | component: 'DatePicker', |
58 | 59 | componentProps: { |
59 | 60 | valueFormat: 'x', |
61 | + showTime: { defaultValue: dayjs('23:59:59', 'HH:mm:ss') }, | |
60 | 62 | }, |
61 | 63 | colProps: { span: 6 }, |
62 | 64 | }, | ... | ... |
... | ... | @@ -8,7 +8,11 @@ |
8 | 8 | <div class="flex-auto"> |
9 | 9 | <div class="flex justify-between" style="align-items: center"> |
10 | 10 | <div style="font-size: 1.625rem; color: #333; font-weight: bold"> |
11 | - <CountTo :startVal="1" :endVal="growCardList?.deviceInfo?.sumCount" /> | |
11 | + <CountTo | |
12 | + v-if="growCardList?.deviceInfo?.sumCount" | |
13 | + :endVal="growCardList.deviceInfo.sumCount" | |
14 | + /> | |
15 | + <CountTo v-else :endVal="0" /> | |
12 | 16 | </div> |
13 | 17 | <img src="/src/assets/images/tip.png" style="width: 1.125rem; height: 1.125rem" /> |
14 | 18 | </div> |
... | ... | @@ -54,10 +58,18 @@ |
54 | 58 | <div class="flex-auto"> |
55 | 59 | <div class="flex justify-between" style="align-items: center"> |
56 | 60 | <div v-if="!isAdmin(role)" style="font-size: 1.625rem; color: #333; font-weight: bold"> |
57 | - <CountTo :end-val="growCardList?.alarmInfo?.sumCount" /> | |
61 | + <CountTo | |
62 | + v-if="growCardList?.alarmInfo?.sumCount" | |
63 | + :end-val="growCardList.alarmInfo.sumCount" | |
64 | + /> | |
65 | + <CountTo v-else :end-val="0" /> | |
58 | 66 | </div> |
59 | 67 | <div style="font-size: 1.625rem; color: #333; font-weight: bold" v-else> |
60 | - <CountTo :end-val="growCardList?.tenantInfo?.sumCount" /> | |
68 | + <CountTo | |
69 | + v-if="growCardList?.tenantInfo?.sumCount" | |
70 | + :end-val="growCardList.tenantInfo.sumCount" | |
71 | + /> | |
72 | + <CountTo v-else :end-val="0" /> | |
61 | 73 | </div> |
62 | 74 | <img src="/src/assets/images/tip.png" style="width: 1.125rem; height: 1.125rem" /> |
63 | 75 | </div> |
... | ... | @@ -84,23 +96,33 @@ |
84 | 96 | <div> |
85 | 97 | <div style="align-items: center"> |
86 | 98 | <div style="font-size: 1.625rem; color: #333; font-weight: bold"> |
87 | - <CountTo :end-val="growCardList?.messageInfo?.messageCount" | |
88 | - /></div> | |
99 | + <CountTo | |
100 | + v-if="growCardList?.messageInfo?.messageCount" | |
101 | + :end-val="growCardList.messageInfo.messageCount" | |
102 | + /> | |
103 | + <CountTo v-else :end-val="0" /> | |
104 | + </div> | |
89 | 105 | 消息量(条) |
90 | 106 | </div> |
91 | 107 | <div> |
92 | 108 | <span class="mr-2">数据点</span> |
93 | 109 | <CountTo |
94 | 110 | style="color: #333; font-weight: bold" |
95 | - :end-val="growCardList?.messageInfo?.dataPointsCount" | |
111 | + v-if="growCardList?.messageInfo?.dataPointsCount" | |
112 | + :end-val="growCardList.messageInfo.dataPointsCount" | |
96 | 113 | /> |
114 | + <CountTo style="color: #333; font-weight: bold" :end-val="0" v-else /> | |
97 | 115 | </div> |
98 | 116 | </div> |
99 | 117 | </div> |
100 | 118 | <div class="flex-auto" v-else> |
101 | 119 | <div class="flex justify-between" style="align-items: center"> |
102 | 120 | <div style="font-size: 1.625rem; color: #333; font-weight: bold"> |
103 | - <CountTo :end-val="growCardList?.customerInfo?.sumCount" /> | |
121 | + <CountTo | |
122 | + v-if="growCardList?.customerInfo?.sumCount" | |
123 | + :end-val="growCardList.customerInfo.sumCount" | |
124 | + /> | |
125 | + <CountTo :end-val="0" v-else /> | |
104 | 126 | </div> |
105 | 127 | <img src="/src/assets/images/tip.png" style="width: 1.125rem; height: 1.125rem" /> |
106 | 128 | </div> | ... | ... |
... | ... | @@ -54,13 +54,9 @@ |
54 | 54 | </CardMeta> |
55 | 55 | </Card> |
56 | 56 | </div> |
57 | - | |
58 | 57 | <Card v-else :bordered="false" :bodyStyle="{ padding: 0 }" v-bind="$attrs"> |
59 | 58 | <Skeleton active :paragraph="{ rows: 10 }" :loading="!tenantTop10.length"> |
60 | - <h1 style="color: rgba(0, 0, 0, 0.85); font-weight: bold; font-size: 16px"> | |
61 | - 租户消息量TOP10</h1 | |
62 | - > | |
63 | - <Descriptions :column="1"> | |
59 | + <Descriptions :column="1" style="min-height: 180px" title="租户消息量TOP10"> | |
64 | 60 | <template v-for="(item, index) in tenantTop10" :key="item.name"> |
65 | 61 | <DescriptionsItem> |
66 | 62 | <span | ... | ... |
... | ... | @@ -44,6 +44,7 @@ |
44 | 44 | series: [ |
45 | 45 | { |
46 | 46 | name: '告警数', |
47 | + barMaxWidth: '4%', | |
47 | 48 | type: 'bar', |
48 | 49 | stack: 'Total', |
49 | 50 | data: props.alarmList, |
... | ... | @@ -78,6 +79,7 @@ |
78 | 79 | type: 'bar', |
79 | 80 | stack: 'Total', |
80 | 81 | color: '#3C78FF', |
82 | + barMaxWidth: '4%', | |
81 | 83 | data: newValue, |
82 | 84 | }, |
83 | 85 | ], | ... | ... |
... | ... | @@ -67,12 +67,14 @@ |
67 | 67 | type: 'bar', |
68 | 68 | stack: 'total', |
69 | 69 | data: newValue, |
70 | + barMaxWidth: '4%', | |
70 | 71 | color: '#5AEEED', |
71 | 72 | }, |
72 | 73 | { |
73 | 74 | name: '传输消息量', |
74 | 75 | type: 'bar', |
75 | 76 | stack: 'total', |
77 | + barMaxWidth: '4%', | |
76 | 78 | data: newValue1, |
77 | 79 | color: '#3C78FF', |
78 | 80 | }, | ... | ... |
... | ... | @@ -3,6 +3,7 @@ import { FormSchema } from '/@/components/Form'; |
3 | 3 | import { BasicColumn } from '/@/components/Table'; |
4 | 4 | import { DeviceTypeEnum } from '/@/api/device/model/deviceModel'; |
5 | 5 | import { getCustomerList } from '/@/api/device/deviceManager'; |
6 | +import dayjs from 'moment'; | |
6 | 7 | export const columns: BasicColumn[] = [ |
7 | 8 | { |
8 | 9 | title: '设备名称', |
... | ... | @@ -99,6 +100,7 @@ export const alarmSearchSchemas: FormSchema[] = [ |
99 | 100 | component: 'DatePicker', |
100 | 101 | componentProps: { |
101 | 102 | valueFormat: 'x', |
103 | + showTime: { defaultValue: dayjs('23:59:59', 'HH:mm:ss') }, | |
102 | 104 | }, |
103 | 105 | colProps: { span: 6 }, |
104 | 106 | }, |
... | ... | @@ -217,7 +219,7 @@ export const childDeviceSchemas: FormSchema[] = [ |
217 | 219 | field: 'icon', |
218 | 220 | label: '设备配置', |
219 | 221 | component: 'Select', |
220 | - colProps: { span: 12 }, | |
222 | + colProps: { span: 6 }, | |
221 | 223 | componentProps: { |
222 | 224 | maxLength: 255, |
223 | 225 | }, |
... | ... | @@ -226,7 +228,7 @@ export const childDeviceSchemas: FormSchema[] = [ |
226 | 228 | field: 'icon', |
227 | 229 | label: '设备名称', |
228 | 230 | component: 'Input', |
229 | - colProps: { span: 12 }, | |
231 | + colProps: { span: 6 }, | |
230 | 232 | componentProps: { |
231 | 233 | maxLength: 255, |
232 | 234 | placeholder: '请输入设备名称', | ... | ... |
... | ... | @@ -41,13 +41,13 @@ export const columns: BasicColumn[] = [ |
41 | 41 | { |
42 | 42 | title: '最后连接时间', |
43 | 43 | dataIndex: 'lastOnlineTime', |
44 | - format: (text) => formatToDate(text, 'YYYY-MM-DD HH:mm:ss'), | |
44 | + format: (text) => text && formatToDate(text, 'YYYY-MM-DD HH:mm:ss'), | |
45 | 45 | width: 180, |
46 | 46 | }, |
47 | 47 | { |
48 | 48 | title: '最后断开时间', |
49 | 49 | dataIndex: 'lastOfflineTime', |
50 | - format: (text) => formatToDate(text, 'YYYY-MM-DD HH:mm:ss'), | |
50 | + format: (text) => text && formatToDate(text, 'YYYY-MM-DD HH:mm:ss'), | |
51 | 51 | width: 180, |
52 | 52 | }, |
53 | 53 | ]; |
... | ... | @@ -84,7 +84,7 @@ export const searchFormSchema: FormSchema[] = [ |
84 | 84 | field: 'name', |
85 | 85 | label: '设备名称', |
86 | 86 | component: 'Input', |
87 | - colProps: { span: 7 }, | |
87 | + colProps: { span: 6 }, | |
88 | 88 | componentProps: { |
89 | 89 | maxLength: 255, |
90 | 90 | placeholder: '请输入设备名称', | ... | ... |
... | ... | @@ -36,34 +36,13 @@ |
36 | 36 | setDrawerProps({ confirmLoading: false }); |
37 | 37 | isUpdate.value = !!data?.isUpdate; |
38 | 38 | if (unref(isUpdate)) { |
39 | - console.log(data); | |
40 | - // const config = data.record.config; | |
41 | - // for (const key in config) { | |
42 | - // Reflect.set(data.record, key + '', config[key]); | |
43 | - // } | |
44 | - // await setFieldsValue({ | |
45 | - // ...data.record, | |
46 | - // }); | |
47 | - await setFieldsValue({ | |
48 | - accessKeyId: data.record.config.accessKeyId, | |
49 | - accessKeySecret: data.record.config.accessKeySecret, | |
50 | - platformTypeDictText: data.record.platformTypeDictText, | |
51 | - messageTypeDictText: data.record.messageTypeDictText, | |
52 | - messageType: data.record.messageType, | |
53 | - platformType: data.record.platformType, | |
54 | - configName: data.record.configName, | |
55 | - createTime: data.record.createTime, | |
56 | - creator: data.record.creator, | |
57 | - enabled: data.record.enabled, | |
58 | - id: data.record.id, | |
59 | - key: data.record.key, | |
60 | - pendingStatus: data.record.pendingStatus, | |
61 | - remark: data.record.remark, | |
62 | - status: data.record.status, | |
63 | - tenantId: data.record.tenantId, | |
64 | - updateTime: data.record.updateTime, | |
65 | - updater: data.record.updater, | |
66 | - }); | |
39 | + const { config } = data.record; | |
40 | + for (const key in config) { | |
41 | + Reflect.set(data.record, key + '', config[key]); | |
42 | + } | |
43 | + const editRecord = JSON.parse(JSON.stringify(data.record)); | |
44 | + Reflect.deleteProperty(editRecord, 'config'); | |
45 | + await setFieldsValue(editRecord); | |
67 | 46 | } |
68 | 47 | }); |
69 | 48 | ... | ... |
... | ... | @@ -90,13 +90,13 @@ export const searchFormSchema: FormSchema[] = [ |
90 | 90 | field: 'status', |
91 | 91 | label: '状态', |
92 | 92 | component: 'Select', |
93 | + colProps: { span: 6 }, | |
93 | 94 | componentProps: { |
94 | 95 | options: [ |
95 | 96 | { label: '已启用', value: 1 }, |
96 | 97 | { label: '已禁用', value: 0 }, |
97 | 98 | ], |
98 | 99 | }, |
99 | - colProps: { span: 6 }, | |
100 | 100 | }, |
101 | 101 | ]; |
102 | 102 | |
... | ... | @@ -156,7 +156,6 @@ export const formSchema: FormSchema[] = [ |
156 | 156 | maxLength: 36, |
157 | 157 | placeholder: '请输入accessKeyId', |
158 | 158 | }, |
159 | - | |
160 | 159 | ifShow: ({ values }) => isMessage(Reflect.get(values, 'messageType')), |
161 | 160 | }, |
162 | 161 | { |
... | ... | @@ -205,7 +204,6 @@ export const formSchema: FormSchema[] = [ |
205 | 204 | maxLength: 255, |
206 | 205 | placeholder: '请输入用户名', |
207 | 206 | }, |
208 | - | |
209 | 207 | component: 'Input', |
210 | 208 | ifShow: ({ values }) => isEmail(Reflect.get(values, 'messageType')), |
211 | 209 | }, |
... | ... | @@ -213,7 +211,6 @@ export const formSchema: FormSchema[] = [ |
213 | 211 | field: 'password', |
214 | 212 | label: '密码', |
215 | 213 | required: true, |
216 | - | |
217 | 214 | component: 'InputPassword', |
218 | 215 | ifShow: ({ values }) => isEmail(Reflect.get(values, 'messageType')), |
219 | 216 | }, |
... | ... | @@ -256,7 +253,6 @@ export const formSchema: FormSchema[] = [ |
256 | 253 | maxLength: 255, |
257 | 254 | placeholder: '请输入备注', |
258 | 255 | }, |
259 | - | |
260 | 256 | component: 'InputTextArea', |
261 | 257 | }, |
262 | 258 | { | ... | ... |