Compare commits
2 Commits
76c38cce39
...
c082a272c1
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
c082a272c1 | ||
|
|
c1f6e4e1ea |
@@ -1243,11 +1243,14 @@ async function show(diagnosisData) {
|
|||||||
const res = await getNextCardNo(orgCode);
|
const res = await getNextCardNo(orgCode);
|
||||||
if (res.code === 200 && res.data && res.data.length >= 12) {
|
if (res.code === 200 && res.data && res.data.length >= 12) {
|
||||||
cardNo = res.data;
|
cardNo = res.data;
|
||||||
|
} else {
|
||||||
|
// API返回失败或不合规时,生成临时卡号避免保存时 cardNo 为空导致后端校验失败
|
||||||
|
cardNo = 'TEMP_' + Date.now();
|
||||||
}
|
}
|
||||||
// API失败或返回不合规时保持为空字符串,由用户手动填写或后端自动生成
|
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
console.error('获取卡片编号失败:', err);
|
console.error('获取卡片编号失败:', err);
|
||||||
// 保持为空,不使用不合规的临时值
|
// API调用异常时,生成临时卡号
|
||||||
|
cardNo = 'TEMP_' + Date.now();
|
||||||
}
|
}
|
||||||
|
|
||||||
form.value = {
|
form.value = {
|
||||||
@@ -1430,8 +1433,8 @@ async function buildSubmitData() {
|
|||||||
function validateFormManually() {
|
function validateFormManually() {
|
||||||
const errors = [];
|
const errors = [];
|
||||||
|
|
||||||
// 卡片编号验证(至少12位,后端自动生成16位编号)
|
// 卡片编号验证(至少12位,后端自动生成16位编号;临时卡号 TEMP_ 开头允许通过)
|
||||||
if (form.value.cardNo && form.value.cardNo.length < 12) {
|
if (form.value.cardNo && !form.value.cardNo.startsWith('TEMP_') && form.value.cardNo.length < 12) {
|
||||||
errors.push('卡片编号至少12位');
|
errors.push('卡片编号至少12位');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -482,14 +482,28 @@ async function loadPackageDetails(row, treeNode, resolve) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// #428: 为已选择项目加载套餐明细
|
// #428修复: 为已选择项目加载套餐明细(通过packageId或packageName查询)
|
||||||
async function loadPackageDetailsForItem(item) {
|
async function loadPackageDetailsForItem(item) {
|
||||||
if (!item.isPackage || !item.packageId) {
|
if (!item.isPackage || (!item.packageId && !item.packageName)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
|
let packageId = item.packageId;
|
||||||
|
if (!packageId && item.packageName) {
|
||||||
|
// CheckPart 没有 packageId 字段,需要通过 packageName 查询获取
|
||||||
|
const pkgRes = await listCheckPackage({ packageName: item.packageName });
|
||||||
|
let packages = pkgRes?.data || [];
|
||||||
|
if (!Array.isArray(packages)) {
|
||||||
|
packages = packages.records || packages.data || [];
|
||||||
|
}
|
||||||
|
if (packages.length === 0) {
|
||||||
|
item.packageDetails = [];
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
packageId = packages[0].id;
|
||||||
|
}
|
||||||
const res = await request({
|
const res = await request({
|
||||||
url: `/system/package/${item.packageId}/details`,
|
url: `/system/package/${packageId}/details`,
|
||||||
method: 'get'
|
method: 'get'
|
||||||
});
|
});
|
||||||
if (res.code === 200 && res.data) {
|
if (res.code === 200 && res.data) {
|
||||||
@@ -497,7 +511,7 @@ async function loadPackageDetailsForItem(item) {
|
|||||||
...detail,
|
...detail,
|
||||||
name: detail.name || detail.itemName,
|
name: detail.name || detail.itemName,
|
||||||
unit: detail.unit || '次',
|
unit: detail.unit || '次',
|
||||||
price: detail.price || detail.itemPrice || 0,
|
price: detail.price || detail.unitPrice || 0,
|
||||||
quantity: detail.quantity || 1
|
quantity: detail.quantity || 1
|
||||||
}));
|
}));
|
||||||
} else {
|
} else {
|
||||||
@@ -1241,6 +1255,7 @@ async function handleItemSelect(checked, item, cat) {
|
|||||||
selectedMethod: null,
|
selectedMethod: null,
|
||||||
expanded: false, // Bug #384修复: 新增展开状态,默认不展开
|
expanded: false, // Bug #384修复: 新增展开状态,默认不展开
|
||||||
isPackage: !!item.packageName, // Bug #428修复: 标记是否为套餐
|
isPackage: !!item.packageName, // Bug #428修复: 标记是否为套餐
|
||||||
|
packageName: item.packageName || null, // Bug #426修复: 套餐名称,用于查找packageId
|
||||||
packageId: item.packageId || null // Bug #428修复: 套餐ID
|
packageId: item.packageId || null // Bug #428修复: 套餐ID
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user