king
2023-03-08 4fc1eb4913f3302679d88ec01099fc8dd3a80f81
src/menu/components/form/tab-form/index.jsx
@@ -213,7 +213,7 @@
  changeStyle = () => {
    const { card } = this.state
    MKEmitter.emit('changeStyle', ['height', 'background', 'border', 'padding', 'margin', 'shadow', 'clear', 'minHeight'], card.style, this.getStyle)
    MKEmitter.emit('changeStyle', ['height', 'font1', 'background', 'border', 'padding', 'margin', 'shadow', 'clear', 'minHeight'], card.style, this.getStyle)
  }
  getStyle = (style) => {
@@ -447,35 +447,28 @@
    let index = null
    uniq.set(_form.field, true)
    let _inputIndex = 1
    let _tabIndex = 1
    let _linkIndex = 1
    group.fields.forEach((item, i) => {
      if (_form.uuid === item.uuid) {
        index = i
      }
      let label = `${item.field || ''}(${item.label})`
      if (['text', 'number', 'textarea', 'color'].includes(item.type) && _item.field !== item.field) {
        _inputfields.push({
          field: item.field,
          label: _inputIndex + '、' + label
          label: item.label
        })
        _inputIndex++
      }
      if (_form.field !== item.field && item.hidden !== 'true' && ['text', 'number', 'select', 'link'].includes(item.type)) {
        _tabfields.push({
          field: item.field,
          label: _tabIndex + '、' + label
          label: item.label
        })
        _tabIndex++
      }
      if (item.type === 'switch') {
        _linksupFields.push({
          field: item.field,
          label: _linkIndex + '、' + label
          label: item.label
        })
      }
      
@@ -485,19 +478,15 @@
        uniq.set(item.field, true)
        _linkableFields.push({
          value: item.field,
          text: _linkIndex + '、' + item.label + ' (表单)'
          field: item.field,
          label: item.label + '-表单'
        })
        _linksupFields.push({
          value: item.field,
          text: _linkIndex + '、' + label
          field: item.field,
          label: item.label
        })
        _linkIndex++
      }
    })
    _tabfields.unshift({field: '', label: '原表单'})
    if (index !== null) {
      if (index === 0) {
@@ -513,9 +502,8 @@
        _linkableFields.push({
          field: col.field,
          label: _linkIndex + '、' + col.label + ' (显示列)'
          label: col.label + '-显示列'
        })
        _linkIndex++
      }
    })
@@ -725,6 +713,74 @@
    })
  }
  parseForm = (g, res) => {
    let _group = fromJS(g).toJS()
    let _confirm = false
    if (res.copyType === 'form') {
      let fieldrepet = false // 字段重复
      res.uuid = Utils.getuuid()
      _group.fields.forEach(item => {
        if (res.field && item.field && item.field.toLowerCase() === res.field.toLowerCase()) {
          fieldrepet = true
        }
      })
      if (fieldrepet) {
        notification.warning({
          top: 92,
          message: '字段已存在!',
          duration: 10
        })
        return
      }
      _group.fields.push(res)
    } else {
      if (_group.fields.length > 0) {
        _confirm = true
      }
      _group.fields = res.fields.map(item => {
        item.uuid = Utils.getuuid()
        return item
      })
    }
    if (_confirm) {
      let that = this
      confirm({
        title: '确定替换表单吗?',
        content: '原表单将删除。',
        onOk() {
          that.updateForms(_group)
        },
        onCancel() {}
      })
    } else {
      this.updateForms(_group)
    }
  }
  updateForms = (_group) => {
    const { group } = this.state
    let card = fromJS(this.state.card).toJS()
    card.subcards = card.subcards.map(item => {
      if (item.uuid === _group.uuid) {
        return _group
      }
      return item
    })
    if (_group.uuid === group.uuid) {
      this.setState({group: _group})
      this.updateComponent(card)
    } else {
      this.updateComponent(card)
    }
  }
  clickComponent = (e) => {
    if (sessionStorage.getItem('style-control') === 'true' || sessionStorage.getItem('style-control') === 'component') {
      e.stopPropagation()
@@ -740,6 +796,11 @@
  render() {
    const { card, group, appType } = this.state
    let labelSize = 14
    if (card.style.fontSize) {
      labelSize = parseInt(card.style.fontSize)
    }
    return (
      <div className="menu-normal-form-edit-box" style={resetStyle(card.style)} onClick={this.clickComponent} id={card.uuid}>
@@ -762,10 +823,12 @@
        </Popover>
        <FormTitle
          list={card.subcards}
          labelSize={labelSize}
          tabtype={card.wrap.tabtype || ''}
          selectId={group ? group.uuid : ''}
          handleList={this.changecards}
          handleGroup={this.updateGroup}
          handleForm={this.parseForm}
          closeGroup={this.closeGroup}
          selectGroup={this.selectGroup}
        />