import React, { useEffect, useState } from 'react'; import { connect } from 'react-redux'; import { Spin, Table, Popconfirm, Button, Input } from 'antd'; import moment from 'moment'; import FileSaver from 'file-saver'; import BusinessDatabaseModal from '../components/businessDatabaseModal'; const BusinessFilesTable = (props) => { const { user, dispatch, actions, clientHeight, resourceCatalogId, resourceCatalogPath, isRequesting, metadataModels } = props; const { metadataManagement } = actions; const SortValues = { 'ascend': 'asc', 'descend': 'desc' }; const [tableData, setTableData] = useState([]); const [tableDataCount, setTableDataCount] = useState(0);//Table数据 const [updateAtSort, setUpdateAtSort] = useState('descend'); const [keywords, setKeywords] = useState(''); const [limit, setLimit] = useState(10); const [currentPage, setCurrentPage] = useState(1); const [selectedRowKeys, setSelectedRowKeys] = useState([]); const [selectedRows, setSelectedRows] = useState([]); const [modalVisible, setModalVisible] = useState(false); const [editData, setEditData] = useState({}); useEffect(() => { setUpdateAtSort('descend'); onSearch('descend'); }, []); const initData = (query = {}) => { dispatch(metadataManagement.getBusinessMetadataRestapis({ catalog: resourceCatalogId, keywords, orderBy: 'updateAt', ...query })).then(res => { if (res.success) { setTableData(res.payload.data.rows); setTableDataCount(res.payload.data.count); } }) } const onAdd = (record, add) => { dispatch(metadataManagement.getMetadataModels({ modelTypes: '接口' })).then(res => { if (res.success) { if (!add) setEditData({ title: '查看业务元数据', record: { path: '/' + resourceCatalogPath.join('/'), businessMetadata: record.businessMetadataRestapis, ...record, ...record.attributesParam } }); else setEditData({ add: true, title: '新建业务元数据', record: { businessMetadata: record.businessMetadataRestapis, ...record } }); setModalVisible(true); } }) } const confirmDelete = (id) => { dispatch(metadataManagement.delBusinessMetadataRestapis(id)).then(res => { if (res.success) { onSearch(); setModalVisible(false); } }); } const onTableChange = (pagination, filters, sorter) => { let limit = Number.parseInt(pagination.pageSize); let offset = Number.parseInt(pagination.current) - 1; setCurrentPage(pagination.current); setLimit(limit); let query = { offset, limit, orderDirection: SortValues[updateAtSort] }; if (sorter.columnKey === 'updateAt') { query.orderDirection = SortValues[sorter.order]; setUpdateAtSort(sorter.order); } setSelectedRowKeys([]); setSelectedRows([]); initData(query); } const columns = [ { title: '元数据名称', dataIndex: 'name', key: 'name', ellipsis: true, fixed: 'left', width: '7%', }, { title: '元数据类型', dataIndex: 'type', key: 'type', fixed: 'left', width: '6%', render: (text, record, index) => { return '接口' } }, { title: '信息资源名称', dataIndex: 'resourceName', key: 'resourceName', ellipsis: true, render: (text, record, index) => { let data = record.businessMetadataRestapis; if (data && data.length) return data[0].resourceName; else return '' } }, { title: '信息资源摘要', dataIndex: 'resourceAbstract', key: 'resourceAbstract', ellipsis: true, render: (text, record, index) => { let data = record.businessMetadataRestapis; if (data && data.length) return data[0].resourceAbstract; else return '' } }, { title: '信息资源提供方', dataIndex: 'resourceProvider', key: 'resourceProvider', ellipsis: true, render: (text, record, index) => { let data = record.businessMetadataRestapis; if (data && data.length) return data[0].resourceProvider; else return '' } }, { title: '信息资源分类', dataIndex: 'resourceCategory', key: 'resourceCategory', ellipsis: true, render: (text, record, index) => { let data = record.businessMetadataRestapis; if (data && data.length) return data[0].resourceCategory; else return '' } }, { title: '信息资源标识符', dataIndex: 'resourceId', key: 'resourceId', ellipsis: true, render: (text, record, index) => { let data = record.businessMetadataRestapis; if (data && data.length) return data[0].resourceId; else return '' } }, { title: '元数据标识符', dataIndex: 'metadataId', key: 'metadataId', ellipsis: true, render: (text, record, index) => { let data = record.businessMetadataRestapis; if (data && data.length) return data[0].metadataId; else return '' } }, { title: '创建者', dataIndex: 'createBy', key: 'createBy', ellipsis: true, render: (text, record, index) => { let data = record.businessMetadataRestapis; if (data && data.length) return data[0].user.username; else return '' } }, { title: '最后执行时间', dataIndex: 'updateAt', key: 'updateAt', width: '8%', sortOrder: updateAtSort, sorter: (a, b) => moment(a.updateAt).valueOf() - moment(b.updateAt).valueOf(), sortDirections: ['descend', 'ascend', 'descend'], render: (text, record, index) => { let data = record.businessMetadataRestapis; if (data && data.length) return data[0].updateAt && moment(data[0].updateAt).format('YYYY-MM-DD HH:mm:ss') else return '' } }, { title: '操作', dataIndex: 'action', width: '5%', fixed: 'right', render: (text, record) => { if (record.businessMetadataRestapis.length) { return