king
2023-03-11 34e7681fd12b1c4e4994d3bea1a553870e10bc50
src/menu/components/group/normal-group/index.jsx
@@ -1,8 +1,8 @@
import React, {Component} from 'react'
import PropTypes from 'prop-types'
import { is, fromJS } from 'immutable'
import { Popover, Button } from 'antd'
import { EditOutlined, ToolOutlined, DeleteOutlined, FontColorsOutlined, PrinterOutlined } from '@ant-design/icons'
import { Popover, Button, Modal } from 'antd'
import { EditOutlined, ToolOutlined, DeleteOutlined, FontColorsOutlined, PrinterOutlined, UngroupOutlined } from '@ant-design/icons'
import MKEmitter from '@/utils/events.js'
import asyncComponent from '@/utils/asyncComponent'
@@ -11,6 +11,7 @@
import getSettingForm from './options'
import './index.scss'
const { confirm } = Modal
const NormalForm = asyncIconComponent(() => import('@/components/normalform'))
const CopyComponent = asyncIconComponent(() => import('@/menu/components/share/copycomponent'))
const NormalHeader = asyncComponent(() => import('@/menu/components/share/normalheader'))
@@ -21,6 +22,7 @@
  static propTpyes = {
    group: PropTypes.object,
    deletecomponent: PropTypes.func,
    unGroup: PropTypes.func,
    updateConfig: PropTypes.func,
  }
@@ -70,7 +72,7 @@
  changeStyle = () => {
    const { group } = this.state
    MKEmitter.emit('changeStyle', ['background', 'border', 'padding', 'margin', 'shadow', 'clear'], group.style, this.getStyle)
    MKEmitter.emit('changeStyle', ['background', 'border', 'padding', 'margin', 'shadow', 'clear', 'minHeight'], group.style, this.getStyle)
  }
  getStyle = (style) => {
@@ -129,6 +131,36 @@
    this.updateComponent(group)
  }
  unGroup = () => {
    const { group } = this.state
    if (group.components.length === 0) return
    const _this = this
    confirm({
      title: '确定释放分组元素吗?',
      content: '',
      onOk() {
        _this.props.unGroup(group.uuid)
        setTimeout(() => {
          _this.updataGroup()
        }, 10)
      },
      onCancel() {}
    })
  }
  updataGroup = () => {
    const { group } = this.props
    if (group.components.length === 0) {
      this.setState({
        group: fromJS(group).toJS()
      })
    }
  }
  render() {
    const { group } = this.state
    let _style = resetStyle(group.style)
@@ -147,6 +179,7 @@
              <EditOutlined style={{color: '#1890ff'}} title="编辑"/>
            </NormalForm>
            <CopyComponent type="tabs" card={group}/>
            <UngroupOutlined title="释放" style={group.components.length > 0 ? {color: '#32c5d2'} : {color: '#eeeeee', cursor: 'not-allowed'}} onClick={this.unGroup}/>
            <PasteComponent insert={this.insert} />
            <FontColorsOutlined className="style" title="调整样式" onClick={this.changeStyle}/>
            <DeleteOutlined className="close" title="delete" onClick={() => this.props.deletecomponent(group.uuid)} />