jiaxing.zhou

feat(editReportingData): 优化编辑行数据功能

- 添加原始数据保存功能,以便取消编辑时恢复
- 新增行数据时添加 isNew 标志,用于区分新旧数据
- 优化取消编辑逻辑,根据不同情况处理数据
......@@ -784,8 +784,11 @@
},
logtableType: true,
expandRowKeys:[],
isFold: false
isFold: false,
// 用于保存原始数据
originalDetailData: {},
// 当前编辑行的 gnum
currentRowKey: null,
};
},
created() {
......@@ -870,7 +873,6 @@
this.$router.go(-1);
},
addNewItem() {
console.log(this.detailData.at(-1))
let orderNum = this.detailData.at(-1) === undefined ? 1 : this.detailData.at(-1).gnum + 1
this.detailData.push({
"gnum":orderNum,
......@@ -890,7 +892,8 @@
"qty": 0,
"remark": "",
"totalPrice": 0,
"unit": ""
"unit": "",
"isNew": true // 添加 isNew 标志
})
this.$nextTick(()=>{
this.expandRowKeys = [orderNum]
......@@ -899,6 +902,11 @@
updateRow(row){
if (this.expandRowKeys.length > 0) return
this.expandRowKeys = [row.gnum]
this.currentRowKey = row.gnum; // 设置当前行的 gnum
// 保存原始数据
this.originalDetailData[row.gnum] = { ...row };
let obj = {}
for (let key in row) {
obj[key] = row[key]
......@@ -942,10 +950,20 @@
this.getTotalNumber()
})
},
cancelEditRowData(index){
this.expandRowKeys = []
if(index!==0){
this.detailData.splice(index)
cancelEditRowData(index) {
this.expandRowKeys = [];
if (index !== undefined) {
const gnum = this.detailData[index].gnum;
if (this.detailData[index].isNew) {
// 如果是新添加的项,则删除该项
this.detailData.splice(index, 1);
} else {
// 否则,恢复原始数据
if (this.originalDetailData[gnum]) {
this.detailData[index] = { ...this.originalDetailData[gnum] };
delete this.originalDetailData[gnum]; // 删除保存的原始数据
}
}
}
},
......