import React, { useState, useEffect, useRef } from 'react'; import { Form, Input, Button, Table, Row, Col, Select, Modal, DatePicker, Space, message } from 'antd'; import { DeleteOutlined, PlusOutlined } from '@ant-design/icons'; import '@common/common.less'; import apiObj from '@api/index'; import AddRules from './addRules'; import FiledContext from './filed-context'; import { getValueFromEvent } from '@utils/index' const { post, api, xPost } = apiObj; const { RangePicker } = DatePicker; const { Option } = Select; function FieldRules() { useEffect(() => { getRegular() getTableName() getColumnName() getColumnVerifyPage(); }, []); const [addVisible, setAddVisible] = useState(false); //新增页面显示 const [logList, setLogList] = useState([]); const [total, setTotal] = useState(0); const [type, setType] = useState(0);//1新增 2修改 const [visible, setVisible] = useState(false); const [size, setSize] = useState(15); const [current, setCurrent] = useState(1); const [regularList, setRegularList] = useState([]);//正则式数据 const [selectedRowKeys, setSelectedRowKeys] = useState([]); const [tableList, setTableList] = useState([]);//表名称 const [colList, setColList] = useState([]);//字段名称 const [filedDetail, setFiledDetail] = useState(null);//详情数据 const [params, setParams] = useState({ pages: 1, current: 1, size: 15 }); const [form] = Form.useForm(); let data = { pages: 1, current: 1, size: size } //表格数据 function getColumnVerifyPage(param) { post(api.getColumnVerifyPage, param || params).then((res) => { if (res.data.code === 200) { const data = res.data.data; setLogList(data.records); setTotal(data.total) } }) } //获取正则式名称 function getRegular(name) { const param = { name: name || '' } post(api.getRegular, param).then((res) => { if (res.data.code === 200) { const data = res.data.data; setRegularList(data); } }) } //获取字段名 function getColumnName(columnCname, columnEname) { const param = { columnCname: columnCname, columnEname: columnEname } post(api.getColumnName, param).then((res) => { if (res.data.code === 200) { const data = res.data.data; setColList([...data]); } }) } //获取表名称 function getTableName(tableCname, tableEname) { const param = { tableCname: tableCname, tableEname: tableEname } post(api.getTableName, param).then((res) => { if (res.data.code === 200) { const data = res.data.data; setTableList([...data]); } }) } //表名称搜索(中文) function cnameSearch(val) { getTableName(val, '') } //表名称搜索(英文) function enameSearch(val) { getTableName('', val) } //字段名称搜索(中文) function colmeSearch(val) { getColumnName(val, '') } //字段名称搜索(英文) function coleneSearch(val) { getColumnName('', val) } //正则式名称搜索 function onSearch(val) { getRegular(val) } //删除记录 function delColumnVerify() { post(api.delColumnVerify, { ids: selectedRowKeys }).then((res) => { if (res.data.code === 200) { //刷新列表 getColumnVerifyPage() message.success(res.data.message); } else { message.warning(res.data.message || '操作失败,请重试~'); } }); showDelModal(false); } //删除弹窗确认 function showDelModal(flag) { if (flag && !selectedRowKeys.length) { message.warning("请先选择要删除的记录~", 1); return; } setVisible(flag) } //新增修改跳转 function showModal(type, id) { setAddVisible(true) setType(type) if (type == 1) { setFiledDetail({ columnList: [{ columnCname: undefined, columnEname: undefined, ableCname: undefined, tableEname: undefined, id: undefined }], standardValueList: [{ tit: null }] }) } else { getByIdColumnVerify(id) } } //详情 function getByIdColumnVerify(id) { const param = { columnId: id, } post(api.getByIdColumnVerify, param).then((res) => { if (res.data.code === 200) { const data = res.data.data; const arr = { columnList: [{ columnCname: data.columnCname, columnEname: data.columnEname, tableCname: data.tableCname, tableEname: data.tableEname, disable: true, id: data.id }], standardValueList: [{ tit: data.standardvalue, }], ...data } setFiledDetail(arr) } }) } function onSizeChange(current, pageSize) { params.current = current params.size = pageSize setSize(pageSize) setCurrent(current) setParams(params) getColumnVerifyPage() } function changePage(page, pageSize) { params.current = page params.size = pageSize setParams(params) setCurrent(page) getColumnVerifyPage() } function onSelectChange(selectedRowKeys) { setSelectedRowKeys(selectedRowKeys); }; //返回 function goBack() { setAddVisible(false); setFiledDetail(null) } const onFinish = (value) => { const param = { ...data, ...value, } setCurrent(1) setParams(param) getColumnVerifyPage(param); }; const onReset = () => { setCurrent(1) setParams(data) form.resetFields(); getColumnVerifyPage(data); }; const columns = [ { title: '序号', dataIndex: 'index', render: (text, record, index) => (current - 1) * params.size + index + 1, width: 60 }, { title: '表名称(中文)', dataIndex: 'tableCname', key: 'tableCname', width: 130, }, { title: '表名称(英文)', dataIndex: 'tableEname', key: 'tableEname', width: 130, }, { title: '字段名称(中文)', dataIndex: 'columnCname', key: 'columnCname', width: 145, }, { title: '字段名称(英文)', dataIndex: 'columnEname', key: 'columnEname', width: 145, }, { title: '是否必填', dataIndex: 'isRequired', key: 'isRequired', render: (text, record) => { return record.isRequired == 1 ? "是" : record.isRequired == 0 ? "否" : ''; } }, { title: '标准值维护', dataIndex: 'standardvalue', key: 'standardvalue', width: 110, render: (text, record) => { return (record.standardvalue || "-").length > 10 ? {record.standardvalue.substring(0, 10) + '...'} : record.standardvalue; } }, { title: '正则式名称', dataIndex: 'regular', key: 'regular', width: 110, render: (text, record) => { return record.regular || '-'; } }, { title: '说明', dataIndex: 'description', key: 'description', render: (text, record) => { return (record.description || "-").length > 20 ? {record.description.substring(0, 20) + '...'} : record.description; } }, { title: '操作', dataIndex: 'key', render: (text, record) => ( showModal(2, record.columnId)}>修改 ) } ]; const rowSelection = { selectedRowKeys, onChange: onSelectChange, }; if (addVisible && filedDetail) { return ( ) } return (

字段校验规则维护

record.columnId} pagination={{ pageSize: size, size: 'small', current: current, showSizeChanger: true, pageSizeOptions: ['15', '30', '60', '120'], showTotal: (total, range) => `第${range[0]}-${range[1]} 条/共 ${total} 条数据`, onShowSizeChange: (current, pageSize) => onSizeChange(current, pageSize), // 改变每页数量时更新显示 onChange: (page, pageSize) => changePage(page, pageSize),//点击页码事件 total: total }} /> showDelModal(false)} maskClosable={false} >

字段校验规则删除后将无法恢复,确认删除这{selectedRowKeys.length}条变更记录?

) } export default FieldRules;