import { MyColumns, MyPageContainer, MyProTableProps, useCurrentPermissions, } from '@/common'; import { Apis } from '@/gen/Apis'; import { HouseWorkOrdersLocationEnum, HouseWorkOrdersStatusEnum, HouseWorkOrdersTypeEnum, } from '@/gen/Enums'; import { ProTable } from '@ant-design/pro-components'; import { useSearchParams } from '@umijs/max'; import { Space } from 'antd'; import WorkOrderShow from '../list/modals/WorkOrderShow'; export default function Index({ title = '客户评价' }) { const [searchParams, setSearchParams]: any = useSearchParams(); const getCurrentPermissions = useCurrentPermissions(); let tableRender = (item: any, action: any) => { return getCurrentPermissions({ show: , }); }; return ( > {...MyProTableProps.props} // headerTitle={title} request={async (params, sort) => MyProTableProps.request( { ...params, type: [ HouseWorkOrdersTypeEnum.Repair.value, HouseWorkOrdersTypeEnum.Incident.value, HouseWorkOrdersTypeEnum.Complaint.value, ], is_evaluated: true, status: HouseWorkOrdersStatusEnum.Completed.value, }, sort, Apis.WorkOrder.HouseWorkOrders.List, ) } columns={[ MyColumns.ID({ search: false, }), MyColumns.EnumTag({ title: '工单状态', dataIndex: 'status', valueEnum: HouseWorkOrdersStatusEnum, search: false, }), MyColumns.EnumTag({ title: '工单类型', dataIndex: 'type', valueEnum: HouseWorkOrdersTypeEnum, search: false, }), MyColumns.EnumTag({ title: '报修位置', dataIndex: 'location', valueEnum: HouseWorkOrdersLocationEnum, }), { title: '位置信息', dataIndex: ['asset_house', 'full_name'], render: (_, record) => { return ( {record?.asset_house?.full_name ? record?.asset_house?.full_name : record?.asset_project?.name} ); }, search: { transform: (value) => { return { house_name: value }; }, }, }, { title: '工单描述', dataIndex: 'content', search: false, width: 120, // 关键:固定列宽(若父容器过窄,可设 minWidth: 200 优先保证列宽) render: (text) => (
{text}
), }, { title: '评价星级', dataIndex: 'evaluation_score', search: false, render: (dom: React.ReactNode) => { // 确保score是1-5之间的有效数字 const score = Number(dom); const validScore = Math.max( 0, Math.min(5, isNaN(score) ? 0 : score), ); // 创建对应数量的星星 return (
{Array(validScore) .fill(0) .map((_, index) => ( ))} {Array(5 - validScore) .fill(0) .map((_, index) => ( ))} {validScore}星
); }, }, // MyColumns.CreatedAt(), MyColumns.Option({ render: (_, item: any, index, action) => ( <>{tableRender(item, action)} ), }), ]} />
); }