king
2020-12-23 bc4308e222af3e19f721a129ab132fb69909778e
src/menu/menushell/index.jsx
@@ -5,6 +5,7 @@
import { Empty, notification, Modal } from 'antd'
import Utils from '@/utils/utils.js'
import MKEmitter from '@/utils/events.js'
import Card from './card'
import './index.scss'
@@ -46,10 +47,61 @@
      })
    }
    let uuids = []
    const getUuids = (item) => {
      if (item.type === 'tabs') {
        item.subtabs.forEach(tab => {
          tab.components.forEach(c => {
            getUuids(c)
          })
        })
      } else {
        if (item.action && item.action.length) {
          item.action.forEach(act => {
            if (!act.origin) {
              uuids.push(act.uuid)
            }
          })
        }
        if (item.type === 'card') {
          item.subcards.forEach(_card => {
            _card.elements && _card.elements.forEach(cell => {
              if (cell.eleType === 'button') {
                uuids.push(cell.uuid)
              }
            })
            _card.backElements && _card.backElements.forEach(cell => {
              if (cell.eleType === 'button') {
                uuids.push(cell.uuid)
              }
            })
          })
        } else if (item.type === 'table' && item.subtype === 'tablecard') {
          item.subcards.forEach(_card => {
            _card.elements && _card.elements.forEach(cell => {
              if (cell.eleType === 'button') {
                uuids.push(cell.uuid)
              }
            })
          })
        } else if (item.type === 'table' && item.subtype === 'normaltable') {
          item.cols && item.cols.forEach(col => {
            if (col.type !== 'action') return
            col.elements && col.elements.forEach(cell => {
              uuids.push(cell.uuid)
            })
          })
        }
      }
    }
    getUuids(card)
    confirm({
      title: `确定删除《${card.name}》吗?`,
      content: hasComponent ? '当前组件中含有子组件!' : '',
      onOk() {
        MKEmitter.emit('delButtons', uuids)
        handleList({...menu, components: cards.filter(item => item.uuid !== card.uuid)})
      },
      onCancel() {}