import type { ActionType, ProColumns } from '@ant-design/pro-components'; import { ProTable } from '@ant-design/pro-components'; import { message, Button, Space, Popconfirm, Input, Tag } from 'antd'; import React, { useRef, useState, useEffect } from 'react'; import { StatusEnum } from '../../enum'; import type { Dispatch } from 'umi'; import { connect } from 'umi'; import type { StateType } from '../../model'; import { deleteView, updateView, getViewList, getAllModelByDomainId } from '../../service'; import ViewCreateFormModal from './ViewCreateFormModal'; import moment from 'moment'; import styles from '../../components/style.less'; import { ISemantic } from '../../data'; import { ColumnsConfig } from '../../components/TableColumnRender'; import ViewSearchFormModal from './ViewSearchFormModal'; type Props = { disabledEdit?: boolean; modelList: ISemantic.IModelItem[]; dispatch: Dispatch; domainManger: StateType; }; const DataSetTable: React.FC = ({ disabledEdit = false, domainManger }) => { const { selectDomainId } = domainManger; const [viewItem, setViewItem] = useState(); const [saveLoading, setSaveLoading] = useState(false); const [loading, setLoading] = useState(false); const [createDataSourceModalOpen, setCreateDataSourceModalOpen] = useState(false); const [searchModalOpen, setSearchModalOpen] = useState(false); const [modelList, setModelList] = useState([]); const actionRef = useRef(); const updateViewStatus = async (modelData: ISemantic.IViewItem) => { setSaveLoading(true); const { code, msg } = await updateView({ ...modelData, }); setSaveLoading(false); if (code === 200) { queryViewList(); } else { message.error(msg); } }; const [viewList, setViewList] = useState([]); useEffect(() => { queryViewList(); queryDomainAllModel(); }, []); const queryViewList = async () => { setLoading(true); const { code, data, msg } = await getViewList(selectDomainId); setLoading(false); if (code === 200) { setViewList(data); } else { message.error(msg); } }; const queryDomainAllModel = async () => { const { code, data, msg } = await getAllModelByDomainId(selectDomainId); if (code === 200) { setModelList(data); } else { message.error(msg); } }; const columnsConfig = ColumnsConfig(); const columns: ProColumns[] = [ { dataIndex: 'id', title: 'ID', width: 80, search: false, }, { dataIndex: 'name', title: '数据集名称', search: false, }, { dataIndex: 'bizName', title: '英文名称', search: false, }, { dataIndex: 'status', title: '状态', search: false, render: columnsConfig.state.render, }, { dataIndex: 'createdBy', title: '创建人', search: false, }, { dataIndex: 'description', title: '描述', search: false, }, { dataIndex: 'updatedAt', title: '更新时间', search: false, render: (value: any) => { return value && value !== '-' ? moment(value).format('YYYY-MM-DD HH:mm:ss') : '-'; }, }, ]; if (!disabledEdit) { columns.push({ title: '操作', dataIndex: 'x', valueType: 'option', width: 250, render: (_, record) => { return ( { setViewItem(record); setCreateDataSourceModalOpen(true); }} > 编辑 { setViewItem(record); setSearchModalOpen(true); }} > 查询设置 {record.status === StatusEnum.ONLINE ? ( ) : ( )} { const { code, msg } = await deleteView(record.id); if (code === 200) { queryViewList(); } else { message.error(msg); } }} > 删除 ); }, }); } return ( <> { return false; }} size="small" options={{ reload: false, density: false, fullScreen: false }} toolBarRender={() => disabledEdit ? [<>] : [ , ] } /> {createDataSourceModalOpen && ( { queryViewList(); setCreateDataSourceModalOpen(false); }} onCancel={() => { setCreateDataSourceModalOpen(false); }} /> )} {searchModalOpen && ( { queryViewList(); setSearchModalOpen(false); }} onCancel={() => { setSearchModalOpen(false); }} /> )} ); }; export default connect(({ domainManger }: { domainManger: StateType }) => ({ domainManger, }))(DataSetTable);