king
2025-05-13 609477f87ab12645b26793467f8edea8b398507e
src/tabviews/custom/components/module/voucher/voucherTable/index.jsx
@@ -237,9 +237,9 @@
    setTimeout(() => {
      if (col.field === 'debit' && (line.debit || line.debit === 0)) {
        MKEmitter.emit('nextLine', col, record)
        MKEmitter.emit('nextVoucher', col, record)
      } else if (col.field === 'credit') {
        MKEmitter.emit('nextLine', col, record)
        MKEmitter.emit('nextVoucher', col, record)
      } else {
        let cl = {subject_voucher_text: 'subject_code', subject_code: 'debit', debit: 'credit'}
        MKEmitter.emit('tdFocus', cl[col.uuid] + record.uuid)
@@ -327,10 +327,10 @@
    MKEmitter.emit('plusLine', col.tableId, record)
  }
  delRecord = () => {
  delVoucher = () => {
    const { col, record } = this.props
    MKEmitter.emit('delRecord', col.tableId, record)
    MKEmitter.emit('delVoucher', col.tableId, record)
  }
  onSelectBlur = () => {
@@ -712,11 +712,13 @@
      if (record.type === 'total') {
        children = <div className="content-wrap" style={{lineHeight: '60px'}}>合计: {val}</div>
        colSpan = 2
      } else {
      } else if (record.$disabled) {
        children = <div className="content-wrap">{val}</div>
      } else  {
        extra = <PlusOutlined onClick={this.plusLine}/>
        if (editing) {
          let options = localStorage.getItem(window.GLOB.host + '_voucher_extract')
          let options = localStorage.getItem(window.GLOB.sysSign + '_voucher_extract')
          options = options ? JSON.parse(options) : []
          children = <AutoComplete
@@ -817,6 +819,17 @@
                  <span><InputNumber precision={4} className="inner-input" id={col.uuid + record.uuid + 'price'} defaultValue={record.net_unitprice || 0} onChange={(val) => this.onChange(val)} onPressEnter={this.pricePress} onBlur={this.priceBlur}/></span>
                </span>
              </div>
            } else if (record.$disabled) {
              countNode = <div className="count-wrap">
                <span style={{marginRight: '5px'}}>
                  <span>数量:</span>
                  <span>{record.fcc_count || 0}</span>
                </span>
                <span>
                  <span>单价:</span>
                  <span>{record.net_unitprice || 0}</span>
                </span>
              </div>
            } else {
              countNode = <div className="count-wrap">
                <span style={{marginRight: '5px'}} onClick={this.editCount}>
@@ -891,6 +904,21 @@
                  <span><InputNumber precision={2} className="inner-input" id={col.uuid + record.uuid + 'origin'} defaultValue={record.foreign_amount || 0} onChange={(val) => this.onChange(val)} onPressEnter={this.originPress} onBlur={this.originBlur}/></span>
                </span>
              </div>
            } else if (record.$disabled) {
              currencyNode = <div className="count-wrap">
                <span style={{marginRight: '5px'}}>
                  <span>货币:</span>
                  <span>{record.exratename || ''}</span>
                </span>
                <span style={{marginRight: '5px'}}>
                  <span>汇率:</span>
                  <span>{record.unitratio || 1}</span>
                </span>
                <span>
                  <span>原币:</span>
                  <span>{record.foreign_amount || 0}</span>
                </span>
              </div>
            } else {
              currencyNode = <div className="count-wrap">
                <span style={{marginRight: '5px'}} onClick={this.editCurrency}>
@@ -909,11 +937,19 @@
            }
          }
          children = <div className="content-wrap" onClick={this.focus}>
            {val}
            {countNode}
            {currencyNode}
          </div>
          if (record.$disabled) {
            children = <div className="content-wrap">
              {val}
              {countNode}
              {currencyNode}
            </div>
          } else {
            children = <div className="content-wrap" onClick={this.focus}>
              {val}
              {countNode}
              {currencyNode}
            </div>
          }
        }
      }
    } else if (col.field === 'debit') {
@@ -930,13 +966,23 @@
          }
          vals = (val * 100).toFixed(0).split('').reverse()
        }
        children = <div className={'money-uint' + (down ? ' down' : '')} onClick={this.focus}>
          <span>{vals[10] || ''}</span> <span>{vals[9] || ''}</span> <span>{vals[8] || ''}</span> <span>{vals[7] || ''}</span> <span>{vals[6] || ''}</span> <span>{vals[5] || ''}</span>
          <span>{vals[4] || ''}</span> <span>{vals[3] || ''}</span> <span>{vals[2] || ''}</span> <span>{vals[1] || ''}</span> <span className="last">{vals[0] || ''}</span>
        </div>
        if (record.$disabled) {
          children = <div className={'money-uint' + (down ? ' down' : '')}>
            <span>{vals[10] || ''}</span> <span>{vals[9] || ''}</span> <span>{vals[8] || ''}</span> <span>{vals[7] || ''}</span> <span>{vals[6] || ''}</span> <span>{vals[5] || ''}</span>
            <span>{vals[4] || ''}</span> <span>{vals[3] || ''}</span> <span>{vals[2] || ''}</span> <span>{vals[1] || ''}</span> <span className="last">{vals[0] || ''}</span>
          </div>
        } else {
          children = <div className={'money-uint' + (down ? ' down' : '')} onClick={this.focus}>
            <span>{vals[10] || ''}</span> <span>{vals[9] || ''}</span> <span>{vals[8] || ''}</span> <span>{vals[7] || ''}</span> <span>{vals[6] || ''}</span> <span>{vals[5] || ''}</span>
            <span>{vals[4] || ''}</span> <span>{vals[3] || ''}</span> <span>{vals[2] || ''}</span> <span>{vals[1] || ''}</span> <span className="last">{vals[0] || ''}</span>
          </div>
        }
      }
    } else if (col.field === 'credit') {
      extra = <CloseOutlined onClick={this.delRecord}/>
      if (record.type !== 'total' && !record.$disabled) {
        extra = <CloseOutlined onClick={this.delVoucher}/>
      }
      if (editing) {
        children = <InputNumber id={col.uuid + record.uuid} precision={2} defaultValue={record.credit} onChange={(val) => this.onChange(val)} onPressEnter={this.enterPress} onBlur={this.onBlur}/>
@@ -951,10 +997,18 @@
          }
          vals = (val * 100).toFixed(0).split('').reverse()
        }
        children = <div className={'money-uint' + (down ? ' down' : '')} onClick={this.focus}>
        <span>{vals[10] || ''}</span> <span>{vals[9] || ''}</span> <span>{vals[8] || ''}</span> <span>{vals[7] || ''}</span> <span>{vals[6] || ''}</span> <span>{vals[5] || ''}</span>
        <span>{vals[4] || ''}</span> <span>{vals[3] || ''}</span> <span>{vals[2] || ''}</span> <span>{vals[1] || ''}</span> <span className="last">{vals[0] || ''}</span>
      </div>
        if (record.$disabled) {
          children = <div className={'money-uint' + (down ? ' down' : '')}>
            <span>{vals[10] || ''}</span> <span>{vals[9] || ''}</span> <span>{vals[8] || ''}</span> <span>{vals[7] || ''}</span> <span>{vals[6] || ''}</span> <span>{vals[5] || ''}</span>
            <span>{vals[4] || ''}</span> <span>{vals[3] || ''}</span> <span>{vals[2] || ''}</span> <span>{vals[1] || ''}</span> <span className="last">{vals[0] || ''}</span>
          </div>
        } else {
          children = <div className={'money-uint' + (down ? ' down' : '')} onClick={this.focus}>
            <span>{vals[10] || ''}</span> <span>{vals[9] || ''}</span> <span>{vals[8] || ''}</span> <span>{vals[7] || ''}</span> <span>{vals[6] || ''}</span> <span>{vals[5] || ''}</span>
            <span>{vals[4] || ''}</span> <span>{vals[3] || ''}</span> <span>{vals[2] || ''}</span> <span>{vals[1] || ''}</span> <span className="last">{vals[0] || ''}</span>
          </div>
        }
      }
    }
@@ -966,17 +1020,17 @@
class VoucherTable extends Component {
  static propTpyes = {
    config: PropTypes.object,        // 菜单Id
    data: PropTypes.any,             // 表格数据
    loading: PropTypes.bool,         // 表格加载中
    onChange: PropTypes.func,        // 表格变动
    config: PropTypes.object,
    data: PropTypes.any,
    loading: PropTypes.bool,
    onChange: PropTypes.func
  }
  state = {
    data: [],
    edData: [],
    tableId: '',          // 表格ID
    columns: null,        // 显示列
    tableId: '',
    columns: null,
  }
  UNSAFE_componentWillMount () {
@@ -1049,10 +1103,10 @@
  }
  componentDidMount () {
    MKEmitter.addListener('nextLine', this.nextLine)
    MKEmitter.addListener('plusLine', this.plusLine)
    MKEmitter.addListener('delRecord', this.delRecord)
    MKEmitter.addListener('delVoucher', this.delVoucher)
    MKEmitter.addListener('cleartable', this.cleartable)
    MKEmitter.addListener('nextVoucher', this.nextVoucher)
    MKEmitter.addListener('changeRecord', this.changeRecord)
  }
@@ -1063,10 +1117,10 @@
    this.setState = () => {
      return
    }
    MKEmitter.removeListener('nextLine', this.nextLine)
    MKEmitter.removeListener('plusLine', this.plusLine)
    MKEmitter.removeListener('delRecord', this.delRecord)
    MKEmitter.removeListener('delVoucher', this.delVoucher)
    MKEmitter.removeListener('cleartable', this.cleartable)
    MKEmitter.removeListener('nextVoucher', this.nextVoucher)
    MKEmitter.removeListener('changeRecord', this.changeRecord)
  }
@@ -1105,9 +1159,11 @@
      return item
    })
    let disabled = _data[0] && _data[0].$disabled ? true : false
    if (_data.length < 4) {
      for (let i = _data.length - 1; i < 4; i++) {
        _data.push({uuid: Utils.getguid(), index: i + 1, subject_voucher_text: '', subject_code: '', subject_name: '', debit: '', credit: ''})
        _data.push({uuid: Utils.getguid(), $disabled: disabled, index: i + 1, subject_voucher_text: '', subject_code: '', subject_name: '', debit: '', credit: ''})
      }
    }
    return _data
@@ -1136,10 +1192,23 @@
      }
    })
    let _total = debit
    if (debit === 0) {
      debit = ''
    }
    if (_total === '' && credit !== '') {
      _total = 0
    }
    if (credit === 0) {
      credit = ''
    }
    totalLine.debit = debit
    totalLine.credit = credit
    totalLine.subject_voucher_text = this.changeMoneyToChinese(debit)
    totalLine.subject_voucher_text = this.changeMoneyToChinese(_total)
    
    return totalLine
  }
@@ -1227,7 +1296,7 @@
    return ChineseStr
  }
  nextLine = (col, record) => {
  nextVoucher = (col, record) => {
    const { edData, tableId } = this.state
    if (col.tableId !== tableId) return
@@ -1265,7 +1334,7 @@
    this.props.onChange(_data)
  }
  delRecord = (id, record) => {
  delVoucher = (id, record) => {
    const { tableId, edData } = this.state
    if (id !== tableId) return