diff --git a/src/views/DataCollect/Channel/Save/index.vue b/src/views/DataCollect/Channel/Save/index.vue index 0a83c55c..8e01b54e 100644 --- a/src/views/DataCollect/Channel/Save/index.vue +++ b/src/views/DataCollect/Channel/Save/index.vue @@ -37,16 +37,15 @@ :name="['configuration', 'host']" :rules="FormValidate.host" > -
+ @@ -80,7 +79,7 @@ - { const params = await formRef.value?.validate(); loading.value = true; const response = !id - ? await save(params) - : await update(id, { ...props.data, ...params }); - if (response.status === 200) { - emit('change', true); - } + ? await save(params).catch(() => {}) + : await update(id, { ...props.data, ...params }).catch(() => {}); + emit('change', response?.status === 200); loading.value = false; formRef.value?.resetFields(); }; @@ -240,29 +240,33 @@ const handleCancel = () => { formRef.value?.resetFields(); }; +const changeAuthType = (value: Array) => { + formData.value.configuration.authType = value[0]; +}; + const filterOption = (input: string, option: any) => { return option.label.toLowerCase().indexOf(input.toLowerCase()) >= 0; }; const getOptionsList = async () => { for (let key in Options.value) { - const res = await queryOptionsList(key); - Options.value[key] = res.result.map((item) => ({ + const res: any = await queryOptionsList(key); + Options.value[key] = res.result.map((item: any) => ({ label: item?.text || item, value: item?.value || item, })); } }; const getCertificateList = async () => { - const res = await queryCertificateList(); - certificateList.value = res.result.map((item) => ({ + const res: any = await queryCertificateList(); + certificateList.value = res.result.map((item: any) => ({ value: item.id, label: item.name, })); }; const getProvidersList = async () => { - const resp = await getProviders(); + const resp: any = await getProviders(); if (resp.status === 200) { const list = [ { label: 'OPC UA', value: 'OPC_UA' }, @@ -273,7 +277,9 @@ const getProvidersList = async () => { (item: any) => item.id === 'modbus-tcp' || item.id === 'opc-ua', ) .map((it: any) => (it?.id === 'opc-ua' ? 'OPC_UA' : 'MODBUS_TCP')); - const providers = list.filter((item: any) => arr.includes(item.value)); + const providers: any = list.filter((item: any) => + arr.includes(item.value), + ); providersList.value = providers; if (arr.includes('OPC_UA')) { getOptionsList(); @@ -286,30 +292,10 @@ getCertificateList(); watch( () => props.data, (value) => { - if (value.id) formData.value = value; + if (value.id) formData.value = value as FormDataType; }, { immediate: true, deep: true }, ); - + diff --git a/src/views/DataCollect/Channel/data.ts b/src/views/DataCollect/Channel/data.ts index 27c3d759..c5fba7be 100644 --- a/src/views/DataCollect/Channel/data.ts +++ b/src/views/DataCollect/Channel/data.ts @@ -1,5 +1,6 @@ import { validateField } from '@/api/data-collect/channel'; import { FormDataType } from './type.d'; +import type { Rule } from 'ant-design-vue/lib/form'; export const FormState: FormDataType = { name: '', @@ -44,7 +45,7 @@ export const TiTlePermissionButtonStyle = { overflow: 'hidden', 'text-overflow': 'ellipsis', 'white-space': 'nowrap', - width: 'calc(100%-100px)', + width: 'calc(100%-150px)', // width: '60%', }; @@ -61,10 +62,8 @@ export const regDomain = new RegExp( ); export const checkEndpoint = (_rule: Rule, value: string): Promise => new Promise(async (resolve, reject) => { - if (value) { - const res = await validateField(value); - return res.result.passed ? resolve('') : reject(res.result.reason); - } + const res = await validateField(value); + return res.result.passed ? resolve('') : reject(res.result.reason); }); export const FormValidate = { name: [ @@ -89,7 +88,7 @@ export const FormValidate = { }, { pattern: regOnlyNumber, - message: '请输入1-65535之间的正整数', + message: '请输入0-65535之间的正整数', }, ], @@ -100,7 +99,7 @@ export const FormValidate = { }, { validator: checkEndpoint, - trigger: 'blur', + // trigger: 'blur', }, ], @@ -139,3 +138,70 @@ export const FormValidate = { description: [{ max: 200, message: '最多可输入200个字符' }], }; +export const columns = [ + { + title: '通道名称', + dataIndex: 'name', + key: 'name', + ellipsis: true, + fixed: 'left', + search: { + type: 'string', + }, + }, + { + title: '通讯协议', + dataIndex: 'provider', + key: 'provider', + ellipsis: true, + search: { + type: 'select', + options: [ + { label: 'OPC_UA', value: 'OPC_UA' }, + { label: 'MODBUS_TCP', value: 'MODBUS_TCP' }, + ], + }, + }, + { + title: '状态', + dataIndex: 'state', + key: 'state', + ellipsis: true, + scopedSlots: true, + search: { + type: 'select', + options: [ + { label: '正常', value: 'enabled' }, + { label: '禁用', value: 'disabled' }, + ], + }, + }, + { + title: '运行状态', + dataIndex: 'runningState', + key: 'runningState', + ellipsis: true, + scopedSlots: true, + search: { + type: 'select', + options: [ + { label: '运行中', value: 'running' }, + { label: '部分错误', value: 'partialError' }, + { label: '错误', value: 'failed' }, + ], + }, + }, + { + title: '说明', + dataIndex: 'description', + key: 'description', + ellipsis: true, + }, + { + title: '操作', + key: 'action', + fixed: 'right', + width: 200, + scopedSlots: true, + }, +]; diff --git a/src/views/DataCollect/Channel/index.vue b/src/views/DataCollect/Channel/index.vue index c6123771..41d4ab31 100644 --- a/src/views/DataCollect/Channel/index.vue +++ b/src/views/DataCollect/Channel/index.vue @@ -1,7 +1,11 @@