| | |
| | | card.width = card.wrap.width |
| | | card.name = card.wrap.name |
| | | card.errors = [] |
| | | let idCtrl = false |
| | | |
| | | if (card.wrap.datatype !== 'static') { |
| | | let supModule = card.setting.supModule ? card.setting.supModule[card.setting.supModule.length - 1] || '' : '' |
| | |
| | | |
| | | card.subcards.forEach(item => { |
| | | item.fields.forEach(m => { |
| | | if (m.dataSource && /@ID@/ig.test(m.dataSource)) { |
| | | idCtrl = true |
| | | } |
| | | if (m.type === 'linkMain' && !supModule) { |
| | | card.errors.push({ level: 1, detail: `请检查分组“${item.setting.title}”中关联主表“${m.label}”是否有效`}) |
| | | } |
| | |
| | | |
| | | card.subcards.forEach(item => { |
| | | item.fields.forEach(m => { |
| | | if (m.dataSource && /@ID@/ig.test(m.dataSource)) { |
| | | idCtrl = true |
| | | } |
| | | if (m.type === 'linkMain' && !supModule) { |
| | | card.errors.push({ level: 1, detail: `请检查分组“${item.setting.title}”中关联主表“${m.label}”是否有效`}) |
| | | } |
| | | }) |
| | | }) |
| | | } |
| | | |
| | | card.idCtrl = idCtrl |
| | | |
| | | this.setState({ |
| | | card: card |
| | |
| | | return |
| | | } |
| | | |
| | | window.GLOB.formId = res.uuid |
| | | |
| | | if (['select', 'multiselect', 'link', 'checkbox', 'radio', 'checkcard'].includes(res.type) && res.resourceType === '1' && /\s/.test(res.dataSource)) { |
| | | this.setState({ |
| | | sqlVerifing: true |
| | |
| | | if (res.subtype === 'simpleform') { |
| | | res = res.subcards[0] |
| | | } |
| | | if (res.subButton) { |
| | | let card = fromJS(this.state.card).toJS() |
| | | |
| | | res.uuid = Utils.getuuid() |
| | | res.sort = card.subcards.length + 1 |
| | | let card = fromJS(this.state.card).toJS() |
| | | |
| | | res.fields.forEach(item => { |
| | | item.uuid = Utils.getuuid() |
| | | }) |
| | | res.uuid = Utils.getuuid() |
| | | res.sort = card.subcards.length + 1 |
| | | |
| | | if (!res.prevButton) { |
| | | res.prevButton = {label: '上一步', type: 'prev', enable: 'false', style: {marginRight: '15px', paddingTop: '5px', paddingBottom: '5px'}} |
| | | } |
| | | if (!res.nextButton) { |
| | | res.nextButton = {label: '跳过', type: 'next', enable: 'false', style: {paddingTop: '5px', paddingBottom: '5px'}} |
| | | } |
| | | |
| | | 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 // 字段重复 |
| | | |
| | | _config.fields.forEach(item => { |
| | | if (res.field && item.field && item.field.toLowerCase() === res.field.toLowerCase()) { |
| | | fieldrepet = true |
| | | } |
| | | res.fields.forEach(item => { |
| | | item.uuid = Utils.getuuid() |
| | | }) |
| | | |
| | | if (fieldrepet) { |
| | | notification.warning({ |
| | | top: 92, |
| | | message: '字段已存在!', |
| | | duration: 10 |
| | | }) |
| | | return |
| | | if (!res.prevButton) { |
| | | res.prevButton = {label: '上一步', type: 'prev', enable: 'false', style: {marginRight: '15px', paddingTop: '5px', paddingBottom: '5px'}} |
| | | } |
| | | _config.fields.push(res) |
| | | if (!res.nextButton) { |
| | | res.nextButton = {label: '跳过', type: 'next', enable: 'false', style: {paddingTop: '5px', paddingBottom: '5px'}} |
| | | } |
| | | |
| | | this.updateGroup(_config) |
| | | |
| | | this.handleForm(res) |
| | | card.subcards.push(res) |
| | | |
| | | this.setState({ |
| | | group: res |
| | | }) |
| | | this.updateComponent(card) |
| | | |
| | | notification.success({ |
| | | top: 92, |
| | |
| | | }) |
| | | } |
| | | |
| | | 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) => { |
| | | parseForm = (g, forms) => { |
| | | const { group } = this.state |
| | | let card = fromJS(this.state.card).toJS() |
| | | let _group = fromJS(g).toJS() |
| | | |
| | | _group.fields = forms |
| | | |
| | | card.subcards = card.subcards.map(item => { |
| | | if (item.uuid === _group.uuid) { |
| | |
| | | <EditOutlined style={{color: '#1890ff'}} title="编辑"/> |
| | | </NormalForm> |
| | | <CopyComponent type="stepform" card={card}/> |
| | | <PasteComponent config={card} options={['form', 'formgroup', 'simpleform']} updateConfig={this.pasteForm} /> |
| | | <PasteComponent config={card} options={['formgroup', 'simpleform']} updateConfig={this.pasteForm} /> |
| | | <FontColorsOutlined className="style" title="调整样式" onClick={this.changeStyle}/> |
| | | <UserComponent config={card}/> |
| | | <DeleteOutlined className="close" title="删除组件" onClick={() => this.props.deletecomponent(card.uuid)} /> |