import React, { useEffect, useState } from 'react'; import { message, Space, Table, Tag } from 'antd'; import type { TablePaginationConfig, TableProps } from 'antd'; import { FilterValue, SorterResult, TableCurrentDataSource } from 'antd/es/table/interface'; import { SoftwareControl } from '@/services/services/software'; import { useModel } from '@umijs/max'; import moment from 'moment'; const columns: TableProps['columns'] = [ { title: '软件代码', dataIndex: 'software', width: 100, key: 'softwareCode', render: (software) => {software.softwareCode} }, { title: '软件名称', dataIndex: 'software', key: 'softwareName', render: (software) => {software.softwareName}, }, { title: '到期时间', dataIndex: 'expirationTime', key: 'expirationTime', width: 200, render: (expirationTime) => expirationTime ? moment(expirationTime).format('YYYY-MM-DD HH:mm:ss') : 'null', }, { title: '是否永久', dataIndex: 'isForever', key: 'isForever', width: 100, render: (isForever) => isForever ? : , } ]; interface UserSoftwareInfoProps { userId?: number; } const UserSoftwareInfo: React.FC = ({ userId }) => { const [data, setData] = React.useState([]); const [loading, setLoading] = React.useState(false); const [messageApi, messageHolder] = message.useMessage(); const [tableParams, setTableParams] = useState({ pagination: { current: 1, pageSize: 10, showQuickJumper: true, totalBoundaryShowSizeChanger: true, }, }); async function QueryUserSoftwareControlCollection() { try { if (userId == null) { messageApi.error("用户ID不能为空"); } setLoading(true); let res = await SoftwareControl.GetUserSoftwareControlCollection(tableParams, { userId: userId }); setData(res.collection); } catch (error: any) { messageApi.error(error.message); } finally { setLoading(false); } } useEffect(() => { QueryUserSoftwareControlCollection().then(); }, []); async function TableChangeHandle(pagination: TablePaginationConfig, filters: Record, sorter: SorterResult | SorterResult[], extra: TableCurrentDataSource): Promise { await QueryUserSoftwareControlCollection(); setTableParams({ pagination: { ...tableParams.pagination, current: pagination.current, pageSize: pagination.pageSize, } }); } return (
columns={columns} dataSource={data} rowKey={(record) => record.id} pagination={tableParams.pagination} onChange={TableChangeHandle} loading={loading} /> {messageHolder}
); }; export default UserSoftwareInfo;