Files
CN_Tool_client/frontend/src/api/tools/mmsmapping/index.ts
yexb 483b3d7ae4 feat(mmsmapping): 添加ICD索引配置人工确认功能
- 新增IndexConfirmTarget、IndexConfirmLabelItem、IndexConfirmGroup等接口定义
- 添加buildIndexConfirmDataApi和buildIndexSelectionApi两个API方法
- 实现MappingConfirmDialog组件用于人工确认索引配置
- 将解析ICD流程分为候选数据获取和人工确认两个步骤
- 添加确认弹窗的验证逻辑和状态管理
- 更新页面重置逻辑以清除确认相关状态
- 修改请求配置面板显示确认按钮和相应操作
- 移除原有的自动生成默认索引选择的工具函数
2026-05-06 08:47:39 +08:00

42 lines
1.9 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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)
}