import React, { useEffect, useMemo, useState } from 'react'; import { Button, Card, Checkbox, Form, Input, InputNumber, Radio, Select, Space, Switch, Table, Tabs, Typography, } from 'antd'; import { PlusOutlined } from '@ant-design/icons'; import styles from './Zdcj.less'; const { Text } = Typography; const ruleTypeLabel = { consistency: '一致性', completeness: '完整性', accuracy: '准确性', other: '其他', }; const Zdcj = () => { const [activeTab, setActiveTab] = useState('rules'); const [selectedRowKeys, setSelectedRowKeys] = useState([]); const [selectedRuleId, setSelectedRuleId] = useState('r-4'); const [form] = Form.useForm(); const ruleList = useMemo( () => new Array(9).fill(0).map((_, idx) => { const id = `r-${idx + 1}`; return { id, name: '电表漏电增值查', type: 'consistency', enabled: idx !== 1, lastRun: '2025-10-15 14:30:00', device: 'Lucy', logic: '内容信息', params: [ { key: '告警阈值', value: 3 }, { key: '检查周期', value: 3 }, { key: '异常级别', value: 3 }, ], autoAction: 'lastValid', notify: ['system'], }; }), [], ); const currentRule = useMemo( () => ruleList.find((r) => r.id === selectedRuleId) || ruleList[0], [ruleList, selectedRuleId], ); useEffect(() => { if (!currentRule) return; form.setFieldsValue({ ruleName: currentRule.name, ruleType: currentRule.type, applyDevice: currentRule.device, checkLogic: currentRule.logic, params: currentRule.params, autoAction: currentRule.autoAction, notify: currentRule.notify, }); }, [currentRule, form]); const columns = useMemo( () => [ { title: '规则名称', dataIndex: 'name', key: 'name', ellipsis: true, }, { title: '类型', dataIndex: 'type', key: 'type', width: 100, render: (v) => ruleTypeLabel[v] || '--', }, { title: '状态', dataIndex: 'enabled', key: 'enabled', width: 90, align: 'center', render: (v) => e?.stopPropagation?.()} />, }, { title: '最后执行', dataIndex: 'lastRun', key: 'lastRun', width: 170, }, ], [], ); const leftContent = useMemo(() => { if (activeTab !== 'rules') { return
该功能待接入接口/页面
; } return ( <>
当前生效规则/总计:12
setSelectedRowKeys(keys), columnWidth: 44, }} rowClassName={(record) => record.id === selectedRuleId ? styles.selectedRow : '' } onRow={(record) => ({ onClick: () => setSelectedRuleId(record.id), })} /> ); }, [activeTab, columns, ruleList, selectedRowKeys, selectedRuleId]); return (
} > {leftContent}
详情} extra={ } bodyStyle={{ padding: 16 }} >
一致性 完整性 准确性 其他
参数设置
{[0, 1, 2].map((idx) => (
{`参数${idx + 1}:`}