king
2020-12-21 251d38fbae6c39af380cb5794424a5d24e3ba2e4
src/tabviews/commontable/index.jsx
@@ -67,6 +67,7 @@
    chartId: '',          // 展开图表ID
    statFields: [],       // 合计字段
    statFValue: [],       // 合计值
    absFields: [],        // 绝对值字段
    debug: sessionStorage.getItem('debug') === 'true'
  }
@@ -259,6 +260,7 @@
      let _hideCol = []      // 隐藏及合并列中字段的uuid集
      let colMap = new Map() // 用于字段过滤
      let statFields = []    // 合计字段信息
      let absFields = []     // 绝对值字段
      let _actions = []      // 工具栏按钮
      let _operations = []   // 操作列按钮(存在时)
@@ -284,6 +286,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) { // 筛选隐藏列
@@ -355,18 +360,19 @@
      }
      this.setState({
        BID: param && param.BID ? param.BID : '',
        loadingview: false,
        chartId: chartId,
        config: config,
        statFields: statFields,
        absFields,
        chartId,
        config,
        statFields,
        userConfig,
        tabActive: _tabActive,
        userConfig: userConfig,
        setting: config.setting,
        searchlist: config.search,
        actions: _actions,
        columns: _columns,
        arr_field: _arrField.join(','),
        BID: param && param.BID ? param.BID : '',
        search: Utils.initMainSearch(initSearch) // 搜索条件初始化(含有时间格式,需要转化)
      }, () => {
        if (config.setting.onload !== 'false' && valid) { // 初始化可加载
@@ -464,7 +470,7 @@
   * @description 主表数据加载
   */ 
  async loadmaindata () {
    const { setting, arr_field, BIDs, search, orderBy, BID, pageIndex, pageSize } = this.state
    const { setting, arr_field, BIDs, search, orderBy, BID, pageIndex, pageSize, absFields } = this.state
    let requireFields = search.filter(item => item.required && (!item.value || item.value.length === 0))
    this.setState({
@@ -503,6 +509,15 @@
    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
        }),
@@ -526,7 +541,7 @@
   * @description 获取单行数据
   */ 
  async loadmainLinedata (id) {
    const { setting, arr_field, search, orderBy, BID, pageIndex, pageSize } = this.state
    const { setting, arr_field, search, orderBy, BID, pageIndex, pageSize, absFields } = this.state
    this.setState({
      loading: true
@@ -545,6 +560,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]) {