Browse Source

feat:[模板管理][组件抽离ing]

master
luojie 1 week ago
parent
commit
52459b3a1f
2 changed files with 28 additions and 14 deletions
  1. +3
    -0
      src/components/Template/CustomTable.vue
  2. +25
    -14
      src/views/business/comps/template/mixins/templateMixin.js

+ 3
- 0
src/components/Template/CustomTable.vue View File

@ -280,6 +280,9 @@ export default {
// //
this.localDataSource = JSON.parse(JSON.stringify(dataSource || [])); this.localDataSource = JSON.parse(JSON.stringify(dataSource || []));
}, },
getDataSource(){
return this.localDataSource;
},
// //
updateDataSourceByRowIndex(rowIndex,data){ updateDataSourceByRowIndex(rowIndex,data){
this.localDataSource[rowIndex] = {...this.localDataSource[rowIndex],...data}; this.localDataSource[rowIndex] = {...this.localDataSource[rowIndex],...data};

+ 25
- 14
src/views/business/comps/template/mixins/templateMixin.js View File

@ -13,7 +13,7 @@ export default {
if(v){ if(v){
let n = {...v}; let n = {...v};
if(v.bdnr){ if(v.bdnr){
this.formData = JSON.parse(v.bdnr);
this.formData = {...n,...JSON.parse(v.bdnr)};
} }
this.templateDetail = n; this.templateDetail = n;
this.setTemplateData(n); this.setTemplateData(n);
@ -64,7 +64,7 @@ export default {
}, },
//统一处理blur事件,因为有效周期和过期日期是相关的,所以需要在有效周期失焦时更新过期日期 //统一处理blur事件,因为有效周期和过期日期是相关的,所以需要在有效周期失焦时更新过期日期
onHandleBlur(fields){ onHandleBlur(fields){
const {key ,effectivePeriodUnit,effectivePeriod,codeSTD} = fields;
const {key ,effectivePeriodUnit,effectivePeriod,codeSTD,targetStartSolution} = fields;
const {createTime} = this.formData; const {createTime} = this.formData;
if(key ==="effectivePeriod"){//统一处理有效周期失焦,计算失效事件,保证字段名不能变 if(key ==="effectivePeriod"){//统一处理有效周期失焦,计算失效事件,保证字段名不能变
const start = moment(createTime); const start = moment(createTime);
@ -78,28 +78,39 @@ export default {
targetStartSolutionVolumePrecision:3,//小数点精度默认为3 targetStartSolutionVolumePrecision:3,//小数点精度默认为3
targetSolutionCode:`STD${Number(codeSTD)-index}` targetSolutionCode:`STD${Number(codeSTD)-index}`
})); }));
console.log(arr, "arr")
this.$refs.stepTableRef.updateDataSource(arr); this.$refs.stepTableRef.updateDataSource(arr);
}else if(key === "targetStartSolution"){//起始溶液体积失焦时,更新目标溶液预计浓度
const arr = this.$refs.stepTableRef.getDataSource();
arr.forEach((item,rowIndex) => {
this.updateTargetStartSolutionVolume(rowIndex,item,targetStartSolution);
})
} }
}, },
//统一处理table失焦事件
onHandleTableBlur(params){ onHandleTableBlur(params){
const {rowIndex, colKey, value,item} = params; const {rowIndex, colKey, value,item} = params;
console.log(rowIndex, colKey, value,item, "params") console.log(rowIndex, colKey, value,item, "params")
if(colKey === "targetSolutionVolume" || colKey === "targetSolutionConcentration" || colKey === "targetStartSolutionVolumePrecision" || colKey === "targetDiluentVolumePrecision"){//预设起始溶液体积:(目标溶液预计浓度 乘以 目标溶液预计体积)除以 起始溶液浓度
if(colKey === "targetSolutionVolume" || colKey === "targetSolutionConcentration" || colKey === "targetStartSolutionVolumePrecision" || colKey === "targetDiluentVolumePrecision"){
const volume = this.$refs.stepFormPackageRef.getFormDataByKey("targetStartSolution") || 0; const volume = this.$refs.stepFormPackageRef.getFormDataByKey("targetStartSolution") || 0;
const precision = item.targetStartSolutionVolumePrecision || 0;
if(volume){ if(volume){
const concentration = item.targetSolutionConcentration || 0;
const targetVolume = item.targetSolutionVolume || 0;
const result = ((concentration * targetVolume) / volume).toFixed(precision);
this.$refs.stepTableRef.updateDataSourceByRowIndex(rowIndex,{targetStartSolutionVolume:result});
if(targetVolume){//预设稀释液体积:目标溶液预计体积 减去 源溶液预计体积;
const precision1 = item.targetDiluentVolumePrecision || 0;
const result1 = (targetVolume - result).toFixed(precision1);
this.$refs.stepTableRef.updateDataSourceByRowIndex(rowIndex,{targetDiluentVolume:result1});
}
this.updateTargetStartSolutionVolume(rowIndex,item,volume);
} }
} }
},
//更新起始溶液体积时,更新目标溶液预计浓度
updateTargetStartSolutionVolume(rowIndex,item,volume){
const precision = item.targetStartSolutionVolumePrecision || 0;
const concentration = item.targetSolutionConcentration || 0;
const targetVolume = item.targetSolutionVolume || 0;
//目标溶液预计浓度:(目标溶液预计体积 乘以 起始溶液浓度)除以 起始溶液体积
const result = ((concentration * targetVolume) / volume).toFixed(precision);
this.$refs.stepTableRef.updateDataSourceByRowIndex(rowIndex,{targetStartSolutionVolume:result});
if(targetVolume){
//预设稀释液体积:目标溶液预计体积 减去 源溶液预计体积;
const precision1 = item.targetDiluentVolumePrecision || 0;
const result1 = (targetVolume - result).toFixed(precision1);
this.$refs.stepTableRef.updateDataSourceByRowIndex(rowIndex,{targetDiluentVolume:result1});
}
} }
}, },

Loading…
Cancel
Save