king
2022-07-22 0c439ced2c97905cb2b02f5f689a37b19369fb8a
src/tabviews/zshare/actionList/printbutton/index.jsx
@@ -1,7 +1,6 @@
import React, {Component} from 'react'
import PropTypes from 'prop-types'
import moment from 'moment'
import {connect} from 'react-redux'
import { is, fromJS } from 'immutable'
import { Button, Modal, notification, message } from 'antd'
@@ -240,38 +239,77 @@
  triggerPrint = (data, formlist = []) => {
    const { btn } = this.props
    let formdata = {}
    let baseCount = 1
    let baseType = ''
    let baseTemp = btn.verify.Template || ''
    
    formlist.forEach(_data => {
      formdata[_data.key] = _data.value
      if (!_data.value) return
      if (_data.key.toLowerCase() === 'printcount') {
        baseCount = +_data.value
      } else if (_data.key.toLowerCase() === 'printtype') {
        baseType = _data.value
      } else if (_data.key.toLowerCase() === 'templateid') {
        baseTemp = _data.value
      }
    })
    let printlist = []
    let templates = []
    let printCount = +(formdata.printCount || formdata.PrintCount || formdata.printcount || formdata.Printcount || 1)
    if (isNaN(printCount) || printCount < 1) {
      printCount = 1
    if (isNaN(baseCount) || baseCount < 1) {
      baseCount = 1
    }
    new Promise(resolve => {
      if (btn.intertype === 'system') { // 使用系统时,直接从表格或表单中选取数据
        let printcell = {}
        printcell.printType = formdata.printType || formdata.PrintType || formdata.printtype || formdata.Printtype || ''
        printcell.printCount = printCount
        printcell.templateID = btn.verify.Template || ''
        if (btn.Ot === 'notRequired') {
          let printcell = {}
          printcell.printType = baseType
          printcell.printCount = baseCount
          printcell.templateID = baseTemp
          printcell.data = [formdata]
          templates.push(printcell.templateID)
          printlist.push(printcell)
        } else {
          printcell.data = data.map(cell => {
            return {...cell, ...formdata}
          data.forEach(cell => {
            let _cell = {...cell, ...formdata}
            let printcell = {data: [_cell]}
            printcell.templateID = baseTemp
            printcell.printType = baseType
            printcell.printCount = 0
            Object.keys(_cell).forEach(key => {
              if (!_cell[key]) return
              let _key = key.toLowerCase()
              if (_key === 'templateid') {
                printcell.templateID = _cell[key]
              } else if (_key === 'printtype') {
                printcell.printType = _cell[key]
              } else if (_key === 'printcount') {
                printcell.printCount = +_cell[key]
              }
            })
            if (isNaN(printcell.printCount) || printcell.printCount < 1) {
              printcell.printCount = baseCount
            }
            templates.push(printcell.templateID)
            printlist.push(printcell)
          })
        }
        templates.push(printcell.templateID)
        printlist.push(printcell)
        resolve(true)
      } else {
@@ -281,16 +319,31 @@
              // 系统打印数据,校验data字段
              if (btn.verify.printMode !== 'custom' && (!cell.data || cell.data.length === 0)) return
              cell.templateID = cell.templateID || cell.TemplateID || cell.Templateid || cell.templateid || btn.verify.Template
              cell.printType = cell.printType || cell.PrintType || cell.printtype || cell.Printtype || formdata.printType || formdata.PrintType || formdata.printtype || formdata.Printtype || ''
              let templateID = baseTemp
              let printType = baseType
              let printCount = 0
              let _printCount = +(cell.printCount || cell.PrintCount || cell.printcount || cell.Printcount || 0)
              Object.keys(cell).forEach(key => {
                if (!cell[key]) return
              if (isNaN(_printCount) || _printCount < 1) {
                _printCount = printCount
                let _key = key.toLowerCase()
                if (_key === 'templateid') {
                  templateID = cell[key]
                } else if (_key === 'printtype') {
                  printType = cell[key]
                } else if (_key === 'printcount') {
                  printCount = +cell[key]
                }
              })
              cell.templateID = templateID
              cell.printType = printType
              cell.printCount = printCount
              if (isNaN(cell.printCount) || cell.printCount < 1) {
                cell.printCount = baseCount
              }
              cell.printCount = _printCount
              templates.push(cell.templateID)
@@ -762,7 +815,7 @@
      // 外部请求
      _outParam = JSON.parse(JSON.stringify(res))
      if (this.props.menuType === 'HS') {
      if (window.GLOB.mkHS) {
        if (btn.sysInterface === 'true' && options.cloudServiceApi) {
          res.rduri = options.cloudServiceApi
        } else if (btn.sysInterface !== 'true') {
@@ -877,7 +930,8 @@
      if (!configParam) {
        error = '打印模板解析错误!'
      } else {
        let control = configParam.elements.map(element => {
        let control = []
        configParam.elements.forEach(element => {
          let _field = element.field
          if (_field === 'other_field') {
@@ -913,11 +967,12 @@
            item.Trimming = ''
            if (!item.Width) {
              item.Width = item.BorderSize
              item.Left = item.Left - item.Width
              item.Left = item.Left - item.Width + 0.1
            } else if (!item.Height) {
              item.Height = item.BorderSize
              item.Top = item.Top - item.Height
              item.Top = item.Top - item.Height + 0.1
            }
            item.BackColor = element.borderColor
            item.BorderSize = 0
          } else if (item.Type === 'image') {
            item.ImageWidth = element.imgWidth
@@ -957,7 +1012,7 @@
            }
          }
          return item
          control.push(item)
        })
        _configparam = {
@@ -1585,7 +1640,6 @@
        <MutilForm
          BID={BID}
          dict={this.state.dict}
          menuType={this.props.menuType}
          action={btnconfig}
          inputSubmit={this.handleOk}
          data={this.state.selines[0]}
@@ -1626,7 +1680,7 @@
      className = 'mk-btn mk-' + btn.class
    }
    return <div style={{display: 'inline-block'}} onClick={(e) => e.stopPropagation()}>
    return <>
      <Button
        type={type}
        title={disabled ? (btn.reason || '') : (btn.show === 'icon' ? btn.label : '')}
@@ -1635,21 +1689,11 @@
        style={btn.style || null}
        icon={icon}
        className={className}
        onClick={() => {this.actionTrigger()}}
        onClick={(e) => {e.stopPropagation(); this.actionTrigger()}}
      >{label}</Button>
      {this.getModels()}
    </div>
    </>
  }
}
const mapStateToProps = (state) => {
  return {
    menuType: state.editLevel
  }
}
const mapDispatchToProps = () => {
  return {}
}
export default connect(mapStateToProps, mapDispatchToProps)(PrintButton)
export default PrintButton