|
|
@ -13,7 +13,7 @@ |
|
|
<BaseInfoFormPcakge label="存储条件" ref="storageConditionRef" :formConfig="storageFormConfig" |
|
|
<BaseInfoFormPcakge label="存储条件" ref="storageConditionRef" :formConfig="storageFormConfig" |
|
|
:formData="formData" /> |
|
|
:formData="formData" /> |
|
|
<LineLabel label="操作步骤" /> |
|
|
<LineLabel label="操作步骤" /> |
|
|
<div class = "mt-20"> |
|
|
|
|
|
|
|
|
<div v-if = "fillType === 'preFill'" class = "mt-20"> |
|
|
<el-button type="primary" @click="handleAddParalle">新增平行配制</el-button> |
|
|
<el-button type="primary" @click="handleAddParalle">新增平行配制</el-button> |
|
|
<el-button type="primary" @click="handleAddLadder">新增阶梯配制</el-button> |
|
|
<el-button type="primary" @click="handleAddLadder">新增阶梯配制</el-button> |
|
|
</div> |
|
|
</div> |
|
|
@ -29,6 +29,7 @@ |
|
|
<div class="config-header"> |
|
|
<div class="config-header"> |
|
|
<div>阶梯配制</div> |
|
|
<div>阶梯配制</div> |
|
|
<el-button |
|
|
<el-button |
|
|
|
|
|
v-if = "fillType === 'preFill'" |
|
|
type="text" |
|
|
type="text" |
|
|
icon="el-icon-delete" |
|
|
icon="el-icon-delete" |
|
|
@click="deleteLadderConfig(ladderIndex)" |
|
|
@click="deleteLadderConfig(ladderIndex)" |
|
|
@ -43,7 +44,6 @@ |
|
|
/> |
|
|
/> |
|
|
<CustomTable |
|
|
<CustomTable |
|
|
@blur="onHandleTableBlur" |
|
|
@blur="onHandleTableBlur" |
|
|
:showOperation="fillType === 'actFill'" |
|
|
|
|
|
:ref="`ladderStepTableRef_${ladderIndex}`" |
|
|
:ref="`ladderStepTableRef_${ladderIndex}`" |
|
|
:columns="ladderStepColumns" |
|
|
:columns="ladderStepColumns" |
|
|
:formData="ladderConfig" |
|
|
:formData="ladderConfig" |
|
|
@ -57,9 +57,7 @@ |
|
|
></TableOpertaion> |
|
|
></TableOpertaion> |
|
|
</template> |
|
|
</template> |
|
|
</CustomTable> |
|
|
</CustomTable> |
|
|
<div class="add-row"> |
|
|
|
|
|
<el-button @click="handleAddRow('ladder', undefined, ladderIndex)">添加行</el-button> |
|
|
|
|
|
</div> |
|
|
|
|
|
|
|
|
|
|
|
<Step |
|
|
<Step |
|
|
class="mt-0" |
|
|
class="mt-0" |
|
|
:ref="`ladderStepRef_${ladderIndex}`" |
|
|
:ref="`ladderStepRef_${ladderIndex}`" |
|
|
@ -79,6 +77,7 @@ |
|
|
<div class="config-header"> |
|
|
<div class="config-header"> |
|
|
<div>平行配制</div> |
|
|
<div>平行配制</div> |
|
|
<el-button |
|
|
<el-button |
|
|
|
|
|
v-if = "fillType === 'preFill'" |
|
|
type="text" |
|
|
type="text" |
|
|
icon="el-icon-delete" |
|
|
icon="el-icon-delete" |
|
|
@click="deleteParalleConfig(paralleIndex)" |
|
|
@click="deleteParalleConfig(paralleIndex)" |
|
|
@ -93,7 +92,6 @@ |
|
|
/> |
|
|
/> |
|
|
<CustomTable |
|
|
<CustomTable |
|
|
@blur="onHandleTableBlur" |
|
|
@blur="onHandleTableBlur" |
|
|
:showOperation="fillType === 'actFill'" |
|
|
|
|
|
:ref="`paralleStepTableRef_${paralleIndex}`" |
|
|
:ref="`paralleStepTableRef_${paralleIndex}`" |
|
|
:columns="paralleStepColumns" |
|
|
:columns="paralleStepColumns" |
|
|
:formData="paralleConfig" |
|
|
:formData="paralleConfig" |
|
|
@ -107,9 +105,7 @@ |
|
|
></TableOpertaion> |
|
|
></TableOpertaion> |
|
|
</template> |
|
|
</template> |
|
|
</CustomTable> |
|
|
</CustomTable> |
|
|
<div class="add-row"> |
|
|
|
|
|
<el-button @click="handleAddRow('paralle', undefined, paralleIndex)">添加行</el-button> |
|
|
|
|
|
</div> |
|
|
|
|
|
|
|
|
|
|
|
<Step |
|
|
<Step |
|
|
class="mt-0" |
|
|
class="mt-0" |
|
|
:ref="`paralleStepRef_${paralleIndex}`" |
|
|
:ref="`paralleStepRef_${paralleIndex}`" |
|
|
@ -150,102 +146,6 @@ export default { |
|
|
}, |
|
|
}, |
|
|
}, |
|
|
}, |
|
|
watch: { |
|
|
watch: { |
|
|
value: { |
|
|
|
|
|
immediate: true, |
|
|
|
|
|
handler(v) { |
|
|
|
|
|
// 数据回显 |
|
|
|
|
|
if (v && Object.keys(v).length > 0) { |
|
|
|
|
|
this.formData = { ...this.formData, ...v }; |
|
|
|
|
|
|
|
|
|
|
|
// 处理阶梯配制配置 |
|
|
|
|
|
if (v.ladderConfigs && Array.isArray(v.ladderConfigs) && v.ladderConfigs.length > 0) { |
|
|
|
|
|
// 确保 ladderConfigs 是数组 |
|
|
|
|
|
if (!this.formData.ladderConfigs || !Array.isArray(this.formData.ladderConfigs)) { |
|
|
|
|
|
this.$set(this.formData, 'ladderConfigs', []); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// 回显每个阶梯配制配置的数据 |
|
|
|
|
|
v.ladderConfigs.forEach((ladderConfig, index) => { |
|
|
|
|
|
// 确保配置项有必要的属性 |
|
|
|
|
|
if (!this.formData.ladderConfigs[index]) { |
|
|
|
|
|
this.formData.ladderConfigs[index] = { |
|
|
|
|
|
ladderStepData: [], |
|
|
|
|
|
ladderTableFormData: [], |
|
|
|
|
|
showLadderConfig: true |
|
|
|
|
|
}; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// 回显表格数据 |
|
|
|
|
|
if (ladderConfig.ladderTableFormData && ladderConfig.ladderTableFormData.length > 0 && this.$refs[`ladderStepTableRef_${index}`]) { |
|
|
|
|
|
this.$refs[`ladderStepTableRef_${index}`].updateDataSource(ladderConfig.ladderTableFormData); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// 确保步骤数据有值 |
|
|
|
|
|
if (!ladderConfig.ladderStepData) { |
|
|
|
|
|
this.$set(this.formData.ladderConfigs[index], 'ladderStepData', []); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// 确保显示状态有值 |
|
|
|
|
|
if (ladderConfig.showLadderConfig === undefined) { |
|
|
|
|
|
this.$set(this.formData.ladderConfigs[index], 'showLadderConfig', !!ladderConfig.ladderStepData && ladderConfig.ladderStepData.length > 0); |
|
|
|
|
|
} |
|
|
|
|
|
}); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// 处理平行配制配置 |
|
|
|
|
|
if (v.paralleConfigs && Array.isArray(v.paralleConfigs) && v.paralleConfigs.length > 0) { |
|
|
|
|
|
// 确保 paralleConfigs 是数组 |
|
|
|
|
|
if (!this.formData.paralleConfigs || !Array.isArray(this.formData.paralleConfigs)) { |
|
|
|
|
|
this.$set(this.formData, 'paralleConfigs', []); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// 回显每个平行配制配置的数据 |
|
|
|
|
|
v.paralleConfigs.forEach((paralleConfig, index) => { |
|
|
|
|
|
// 确保配置项有必要的属性 |
|
|
|
|
|
if (!this.formData.paralleConfigs[index]) { |
|
|
|
|
|
this.formData.paralleConfigs[index] = { |
|
|
|
|
|
paralleStepData: [], |
|
|
|
|
|
paralleTableFormData: [], |
|
|
|
|
|
showParalleConfig: true |
|
|
|
|
|
}; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// 回显表格数据 |
|
|
|
|
|
if (paralleConfig.paralleTableFormData && paralleConfig.paralleTableFormData.length > 0 && this.$refs[`paralleStepTableRef_${index}`]) { |
|
|
|
|
|
this.$refs[`paralleStepTableRef_${index}`].updateDataSource(paralleConfig.paralleTableFormData); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// 确保步骤数据有值 |
|
|
|
|
|
if (!paralleConfig.paralleStepData) { |
|
|
|
|
|
this.$set(this.formData.paralleConfigs[index], 'paralleStepData', []); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// 确保显示状态有值 |
|
|
|
|
|
if (paralleConfig.showParalleConfig === undefined) { |
|
|
|
|
|
this.$set(this.formData.paralleConfigs[index], 'showParalleConfig', !!paralleConfig.paralleStepData && paralleConfig.paralleStepData.length > 0); |
|
|
|
|
|
} |
|
|
|
|
|
}); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// 兼容旧数据格式(单个配置) |
|
|
|
|
|
if (v.ladderTableFormData && v.ladderTableFormData.length > 0 && (!v.ladderConfigs || v.ladderConfigs.length === 0)) { |
|
|
|
|
|
this.formData.ladderConfigs = [{ |
|
|
|
|
|
ladderStepData: v.ladderStepData || [], |
|
|
|
|
|
ladderTableFormData: v.ladderTableFormData, |
|
|
|
|
|
showLadderConfig: v.showLadderConfig !== undefined ? v.showLadderConfig : true |
|
|
|
|
|
}]; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
if (v.paralleTableFormData && v.paralleTableFormData.length > 0 && (!v.paralleConfigs || v.paralleConfigs.length === 0)) { |
|
|
|
|
|
this.formData.paralleConfigs = [{ |
|
|
|
|
|
paralleStepData: v.paralleStepData || [], |
|
|
|
|
|
paralleTableFormData: v.paralleTableFormData, |
|
|
|
|
|
showParalleConfig: v.showParalleConfig !== undefined ? v.showParalleConfig : true |
|
|
|
|
|
}]; |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
}, |
|
|
|
|
|
fillType: { |
|
|
fillType: { |
|
|
immediate: true, |
|
|
immediate: true, |
|
|
handler(v) { |
|
|
handler(v) { |
|
|
@ -785,26 +685,6 @@ export default { |
|
|
}; |
|
|
}; |
|
|
}, |
|
|
}, |
|
|
mounted() { |
|
|
mounted() { |
|
|
if (this.fillType === "preFill") { |
|
|
|
|
|
this.formData = { |
|
|
|
|
|
effectivePeriodUnit: "days",//设置默认值 |
|
|
|
|
|
createTime: "2026-01-02 18:05:36",//设置默认值 |
|
|
|
|
|
versionNum: 1, |
|
|
|
|
|
stepTableFormData: [], |
|
|
|
|
|
ladderConfigs: [], // 阶梯配制配置列表 |
|
|
|
|
|
paralleConfigs: [], // 平行配制配置列表 |
|
|
|
|
|
headerSelectFields: { |
|
|
|
|
|
targetStartSolutionVolumeUnit: "mg", |
|
|
|
|
|
actStartSolutionVolumeUnit: "mg", |
|
|
|
|
|
targetDiluentVolumeUnit: "mg", |
|
|
|
|
|
actDiluentVolumeUnit: "mg", |
|
|
|
|
|
targetSolutionConcentrationUnit: "mg", |
|
|
|
|
|
actSolutionConcentrationUnit: "mg", |
|
|
|
|
|
targetSolutionVolumeUnit: "mg", |
|
|
|
|
|
actSolutionVolumeUnit: "mg", |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
}, |
|
|
}, |
|
|
methods: { |
|
|
methods: { |
|
|
//新增平行配制 |
|
|
//新增平行配制 |
|
|
@ -883,17 +763,41 @@ export default { |
|
|
this.$refs.stepFormPackageRef.updateFormData(this.currentSubKey, code); |
|
|
this.$refs.stepFormPackageRef.updateFormData(this.currentSubKey, code); |
|
|
this.selectReagentVisible = false; |
|
|
this.selectReagentVisible = false; |
|
|
}, |
|
|
}, |
|
|
async getFormData() { |
|
|
|
|
|
const baseData = await this.$refs.baseInfoRef.getFormData(); |
|
|
|
|
|
const conditionData = await this.$refs.storageConditionRef.getFormData(); |
|
|
|
|
|
|
|
|
//只做校验 |
|
|
|
|
|
async validFields(){ |
|
|
|
|
|
// 构建需要验证的引用数组 |
|
|
|
|
|
let refsToValidate = ["baseInfoRef", "storageConditionRef", "remarkRef"]; |
|
|
|
|
|
|
|
|
|
|
|
// 添加阶梯配制相关的引用 |
|
|
|
|
|
if (this.formData.ladderConfigs && this.formData.ladderConfigs.length > 0) { |
|
|
|
|
|
for (let i = 0; i < this.formData.ladderConfigs.length; i++) { |
|
|
|
|
|
refsToValidate.push(`ladderStepFormPackageRef_${i}`); |
|
|
|
|
|
refsToValidate.push(`ladderStepTableRef_${i}`); |
|
|
|
|
|
refsToValidate.push(`ladderStepRef_${i}`); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// 添加平行配制相关的引用 |
|
|
|
|
|
if (this.formData.paralleConfigs && this.formData.paralleConfigs.length > 0) { |
|
|
|
|
|
for (let i = 0; i < this.formData.paralleConfigs.length; i++) { |
|
|
|
|
|
refsToValidate.push(`paralleStepFormPackageRef_${i}`); |
|
|
|
|
|
refsToValidate.push(`paralleStepTableRef_${i}`); |
|
|
|
|
|
refsToValidate.push(`paralleStepRef_${i}`); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
return await this.validFormFields(refsToValidate); |
|
|
|
|
|
}, |
|
|
|
|
|
getRealFormData(){ |
|
|
|
|
|
const baseData = this.$refs.baseInfoRef.getDirectFormData(); |
|
|
|
|
|
const conditionData = this.$refs.storageConditionRef.getDirectFormData(); |
|
|
|
|
|
|
|
|
// 获取所有阶梯配制数据 |
|
|
// 获取所有阶梯配制数据 |
|
|
const ladderConfigsData = []; |
|
|
const ladderConfigsData = []; |
|
|
if (this.formData.ladderConfigs && this.formData.ladderConfigs.length > 0) { |
|
|
if (this.formData.ladderConfigs && this.formData.ladderConfigs.length > 0) { |
|
|
for (let i = 0; i < this.formData.ladderConfigs.length; i++) { |
|
|
for (let i = 0; i < this.formData.ladderConfigs.length; i++) { |
|
|
const ladderFormData = await this.$refs[`ladderStepFormPackageRef_${i}`][0].getFormData(); |
|
|
|
|
|
const ladderTableFormData = await this.$refs[`ladderStepTableRef_${i}`][0].getFormData(); |
|
|
|
|
|
const ladderStepData = await this.$refs[`ladderStepRef_${i}`][0].getFormData(); |
|
|
|
|
|
|
|
|
const ladderFormData = this.$refs[`ladderStepFormPackageRef_${i}`][0].getDirectFormData(); |
|
|
|
|
|
const ladderTableFormData = this.$refs[`ladderStepTableRef_${i}`][0].getDirectFormData(); |
|
|
|
|
|
const ladderStepData = this.$refs[`ladderStepRef_${i}`][0].getDirectFormData(); |
|
|
|
|
|
|
|
|
ladderConfigsData.push({ |
|
|
ladderConfigsData.push({ |
|
|
...ladderFormData, |
|
|
...ladderFormData, |
|
|
@ -908,9 +812,9 @@ export default { |
|
|
const paralleConfigsData = []; |
|
|
const paralleConfigsData = []; |
|
|
if (this.formData.paralleConfigs && this.formData.paralleConfigs.length > 0) { |
|
|
if (this.formData.paralleConfigs && this.formData.paralleConfigs.length > 0) { |
|
|
for (let i = 0; i < this.formData.paralleConfigs.length; i++) { |
|
|
for (let i = 0; i < this.formData.paralleConfigs.length; i++) { |
|
|
const paralleFormData = await this.$refs[`paralleStepFormPackageRef_${i}`][0].getFormData(); |
|
|
|
|
|
const paralleTableFormData = await this.$refs[`paralleStepTableRef_${i}`][0].getFormData(); |
|
|
|
|
|
const paralleStepData = await this.$refs[`paralleStepRef_${i}`][0].getFormData(); |
|
|
|
|
|
|
|
|
const paralleFormData = this.$refs[`paralleStepFormPackageRef_${i}`][0].getDirectFormData(); |
|
|
|
|
|
const paralleTableFormData = this.$refs[`paralleStepTableRef_${i}`][0].getDirectFormData(); |
|
|
|
|
|
const paralleStepData = this.$refs[`paralleStepRef_${i}`][0].getDirectFormData(); |
|
|
|
|
|
|
|
|
paralleConfigsData.push({ |
|
|
paralleConfigsData.push({ |
|
|
...paralleFormData, |
|
|
...paralleFormData, |
|
|
@ -921,7 +825,7 @@ export default { |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
const remarkData = await this.$refs.remarkRef.getFormData(); |
|
|
|
|
|
|
|
|
const remarkData = this.$refs.remarkRef.getDirectFormData(); |
|
|
|
|
|
|
|
|
return { |
|
|
return { |
|
|
...baseData, |
|
|
...baseData, |
|
|
@ -931,6 +835,14 @@ export default { |
|
|
...remarkData |
|
|
...remarkData |
|
|
} |
|
|
} |
|
|
}, |
|
|
}, |
|
|
|
|
|
async getFormData() { |
|
|
|
|
|
//先校验再获取值 |
|
|
|
|
|
const validFlag = this.validFields(); |
|
|
|
|
|
if(!validFlag){ |
|
|
|
|
|
return false; |
|
|
|
|
|
} |
|
|
|
|
|
return this.getRealFormData(); |
|
|
|
|
|
}, |
|
|
async onSave() { |
|
|
async onSave() { |
|
|
const formData = await this.getFormData(); |
|
|
const formData = await this.getFormData(); |
|
|
console.log(formData, "formData") |
|
|
console.log(formData, "formData") |
|
|
|