Commit a713a3d97ca75c0210d1a8bc2b5d3bb0123a6201

Authored by ww
1 parent 765b5b97

perf: 优化自定义TCP网关与网关子设备物模型属性应为只读

@@ -19,7 +19,12 @@ @@ -19,7 +19,12 @@
19 import { ModeSwitchButton, EnumTableCardMode } from '/@/components/Widget'; 19 import { ModeSwitchButton, EnumTableCardMode } from '/@/components/Widget';
20 import { toRaw } from 'vue'; 20 import { toRaw } from 'vue';
21 import { DataActionModeEnum } from '/@/enums/toolEnum'; 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 import { ObjectModelCommandDeliveryModal } from './ObjectModelCommandDeliveryModal'; 28 import { ObjectModelCommandDeliveryModal } from './ObjectModelCommandDeliveryModal';
24 import { ModalParamsType } from '/#/utils'; 29 import { ModalParamsType } from '/#/utils';
25 import { AreaChartOutlined } from '@ant-design/icons-vue'; 30 import { AreaChartOutlined } from '@ant-design/icons-vue';
@@ -312,7 +317,7 @@ @@ -312,7 +317,7 @@
312 317
313 switch (item.type) { 318 switch (item.type) {
314 case DataTypeEnum.BOOL: 319 case DataTypeEnum.BOOL:
315 - return !!Number(item.value) ? item.boolOpen : item.boolClose; 320 + return !!Number(item.value) ? item.boolOpen! : item.boolClose!;
316 case DataTypeEnum.ENUM: 321 case DataTypeEnum.ENUM:
317 return item.enum?.[item.value as string]; 322 return item.enum?.[item.value as string];
318 default: 323 default:
@@ -328,6 +333,24 @@ @@ -328,6 +333,24 @@
328 } as ModalParamsType); 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 onMounted(() => { 354 onMounted(() => {
332 const element = unref(listElRef)?.$el; 355 const element = unref(listElRef)?.$el;
333 if (!element) return; 356 if (!element) return;
@@ -391,7 +414,10 @@ @@ -391,7 +414,10 @@
391 <SvgIcon 414 <SvgIcon
392 name="send-command" 415 name="send-command"
393 prefix="iconfont" 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 class="cursor-pointer text-lg text-blue-500" 421 class="cursor-pointer text-lg text-blue-500"
396 @click="handleSendCommandModal(item)" 422 @click="handleSendCommandModal(item)"
397 /> 423 />
@@ -87,6 +87,12 @@ export const getFormSchemas = ({ @@ -87,6 +87,12 @@ export const getFormSchemas = ({
87 isTCPTransport && 87 isTCPTransport &&
88 deviceRecord?.profileData.transportConfiguration.protocol === TCPProtocolTypeEnum.MODBUS_RTU; 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 return [ 96 return [
91 { 97 {
92 field: FormFieldsEnum.FUNCTION_TYPE, 98 field: FormFieldsEnum.FUNCTION_TYPE,
@@ -160,9 +166,20 @@ export const getFormSchemas = ({ @@ -160,9 +166,20 @@ export const getFormSchemas = ({
160 ![FunctionTypeEnum.SERVICE, FunctionTypeEnum.EVENTS].includes( 166 ![FunctionTypeEnum.SERVICE, FunctionTypeEnum.EVENTS].includes(
161 model[FormFieldsEnum.FUNCTION_TYPE] 167 model[FormFieldsEnum.FUNCTION_TYPE]
162 ) && !isTCPModbusProduct, 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 componentProps: { 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 params: { 183 params: {
167 dictCode: DictEnum.READ_WRITE_TYP, 184 dictCode: DictEnum.READ_WRITE_TYP,
168 }, 185 },