king
2021-09-09 e5fc2d92b1036aabf9ffc2c9706ed401bd9735c8
src/tabviews/custom/components/table/normal-table/index.jsx
@@ -61,6 +61,11 @@
    let _cols = new Map()
    let _data = null
    let _sync = _config.setting.sync === 'true'
    let setting = {..._config.setting, ..._config.wrap, style: {}}
    if (setting.selected !== 'always' && setting.selected !== 'init') {
      setting.selected = 'false'
    }
    if (_config.setting.sync === 'true' && data) {
      _data = data[_config.dataName] || []
@@ -78,6 +83,15 @@
        item.$Index = index + 1 + ''
        return item
      })
      if (setting.selected !== 'false') {
        setTimeout(() => {
          MKEmitter.emit('mkCheckTopLine', _config.uuid)
        }, 200)
        if (setting.selected === 'init') {
          setting.selected = 'false'
        }
      }
    }
    _config.columns.forEach(item => {
@@ -97,7 +111,6 @@
      }
    })
    let setting = {..._config.setting, ..._config.wrap, style: {}}
    if (setting.color) {
      setting.style.color = setting.color
    }
@@ -138,7 +151,7 @@
   */
  async loadmaindata (reset, repage) {
    const { mainSearch } = this.props
    const { setting, config, arr_field, search, orderBy, BID, pageIndex, pageSize } = this.state
    const { setting, config, arr_field, search, orderBy, BID, pageIndex, pageSize, BData } = this.state
    if (setting.supModule && !BID) { // BID 不存在时,不做查询
      this.setState({
@@ -148,6 +161,9 @@
      })
      MKEmitter.emit('resetSelectLine', config.uuid, '', '') // 广播数据切换
      reset && MKEmitter.emit('resetTable', config.uuid, repage) // 列表重置
      if (setting.$hasSyncModule) {
        MKEmitter.emit('syncBalconyData', config.uuid, [], false)
      }
      return
    }
@@ -173,13 +189,19 @@
    let _orderBy = orderBy || setting.order
    let param = UtilsDM.getQueryDataParams(setting, arr_field, searches, _orderBy, pageIndex, pageSize, BID, this.props.menuType)
    if (param.func === 'sPC_Get_TableData') {
      param.menuname = config.name || ''
    }
    let result = await Api.genericInterface(param)
    if (result.status) {
      MKEmitter.emit('resetSelectLine', config.uuid, '', '') // 广播数据切换
      if (setting.selected !== 'false') {
        setTimeout(() => {
          MKEmitter.emit('mkCheckTopLine', config.uuid)
        }, 200)
        if (setting.selected === 'init') {
          this.setState({setting: {...setting, selected: 'false'}})
        }
      } else {
        MKEmitter.emit('resetSelectLine', config.uuid, '', '') // 广播数据切换
      }
      reset && MKEmitter.emit('resetTable', config.uuid, repage) // 列表重置
      let start = 1
@@ -192,6 +214,7 @@
          item.key = index
          item.$$uuid = item[setting.primaryKey] || ''
          item.$$BID = BID || ''
          item.$$BData = BData || ''
          item.$Index = start + index + ''
          return item
        }),
@@ -199,6 +222,9 @@
        total: result.total,
        loading: false
      })
      if (setting.$hasSyncModule) {
        MKEmitter.emit('syncBalconyData', config.uuid, [], false)
      }
    } else {
      this.setState({
        loading: false
@@ -216,7 +242,7 @@
   */ 
  async loadmainLinedata (id) {
    const { mainSearch } = this.props
    const { setting, config, arr_field, search, orderBy, BID, pageIndex, pageSize } = this.state
    const { setting, config, arr_field, search, orderBy, BID, pageIndex, pageSize, BData } = this.state
    let searches = fromJS(search).toJS()
    if (config.setting.useMSearch && mainSearch && mainSearch.length > 0) { // 主表搜索条件
@@ -235,10 +261,6 @@
    let _orderBy = orderBy || setting.order
    let param = UtilsDM.getQueryDataParams(setting, arr_field, searches, _orderBy, pageIndex, pageSize, BID, this.props.menuType, id)
    if (param.func === 'sPC_Get_TableData') {
      param.menuname = config.name || ''
    }
    let result = await Api.genericInterface(param)
    if (result.status) {
      let data = fromJS(this.state.data).toJS()
@@ -247,6 +269,7 @@
        let _data = result.data[0] || {}
        _data.$$uuid = _data[setting.primaryKey] || ''
        _data.$$BID = BID || ''
        _data.$$BData = BData || ''
        try {
          data = data.map(item => {
            if (item.$$uuid === _data.$$uuid) {
@@ -263,7 +286,7 @@
            }
            return item
          })
        } catch {
        } catch (e) {
          console.warn('数据查询错误')
        }
      }
@@ -317,10 +340,6 @@
    let _orderBy = orderBy || setting.order
    let param = UtilsDM.getStatQueryDataParams(setting, config.statFields, searches, _orderBy, BID, this.props.menuType)
    if (param.func === 'sPC_Get_TableData') {
      param.menuname = config.name || ''
    }
    Api.genericInterface(param).then(res => {
      if (res.status) {
@@ -502,20 +521,29 @@
  }
  UNSAFE_componentWillReceiveProps(nextProps) {
    const { sync, config, BID } = this.state
    const { sync, config, setting, BID } = this.state
    if (sync && !is(fromJS(this.props.data), fromJS(nextProps.data))) {
      let _data = []
      if (nextProps.data && nextProps.data[config.dataName]) {
        _data = nextProps.data[config.dataName] || []
        _data = _data.map((item, index) => {
          item.key = index
          item.$$uuid = item[config.setting.primaryKey] || ''
          item.$$BID = BID || ''
          item.$Index = index + 1 + ''
          return item
        })
        if (setting.selected !== 'false') {
          setTimeout(() => {
            MKEmitter.emit('mkCheckTopLine', config.uuid)
          }, 200)
          if (setting.selected === 'init') {
            this.setState({setting: {...setting, selected: 'false'}})
          }
        }
      }
      _data = _data.map((item, index) => {
        item.key = index
        item.$$uuid = item[config.setting.primaryKey] || ''
        item.$$BID = BID || ''
        item.$Index = index + 1 + ''
        return item
      })
      this.setState({sync: false, data: _data})
    } else if (config.setting.syncRefresh && nextProps.mainSearch && !is(fromJS(this.props.mainSearch), fromJS(nextProps.mainSearch))) {