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 @@