潘志宝
2024-09-14 b05c43105564b174de6476835e7c55bca21fcb31
src/views/data/channel/modbus/ModBusDeviceForm.vue
@@ -78,6 +78,7 @@
</template>
<script lang="ts" setup>
import * as ModBusApi from '@/api/data/channel/modbus'
  import {isIP, isPositiveInteger} from '@/utils/validate'
defineOptions({ name: 'DataModBusDeviceForm' })
@@ -92,21 +93,43 @@
    name: undefined,
    address: undefined,
    port: undefined,
    connectInactivityTimeout: undefined,
    reconnectInterval: undefined,
    attemptsBeforeTimeout: undefined,
    waitToRetryMilliseconds: undefined,
    readTimeout: undefined,
    writeTimeout: undefined,
    useOptimizedBlockRead: undefined,
    projectReference: undefined
    connectInactivityTimeout: "",
    reconnectInterval: "5000",
    attemptsBeforeTimeout: "3",
    waitToRetryMilliseconds: "250",
    readTimeout: "3000",
    writeTimeout: "3000",
    useOptimizedBlockRead: "true",
    projectReference: ''
  })
  const validateIP = (rule, value, callback) => {
    if (!isIP(value)) {
      callback(new Error('IP地址不正确'))
    } else {
      callback()
    }
  }
  const validateNum = (rule, value, callback) => {
    if (!isPositiveInteger(value)) {
      callback(new Error('格式不正确'))
    } else {
      callback()
    }
  }
  const formRules = reactive({
    name: [{ required: true, message: '设备名称不能为空', trigger: 'blur' }],
    address: [{ required: true, message: 'IP地址不能为空', trigger: 'blur' }],
    port: [{ required: true, message: '端口不能为空', trigger: 'blur' }]
    address: [
      {required: true, message: 'IP地址不能为空', trigger: 'blur'},
      {validator: validateIP, trigger: 'blur'}
    ],
    port: [
      {required: true, message: '端口不能为空', trigger: 'blur'},
      {validator: validateNum, trigger: 'blur'}
    ]
  })
  const formRef = ref() // 表单 Ref
  /** 打开弹窗 */
  const open = async (type: string, id?: number) => {
@@ -159,14 +182,14 @@
      name: undefined,
      address: undefined,
      port: undefined,
      connectInactivityTimeout: undefined,
      reconnectInterval: undefined,
      attemptsBeforeTimeout: undefined,
      waitToRetryMilliseconds: undefined,
      readTimeout: undefined,
      writeTimeout: undefined,
      useOptimizedBlockRead: undefined,
      projectReference: undefined
      connectInactivityTimeout: "",
      reconnectInterval: "5000",
      attemptsBeforeTimeout: "3",
      waitToRetryMilliseconds: "250",
      readTimeout: "3000",
      writeTimeout: "3000",
      useOptimizedBlockRead: "true",
      projectReference: ''
    }
    formRef.value?.resetFields()
  }