| | |
| | | import asyncComponent from '@/utils/asyncComponent' |
| | | import asyncIconComponent from '@/utils/asyncIconComponent' |
| | | import { getModalForm } from '@/templates/zshare/formconfig' |
| | | import { resetStyle, getTables } from '@/utils/utils-custom.js' |
| | | import { resetStyle, getTables, checkComponent } from '@/utils/utils-custom.js' |
| | | import MKEmitter from '@/utils/events.js' |
| | | import Utils from '@/utils/utils.js' |
| | | import getWrapForm from './options' |
| | |
| | | const FormAction = asyncComponent(() => import('../formaction')) |
| | | const NormalHeader = asyncComponent(() => import('@/menu/components/share/normalheader')) |
| | | const CopyComponent = asyncIconComponent(() => import('@/menu/components/share/copycomponent')) |
| | | const PasteComponent = asyncIconComponent(() => import('@/menu/components/share/pastecomponent')) |
| | | const PasteForms = asyncIconComponent(() => import('@/menu/components/share/pasteforms')) |
| | | const UserComponent = asyncIconComponent(() => import('@/menu/components/share/usercomponent')) |
| | | const FieldsComponent = asyncComponent(() => import('@/templates/sharecomponent/fieldscomponent')) |
| | | |
| | |
| | | if (supModule === 'empty') { |
| | | supModule = '' |
| | | } |
| | | let columns = card.columns.map(c => c.field) |
| | | |
| | | if (card.setting.interType === 'system' && card.setting.execute !== 'false' && !card.setting.dataresource) { |
| | | card.errors.push({ level: 0, detail: '未设置数据源!'}) |
| | | } else if (card.setting.interType === 'system' && card.setting.execute === 'false' && card.scripts.filter(script => script.status !== 'false').length === 0) { |
| | | card.errors.push({ level: 0, detail: '数据源中无可用脚本!'}) |
| | | } else if (!card.setting.primaryKey) { |
| | | card.errors.push({ level: 0, detail: '未设置主键!'}) |
| | | } else if (!columns.includes(card.setting.primaryKey)) { |
| | | card.errors.push({ level: 0, detail: '主键已失效!'}) |
| | | } else if (!card.setting.supModule) { |
| | | card.errors.push({ level: 0, detail: '未设置上级组件!'}) |
| | | } |
| | | card.$c_ds = true |
| | | card.errors = checkComponent(card) |
| | | |
| | | if (card.errors.length === 0) { |
| | | card.$tables = getTables(card) |
| | |
| | | }) |
| | | } |
| | | |
| | | if (item.type === 'switch') { |
| | | if (item.type === 'switch' || item.type === 'check') { |
| | | _linksupFields.push({ |
| | | field: item.field, |
| | | label: item.label |
| | |
| | | fieldrepet = true |
| | | } |
| | | |
| | | delete item.focus |
| | | |
| | | if (item.uuid === res.uuid) { |
| | | if (item.style) { |
| | | res.style = item.style |
| | |
| | | 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 |
| | |
| | | }) |
| | | } |
| | | |
| | | pasteForm = (res) => { |
| | | pasteForm = (forms, res) => { |
| | | let _config = fromJS(this.state.card).toJS() |
| | | |
| | | _config.subcards[0].fields = forms |
| | | |
| | | if (res.subButton) { |
| | | let that = this |
| | | |
| | | _config.subcards[0].setting.focus = res.focus |
| | | _config.subcards[0].setting.cache = res.cache |
| | | _config.subcards[0].setting.align = res.align |
| | | _config.subcards[0].setting.enable = res.enable |
| | | _config.subcards[0].setting.verticalSpace = res.verticalSpace || '' |
| | | _config.wrap.focus = res.focus |
| | | _config.wrap.cache = res.cache |
| | | _config.wrap.align = res.align |
| | | _config.wrap.enable = res.enable |
| | | _config.wrap.verticalSpace = res.verticalSpace || '' |
| | | |
| | | _config.subcards[0].subButton = res.subButton |
| | | // _config.subcards[0].setting.focus = res.focus |
| | | // _config.subcards[0].setting.cache = res.cache |
| | | // _config.subcards[0].setting.align = res.align |
| | | // _config.subcards[0].setting.enable = res.enable |
| | | // _config.subcards[0].setting.verticalSpace = res.verticalSpace || '' |
| | | // _config.wrap.focus = res.focus |
| | | // _config.wrap.cache = res.cache |
| | | // _config.wrap.align = res.align |
| | | // _config.wrap.enable = res.enable |
| | | // _config.wrap.verticalSpace = res.verticalSpace || '' |
| | | |
| | | _config.subcards[0].fields = res.fields.map(item => { |
| | | item.uuid = Utils.getuuid() |
| | | return item |
| | | }) |
| | | |
| | | confirm({ |
| | | content: '替换表单及按钮配置?', |
| | | content: '是否替换按钮配置?', |
| | | okText: '是', |
| | | cancelText: '否', |
| | | onOk() { |
| | | _config.subcards[0].subButton = res.subButton |
| | | |
| | | that.updateComponent(_config) |
| | | }, |
| | | onCancel() {} |
| | | onCancel() { |
| | | that.updateComponent(_config) |
| | | } |
| | | }) |
| | | return |
| | | } else if (res.fields) { |
| | | if (_config.subcards[0].fields.length > 0) { |
| | | let that = this |
| | | _config.subcards[0].fields = res.fields.map(item => { |
| | | item.uuid = Utils.getuuid() |
| | | return item |
| | | }) |
| | | } else { |
| | | _config.subcards[0].fields = forms |
| | | |
| | | confirm({ |
| | | title: '确定替换表单吗?', |
| | | content: '原表单将删除。', |
| | | onOk() { |
| | | that.updateComponent(_config) |
| | | }, |
| | | onCancel() {} |
| | | }) |
| | | } else { |
| | | _config.subcards[0].fields = res.fields.map(item => { |
| | | item.uuid = Utils.getuuid() |
| | | return item |
| | | }) |
| | | |
| | | this.updateComponent(_config) |
| | | } |
| | | |
| | | return |
| | | this.updateComponent(_config) |
| | | } |
| | | |
| | | let fieldrepet = false // 字段重复 |
| | | |
| | | _config.subcards[0].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 |
| | | } |
| | | _config.subcards[0].fields.push(res) |
| | | |
| | | this.updateComponent(_config) |
| | | |
| | | this.handleForm(res) |
| | | |
| | | notification.success({ |
| | | top: 92, |
| | | message: '粘贴成功!', |
| | | duration: 2 |
| | | }) |
| | | } |
| | | |
| | | getWrapForms = () => { |
| | |
| | | |
| | | updateWrap = (res) => { |
| | | let _card = fromJS(this.state.card).toJS() |
| | | let buttons = res.buttons |
| | | |
| | | delete res.buttons |
| | | |
| | | res.enable = buttons.includes('enable') ? 'true' : 'false' |
| | | res.closeEnable = buttons.includes('closeEnable') ? 'true' : 'false' |
| | | |
| | | _card.wrap = res |
| | | |
| | | if (res.datatype === 'static') { |
| | |
| | | <EditOutlined style={{color: '#1890ff'}} title="编辑"/> |
| | | </NormalForm> |
| | | <CopyComponent type="simpleform" card={card}/> |
| | | <PasteComponent config={card} options={['form', 'forms', 'formgroup']} updateConfig={this.pasteForm} /> |
| | | <PasteForms config={card.subcards[0]} update={this.pasteForm} /> |
| | | <FontColorsOutlined className="style" title="调整样式" onClick={this.changeStyle}/> |
| | | <UserComponent config={card}/> |
| | | <DeleteOutlined className="close" title="删除组件" onClick={() => this.props.deletecomponent(card.uuid)} /> |
| | |
| | | <div className="center"> |
| | | <div className="title" onDoubleClick={() => { |
| | | let oInput = document.createElement('input') |
| | | oInput.value = card.uuid |
| | | oInput.value = 'anchor' + card.uuid |
| | | document.body.appendChild(oInput) |
| | | oInput.select() |
| | | document.execCommand('Copy') |