king
2020-12-10 84804b405cb88f659d055b16eb3bd00b813ccb4a
src/templates/zshare/editcomponent/index.jsx
@@ -14,7 +14,7 @@
class editComponent extends Component {
  static propTpyes = {
    type: PropTypes.string,
    options: PropTypes.array,
    MenuID: PropTypes.any,
    config: PropTypes.object,
    thawButtons: PropTypes.any,
@@ -43,21 +43,15 @@
   * @description 解冻按钮
   */
  handleThaw = () => {
    const { config } = this.props
    const { MenuID } = this.props
    this.setState({
      thawVisible: true
    })
    let uuid = config.uuid
    if (this.props.type === 'maintable') {
      uuid = this.props.MenuID
    }
    Api.getSystemConfig({
      func: 'sPC_Get_FrozenMenu',
      ParentID: uuid,
      ParentID: MenuID,
      TYPE: 40
    }).then(res => {
      if (res.status) {
@@ -103,7 +97,7 @@
  thawBtnSubmit = () => {
    const { thawButtons } = this.props
    const { thawbtnlist, dict } = this.state
    let config = JSON.parse(JSON.stringify(this.props.config))
    let config = fromJS(this.props.config).toJS()
    // 三级菜单解除冻结
    if (this.refs.trawmenu.state.targetKeys.length === 0) {
@@ -133,22 +127,28 @@
  }
  pasteSubmit = () => {
    const { config, type } = this.props
    const { options } = this.props
    let _config = fromJS(this.props.config).toJS()
    this.pasteFormRef.handleConfirm().then(res => {
      if (['maintable', 'subtable'].includes(type) && res.copyType === 'action') {
      if (res.copyType === 'action' && options.includes('action')) {
        res.uuid = Utils.getuuid()
        _config.action = _config.action.filter(item => !item.origin)
        _config.action.push(res)
        this.setState({
          pasteVisible: false
        }, () => {
          this.props.refresh({
            type: 'paste',
            content: res
            config: _config
          })
        })
      } else if (['maintable', 'subtable', 'calendar'].includes(type) && (res.copyType === 'search' || res.copyType === 'form')) {
      } else if (options.includes('search') && (res.copyType === 'search' || res.copyType === 'form')) {
        res.uuid = Utils.getuuid()
        _config.search = _config.search.filter(item => !item.origin)
        let keys = _config.search.map(item => item.field.toLowerCase())
        // search: text select multiselect link date dateweek datemonth daterange group
        // form: text number select multiselect link switch checkbox radio checkcard
@@ -166,23 +166,40 @@
        }
        res.copyType = 'search'
        _config.search.push(res)
        if (res.field && keys.includes(res.field.toLowerCase())) {
          notification.warning({
            top: 92,
            message: '搜索字段已存在!',
            duration: 5
          })
          return
        }
        this.setState({
          pasteVisible: false
        }, () => {
          this.props.refresh({
            type: 'paste',
            content: res
            config: _config
          })
        })
      } else if (['maintable', 'subtable'].includes(type) && res.copyType === 'columns') {
        let _columns = config.columns.filter(col => !col.origin)
        if (_columns.length > 0) {
          notification.warning({
            top: 92,
            message: '显示列已存在!',
            duration: 5
      } else if (options.includes('columns') && res.copyType === 'columns') {
        _config.columns = _config.columns.filter(col => !col.origin)
        let keys = _config.columns.map(item => item.field ? item.field.toLowerCase() : '')
        if (_config.columns.length === 0) {
          _config.columns = res.columns
        } else {
          res.columns.forEach(col => {
            if (!col.field) return
            let _key = col.field.toLowerCase()
            if (!keys.includes(_key)) {
              keys.push(_key)
              _config.columns.push(col)
            }
          })
          return
        }
        
        this.setState({
@@ -190,14 +207,12 @@
        }, () => {
          this.props.refresh({
            type: 'paste',
            content: res
            config: _config
          })
        })
      } else if (['form'].includes(type) && (res.copyType === 'form' || res.copyType === 'search')) {
        let _config = fromJS(config).toJS()
      } else if (options.includes('form') && (res.copyType === 'form' || res.copyType === 'search')) {
        let fields = []
        let labels = []
        res.uuid = Utils.getuuid()
        // search: text select multiselect link date dateweek datemonth daterange group
@@ -213,7 +228,7 @@
        if (_config.groups.length > 0) {
          _config.groups.forEach(group => {
            group.sublist.forEach(item => {
              fields.push(item.field)
              fields.push(item.field.toLowerCase())
              labels.push(item.label)
            })
            if (group.default) {
@@ -222,13 +237,13 @@
          })
        } else {
          _config.fields.forEach(item => {
            fields.push(item.field)
            fields.push(item.field.toLowerCase())
            labels.push(item.label)
          })
          _config.fields.push(res)
        }
        if (fields.includes(res.field)) {
        if (fields.includes(res.field.toLowerCase())) {
          notification.warning({
            top: 92,
            message: '字段已存在!',
@@ -249,7 +264,7 @@
        }, () => {
          this.props.refresh({
            type: 'paste',
            content: _config,
            config: _config,
            newform: res
          })
        })
@@ -276,12 +291,12 @@
  }
  render() {
    const { type } = this.props
    const { MenuID } = this.props
    const { dict } = this.state
    const menu = (
      <Menu onClick={this.handleMenuClick}>
        {['maintable', 'subtable'].includes(type) ? <Menu.Item key="thaw"><Icon type="unlock" />{dict['header.form.thawbutton']}</Menu.Item> : null}
        {['maintable', 'subtable', 'form', 'calendar'].includes(type) ? <Menu.Item key="paste"><Icon type="snippets" />{dict['header.form.paste']}</Menu.Item> : null}
        {MenuID ? <Menu.Item key="thaw"><Icon type="unlock" />{dict['header.form.thawbutton']}</Menu.Item> : null}
        <Menu.Item key="paste"><Icon type="snippets" />{dict['header.form.paste']}</Menu.Item>
        {/* <Menu.Item key="replace"><Icon type="retweet" />替换</Menu.Item> */}
      </Menu>
    )