|
|
|
@ -713,27 +713,56 @@ export default { |
|
|
|
this.$emit('row-delete', rowIndex); |
|
|
|
}, |
|
|
|
// 更新数据方法,可在formData变更时调用,也可由父组件调用 |
|
|
|
updateDataSource(dataSource = [],autoUpdateRecord = true) { |
|
|
|
updateDataSource(dataSource = []) { |
|
|
|
this.oldLocalDataSource = JSON.parse(JSON.stringify(this.localDataSource)); |
|
|
|
if(autoUpdateRecord){ |
|
|
|
this.showEditSignDialog(); |
|
|
|
} |
|
|
|
console.log(this.oldLocalDataSource, "oldLocalDataSource") |
|
|
|
// 深拷贝数据以避免直接修改原始数据 |
|
|
|
this.localDataSource = JSON.parse(JSON.stringify(dataSource || [])); |
|
|
|
}, |
|
|
|
// 根据行索引更新数据 autoUpdateRecord 是否自动更新记录 |
|
|
|
updateDataSourceByRowIndex(rowIndex, data,autoUpdateRecord = true) { |
|
|
|
this.oldLocalDataSource = JSON.parse(JSON.stringify(this.localDataSource)); |
|
|
|
if(autoUpdateRecord){ |
|
|
|
this.showEditSignDialog(); |
|
|
|
} |
|
|
|
if(autoUpdateRecord){//如果formpackage联动table的情况,不需要自动更新,不然会出现多个弹窗的问题。 |
|
|
|
this.showEditSignDialog(rowIndex,data); |
|
|
|
} |
|
|
|
this.localDataSource[rowIndex] = { ...this.localDataSource[rowIndex], ...data }; |
|
|
|
this.localDataSource = [...this.localDataSource]; |
|
|
|
}, |
|
|
|
showEditSignDialog: _.debounce(()=>{ |
|
|
|
showEditSignDialog: _.debounce(function(rowIndex,data){ |
|
|
|
const oldData = this.oldLocalDataSource[rowIndex]; |
|
|
|
let isFirst = false;//是否是第一次添加,是否和旧数据相同 |
|
|
|
const isSame = this.compareOldAndCurrentFormFields(data,oldData); |
|
|
|
// 遍历data对象,和oldData比较,判断data的key值在对应oldData里面是否有值 |
|
|
|
for(const key in data) { |
|
|
|
if(!oldData[key]&&oldData[key]!=0){ |
|
|
|
isFirst = true; |
|
|
|
break; |
|
|
|
} |
|
|
|
} |
|
|
|
if(!isFirst &&!isSame && this.templateFillType === "actFill"){ |
|
|
|
console.log("showww") |
|
|
|
setTimeout(() => { |
|
|
|
EventBus.$emit('showEditSignDialog', { uuid: this.uuid }); |
|
|
|
}, 100); |
|
|
|
}else{ |
|
|
|
this.updateRecord(rowIndex,data); |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
}, 100), |
|
|
|
// 比较newData和oldData的值是否相等,只要有一对不相等就返回false |
|
|
|
compareOldAndCurrentFormFields(newData,oldData) { |
|
|
|
for (const key in newData) { |
|
|
|
const oldValue = newData[key]; |
|
|
|
const currentValue = oldData[key]; |
|
|
|
if (JSON.stringify(oldValue) !== JSON.stringify(currentValue)) { |
|
|
|
return false; |
|
|
|
} else { |
|
|
|
return false; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
return true; |
|
|
|
}, |
|
|
|
onAddRow() { |
|
|
|
this.addRow({ |
|
|
|
actSolutionVolumePrecision: 3,//小数点精度默认为3 |
|
|
|
|