Commit f0efeb2ba028fc324c73b0d126a1329ee8e6d0ea
Merge branch 'fix/DEFECT-2890' into 'main_dev'
perf: 优化自定义TCP网关与网关子设备物模型属性应为只读 See merge request yunteng/thingskit-front!1512
Showing
2 changed files
with
48 additions
and
5 deletions
... | ... | @@ -19,7 +19,12 @@ |
19 | 19 | import { ModeSwitchButton, EnumTableCardMode } from '/@/components/Widget'; |
20 | 20 | import { toRaw } from 'vue'; |
21 | 21 | import { DataActionModeEnum } from '/@/enums/toolEnum'; |
22 | - import { ReadAndWriteEnum, TCPProtocolTypeEnum, TransportTypeEnum } from '/@/enums/deviceEnum'; | |
22 | + import { | |
23 | + DeviceTypeEnum, | |
24 | + ReadAndWriteEnum, | |
25 | + TCPProtocolTypeEnum, | |
26 | + TransportTypeEnum, | |
27 | + } from '/@/enums/deviceEnum'; | |
23 | 28 | import { ObjectModelCommandDeliveryModal } from './ObjectModelCommandDeliveryModal'; |
24 | 29 | import { ModalParamsType } from '/#/utils'; |
25 | 30 | import { AreaChartOutlined } from '@ant-design/icons-vue'; |
... | ... | @@ -312,7 +317,7 @@ |
312 | 317 | |
313 | 318 | switch (item.type) { |
314 | 319 | case DataTypeEnum.BOOL: |
315 | - return !!Number(item.value) ? item.boolOpen : item.boolClose; | |
320 | + return !!Number(item.value) ? item.boolOpen! : item.boolClose!; | |
316 | 321 | case DataTypeEnum.ENUM: |
317 | 322 | return item.enum?.[item.value as string]; |
318 | 323 | default: |
... | ... | @@ -328,6 +333,24 @@ |
328 | 333 | } as ModalParamsType); |
329 | 334 | }; |
330 | 335 | |
336 | + const isTCPCustomProtocolType = computed(() => { | |
337 | + const isTCPType = props.deviceDetail.transportType === TransportTypeEnum.TCP; | |
338 | + | |
339 | + return ( | |
340 | + isTCPType && | |
341 | + props.deviceDetail.deviceProfile?.profileData?.transportConfiguration?.protocol === | |
342 | + TCPProtocolTypeEnum.CUSTOM | |
343 | + ); | |
344 | + }); | |
345 | + | |
346 | + const isGatewayOrSensorTCPCustomDevice = computed( | |
347 | + () => | |
348 | + unref(isTCPCustomProtocolType) && | |
349 | + [DeviceTypeEnum.GATEWAY, DeviceTypeEnum.SENSOR].includes( | |
350 | + props.deviceDetail.deviceType as DeviceTypeEnum | |
351 | + ) | |
352 | + ); | |
353 | + | |
331 | 354 | onMounted(() => { |
332 | 355 | const element = unref(listElRef)?.$el; |
333 | 356 | if (!element) return; |
... | ... | @@ -391,7 +414,10 @@ |
391 | 414 | <SvgIcon |
392 | 415 | name="send-command" |
393 | 416 | prefix="iconfont" |
394 | - v-if="ReadAndWriteEnum.READ_AND_WRITE === item.accessMode" | |
417 | + v-if=" | |
418 | + ReadAndWriteEnum.READ_AND_WRITE === item.accessMode && | |
419 | + !isGatewayOrSensorTCPCustomDevice | |
420 | + " | |
395 | 421 | class="cursor-pointer text-lg text-blue-500" |
396 | 422 | @click="handleSendCommandModal(item)" |
397 | 423 | /> | ... | ... |
... | ... | @@ -87,6 +87,12 @@ export const getFormSchemas = ({ |
87 | 87 | isTCPTransport && |
88 | 88 | deviceRecord?.profileData.transportConfiguration.protocol === TCPProtocolTypeEnum.MODBUS_RTU; |
89 | 89 | |
90 | + const isTCPCustomProdcut = | |
91 | + isTCPTransport && | |
92 | + deviceRecord?.profileData.transportConfiguration.protocol === TCPProtocolTypeEnum.CUSTOM; | |
93 | + | |
94 | + const deviceType = deviceRecord?.deviceType; | |
95 | + | |
90 | 96 | return [ |
91 | 97 | { |
92 | 98 | field: FormFieldsEnum.FUNCTION_TYPE, |
... | ... | @@ -160,9 +166,20 @@ export const getFormSchemas = ({ |
160 | 166 | ![FunctionTypeEnum.SERVICE, FunctionTypeEnum.EVENTS].includes( |
161 | 167 | model[FormFieldsEnum.FUNCTION_TYPE] |
162 | 168 | ) && !isTCPModbusProduct, |
163 | - defaultValue: ObjectModelAccessModeEnum.READ_AND_WRITE, | |
169 | + defaultValue: | |
170 | + isTCPCustomProdcut && deviceType !== DeviceTypeEnum.DIRECT_CONNECTION | |
171 | + ? ObjectModelAccessModeEnum.READ | |
172 | + : ObjectModelAccessModeEnum.READ_AND_WRITE, | |
164 | 173 | componentProps: { |
165 | - api: findDictItemByCode, | |
174 | + api: async (params) => { | |
175 | + const res = await findDictItemByCode(params); | |
176 | + | |
177 | + // if (isTCPCustomProdcut && deviceType !== DeviceTypeEnum.DIRECT_CONNECTION) { | |
178 | + // res = res.filter((item) => item.itemValue === ObjectModelAccessModeEnum.READ); | |
179 | + // } | |
180 | + | |
181 | + return res; | |
182 | + }, | |
166 | 183 | params: { |
167 | 184 | dictCode: DictEnum.READ_WRITE_TYP, |
168 | 185 | }, | ... | ... |