king
2023-04-07 20185ab64a165df51515d9fa1c9b12a7a8c55f59
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'))
@@ -129,6 +131,10 @@
    newcard.datatype = 'dynamic'
    newcard.height = 1
    if (card.$cardType === 'extendCard' && card.setting.cardRole === 'header') {
      newcard.datatype = 'static'
    }
    // 注册事件-添加元素
    MKEmitter.emit('cardAddElement', card.uuid, newcard)
  }
@@ -188,6 +194,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,6 +276,11 @@
    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'
    }
@@ -311,15 +355,35 @@
    }
    _style = resetStyle(_style)
    let checkAll = ''
    if ((cards.subtype === 'datacard' || cards.subtype === 'dualdatacard') && card.$cardType === 'extendCard') {
      checkAll = card.setting.checkAll === 'show' ? ' mk-checkable mk-extend-card' : ''
      if (checkAll && cards.wrap.selStyle === 'check square') {
        checkAll = ' mk-checkable square mk-extend-card'
      }
    } else if (cards.subtype === 'datacard') {
      if (cards.wrap.selStyle === 'check') {
        checkAll = ' mk-checkable'
      } else if (cards.wrap.selStyle === 'check square') {
        checkAll = ' mk-checkable square'
      }
    }
    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 || '')} 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>