修复vue3版本主从表第一次打开时执行两次查询的问题

This commit is contained in:
283591387@qq.com
2022-06-12 23:05:53 +08:00
parent 0d5f5b8948
commit b694b6a61b
4 changed files with 48 additions and 42 deletions
@@ -485,7 +485,7 @@ var vueParam = {
columns: [], //从表列信息
edit: true, //明细是否可以编辑
single: false, //明细表是否单选
load: true,
load: false,//
delKeys: [], //当编辑时删除当前明细的行主键值
url: '', //从表加载数据的url
pagination: { total: 0, size: 100, sortName: '' }, //从表分页配置数据
@@ -1,7 +1,8 @@
//从表方法
let detailMethods = {
//查询从表前先做内部处理
loadInternalDetailTableBefore(param, callBack) {//加载明细表数据之前,需要设定查询的主表的ID
loadInternalDetailTableBefore(param, callBack) {
//加载明细表数据之前,需要设定查询的主表的ID
//每次只要加载明细表格数据就重置删除明细的值
if (this.detailOptions.delKeys.length > 0) {
this.detailOptions.delKeys = [];
@@ -15,26 +16,27 @@ let detailMethods = {
detailRowOnChange(row) {
this.detailRowChange(row);
},
detailRowChange(row) {//checkbox选中行事件
detailRowChange(row) {
//checkbox选中行事件
},
detailRowOnClick({ row, column, event }) {
//明细表点击行事件2020.11.07
this.detailRowClick({ row, column, event })
this.detailRowClick({ row, column, event });
},
detailRowClick({ row, column, event }) {
},
resetDetailTable(row) {//编辑和查看明细时重置从表数据
detailRowClick({ row, column, event }) {},
resetDetailTable(row) {
//编辑和查看明细时重置从表数据
if (!this.detailOptions.columns || this.detailOptions.columns.length == 0) {
return;
}
let key = this.table.key;
let query = { value: row ? row[key] : this.currentRow[key] }
if (this.$refs.detail) {
this.$refs.detail.reset();
this.$refs.detail.load(query);
}
let query = { value: row ? row[key] : this.currentRow[key] };
this.$nextTick(() => {
if (this.$refs.detail) {
this.$refs.detail.reset();
this.$refs.detail.load(query);
}
});
},
//从后面加载从表数据
refreshRow() {
@@ -47,7 +49,7 @@ let detailMethods = {
delRow() {
let rows = this.$refs.detail.getSelected();
if (!rows || rows.length == 0) {
return this.$message.error("请选择要删除的行!");
return this.$message.error('请选择要删除的行!');
}
if (!this.delDetailRow(rows)) {
return false;
@@ -65,15 +67,16 @@ let detailMethods = {
rows = this.$refs.detail.delRow();
let key = this.detailOptions.key;
//记录删除的行数据
rows.forEach(x => {
rows.forEach((x) => {
if (x.hasOwnProperty(key) && x[key]) {
this.detailOptions.delKeys.push(x[key]);
}
})
});
this.updateDetailTableSummaryTotal();
});
},
updateDetailTableSummaryTotal() { //2021.09.25增加明细表删除、修改时重新计算行数与汇总
updateDetailTableSummaryTotal() {
//2021.09.25增加明细表删除、修改时重新计算行数与汇总
//2021.12.12增加明细表判断(强制刷新合计时会用到)
if (!this.$refs.detail) {
return;
@@ -82,13 +85,13 @@ let detailMethods = {
this.$refs.detail.paginations.total = this.$refs.detail.rowData.length;
//重新设置合计
if (this.$refs.detail.summary) {
this.$refs.detail.columns.forEach(column => {
this.$refs.detail.columns.forEach((column) => {
if (column.summary) {
this.$refs.detail.getInputSummaries(null, null, null, column);
}
})
});
}
}
}
};
export default detailMethods;
@@ -485,7 +485,7 @@ var vueParam = {
columns: [], //从表列信息
edit: true, //明细是否可以编辑
single: false, //明细表是否单选
load: true,
load: false,//
delKeys: [], //当编辑时删除当前明细的行主键值
url: '', //从表加载数据的url
pagination: { total: 0, size: 100, sortName: '' }, //从表分页配置数据
@@ -1,7 +1,8 @@
//从表方法
let detailMethods = {
//查询从表前先做内部处理
loadInternalDetailTableBefore(param, callBack) {//加载明细表数据之前,需要设定查询的主表的ID
loadInternalDetailTableBefore(param, callBack) {
//加载明细表数据之前,需要设定查询的主表的ID
//每次只要加载明细表格数据就重置删除明细的值
if (this.detailOptions.delKeys.length > 0) {
this.detailOptions.delKeys = [];
@@ -15,26 +16,27 @@ let detailMethods = {
detailRowOnChange(row) {
this.detailRowChange(row);
},
detailRowChange(row) {//checkbox选中行事件
detailRowChange(row) {
//checkbox选中行事件
},
detailRowOnClick({ row, column, event }) {
//明细表点击行事件2020.11.07
this.detailRowClick({ row, column, event })
this.detailRowClick({ row, column, event });
},
detailRowClick({ row, column, event }) {
},
resetDetailTable(row) {//编辑和查看明细时重置从表数据
detailRowClick({ row, column, event }) {},
resetDetailTable(row) {
//编辑和查看明细时重置从表数据
if (!this.detailOptions.columns || this.detailOptions.columns.length == 0) {
return;
}
let key = this.table.key;
let query = { value: row ? row[key] : this.currentRow[key] }
if (this.$refs.detail) {
this.$refs.detail.reset();
this.$refs.detail.load(query);
}
let query = { value: row ? row[key] : this.currentRow[key] };
this.$nextTick(() => {
if (this.$refs.detail) {
this.$refs.detail.reset();
this.$refs.detail.load(query);
}
});
},
//从后面加载从表数据
refreshRow() {
@@ -47,7 +49,7 @@ let detailMethods = {
delRow() {
let rows = this.$refs.detail.getSelected();
if (!rows || rows.length == 0) {
return this.$message.error("请选择要删除的行!");
return this.$message.error('请选择要删除的行!');
}
if (!this.delDetailRow(rows)) {
return false;
@@ -65,15 +67,16 @@ let detailMethods = {
rows = this.$refs.detail.delRow();
let key = this.detailOptions.key;
//记录删除的行数据
rows.forEach(x => {
rows.forEach((x) => {
if (x.hasOwnProperty(key) && x[key]) {
this.detailOptions.delKeys.push(x[key]);
}
})
});
this.updateDetailTableSummaryTotal();
});
},
updateDetailTableSummaryTotal() { //2021.09.25增加明细表删除、修改时重新计算行数与汇总
updateDetailTableSummaryTotal() {
//2021.09.25增加明细表删除、修改时重新计算行数与汇总
//2021.12.12增加明细表判断(强制刷新合计时会用到)
if (!this.$refs.detail) {
return;
@@ -82,13 +85,13 @@ let detailMethods = {
this.$refs.detail.paginations.total = this.$refs.detail.rowData.length;
//重新设置合计
if (this.$refs.detail.summary) {
this.$refs.detail.columns.forEach(column => {
this.$refs.detail.columns.forEach((column) => {
if (column.summary) {
this.$refs.detail.getInputSummaries(null, null, null, column);
}
})
});
}
}
}
};
export default detailMethods;