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) => (