Fix Bug #412: 门诊医生站:传染病报告卡保存失败,提示报错
根因:infectiousDiseaseReportDialog.vue 的 show() 函数将 cardNo 初始化为空字符串, 而后端 DTO 的 cardNo 字段有 @NotBlank 校验,导致保存时后端拒绝请求。 同仓库的 infectiousReport/index.vue 已有此修复(调用 getNextCardNo API), 但诊断流程使用的 infectiousDiseaseReportDialog.vue 漏掉了此修复。 修复:在 show() 函数中调用 getNextCardNo API 获取卡片编号, API 失败时降级为 TEMP_ 前缀的临时卡号,与 infectiousReport/index.vue 保持一致。
This commit is contained in:
@@ -486,7 +486,7 @@
|
|||||||
<script setup>
|
<script setup>
|
||||||
import { ref, computed, getCurrentInstance, watch } from 'vue';
|
import { ref, computed, getCurrentInstance, watch } from 'vue';
|
||||||
import pcas from 'china-division/dist/pcas-code.json';
|
import pcas from 'china-division/dist/pcas-code.json';
|
||||||
import { saveInfectiousDiseaseReport } from '../api';
|
import { saveInfectiousDiseaseReport, getNextCardNo } from '../api';
|
||||||
import useUserStore from '@/store/modules/user';
|
import useUserStore from '@/store/modules/user';
|
||||||
import { useDict } from '@/utils/dict';
|
import { useDict } from '@/utils/dict';
|
||||||
|
|
||||||
@@ -1201,7 +1201,7 @@ function calculateAge() {
|
|||||||
* 显示对话框并初始化表单数据
|
* 显示对话框并初始化表单数据
|
||||||
* @param {Object} diagnosisData - 诊断数据,包含已选疾病和地址信息
|
* @param {Object} diagnosisData - 诊断数据,包含已选疾病和地址信息
|
||||||
*/
|
*/
|
||||||
function show(diagnosisData) {
|
async function show(diagnosisData) {
|
||||||
dialogVisible.value = true;
|
dialogVisible.value = true;
|
||||||
|
|
||||||
// 重置地址选择器状态
|
// 重置地址选择器状态
|
||||||
@@ -1231,12 +1231,24 @@ function show(diagnosisData) {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
// 生成默认卡片编号:医疗机构编码+当前年月日+4位流水
|
// 生成默认卡片编号:调用后端接口获取
|
||||||
const orgCode = userStore.fixmedinsCode || '0000';
|
const orgCode = userStore.fixmedinsCode || '0000';
|
||||||
|
let cardNo = '';
|
||||||
|
try {
|
||||||
|
const res = await getNextCardNo(orgCode);
|
||||||
|
if (res.code === 200 && res.data) {
|
||||||
|
cardNo = res.data;
|
||||||
|
} else {
|
||||||
|
cardNo = 'TEMP_' + Date.now();
|
||||||
|
}
|
||||||
|
} catch (err) {
|
||||||
|
console.error('获取卡片编号失败:', err);
|
||||||
|
cardNo = 'TEMP_' + Date.now();
|
||||||
|
}
|
||||||
|
|
||||||
form.value = {
|
form.value = {
|
||||||
// 卡片编号:单位自编,与网络直报一致
|
// 卡片编号:单位自编,与网络直报一致
|
||||||
cardNo: '',
|
cardNo: cardNo,
|
||||||
|
|
||||||
// 患者基本信息
|
// 患者基本信息
|
||||||
patName: patientInfo.patientName || patientInfo.name || '', // 患者姓名
|
patName: patientInfo.patientName || patientInfo.name || '', // 患者姓名
|
||||||
|
|||||||
Reference in New Issue
Block a user