king
2024-11-07 a02fc6a77fa1b35c6516b2d37108d80e260c6c85
src/tabviews/custom/components/share/normalTable/index.jsx
@@ -236,6 +236,9 @@
        }
        if (col.format === 'percent') {
          content = content * 100
          if (!col.round) {
            content = +content.toFixed(2)
          }
        } else if (col.format === 'abs') {
          content = Math.abs(content)
        }
@@ -415,6 +418,15 @@
          content = ''
        }
      } else {
        if (col.eval === 'false' && col.noValue === 'hide') { // 空值隐藏
          Object.keys(record).forEach(key => {
            if (/^\$/.test(key)) return
            if (record[key]) return
            content = content.replace(new RegExp('[^@]*@' + key + '@', 'ig'), '')
          })
        }
        Object.keys(record).forEach(key => {
          let reg = new RegExp('@' + key + '@', 'ig')
          content = content.replace(reg, record[key])
@@ -428,7 +440,7 @@
              content = ''
            }
          } catch (e) {
            console.info(content)
            window.mkInfo(content)
            console.warn(e)
            content = ''
          }
@@ -446,7 +458,12 @@
        content = <span dangerouslySetInnerHTML={{__html: content}}></span>
      } else if (content !== '') {
        content = `${col.prefix || ''}${content}${col.postfix || ''}`
        content = content.replace(/\n/ig, '<br/>').replace(/\s/ig, '&nbsp;')
        if (!col.evalchars || col.evalchars.includes('enter')) {
          content = content.replace(/\n/ig, '<br/>')
        }
        if (!col.evalchars || col.evalchars.includes('space')) {
          content = content.replace(/\s/ig, '&nbsp;')
        }
        content = <span dangerouslySetInnerHTML={{__html: content}}></span>
      }
@@ -806,15 +823,27 @@
    this.props.refreshdata({pageIndex})
  }
  mkCheckTopLine = (menuId, id, type) => {
  mkCheckTopLine = (menuId, id, selected) => {
    const { MenuID, data, setting } = this.props
    if (MenuID !== menuId || !data || data.length === 0) return
    if (MenuID !== menuId) return
    if (!data || data.length === 0) {
      MKEmitter.emit('resetSelectLine', menuId, '', '')
      return
    }
    if (type === 'sign') {
      let index = ''
      let keys = []
      let items = []
    let index = -1
    let keys = []
    let items = []
    if (id) {
      index = data.findIndex(item => item.$$uuid === id && !item.$disabled)
    }
    if (index !== -1) {
      keys = [index]
      items = [data[index]]
    } else if (selected === 'sign') {
      data.forEach((item, i) => {
        if (!item.$disabled && item.selected === 'true') {
          items.push(item)
@@ -822,33 +851,25 @@
          index = i
        }
      })
      this.changedata(index)
      this.setState({ selectedRowKeys: keys, activeIndex: index })
      this.props.chgSelectData(items)
      if (setting.$hasSyncModule) {
        MKEmitter.emit('syncBalconyData', MenuID, items, data.length === keys.length)
    } else if (selected !== 'false') {
      if (!data[0].$disabled) {
        index = 0
        keys = [index]
        items = [data[index]]
      }
    }
    if (index === -1) {
      MKEmitter.emit('resetSelectLine', menuId, '', '')
      return
    }
    let index = 0
    if (id) {
      index = data.findIndex(item => item.$$uuid === id)
      if (index === -1) {
        index = 0
      }
    }
    if (data[index].$disabled) return
    this.changedata(index)
    this.setState({ selectedRowKeys: [index], activeIndex: index })
    this.props.chgSelectData([data[index]])
    this.setState({ selectedRowKeys: keys, activeIndex: index })
    this.props.chgSelectData(items)
    if (setting.$hasSyncModule) {
      MKEmitter.emit('syncBalconyData', MenuID, [data[index]], data.length === 1)
      MKEmitter.emit('syncBalconyData', MenuID, items, data.length === keys.length)
    }
  }
@@ -868,7 +889,7 @@
      MKEmitter.emit('resetSelectLine', MenuID, '', '')
      MKEmitter.emit('syncBalconyData', MenuID, data, data.length > 0)
      if (data.length === 0) {
        message.warning('未获取到数据!')
        message.warning(window.GLOB.dict['no_data'] || '未获取到数据!')
      }
    } else {
      this.setState({
@@ -1023,22 +1044,9 @@
      if (setting.$hasSyncModule) {
        MKEmitter.emit('syncBalconyData', MenuID, selects, data.length === selects.length)
      }
    } else if (type === 'false') {
      this.setState({
        selectedRowKeys: [],
        activeIndex: null,
        pickup: false
      })
    } else if (type === 'repage') {
      this.setState({
        pageIndex: Index,
        selectedRowKeys: [],
        activeIndex: null,
        pickup: false
      })
    } else {
      this.setState({
        pageIndex: 1,
        pageIndex: type === 'false' ? this.state.pageIndex : 1,
        selectedRowKeys: [],
        activeIndex: null,
        pickup: false
@@ -1158,7 +1166,7 @@
        pageSizeOptions: pageOptions,
        showSizeChanger: true,
        total: this.props.total || 0,
        showTotal: (total, range) => `${range[0]}-${range[1]} 共 ${total} 条`
        showTotal: (total, range) => `${range[0]}-${range[1]} ${window.GLOB.dict['of'] || '共'} ${total} ${window.GLOB.dict['items'] || '条'}`
      }
    }
@@ -1169,8 +1177,14 @@
    }
    let height = setting.height || false
    if (height && height <= 100) {
      height = height + 'vh'
    if (height) {
      if (height <= 100) {
        if (height < 0) {
          height = `calc(100vh - ${-height}px)`
        } else {
          height = height + 'vh'
        }
      }
    }
    let loading = this.props.loading
    if (setting.mask === 'hidden') {
@@ -1195,9 +1209,9 @@
    }
    return (
      <div className={`normal-custom-table ${setting.tableHeader || ''} ${setting.parity === 'true' ? 'mk-parity' : ''} ${height ? 'fixed-height' : ''} ${setting.mode || ''} table-vertical-${setting.vertical || 'middle'} table-col-${columns.length} ${fixed}`} style={style}>
      <div className={`normal-custom-table ${setting.tableHeader || ''} ${setting.parity === 'true' ? 'mk-parity' : ''} ${height ? 'fixed-table-height' : ''} ${setting.mode || ''} table-vertical-${setting.vertical || 'middle'} table-col-${columns.length} ${fixed}`} style={style}>
        {(setting.tableType === 'radio' || setting.tableType === 'checkbox') && data && data.length > 0 ?
          <Switch title="收起" className="main-pickup" checkedChildren="开" unCheckedChildren="关" checked={pickup} onChange={this.pickupChange} /> : null
          <Switch title="收起" className="main-pickup" checkedChildren={window.GLOB.dict['open'] || '开'} unCheckedChildren={window.GLOB.dict['shut'] || '关'} checked={pickup} onChange={this.pickupChange} /> : null
        }
        <Table
          components={components}