//从表方法
|
let detailMethods = {
|
//查询从表前先做内部处理
|
loadInternalDetailTableBefore(param, callBack) {
|
//加载明细表数据之前,需要设定查询的主表的ID
|
//每次只要加载明细表格数据就重置删除明细的值
|
if (this.detailOptions.delKeys.length > 0) {
|
this.detailOptions.delKeys = [];
|
}
|
let key = this.table.key;
|
if (this.currentRow && this.currentRow.hasOwnProperty(key)) {
|
param.value = this.currentRow[key];
|
}
|
return this.loadDetailTableBefore(param, callBack);
|
},
|
detailRowOnChange(row) {
|
this.detailRowChange(row);
|
},
|
detailRowChange(row) {
|
//checkbox选中行事件
|
},
|
detailRowOnClick({ row, column, event }) {
|
//明细表点击行事件2020.11.07
|
this.detailRowClick({ row, column, event });
|
},
|
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] };
|
this.$nextTick(() => {
|
if (this.$refs.detail) {
|
this.$refs.detail.reset();
|
this.$refs.detail.load(query);
|
}
|
});
|
},
|
//从后面加载从表数据
|
refreshRow() {
|
this.resetDetailTable();
|
},
|
addRow() {
|
this.$refs.detail.addRow({});
|
this.$refs.detail.edit.rowIndex=-1;
|
this.updateDetailTableSummaryTotal();
|
},
|
delRow() {
|
let rows = this.$refs.detail.getSelected();
|
if (!rows || rows.length == 0) {
|
return this.$message.error('请选择要删除的行!');
|
}
|
if (!this.delDetailRow(rows)) {
|
return false;
|
}
|
|
let tigger = false;
|
this.$confirm('确认要删除选择的数据吗?', '警告', {
|
confirmButtonText: '确定',
|
cancelButtonText: '取消',
|
type: 'warning',
|
center: true
|
}).then(() => {
|
if (tigger) return;
|
tigger = true;
|
rows = this.$refs.detail.delRow();
|
let key = this.detailOptions.key;
|
//记录删除的行数据
|
rows.forEach((x) => {
|
if (x.hasOwnProperty(key) && x[key]) {
|
this.detailOptions.delKeys.push(x[key]);
|
}
|
});
|
this.updateDetailTableSummaryTotal();
|
});
|
},
|
updateDetailTableSummaryTotal() {
|
//2021.09.25增加明细表删除、修改时重新计算行数与汇总
|
//2021.12.12增加明细表判断(强制刷新合计时会用到)
|
if (!this.$refs.detail) {
|
return;
|
}
|
//删除或新增行时重新设置显示的总行数
|
this.$refs.detail.paginations.total = this.$refs.detail.rowData.length;
|
//重新设置合计
|
if (this.$refs.detail.summary) {
|
this.$refs.detail.columns.forEach((column) => {
|
if (column.summary) {
|
this.$refs.detail.getInputSummaries(null, null, null, column);
|
}
|
});
|
}
|
},
|
detailSelectable(row, index){
|
//明细表CheckBox 是否可以勾选
|
return true;
|
}
|
};
|
|
export default detailMethods;
|