king
2021-09-08 6d71b3fac75a35e8ebf08e71ba40c5be8a586024
src/menu/components/table/normal-table/index.jsx
@@ -1,12 +1,13 @@
import React, {Component} from 'react'
import PropTypes from 'prop-types'
import { is, fromJS } from 'immutable'
import { Icon, Popover, Modal, notification } from 'antd'
import { Icon, Popover, notification } from 'antd'
import asyncComponent from '@/utils/asyncComponent'
import asyncIconComponent from '@/utils/asyncIconComponent'
import { resetStyle } from '@/utils/utils-custom.js'
import MKEmitter from '@/utils/events.js'
import getWrapForm from './options'
import Utils from '@/utils/utils.js'
import zhCN from '@/locales/zh-CN/model.js'
import enUS from '@/locales/en-US/model.js'
@@ -14,6 +15,7 @@
import './index.scss'
const SettingComponent = asyncIconComponent(() => import('@/menu/datasource'))
const NormalForm = asyncIconComponent(() => import('@/components/normalform'))
const SearchComponent = asyncComponent(() => import('@/templates/sharecomponent/searchcomponent'))
const ActionComponent = asyncComponent(() => import('@/menu/components/share/actioncomponent'))
const NormalHeader = asyncComponent(() => import('@/menu/components/share/normalheader'))
@@ -22,9 +24,6 @@
const PasteComponent = asyncIconComponent(() => import('@/menu/components/share/pastecomponent'))
const LogComponent = asyncIconComponent(() => import('@/menu/components/share/logcomponent'))
const ColumnComponent = asyncComponent(() => import('./columns'))
const WrapComponent = asyncIconComponent(() => import('./wrapsetting'))
const { confirm } = Modal
class TableCardEditComponent extends Component {
  static propTpyes = {
@@ -57,8 +56,7 @@
        width: card.width || 24,
        search: [
          { origin: true, uuid: Utils.getuuid(), label: 'label', type: 'text', match: 'like' },
          { origin: true, uuid: Utils.getuuid(), label: 'label', type: 'select', match: 'equal' },
          { origin: true, uuid: Utils.getuuid(), label: 'label', type: 'date', match: 'greater' }
          { origin: true, uuid: Utils.getuuid(), label: 'label', type: 'select', match: 'equal' }
        ],
        action: [
          { origin: true, uuid: Utils.getuuid(), label: '添加', intertype: 'system', OpenType: 'pop', icon: 'plus', class: 'green', style: {color: 'rgb(255, 255, 255)', background: 'rgb(38, 194, 129)', marginRight: '15px'} },
@@ -79,6 +77,7 @@
        ],
        scripts: [],
        btnlog: [],
        isNew: true
      }
      if (card.config) {
@@ -126,7 +125,8 @@
      this.setState({
        card: _card
      })
      this.props.updateConfig(_card)
      this.filterOrigin(_card)
    } else {
      this.setState({
        card: fromJS(card).toJS()
@@ -173,6 +173,21 @@
    return col
  }
  filterOrigin = (component) => {
    if (component.isNew) {
      let item = fromJS(component).toJS()
      item.search = item.search.filter(a => !a.origin)
      item.action = item.action.filter(a => !a.origin)
      item.cols = item.cols.filter(a => !a.origin)
      delete item.isNew
      this.props.updateConfig(item)
    } else {
      this.props.updateConfig(component)
    }
  }
  /**
   * @description 卡片行外层信息更新(数据源,样式等)
   */
@@ -184,7 +199,7 @@
    component.width = component.wrap.width
    component.name = component.wrap.name
    this.props.updateConfig(component)
    this.filterOrigin(component)
  }
  logButton = (id, item) => {
@@ -198,30 +213,13 @@
    this.setState({
      card: {...card, btnlog}
    })
    this.props.updateConfig({...card, btnlog})
  }
  /**
   * @description 单个卡片信息更新
   */
  deleteCard = () => {
    let card = fromJS(this.state.card).toJS()
    let _this = this
    confirm({
      content: '确定删除卡片吗?',
      onOk() {
        _this.setState({card})
        _this.props.updateConfig(card)
      },
      onCancel() {}
    })
    this.filterOrigin({...card, btnlog})
  }
  changeStyle = () => {
    const { card } = this.state
    MKEmitter.emit('changeStyle', [card.uuid], ['background', 'border', 'padding', 'margin'], card.style)
    MKEmitter.emit('changeStyle', [card.uuid], ['background', 'border', 'padding', 'margin', 'shadow'], card.style)
  }
  getStyle = (comIds, style) => {
@@ -240,7 +238,7 @@
      card: _card
    })
    
    this.props.updateConfig(_card)
    this.filterOrigin(_card)
  }
  addColumns = () => {
@@ -279,7 +277,6 @@
    newcard.interface = card.setting.interface || ''
    newcard.execSuccess = 'grid'
    newcard.execError = 'never'
    newcard.errorTime = 10
    newcard.verify = null
    newcard.show = 'button'
    newcard.style = {marginRight: '15px'}
@@ -295,7 +292,7 @@
    this.setState({
      card: config
    })
    this.props.updateConfig(config)
    this.filterOrigin(config)
  }
  setSubConfig = (item) => {
@@ -335,7 +332,7 @@
    })
    this.setState({card})
    this.props.updateConfig(card)
    this.filterOrigin(card)
  }
  handleLog = (type, logs, item) => {
@@ -360,7 +357,7 @@
      card.btnlog = logs
      this.setState({ card })
      this.props.updateConfig(card)
      this.filterOrigin(card)
      notification.success({
        top: 92,
        message: '恢复成功!',
@@ -369,13 +366,23 @@
    } else {
      card.btnlog = logs
      this.setState({ card })
      this.props.updateConfig(card)
      this.filterOrigin(card)
      notification.success({
        top: 92,
        message: '清除成功!',
        duration: 2
      })
    }
  }
  getWrapForms = () => {
    const { wrap, action } = this.state.card
    return getWrapForm(wrap, action)
  }
  updateWrap = (res) => {
    this.updateComponent({...this.state.card, wrap: res})
  }
  clickComponent = (e) => {
@@ -397,7 +404,9 @@
            <Icon className="plus" title="添加列" onClick={this.addColumns} type="plus" />
            {appType !== 'mob' ? <Icon className="plus" title="添加搜索" onClick={this.addSearch} type="plus-circle" /> : null}
            <Icon className="plus" title="添加按钮" onClick={this.addButton} type="plus-square" />
            <WrapComponent config={card} updateConfig={this.updateComponent} />
            <NormalForm title="表格设置" width={800} update={this.updateWrap} getForms={this.getWrapForms}>
              <Icon type="edit" style={{color: '#1890ff'}} title="编辑"/>
            </NormalForm>
            <CopyComponent type="normaltable" card={card}/>
            <PasteComponent config={card} options={['action', 'search', 'form', 'cols']} updateConfig={this.updateComponent} />
            <Icon className="style" title="调整样式" onClick={this.changeStyle} type="font-colors" />