From 28c47b14a37ee6056bc31265de17f727f7a0ecc7 Mon Sep 17 00:00:00 2001 From: dk <1260500659@qq.com> Date: Sat, 9 May 2026 18:15:10 +0800 Subject: [PATCH] =?UTF-8?q?fix(=E4=BA=A7=E5=93=81=E9=9C=80=E6=B1=82):=20?= =?UTF-8?q?=E5=AE=8C=E5=96=84=E4=BA=A7=E5=93=81=E9=9C=80=E6=B1=82=E7=9A=84?= =?UTF-8?q?=E8=AF=B8=E5=A4=9A=E7=BB=86=E8=8A=82=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/constants/dict.ts | 8 + src/service/api/product.ts | 2 + src/service/api/project.ts | 12 + src/service/api/system-manage.ts | 2 - src/typings/api/product.d.ts | 2 + src/views/product/requirement/index.vue | 215 ++++++++++-------- .../requirement/modules/module-tree-node.vue | 12 +- .../modules/requirement-action-dialog.vue | 8 +- .../modules/requirement-create-dialog.vue | 81 ++++--- .../modules/requirement-detail-dialog.vue | 178 +++++++++------ .../modules/requirement-split-dialog.vue | 33 ++- .../system/user-management-relation/index.vue | 21 +- .../modules/relation-operate-dialog.vue | 8 +- 13 files changed, 337 insertions(+), 245 deletions(-) diff --git a/src/constants/dict.ts b/src/constants/dict.ts index 87524f3..f61f04e 100644 --- a/src/constants/dict.ts +++ b/src/constants/dict.ts @@ -75,3 +75,11 @@ export const RDMS_PROJECT_TYPE_DICT_CODE = 'rdms_project_type'; * 来源口径:`rdms-project-boot-执行任务接口API文档.md` 明确 executionType 来自字典 rdms_project_execution_type */ export const RDMS_PROJECT_EXECUTION_TYPE_DICT_CODE = 'rdms_project_execution_type'; + +/** + * 需求允许删除的状态字典编码 + * + * 对应业务字段:需求删除功能中判断 statusCode 是否允许删除 + * 来源口径:用户在系统字典管理页中创建的字典 rdms_req_can_delete_status + */ +export const RDMS_REQ_CAN_DELETE_STATUS_DICT_CODE = 'rdms_req_can_delete_status'; diff --git a/src/service/api/product.ts b/src/service/api/product.ts index 412ca4d..00be6f4 100644 --- a/src/service/api/product.ts +++ b/src/service/api/product.ts @@ -179,6 +179,7 @@ type RequirementResponse = Omit< proposerId: string | number; currentHandlerUserId?: string | number | null; implementProjectId?: string | number | null; + implementProjectName?: string | null; sourceBizId?: string | number | null; children?: RequirementResponse[]; }; @@ -194,6 +195,7 @@ function normalizeRequirement(requirement: RequirementResponse): Api.Product.Req proposerId: normalizeStringId(requirement.proposerId), currentHandlerUserId: normalizeNullableStringId(requirement.currentHandlerUserId), implementProjectId: normalizeNullableStringId(requirement.implementProjectId), + implementProjectName: requirement.implementProjectName ?? null, sourceBizId: normalizeNullableStringId(requirement.sourceBizId), children: requirement.children?.map(normalizeRequirement) }; diff --git a/src/service/api/project.ts b/src/service/api/project.ts index 76fd0db..995e528 100644 --- a/src/service/api/project.ts +++ b/src/service/api/project.ts @@ -135,6 +135,18 @@ export async function fetchGetProject(id: string) { return mapServiceResult(result as ServiceRequestResult, normalizeProject); } +/** 根据产品ID获取产品下的所有项目 */ +export async function fetchGetProjectListByProductId(productId: string) { + const result = await request({ + ...safeJsonRequestConfig, + url: `${PROJECT_PREFIX}/list-by-product`, + method: 'get', + params: { productId } + }); + + return mapServiceResult(result as ServiceRequestResult, data => data.map(normalizeProject)); +} + /** 创建项目 */ export async function fetchCreateProject(data: Api.Project.SaveProjectParams) { const result = await request({ diff --git a/src/service/api/system-manage.ts b/src/service/api/system-manage.ts index 66f464f..5aed769 100644 --- a/src/service/api/system-manage.ts +++ b/src/service/api/system-manage.ts @@ -795,5 +795,3 @@ export async function fetchGetCandidateSubordinateUsers() { mapServiceResult(result as ServiceRequestResult, data => data.map(normalizeUserSimple)) ); } - - diff --git a/src/typings/api/product.d.ts b/src/typings/api/product.d.ts index 9d59d22..5b894e3 100644 --- a/src/typings/api/product.d.ts +++ b/src/typings/api/product.d.ts @@ -288,6 +288,8 @@ declare namespace Api { currentHandlerUserNickname?: string | null; /** 默认实现项目编号 */ implementProjectId?: string | null; + /** 默认实现项目名称 */ + implementProjectName?: string | null; /** 所需工时(小时) */ workHours: number; /** 排序值 */ diff --git a/src/views/product/requirement/index.vue b/src/views/product/requirement/index.vue index 2d9d811..ea0e490 100644 --- a/src/views/product/requirement/index.vue +++ b/src/views/product/requirement/index.vue @@ -1,9 +1,10 @@