//从表方法
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;