Przeglądaj źródła

perf(components): 优化“自定义参数”组件

1. 修正字段必填项标识,根据协议进行区分
2. 根据网关参数名称自动填写用户参数名称
wangcong 3 tygodni temu
rodzic
commit
7c0d8b2b5f
1 zmienionych plików z 17 dodań i 4 usunięć
  1. 17 4
      src/views/setup-protocol/CustomParams.vue

+ 17 - 4
src/views/setup-protocol/CustomParams.vue

@@ -40,6 +40,7 @@ const { dictData: readFuncCode, getDictData: getReadFuncCode } = useDictData(Dic
 const { dictData: isHighFreqParam, getDictData: getIsHighFreqParam } = useDictData(DictCode.IsHighFreqParam);
 
 const customParamsForm = reactive<Partial<ProtocolParamInfo>>({
+  paramName: '',
   gatewayParamName: '',
   gatewayParamCode: '',
   unit: '',
@@ -96,6 +97,13 @@ const rules = computed<FormRules<ProtocolParamInfo>>(() => {
         trigger: 'blur',
       },
     ],
+    readFuncCode: [
+      {
+        required: true,
+        message: t('common.plzSelect', { name: t('setupProtocol.protocolParamFields.readFunctionCode') }),
+        trigger: 'blur',
+      },
+    ],
     addrLength: [
       {
         required: true,
@@ -170,6 +178,10 @@ onMounted(() => {
   });
 });
 
+const handleParamNameChange = () => {
+  customParamsForm.paramName = customParamsForm.gatewayParamName;
+};
+
 const handleReadWriteTypeChange = (_value: SelectValue, option: DefaultOptionType) => {
   customParamsForm.readWriteTypeCode = option.key;
 };
@@ -255,6 +267,7 @@ defineExpose({
               v-model:value="customParamsForm.gatewayParamName"
               class="protocol-input"
               :placeholder="$t('common.plzEnter')"
+              @change="handleParamNameChange"
             />
           </AFormItem>
         </ACol>
@@ -282,7 +295,7 @@ defineExpose({
           </AFormItem>
         </ACol>
         <ACol :span="8">
-          <AFormItem :label="$t('setupProtocol.protocolParamFields.readWriteType')" name="readWriteType">
+          <AFormItem :label="$t('setupProtocol.protocolParamFields.readWriteType')">
             <ASelect
               v-model:value="customParamsForm.readWriteType"
               class="protocol-input"
@@ -296,7 +309,7 @@ defineExpose({
           </AFormItem>
         </ACol>
         <ACol :span="8">
-          <AFormItem :label="$t('setupProtocol.protocolParamFields.parsingType')" name="parsingType">
+          <AFormItem :label="$t('setupProtocol.protocolParamFields.parsingType')">
             <ASelect
               v-model:value="customParamsForm.parsingType"
               class="protocol-input"
@@ -336,7 +349,7 @@ defineExpose({
           </AFormItem>
         </ACol>
         <ACol v-if="isModbusProtocol" :span="8">
-          <AFormItem :label="$t('setupProtocol.protocolParamFields.addressLength')" name="addrLength">
+          <AFormItem :label="$t('setupProtocol.protocolParamFields.addressLength')">
             <AInputNumber
               v-model:value="customParamsForm.addrLength"
               class="protocol-input"
@@ -379,7 +392,7 @@ defineExpose({
           </AFormItem>
         </ACol>
         <ACol v-if="isS7Protocol" :span="8">
-          <AFormItem :label="$t('setupProtocol.protocolParamFields.wordLength')" name="wordLength">
+          <AFormItem :label="$t('setupProtocol.protocolParamFields.wordLength')">
             <ASelect
               v-model:value="customParamsForm.wordLength"
               class="protocol-input"