- 新增IndexConfirmTarget、IndexConfirmLabelItem、IndexConfirmGroup等接口定义 - 添加buildIndexConfirmDataApi和buildIndexSelectionApi两个API方法 - 实现MappingConfirmDialog组件用于人工确认索引配置 - 将解析ICD流程分为候选数据获取和人工确认两个步骤 - 添加确认弹窗的验证逻辑和状态管理 - 更新页面重置逻辑以清除确认相关状态 - 修改请求配置面板显示确认按钮和相应操作 - 移除原有的自动生成默认索引选择的工具函数
42 lines
1.9 KiB
TypeScript
42 lines
1.9 KiB
TypeScript
import http from '@/api'
|
||
import type { MmsMapping } from './interface'
|
||
|
||
const buildIcdFormData = (icdFile: File) => {
|
||
const formData = new FormData()
|
||
|
||
formData.append('icdFile', icdFile)
|
||
|
||
return formData
|
||
}
|
||
|
||
export const getIcdApi = (params: MmsMapping.GetIcdParams) => {
|
||
const formData = buildIcdFormData(params.icdFile)
|
||
|
||
// 关键业务节点:解析 ICD 按钮改走独立 get-icd 接口,只上传当前选择的 ICD 文件。
|
||
return http.post<MmsMapping.MappingTaskResponse>('/api/mms-mapping/get-icd', formData, {
|
||
headers: { 'Content-Type': 'multipart/form-data' }
|
||
})
|
||
}
|
||
|
||
export const getIcdMmsJsonApi = (params: MmsMapping.GetIcdMmsJsonParams) => {
|
||
const formData = buildIcdFormData(params.icdFile)
|
||
|
||
// 接口文档要求 request 以 application/json 分段提交,避免后端按普通字符串丢失 JSON 结构。
|
||
formData.append('request', new Blob([JSON.stringify(params.request)], { type: 'application/json' }))
|
||
|
||
// 关键业务节点:生成映射仍走 get-icd-mms-json,提交时保持 icdFile + request 的 multipart 结构。
|
||
return http.post<MmsMapping.MappingTaskResponse>('/api/mms-mapping/get-icd-mms-json', formData, {
|
||
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)
|
||
}
|