From 3e06241c9ce9b0f0992c6b42ed417db164341067 Mon Sep 17 00:00:00 2001 From: tzy <1042411602@qq.com> Date: Sat, 6 Jun 2026 11:14:24 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BB=9F=E4=B8=80=E6=8E=92=E4=BA=A7=E5=90=8C?= =?UTF-8?q?=E6=AD=A5=E6=B5=81=E7=A8=8B,=E4=BF=AE=E5=A4=8DLOGO=E5=A4=B1?= =?UTF-8?q?=E6=95=88=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/orderItem.ts | 21 +- src/api/orderProject.ts | 41 +- src/layout/index.vue | 20 +- src/router/index.ts | 12 + src/stores/site.ts | 4 +- src/views/biz/orderItem/index.vue | 71 +- .../orderProject/components/GanttSchedule.vue | 666 +++++++++++++----- src/views/biz/orderProject/index.vue | 68 +- src/views/login/index.vue | 22 +- src/views/register/index.vue | 5 +- src/views/system/config/index.vue | 18 +- 11 files changed, 710 insertions(+), 238 deletions(-) diff --git a/src/api/orderItem.ts b/src/api/orderItem.ts index 18acab9..2674438 100644 --- a/src/api/orderItem.ts +++ b/src/api/orderItem.ts @@ -44,7 +44,12 @@ export interface OrderItem { assingWorkOperationTime?: string starter?: number + + orderCode?: string + routeCode?: string + + proWorkshop?: string } // 生产订单 API @@ -93,11 +98,23 @@ export const orderItemApi = { }, // 导出 - export(params?: { ids?: string[]; code?: string; projectId?: number; beginTime?: string; endTime?: string }) { + export(params?: { + ids?: string[] + code?: string + projectName?: string + orderCode?: string + routeCode?: string + proWorkshop?: string + beginTime?: string + endTime?: string + }) { const p: Record = {} if (params?.ids?.length) p.ids = params.ids.join(',') if (params?.code !== undefined && params?.code !== null) p.code = params.code - if (params?.projectId !== undefined && params?.projectId !== null) p.projectId = params.projectId + if (params?.projectName !== undefined && params?.projectName !== null) p.projectName = params.projectName + if (params?.orderCode !== undefined && params?.orderCode !== null) p.orderCode = params.orderCode + if (params?.routeCode !== undefined && params?.routeCode !== null) p.routeCode = params.routeCode + if (params?.proWorkshop !== undefined && params?.proWorkshop !== null) p.proWorkshop = params.proWorkshop if (params?.beginTime !== undefined && params?.beginTime !== null) p.beginTime = params.beginTime if (params?.endTime !== undefined && params?.endTime !== null) p.endTime = params.endTime return request({ url: `/biz/orderItem/export`, method: 'get', params: p, responseType: 'blob' }) diff --git a/src/api/orderProject.ts b/src/api/orderProject.ts index 7cea8aa..73244d3 100644 --- a/src/api/orderProject.ts +++ b/src/api/orderProject.ts @@ -69,18 +69,57 @@ export interface KingdeePrdMo { /** 金蝶工艺路线工序(树子节点) */ export interface KingdeeProcessRoute { + /** 工序号 FOperNumber */ operNumber: number | null + /** 工作中心 FWorkCenterId.FName */ workCenterName: string | null + /** 生产车间 FDepartmentId.FName */ departmentName: string | null - processProperty: string | null + /** 工序名称 FProcessProperty */ + processName: string | null + /** 工序说明 FOperDescription */ operDescription: string | null + /** 活动单位 FActivity1UnitID.FName */ activityUnit: string | null + /** 工序控制码 FOptCtrlCodeId.FName */ optCtrlCodeName: string | null + /** 活动量 FActivity1Qty */ activityQty: number | null + /** 计划开始时间 yyyy-MM-dd HH:mm:ss */ planStartTime: string | null + /** 计划结束时间 yyyy-MM-dd HH:mm:ss */ planFinishTime: string | null } +/** 解析工序名称,兼容旧字段及后端误映射 */ +export function resolveProcessName(route: Partial & { processProperty?: string | null }) { + const legacyName = typeof route.processProperty === 'string' ? route.processProperty.trim() : '' + const processName = route.processName?.trim() || legacyName || '' + const operDescription = route.operDescription?.trim() || '' + + if (processName) return processName + // 兼容:FProcessProperty 被写入 operDescription 而 processName 为空 + if (operDescription) return operDescription + return '' +} + +/** 归一化金蝶工序字段,保证 processName / operDescription 各归其位 */ +export function normalizeKingdeeProcessRoute( + route: KingdeeProcessRoute & { processProperty?: string | null } +): KingdeeProcessRoute { + const legacyName = typeof route.processProperty === 'string' ? route.processProperty.trim() : '' + const processName = route.processName?.trim() || legacyName || '' + const operDescription = route.operDescription?.trim() || '' + + if (processName) { + return { ...route, processName, operDescription: operDescription || null } + } + if (operDescription) { + return { ...route, processName: operDescription, operDescription: null } + } + return { ...route, processName: null, operDescription: null } +} + // 项目表 API export const orderProjectApi = { // 分页查询 diff --git a/src/layout/index.vue b/src/layout/index.vue index 681acb5..880415d 100644 --- a/src/layout/index.vue +++ b/src/layout/index.vue @@ -17,8 +17,11 @@ >