Commit e95e5596cad611c563afcf04206823c48d99702b
1 parent
13768ad9
perf: device detail model of matter struct && text type attribute can not open history data
Showing
1 changed file
with
24 additions
and
2 deletions
... | ... | @@ -18,6 +18,7 @@ |
18 | 18 | import { computed } from '@vue/reactivity'; |
19 | 19 | import { Specs, StructJSON } from '/@/api/device/model/modelOfMatterModel'; |
20 | 20 | import { isArray, isObject } from '/@/utils/is'; |
21 | + import { DateTypeEnum } from '/@/components/Form/src/externalCompns/components/StructForm/config'; | |
21 | 22 | |
22 | 23 | interface ReceiveMessage { |
23 | 24 | data: { |
... | ... | @@ -135,6 +136,10 @@ |
135 | 136 | : ''; |
136 | 137 | }; |
137 | 138 | |
139 | + const isStructAndTextType = (type: DateTypeEnum) => { | |
140 | + return [DateTypeEnum.IS_STRUCT, DateTypeEnum.IS_STRING].includes(type); | |
141 | + }; | |
142 | + | |
138 | 143 | const { send, close, data } = useWebSocket(socketInfo.origin, { |
139 | 144 | async onConnected() { |
140 | 145 | const { deviceProfileId } = props.deviceDetail; |
... | ... | @@ -156,7 +161,18 @@ |
156 | 161 | const { identifier: key, name, detail } = item; |
157 | 162 | const unit = getUnit(detail); |
158 | 163 | const [time, value] = socketInfo.message[key].at(0) || []; |
159 | - return { key, value, time, name, unit }; | |
164 | + const dataInfo = socketInfo.attrKeys.find((item) => item.identifier === key); | |
165 | + | |
166 | + return { | |
167 | + key, | |
168 | + value, | |
169 | + time, | |
170 | + name, | |
171 | + unit, | |
172 | + showHistoryDataButton: !isStructAndTextType( | |
173 | + dataInfo?.detail.dataType as unknown as DateTypeEnum | |
174 | + ), | |
175 | + }; | |
160 | 176 | }); |
161 | 177 | |
162 | 178 | await nextTick(); |
... | ... | @@ -226,7 +242,13 @@ |
226 | 242 | <span class="text-base font-normal">{{ item.name }}</span> |
227 | 243 | </template> |
228 | 244 | <template #extra> |
229 | - <Button type="link" class="!p-0" @click="handleShowDetail(item)">历史数据</Button> | |
245 | + <Button | |
246 | + v-if="item.showHistoryDataButton" | |
247 | + type="link" | |
248 | + class="!p-0" | |
249 | + @click="handleShowDetail(item)" | |
250 | + >历史数据</Button | |
251 | + > | |
230 | 252 | </template> |
231 | 253 | <section class="min-h-16 flex flex-col justify-between"> |
232 | 254 | <div class="flex font-bold text-lg mb-4 gap-2"> | ... | ... |