Commit 756b7d6c968bf8b8a16d8970d05968394937daeb
Merge branch 'fix/DEFECT-2118' into 'main_dev'
fix: 修复设备填写设备地址 See merge request yunteng/thingskit-front!1384
Showing
2 changed files
with
23 additions
and
6 deletions
| ... | ... | @@ -202,6 +202,13 @@ export const step1Schemas: FormSchema[] = [ |
| 202 | 202 | }, |
| 203 | 203 | }, |
| 204 | 204 | { |
| 205 | + field: 'addressType', | |
| 206 | + label: '', | |
| 207 | + component: 'Input', | |
| 208 | + show: false, | |
| 209 | + defaultValue: 'HEX', | |
| 210 | + }, | |
| 211 | + { | |
| 205 | 212 | field: 'addressCode', |
| 206 | 213 | label: '地址码', |
| 207 | 214 | dynamicRules({ values }) { |
| ... | ... | @@ -211,7 +218,7 @@ export const step1Schemas: FormSchema[] = [ |
| 211 | 218 | values?.transportType === TransportTypeEnum.TCP && |
| 212 | 219 | values?.tcpDeviceProtocol === TCPProtocolTypeEnum.MODBUS_RTU, |
| 213 | 220 | message: '地址码范围为00~FF', |
| 214 | - pattern: /^[0-9A-Fa-f]{1,2}$/, | |
| 221 | + pattern: values?.addressType === 'HEX' ? /^[0-9A-Fa-f]{2}$/ : /^[0-9A-Fa-f]{1,2}$/, | |
| 215 | 222 | }, |
| 216 | 223 | ]; |
| 217 | 224 | }, |
| ... | ... | @@ -219,10 +226,15 @@ export const step1Schemas: FormSchema[] = [ |
| 219 | 226 | component: 'HexInput', |
| 220 | 227 | changeEvent: 'update:value', |
| 221 | 228 | valueField: 'value', |
| 222 | - componentProps: { | |
| 223 | - type: InputTypeEnum.HEX, | |
| 224 | - maxValue: parseInt('FF', 16), | |
| 225 | - placeholder: '请输入寄存器地址', | |
| 229 | + componentProps: ({ formModel }) => { | |
| 230 | + return { | |
| 231 | + type: InputTypeEnum.HEX, | |
| 232 | + maxValue: parseInt('FF', 16), | |
| 233 | + placeholder: '请输入寄存器地址', | |
| 234 | + onHexChange: (e) => { | |
| 235 | + formModel.addressType = e; | |
| 236 | + }, | |
| 237 | + }; | |
| 226 | 238 | }, |
| 227 | 239 | ifShow: ({ values }) => { |
| 228 | 240 | return ( | ... | ... |
| ... | ... | @@ -23,7 +23,7 @@ |
| 23 | 23 | } |
| 24 | 24 | ); |
| 25 | 25 | |
| 26 | - const emits = defineEmits(['update:value', 'change']); | |
| 26 | + const emits = defineEmits(['update:value', 'change', 'hexChange']); | |
| 27 | 27 | |
| 28 | 28 | const typOptions = Object.values(InputTypeEnum).map((value) => ({ label: value, value })); |
| 29 | 29 | |
| ... | ... | @@ -114,6 +114,10 @@ |
| 114 | 114 | ? getHexToDec(unref(getInputValue)!) |
| 115 | 115 | : `${hexWithPrefix ? '0x' : ''}${Number(unref(getInputValue)).toString(16).toUpperCase()}`; |
| 116 | 116 | }); |
| 117 | + | |
| 118 | + const handleInputTypeChange = (e) => { | |
| 119 | + emits('hexChange', e); | |
| 120 | + }; | |
| 117 | 121 | </script> |
| 118 | 122 | |
| 119 | 123 | <template> |
| ... | ... | @@ -124,6 +128,7 @@ |
| 124 | 128 | class="min-w-20" |
| 125 | 129 | :options="typOptions" |
| 126 | 130 | :disabled="disabled" |
| 131 | + @change="handleInputTypeChange" | |
| 127 | 132 | /> |
| 128 | 133 | <Input v-bind="$attrs" v-model:value="getInputValue" class="!w-full" :disabled="disabled" /> |
| 129 | 134 | <div class="min-w-14 h-full px-2 flex-grow flex-shrink-0 text-center leading-8 bg-gray-200"> | ... | ... |