|
|
|
@ -57,6 +57,7 @@ |
|
|
|
:formData="formData" |
|
|
|
@select="onSftjs9Change" |
|
|
|
@clickButton="handleJlzzsButton" |
|
|
|
@blur="onJlzInfoBlur" |
|
|
|
/> |
|
|
|
|
|
|
|
<!-- 剂量组名称列表 --> |
|
|
|
@ -67,6 +68,7 @@ |
|
|
|
:showAddRow="false" |
|
|
|
:formData="jlzmcTableFormData" |
|
|
|
:prefixKey="`jlzmcTable`" |
|
|
|
@blur="onJlzmcTableBlur" |
|
|
|
></CustomTable> |
|
|
|
|
|
|
|
<!-- 完成按钮 --> |
|
|
|
@ -321,14 +323,20 @@ export default { |
|
|
|
} |
|
|
|
|
|
|
|
// 添加剂量组总数字段 |
|
|
|
firstStepConfig.jlzzs = { |
|
|
|
const jlzzsConfig = { |
|
|
|
label: 'template.dl.dl014.jlzzs', |
|
|
|
type: 'inputNumber', |
|
|
|
fillType: 'preFill', |
|
|
|
subType: 'button', |
|
|
|
subKey: 'jlzzsButton', |
|
|
|
buttonName: 'template.dl.dl014.qrButton' |
|
|
|
fillType: 'preFill' |
|
|
|
} |
|
|
|
|
|
|
|
// 只在 preFill 模式下显示确认按钮 |
|
|
|
if (this.fillType === 'preFill') { |
|
|
|
jlzzsConfig.subType = 'button' |
|
|
|
jlzzsConfig.subKey = 'jlzzsButton' |
|
|
|
jlzzsConfig.buttonName = 'template.dl.dl014.qrButton' |
|
|
|
} |
|
|
|
|
|
|
|
firstStepConfig.jlzzs = jlzzsConfig |
|
|
|
|
|
|
|
return [ |
|
|
|
{ |
|
|
|
@ -477,7 +485,9 @@ export default { |
|
|
|
return { |
|
|
|
formData: {}, |
|
|
|
refConf, |
|
|
|
isSftjs9Yes: false // 是否添加S9 |
|
|
|
isSftjs9Yes: false, // 是否添加S9 |
|
|
|
oldJlzzs: null, // 存储旧的剂量组总数 |
|
|
|
oldPxpb: null // 存储旧的平行瓶数 |
|
|
|
} |
|
|
|
}, |
|
|
|
mounted() { |
|
|
|
@ -486,6 +496,16 @@ export default { |
|
|
|
this.isSftjs9Yes = |
|
|
|
this.formData.sftjs9 === '是' || this.formData.sftjs9 === 'Yes' |
|
|
|
} |
|
|
|
|
|
|
|
// 初始化剂量组总数的旧值 |
|
|
|
if (this.formData.jlzzs) { |
|
|
|
this.oldJlzzs = this.formData.jlzzs |
|
|
|
} |
|
|
|
|
|
|
|
// 初始化平行瓶数的旧值 |
|
|
|
if (this.formData.pxpb) { |
|
|
|
this.oldPxpb = this.formData.pxpb |
|
|
|
} |
|
|
|
}, |
|
|
|
methods: { |
|
|
|
// 删除表格行 |
|
|
|
@ -533,6 +553,23 @@ export default { |
|
|
|
return false |
|
|
|
} |
|
|
|
|
|
|
|
// 额外校验:检查剂量组名称表格和剂量组列表是否为空 |
|
|
|
const jlzmcTableData = this.$refs[refConf.jlzmcTable]?.getFilledFormData() |
|
|
|
const jlzmcList = jlzmcTableData?.stepTableFormData || [] |
|
|
|
|
|
|
|
if (jlzmcList.length === 0) { |
|
|
|
this.$message.warning('请先生成剂量组名称') |
|
|
|
return false |
|
|
|
} |
|
|
|
|
|
|
|
const jlzTableData = this.$refs[refConf.jlzTable]?.getFilledFormData() |
|
|
|
const jlzList = jlzTableData?.stepTableFormData || [] |
|
|
|
|
|
|
|
if (jlzList.length === 0) { |
|
|
|
this.$message.warning('请先生成剂量组列表数据') |
|
|
|
return false |
|
|
|
} |
|
|
|
|
|
|
|
return this.getFilledFormData() |
|
|
|
}, |
|
|
|
// 只做校验 |
|
|
|
@ -547,7 +584,29 @@ export default { |
|
|
|
refConf.remark |
|
|
|
] |
|
|
|
|
|
|
|
return await this.validFormFields(refsToValidate) |
|
|
|
const validFlag = await this.validFormFields(refsToValidate) |
|
|
|
if (!validFlag) { |
|
|
|
return false |
|
|
|
} |
|
|
|
|
|
|
|
// 额外校验:检查剂量组名称表格和剂量组列表是否为空 |
|
|
|
const jlzmcTableData = this.$refs[refConf.jlzmcTable]?.getFilledFormData() |
|
|
|
const jlzmcList = jlzmcTableData?.stepTableFormData || [] |
|
|
|
|
|
|
|
if (jlzmcList.length === 0) { |
|
|
|
this.$message.warning('请先生成剂量组名称') |
|
|
|
return false |
|
|
|
} |
|
|
|
|
|
|
|
const jlzTableData = this.$refs[refConf.jlzTable]?.getFilledFormData() |
|
|
|
const jlzList = jlzTableData?.stepTableFormData || [] |
|
|
|
|
|
|
|
if (jlzList.length === 0) { |
|
|
|
this.$message.warning('请先生成剂量组列表数据') |
|
|
|
return false |
|
|
|
} |
|
|
|
|
|
|
|
return true |
|
|
|
}, |
|
|
|
getResource() { |
|
|
|
// 从仪器使用信息表格中提取仪器资源 |
|
|
|
@ -603,6 +662,55 @@ export default { |
|
|
|
this.isSftjs9Yes = value === '是' || value === 'Yes' |
|
|
|
} |
|
|
|
}, |
|
|
|
// 处理剂量组配制信息的 blur 事件 |
|
|
|
onJlzInfoBlur(e) { |
|
|
|
const { key, value } = e |
|
|
|
|
|
|
|
// 当剂量组总数改变时,清空剂量组名称表格数据和剂量组列表数据 |
|
|
|
if (key === 'jlzzs') { |
|
|
|
// 检查值是否真的改变了 |
|
|
|
if (this.oldJlzzs !== null && this.oldJlzzs !== value) { |
|
|
|
// 清空剂量组名称表格数据 |
|
|
|
this.$set(this.formData, 'jlzmcTableData', []) |
|
|
|
// 同时清空剂量组列表数据 |
|
|
|
this.$set(this.formData, 'jlzTableData', []) |
|
|
|
|
|
|
|
this.$message.info('剂量组总数已改变,已清空剂量组名称和剂量组列表数据') |
|
|
|
} |
|
|
|
|
|
|
|
// 更新旧值 |
|
|
|
this.oldJlzzs = value |
|
|
|
} |
|
|
|
|
|
|
|
// 当平行瓶数改变时,清空剂量组列表数据 |
|
|
|
if (key === 'pxpb') { |
|
|
|
// 检查值是否真的改变了 |
|
|
|
if (this.oldPxpb !== null && this.oldPxpb !== value) { |
|
|
|
// 清空剂量组列表数据 |
|
|
|
this.$set(this.formData, 'jlzTableData', []) |
|
|
|
|
|
|
|
this.$message.info('平行瓶数已改变,已清空剂量组列表数据') |
|
|
|
} |
|
|
|
|
|
|
|
// 更新旧值 |
|
|
|
this.oldPxpb = value |
|
|
|
} |
|
|
|
}, |
|
|
|
// 处理剂量组名称表格的 blur 事件 |
|
|
|
onJlzmcTableBlur(e) { |
|
|
|
const { colKey } = e |
|
|
|
|
|
|
|
// 当剂量组名称字段改变时,清空剂量组列表数据 |
|
|
|
if (colKey === 'jlzzmc') { |
|
|
|
// 检查剂量组列表是否有数据 |
|
|
|
const jlzTableData = this.formData.jlzTableData || [] |
|
|
|
if (jlzTableData.length > 0) { |
|
|
|
// 清空剂量组列表数据 |
|
|
|
this.$set(this.formData, 'jlzTableData', []) |
|
|
|
this.$message.info('剂量组名称已改变,已清空剂量组列表数据') |
|
|
|
} |
|
|
|
} |
|
|
|
}, |
|
|
|
// 处理剂量组总数确认按钮 |
|
|
|
handleJlzzsButton(item) { |
|
|
|
const { subKey } = item || {} |
|
|
|
@ -611,8 +719,9 @@ export default { |
|
|
|
const jlzInfoData = this.$refs[refConf.jlzInfo]?.getFilledFormData() |
|
|
|
const jlzzs = jlzInfoData?.jlzzs |
|
|
|
|
|
|
|
// 校验剂量组总数是否有值且大于0 |
|
|
|
if (!jlzzs || jlzzs <= 0) { |
|
|
|
this.$message.warning('请先输入剂量组总数') |
|
|
|
this.$message.warning('请输入大于0的剂量组总数') |
|
|
|
return |
|
|
|
} |
|
|
|
|
|
|
|
@ -631,8 +740,8 @@ export default { |
|
|
|
} |
|
|
|
}, |
|
|
|
// 处理剂量组名称完成按钮 |
|
|
|
handleJlzmcComplete() { |
|
|
|
// 获取平行瓶数 |
|
|
|
async handleJlzmcComplete() { |
|
|
|
// 1. 校验平行瓶数 |
|
|
|
const jlzInfoData = this.$refs[refConf.jlzInfo]?.getFilledFormData() |
|
|
|
const pxpb = jlzInfoData?.pxpb |
|
|
|
|
|
|
|
@ -641,7 +750,15 @@ export default { |
|
|
|
return |
|
|
|
} |
|
|
|
|
|
|
|
// 从 CustomTable ref 获取最新的剂量组名称列表数据 |
|
|
|
// 2. 校验剂量组名称表格是否填写完成 |
|
|
|
try { |
|
|
|
await this.$refs[refConf.jlzmcTable]?.getFormData() |
|
|
|
} catch (error) { |
|
|
|
this.$message.warning('请完善剂量组名称信息') |
|
|
|
return |
|
|
|
} |
|
|
|
|
|
|
|
// 3. 获取剂量组名称列表数据 |
|
|
|
const jlzmcTableData = this.$refs[refConf.jlzmcTable]?.getFilledFormData() |
|
|
|
const jlzmcList = jlzmcTableData?.stepTableFormData || [] |
|
|
|
|
|
|
|
@ -650,15 +767,6 @@ export default { |
|
|
|
return |
|
|
|
} |
|
|
|
|
|
|
|
// 检查是否所有剂量组名称都已填写 |
|
|
|
const emptyNames = jlzmcList.filter( |
|
|
|
(item) => !item.jlzzmc || item.jlzzmc.trim() === '' |
|
|
|
) |
|
|
|
if (emptyNames.length > 0) { |
|
|
|
this.$message.warning('请填写所有剂量组名称') |
|
|
|
return |
|
|
|
} |
|
|
|
|
|
|
|
// 生成剂量组列表数据 |
|
|
|
const newRows = [] |
|
|
|
|
|
|
|
|