import type { ActionType, ProColumns } from '@ant-design/pro-components'; import { ProTable } from '@ant-design/pro-components'; import { message, Button, Space, Popconfirm } from 'antd'; import React, { useRef, useState, useEffect } from 'react'; import { StatusEnum } from '../../enum'; import { useModel } from '@umijs/max'; import { deleteView, updateView, getDataSetList, 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'; import { toDatasetEditPage } from '@/pages/SemanticModel/utils'; type Props = { // dataSetList: ISemantic.IDatasetItem[]; disabledEdit?: boolean; }; const DataSetTable: React.FC = ({ disabledEdit = false }) => { const domainModel = useModel('SemanticModel.domainData'); const { selectDomainId } = domainModel; 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 [editFormStep, setEditFormStep] = useState(0); const updateViewStatus = async (modelData: ISemantic.IDatasetItem) => { setSaveLoading(true); const { code, msg } = await updateView({ ...modelData, }); setSaveLoading(false); if (code === 200) { queryDataSetList(); } else { message.error(msg); } }; const [viewList, setViewList] = useState(); useEffect(() => { if (!selectDomainId) { return; } queryDataSetList(); queryDomainAllModel(); }, [selectDomainId]); const queryDataSetList = async () => { setLoading(true); const { code, data, msg } = await getDataSetList(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, render: (name, record) => { return ( { toDatasetEditPage(record.domainId, record.id, 'relation'); // setEditFormStep(1); // setViewItem(record); // setCreateDataSourceModalOpen(true); }} > {name} ); }, }, { 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 ( { toDatasetEditPage(record.domainId, record.id); // setEditFormStep(0); // setViewItem(record); // setCreateDataSourceModalOpen(true); }} > 编辑 { setViewItem(record); setSearchModalOpen(true); }} > 查询设置 {record.status === StatusEnum.ONLINE ? ( ) : ( )} { const { code, msg } = await deleteView(record.id); if (code === 200) { queryDataSetList(); } else { message.error(msg); } }} > 删除 ); }, }); } return ( <> { return false; }} size="small" options={{ reload: false, density: false, fullScreen: false }} toolBarRender={() => disabledEdit ? [<>] : [ , ] } /> {createDataSourceModalOpen && ( { queryDataSetList(); setCreateDataSourceModalOpen(false); }} onCancel={() => { setCreateDataSourceModalOpen(false); }} /> )} {searchModalOpen && ( { queryDataSetList(); setSearchModalOpen(false); }} onCancel={() => { setSearchModalOpen(false); }} /> )} ); }; export default DataSetTable;