From a0f2e2140ecfcd7a454740e1f7c79a7c6eb2e3e2 Mon Sep 17 00:00:00 2001
From: luojie <125330818@qq.com>
Date: Tue, 10 Mar 2026 16:53:08 +0800
Subject: [PATCH] =?UTF-8?q?feat:[=E6=A8=A1=E6=9D=BF=E7=AE=A1=E7=90=86][upd?=
=?UTF-8?q?ate]?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../business/comps/template/comps/sp/SP00456.vue | 462 ++-------------------
.../comps/template/comps/sp/comps/LadderConfig.vue | 69 ++-
2 files changed, 103 insertions(+), 428 deletions(-)
diff --git a/src/views/business/comps/template/comps/sp/SP00456.vue b/src/views/business/comps/template/comps/sp/SP00456.vue
index 248877e..6d082ea 100644
--- a/src/views/business/comps/template/comps/sp/SP00456.vue
+++ b/src/views/business/comps/template/comps/sp/SP00456.vue
@@ -15,17 +15,12 @@
:formConfig="storageFormConfig" :formData="formData" />
@@ -40,97 +35,24 @@
-
-
+ :tableColumns="ladderStepColumns" :prefixKey="'ladder_' + ladderIndex"
+ :ref="`ladderRef_${ladderIndex}`" :fieldItemLabel="$t('template.common.jtpz')"
+ @deleteConfig="deleteConfig('ladderConfigs',ladderConfig)"
+ :fillType="fillType" />
@@ -156,16 +78,15 @@ import TableOpertaionDelete from "@/components/Template/operation/TableOpertaion
import { getExpireDate, duplicateResource } from "@/utils/index.js";
import { getuuid } from "@/utils/index.js";
import { isCommonUnit } from "@/utils/conTools";
-import moment from "moment";
import { addTj, uniqeResource, uniqeResourceOne, addDecimals } from "@/utils/calUnitTools";
-import {
- getLadderColumnsConfig, getParallelColumnsConfig, getLadderFormConfig,
- getBaseInfoFormConfig, getRemarkFormConfig, getStorageConditionFormConfig, getParalleStepFormConfig ,getJcbColumnsConfig
+import {
+ getLadderColumnsConfig, getParallelColumnsConfig, getLadderFormConfig,
+ getBaseInfoFormConfig, getRemarkFormConfig, getStorageConditionFormConfig, getParalleStepFormConfig, getJcbColumnsConfig
} from "../../formConfig/paralleAndLadderConfig.js";
import LadderConfig from "@/views/business/comps/template/comps/sp/comps/LadderConfig.vue";
export default {
name: "SP00456",
- components: { LadderConfig,BaseInfoFormPackage, LineLabel, TableList, Step, CustomTable, SelectReagentDialog, TableOpertaion, TableOpertaionDelete, LadderConfig },
+ components: { LadderConfig, BaseInfoFormPackage, LineLabel, TableList, Step, CustomTable, SelectReagentDialog, TableOpertaion, TableOpertaionDelete, LadderConfig },
mixins: [templateMixin],
props: {
fillType: {
@@ -187,7 +108,7 @@ export default {
},
computed: {
//选板信息;
- jcbColumns(){
+ jcbColumns() {
return getJcbColumnsConfig(this);
},
// 存储条件表单配置
@@ -218,7 +139,7 @@ export default {
},
},
data() {
- const labArr = ["LBA005","LBA007"]
+ const labArr = ["LBA005", "LBA007"]
return {
subSolutionVisible: false,
currentSubKey: "",//当前点击的子项key
@@ -241,144 +162,12 @@ export default {
}
},
methods: {
- deleteJcbRow(rowIndex){
+ deleteJcbRow(rowIndex) {
const jcbRef = this.$refs['jcbRef'];
if (jcbRef) {
jcbRef.deleteRow(rowIndex);
}
},
- onBeforeSaveRecord(data, type, configIndex) {
- if (type === "ladder") {
- const formFields = this.$refs[`ladderStepFormPackageRef_${configIndex}`][0]?.getFilledFormData();
- this.onCommonVerifyNdException(formFields, data);
- }
- },
- bodySelectChange(data) {
- this.paralleUpdateTargetStartSolutionVolume(data.item, data.headerSelectFields);
- },
- //平行配置更新体积
- paralleUpdateTargetStartSolutionVolume(item, headerSelectFields) {
- const volumne = item.targetStartSolutionConcentration;
- const subTargetStartSolution = item.targetStartSolutionConcentrationPrecision;
- const params = {
- headerSelectFields,
- subTargetStartSolution
- }
- if (volumne) {
- this.updateTargetStartSolutionVolume(item, volumne, params);
- }
- },
- onHandleBlur(e, type, configIndex) {
- const { targetStartSolution, subTargetStartSolution } = e;
- const { stepTableFormData, headerSelectFields } = this.$refs[`ladderStepTableRef_${configIndex}`][0]?.getFilledFormData();
- const params = {
- subTargetStartSolution,
- headerSelectFields
- }
- this.batchUpdateTargetStartSolutionVolume(stepTableFormData, targetStartSolution, params)
- },
- //选择table header下拉框也要更新体积
- onHeaderSelectChange(data, type, configIndex) {
- const { key, headerSelectFields, dataSource = [] } = data;
- const keys = [
- 'targetStartSolutionVolumeUnit',
- 'targetDiluentVolumeUnit',
- 'targetSolutionConcentrationUnit',
- 'targetSolutionVolumeUnit',
- ]
- console.log(key, "key")
- if (keys.includes(key)) {
- if (type === 'ladder') {
- const { targetStartSolution, subTargetStartSolution } = this.$refs[`ladderStepFormPackageRef_${configIndex}`][0]?.getFilledFormData();
- const params = {
- subTargetStartSolution,
- headerSelectFields
- }
- this.batchUpdateTargetStartSolutionVolume(dataSource, targetStartSolution, params)
- } else {
- dataSource.forEach(item => {
- this.paralleUpdateTargetStartSolutionVolume(item, headerSelectFields);
- })
- }
-
- }
- },
- //分装
- subPackageSubmit(data, configType, index) {
- const { fzsj, rowData, headerSelectFields } = data;
- const { fzList = [], dw = "", mybh } = fzsj;
- if (fzList && fzList.length > 0) {
- const list = fzList.map((item) => {
- return {
- bh: mybh + item.preCode + item.subCode,
- kc: item.num,
- kcdw: dw,
- }
- })
- let postData = {
- studyId: this.formData.studyId,
- studyFormId: this.formData.id,
- bh: mybh,
- nd: rowData.actSolutionConcentration || 0,
- nddw: headerSelectFields.actSolutionConcentrationUnit,
- studySubjectId: this.formData.studySubjectId,
- studyId: this.formData.studyId,
- studyFormId: this.formData.id,
- list: list
- }
- this.subPackageRequest(postData);
- }
- },
- startConfig(val) {
- const { rowData } = val;
- console.log(rowData, "rowData")
- let postData = {
- bh: rowData.targetSolutionCode + rowData.subTargetSolutionCode,
- studySubjectId: this.formData.studySubjectId,
- studyId: this.formData.studyId,
- studyFormId: this.formData.id,
- }
- this.startConfigRequest(postData);
- },
- configComplete(val) {
- const { rowData, headerSelectFields } = val;
- //计算实际目标溶液体积(实际起始溶液体积+实际稀释液体积)
- const { total, unit } = addTj([rowData.actStartSolutionVolume, rowData.actDiluentVolume], [headerSelectFields.actStartSolutionVolumeUnit, headerSelectFields.actDiluentVolumeUnit])
- debugger
- let postData = {
- mc: null,
- bh: rowData.targetSolutionCode + rowData.subTargetSolutionCode,
- nd: rowData.actSolutionConcentration,//实际目标溶液浓度
- nddw: headerSelectFields.actSolutionConcentrationUnit,
- studySubjectId: this.formData.studySubjectId,
- studyId: this.formData.studyId,
- studyFormId: this.formData.id,
- kc: total,
- kcdw: unit,
- }
- this.configCompleteRequest(postData);
- },
- //标签打印
- printTag(e, configType, index) {
- const { nickName, name } = this.$store.getters;
- const { printCode, row, type } = e;
- const currentForm = this.formData[configType][index];
- const { stepStorageCondition, startDate, expireDate, paralleStepStorageCondition } = currentForm;
- const targetSolutionExpirationDate = row.targetSolutionExpirationDate;
- const lang = this.$i18n.locale;
- const printConfig = {
- "品名": "暂时还不知道品名是哪个字段",
- "存储条件": stepStorageCondition || paralleStepStorageCondition,
- "配制日期": moment(startDate).format("YYYY-MM-DD"),
- "有效期至": moment(targetSolutionExpirationDate || expireDate).format("YYYY-MM-DD HH:mm"),
- "配置者": lang === "zh_CN" ? nickName : name,
- //type==="subPackage"从分装打印过来的,
- //type==="row" 从列表上点过来的
- "编号": type === "subPackage" ? printCode : (row.targetSolutionCode + row.subTargetSolutionCode),
- }
- console.log(printConfig, "printConfig")
- EventBus.$emit('showTagPrintDialog', { printConfig })
- },
// 为指定的表单数据数组分配编号
async assignNumbersToTableData(config) {
return new Promise(async (resolve, reject) => {
@@ -387,7 +176,7 @@ export default {
// 检查paralleConfigs中的paralleTableFormData数组
if (configs && configs.length > 0) {
for (let i = 0; i < configs.length; i++) {
- const ref = config === "paralleConfigs" ? `paralleStepTableRef_${i}` : `ladderStepTableRef_${i}`;
+ const ref = config === "paralleConfigs" ? `paralleRef_${i}` : `ladderRef_${i}`;
const { stepTableFormData = [], effectivePeriod, effectivePeriodUnit, expireDate } = configs[i];
if (!expireDate && config === "ladderConfigs") {
const date = getExpireDate(startDate, effectivePeriod, effectivePeriodUnit);
@@ -468,8 +257,8 @@ export default {
this.justUpdateFilledFormData();
},
// 删除阶梯配制配置
- deleteConfig(type, config) {
- const configIndex = this.formData[type].findIndex(config => config.id === config.id);
+ deleteConfig(type, con) {
+ const configIndex = this.formData[type].findIndex(config => config.id === con.id);
if (configIndex !== -1) {
// 创建新数组,确保响应式更新
const newConfigs = [...this.formData[type]];
@@ -486,199 +275,24 @@ export default {
})
}
},
- // 添加表格行
- handleAddRow(type, rowIndex, configIndex = 0) {
- const tableRef = type === 'ladder' ?
- this.$refs[`ladderStepTableRef_${configIndex}`] :
- this.$refs[`paralleStepTableRef_${configIndex}`];
- if (tableRef && tableRef[0].addRow) {
- tableRef[0].addRow({});
- }
- },
- // 删除表格行
- deleteRow(rowIndex, type, configIndex = 0) {
- // 根据类型删除对应的表格行
- if (type === 'ladder') {
- const tableRef = this.$refs[`ladderStepTableRef_${configIndex}`];
- if (tableRef) {
- tableRef[0].deleteRow(rowIndex);
- }
- } else if (type === 'paralle') {
- const tableRef = this.$refs[`paralleStepTableRef_${configIndex}`];
- if (tableRef) {
- tableRef[0].deleteRow(rowIndex);
- }
- }
- },
- getLadderNdParamsByIndex(configIndex) {
- const { headerSelectFields = [] } = this.$refs[`ladderStepTableRef_${configIndex}`][0].getFilledFormData();
- const subTargetAcSolutionUnit = this.$refs[`ladderStepFormPackageRef_${configIndex}`][0]?.getFormDataByKey("subTargetAcSolutionUnit");//获取实际起始溶液浓度
- return {
- targetStartSolutionUnit: subTargetAcSolutionUnit,
- headerSelectFields
- }
- },
- getParalleNdParamsByIndex(item, configIndex) {
- const { headerSelectFields = [] } = this.$refs[`paralleStepTableRef_${configIndex}`][0].getFilledFormData();
- const subTargetAcSolutionUnit = item.subTargetAcSolutionUnit || "";//获取实际起始溶液浓度单位
- return {
- targetStartSolutionUnit: subTargetAcSolutionUnit,
- headerSelectFields
- }
- },
-
- // 表格失去焦点事件
- onHandleTableBlur(type, configIndex, e) {
- const { colKey = "", item, rowIndex, headerSelectFields } = e;
- if (colKey === "targetStartSolutionConcentration" || colKey === "targetSolutionVolume" || colKey === "targetSolutionConcentration" || colKey === "targetStartSolutionVolumePrecision" || colKey === "targetDiluentVolumePrecision") {
- if (type === "ladder") {
- const { targetStartSolution, subTargetStartSolution } = this.$refs[`ladderStepFormPackageRef_${configIndex}`][0]?.getFilledFormData();
- const params = {
- subTargetStartSolution,
- headerSelectFields
- }
- if (targetStartSolution) {
- this.updateTargetStartSolutionVolume(item, targetStartSolution, params);
- }
- } else if (type === "paralle") {
- this.paralleUpdateTargetStartSolutionVolume(item, headerSelectFields);
- }
- } else if (colKey === "actStartSolutionVolume" || colKey === "actDiluentVolume") {//实际起始溶液体积和实际目标溶液体积
- if (type === "ladder") {
- const targetAcSolution = this.$refs[`ladderStepFormPackageRef_${configIndex}`][0]?.getFormDataByKey("targetAcSolution");//获取实际起始溶液浓度
- const params = this.getLadderNdParamsByIndex(configIndex);
- if (targetAcSolution) {
- const volResult = this.updateSjmbrynd(item, targetAcSolution, params);
- if (!volResult) {
- return
- }
- this.$refs[`ladderStepTableRef_${configIndex}`][0]?.updateDataSourceByRowIndex(rowIndex, {
- actSolutionVolume: volResult.actVol,
- actSolutionConcentration: volResult.actNd,
- });
- }
- } else if (type === "paralle") {
- const targetAcSolution = item.targetAcSolution || 0;//获取实际起始溶液浓度
- const params = this.getParalleNdParamsByIndex(item, configIndex);
- if (targetAcSolution) {
- const volResult = this.updateSjmbrynd(item, targetAcSolution, params);
- if (!volResult) {
- return
- }
- this.$refs[`paralleStepTableRef_${configIndex}`][0]?.updateDataSourceByRowIndex(rowIndex, {
- actSolutionVolume: volResult.actVol,
- actSolutionConcentration: volResult.actNd,
- });
- }
- }
-
- }
- },
-
- onTableBeforeReagentSubmit(data) {
- const { selectData, callback, key, rowData } = data;
- if (key === "actStartSolutionCode" && !isCommonUnit(selectData.row.nddw, [rowData.targetStartSolutionConcentrationPrecision])) {//选择起始源溶液需要同步更新table的变更记录。
- callback.prevent('浓度单位与预制不符,请重新选择或申请废止并重新预制。');
- }
- },
- //平行配置 table选择试剂确定弹窗
- onTableRegentSubmit(type, configIndex, data) {
- const { selectInfo, rowIndex, key, rowData } = data;
- const { row, selectedId } = selectInfo;
- if (key === "actStartSolutionCode") {//实际原始溶液编号点击事件
- const tableRef = this.$refs[`paralleStepTableRef_${configIndex}`][0];
- const params = this.getParalleNdParamsByIndex(rowData, configIndex);
- if (tableRef) {
- const volResult = this.updateSjmbrynd(rowData, row.nd, params);
- //第一次选择溶液的时候,可能其他值没填入,就需要先把浓度和code一起更新
- tableRef.updateDataSourceByRowIndex(rowIndex, {
- actStartSolutionCode: selectedId,
- targetAcSolution: row.nd,
- subTargetAcSolutionUnit: row.nddw,
- })
- if (!volResult) {
- return
- }
- tableRef.updateDataSourceByRowIndex(rowIndex, {
- actSolutionVolume: volResult.actVol,
- actSolutionConcentration: volResult.actNd,
- })
- }
- }
- },
- //选择试剂提交事件
- onRegentSubmit(type, rowIndex, data) {
- const { selectInfo, key } = data;
- const { row } = selectInfo;
- if (key) {
- const ref = type === "ladder" ? "ladderStepFormPackageRef_" : "paralleStepFormPackageRef_"
- const packageRef = this.$refs[`${ref}${rowIndex}`][0];
- if (key === "subStartSolution") {
- packageRef.updateFormData("targetAcSolution", row.nd);
- packageRef.updateFormData("subTargetAcSolutionUnit", row.nddw);
- packageRef.onValueChangeCompareTo("targetAcSolution", row.nd, "targetStartSolution");
- packageRef.onValueChangeCompareTo("subTargetAcSolutionUnit", row.nddw, "subTargetStartSolution");
- this.updateTableNd(row, rowIndex);
- }
- }
- },
- updateRecord() {
- this.$nextTick(() => {
- EventBus.$emit('onModifyRecord', {
- type: "fieldChanged",
- newRecord: null,
- resourceList: null,
- },)
- })
- },
- //选择实际的时候更新table的浓度
- updateTableNd(row, rowIndex) {
- const { stepTableFormData = [], headerSelectFields = [] } = this.$refs[`ladderStepTableRef_${rowIndex}`][0].getFilledFormData();
- const newData = JSON.parse(JSON.stringify(stepTableFormData));
- const params = this.getLadderNdParamsByIndex(rowIndex);
- // 遍历数据,按要求更新起始溶液编号
- newData.forEach((item, index) => {
- let initNd = row.nd;//起始浓度是上一条记录的实际目标溶液浓度
- if (index === 0) {
- item.startSolutionCode = row.bh;
- } else {
- item.startSolutionCode = newData[index - 1].targetSolutionCode + newData[index - 1].subTargetSolutionCode;
- initNd = newData[index - 1].actSolutionConcentration;
- }
- const volResult = this.updateSjmbrynd(item, initNd, params);
- if (!volResult) {
- return
- }
-
- item.actSolutionVolume = volResult.actVol;
- item.actSolutionConcentration = volResult.actNd;
- // 更新stepTableRef组件的数据
- })
- this.$refs[`ladderStepTableRef_${rowIndex}`][0].updateDataSource(newData);
-
- },
//只做校验
async validFields() {
const { isLba } = this;
- const refsToValidate = isLba ? ["baseInfoRef", "jcbRef", "remarkRef"]: ["baseInfoRef", "storageConditionRef", "remarkRef"]
+ const refsToValidate = isLba ? ["baseInfoRef", "jcbRef", "remarkRef"] : ["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}`);
+ refsToValidate.push(`ladderRef_${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}`);
+ refsToValidate.push(`paralleRef_${i}`);
}
}
return await this.validFormFields(refsToValidate);
@@ -716,14 +330,16 @@ export default {
if (this.formData.paralleConfigs && this.formData.paralleConfigs.length > 0) {
for (let i = 0; i < this.formData.paralleConfigs.length; i++) {
const id = this.formData.paralleConfigs[i].id;
- const paralleFormData = this.$refs[`paralleStepFormPackageRef_${i}`][0].getFilledFormData();
- const paralleTableFormData = this.$refs[`paralleStepTableRef_${i}`][0].getFilledFormData();
- const paralleStepData = this.$refs[`paralleStepRef_${i}`][0].getFilledFormData();
+ const {
+ baseFormData,
+ tableData,
+ stepData,
+ } = this.$refs[`paralleRef_${i}`][0].getFilledFormData();
paralleConfigsData.push({
- ...paralleFormData,
- ...paralleTableFormData,
- paralleStepData: paralleStepData.stepData,
+ ...baseFormData,
+ ...tableData,
+ paralleStepData: stepData,
showParalleConfig: true,
id
});
@@ -958,14 +574,14 @@ export default {
const sjResource = [], yqResource = [];
if (this.formData.paralleConfigs && this.formData.paralleConfigs.length > 0) {
for (let i = 0; i < this.formData.paralleConfigs.length; i++) {
- const paralleResource = this.$refs[`paralleStepRef_${i}`][0].getStepResource();
+ const paralleResource = this.$refs[`paralleRef_${i}`][0].getStepResource();
sjResource.push(...paralleResource.sjResource);
yqResource.push(...paralleResource.yqResource);
}
}
if (this.formData.ladderConfigs && this.formData.ladderConfigs.length > 0) {
for (let i = 0; i < this.formData.ladderConfigs.length; i++) {
- const ladderResource = this.$refs[`ladderStepRef_${i}`][0].getStepResource();
+ const ladderResource = this.$refs[`ladderRef_${i}`][0].getStepResource();
sjResource.push(...ladderResource.sjResource);
yqResource.push(...ladderResource.yqResource);
}
diff --git a/src/views/business/comps/template/comps/sp/comps/LadderConfig.vue b/src/views/business/comps/template/comps/sp/comps/LadderConfig.vue
index 2912f44..62e2a40 100644
--- a/src/views/business/comps/template/comps/sp/comps/LadderConfig.vue
+++ b/src/views/business/comps/template/comps/sp/comps/LadderConfig.vue
@@ -3,7 +3,7 @@
@@ -18,6 +18,8 @@
@bodySelectChange="bodySelectChange"
@beforeSaveRecord="(data) => onBeforeSaveRecord(data )"
@headerSelectChange="(data) => onHeaderSelectChange(data)"
+ @beforeReagentSubmit="(data) => onTableBeforeReagentSubmit(data, paralleIndex, paralleConfig)"
+ @onRegentSubmit="(data) => onTableRegentSubmit('paralle', paralleIndex, data)"
:prefixKey="prefixKey" :fieldItemLabel="fieldItemLabel">
printTag(e)"
@@ -41,7 +43,9 @@ import CustomTable from '@/components/Template/CustomTable.vue';
import TableOpertaion from "@/components/Template/operation/TableOpertaion.vue";
import BaseInfoFormPackage from '@/components/Template/BaseInfoFormPackage.vue';
import templateMixin from "../../../mixins/templateMixin.js";
-import { addTj, uniqeResource, uniqeResourceOne, addDecimals } from "@/utils/calUnitTools";
+import { addTj } from "@/utils/calUnitTools";
+import { isCommonUnit } from "@/utils/conTools";
+
export default {
components: {
Step,
@@ -86,6 +90,9 @@ export default {
}
},
methods: {
+ deleteConfig(){
+ this.$emit('deleteConfig', this.configType);
+ },
getStepResource(){
return this.$refs.stepRef?.getStepResource();
},
@@ -99,6 +106,19 @@ export default {
stepData:stepData?.stepData || [],
}
},
+ // 实现getFormData方法,用于表单验证
+ getFormData() {
+ const baseFormData = this.$refs.formPackageRef?.getFormData();
+ const tableData = this.$refs.tableRef?.getFormData();
+ const stepData = this.$refs.stepRef?.getFormData();
+
+ // 检查所有组件是否都返回了有效的数据
+ if (!baseFormData || !tableData || !stepData) {
+ return false;
+ }
+
+ return true;
+ },
//选择试剂提交事件
onRegentSubmit(data) {
const { selectInfo, key } = data;
@@ -119,7 +139,7 @@ export default {
updateTableNd(row) {
const { stepTableFormData = [], headerSelectFields = [] } = this.$refs.tableRef?.getFilledFormData();
const newData = JSON.parse(JSON.stringify(stepTableFormData));
- const params = this.getLadderNdParamsByIndex(rowIndex);
+ const params = this.getLadderNdParamsByIndex();
// 遍历数据,按要求更新起始溶液编号
newData.forEach((item, index) => {
let initNd = row.nd;//起始浓度是上一条记录的实际目标溶液浓度
@@ -176,7 +196,7 @@ export default {
} else if (colKey === "actStartSolutionVolume" || colKey === "actDiluentVolume") {//实际起始溶液体积和实际目标溶液体积
if (configType === "ladder") {
const targetAcSolution = this.$refs.formPackageRef?.getFormDataByKey("targetAcSolution");//获取实际起始溶液浓度
- const params = this.getLadderNdParamsByIndex(configIndex);
+ const params = this.getLadderNdParamsByIndex();
if (targetAcSolution) {
const volResult = this.updateSjmbrynd(item, targetAcSolution, params);
if (!volResult) {
@@ -189,7 +209,7 @@ export default {
}
} else if (configType === "paralle") {
const targetAcSolution = item.targetAcSolution || 0;//获取实际起始溶液浓度
- const params = this.getParalleNdParamsByIndex(item, configIndex);
+ const params = this.getParalleNdParamsByIndex(item);
if (targetAcSolution) {
const volResult = this.updateSjmbrynd(item, targetAcSolution, params);
if (!volResult) {
@@ -204,6 +224,14 @@ export default {
}
},
+ getParalleNdParamsByIndex(item) {
+ const { headerSelectFields = [] } = this.$refs.tableRef?.getFilledFormData();
+ const subTargetAcSolutionUnit = item.subTargetAcSolutionUnit || "";//获取实际起始溶液浓度单位
+ return {
+ targetStartSolutionUnit: subTargetAcSolutionUnit,
+ headerSelectFields
+ }
+ },
bodySelectChange(data) {
this.paralleUpdateTargetStartSolutionVolume(data.item, data.headerSelectFields);
},
@@ -331,6 +359,37 @@ export default {
deleteRow(rowIndex) {
this.$refs.tableRef.deleteRow(rowIndex);
},
+ onTableBeforeReagentSubmit(data) {
+ const { selectData, callback, key, rowData } = data;
+ if (key === "actStartSolutionCode" && !isCommonUnit(selectData.row.nddw, [rowData.targetStartSolutionConcentrationPrecision])) {//选择起始源溶液需要同步更新table的变更记录。
+ callback.prevent('浓度单位与预制不符,请重新选择或申请废止并重新预制。');
+ }
+ },
+ //平行配置 table选择试剂确定弹窗
+ onTableRegentSubmit(type, configIndex, data) {
+ const { selectInfo, rowIndex, key, rowData } = data;
+ const { row, selectedId } = selectInfo;
+ if (key === "actStartSolutionCode") {//实际原始溶液编号点击事件
+ const tableRef = this.$refs.tableRef;
+ const params = this.getParalleNdParamsByIndex(rowData);
+ if (tableRef) {
+ const volResult = this.updateSjmbrynd(rowData, row.nd, params);
+ //第一次选择溶液的时候,可能其他值没填入,就需要先把浓度和code一起更新
+ tableRef.updateDataSourceByRowIndex(rowIndex, {
+ actStartSolutionCode: selectedId,
+ targetAcSolution: row.nd,
+ subTargetAcSolutionUnit: row.nddw,
+ })
+ if (!volResult) {
+ return
+ }
+ tableRef.updateDataSourceByRowIndex(rowIndex, {
+ actSolutionVolume: volResult.actVol,
+ actSolutionConcentration: volResult.actNd,
+ })
+ }
+ }
+ },
}
}