feat(mmsmapping): 添加ICD索引配置人工确认功能

- 新增IndexConfirmTarget、IndexConfirmLabelItem、IndexConfirmGroup等接口定义
- 添加buildIndexConfirmDataApi和buildIndexSelectionApi两个API方法
- 实现MappingConfirmDialog组件用于人工确认索引配置
- 将解析ICD流程分为候选数据获取和人工确认两个步骤
- 添加确认弹窗的验证逻辑和状态管理
- 更新页面重置逻辑以清除确认相关状态
- 修改请求配置面板显示确认按钮和相应操作
- 移除原有的自动生成默认索引选择的工具函数
This commit is contained in:
2026-05-06 08:47:39 +08:00
parent 297f89ef52
commit 483b3d7ae4
6 changed files with 720 additions and 58 deletions

View File

@@ -29,3 +29,13 @@ export const getIcdMmsJsonApi = (params: MmsMapping.GetIcdMmsJsonParams) => {
headers: { 'Content-Type': 'multipart/form-data' }
})
}
export const buildIndexConfirmDataApi = (params: MmsMapping.IndexCandidateGroup[]) => {
// 关键业务节点ICD 候选数据需要先转换成前端确认弹窗模型,后续人工确认才能继续生成正式索引配置。
return http.post<MmsMapping.IndexConfirmGroup[]>('/api/mms-mapping/build-index-confirm-data', params)
}
export const buildIndexSelectionApi = (params: MmsMapping.BuildIndexSelectionRequest) => {
// 关键业务节点:人工确认完成后,必须把 confirmData 和 confirmedData 一并提交给后端生成正式 request.indexSelection。
return http.post<MmsMapping.IndexSelectionGroup[]>('/api/mms-mapping/build-index-selection', params)
}

View File

@@ -3,6 +3,39 @@ export namespace MmsMapping {
icdFile: File
}
export interface IndexConfirmTarget {
reportName?: string
dataSetName?: string
reportDesc?: string
availableLnInstValues?: string[]
}
export interface IndexConfirmLabelItem {
label?: string
required?: boolean
configurableOnce?: boolean
defaultLnInst?: string
commonLnInstValues?: string[]
targets?: IndexConfirmTarget[]
}
export interface IndexConfirmGroup {
groupKey?: string
groupDesc?: string
labelItems?: IndexConfirmLabelItem[]
}
export interface ConfirmedIndexLabelItem {
label: string
enabled: boolean
lnInst: string
}
export interface ConfirmedIndexGroup {
groupKey: string
labelItems: ConfirmedIndexLabelItem[]
}
export interface IndexSelectionBinding {
reportName: string
dataSetName: string
@@ -30,6 +63,11 @@ export namespace MmsMapping {
request: GetIcdMmsJsonRequestPayload
}
export interface BuildIndexSelectionRequest {
confirmData: IndexConfirmGroup[]
confirmedData: ConfirmedIndexGroup[]
}
export interface IcdDocument {
[key: string]: unknown
}