king
2023-06-14 08cce3334a2dc81d690b518136b0aaea64e48b0b
src/menu/components/card/cardcomponent/index.jsx
@@ -12,6 +12,8 @@
import MKEmitter from '@/utils/events.js'
import './index.scss'
const { confirm } = Modal
const NormalForm = asyncIconComponent(() => import('@/components/normalform'))
const CardCellComponent = asyncComponent(() => import('@/menu/components/card/cardcellcomponent'))
const CopyComponent = asyncIconComponent(() => import('@/menu/components/share/copycomponent'))
@@ -119,6 +121,7 @@
  }
  
  addElement = () => {
    const { cards } = this.props
    const { card } = this.state
    let newcard = {}
@@ -128,6 +131,12 @@
    newcard.eleType = 'text'
    newcard.datatype = 'dynamic'
    newcard.height = 1
    if (card.$cardType === 'extendCard' && card.setting.cardRole === 'header') {
      newcard.datatype = 'static'
    } else if (cards.subtype === 'propcard' && cards.wrap.datatype === 'static') {
      newcard.datatype = 'static'
    }
    // 注册事件-添加元素
    MKEmitter.emit('cardAddElement', card.uuid, newcard)
@@ -188,6 +197,39 @@
  updateSetting = (res) => {
    const { card, side, appType } = this.state
    if (card.$cardType === 'extendCard' && res.cardRole === 'header') {
      let _card = {...card, setting: res}
      let originLength = _card.elements.length
      _card.elements = _card.elements.filter(item => item.eleType === 'text')
      _card.backElements = []
      delete _card.menus
      if (_card.elements.length < originLength) {
        const that = this
        confirm({
          title: '表格头仅支持文本,确定要切换卡片角色吗?',
          content: '',
          okText: '确定',
          cancelText: '取消',
          onOk() {
            that.setState({ card: _card, side: '', elements: fromJS(_card.elements).toJS() }, () => {
              that.setState({ side: 'front' })
            })
            that.props.updateElement(_card)
          },
          onCancel() {}
        })
      } else {
        this.setState({ card: _card, side: 'front' })
        this.props.updateElement(_card)
      }
      return
    }
    if (appType === '' && res.menu) {
      let list = null
      try {
@@ -237,8 +279,14 @@
    let _uuid = Utils.getuuid()
    
    if (card.$cardType === 'extendCard' && card.setting.cardRole === 'header' && element.eleType !== 'text') {
      resolve({status: false, message: '表格头仅支持文本元素!'})
      return
    }
    if (element.copyType === 'action') {
      element.eleType = 'button'
      element.width = element.width || 12
    }
    element.uuid = _uuid
@@ -325,16 +373,21 @@
      }
    }
    let tablerole = ''
    if (card.$cardType === 'extendCard' && card.setting.cardRole === 'header') {
      tablerole = ' mk-table-header'
    }
    return (
      <Col span={card.setting.width || 6}>
        <div className={'card-item ' + (card.setting.btnControl || '') + checkAll} style={_style} onDoubleClick={(e) => {e.stopPropagation(); this.doubleClickCard()}} id={card.uuid}>
        <div className={'card-item ' + (card.setting.btnControl || '') + checkAll + tablerole} style={_style} onDoubleClick={(e) => {e.stopPropagation(); this.doubleClickCard()}} id={card.uuid}>
          <span className="circle-select"></span>
          <CardCellComponent cards={cards} cardCell={card} side={side} elements={elements} updateElement={this.updateCard}/>
          <div className="card-control" onDoubleClick={(e) => e.stopPropagation()}>
            <Popover overlayClassName="mk-popover-control-wrap" mouseLeaveDelay={0.2} mouseEnterDelay={0.2} content={
              <div className="mk-popover-control">
                <PlusOutlined className="plus" title="添加元素" onClick={this.addElement} />
                <PlusSquareOutlined className="plus" title="添加按钮" onClick={this.addButton} />
                {!tablerole ? <PlusSquareOutlined className="plus" title="添加按钮" onClick={this.addButton} /> : null}
                <NormalForm title={cards.subtype === 'datacard' && card.$cardType !== 'extendCard' ? '循环卡片设置' : '属性卡片设置'} width={950} update={this.updateSetting} getForms={this.getSettingForms}>
                  <EditOutlined className="edit" title="编辑"/>
                </NormalForm>