Files
CN_Tool_client/frontend/src/api/tools/mmsmapping/index.ts
yexb a1e1fb124a feat(mmsmapping): 添加 XML 映射生成功能和波形标记功能
- 新增 getXmlFromJsonApi 接口用于从 JSON 生成 XML 映射
- 添加 XML 映射相关的数据结构定义和响应处理
- 实现 XML 映射生成功能,支持 JSON 到 XML 的转换
- 添加波形图表点击事件处理和标记功能
- 实现趋势图表的标记点显示和标签功能
- 更新界面以支持 XML 映射预览和导出
- 优化图表交互体验,添加标记工具模式
- 重构部分界面组件以支持新的映射功能
2026-05-08 09:54:52 +08:00

53 lines
2.4 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 getXmlFromJsonApi = (params: MmsMapping.GetXmlFromJsonParams) => {
const formData = new FormData()
// 关键业务节点XML 映射由后端根据已生成的 mappingJson 转换,前端保持 request JSON Part 的提交格式。
formData.append('request', new Blob([JSON.stringify(params.request)], { type: 'application/json' }))
return http.post<MmsMapping.MappingTaskResponse>('/api/mms-mapping/get-xml-from-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)
}