import { Col, Form, Input, InputNumber, Modal, Row, Select } from 'antd'; import { useEffect, useState } from 'react'; import { service } from '@/pages/link/Channel/Opcua'; import { onlyMessage } from '@/utils/util'; interface Props { data: any; close: Function; opcId: string; } const SavePoint = (props: Props) => { const [form] = Form.useForm(); const [dataMode, setDataMode] = useState(''); const handleSave = async () => { const formData = await form.validateFields(); if (props.data.id) { service .editPoint(props.data.id, { opcUaId: props.opcId, ...formData, }) .then((res) => { if (res.status === 200) { onlyMessage('保存成功'); props.close(); } }); } else { service .addPoint({ opcUaId: props.opcId, ...formData, }) .then((res) => { if (res.status === 200) { onlyMessage('保存成功'); props.close(); } }); } }; useEffect(() => { console.log(props.data); if (props.data.id) { setDataMode(props.data.dataMode?.value); } }, []); return ( { props.close(); }} >
({ validator(_, value) { const item = value.substring(0, 2); if (item === 'i=' || item === 's=' || item === 'g=' || item === 'b=') { return Promise.resolve(); } return Promise.reject(new Error('前两个字符必须为i=、s=、g=、b=中的一个')); }, }), ]} >
订阅:订阅OPC UA点位数据发生变化后的值
拉取:拉取OPC UA点位数据值
拉取变更值:拉取OPC UA点位数据值,并丢弃处理未发生变化的数据值
被动读取:不会定时读取OPC UA点位数据值,仅由平台发起读取点位数据命令时返回数据
} required rules={[{ required: true, message: '数据模式必选' }]} >
{dataMode !== 'pullPassive' && ( {dataMode === 'sub' && ( ({ validator(_, value) { if (value !== 0 || /(^[1-9]\d*$)/.test(value)) { return Promise.resolve(); } return Promise.reject(new Error('请输入正整数')); }, }), ]} > ms} /> )} {(dataMode === 'pullChange' || dataMode === 'pull') && ( ({ validator(_, value) { if (value !== 0 || /(^[1-9]\d*$)/.test(value)) { return Promise.resolve(); } return Promise.reject(new Error('请输入正整数')); }, }), ]} > ms} /> )} )}
); }; export default SavePoint;