king
2020-12-23 e9640ccdc9fe57f91919e3f51462c780e44fadb0
src/tabviews/custom/components/share/normalTable/index.jsx
@@ -22,7 +22,7 @@
  }
  render() {
    let { lineMarks, data, className, ...resProps } = this.props
    let { lineMarks, onDoubleClick, data, className, ...resProps } = this.props
    let style = {}
    if (lineMarks && lineMarks.length > 0) {
@@ -89,7 +89,7 @@
      })
    }
    return <tr {...resProps} className={className} style={style}/>
    return <tr {...resProps} onDoubleClick={onDoubleClick} className={className} style={style}/>
  }
}
@@ -205,7 +205,7 @@
      if (col.linkThdMenu || col.linkurl) {
        content = (
          <div>
            <div className="link-menu" onDoubleClick={() => this.triggerLink(col, record)}></div>
            <div className="link-menu" onDoubleClick={(e) => this.triggerLink(e, col, record)}></div>
            {content}
          </div>
        )
@@ -251,7 +251,7 @@
      if (col.linkThdMenu || col.linkurl) {
        content = (
          <div>
            <div className="link-menu" onDoubleClick={() => this.triggerLink(col, record)}></div>
            <div className="link-menu" onDoubleClick={(e) => this.triggerLink(e, col, record)}></div>
            {content}
          </div>
        )
@@ -344,7 +344,13 @@
          {content && _href ? <a href={_href} target="_blank" rel="noopener noreferrer">{content}</a> : null }
        </div>
      )
    } else if (col.type === 'custom' || col.type === 'action') {
    } else if (col.type === 'custom') {
      style.padding = '0px'
      resProps.children = (
        <CardCellComponent data={record} cards={config} elements={col.elements} updateStatus={this.props.updateStatus}/>
      )
    } else if (col.type === 'action') {
      style.padding = '0px 5px'
      resProps.children = (
        <CardCellComponent data={record} cards={config} elements={col.elements} updateStatus={this.props.updateStatus}/>
      )
@@ -385,9 +391,7 @@
  }
  UNSAFE_componentWillMount () {
    const { menuType, memberLevel, setting, fields } = this.props
    let columns = fromJS(this.props.columns).toJS()
    let _columns = []
    const { menuType, memberLevel, setting, fields, columns } = this.props
    let radio = 5          // 虚化比例
    let _format = false    // 是否虚化处理
    let rowspans = []
@@ -402,70 +406,46 @@
      }
    }
    columns.forEach(item => {
      if (item.hidden === true || item.Hide === 'true') return
      let cell = null
      if (item.type === 'colspan') {
        cell = {title: item.label, children: []}
        item.subcols.forEach(col => {
          if (col.rowspan === 'true') {
            rowspans.push(col.field)
    let getColumns = (cols) => {
      return cols.map(item => {
        let cell = null
        if (item.type === 'colspan') {
          cell = { title: item.label, align: item.Align }
          cell.children = getColumns(item.subcols)
        } else {
          if (item.rowspan === 'true') {
            rowspans.push(item.field)
          }
          if (_format && !Math.floor(Math.random() * radio)) {
            col.blur = true
            item.blur = true
          }
          if (col.marks && col.marks.length === 0) {
            col.marks = ''
          if (item.marks && item.marks.length === 0) {
            item.marks = ''
          }
          cell.children.push({
            align: col.Align,
            title: col.label,
            dataIndex: col.field || col.uuid,
            key: col.uuid,
            width: col.Width || 120,
          cell = {
            align: item.Align,
            dataIndex: item.uuid,
            title: item.label,
            sorter: item.field && item.IsSort === 'true',
            width: item.Width || 120,
            onCell: record => ({
              record,
              col,
              config: col.type === 'custom' ? {setting, columns: fields} : null,
              col: item,
              config: item.type === 'custom' || item.type === 'action' ? {setting, columns: fields} : null,
              triggerLink: this.triggerLink,
              updateStatus: this.updateStatus
            })
          })
        })
      } else {
        if (item.rowspan === 'true') {
          rowspans.push(item.field)
          }
        }
        if (_format && !Math.floor(Math.random() * radio)) {
          item.blur = true
        }
        return cell
      })
    }
        if (item.marks && item.marks.length === 0) {
          item.marks = ''
        }
        cell = {
          align: item.Align,
          dataIndex: item.field || item.uuid,
          title: item.label,
          sorter: item.field && item.IsSort === 'true',
          width: item.Width || 120,
          onCell: record => ({
            record,
            col: item,
            config: item.type === 'custom' || item.type === 'action' ? {setting, columns: fields} : null,
            triggerLink: this.triggerLink,
            updateStatus: this.updateStatus
          })
        }
      }
      _columns.push(cell)
    })
    let _columns = getColumns(columns)
    if (rowspans.length === 0) {
      rowspans = null
@@ -502,8 +482,9 @@
  }
  // 字段透视
  triggerLink = (item, record) => {
  triggerLink = (e, item, record) => {
    const { tabviews, MenuID } = this.props
    e.stopPropagation()
    if (item.linkThdMenu) {
      let tabmenu = item.linkThdMenu
@@ -730,6 +711,14 @@
    })
  }
  doubleClickLine = (record) => {
    const { setting } = this.props
    if (!setting.doubleClick) return
    MKEmitter.emit('triggerBtnId', setting.doubleClick, [record])
  }
  render() {
    const { setting, statFValue, lineMarks, data } = this.props
    const { selectedRowKeys, activeIndex, pickup } = this.state
@@ -797,7 +786,8 @@
              lineMarks,
              data: record,
              className: index === activeIndex ? ' mk-row-active ' : '',
              onClick: () => {this.changeRow(record, index)}
              onClick: () => {this.changeRow(record, index)},
              onDoubleClick: () => {this.doubleClickLine(record)}
            }
          }}
          onChange={this.changeTable}