king
2025-05-13 1a176e4bdba485301385caac1a29102e598d25cc
src/tabviews/custom/components/card/double-data-card/index.jsx
@@ -184,8 +184,10 @@
      })
    }
    _config.setting.sub_field = subconfig.columns.map(col => col.field).join(',')
    _config.setting.all_field = _config.setting.arr_field + ',' + _config.setting.sub_field
    if (_config.setting.subdata !== 'sub_data_string') {
      _config.setting.sub_field = subconfig.columns.map(col => col.field).join(',')
      _config.setting.all_field = _config.setting.arr_field + ',' + _config.setting.sub_field
    }
    let pageOptions = ['10', '25', '50', '100', '500', '1000']
@@ -280,13 +282,18 @@
    if (config.$cache) {
      let getData = (res) => {
        return res.map((item, index) => {
          let _children = item[config.setting.subdata]
          delete item[config.setting.subdata]
          if (config.setting.subdata === 'sub_data_string') {
            _children = this.parseSubData(_children)
          } else if (item.sub_data_string) {
            _children = this.parseSubData(item.sub_data_string)
          }
          let children = []
          if (item[config.setting.subdata]) {
            let _children = item[config.setting.subdata]
            delete item[config.setting.subdata]
          if (_children) {
            _children.forEach((cell, i) => {
              cell.key = i
              cell.$$uuid = cell[config.setting.subKey] || ''
@@ -345,6 +352,21 @@
        this.loadData()
      }, config.setting.delay || 0)
    }
  }
  parseSubData = (data) => {
    try {
      data = JSON.parse(data)
      if (typeof(data) !== 'object') {
        data = []
      } else if (!Array.isArray(data)) {
        data = [data]
      }
    } catch(e) {
      console.warn('Data parsing error.')
      data = []
    }
    return data
  }
  autoExec = (times) => {
@@ -658,12 +680,17 @@
      if (type === 'plus') {
        let _data = (this.state.data || []).concat(result.data || [])
        data = _data.map((item, index) => {
          if (item[config.setting.subdata]) {
            let children = []
            let _children = item[config.setting.subdata]
          let _children = item[config.setting.subdata]
          delete item[config.setting.subdata]
          if (config.setting.subdata === 'sub_data_string') {
            _children = this.parseSubData(_children)
          } else if (item.sub_data_string) {
            _children = this.parseSubData(item.sub_data_string)
          }
            delete item[config.setting.subdata]
          let children = []
          if (_children) {
            _children.forEach((cell, i) => {
              cell.key = i
              cell.$$uuid = cell[config.setting.subKey] || ''
@@ -676,10 +703,9 @@
                children.push(cell)
              }
            })
            item.children = children
          } else if (!item.children) {
            item.children = []
          }
          item.children = children
          item.key = index
          item.$$uuid = item[config.setting.primaryKey] || ''
@@ -697,13 +723,18 @@
        })
      } else {
        data = result.data.map((item, index) => {
          let _children = item[config.setting.subdata]
          delete item[config.setting.subdata]
          if (config.setting.subdata === 'sub_data_string') {
            _children = this.parseSubData(_children)
          } else if (item.sub_data_string) {
            _children = this.parseSubData(item.sub_data_string)
          }
          let children = []
          if (item[config.setting.subdata]) {
            let _children = item[config.setting.subdata]
            delete item[config.setting.subdata]
          if (_children) {
            _children.forEach((cell, i) => {
              cell.key = i
              cell.$$uuid = cell[config.setting.subKey] || ''
@@ -823,13 +854,19 @@
        data = data.map(item => {
          if (item.$$uuid === _data.$$uuid) {
            let _children = _data[config.setting.subdata]
            delete _data[config.setting.subdata]
            if (config.setting.subdata === 'sub_data_string') {
              _children = this.parseSubData(_children)
            } else if (_data.sub_data_string) {
              _children = this.parseSubData(_data.sub_data_string)
            }
            let children = []
            if (_data[config.setting.subdata]) {
              let _children = _data[config.setting.subdata]
              delete _data[config.setting.subdata]
            if (_children) {
              _children.forEach((cell, i) => {
                cell.key = i
                cell.$$uuid = cell[config.setting.subKey] || ''