king
2020-12-21 251d38fbae6c39af380cb5794424a5d24e3ba2e4
src/tabviews/subtable/index.jsx
@@ -60,7 +60,8 @@
    pickup: false,        // 子表数据隐藏显示切换
    chartId: '',          // 展开图表ID
    statFields: [],       // 合计字段
    statFValue: []        // 合计值
    statFValue: [],       // 合计值
    absFields: [],        // 绝对值字段
  }
  /**
@@ -132,6 +133,7 @@
      let _hideCol = []      // 隐藏及合并列中字段的uuid集
      let colMap = new Map()
      let statFields = []    // 合计字段信息
      let absFields = []     // 绝对值字段
      // 版本兼容
      config = UtilsUpdate.updateSubTable(config)
@@ -208,6 +210,9 @@
          col.nameField && _arrField.push(col.nameField) // 链接名字段
          if (col.Hide !== 'true' && col.type === 'number' && col.sum === 'true') {
            statFields.push(col)
          }
          if (col.format === 'abs') {
            absFields.push(col.field)
          }
        }
        if (col.type === 'colspan' && col.sublist) { // 筛选隐藏列
@@ -332,9 +337,10 @@
      this.setState({
        loadingview: false,
        chartId: chartId,
        config: config,
        statFields: statFields,
        chartId,
        config,
        absFields,
        statFields,
        setting: config.setting,
        searchlist: config.search,
        actions: _actions,
@@ -367,7 +373,7 @@
   */
  async loadmaindata (bid, type) {
    const { mainSearch } = this.props
    const { setting, arr_field, search, orderBy, pageIndex, pageSize } = this.state
    const { setting, arr_field, search, orderBy, pageIndex, pageSize, absFields } = this.state
    let _BID = this.props.BID
    let searches = fromJS(search).toJS()
@@ -419,6 +425,14 @@
    if (result.status) {
      this.setState({
        data: result.data.map((item, index) => {
          if (absFields.length) {
            absFields.forEach(field => {
              if (!item[field]) return
              if (isNaN(Math.abs(item[field]))) return
              item[field] = Math.abs(item[field])
            })
          }
          item.key = index
          return item
        }),
@@ -444,7 +458,7 @@
   */ 
  async loadmainLinedata (id) {
    const { mainSearch, BID } = this.props
    const { setting, arr_field, search, orderBy, pageIndex, pageSize } = this.state
    const { setting, arr_field, search, orderBy, pageIndex, pageSize, absFields } = this.state
    let searches = fromJS(search).toJS()
    if (mainSearch && mainSearch.length > 0) { // 主表搜索条件
@@ -468,6 +482,15 @@
      if (result.data && result.data[0]) {
        let _data = result.data[0]
        if (absFields.length) {
          absFields.forEach(field => {
            if (!_data[field]) return
            if (isNaN(Math.abs(_data[field]))) return
            _data[field] = Math.abs(_data[field])
          })
        }
        try {
          data = data.map(item => {
            if (item[setting.primaryKey] === _data[setting.primaryKey]) {