整理接口定义规范

This commit is contained in:
linxd
2025-07-02 12:02:52 +08:00
parent 500272f459
commit aa7f985a74
49 changed files with 1345 additions and 2862 deletions

View File

@ -1,9 +1,5 @@
import { message } from 'antd';
import { addAnnualTask, getAnnualTaskDetail,updateAnnualTask } from '@/servers/api/supplierAnnual';
import type { SupplierItem } from '@/servers/dao/supplierEvaluateTask';
import type { TaskNotifyLowerUnits } from '@/dicts/supplierTaskDict';
// Define the types for dva effects and reducers
type Effect = (action: { payload: any }, effects: { call: any; put: any; select: any }) => Generator<any, void, unknown>;
type Reducer<S> = (state: S, action: { payload: any }) => S;
@ -151,7 +147,7 @@ const supplierAnnualTaskManage: SupplierTaskModelType = {
// 供应商IDs与评价人员IDs
supplierPeopleVo:
taskFormData.selectedSuppliers?.map((supplier: SupplierItem) => {
taskFormData.selectedSuppliers?.map((supplier: supplierAnnualTaskManage.SupplierItem) => {
// 从供应商的evaluators中提取用户ID
const userIds = supplier.evaluators?.map((evaluator: supplierAnnualTaskManage.PersonnelItem) => evaluator.id) || [];
return {
@ -235,7 +231,7 @@ const supplierAnnualTaskManage: SupplierTaskModelType = {
// 3. 删除 selectedSuppliers(供应商对象) 中 evaluator(评价人员对象) 对象
updatedFormData.selectedSuppliers = (updatedFormData.selectedSuppliers || [])
.map((supplier: SupplierItem) => {
.map((supplier: supplierAnnualTaskManage.SupplierItem) => {
const newEvaluators = (supplier.evaluators || []).filter(
(evaluator: supplierAnnualTaskManage.PersonnelItem) => !userIdSet.has(String(evaluator.id))
);
@ -244,7 +240,7 @@ const supplierAnnualTaskManage: SupplierTaskModelType = {
evaluators: newEvaluators,
};
})
.filter((supplier: SupplierItem) => (supplier.evaluators || []).length > 0);
.filter((supplier: supplierAnnualTaskManage.SupplierItem) => (supplier.evaluators || []).length > 0);
// 保存更新
yield put({ type: 'saveTaskFormData', payload: updatedFormData });

View File

@ -1,12 +1,5 @@
import { message } from 'antd';
import { addTask, getTaskDetail, addDivisionTask } from '@/servers/api/supplierEvaluate';
import type {
TaskDetailData,
TaskAddRequest,
TaskDetailResponse
} from '@/servers/dao/supplierEvaluateTask';
import type { TaskNotifyLowerUnits } from '@/dicts/supplierTaskDict';
import type { PersonnelItem, IndicatorItem, SupplierItem } from '@/servers/dao/supplierEvaluateTask';
// Define the types for dva effects and reducers
type Effect = (action: { payload: any }, effects: { call: any; put: any; select: any }) => Generator<any, void, unknown>;
@ -20,8 +13,8 @@ export interface SupplierTaskModelState {
currentStep: number; // 当前步骤索引从0开始
loading: boolean; // 提交加载状态
detailLoading: boolean; // 详情数据加载状态
taskFormData: Partial<TaskAddRequest>; // 任务表单数据
taskDetail: TaskDetailData | null; // 任务详情数据
taskFormData: Partial<SupplierTaskManage.TaskAddRequest>; // 任务表单数据
taskDetail: SupplierTaskManage.TaskDetailData | null; // 任务详情数据
mode: 'add' | 'edit' | 'division'; // 模式
}
@ -82,13 +75,13 @@ const SupplierTaskModel: SupplierTaskModelType = {
try {
// 调用API获取任务详情
const response = (yield call(getTaskDetail, taskId)) as TaskDetailResponse;
const response = (yield call(getTaskDetail, taskId)) as SupplierTaskManage.TaskDetailResponse;
if (response.success) {
const detail: TaskDetailData = response.data;
const detail: SupplierTaskManage.TaskDetailData = response.data;
// 转换任务详情数据为表单数据结构
const taskFormData: Partial<TaskAddRequest> = {
const taskFormData: Partial<SupplierTaskManage.TaskAddRequest> = {
id: detail.id || '',
evaluateTheme: detail.evaluateTheme || '',
startTime: detail.startTime || '',
@ -98,7 +91,6 @@ const SupplierTaskModel: SupplierTaskModelType = {
evaluateYear: detail.evaluateYear || '',
categoryId: detail.categoryId || undefined,
// 供应商数据转换添加id和name字段用于UI展示
selectedSuppliers: detail.blackSupplierVos.map((item) => ({
...item,
@ -127,8 +119,6 @@ const SupplierTaskModel: SupplierTaskModelType = {
indicatorIds: matchedIndicator?.indicatorIds || [],
};
}),
};
// 保存数据到状态
@ -154,7 +144,7 @@ const SupplierTaskModel: SupplierTaskModelType = {
* @param payload.isDivisionMode 是否为分工模式
*/
*submitTaskData(
{ payload }: { payload: { taskStatus: TaskNotifyLowerUnits | null; isEditMode: boolean; taskId: string; onSuccess?: () => void; isDivisionMode: boolean } },
{ payload }: { payload: { taskStatus: string | null; isEditMode: boolean; taskId: string; onSuccess?: () => void; isDivisionMode: boolean } },
{ call, put, select }: { call: any; put: any; select: any }
) {
const { taskStatus, isEditMode, taskId, onSuccess, isDivisionMode } = payload;
@ -162,10 +152,10 @@ const SupplierTaskModel: SupplierTaskModelType = {
try {
// 获取表单数据
const { taskFormData } = (yield select((state: any) => state.supplierTaskManage)) as { taskFormData: TaskAddRequest };
const { taskFormData } = (yield select((state: any) => state.supplierTaskManage)) as { taskFormData: SupplierTaskManage.TaskAddRequest };
// 构建提交数据
let submitData: TaskAddRequest = {
let submitData: SupplierTaskManage.TaskAddRequest = {
evaluateTheme: taskFormData.evaluateTheme || '',
startTime: taskFormData.startTime || '',
endTime: taskFormData.endTime || '',
@ -202,7 +192,6 @@ const SupplierTaskModel: SupplierTaskModelType = {
}) || [],
};
if (isEditMode || isDivisionMode) {
// 编辑模式添加ID字段
submitData = {
@ -235,7 +224,7 @@ const SupplierTaskModel: SupplierTaskModelType = {
*/
*updateFormData({ payload }: { payload: any }, { put, select }: { put: any; select: any }) {
// 获取当前表单数据
const { taskFormData } = (yield select((state: any) => state.supplierTaskManage)) as { taskFormData: TaskAddRequest };
const { taskFormData } = (yield select((state: any) => state.supplierTaskManage)) as { taskFormData: SupplierTaskManage.TaskAddRequest };
// 合并新的表单数据
const updatedFormData = { ...taskFormData, ...payload };
// 处理供应商选择更新
@ -250,10 +239,10 @@ const SupplierTaskModel: SupplierTaskModelType = {
// 处理评价人员更新 - 更新后要保留原有对象中的indicatorIds
if (payload.userList) {
const existingUserMap = new Map(
(taskFormData.userList || []).map((user: PersonnelItem) => [user.id || user.userId, user])
(taskFormData.userList || []).map((user: SupplierTaskManage.PersonnelItem) => [user.id || user.userId, user])
);
updatedFormData.userList = payload.userList.map((newUser: PersonnelItem) => {
updatedFormData.userList = payload.userList.map((newUser: SupplierTaskManage.PersonnelItem) => {
const userId = newUser.id || newUser.userId;
const existing = existingUserMap.get(userId);
@ -269,7 +258,6 @@ const SupplierTaskModel: SupplierTaskModelType = {
});
}
// 处理部门权重
if (payload.taskDeptWeightList) {
updatedFormData.taskDeptWeightList = payload.taskDeptWeightList;
@ -290,26 +278,26 @@ const SupplierTaskModel: SupplierTaskModelType = {
const userIdSet = new Set(userIds.filter(Boolean).map(String));
const { taskFormData } = (yield select((state: any) => state.supplierTaskManage)) as {
taskFormData: TaskAddRequest;
taskFormData: SupplierTaskManage.TaskAddRequest;
};
const updatedFormData = { ...taskFormData };
// 1. 删除 userList 中的用户
updatedFormData.userList = (updatedFormData.userList || []).filter(
(user: PersonnelItem) => !userIdSet.has(String(user.id || user.userId))
(user: SupplierTaskManage.PersonnelItem) => !userIdSet.has(String(user.id || user.userId))
);
// 2. 删除 indicatorList(指标对象) 中该用户的指标
updatedFormData.indicatorList = (updatedFormData.indicatorList || []).filter(
(item: IndicatorItem) => !userIdSet.has(String(item.userId))
(item: SupplierTaskManage.IndicatorItem) => !userIdSet.has(String(item.userId))
);
// 3. 删除 selectedSuppliers(供应商对象) 中 evaluator(评价人员对象) 对象
updatedFormData.selectedSuppliers = (updatedFormData.selectedSuppliers || [])
.map((supplier: SupplierItem) => {
.map((supplier: SupplierTaskManage.SupplierItem) => {
const newEvaluators = (supplier.evaluators || []).filter(
(evaluator: PersonnelItem) => !userIdSet.has(String(evaluator.id))
(evaluator: SupplierTaskManage.PersonnelItem) => !userIdSet.has(String(evaluator.id))
);
return {
...supplier,
@ -322,7 +310,6 @@ const SupplierTaskModel: SupplierTaskModelType = {
yield put({ type: 'saveTaskFormData', payload: updatedFormData });
},
/**
* 下一步
* 将当前步骤索引加1