king
2025-04-21 f3d4db769ba9b51b799d981511a710fd443d0e08
src/menu/components/module/voucher/index.jsx
@@ -1,18 +1,17 @@
import React, {Component} from 'react'
import PropTypes from 'prop-types'
import { is, fromJS } from 'immutable'
import { Popover } from 'antd'
import { EditOutlined, ToolOutlined, DeleteOutlined, FontColorsOutlined } from '@ant-design/icons'
import { Popover, Button } from 'antd'
import { EditOutlined, ToolOutlined, DeleteOutlined, FontColorsOutlined, DownOutlined, CalendarOutlined } from '@ant-design/icons'
// import asyncComponent from '@/utils/asyncComponent'
import asyncIconComponent from '@/utils/asyncIconComponent'
import MKEmitter from '@/utils/events.js'
import getWrapForm from './options'
import VoucherTable from './voucherTable'
import './index.scss'
const NormalForm = asyncIconComponent(() => import('@/components/normalform'))
// const NormalHeader = asyncComponent(() => import('@/menu/components/share/normalheader'))
class Voucher extends Component {
  static propTpyes = {
@@ -33,9 +32,6 @@
      let _card = {
        uuid: card.uuid,
        type: card.type,
        tabId: card.tabId || '',
        parentId: card.parentId || '',
        dataName: card.dataName || '',
        format: 'array',    // 组件属性 - 数据格式
        pageable: false,    // 组件属性 - 是否可分页
        switchable: false,  // 组件属性 - 数据是否可切换
@@ -43,8 +39,8 @@
        name: '凭证',
        subtype: card.subtype,
        // setting: { interType: 'system' },
        wrap: { name: '凭证', title: '', width: card.width || 12, type: 'edit' },
        style: { marginLeft: '8px', marginRight: '8px', marginTop: '8px', marginBottom: '8px' },
        wrap: { name: '凭证', title: '', width: card.width || 12, type: 'createVoucher', space: 30 },
        style: { marginLeft: '8px', marginRight: '8px', marginTop: '8px', marginBottom: '8px', paddingBottom: '20px' },
        headerStyle: {},
        columns: [],
        scripts: [],
@@ -58,10 +54,6 @@
    }
  }
  componentDidMount () {
    MKEmitter.addListener('submitStyle', this.getStyle)
  }
  shouldComponentUpdate (nextProps, nextState) {
    return !is(fromJS(this.state), fromJS(nextState))
  }
@@ -73,7 +65,6 @@
    this.setState = () => {
      return
    }
    MKEmitter.removeListener('submitStyle', this.getStyle)
  }
  /**
@@ -93,15 +84,11 @@
  changeStyle = () => {
    const { card } = this.state
    MKEmitter.emit('changeStyle', [card.uuid], ['background', 'border', 'padding', 'margin', 'shadow'], card.style)
    MKEmitter.emit('changeStyle', ['background', 'border', 'padding', 'margin', 'shadow', 'clear', 'minHeight'], card.style, this.getStyle)
  }
  getStyle = (comIds, style) => {
    const { card } = this.state
    if (comIds[0] !== card.uuid || comIds.length !== 1) return
    let _card = {...card, style}
  getStyle = (style) => {
    let _card = {...this.state.card, style}
    
    this.updateComponent(_card)
  }
@@ -114,7 +101,6 @@
  updateWrap = (res) => {
    let _card = {...this.state.card, wrap: res}
    _card.switchable = res.type !== 'edit'
    this.updateComponent(_card)
  }
@@ -124,7 +110,6 @@
    return (
      <div className="menu-voucher-box" style={card.style} id={card.uuid}>
        {/* <NormalHeader config={card} updateComponent={this.updateComponent}/> */}
        <Popover overlayClassName="mk-popover-control-wrap" mouseLeaveDelay={0.2} mouseEnterDelay={0.2} content={
          <div className="mk-popover-control">
            <NormalForm title="基本设置" width={800} update={this.updateWrap} getForms={this.getWrapForms}>
@@ -137,7 +122,49 @@
          <ToolOutlined />
        </Popover>
        <div className="voucher-box">
          jjj
          {card.wrap.type === 'createVoucher' ? <div className="voucher-header" style={{padding: `10px ${card.wrap.space || 0}px`}}>
            <Button>保存并新增</Button>
            <Button>保存</Button>
            <Button>打印</Button>
            <Button>更多</Button>
          </div> : null}
          {card.wrap.type === 'checkVoucher' ? <div className="voucher-header" style={{padding: `10px ${card.wrap.space || 0}px`}}>
            <Button>保存</Button>
            <Button>打印</Button>
            <Button>审核</Button>
            <Button>关闭</Button>
          </div> : null}
          <div className="voucher-body" style={{padding: `0px ${card.wrap.space || 0}px`}}>
            {card.wrap.type === 'createVoucher' || card.wrap.type === 'checkVoucher' ? <div className="pre-wrap">
              <div className="voucher-code">
                <div>记<DownOutlined/></div>
                <div>1</div>
                号
              </div>
              <div className="voucher-date">
                日期:<div>请选择日期 <CalendarOutlined /></div>
              </div>
              <div className="voucher-affix">
                附单据 <div>2</div> 张
                <Button type="link" className="">附件</Button>
                <Button type="link" className="">备注</Button>
              </div>
            </div> : null}
            {card.wrap.type === 'createTemp' || card.wrap.type === 'checkTemp' ? <div className="pre-wrap">
              <div className="temp-code">
                模板名称:
                <div>&nbsp;</div>
              </div>
              <div className="temp-code">
                模板类型:
                <div>日常支出<DownOutlined/></div>
              </div>
              <Button>关闭</Button>
              <Button>保存</Button>
            </div> : null}
            <VoucherTable config={card}/>
            {card.wrap.type === 'createVoucher' || card.wrap.type === 'checkVoucher' ? <div className="user">制单人:</div> : null}
          </div>
        </div>
      </div>
    )