对接搜索条件

This commit is contained in:
linxd
2025-06-30 10:24:17 +08:00
parent d822afaa9e
commit 53a7d5363c
4 changed files with 75 additions and 106 deletions

View File

@ -27,7 +27,7 @@ const { Option } = Select;
// 搜索参数类型
interface AnnualTemplateSearchParams {
templateName?: string;
tenantName?: string;
deptId?: string;
categoryId?: string;
dateRange?: string[];
[key: string]: any;
@ -81,8 +81,8 @@ const SupplierAnnualTemplateManage: React.FC = () => {
if (params.templateName) {
requestParams.templateName = params.templateName;
}
if (params.tenantName) {
requestParams.tenantName = params.tenantName;
if (params.deptId) {
requestParams.deptId = params.deptId;
}
if (params.categoryId) {
requestParams.categoryId = params.categoryId;
@ -352,7 +352,7 @@ const SupplierAnnualTemplateManage: React.FC = () => {
<Form.Item name="templateName" label="模板名称">
<Input placeholder="请输入模板名称" allowClear />
</Form.Item>
<Form.Item name="tenantName" label="创建单位">
<Form.Item name="deptId" label="创建单位">
<Select placeholder="请选择创建单位" allowClear style={{ width: 200 }}>
{companyOptions.map(option => (
<Option key={option.value} value={option.value}>{option.label}</Option>

View File

@ -105,8 +105,8 @@ const SupplierEvaluateResultInfo: React.FC = () => {
if (params.supplierName) {
requestParams.supplierName = params.supplierName;
}
if (params.level) {
requestParams.level = params.level;
if (params.levelName) {
requestParams.levelName = params.levelName;
}
// 调用接口获取数据
@ -250,7 +250,7 @@ const SupplierEvaluateResultInfo: React.FC = () => {
<Form.Item name="supplierName" label="供应商名称">
<Input placeholder="请输入供应商名称" allowClear />
</Form.Item>
<Form.Item name="level" label="评价等级">
<Form.Item name="levelName" label="评价等级">
<Select placeholder="请选择评价等级" allowClear style={{ width: 150 }}>
{evaluateRules.map((rule) => (
<Option key={rule.id} value={rule.levelName}>

View File

@ -40,7 +40,12 @@ const SupplierEvaluateScore: React.FC = () => {
pageSize: 10,
total: 0,
});
/*
name :关键字
startTime开始时间
endTime:结束时间
status状态
*/
// 构建查询参数
const buildQueryParams = () => {
const values = filterForm.getFieldsValue();
@ -51,14 +56,14 @@ const SupplierEvaluateScore: React.FC = () => {
pageNo: pagination.current,
pageSize: pagination.pageSize,
},
keyword: values.keyword || undefined,
name: values.name || undefined,
status: values.status || undefined,
};
// 处理时间范围
if (values.evaluationTime && values.evaluationTime.length === 2) {
params.startTime = values.evaluationTime[0].format('YYYY-MM-DD');
params.endTime = values.evaluationTime[1].format('YYYY-MM-DD');
params.startTime = values.evaluationTime[0].format('YYYY-MM-DD HH:mm:ss');
params.endTime = values.evaluationTime[1].format('YYYY-MM-DD HH:mm:ss');
}
return params;
@ -68,14 +73,14 @@ const SupplierEvaluateScore: React.FC = () => {
pageNo: pagination.current,
pageSize: pagination.pageSize,
},
keyword: values.keyword || undefined,
evaluateTheme: values.name || undefined,
status: values.status || undefined,
};
// 处理时间范围
if (values.evaluationTime && values.evaluationTime.length === 2) {
params.startTime = values.evaluationTime[0].format('YYYY-MM-DD');
params.endTime = values.evaluationTime[1].format('YYYY-MM-DD');
params.startTime = values.evaluationTime[0].format('YYYY-MM-DD HH:mm:ss');
params.endTime = values.evaluationTime[1].format('YYYY-MM-DD HH:mm:ss');
}
return params;
@ -361,10 +366,10 @@ const SupplierEvaluateScore: React.FC = () => {
<div className="filter-action-row">
<div className="filter-form">
<Form form={filterForm} layout="inline">
<Form.Item name="keyword" label="关键字">
<Form.Item name="name" label="关键字">
<Input
placeholder={
activeTab === 'supplier' ? '请输入供应商名称或评价主题' : '请输入评价主题'
activeTab === 'supplier' ? '请输入供应商名称' : '请输入评价主题'
}
allowClear
/>

View File

@ -31,51 +31,32 @@ const SupplierTaskManage: React.FC = () => {
},
});
// 获取任务列表
const fetchTaskList = async (
current = 1,
pageSize = 10,
params: TaskSearchParams = searchParams,
current: number = 1,
pageSize: number = 10,
params: TaskSearchParams,
) => {
// 更新搜索参数状态
if (params !== searchParams) {
setSearchParams(params);
}
setLoading(true);
try {
// 构造请求参数
const requestParams: TaskSearchParams = {
...params,
basePageRequest: {
pageNo: current,
pageSize: pageSize,
pageSize,
},
};
// 添加搜索条件
if (params.evaluateTheme) {
requestParams.evaluateTheme = params.evaluateTheme;
}
if (params.status) {
requestParams.status = params.status;
}
if (params.dateRange && params.dateRange.length === 2) {
requestParams.startTime = params.dateRange[0];
requestParams.endTime = params.dateRange[1];
}
const response = await getTaskList(requestParams);
if (response.success) {
// 处理返回的数据
const { records, total, current: currentPage, size } = response.data;
setTaskData(records);
setPagination({
...pagination,
setPagination((prev) => ({
...prev,
current: currentPage,
pageSize: size,
total: total,
});
total,
}));
} else {
message.error(response.message || '获取任务列表失败');
}
@ -87,39 +68,67 @@ const SupplierTaskManage: React.FC = () => {
}
};
// 首次加载获取数据
useEffect(() => {
fetchTaskList(pagination.current, pagination.pageSize, searchParams);
fetchTaskList(pagination.current!, pagination.pageSize!, searchParams);
}, []);
// 处理查看
const handleView = (record: TaskItem) => {
// 跳转到详情页面
history.push(`supplierTaskManageDetail?id=${record.id}`);
};
// 处理编辑
const handleEdit = (record: TaskItem) => {
// 跳转到编辑页面(复用新增页面)
history.push(`supplierTaskManageAdd?id=${record.id}&mode=edit`);
};
// 处理分工
const handleDivision = (record: TaskItem) => {
// 跳转到分工页面
history.push(`supplierTaskManageAdd?id=${record.id}&mode=division`);
};
// 获取状态标签
const getStatusTag = (status: string) => {
const color = TaskStatusColor[status as keyof typeof TaskStatusColor] || 'default';
const text = TaskStatusText[status as keyof typeof TaskStatusText] || '未知状态';
return <Tag color={color}>{text}</Tag>;
};
// 处理表格分页变化
const handleTableChange = (newPagination: TablePaginationConfig) => {
fetchTaskList(newPagination.current, newPagination.pageSize, searchParams);
fetchTaskList(newPagination.current!, newPagination.pageSize!, searchParams);
};
const handleSearch = (values: any) => {
const { evaluateTheme, status, dateRange } = values;
const params: TaskSearchParams = {
basePageRequest: {
pageNo: 1,
pageSize: pagination.pageSize!,
},
evaluateTheme,
status,
};
if (dateRange && dateRange.length === 2) {
params.startTime = dateRange[0].format('YYYY-MM-DD');
params.endTime = dateRange[1].format('YYYY-MM-DD');
}
setSearchParams(params);
fetchTaskList(1, pagination.pageSize!, params);
};
const handleReset = () => {
form.resetFields();
const resetParams: TaskSearchParams = {
basePageRequest: {
pageNo: 1,
pageSize: pagination.pageSize!,
},
};
setSearchParams(resetParams);
fetchTaskList(1, pagination.pageSize!, resetParams);
};
const handleAdd = () => {
history.push('supplierTaskManageAdd');
};
const columns = [
@ -175,41 +184,16 @@ const SupplierTaskManage: React.FC = () => {
align: 'center' as const,
render: (_: unknown, record: TaskItem) => (
<Space size="middle">
<Button type="link" onClick={() => handleView(record)}>
</Button>
<Button type="link" onClick={() => handleView(record)}></Button>
{record.division == '1' && (
<Button type="link" onClick={() => handleDivision(record)}>
</Button>
<Button type="link" onClick={() => handleDivision(record)}></Button>
)}
<Button type="link" onClick={() => handleEdit(record)}>
</Button>
<Button type="link" onClick={() => handleEdit(record)}></Button>
</Space>
),
},
];
// 处理添加
const handleAdd = () => {
// 跳转到新增页面
history.push('supplierTaskManageAdd');
};
// 处理搜索
const handleSearch = (values: any) => {
const { dateRange, ...rest } = values;
const params: SupplierEvaluate.TaskSearchParams = { ...rest };
if (dateRange && dateRange.length === 2) {
params.dateRange = [dateRange[0].format('YYYY-MM-DD'), dateRange[1].format('YYYY-MM-DD')];
}
fetchTaskList(1, pagination.pageSize, searchParams);
};
return (
<div className={`${styles.supplierTaskManageContainer} common-container`}>
<div className={styles.filterActionRow}>
@ -234,32 +218,12 @@ const SupplierTaskManage: React.FC = () => {
<RangePicker />
</Form.Item>
<Form.Item className={styles.filterBtns}>
<Button type="primary" htmlType="submit" icon={<SearchOutlined />}>
</Button>
<Button
type="primary"
danger
icon={<DeleteOutlined />}
onClick={() => {
form.resetFields();
setSearchParams({
basePageRequest: {
pageNo: 1,
pageSize: 10,
},
});
fetchTaskList(1, pagination.pageSize, searchParams);
}}
>
</Button>
<Button type="primary" htmlType="submit" icon={<SearchOutlined />}></Button>
<Button type="primary" danger icon={<DeleteOutlined />} onClick={handleReset}></Button>
</Form.Item>
</Form>
<div className={styles.rightButtons}>
<Button type="primary" ghost icon={<PlusOutlined />} onClick={handleAdd}>
</Button>
<Button type="primary" ghost icon={<PlusOutlined />} onClick={handleAdd}></Button>
</div>
</div>