From da64ab0923bf8817fc8599a6e37b953ce38f64c8 Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期日, 27 八月 2023 18:37:36 +0800 Subject: [PATCH] 2023-08-27 --- src/menu/modalconfig/index.jsx | 105 ++++++++++++++++++++-------------------------------- 1 files changed, 41 insertions(+), 64 deletions(-) diff --git a/src/menu/modalconfig/index.jsx b/src/menu/modalconfig/index.jsx index 4aab297..9791220 100644 --- a/src/menu/modalconfig/index.jsx +++ b/src/menu/modalconfig/index.jsx @@ -20,8 +20,9 @@ const { Panel } = Collapse const { confirm } = Modal +const TableComponent = asyncComponent(() => import('./tablecomponent')) const ModalForm = asyncComponent(() => import('@/templates/zshare/modalform')) -const EditComponent = asyncComponent(() => import('@/templates/zshare/editcomponent')) +const PasteForms = asyncComponent(() => import('@/menu/components/share/pasteforms')) const DragElement = asyncComponent(() => import('@/templates/modalconfig/dragelement')) const FieldsComponent = asyncComponent(() => import('@/templates/sharecomponent/fieldscomponent')) @@ -114,50 +115,48 @@ let _linkableFields = [] let _linksupFields = [] let standardform = null - - let uniq = new Map() let index = null - uniq.set(card.field, true) config.fields.forEach((item, i) => { if (card.uuid === item.uuid) { index = i } - if (['text', 'number', 'textarea', 'color'].includes(item.type) && card.field !== item.field) { + if (!item.field || card.field === item.field) return + + if (['text', 'number', 'textarea', 'color'].includes(item.type)) { _inputfields.push({ field: item.field, label: item.label }) } - if (card.field !== item.field && item.hidden !== 'true' && ['text', 'number', 'select', 'link'].includes(item.type)) { + if (item.hidden !== 'true' && ['text', 'number', 'select', 'link'].includes(item.type)) { _tabfields.push({ field: item.field, label: item.label }) } - if (item.type === 'switch') { + if (item.type === 'switch' || item.type === 'check') { _linksupFields.push({ field: item.field, label: item.label }) } - if (!['select', 'link', 'radio', 'checkcard'].includes(item.type)) return - if (item.type === 'checkcard' && item.multiple === 'true') return // 閫夐」鍗″閫� - if (item.field && !uniq.has(item.field)) { - uniq.set(item.field, true) + if (!['select', 'link', 'radio', 'checkcard', 'multiselect'].includes(item.type)) return - _linkableFields.push({ - field: item.field, - label: item.label + '-琛ㄥ崟' - }) - _linksupFields.push({ - field: item.field, - label: item.label - }) - } + _linksupFields.push({ + field: item.field, + label: item.label + }) + + if (item.type === 'multiselect' || (item.type === 'checkcard' && item.multiple === 'true')) return + + _linkableFields.push({ + field: item.field, + label: item.label + '-琛ㄥ崟' + }) }) if (index !== null) { if (index === 0) { @@ -172,10 +171,9 @@ columns = componentConfig.subColumns || [] } + let _fields = _linkableFields.map(cell => cell.field) columns.forEach(col => { - if (col.field && !uniq.has(col.field)) { - uniq.set(col.field, true) - + if (col.field && !_fields.includes(col.field)) { _linkableFields.push({ field: col.field, label: col.label + '-鏄剧ず鍒�' @@ -237,6 +235,8 @@ if (item.uuid !== res.uuid && res.field && item.field && item.field.toLowerCase() === res.field.toLowerCase()) { fieldrepet = true } + + delete item.focus if (item.uuid === res.uuid) { if (item.style) { @@ -458,44 +458,8 @@ }) } - plusFields = (items, type) => { + plusFields = (items) => { let _config = fromJS(this.state.config).toJS() - - if (type === 'forms') { - if (_config.fields.length > 0) { - let that = this - _config.fields = items.fields.map(item => { - item.uuid = Utils.getuuid() - return item - }) - - confirm({ - title: '纭畾鏇挎崲琛ㄥ崟鍚楋紵', - content: '鍘熻〃鍗曞皢鍒犻櫎銆�', - onOk() { - that.setState({ - config: _config - }) - }, - onCancel() {} - }) - } else { - _config.fields = items.fields.map(item => { - item.uuid = Utils.getuuid() - return item - }) - - this.setState({ - config: _config - }) - notification.success({ - top: 92, - message: '绮樿创鎴愬姛锛�', - duration: 2 - }) - } - return - } _config.fields.push(...items) @@ -505,6 +469,15 @@ if (items.length === 1 && items[0].focus) { this.handleForm(items[0]) } + }) + } + + pasteFields = (items) => { + let _config = fromJS(this.state.config).toJS() + _config.fields = items + + this.setState({ + config: _config }) } @@ -543,13 +516,16 @@ render () { const { btn } = this.props - const { config, saving } = this.state + const { config, saving, card } = this.state return ( <div className="modal-form-board"> <DndProvider backend={HTML5Backend}> <div className="tools"> <Collapse accordion defaultActiveKey="1" bordered={false}> + <Panel header="鍩烘湰淇℃伅" key="0"> + <TableComponent /> + </Panel> <Panel header="琛ㄥ崟" key="1"> <div className="search-element"> {SearchItems.map((item, index) => { @@ -564,7 +540,7 @@ <Card title="琛ㄥ崟閰嶇疆" bordered={false} extra={ <div> <Button type="danger" onClick={this.clearConfig}>娓呯┖</Button> - <EditComponent options={['form', 'forms']} type="formboard" config={this.state.config} plusFields={this.plusFields}/> + <PasteForms type="toolbar" config={config} update={this.pasteFields}/> <Button type="primary" id="save-modal-config" loading={saving} onClick={this.submitConfig}>淇濆瓨</Button> <Button onClick={this.cancelConfig}>杩斿洖</Button> </div> @@ -608,7 +584,8 @@ </div> </DndProvider> <Modal - title="缂栬緫" + title={card && card.$copy ? '澶嶅埗' : '缂栬緫'} + wrapClassName="mk-scroll-modal" visible={this.state.visible} width={950} maskClosable={false} @@ -618,7 +595,7 @@ destroyOnClose > <ModalForm - card={this.state.card} + card={card} formlist={this.state.formlist} inputSubmit={this.handleSubmit} standardform={this.state.standardform} -- Gitblit v1.8.0