From d775dce037256ec025f3feb30c44c72b359dfbe6 Mon Sep 17 00:00:00 2001 From: linxd <544554903@qq.com> Date: Mon, 30 Jun 2025 09:43:28 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B9=B4=E5=AE=A1=E6=A8=A1=E5=9D=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/models/supplierAnnualTaskManage.ts | 92 +-- .../components/BasicInfoStep.tsx | 8 +- .../components/Detail/BasicInfo.tsx | 8 +- .../components/Detail/EvaluatorInfo.tsx | 88 --- .../components/Detail/EvaluatorModal.tsx | 5 +- .../components/Detail/IndicatorModal.tsx | 99 --- .../components/Detail/SupplierInfo.tsx | 32 +- .../components/Detail/WeightInfo.tsx | 48 -- .../components/Detail/index.ts | 6 - .../SupplierEvaluatorModal.tsx | 4 +- .../EvaluatorComponents/SupplierTable.tsx | 4 +- .../components/EvaluatorSelectStep.tsx | 111 +--- .../components/SupplierSelectStep.tsx | 4 +- .../supplierAnnualTaskManage.tsx | 40 +- .../supplierAnnualTaskManageAdd.tsx | 128 +--- .../supplierAnnualTaskManageDetail.tsx | 35 +- .../supplierAnnualTaskManage.d.ts | 14 +- src/servers/dao/supplierAnnualTaskManag.ts | 567 ------------------ 18 files changed, 118 insertions(+), 1175 deletions(-) delete mode 100644 src/pages/supplierAnnualManage/supplierAnnualTaskManage/components/Detail/EvaluatorInfo.tsx delete mode 100644 src/pages/supplierAnnualManage/supplierAnnualTaskManage/components/Detail/IndicatorModal.tsx delete mode 100644 src/pages/supplierAnnualManage/supplierAnnualTaskManage/components/Detail/WeightInfo.tsx delete mode 100644 src/servers/dao/supplierAnnualTaskManag.ts diff --git a/src/models/supplierAnnualTaskManage.ts b/src/models/supplierAnnualTaskManage.ts index 14f9d00..836d67e 100644 --- a/src/models/supplierAnnualTaskManage.ts +++ b/src/models/supplierAnnualTaskManage.ts @@ -1,12 +1,8 @@ import { message } from 'antd'; -import { addTask, getTaskDetail } from '@/servers/api/supplierEvaluate'; -import type { - TaskDetailData, - TaskAddRequest, - TaskDetailResponse -} from '@/servers/dao/supplierAnnualTaskManag'; +import { addAnnualTask, getAnnualTaskDetail,updateAnnualTask } from '@/servers/api/supplierAnnual'; +import type { SupplierItem } from '@/servers/dao/supplierEvaluateTask'; + import type { TaskNotifyLowerUnits } from '@/dicts/supplierTaskDict'; -import type { PersonnelItem, IndicatorItem, SupplierItem } from '@/servers/dao/supplierAnnualTaskManag'; // Define the types for dva effects and reducers type Effect = (action: { payload: any }, effects: { call: any; put: any; select: any }) => Generator; @@ -20,8 +16,8 @@ export interface SupplierTaskModelState { currentStep: number; // 当前步骤索引,从0开始 loading: boolean; // 提交加载状态 detailLoading: boolean; // 详情数据加载状态 - taskFormData: Partial; // 任务表单数据 - taskDetail: TaskDetailData | null; // 任务详情数据 + taskFormData: Partial; // 任务表单数据 + taskDetail: supplierAnnualTaskManage.TaskDetailData | null; // 任务详情数据 mode: 'add' | 'edit' | 'division'; // 模式 } @@ -82,20 +78,20 @@ const supplierAnnualTaskManage: SupplierTaskModelType = { try { // 调用API获取任务详情 - const response = (yield call(getTaskDetail, taskId)) as TaskDetailResponse; + const response = (yield call(getAnnualTaskDetail, taskId)) as supplierAnnualTaskManage.TaskDetailResponse; if (response.success) { - const detail: TaskDetailData = response.data; + const detail: supplierAnnualTaskManage.TaskDetailData = response.data; // 转换任务详情数据为表单数据结构 - const taskFormData: Partial = { + const taskFormData: Partial = { id: detail.id || '', - evaluateTheme: detail.evaluateTheme || '', + annualreviewTheme: detail.annualreviewTheme || '', startTime: detail.startTime || '', endTime: detail.endTime || '', templateId: detail.templateId || '', categoryLimitation: detail.categoryLimitation || '0', - evaluateYear: detail.evaluateYear || '', + annualreviewYear: detail.annualreviewYear || '', categoryId: detail.categoryId || undefined, @@ -107,25 +103,8 @@ const supplierAnnualTaskManage: SupplierTaskModelType = { evaluators: item.userList, })), - // 指标列表 - indicatorList: detail.indicatorList || [], - // 供应商IDs与用户IDs - supplierIds: detail.supplierIds || [], - - //设置评价分工table回显 需处理 - userList: detail.userList.map((user) => { - const matchedIndicator = detail.indicatorList?.find( - (indicator) => indicator.userId === user.userId - ); - return { - ...user, - name: user.userName, - id: user.userId, - indicatorIds: matchedIndicator?.indicatorIds || [], - }; - }), - + supplierPeopleVo: detail.supplierPeopleVo || [], }; @@ -145,53 +124,41 @@ const supplierAnnualTaskManage: SupplierTaskModelType = { /** * 提交任务数据 - * @param payload.taskStatus 任务状态 * @param payload.isEditMode 是否为编辑模式 * @param payload.taskId 任务ID(编辑模式必须) * @param payload.onSuccess 成功回调函数 */ *submitTaskData( - { payload }: { payload: { taskStatus: TaskNotifyLowerUnits | null; isEditMode: boolean; taskId: string; onSuccess?: () => void } }, + { payload }: { payload: {isEditMode: boolean; taskId: string; onSuccess?: () => void } }, { call, put, select }: { call: any; put: any; select: any } ) { - const { taskStatus, isEditMode, taskId, onSuccess } = payload; + const { isEditMode, taskId, onSuccess } = payload; yield put({ type: 'saveLoading', payload: true }); try { // 获取表单数据 - const { taskFormData } = (yield select((state: any) => state.supplierAnnualTaskManage)) as { taskFormData: TaskAddRequest }; + const { taskFormData } = (yield select((state: any) => state.supplierAnnualTaskManage)) as { taskFormData: supplierAnnualTaskManage.AddTaskRequest }; // 构建提交数据 - let submitData: TaskAddRequest = { - evaluateTheme: taskFormData.evaluateTheme || '', + let submitData: supplierAnnualTaskManage.AddTaskRequest = { + annualreviewTheme: taskFormData.annualreviewTheme || '', startTime: taskFormData.startTime || '', endTime: taskFormData.endTime || '', templateId: taskFormData.templateId || '', categoryLimitation: taskFormData.categoryLimitation || '0', - evaluateYear: taskFormData.evaluateYear || '', + annualreviewYear: taskFormData.annualreviewYear || '', categoryId: taskFormData.categoryId || '', - taskStatus: taskStatus || null, // 供应商IDs与评价人员IDs - supplierIds: - taskFormData.selectedSuppliers?.map((supplier: any) => { + supplierPeopleVo: + taskFormData.selectedSuppliers?.map((supplier: SupplierItem) => { // 从供应商的evaluators中提取用户ID - const userIds = supplier.evaluators?.map((evaluator: any) => evaluator.id) || []; + const userIds = supplier.evaluators?.map((evaluator: supplierAnnualTaskManage.PersonnelItem) => evaluator.id) || []; return { - id: supplier.id, + suppliedId: supplier.id, userIds, }; }) || [], - - // 指标列表 - indicatorList: - taskFormData.indicatorList?.map((item: any) => ({ - userId: item.userId, - // 评价类型:如果用户关联了指标则为1(按指标),否则为0(按评价单) - type: item.indicatorIds && item.indicatorIds.length > 0 ? 1 : 0, - indicatorIds: item.indicatorIds || [], - })) || [], - }; @@ -202,7 +169,7 @@ const supplierAnnualTaskManage: SupplierTaskModelType = { id: taskId, }; } - const response = (yield call(addTask, submitData)) as API.Response; + const response = (yield call(isEditMode? updateAnnualTask : addAnnualTask, submitData)) as supplierAnnualTaskManage.ApiResponse; if (response.success) { message.success(isEditMode ? '任务更新成功' : '任务创建成功'); if (onSuccess) { @@ -226,7 +193,7 @@ const supplierAnnualTaskManage: SupplierTaskModelType = { */ *updateFormData({ payload }: { payload: any }, { put, select }: { put: any; select: any }) { // 获取当前表单数据 - const { taskFormData } = (yield select((state: any) => state.supplierAnnualTaskManage)) as { taskFormData: TaskAddRequest }; + const { taskFormData } = (yield select((state: any) => state.supplierAnnualTaskManage)) as { taskFormData: supplierAnnualTaskManage.AddTaskRequest }; // 合并新的表单数据 const updatedFormData = { ...taskFormData, ...payload }; // 处理供应商选择更新 @@ -256,33 +223,28 @@ const supplierAnnualTaskManage: SupplierTaskModelType = { const userIdSet = new Set(userIds.filter(Boolean).map(String)); const { taskFormData } = (yield select((state: any) => state.supplierAnnualTaskManage)) as { - taskFormData: TaskAddRequest; + taskFormData: supplierAnnualTaskManage.AddTaskRequest; }; const updatedFormData = { ...taskFormData }; // 1. 删除 userList 中的用户 updatedFormData.userList = (updatedFormData.userList || []).filter( - (user: PersonnelItem) => !userIdSet.has(String(user.id || user.userId)) - ); - - // 2. 删除 indicatorList(指标对象) 中该用户的指标 - updatedFormData.indicatorList = (updatedFormData.indicatorList || []).filter( - (item: IndicatorItem) => !userIdSet.has(String(item.userId)) + (user: supplierAnnualTaskManage.TaskUserList) => !userIdSet.has(String(user.id || user.userId)) ); // 3. 删除 selectedSuppliers(供应商对象) 中 evaluator(评价人员对象) 对象 updatedFormData.selectedSuppliers = (updatedFormData.selectedSuppliers || []) .map((supplier: SupplierItem) => { const newEvaluators = (supplier.evaluators || []).filter( - (evaluator: PersonnelItem) => !userIdSet.has(String(evaluator.id)) + (evaluator: supplierAnnualTaskManage.PersonnelItem) => !userIdSet.has(String(evaluator.id)) ); return { ...supplier, evaluators: newEvaluators, }; }) - .filter((supplier) => (supplier.evaluators || []).length > 0); + .filter((supplier: SupplierItem) => (supplier.evaluators || []).length > 0); // 保存更新 yield put({ type: 'saveTaskFormData', payload: updatedFormData }); diff --git a/src/pages/supplierAnnualManage/supplierAnnualTaskManage/components/BasicInfoStep.tsx b/src/pages/supplierAnnualManage/supplierAnnualTaskManage/components/BasicInfoStep.tsx index 5e80fbf..b8d07d7 100644 --- a/src/pages/supplierAnnualManage/supplierAnnualTaskManage/components/BasicInfoStep.tsx +++ b/src/pages/supplierAnnualManage/supplierAnnualTaskManage/components/BasicInfoStep.tsx @@ -1,7 +1,7 @@ import React, { useState, useEffect, useCallback, forwardRef, useImperativeHandle } from 'react'; import { Form, Input, Select, DatePicker, Row, Col, Card, Radio } from 'antd'; import moment from 'moment'; -import { getAllTemplates } from '@/servers/api/supplierEvaluate'; +import { getAllAnnualTemplates } from '@/servers/api/supplierAnnual'; import CategorySelector from '@/components/CategorySelector'; import styles from '../supplierAnnualTaskManageAdd.less'; import { CategoryLimitationType } from '@/dicts/supplierTemplateDict'; @@ -43,7 +43,7 @@ const BasicInfoStepComponent = (props: BasicInfoStepProps) => { const fetchTemplates = async () => { setLoading(true); try { - const response = await getAllTemplates(); + const response = await getAllAnnualTemplates(); if (response.success && response.data) { setTemplates(response.data); } @@ -119,7 +119,7 @@ const BasicInfoStepComponent = (props: BasicInfoStepProps) => { @@ -128,7 +128,7 @@ const BasicInfoStepComponent = (props: BasicInfoStepProps) => { - {AnnualTaskStatusOptions.map(item => ( + {AnnualTaskStatusOptions.map((item) => ( @@ -245,12 +250,7 @@ const SupplierAnnualTaskManage: React.FC = () => { - diff --git a/src/pages/supplierAnnualManage/supplierAnnualTaskManage/supplierAnnualTaskManageAdd.tsx b/src/pages/supplierAnnualManage/supplierAnnualTaskManage/supplierAnnualTaskManageAdd.tsx index eb5a3b0..c118013 100644 --- a/src/pages/supplierAnnualManage/supplierAnnualTaskManage/supplierAnnualTaskManageAdd.tsx +++ b/src/pages/supplierAnnualManage/supplierAnnualTaskManage/supplierAnnualTaskManageAdd.tsx @@ -30,8 +30,8 @@ const getUrlParams = () => { * 继承了ConnectProps,添加了supplierTaskManage和dispatch */ interface PageProps extends ConnectProps { - supplierAnnualTaskManage: SupplierTaskModelState; // dva model状态 - dispatch: Dispatch; // dva dispatch方法 + supplierAnnualTaskManage: SupplierTaskModelState; // dva model状态 + dispatch: Dispatch; // dva dispatch方法 } /** @@ -45,24 +45,20 @@ const SupplierTaskManageAdd: React.FC = ({ supplierAnnualTaskManage, // 判断是否为编辑模式 const urlParams = getUrlParams(); const isEditMode = urlParams.mode === 'edit' && urlParams.id; - const isDivisionMode = urlParams.mode === 'division' && urlParams.id; const taskId = urlParams.id || ''; // 创建表单引用,用于访问子组件的表单方法(主要用于验证) - const basicFormRef = useRef(null); // 基本信息表单引用 + const basicFormRef = useRef(null); // 基本信息表单引用 const supplierFormRef = useRef(null); // 供应商选择表单引用 const evaluatorFormRef = useRef(null); // 评价人员表单引用 - const divisionFormRef = useRef(null); // 评价分工表单引用 - - // 确认对话框可见性状态 - const [confirmModalVisible, setConfirmModalVisible] = React.useState(false); + const divisionFormRef = useRef(null); // 评价分工表单引用 /** * 编辑模式下获取任务详情,或新建模式下重置状态 * 利用useEffect在组件挂载或依赖项变化时触发 */ useEffect(() => { - if ((isEditMode || isDivisionMode) && taskId && dispatch) { + if (isEditMode && taskId && dispatch) { dispatch({ type: 'supplierAnnualTaskManage/saveMode', payload: 'edit', @@ -72,16 +68,6 @@ const SupplierTaskManageAdd: React.FC = ({ supplierAnnualTaskManage, type: 'supplierAnnualTaskManage/fetchTaskDetail', payload: { taskId }, }); - if (isDivisionMode) { - dispatch({ - type: 'supplierAnnualTaskManage/saveMode', - payload: 'division', - }); - dispatch({ - type: 'supplierAnnualTaskManage/setCurrentStep', - payload: 2, - }); - } } else if (dispatch) { dispatch({ type: 'supplierAnnualTaskManage/setMode', @@ -92,7 +78,7 @@ const SupplierTaskManageAdd: React.FC = ({ supplierAnnualTaskManage, type: 'supplierAnnualTaskManage/resetState', }); } - }, [isEditMode, isDivisionMode, taskId, dispatch]); + }, [isEditMode, taskId, dispatch]); /** * 组件卸载时重置状态 @@ -112,29 +98,17 @@ const SupplierTaskManageAdd: React.FC = ({ supplierAnnualTaskManage, { title: '基本信息', // 步骤标题 description: '请填写基本信息', // 步骤描述 - content: ( - - ), // 步骤内容组件 + content: , // 步骤内容组件 }, { title: '选择供应商', description: '请选择参加评价的供应商', - content: ( - - ), + content: , }, { - title: '选择评价人员', - description: '请选择供应商评价人员', - content: ( - - ), + title: '选择年审人员', + description: '请选择供应商年审人员', + content: , }, ]; @@ -203,7 +177,7 @@ const SupplierTaskManageAdd: React.FC = ({ supplierAnnualTaskManage, taskId, onSuccess: () => { history.goBack(); - } + }, }, }); } @@ -223,44 +197,13 @@ const SupplierTaskManageAdd: React.FC = ({ supplierAnnualTaskManage, } } // 如果是编辑模式,则直接提交 提示是否确认后直接提交 - if (isEditMode) { - Modal.confirm({ - title: '提示', - content: '是否确认提交', - onOk: () => { - submitTaskData(null); - }, - }); - return; - } - - // 新增模式下,显示确认对话框询问是否需要下级单位完善 - setConfirmModalVisible(true); - }; - - /** - * 处理确认对话框的取消按钮点击事件 - */ - const handleConfirmCancel = () => { - setConfirmModalVisible(false); - }; - - /** - * 处理确认对话框的"是"选项点击事件 - * 提交任务,并设置状态为需要下级单位完善 - */ - const handleConfirmYes = () => { - submitTaskData(TaskNotifyLowerUnits.YES); // 未开始状态,需要下级单位完善 - setConfirmModalVisible(false); - }; - - /** - * 处理确认对话框的"否"选项点击事件 - * 提交任务,并设置状态为不需要下级单位完善 - */ - const handleConfirmNo = () => { - submitTaskData(TaskNotifyLowerUnits.NO); // 进行中状态,不需要下级单位完善 - setConfirmModalVisible(false); + Modal.confirm({ + title: '提示', + content: '是否确认提交', + onOk: () => { + submitTaskData(null); + }, + }); }; return ( @@ -269,7 +212,7 @@ const SupplierTaskManageAdd: React.FC = ({ supplierAnnualTaskManage, {/* 页面头部,包含标题和返回按钮 */}
-

{isEditMode ? '修改评价任务' : '新增评价任务'}

+

{isEditMode ? '修改年审任务' : '新增年审任务'}

@@ -293,7 +236,9 @@ const SupplierTaskManageAdd: React.FC = ({ supplierAnnualTaskManage,
{/* 如果当前是评价分工步骤,则不显示上一步按钮 */} - {currentStep > (isDivisionMode ? 2 : 0) && } + {currentStep > 0 && ( + + )} {currentStep < steps.length - 1 && ( - - - -
-
); }; // 将dva model中的状态映射到组件props -export default connect(({ supplierAnnualTaskManage }: { supplierAnnualTaskManage: SupplierTaskModelState }) => ({ - supplierAnnualTaskManage, -}))(SupplierTaskManageAdd); +export default connect( + ({ supplierAnnualTaskManage }: { supplierAnnualTaskManage: SupplierTaskModelState }) => ({ + supplierAnnualTaskManage, + }), +)(SupplierTaskManageAdd); diff --git a/src/pages/supplierAnnualManage/supplierAnnualTaskManage/supplierAnnualTaskManageDetail.tsx b/src/pages/supplierAnnualManage/supplierAnnualTaskManage/supplierAnnualTaskManageDetail.tsx index f932f9e..507002e 100644 --- a/src/pages/supplierAnnualManage/supplierAnnualTaskManage/supplierAnnualTaskManageDetail.tsx +++ b/src/pages/supplierAnnualManage/supplierAnnualTaskManage/supplierAnnualTaskManageDetail.tsx @@ -2,14 +2,11 @@ import React, { useState, useEffect } from 'react'; import { Card, Button, message, Spin, Tabs, Typography } from 'antd'; import { history, useLocation } from 'umi'; import { ArrowLeftOutlined } from '@ant-design/icons'; -import { getTaskDetail } from '@/servers/api/supplierEvaluate'; +import { getAnnualTaskDetail } from '@/servers/api/supplierAnnual'; import { BasicInfo, SupplierInfo, - EvaluatorInfo, - WeightInfo, EvaluatorModal, - IndicatorModal } from './components/Detail'; import styles from './supplierAnnualTaskManageDetail.less'; @@ -37,10 +34,7 @@ const SupplierTaskManageDetail: React.FC = () => { // 模态框状态 const [evaluatorModalVisible, setEvaluatorModalVisible] = useState(false); - const [indicatorModalVisible, setIndicatorModalVisible] = useState(false); const [currentSupplier, setCurrentSupplier] = useState(null); - const [currentIndicators, setCurrentIndicators] = useState([]); - const [currentEvaluator, setCurrentEvaluator] = useState(''); // 获取任务详情 const fetchTaskDetail = async (id: string) => { @@ -51,7 +45,7 @@ const SupplierTaskManageDetail: React.FC = () => { setLoading(true); try { - const response = await getTaskDetail(id); + const response = await getAnnualTaskDetail(id); if (response.success) { setTaskData(response.data); } else { @@ -71,7 +65,6 @@ const SupplierTaskManageDetail: React.FC = () => { fetchTaskDetail(taskId); } else { message.error('未提供任务ID'); - history.push('/supplier/supplierTaskManage'); } }, [taskId]); @@ -86,12 +79,6 @@ const SupplierTaskManageDetail: React.FC = () => { setEvaluatorModalVisible(true); }; - // 处理查看评价人员分工 - const handleViewIndicators = (record: any) => { - setCurrentIndicators(record.indicatorIds || []); - setCurrentEvaluator(record.userId); - setIndicatorModalVisible(true); - }; return (
@@ -118,15 +105,6 @@ const SupplierTaskManageDetail: React.FC = () => { onViewEvaluators={handleViewSupplierEvaluators} />} - - {taskData && } - - - {taskData && } - )} @@ -137,15 +115,6 @@ const SupplierTaskManageDetail: React.FC = () => { supplier={currentSupplier} onCancel={() => setEvaluatorModalVisible(false)} /> - - {/* 评价人员分工模态框 */} - setIndicatorModalVisible(false)} - />
); }; diff --git a/src/servers/dao/supplierAnnualManage/supplierAnnualTaskManage.d.ts b/src/servers/dao/supplierAnnualManage/supplierAnnualTaskManage.d.ts index ef9753b..63ad0de 100644 --- a/src/servers/dao/supplierAnnualManage/supplierAnnualTaskManage.d.ts +++ b/src/servers/dao/supplierAnnualManage/supplierAnnualTaskManage.d.ts @@ -13,7 +13,19 @@ declare namespace supplierAnnualTaskManage { basePageRequest: BasePageRequest; [property: string]: any; } - +/* +人员信息 +*/ +interface PersonnelItem { + id: string; + name: string; + userId: string; + userName: string; + position: string; + userDept: string; + userDeptId: string; + indicatorIds?: string[]; +} // 列表响应 interface TaskListResponse { code: number; diff --git a/src/servers/dao/supplierAnnualTaskManag.ts b/src/servers/dao/supplierAnnualTaskManag.ts deleted file mode 100644 index 282d97f..0000000 --- a/src/servers/dao/supplierAnnualTaskManag.ts +++ /dev/null @@ -1,567 +0,0 @@ - -import type { TaskNotifyLowerUnits } from '@/dicts/supplierTaskDict'; -/** - * 供应商评价相关接口类型定义 - */ - -// 模板相关类型 -/** - * 模板查询请求参数 - */ -export interface TemplateRequest { - current?: number; - pageSize?: number; - templateName?: string; - status?: string; -} - -/** - * 模板查询响应 - */ -export interface TemplateResponse { - code: number; - success: boolean; - data: { - records: TemplateItem[]; - total: number; - size: number; - current: number; - pages: number; - }; - message: string; -} - -/** - * 模板项 - */ -export interface TemplateItem { - id: string; - templateName: string; - status: string; - createTime: string; - updateTime: string; - createBy: string; - updateBy: string; - [key: string]: any; -} - -/** - * 模板详情响应 - */ -export interface TemplateDetailResponse { - code: number; - success: boolean; - data: { - id: string; - templateName: string; - status: string; - dimensions: TemplateDimension[]; - [key: string]: any; - }; - message: string; -} - -/** - * 模板维度 - */ -export interface TemplateDimension { - id: string; - dimensionName: string; - dimensionWeight: number; - indicators: TemplateIndicator[]; - [key: string]: any; -} - -/** - * 模板指标 - */ -export interface TemplateIndicator { - id: string; - indicatorName: string; - indicatorWeight: number; - [key: string]: any; -} - -/** - * 新增模板请求 - */ -export interface TemplateAddRequest { - templateName: string; - dimensions: { - dimensionName: string; - dimensionWeight: number; - indicators: { - indicatorName: string; - indicatorWeight: number; - }[]; - }[]; -} - -/** - * 更新模板请求 - */ -export interface TemplateUpdateRequest { - id: string; - templateName: string; - dimensions: { - id?: string; - dimensionName: string; - dimensionWeight: number; - indicators: { - id?: string; - indicatorName: string; - indicatorWeight: number; - }[]; - }[]; -} - -// 品类相关类型 -/** - * 品类树响应 - */ -export interface CategoryTreeResponse { - code: number; - success: boolean; - data: CategoryTreeItem[]; - message: string; -} - -/** - * 品类树节点 - */ -export interface CategoryTreeItem { - id: string; - name: string; - children?: CategoryTreeItem[]; - [key: string]: any; -} - -// 任务相关类型 -/** - * 任务查询请求 - */ - -// 供应商评价任务记录类型 -export 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; -} -export interface TaskRequest { - current?: number; - pageSize?: number; - evaluateTheme?: string; - evaluateYear?: string; - startTime?: string; - endTime?: string; - categoryId?: string; - status?: string; -} -// 供应商评价任务查询参数 -export interface TaskSearchParams { - basePageRequest: API.BasePageRequest; - evaluateTheme?: string; - status?: string; - dateRange?: string[]; - startTime?: string; - endTime?: string; -} - -/** - * 任务查询响应 - */ -export interface TaskResponse { - code: number; - success: boolean; - data: { - records: TaskItem[]; - total: number; - size: number; - current: number; - pages: number; - }; - message: string; -} - -/** - * 任务项 - */ -export interface TaskItem { - id: string; - evaluateTheme: string; - evaluateYear: string; - startTime: string; - endTime: string; - templateId: string; - templateName: string; - status: string; - categoryId?: string; - categoryName?: string; - createTime: string; - createBy: string; - [key: string]: any; -} - - -// 评价结果相关类型 -/** - * 评价任务请求 - */ -export interface EvaluateTaskRequest { - current?: number; - pageSize?: number; - evaluateTheme?: string; - evaluateYear?: string; - startTime?: string; - endTime?: string; - status?: string; -} - -/** - * 评价任务数据 - */ -export interface EvaluateTaskData { - records: EvaluateTaskItem[]; - total: number; - size: number; - current: number; - pages: number; -} - -/** - * 评价任务项 - */ -export interface EvaluateTaskItem { - id: string; - evaluateTheme: string; - evaluateYear: string; - startTime: string; - endTime: string; - templateId: string; - templateName: string; - status: string; - createTime: string; - createBy: string; - supplierCount: number; - [key: string]: any; -} - -/** - * 评价供应商请求 - */ -export interface EvaluateSupplierRequest { - current?: number; - pageSize?: number; - taskId: string; - supplierName?: string; - status?: string; -} - -/** - * 评价供应商数据 - */ -export interface EvaluateSupplierData { - records: EvaluateSupplierItem[]; - total: number; - size: number; - current: number; - pages: number; -} - -/** - * 评价供应商项 - */ -export interface EvaluateSupplierItem { - id: string; - supplierId: string; - supplierName: string; - socialCreditCode: string; - status: string; - score: number; - level: string; - [key: string]: any; -} - -/** - * 评价分数请求 - */ -export interface EvaluateScoreRequest { - current?: number; - pageSize?: number; - taskId: string; - supplierId: string; -} - -/** - * 评价分数详情数据 - */ -export interface EvaluateScoreDetailData { - id: string; - supplierId: string; - supplierName: string; - taskId: string; - evaluateTheme: string; - evaluateYear: string; - dimensions: EvaluateDimension[]; - userScore: number; - totalScore: number; - level: string; - [key: string]: any; -} - -/** - * 评价维度 - */ -export interface EvaluateDimension { - id: string; - dimensionName: string; - dimensionWeight: number; - dimensionScore: number; - indicators: EvaluateIndicator[]; - [key: string]: any; -} - -/** - * 评价指标 - */ -export interface EvaluateIndicator { - id: string; - indicatorName: string; - indicatorWeight: number; - score: number; - remarks: string; - [key: string]: any; -} - -// 评价规则相关类型 -/** - * 评价规则响应 - */ -export interface EvaluateRuleResponse { - code: number; - success: boolean; - data: EvaluateRuleItem[]; - message: string; -} - -/** - * 评价规则项 - */ -export interface EvaluateRuleItem { - id: string; - levelName: string; - minScore: number; - maxScore: number; - status: string; - createTime: string; - updateTime: string; - createBy: string; - updateBy: string; - [key: string]: any; -} - -/** - * 评价规则详情响应 - */ -export interface EvaluateRuleDetailResponse { - code: number; - success: boolean; - data: EvaluateRuleItem; - message: string; -} - -/** - * 评价规则新增请求 - */ -export interface EvaluateRuleAddRequest { - levelName: string; - minScore: number; - maxScore: number; -} - -/** - * 评价规则更新请求 - */ -export interface EvaluateRuleUpdateRequest { - id: string; - levelName: string; - minScore: number; - maxScore: number; -} - -/** - * 供应商评价任务详情接口类型定义 - */ -export interface IndicatorItem { - indicatorIds: string[]; - type: number; - userId: string; -} - -/* -人员信息 -*/ -export interface PersonnelItem { - id: string; - name: string; - userId: string; - userName: string; - position: string; - userDept: string; - userDeptId: string; - indicatorIds?: string[]; -} -/** - * 任务详情数据 - */ -export interface TaskDetailData { - categoryId: string | null; - categoryLimitation: string | null; - createBy: string | null; - createDate: string | null; - createTime: string | null; - deleteFlag: string | null; - delFlag: string; - deptId: string | null; - endTime: string | null; - evaluateTheme: string | null; - evaluateYear: string | null; - id: string | null; - indicatorList: IndicatorItem[] | null; - lastUpdateTime: string | null; - startTime: string | null; - status: string; - supplierIds: { - id: string; - userIds: string[]; - }[] | null; - userList: PersonnelItem[]; - suppliers: { - id: string; - supplierName: string; - socialCreditCode?: string; - category?: string; - department?: string; - evaluators: { - id: string; - name: string; - department: string; - position?: string; - }[]; - [key: string]: any; - }[] | null; - templateId: string | null; - tenantId: string | null; - tenantName: string | null; - updateBy: string | null; - updateDate: string | null; - updateTime: string | null; - weightDept: string | null; - weightStatus: number | null; - weightValue: string | null; - taskDeptWeightList: DeptWeightItem[] | null; - blackSupplierVos: { - deptName: string; - supplierId: string; - supplierName: string; - userList: PersonnelItem[]; - }[], - [property: string]: any; -} -// 部门配置权重 -export interface DeptWeightItem { - //部门id - weightDept: string; - // 部门权重值 - weightValue: string; - // 部门名称 - weightDeptName: string; -} -/** - * 任务详情响应 - */ -export interface TaskDetailResponse { - code: number; - data: TaskDetailData; - message: string; - success: boolean; - [property: string]: any; -} - -// 新增评价任务和修改 请求参数定义 -export type TaskAddRequest = { - id?: string; - /** - * 品类限制类型(0.通用不限品类、1.限制品类) - */ - categoryLimitation?: string; - /** - * 评价结束时间 - */ - endTime: string; - /** - * 评价主题 - */ - evaluateTheme: string; - /** - * 评价年度 - */ - evaluateYear: string; - indicatorList: IndicatorItem[]; - /** - * 评价开始时间 - */ - startTime: string; - supplierIds: SupplierId[]; - /** - * 评价表模板id(cosco_evaluate_template表主键) - */ - templateId: string; - // 品类id - categoryId?: string; - /** - * 是否下级部门可以添加评价信息 0否1是 - */ - taskStatus?: TaskNotifyLowerUnits | null; - /* - 供应商列表 - */ - selectedSuppliers?: SupplierItem[]; - userList?: PersonnelItem[]; -} -/** - * 供应商项 - */ -export interface SupplierItem { - id: string; // 供应商ID - supplierName: string; // 供应商名称 - supplierId?: string; // 供应商ID - socialCreditCode?: string; // 统一社会信用代码 - category?: string; // 品类 - department?: string; // 准入部门 - evaluatorCount?: number; // 评价人员数量 - evaluators: PersonnelItem[]; // 评价人员列表 - deptName?: string; // 部门名称 - // 其他可能的字段 - [key: string]: any; -} -export type SupplierId = { - /** - * 供应商id - */ - id: string; - /** - * 用户集合 - */ - userIds?: string[]; -}