import { MyButtons, MyColumns, MyPageContainer, MyProTableProps, } from '@/common'; import { Apis } from '@/gen/Apis'; import { GoodsReleasesAuditStatusEnum, GoodsReleasesPassedTypeEnum, } from '@/gen/Enums'; import { ProTable } from '@ant-design/pro-components'; import { useNavigate } from '@umijs/max'; import { Space, Tooltip } from 'antd'; import Audit from './modals/Audit'; export default function Index({ title = '物品放行' }) { const navigate = useNavigate(); return ( MyProTableProps.request( params, sort, Apis.GoodsReleases.GoodsReleases.List, ) } headerTitle={`${title}列表`} toolBarRender={() => [ { navigate('/goods_releases/list/pages/create'); }} title="物品放行申请" />, ]} columns={[ MyColumns.ID({ search: false, }), MyColumns.EnumTag({ title: '申请状态', dataIndex: 'status', valueEnum: GoodsReleasesAuditStatusEnum, }), { title: '房屋', dataIndex: ['asset_house', 'full_name'], search: false, }, { title: '申请人', dataIndex: 'apply_name', search: false, }, { title: '通行日期', dataIndex: 'passed_time', search: false, }, MyColumns.EnumTag({ title: '通行类型', dataIndex: 'passed_type', valueEnum: GoodsReleasesPassedTypeEnum, }), { title: '物品清单', render(_, record) { // 确保content始终是数组类型 const content = Array.isArray(record?.goods) ? record.goods : []; // 过滤有效数据 const validItems = content.filter( (item: any) => item?.name && item?.number, ); // 表格中显示的简化内容(最多显示2项) const displayItems = validItems.slice(0, 1); return ( {validItems.length > 0 ? ( validItems.map((item: any, index: number) => (
物品名称: {item.name || '-'}
数量: {item.number || '-'}
说明: {item.remark || '-'}
)) ) : (
无物品信息
)} } placement="topLeft" >
{validItems.length > 0 ? ( <> {displayItems.map((item: any, index: number) => (
{item.name} 数量: {item.number}
))} {validItems.length > 1 && (
+{validItems.length - 1} 更多物品
)} ) : ( - )}
); }, search: false, }, MyColumns.CreatedAt(), MyColumns.Option({ render: (_, item: any, index, action) => ( {item?.status === GoodsReleasesAuditStatusEnum.Pending.value && ( )} { navigate(`/goods_releases/list/pages/review?id=${item.id}`); }} title="查看并审核" /> ), }), ]} />
); }