diff --git a/src/views/DataCollect/Collector/Point/Save/SaveModBus.vue b/src/views/DataCollect/Collector/Point/Save/SaveModBus.vue
index a3047b19..416a52c2 100644
--- a/src/views/DataCollect/Collector/Point/Save/SaveModBus.vue
+++ b/src/views/DataCollect/Collector/Point/Save/SaveModBus.vue
@@ -23,7 +23,12 @@
- PLC地址: {{
- InitAddress[formData.configuration.function] +
- Number(formData.pointKey) || 0
- }}
+ PLC地址: {{ plc }}
();
const id = props.data.id;
const collectorId = props.data.collectorId;
const provider = props.data.provider;
-const oldPointKey = props.data.pointKey;
+const oldPointKey = props.data?.configuration?.parameter?.address;
const InitAddress = {
Coils: 1,
@@ -305,7 +308,7 @@ const formData = ref({
quantity: 1,
writeByteCount: '',
byteCount: 2,
- address: '',
+ address: undefined,
},
codec: {
provider: undefined,
@@ -315,6 +318,7 @@ const formData = ref({
},
},
},
+ address: undefined,
pointKey: undefined,
accessModes: [],
nspwc: false,
@@ -322,6 +326,11 @@ const formData = ref({
description: '',
});
+const plc = computed(() =>{
+ const configuration = formData.value.configuration
+ return configuration.function !== undefined && formData.value.address !== undefined ? InitAddress[configuration.function] + Number(formData.value.address) : 0
+})
+
const handleOk = async () => {
const data = await formRef.value?.validate();
delete data?.nspwc;
@@ -337,15 +346,16 @@ const handleOk = async () => {
provider,
collectorId,
interval,
+ pointKey: plc.value,
};
- // address是多余字段,但是react版本上使用到了这个字段
params.configuration.parameter = {
- ...params.configuration.parameter,
- address: data?.pointKey,
+ ...params.configuration.parameter,
+ address: data?.address,
};
loading.value = true;
+
const response = !id
? await savePointBatch(params).catch(() => {})
: await updatePoint(id, { ...props.data, ...params }).catch(() => {});
@@ -394,13 +404,23 @@ const checkProvider = (_rule: Rule, value: string): Promise =>
}
});
+const checkFunction = (_: any, value: string) => {
+ if (value) {
+ formRef.value!.validateFields('address')
+ }
+ return Promise.resolve('');
+}
const checkPointKey = (_rule: Rule, value: string): Promise =>
new Promise(async (resolve, reject) => {
+ console.log(value, formData.value!.configuration?.function)
if (value || Number(value) === 0) {
if (Number(oldPointKey) === Number(value)) return resolve('');
if (typeof value === 'object') return resolve('');
+ if (!formData.value!.configuration?.function) return resolve('');
+
+ const plc = InitAddress[formData.value!.configuration?.function] + Number(value)
const res: any = await _validateField(collectorId, {
- pointKey: value,
+ pointKey: plc,
});
return res.result?.passed ? resolve('') : reject(res.result.reason);
} else {
@@ -443,6 +463,7 @@ watch(
const { writeByteCount, byteCount } =
_value.configuration.parameter;
formData.value = _value;
+ formData.value.address = _value.configuration?.parameter?.address
if (!!_value.accessModes[0]?.value) {
formData.value.accessModes = value.accessModes.map(
(i: any) => i.value,