king
2022-06-14 669839c40c0080786cefa6a8e62d3ada68a39b8e
src/menu/components/form/tab-form/index.jsx
@@ -185,6 +185,33 @@
      } else if (!card.setting.supModule) {
        card.errors.push({ level: 0, detail: '未设置上级组件!'})
      }
      let supModule = card.setting.supModule ? card.setting.supModule[card.setting.supModule.length - 1] || '' : ''
      if (supModule === 'empty') {
        supModule = ''
      }
      let columns = card.columns.map(c => c.field)
      let lowcols = card.columns.map(c => c.field.toLowerCase())
      card.subcards.forEach(item => {
        item.fields.forEach(m => {
          if (m.type === 'linkMain' && !supModule) {
            card.errors.push({ level: 1, detail: `分组“${item.setting.title}”中关联主表表单“${m.label}”无效`})
          } else if (m.field && !columns.includes(m.field) && lowcols.includes(m.field.toLowerCase())) {
            card.errors.push({ level: 1, detail: `分组“${item.setting.title}”中表单“${m.label}”大小写与字段集不一致`})
          }
        })
      })
    } else {
      let supModule = card.wrap.supModule ? card.wrap.supModule[card.wrap.supModule.length - 1] : ''
      card.subcards.forEach(item => {
        item.fields.forEach(m => {
          if (m.type === 'linkMain' && !supModule) {
            card.errors.push({ level: 1, detail: `分组“${item.setting.title}”中关联主表表单“${m.label}”无效`})
          }
        })
      })
    }
    this.setState({
@@ -639,6 +666,34 @@
  }
  pasteForm = (res) => {
    if (res.subButton) {
      let card = fromJS(this.state.card).toJS()
      res.uuid = Utils.getuuid()
      res.sort = card.subcards.length + 1
      res.fields.forEach(item => {
        item.uuid = Utils.getuuid()
      })
      delete res.prevButton
      delete res.nextButton
      card.subcards.push(res)
      this.setState({
        group: res
      })
      this.updateComponent(card)
      notification.success({
        top: 92,
        message: '粘贴成功!',
        duration: 2
      })
      return
    }
    let _config = fromJS(this.state.group).toJS()
    let fieldrepet = false // 字段重复
@@ -674,7 +729,17 @@
  }
  updateWrap = (res) => {
    this.updateComponent({...this.state.card, wrap: res})
    let _card = {...this.state.card, wrap: res}
    if (res.datatype === 'static') {
      if (res.supModule && res.supModule.length > 0) {
        _card.setting.supModule = res.supModule
      } else {
        _card.setting.supModule = ''
      }
    }
    this.updateComponent(_card)
  }
  clearGroup = () => {
@@ -720,7 +785,7 @@
              <EditOutlined style={{color: '#1890ff'}} title="编辑"/>
            </NormalForm>
            <CopyComponent type="tabform" card={card}/>
            <PasteComponent config={card} options={['form']} updateConfig={this.pasteForm} />
            <PasteComponent config={card} options={['form', 'formgroup']} updateConfig={this.pasteForm} />
            <FontColorsOutlined className="style" title="调整样式" onClick={this.changeStyle}/>
            <UserComponent config={card}/>
            <DeleteOutlined className="close" title="删除组件" onClick={() => this.props.deletecomponent(card.uuid)} />