开发供应商评价模块
This commit is contained in:
@ -29,28 +29,7 @@ import styles from './supplierTaskManage.less';
|
||||
const { Option } = Select;
|
||||
const { RangePicker } = DatePicker;
|
||||
|
||||
// 任务记录类型
|
||||
interface TaskRecord {
|
||||
id: string;
|
||||
taskName: string;
|
||||
taskCode: string;
|
||||
taskType: string;
|
||||
templateName: string;
|
||||
status: string;
|
||||
startTime: string;
|
||||
endTime: string;
|
||||
createBy: string;
|
||||
createTime: string;
|
||||
updateBy?: string;
|
||||
updateTime?: string;
|
||||
key: string;
|
||||
}
|
||||
|
||||
interface SearchParams {
|
||||
taskName?: string;
|
||||
status?: string;
|
||||
dateRange?: [string, string];
|
||||
}
|
||||
// 删除本地接口定义,使用全局类型定义
|
||||
|
||||
const SupplierTaskManage: React.FC = () => {
|
||||
const [selectedRowKeys, setSelectedRowKeys] = useState<React.Key[]>([]);
|
||||
@ -62,8 +41,8 @@ const SupplierTaskManage: React.FC = () => {
|
||||
const [currentId, setCurrentId] = useState<string>('');
|
||||
|
||||
// 查看详情数据
|
||||
const [viewData, setViewData] = useState<TaskRecord | null>(null);
|
||||
const [taskData, setTaskData] = useState<TaskRecord[]>([]);
|
||||
const [viewData, setViewData] = useState<SupplierEvaluate.TaskRecord | null>(null);
|
||||
const [taskData, setTaskData] = useState<SupplierEvaluate.TaskRecord[]>([]);
|
||||
const [pagination, setPagination] = useState<TablePaginationConfig>({
|
||||
current: 1,
|
||||
pageSize: 10,
|
||||
@ -72,13 +51,13 @@ const SupplierTaskManage: React.FC = () => {
|
||||
showQuickJumper: true,
|
||||
showTotal: (total) => `共 ${total} 条记录`,
|
||||
});
|
||||
const [searchParams, setSearchParams] = useState<SearchParams>({});
|
||||
const [searchParams, setSearchParams] = useState<SupplierEvaluate.TaskSearchParams>({});
|
||||
|
||||
// 模拟获取任务列表
|
||||
const fetchTaskList = async (
|
||||
current = 1,
|
||||
pageSize = 10,
|
||||
params: SearchParams = searchParams,
|
||||
params: SupplierEvaluate.TaskSearchParams = searchParams,
|
||||
) => {
|
||||
// 更新搜索参数状态
|
||||
if (params !== searchParams) {
|
||||
@ -90,7 +69,7 @@ const SupplierTaskManage: React.FC = () => {
|
||||
// 模拟API请求
|
||||
setTimeout(() => {
|
||||
// 模拟数据
|
||||
const mockData: TaskRecord[] = Array.from({ length: 35 }).map((_, index) => {
|
||||
const mockData: SupplierEvaluate.TaskRecord[] = Array.from({ length: 35 }).map((_, index) => {
|
||||
const id = `${index + 1}`;
|
||||
const status = Object.values(TaskStatus)[Math.floor(Math.random() * 3)];
|
||||
const taskType = Math.random() > 0.5 ? TaskType.REGULAR : TaskType.SPECIAL;
|
||||
@ -155,7 +134,7 @@ const SupplierTaskManage: React.FC = () => {
|
||||
}, []);
|
||||
|
||||
// 处理查看
|
||||
const handleView = (record: TaskRecord) => {
|
||||
const handleView = (record: SupplierEvaluate.TaskRecord) => {
|
||||
setCurrentId(record.id);
|
||||
setIsViewMode(true);
|
||||
setViewData(record);
|
||||
@ -163,7 +142,7 @@ const SupplierTaskManage: React.FC = () => {
|
||||
};
|
||||
|
||||
// 处理编辑
|
||||
const handleEdit = (record: TaskRecord) => {
|
||||
const handleEdit = (record: SupplierEvaluate.TaskRecord) => {
|
||||
setIsEdit(true);
|
||||
setIsViewMode(false);
|
||||
setCurrentId(record.id);
|
||||
@ -172,7 +151,7 @@ const SupplierTaskManage: React.FC = () => {
|
||||
};
|
||||
|
||||
// 处理删除
|
||||
const showDeleteConfirm = (record: TaskRecord) => {
|
||||
const showDeleteConfirm = (record: SupplierEvaluate.TaskRecord) => {
|
||||
Modal.confirm({
|
||||
title: '确认删除',
|
||||
icon: <ExclamationCircleOutlined />,
|
||||
@ -197,7 +176,7 @@ const SupplierTaskManage: React.FC = () => {
|
||||
};
|
||||
|
||||
// 处理发布/取消
|
||||
const handlePublishStatus = (record: TaskRecord) => {
|
||||
const handlePublishStatus = (record: SupplierEvaluate.TaskRecord) => {
|
||||
const isInProgress = record.status === TaskStatus.PROCESSING;
|
||||
const actionText = isInProgress ? '取消' : '开始';
|
||||
|
||||
@ -238,7 +217,7 @@ const SupplierTaskManage: React.FC = () => {
|
||||
const columns = [
|
||||
{
|
||||
title: '序号',
|
||||
render: (_: any, __: TaskRecord, index: number) =>
|
||||
render: (_: any, __: SupplierEvaluate.TaskRecord, index: number) =>
|
||||
(pagination.current! - 1) * pagination.pageSize! + index + 1,
|
||||
width: 80,
|
||||
},
|
||||
@ -286,7 +265,7 @@ const SupplierTaskManage: React.FC = () => {
|
||||
key: 'action',
|
||||
width: 180,
|
||||
align: 'center' as const,
|
||||
render: (_: unknown, record: TaskRecord) => (
|
||||
render: (_: unknown, record: SupplierEvaluate.TaskRecord) => (
|
||||
<Space size="middle">
|
||||
<Button type="link" onClick={() => handleView(record)}>
|
||||
查看
|
||||
@ -354,7 +333,7 @@ const SupplierTaskManage: React.FC = () => {
|
||||
// 处理搜索
|
||||
const handleSearch = (values: any) => {
|
||||
const { dateRange, ...rest } = values;
|
||||
const params: SearchParams = { ...rest };
|
||||
const params: SupplierEvaluate.TaskSearchParams = { ...rest };
|
||||
|
||||
if (dateRange && dateRange.length === 2) {
|
||||
params.dateRange = [dateRange[0].format('YYYY-MM-DD'), dateRange[1].format('YYYY-MM-DD')];
|
||||
@ -544,26 +523,23 @@ const SupplierTaskManage: React.FC = () => {
|
||||
<Form.Item name="dateRange" label="评价时间">
|
||||
<RangePicker />
|
||||
</Form.Item>
|
||||
<Form.Item className="filter-btns">
|
||||
<Button type="primary" htmlType="submit" icon={<SearchOutlined />} onClick={() => form.submit()}>
|
||||
搜索
|
||||
</Button>
|
||||
<Button
|
||||
type="primary"
|
||||
danger
|
||||
icon={<DeleteOutlined />}
|
||||
onClick={() => {
|
||||
form.resetFields();
|
||||
fetchTaskList(1, pagination.pageSize, {});
|
||||
}}
|
||||
>
|
||||
重置
|
||||
</Button>
|
||||
</Form.Item>
|
||||
</Form>
|
||||
</div>
|
||||
|
||||
<div className="button-row">
|
||||
<div className="left-buttons">
|
||||
<Button type="primary" htmlType="submit" icon={<SearchOutlined />} onClick={() => form.submit()}>
|
||||
搜索
|
||||
</Button>
|
||||
<Button
|
||||
danger
|
||||
icon={<DeleteOutlined />}
|
||||
onClick={() => {
|
||||
form.resetFields();
|
||||
fetchTaskList(1, pagination.pageSize, {});
|
||||
}}
|
||||
>
|
||||
重置
|
||||
</Button>
|
||||
</div>
|
||||
|
||||
<div className="right-buttons">
|
||||
<Button type="primary" ghost icon={<PlusOutlined />} onClick={handleAdd}>
|
||||
新增
|
||||
|
Reference in New Issue
Block a user