Browse Source

feat:[模板管理][组件]

master
luojie 1 week ago
parent
commit
a5dde98746
9 changed files with 311 additions and 63 deletions
  1. +13
    -5
      src/components/Template/BaseInfoFormPcakge.vue
  2. +41
    -26
      src/components/Template/CustomTable.vue
  3. +12
    -3
      src/components/Template/DecimalInput.vue
  4. +1
    -0
      src/components/Template/HandleFormItem.vue
  5. +65
    -0
      src/components/Template/operation/TableOpertaion.vue
  6. +142
    -23
      src/views/business/comps/template/comps/sp/SWYPBQGZYZBB.vue
  7. +1
    -1
      src/views/business/comps/template/comps/sp/SWYPFXCBYPZB.vue
  8. +1
    -1
      src/views/business/comps/template/comps/sp/SWYPFXRYPZB.vue
  9. +35
    -4
      src/views/business/comps/template/mixins/templateMixin.js

+ 13
- 5
src/components/Template/BaseInfoFormPcakge.vue View File

@ -11,6 +11,11 @@
<HandleFormItem @blur="onBlur(key, $event)" :item="sItem" v-model="formFields[key]"
@copy="onCopy(sItem, key)" />
</template>
<template v-else-if="sItem.type === 'inputNumber'">
<div class="form-title">{{ sItem.label }}</div>
<HandleFormItem type = "inputNumber" @blur="onBlur(key, $event)" :item="sItem" @input = "onInputNumberChange(key, $event)" v-model="formFields[key]"
@copy="onCopy(sItem, key)" />
</template>
</div>
</div>
</template>
@ -183,10 +188,10 @@ export default {
}
this.formFields[key] = val;
},
updateFormField(key, value){
updateFormData(key, value){
this.formFields[key] = value;
},
batchUpdateFormFields(data){
batchUpdateFormData(data){
Object.keys(data).forEach(key => {
this.formFields[key] = data[key];
})
@ -275,6 +280,7 @@ export default {
//
this.formFields = result;
this.allFieldsConfig = config;
console.log(config,"config")
},
getFormData() {
const { formFields, allFieldsConfig } = this;
@ -284,10 +290,9 @@ export default {
console.log(key,formFields[key])
if (!formFields[key]) {
const o = allFieldsConfig[key];
console.log(templateStatus,o.fillType,"fill")
if (o.fillType == templateStatus) {
if (o.fillType == templateStatus && !o.disabled) {
let prefix = "";
if (o.type === "input") {
if (o.type === "input" || o.type === "inputNumber" || o.type === "textarea") {
prefix = "填写"
} else {
prefix = "选择"
@ -303,6 +308,9 @@ export default {
})
},
getFormDataByKey(key){
return this.formFields[key];
},
onBlur(key, val) {
this.$emit("blur", { key, value: val ,...this.formFields});
},

+ 41
- 26
src/components/Template/CustomTable.vue View File

@ -14,7 +14,7 @@
</div>
<!-- 默认操作栏 -->
<div class="custom-table-cell header-cell" :style="{ width: '80px' }">
<div class="custom-table-cell header-cell" :style="{ width: '180px' }" v-if="showOperation">
<div class="header-cell-content">
<div>操作</div>
</div>
@ -29,14 +29,14 @@
<div class="inner-table-cell">
<div>
<template v-if="col.bodyType === 'input'">
<HandleFormItem type="input" class="body-input" :item="getBodyItem(col,rowIndex)" v-model="row[col.prop]" @change="onBodyValueChange(rowIndex, colIndex, $event)" />
<HandleFormItem type="input" @blur = "onBlur(rowIndex, col.prop, $event)" @copy = "onCopy(rowIndex, col)" class="body-input" :item="getBodyItem(col,rowIndex)" v-model="row[col.prop]" @change="onBodyValueChange(rowIndex, colIndex, $event)" />
</template>
<template v-else-if="col.bodyType === 'inputNumber'">
<HandleFormItem type="inputNumber" class="body-input-number" :item="getBodyItem(col,rowIndex)"
v-model="row[col.prop]" @change="onBodyValueChange(rowIndex, colIndex, $event)" />
<HandleFormItem type="inputNumber" @copy = "onCopy(rowIndex, col)" class="body-input-number" :item="getBodyItem(col,rowIndex)"
v-model="row[col.prop]" @blur = "onBlur(rowIndex, col.prop, $event)" @change="onBodyValueChange(rowIndex, colIndex, $event)" />
</template>
<template v-else-if="col.bodyType === 'select'">
<HandleFormItem type="select" class="body-select" :item="getBodyItem(col,rowIndex)" v-model="row[col.prop]" @change="onBodyValueChange(rowIndex, colIndex, $event)" />
<HandleFormItem type="select" class="body-select" @blur = "onBlur(rowIndex, col.prop, $event)" :item="getBodyItem(col,rowIndex)" v-model="row[col.prop]" @change="onBodyValueChange(rowIndex, colIndex, $event)" />
</template>
<template v-else>
{{ row[col.prop] }}
@ -44,7 +44,7 @@
</div>
<div class="m-l-5">
<template v-if="col.bodySubType === 'inputNumber' && col.showBodySub">
<HandleFormItem type="inputNumber" :item="getBodySubItem(col)"
<HandleFormItem type="inputNumber" @copy = "onCopy(rowIndex, col)" :item="getBodySubItem(col)"
v-model="row[col.bodySubKey]" @change="onBodySubValueChange(rowIndex, colIndex, $event)" />
</template>
<template v-else>
@ -54,21 +54,9 @@
</div>
</div>
<!-- 默认操作栏 -->
<div class="custom-table-cell body-cell" :style="{ width: '80px' }">
<div class="custom-table-cell body-cell" :style="{ width: '180px' }" v-if="showOperation">
<div class="inner-table-cell">
<el-popconfirm
confirm-button-text='确认'
cancel-button-text='取消'
icon="el-icon-info"
icon-color="red"
title="确认删除当前数据?"
@confirm = "deleteRow(rowIndex)"
>
<el-button slot="reference" type="text" size="small" class="delete-button" >
删除
</el-button>
</el-popconfirm>
<slot name="operation" :row="row" :rowIndex="rowIndex" ></slot>
</div>
</div>
</div>
@ -84,6 +72,11 @@ export default {
HandleFormItem
},
props: {
//
showOperation: {
type: Boolean,
default: true,
},
columns: {
type: Array,
required: true,
@ -124,6 +117,16 @@ export default {
this.initHeaderSelectValues();
},
methods: {
//
onCopy(rowIndex, col){
if(col.copyFrom){
if(!this.localDataSource[rowIndex][col.copyFrom]){//
return
}
this.$set(this.localDataSource[rowIndex], col.prop, this.localDataSource[rowIndex][col.copyFrom])
}
},
//
initHeaderSelectValues() {
const headerSelectObj = {};
@ -167,7 +170,9 @@ export default {
if (col.bodyFillType === templateStatus || col.bodySubType === templateStatus) {
//
const mainValue = row[col.prop];
if (this.isValueEmpty(mainValue)) {
if (this.isValueEmpty(mainValue) && !col.bodyDisabled) {
console.log(col,"col")
errors.push({
rowIndex,
colIndex,
@ -178,7 +183,7 @@ export default {
}
//
if (col.bodySubKey) {
if (col.bodySubKey&& !col.bodySubDisabled) {
const subValue = row[col.bodySubKey];
if (this.isValueEmpty(subValue)) {
errors.push({
@ -244,6 +249,7 @@ export default {
maxlength: col.bodyMaxlength,
label: col.label,
precision: currentItem[col.bodyPrecisionKey] || col.precision || 0,
copyFrom: col.copyFrom || "",
};
if(col.bodyDisabled){
item.disabled = col.bodyDisabled;
@ -254,13 +260,14 @@ export default {
const item = {
fillType: col.bodySubFillType,
options: col.bodySubOptions,
maxlength: col.bodySubMaxlength,
maxlength: col.bodySubMaxlength || 10,
label: "",
placeholder:col.bodySubPlaceholder||"请输入"
}
if(col.bodySubDisabled){
item.disabled = col.bodySubDisabled;
}
return item
},
//
deleteRow(rowIndex) {
@ -271,6 +278,16 @@ export default {
updateDataSource(dataSource = []) {
//
this.localDataSource = JSON.parse(JSON.stringify(dataSource || []));
},
//
updateDataSourceByRowIndex(rowIndex,data){
this.localDataSource[rowIndex] = {...this.localDataSource[rowIndex],...data};
console.log(this.localDataSource,"this.localDataSource")
this.localDataSource = [...this.localDataSource];
},
onBlur(rowIndex, colKey) {
const value = this.localDataSource[rowIndex][colKey];
this.$emit("blur", {rowIndex, colKey, value,item:this.localDataSource[rowIndex]});
}
}
};
@ -398,7 +415,5 @@ export default {
width: 100px;
margin-left: 5px;
}
.delete-button{
color: red;
}
</style>

+ 12
- 3
src/components/Template/DecimalInput.vue View File

@ -1,5 +1,10 @@
<template>
<el-input v-model="internalValue" @input="handleInput" @blur="handleBlur" :placeholder="placeholder" :disabled="disabled" type="text" />
<el-input v-bind="$attrs" v-model="internalValue" @input="handleInput" @blur="handleBlur" :placeholder="placeholder" :disabled="disabled" type="text" >
<template slot="prepend" v-if="prepend">
{{ prepend }}
</template>
</el-input>
</template>
<script>
@ -12,7 +17,7 @@ export default {
},
decimalDigits: {
type: Number,
default: 0
default: 3
},
placeholder: {
type: String,
@ -21,7 +26,11 @@ export default {
disabled: {
type: Boolean,
default: false
}
},
prepend: {
type: String,
default: ''
},
},
data() {
return {

+ 1
- 0
src/components/Template/HandleFormItem.vue View File

@ -11,6 +11,7 @@
v-model="inputValue" @input="onInputChange" @change="onInputChange" />
<DecimalInput v-else-if="type === 'inputNumber'" @blur="onBlur" :maxlength="item.maxlength || 10"
class="flex1" :disabled="getDisabled()" :controls="item.controls || false" :min="item.min || 0"
:prepend = "item.prepend"
:decimalDigits="item.precision" :class="item.fillType | getFillType"
:placeholder="item.placeholder ? item.placeholder : ('请输入' + item.label)" v-model="inputValue"
@input="onInputChange" @change="onInputChange" />

+ 65
- 0
src/components/Template/operation/TableOpertaion.vue View File

@ -0,0 +1,65 @@
<template>
<div>
<el-popconfirm confirm-button-text='确认' cancel-button-text='取消' icon="el-icon-info" icon-color="red"
title="确认删除当前数据?" @confirm="deleteRow(rowIndex)">
<el-button v-if="fillType === 'preFill'" slot="reference" type="text" size="small" class="delete-button">
删除
</el-button>
</el-popconfirm>
<template v-if="fillType === 'actFill'">
<el-button type="text" size="small" @click = "onSubPackage">分装</el-button>
<el-button type="text" size="small" @click = "onStartConfig">开始配置</el-button>
<el-button type="text" size="small" @click = "onConfigComplete">配置完成</el-button>
<el-button type="text" size="small" @click = "onPrintLabel">打印标签</el-button>
</template>
</div>
</template>
<script>
export default {
name: "TableOpertaion",
props: {
row: {
type: Object,
default: () => { },
},
rowIndex: {
type: Number,
default: 0,
},
fillType: {
type: String,
default: "preFill",
},
},
methods: {
//
onStartConfig() {
this.$emit("startConfig", this.row)
},
//
onConfigComplete() {
this.$emit("configComplete", this.row)
},
//
onPrintLabel() {
this.$emit("printLabel", this.row)
},
//
onSubPackage() {
this.$emit("subPackage", this.row)
},
//
deleteRow(index) {
this.$emit("deleteRow", index)
}
}
}
</script>
<style lang="scss" scoped>
.delete-button{
color: red;
}
</style>

+ 142
- 23
src/views/business/comps/template/comps/sp/SWYPBQGZYZBB.vue View File

@ -16,8 +16,12 @@
<div class="template-form-item">
<BaseInfoFormPcakge @clickable="handleClickable" ref="stepFormPackageRef" :formConfig="stepFormConfig" @blur="onHandleBlur"
:formData="formData" />
<CustomTable ref="stepTable" :columns="stepColumns"
:formData="formData" />
<CustomTable @blur="onHandleTableBlur" :showOperation="fillType === 'actFillill'" ref="stepTableRef" :columns="stepColumns"
:formData="formData" >
<template slot="operation" slot-scope="{ row, rowIndex}">
<TableOpertaion :fillType="fillType" :row="row" :rowIndex="rowIndex" @deleteRow="deleteRow"></TableOpertaion>
</template>
</CustomTable>
</div>
<Step ref="stepRef" :formData="formData"></Step>
<BaseInfoFormPcakge label="备注" ref="remarkRef" :formConfig="remarkConig" :formData="formData" />
@ -42,10 +46,11 @@ import Step from "@/components/Template/Step";
import templateMixin from "../../mixins/templateMixin";
import CustomTable from '@/components/Template/CustomTable.vue';
import SelectReagentDialog from '../../dialog/SelectReagentDialog.vue';
import TableOpertaion from "@/components/Template/operation/TableOpertaion.vue"
export default {
name: "SWYPBQGZYZBB",
components: { BaseInfoFormPcakge, LineLabel, TableList, Step, CustomTable, SelectReagentDialog },
components: { BaseInfoFormPcakge, LineLabel, TableList, Step, CustomTable, SelectReagentDialog, TableOpertaion },
mixins: [templateMixin],
props: {
value: {
@ -63,7 +68,13 @@ export default {
handler(v) {
}
}
},
fillType: {
immediate: true,
handler(v) {
console.log(v,"fillType")
}
},
},
computed: {
//
@ -96,7 +107,7 @@ export default {
fillType: "actFill",
span: 1,
placeholder: "请输入备注",
maxlength: 500,
maxlength: 1000,
rows: 5
}
}
@ -127,8 +138,9 @@ export default {
},
versionNum: {
label: "版本号",
type: "input",
type: "inputNumber",
fillType: "actFill",
prepend:"V",
maxlength: 50,
},
@ -197,19 +209,23 @@ export default {
subType: "clickable",
subKey: "subStartSolution",
subFillType: "actFill",
maxlength: 20,
},
targetStartSolution: {
label: "预设起始源溶液浓度",
type: "input",
type: "inputNumber",
subType: "select",
fillType: "preFill",
subOptions: this.$store.state.template.mgOptions,
subKey: "subTargetStartSolution",
maxlength: 10,
},
targetAcSolution: {
label: "实际起始源溶液浓度",
type: "input",
fillType: "actFill",
disabled: true,
maxlength: 10,
},
solution: {
label: "稀释液",
@ -218,6 +234,7 @@ export default {
subType: "clickable",
subKey: "subSolution",
subFillType: "actFill",
maxlength: 20,
},
codeSTD: {
label: "起始编号STD",
@ -262,14 +279,16 @@ export default {
width: 280
},
{
label: "起始溶液编号", prop: "startSolutionCode",
label: "起始溶液编号",
prop: "startSolutionCode",
width: 280,
bodyType: "input",
bodyFillType: "actFill",
bodyMaxlength: 10,
},
{
label: "预设起始溶液体积", prop: "targetStartSolutionVolume",
label: "预设起始溶液体积",
prop: "targetStartSolutionVolume",
width: 280,
headerSelectKey: "targetStartSolutionVolumeUnit",
fillType: "preFill",
@ -277,21 +296,119 @@ export default {
defaultValue: "mg",
bodyType: "inputNumber",
bodySubType: "inputNumber",
bodySubKey: "subTargetStartSolutionPrecision",
bodySubKey: "targetStartSolutionVolumePrecision",
bodyFillType: "preFill",
bodySubFillType: "preFill",
showBodySub: this.fillType === "preFill",
bodyDisabled: true,
bodyPrecisionKey: "subTargetStartSolutionPrecision",
bodyPrecisionKey: "targetStartSolutionVolumePrecision",
bodyMaxlength: 10,
bodySubPlaceholder: "请输入保留小数位数",
},
{
label: "实际起始溶液体积", prop: "actStartSolutionVolume",
label: "实际起始溶液体积",
prop: "actStartSolutionVolume",
width: 280,
headerSelectKey: "actStartSolutionVolumeUnit",
fillType: "preFill",
headerOptions: this.$store.state.template.volumeOptions,
bodyType: "inputNumber",
bodyFillType: "actFill",
bodyMaxlength: 10,
copyFrom: "targetStartSolutionVolume",//
},
{
label: "预设稀释液体积",
prop: "targetDiluentVolume",
width: 280,
headerSelectKey: "targetDiluentVolumeUnit",
fillType: "preFill",
headerOptions: this.$store.state.template.volumeOptions,
defaultValue: "mg",
bodyType: "inputNumber",
bodySubType: "inputNumber",
bodySubKey: "targetDiluentVolumePrecision",
bodyFillType: "preFill",
bodySubFillType: "preFill",
showBodySub: this.fillType === "preFill",
bodyDisabled: true,
bodyPrecisionKey: "targetDiluentVolumePrecision",
bodyMaxlength: 10,
bodySubPlaceholder: "请输入保留小数位数",
},
{
label: "实际稀释液体积",
prop: "actDiluentVolume",
width: 280,
headerSelectKey: "actDiluentVolumeUnit",
fillType: "preFill",
headerOptions: this.$store.state.template.volumeOptions,
bodyType: "inputNumber",
bodyFillType: "actFill",
bodyMaxlength: 10,
copyFrom: "targetDiluentVolume",//
},
{
label: "预设目标溶液浓度",
prop: "targetSolutionConcentration",
width: 280,
headerSelectKey: "targetSolutionConcentrationUnit",
fillType: "preFill",
headerOptions: this.$store.state.template.volumeOptions,
bodyType: "inputNumber",
bodyFillType: "preFill",
bodyMaxlength: 10,
},
{
label: "实际目标溶液浓度",
prop: "actSolutionConcentration",
width: 280,
headerSelectKey: "actSolutionConcentrationUnit",
fillType: "preFill",
headerOptions: this.$store.state.template.volumeOptions,
defaultValue: "mg",
bodyType: "inputNumber",
bodySubType: "inputNumber",
bodySubKey: "actSolutionConcentrationPrecision",
bodyFillType: "actFill",
bodySubFillType: "preFill",
showBodySub: this.fillType === "preFill",
bodyDisabled: true,
bodyPrecisionKey: "actSolutionConcentrationPrecision",
bodyMaxlength: 10,
copyFrom: "targetSolutionConcentration",//
bodySubPlaceholder: "请输入保留小数位数",
},
{
label: "预设目标溶液体积",
prop: "targetSolutionVolume",
width: 280,
headerSelectKey: "targetSolutionVolumeUnit",
fillType: "preFill",
headerOptions: this.$store.state.template.volumeOptions,
bodyType: "inputNumber",
bodyFillType: "preFill",
bodyMaxlength: 10,
},
{
label: "实际目标溶液体积",
prop: "actSolutionVolume",
width: 280,
headerSelectKey: "actSolutionVolumeUnit",
fillType: "preFill",
headerOptions: this.$store.state.template.volumeOptions,
defaultValue: "mg",
bodyType: "inputNumber",
bodySubType: "inputNumber",
bodySubKey: "actSolutionVolumePrecision",
bodyFillType: "actFill",
bodySubFillType: "preFill",
showBodySub: this.fillType === "preFill",
bodyDisabled: true,
bodyPrecisionKey: "actSolutionVolumePrecision",
bodyMaxlength: 10,
copyFrom: "targetSolutionVolume",//
bodySubPlaceholder: "请输入保留小数位数",
},
]
},
@ -325,13 +442,17 @@ export default {
this.formData = {
effectivePeriodUnit: "days",//
createTime: "2026-01-02 18:05:36",//
stepTableFormData: [
{ actStartSolutionVolume: 1, subActStartSolutionVolume: "ul", subTargetStartSolutionPrecision: 3 },
{ targetStartSolutionVolume: 3, subTargetStartSolutionVolume: "mg", subTargetStartSolutionPrecision: 2 },
],
versionNum:1,
stepTableFormData: [],
headerSelectFields: {
targetStartSolutionVolumeUnit: "mg",
actStartSolutionVolumeUnit: "ul",
actStartSolutionVolumeUnit: "mg",
targetDiluentVolumeUnit: "mg",
actDiluentVolumeUnit: "mg",
targetSolutionConcentrationUnit: "mg",
actSolutionConcentrationUnit: "mg",
targetSolutionVolumeUnit: "mg",
actSolutionVolumeUnit: "mg",
}
}
}
@ -349,16 +470,14 @@ export default {
},
//
onSelectReagentSubmit(code){
this.formData[this.currentSubKey] = code;
this.$set(this.formData, this.currentSubKey, code);
this.formData = {...this.formData}
this.$refs.stepFormPackageRef.updateFormData(this.currentSubKey, code);
this.selectReagentVisible = false;
},
async getFormData() {
const baseData = await this.$refs.baseInfoRef.getFormData();
const conditionData = await this.$refs.storageConditionRef.getFormData();
const stepFormData = await this.$refs.stepFormPackageRef.getFormData();
const stepDataFormData = await this.$refs.stepTable.getFormData();
const stepDataFormData = await this.$refs.stepTableRef.getFormData();
const stepData = await this.$refs.stepRef.getFormData();
if (!stepData.length) {
this.$message.error("请添加步骤");
@ -376,8 +495,8 @@ export default {
},
async onSave() {
// const formData = await this.getFormData();
const stepDataFormData = await this.$refs.stepTable.getFormData();
console.log(stepDataFormData, "formData")
const formData = await this.$refs.stepTableRef.getFormData();
console.log(formData, "formData")
}
}
};

+ 1
- 1
src/views/business/comps/template/comps/sp/SWYPFXCBYPZB.vue View File

@ -87,7 +87,7 @@ export default {
fillType: "actFill",
span: 1,
placeholder: "请输入备注",
maxlength: 500,
maxlength: 1000,
rows: 5
}
}

+ 1
- 1
src/views/business/comps/template/comps/sp/SWYPFXRYPZB.vue View File

@ -88,7 +88,7 @@ export default {
fillType: "actFill",
span: 1,
placeholder: this.$t('template.common.remarkPlaceholder'),
maxlength: 500,
maxlength: 1000,
rows: 5
}
}

+ 35
- 4
src/views/business/comps/template/mixins/templateMixin.js View File

@ -54,6 +54,14 @@ export default {
setConditionOptions(options) {
this.$store.commit('template/SET_CONDITION_OPTIONS', options)
},
//统一处理删除行
deleteRow(index) {
this.$refs.stepTableRef.deleteRow(index);
},
//获取版本号
getVersionNum(){
return this.formData.versionNum || "";
},
//统一处理blur事件,因为有效周期和过期日期是相关的,所以需要在有效周期失焦时更新过期日期
onHandleBlur(fields){
const {key ,effectivePeriodUnit,effectivePeriod,codeSTD} = fields;
@ -61,15 +69,38 @@ export default {
if(key ==="effectivePeriod"){//统一处理有效周期失焦,计算失效事件,保证字段名不能变
const start = moment(createTime);
const end = start.add(Number(effectivePeriod), effectivePeriodUnit).format("YYYY-MM-DD HH:mm:ss");
this.$refs.stepFormPackageRef.updateFormField("expireDate", end);
this.$refs.stepFormPackageRef.updateFormData("expireDate", end);
}else if(key === "codeSTD"){//起始编号STD失焦时,更新stepDataSource
const arr = Array.from({length:codeSTD},(item,index) => ({
subTargetStartSolutionPrecision:3,//小数点精度默认为3
actSolutionVolumePrecision:3,//小数点精度默认为3
actSolutionConcentrationPrecision:3,//小数点精度默认为3
targetDiluentVolumePrecision:3,//小数点精度默认为3
targetStartSolutionVolumePrecision:3,//小数点精度默认为3
targetSolutionCode:`STD${Number(codeSTD)-index}`
}));
this.$refs.stepTable.updateDataSource(arr);
console.log(arr, "arr")
this.$refs.stepTableRef.updateDataSource(arr);
}
}
},
onHandleTableBlur(params){
const {rowIndex, colKey, value,item} = params;
if(colKey === "targetSolutionVolume" || colKey === "targetSolutionConcentration"){//预设起始溶液体积:(目标溶液预计浓度 乘以 目标溶液预计体积)除以 起始溶液浓度
const volume = this.$refs.stepFormPackageRef.getFormDataByKey("targetStartSolution") || 0;
const precision = item.targetStartSolutionVolumePrecision || 0;
if(volume){
const concentration = item.targetSolutionConcentration || 0;
const targetVolume = item.targetSolutionVolume || 0;
const result = ((concentration * targetVolume) / volume).toFixed(precision);
console.log(result,"reee")
this.$refs.stepTableRef.updateDataSourceByRowIndex(rowIndex,{targetStartSolutionVolume:result});
}
}else if(colKey ==="targetSolutionVolume" || colKey === "targetDiluentVolume"){//预设稀释液体积:目标溶液预计体积 减去 源溶液预计体积;
// const targetVolume = item.targetSolutionVolume || 0;
// const targetDiluentVolume = item.targetDiluentVolume || 0;
// const result = (targetVolume - targetDiluentVolume).toFixed(precision);
// this.$refs.stepTableRef.updateDataSourceByRowIndex(rowIndex,{targetDiluentVolume:result});
}
}
},

Loading…
Cancel
Save