From f4f43814b3c98b4522bfa72b0c79b187d9f64ac2 Mon Sep 17 00:00:00 2001 From: dk <1260500659@qq.com> Date: Thu, 7 May 2026 17:09:53 +0800 Subject: [PATCH] =?UTF-8?q?fix(=E4=BA=A7=E5=93=81=E9=9C=80=E6=B1=82):=20?= =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E4=BA=A7=E5=93=81=E9=9C=80=E6=B1=82=E4=BD=BF?= =?UTF-8?q?=E7=94=A8=E7=8A=B6=E6=80=81=E5=92=8C=E7=BB=88=E6=AD=A2=E6=80=81?= =?UTF-8?q?=E5=AD=97=E5=85=B8=E7=9A=84=E9=97=AE=E9=A2=98=E3=80=82=20fix(?= =?UTF-8?q?=E7=BB=84=E7=BB=87):=20=E4=BF=AE=E5=A4=8D=E7=BB=84=E7=BB=87?= =?UTF-8?q?=E7=BC=96=E7=A0=81=E4=B8=8B=E6=8B=89=E6=A1=86=E7=9A=84=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E6=98=BE=E7=A4=BA=E9=97=AE=E9=A2=98=E3=80=81=E4=BF=AE?= =?UTF-8?q?=E5=A4=8D=E7=BB=84=E7=BB=87=E7=BC=96=E7=A0=81=E8=B4=9F=E8=B4=A3?= =?UTF-8?q?=E4=BA=BA=E6=97=A0=E6=B3=95=E6=96=B0=E5=A2=9E=E7=9A=84=E9=97=AE?= =?UTF-8?q?=E9=A2=98=E3=80=82=20fix(=E7=AE=A1=E7=90=86=E9=93=BE=E8=B7=AF):?= =?UTF-8?q?=20=E4=BF=AE=E5=A4=8D=E7=AE=A1=E7=90=86=E9=93=BE=E8=B7=AF?= =?UTF-8?q?=E9=AB=98=E5=BA=A6=E6=B2=A1=E5=9B=BA=E5=AE=9A=EF=BC=8C=E8=8A=82?= =?UTF-8?q?=E7=82=B9=E5=85=A8=E9=83=A8=E6=94=B6=E7=BC=A9=E7=AD=89=E9=97=AE?= =?UTF-8?q?=E9=A2=98=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/constants/dict.ts | 16 -- src/service/api/product.ts | 22 +++ src/typings/api/product.d.ts | 15 ++ src/typings/api/system-manage.d.ts | 6 +- src/views/product/requirement/index.vue | 74 ++++++--- .../modules/requirement-search.vue | 31 ++-- .../system/user-management-relation/index.vue | 147 +++++++++++++++++- .../modules/relation-operate-dialog.vue | 32 ++-- .../modules/relation-search.vue | 6 +- .../user/modules/user-org-leader-dialog.vue | 2 +- .../user-org-leader-operate-dialog.vue | 16 +- .../user/modules/user-org-operate-dialog.vue | 2 +- 12 files changed, 287 insertions(+), 82 deletions(-) diff --git a/src/constants/dict.ts b/src/constants/dict.ts index b146136..7943b4d 100644 --- a/src/constants/dict.ts +++ b/src/constants/dict.ts @@ -36,14 +36,6 @@ export const RDMS_OBJECT_DIRECTION_LEGACY_DICT_CODE = 'rdms_product_direction'; */ export const SYSTEM_USER_COMPANY_DICT_CODE = 'system_user_company'; -/** - * 需求终态状态字典编码 - * - * 对应业务字段:需求相关接口和页面中的 terminal status - * 来源口径:产品需求权限文档中定义,标签包括已关闭、已取消、已拒绝 - */ -export const RDMS_REQ_TERMINAL_STATUS_DICT_CODE = 'rdms_req_terminal_status'; - /** * 需求来源类型字典编码 * @@ -67,11 +59,3 @@ export const RDMS_REQ_PRIORITY_DICT_CODE = 'rdms_req_priority'; * 来源口径:产品需求文档中定义,标签包括工程需求、用户需求、安全需求、体验优化、功能需求 */ export const RDMS_REQ_CATEGORY_DICT_CODE = 'rdms_req_category'; - -/** - * 需求状态字典编码 - * - * 对应业务字段:需求相关接口和页面中的 statusCode - * 来源口径:产品需求文档中定义 - */ -export const RDMS_REQ_STATUS_DICT_CODE = 'rdms_req_status'; diff --git a/src/service/api/product.ts b/src/service/api/product.ts index 6fc10d4..60c646e 100644 --- a/src/service/api/product.ts +++ b/src/service/api/product.ts @@ -320,6 +320,28 @@ export async function fetchGetRequirementLifecycle(requirementId: string, produc return mapServiceResult(result as ServiceRequestResult, data => data); } +/** 获取需求所有状态字典 */ +export async function fetchGetRequirementStatusDict() { + const result = await request({ + ...safeJsonRequestConfig, + url: `${REQUIREMENT_PREFIX}/status/dict`, + method: 'get' + }); + + return mapServiceResult(result as ServiceRequestResult, data => data); +} + +/** 获取需求终止态状态字典 */ +export async function fetchGetRequirementTerminalStatusDict() { + const result = await request({ + ...safeJsonRequestConfig, + url: `${REQUIREMENT_PREFIX}/status/dict/terminal`, + method: 'get' + }); + + return mapServiceResult(result as ServiceRequestResult, data => data); +} + // ========== 模块管理 API ========== type RequirementModuleResponse = Omit & { id: string | number; diff --git a/src/typings/api/product.d.ts b/src/typings/api/product.d.ts index db9fec4..2f64edd 100644 --- a/src/typings/api/product.d.ts +++ b/src/typings/api/product.d.ts @@ -319,6 +319,21 @@ declare namespace Api { children?: RequirementModule[]; } + // ========== 需求状态字典 ========== + + interface RequirementStatusDict { + /** 状态编码 */ + statusCode: string; + /** 状态名称 */ + statusName: string; + /** 排序值 */ + sort: number; + /** 是否初始状态 */ + initialFlag: boolean; + /** 是否终态 */ + terminalFlag: boolean; + } + // ========== 需求生命周期 ========== interface RequirementLifecycleAction { diff --git a/src/typings/api/system-manage.d.ts b/src/typings/api/system-manage.d.ts index 71569ad..f3b8dfd 100644 --- a/src/typings/api/system-manage.d.ts +++ b/src/typings/api/system-manage.d.ts @@ -103,7 +103,7 @@ declare namespace Api { interface OrgLeaderRelation { id: number; deptId: number; - userId: number; + userId: string; userNickname: string; effectiveFrom?: number | null; effectiveUntil?: number | null; @@ -115,7 +115,7 @@ declare namespace Api { type OrgLeaderRelationList = OrgLeaderRelation[]; interface OrgLeaderCandidateUser { - id: number; + id: string; nickname: string; deptId: number; deptName?: string | null; @@ -125,7 +125,7 @@ declare namespace Api { type SaveOrgLeaderRelationParams = { deptId: number; - userId: number; + userId: string | null; effectiveFrom?: number | null; effectiveUntil?: number | null; remark?: string | null; diff --git a/src/views/product/requirement/index.vue b/src/views/product/requirement/index.vue index d3ced8c..ccb3d74 100644 --- a/src/views/product/requirement/index.vue +++ b/src/views/product/requirement/index.vue @@ -1,23 +1,22 @@