king
2024-03-03 67036fb0ed31d77ca33b660ce5f9f47c29ae65c0
src/tabviews/custom/components/share/normalTable/index.jsx
@@ -110,7 +110,7 @@
    let { col, config, record, className, style, triggerLink, ...resProps } = this.props
    if (!col) return (<td {...resProps} className={className} style={style}/>)
    if (col.type === 'text') {
      let content = ''
      if (record[col.field] !== undefined) {
@@ -124,6 +124,10 @@
          content = `${content.substr(0, 4)}-${content.substr(5, 2)}-${content.substr(8, 2)} ${content.substr(11, 2)}:${content.substr(14, 2)}:${content.substr(17, 2)}`
        } else if (col.textFormat === 'encryption') {
          content = <span>{col.prefix || ''}<Encrypts value={content} />{col.postfix || ''}</span>
        }
        if (col.noValue === 'hide' && content < '1949-10-02') {
          content = ''
        }
        if (col.textFormat !== 'encryption') {
@@ -162,21 +166,22 @@
        resProps.rowSpan = record['$$' + col.field]
      }
      
      if (!record.$disabled && (col.linkThdMenu || col.linkurl)) {
        content = (
          <div>
            <div className="link-menu" onDoubleClick={(e) => triggerLink(e, col, record)}></div>
            {content}
          </div>
        )
      }
      resProps.children = content
      if (!record.$disabled && (col.linkThdMenu || col.linkurl)) {
        style = style || {}
        style.cursor = 'pointer'
        return (<td {...resProps} className={className} onDoubleClick={() => triggerLink(col, record)} style={style}/>)
      }
    } else if (col.type === 'number') {
      let content = ''
      try {
        content = parseFloat(record[col.field])
        if (isNaN(content)) {
          content = ''
        }
        if (col.noValue === 'hide' && content === 0) {
          content = ''
        }
      } catch (e) {
@@ -235,16 +240,14 @@
        resProps.rowSpan = record['$$' + col.field]
      }
      if (!record.$disabled && (col.linkThdMenu || col.linkurl)) {
        content = (
          <div>
            <div className="link-menu" onDoubleClick={(e) => triggerLink(e, col, record)}></div>
            {content}
          </div>
        )
      }
      resProps.children = content
      if (!record.$disabled && (col.linkThdMenu || col.linkurl)) {
        style = style || {}
        style.cursor = 'pointer'
        return (<td {...resProps} className={className} onDoubleClick={() => triggerLink(col, record)} style={style}/>)
      }
    } else if (col.type === 'picture') {
      let photos = ''
      if (record[col.field]) {
@@ -268,7 +271,7 @@
        <div>
          {photos.map((url, i) => (
            <Col key={i} span={col.span || 24}>
              <MkPicture style={{paddingTop, backgroundSize: col.backgroundSize || 'cover'}} scale={scale} url={url} urls={photos}/>
              <MkPicture lostTip={col.lostTip !== 'false'} style={{paddingTop, backgroundSize: col.backgroundSize || 'cover'}} scale={scale} url={url} urls={photos}/>
            </Col>
          ))}
        </div>
@@ -352,6 +355,10 @@
          // eslint-disable-next-line
          let func = new Function('data', col.formula)
          content = func([record])
          if (col.noValue === 'hide' && content === 0) {
            content = ''
          }
        } catch (e) {
          console.warn(e)
          content = ''
@@ -365,6 +372,10 @@
          try {
            // eslint-disable-next-line
            content = eval(content)
            if (col.noValue === 'hide' && content === 0) {
              content = ''
            }
          } catch (e) {
            console.info(content)
            console.warn(e)
@@ -499,10 +510,6 @@
            } else if (_format && !Math.floor(Math.random() * radio)) {
              item.blur = true
            }
            if (item.marks && item.marks.length === 0) {
              item.marks = ''
            }
  
            if (item.field) {
              orderfields[item.uuid] = item.field
@@ -570,6 +577,10 @@
      pageOptions = pageOptions.sort((a, b) => a - b)
    }
    if (setting.maxPageSize) {
      pageOptions = pageOptions.filter(item => item <= setting.maxPageSize)
    }
    let allColumns = null
    if (colsCtrls) {
      rowspans = null
@@ -585,12 +596,6 @@
      rowspans,
      tableId,
      orderfields
    }, () => {
      const element = document.getElementById(tableId)
      element && element.style.setProperty('--mk-table-border-color', setting.borderColor || '#e8e8e8')
      element && element.style.setProperty('--mk-table-color', setting.color || 'rgba(0, 0, 0, 0.65)')
      element && element.style.setProperty('--mk-table-font-size', setting.fontSize || '14px')
      element && element.style.setProperty('--mk-table-font-weight', setting.fontWeight || 'normal')
    })
  }
@@ -657,6 +662,9 @@
        result = originVal === contrastVal
      } else if (item.match === '!=') {
        result = originVal !== contrastVal
      } else if (item.match === 'regexp') {
        let reg = new RegExp(item.contrastValue, 'ig')
        result = reg.test(originVal)
      } else {
        originVal = isNaN(originVal) ? originVal : +originVal
        contrastVal = isNaN(contrastVal) ? contrastVal : +contrastVal
@@ -798,9 +806,7 @@
  }
  // 字段透视
  triggerLink = (e, item, record) => {
    e.stopPropagation()
  triggerLink = (item, record) => {
    let __param = {
      $searchkey: item.field,
      $searchval: record[item.field] || '',
@@ -843,6 +849,8 @@
  onSelectChange = (selectedRowKeys, e) => {
    const { setting, MenuID, data } = this.props
    if (this.state.pickup) return
    let index = ''
    let _activeIndex = null
@@ -1073,7 +1081,7 @@
  render() {
    const { setting, statFValue, lineMarks, data } = this.props
    const { selectedRowKeys, activeIndex, pickup, tableId, pageOptions, columns, reseting } = this.state
    const { selectedRowKeys, activeIndex, pickup, pageOptions, columns, reseting } = this.state
    if (reseting) return null
@@ -1143,8 +1151,15 @@
      }
    }
    let style = {
      '--mk-table-border-color': setting.borderColor || '#e8e8e8',
      '--mk-table-color': setting.color || 'rgba(0, 0, 0, 0.65)',
      '--mk-table-font-size': setting.fontSize || '14px',
      '--mk-table-font-weight': setting.fontWeight || 'normal'
    }
    return (
      <div className={`normal-custom-table ${setting.tableHeader || ''} ${height ? 'fixed-height' : ''} ${setting.mode || ''} table-vertical-${setting.vertical || 'middle'} table-col-${columns.length} ${fixed}`} id={tableId}>
      <div className={`normal-custom-table ${setting.tableHeader || ''} ${height ? 'fixed-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
        }