Browse Source

feat:[模板管理][update]

ouqian
luojie 1 month ago
parent
commit
a0f2e2140e
2 changed files with 103 additions and 428 deletions
  1. +39
    -423
      src/views/business/comps/template/comps/sp/SP00456.vue
  2. +64
    -5
      src/views/business/comps/template/comps/sp/comps/LadderConfig.vue

+ 39
- 423
src/views/business/comps/template/comps/sp/SP00456.vue View File

@ -15,17 +15,12 @@
:formConfig="storageFormConfig" :formData="formData" />
<div v-if="isLba">
<LineLabel label="template.lba.lba004.xbxx" />
<CustomTable
:isBorder="false"
:ref="`jcbRef`"
:columns="jcbColumns"
:formData="formData"
:prefixKey = "`jcb`"
fieldItemLabel = "template.lba.lba004.xbxx"
:showOperation="fillType === 'preFill'"
>
<CustomTable :isBorder="false" :ref="`jcbRef`" :columns="jcbColumns" :formData="formData"
:prefixKey="`jcb`" fieldItemLabel="template.lba.lba004.xbxx"
:showOperation="fillType === 'preFill'">
<template slot="operation" slot-scope="{ row, rowIndex, columns }">
<TableOpertaionDelete :row="row" :rowIndex="rowIndex" :columns="columns" @deleteRow="deleteJcbRow" ></TableOpertaionDelete>
<TableOpertaionDelete :row="row" :rowIndex="rowIndex" :columns="columns"
@deleteRow="deleteJcbRow"></TableOpertaionDelete>
</template>
</CustomTable>
</div>
@ -40,97 +35,24 @@
<!-- 阶梯配制区域 -->
<div v-for="(ladderConfig, ladderIndex) in formData.ladderConfigs"
:key="'ladder_' + ladderConfig.id">
<LadderConfig
:currentFormConfig="ladderStepFormConfig"
:currentFormData = "ladderConfig"
<LadderConfig :currentFormConfig="ladderStepFormConfig" :currentFormData="ladderConfig"
:showOperation="fillType === 'actFill' || fillType === 'preFill'"
:tableColumns = "ladderStepColumns"
:prefixKey="'ladder_'+ladderIndex"
:ref="`ladderRef_${ladderIndex}`"
:fieldItemLabel="$t('template.common.jtpz')"
:fillType="fillType"
/>
<!-- <div class="template-form-item">
<div class="config-header">
<div>{{ $t('template.common.jtpz') }}</div>
<el-button v-if="fillType === 'preFill'" type="text" icon="el-icon-delete"
@click="deleteConfig('ladderConfigs', ladderConfig)">{{
$t('template.common.deleteBtn')
}}</el-button>
</div>
<BaseInfoFormPackage @onRegentSubmit="(e) => onRegentSubmit('ladder', ladderIndex, e)"
@beforeReagentSubmit="(data) => onBeforeReagentSubmit(data, ladderIndex, ladderConfig)"
:ref="`ladderStepFormPackageRef_${ladderIndex}`" :formConfig="ladderStepFormConfig"
:formData="ladderConfig" :fieldItemLabel="$t('template.common.jtpz')"
@blur="(e) => onHandleBlur(e, 'ladder', ladderIndex)"
@select="(e) => onHandleBlur(e, 'ladder', ladderIndex)"
:prefixKey="'ladder_' + ladderIndex" />
<CustomTable @blur="(e) => onHandleTableBlur('ladder', ladderIndex, e)"
:ref="`ladderStepTableRef_${ladderIndex}`"
:showOperation="fillType === 'actFill' || fillType === 'preFill'"
:columns="ladderStepColumns" :formData="ladderConfig"
@beforeSaveRecord="(data) => onBeforeSaveRecord(data, 'ladder', ladderIndex)"
@headerSelectChange="(data) => onHeaderSelectChange(data, 'ladder', ladderIndex)"
:prefixKey="'ladder_' + ladderIndex" :fieldItemLabel="$t('template.common.jtpz')">
<template slot="operation" slot-scope="{ row, rowIndex, columns }">
<TableOpertaion @printTag="(e) => printTag(e, 'ladderConfigs', ladderIndex)"
@startConfig="(val) => startConfig(val, 'ladderConfigs', ladderIndex)"
@configComplete="(val) => configComplete(val, 'ladderConfigs', ladderIndex)"
@subPackageSubmit="(val) => subPackageSubmit(val, 'ladderConfigs', ladderIndex)"
:fillType="fillType" :row="row" :rowIndex="rowIndex" :columns="columns"
@deleteRow="(rowIndex) => deleteRow(rowIndex, 'ladder', ladderIndex)">
</TableOpertaion>
</template>
</CustomTable>
<Step class="mt-0 s-container" :ref="`ladderStepRef_${ladderIndex}`"
:formData="ladderConfig.ladderStepData" :fieldItemLabel="$t('template.common.jtpz')"
:prefixKey="'ladder_' + ladderIndex"></Step>
</div> -->
:tableColumns="ladderStepColumns" :prefixKey="'ladder_' + ladderIndex"
:ref="`ladderRef_${ladderIndex}`" :fieldItemLabel="$t('template.common.jtpz')"
@deleteConfig="deleteConfig('ladderConfigs',ladderConfig)"
:fillType="fillType" />
</div>
<!-- 平行配制区域 -->
<div :label="$t('template.common.pxpz')"
v-for="(paralleConfig, paralleIndex) in formData.paralleConfigs"
:key="'paralle_' + paralleConfig.id">
<div class="template-form-item">
<div class="config-header">
<div>{{ $t('template.common.pxpz') }}</div>
<el-button v-if="fillType === 'preFill'" type="text" icon="el-icon-delete"
@click="deleteConfig('paralleConfigs', paralleConfig)">{{
$t('template.common.deleteBtn')
}}</el-button>
</div>
<BaseInfoFormPackage @clickable="(e) => handleClickable('paralle', paralleIndex, e)"
:ref="`paralleStepFormPackageRef_${paralleIndex}`" :formConfig="paralleStepFormConfig"
:formData="paralleConfig" :prefixKey="'paralle' + paralleIndex"
:fieldItemLabel="$t('template.common.pxpz')" />
<CustomTable @blur="(e) => onHandleTableBlur('paralle', paralleIndex, e)"
:ref="`paralleStepTableRef_${paralleIndex}`"
:showOperation="fillType === 'actFill' || fillType === 'preFill'"
:columns="paralleStepColumns" @bodySelectChange="bodySelectChange"
@headerSelectChange="(data) => onHeaderSelectChange(data, 'paralle', paralleIndex)"
@beforeReagentSubmit="(data) => onTableBeforeReagentSubmit(data, paralleIndex, paralleConfig)"
@onRegentSubmit="(data) => onTableRegentSubmit('paralle', paralleIndex, data)"
:formData="paralleConfig" :prefixKey="'paralle' + paralleIndex"
:fieldItemLabel="$t('template.common.pxpz')">
<template slot="operation" slot-scope="{ row, rowIndex, columns }">
<TableOpertaion @printTag="(e) => printTag(e, 'paralleConfigs', paralleIndex)"
@startConfig="(val) => startConfig(val, 'paralleConfigs', paralleIndex)"
@configComplete="(val) => configComplete(val, 'paralleConfigs', paralleIndex)"
@subPackageSubmit="(val) => subPackageSubmit(val, 'paralleConfigs', paralleIndex)"
:fillType="fillType" :row="row" :rowIndex="rowIndex" :columns="columns"
@deleteRow="(rowIndex) => deleteRow(rowIndex, 'paralle', paralleIndex)">
</TableOpertaion>
</template>
</CustomTable>
<Step class="mt-0 s-container" :ref="`paralleStepRef_${paralleIndex}`"
:formData="paralleConfig.paralleStepData" :fieldItemLabel="$t('template.common.pxpz')"
:prefixKey="'paralle' + paralleIndex"></Step>
</div>
<LadderConfig :currentFormConfig="paralleStepFormConfig" :currentFormData="paralleConfig"
:showOperation="fillType === 'actFill' || fillType === 'preFill'"
:tableColumns="paralleStepColumns" :prefixKey="'paralle_' + paralleIndex"
:ref="`paralleRef_${paralleIndex}`" :fieldItemLabel="$t('template.common.pxpz')"
@deleteConfig="deleteConfig('paralleConfigs',paralleConfig)"
:fillType="fillType" />
</div>
<BaseInfoFormPackage fieldItemLabel="template.common.remark" label="template.common.remark"
ref="remarkRef" :formConfig="remarkConig" :formData="formData" />
@ -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 {
// paralleConfigsparalleTableFormData
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);
}

+ 64
- 5
src/views/business/comps/template/comps/sp/comps/LadderConfig.vue View File

@ -3,7 +3,7 @@
<div class="config-header">
<div>{{ $t('template.common.jtpz') }}</div>
<el-button v-if="fillType === 'preFill'" type="text" icon="el-icon-delete"
@click="deleteConfig('ladderConfigs')">{{
@click="deleteConfig">{{
$t('template.common.deleteBtn')
}}</el-button>
</div>
@ -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">
<template slot="operation" slot-scope="{ row, rowIndex, columns }">
<TableOpertaion @printTag="(e) => 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,
})
}
}
},
}
}
</script>

Loading…
Cancel
Save