//从表方法 
 | 
let detailMethods = { 
 | 
  //查询从表前先做内部处理 
 | 
  loadInternalDetailTableBefore(param, callBack,data) { 
 | 
    //加载明细表数据之前,需要设定查询的主表的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,data); 
 | 
  }, 
 | 
  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; 
 |