From e603c97dbe7a4f1dbd6445e00383ed651182e0fe Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期二, 03 三月 2020 17:09:11 +0800 Subject: [PATCH] 2020-03-03 --- src/tabviews/formtab/index.jsx | 4 src/views/login/loginform.jsx | 1 src/templates/tableshare/columnform/index.jsx | 15 src/tabviews/formtab/formgroup/index.jsx | 57 +++ src/templates/formtabconfig/index.jsx | 92 ++++- src/templates/tableshare/pasteform/index.jsx | 75 ++++ src/templates/comtableconfig/index.jsx | 101 ++++- src/templates/tableshare/gridbtnform/index.jsx | 15 src/tabviews/tableshare/actionList/index.jsx | 8 src/templates/formtabconfig/dragelement/index.jsx | 14 src/templates/modalconfig/index.jsx | 8 src/templates/formtabconfig/groupform/index.jsx | 17 src/templates/tableshare/pasteform/index.scss | 7 src/templates/tableshare/tabform/index.jsx | 26 src/tabviews/subtable/index.jsx | 4 src/templates/formtabconfig/dragelement/card.jsx | 7 src/templates/tableshare/searchform/index.jsx | 19 src/tabviews/subtabtable/index.jsx | 4 src/locales/zh-CN/comtable.js | 2 src/tabviews/commontable/index.jsx | 4 src/templates/subtableconfig/settingform/index.jsx | 21 src/templates/tableshare/verifycard/index.jsx | 22 + src/locales/en-US/comtable.js | 2 src/templates/formtabconfig/index.scss | 10 src/templates/subtableconfig/actionform/index.jsx | 21 src/tabviews/tableshare/mutilform/index.jsx | 2 src/templates/comtableconfig/actionform/index.jsx | 21 src/templates/modalconfig/index.scss | 2 src/templates/formtabconfig/settingform/index.jsx | 19 src/templates/tableshare/dragelement/index.jsx | 20 + src/templates/modalconfig/settingform/index.jsx | 15 src/templates/tableshare/verifycardexcelout/index.jsx | 18 + src/templates/tableshare/verifycardprint/index.jsx | 18 + src/tabviews/managetable/index.jsx | 4 src/components/sidemenu/editthdmenu/index.jsx | 17 src/templates/formtabconfig/actionform/index.jsx | 19 src/templates/subtableconfig/index.jsx | 74 ++++ src/templates/comtableconfig/settingform/index.jsx | 21 src/templates/subtableconfig/index.scss | 61 --- src/templates/tableshare/colspanform/index.jsx | 17 src/templates/comtableconfig/index.scss | 7 src/templates/modalconfig/groupform/index.jsx | 13 src/templates/tableshare/verifycardexcelin/index.jsx | 18 + src/templates/tableshare/formconfig.js | 7 src/templates/ushare/modalform/index.jsx | 26 + 45 files changed, 726 insertions(+), 229 deletions(-) diff --git a/src/components/sidemenu/editthdmenu/index.jsx b/src/components/sidemenu/editthdmenu/index.jsx index eaf40a6..10f2c00 100644 --- a/src/components/sidemenu/editthdmenu/index.jsx +++ b/src/components/sidemenu/editthdmenu/index.jsx @@ -150,11 +150,14 @@ Api.getSystemConfig(param).then(res => { if (res.status) { - let _LongParam = res.LongParam && window.decodeURIComponent(window.atob(res.LongParam)) - try { - _LongParam = JSON.parse(_LongParam) - } catch (e) { - _LongParam = '' + let _LongParam = '' + if (res.LongParam) { + try { + _LongParam = JSON.parse(window.decodeURIComponent(window.atob(res.LongParam))) + } catch (e) { + console.warn('Parse Failure') + _LongParam = '' + } } _menu.LongParam = _LongParam @@ -414,10 +417,10 @@ let _config = '' if (result.LongParam) { try { - _config = window.decodeURIComponent(window.atob(result.LongParam)) - _config = JSON.parse(_config) + _config = JSON.parse(window.decodeURIComponent(window.atob(result.LongParam))) _config.type = 'user' } catch (e) { + console.warn('Parse Failure') _config = '' } } diff --git a/src/locales/en-US/comtable.js b/src/locales/en-US/comtable.js index c043eba..b54c62b 100644 --- a/src/locales/en-US/comtable.js +++ b/src/locales/en-US/comtable.js @@ -222,6 +222,8 @@ 'header.form.func.print': '鎵撳嵃', 'header.form.execMode': '鎵ц鏂瑰紡', 'header.form.thawbutton': '瑙e喕鎸夐挳', + 'header.form.maxRows': '鏈�澶ц鏁�', + 'header.form.paste': '绮樿创', 'header.modal.form.edit': '琛ㄥ崟-缂栬緫', 'header.modal.search.edit': '鎼滅储鏉′欢-缂栬緫', 'header.modal.action.edit': '鎸夐挳-缂栬緫', diff --git a/src/locales/zh-CN/comtable.js b/src/locales/zh-CN/comtable.js index bd04879..7069ce7 100644 --- a/src/locales/zh-CN/comtable.js +++ b/src/locales/zh-CN/comtable.js @@ -222,6 +222,8 @@ 'header.form.func.print': '鎵撳嵃', 'header.form.execMode': '鎵ц鏂瑰紡', 'header.form.thawbutton': '瑙e喕鎸夐挳', + 'header.form.maxRows': '鏈�澶ц鏁�', + 'header.form.paste': '绮樿创', 'header.modal.form.edit': '琛ㄥ崟-缂栬緫', 'header.modal.search.edit': '鎼滅储鏉′欢-缂栬緫', 'header.modal.action.edit': '鎸夐挳-缂栬緫', diff --git a/src/tabviews/commontable/index.jsx b/src/tabviews/commontable/index.jsx index 704f247..dbdb145 100644 --- a/src/tabviews/commontable/index.jsx +++ b/src/tabviews/commontable/index.jsx @@ -81,9 +81,9 @@ let config = '' try { // 閰嶇疆淇℃伅瑙f瀽 - config = window.decodeURIComponent(window.atob(result.LongParam)) - config = JSON.parse(config) + config = JSON.parse(window.decodeURIComponent(window.atob(result.LongParam))) } catch (e) { + console.warn('Parse Failure') config = '' } diff --git a/src/tabviews/formtab/formgroup/index.jsx b/src/tabviews/formtab/formgroup/index.jsx index 06f6a5a..96d7240 100644 --- a/src/tabviews/formtab/formgroup/index.jsx +++ b/src/tabviews/formtab/formgroup/index.jsx @@ -33,13 +33,65 @@ } UNSAFE_componentWillReceiveProps (nextProps) { + const { datatype } = this.state if (nextProps.data && !is(fromJS(this.props.data), fromJS(nextProps.data))) { let _fieldsvalue = {} let _record = {} Object.keys(nextProps.data).forEach(key => { if (this.props.form.getFieldValue(key) !== undefined) { - _fieldsvalue[key] = nextProps.data[key] + if (datatype[key] === 'multiselect') { + let _val = nextProps.data[key] ? nextProps.data[key].split(',').filter(Boolean) : [] + _fieldsvalue[key] = _val + } else if (datatype[key] === 'date') { + let _val = nextProps.data[key] ? nextProps.data[key] : null + + if (_val) { + _val = moment(_val, 'YYYY-MM-DD') + } + + _fieldsvalue[key] = _val + } else if (datatype[key] === 'datemonth') { + let _val = nextProps.data[key] ? nextProps.data[key] : null + + if (_val) { + _val = moment(_val, 'YYYY-MM') + } + + _fieldsvalue[key] = _val + } else if (datatype[key] === 'datetime') { + let _val = nextProps.data[key] ? nextProps.data[key] : null + + if (_val) { + _val = moment(_val, 'YYYY-MM-DD HH:mm:ss') + } + + _fieldsvalue[key] = _val + } else if (datatype[key] === 'fileupload') { + let _val = nextProps.data[key] ? nextProps.data[key] : '' + + if (_val) { + try { + _val = _val.split(',').map((url, index) => { + return { + uid: `${index}`, + name: url.slice(url.lastIndexOf('/') + 1), + status: 'done', + url: url, + origin: true + } + }) + } catch { + _val = [] + } + } else { + _val = [] + } + + _fieldsvalue[key] = _val + } else { + _fieldsvalue[key] = nextProps.data[key] + } } else { _record[key] = nextProps.data[key] } @@ -391,6 +443,7 @@ ) } else if (item.type === 'datetime') { let _initval = this.props.data ? this.props.data[item.field] : '' + if (_initval && this.state.readin[item.field]) { _initval = moment(_initval, 'YYYY-MM-DD HH:mm:ss') } else { @@ -475,7 +528,7 @@ message: formRule.textarea.message } ] - })(<TextArea autosize={{ minRows: 2, maxRows: 6 }} disabled={item.readonly === 'true'} />)} + })(<TextArea autosize={{ minRows: 2, maxRows: item.maxRows || 6 }} disabled={item.readonly === 'true'} />)} </Form.Item> </Col> ) diff --git a/src/tabviews/formtab/index.jsx b/src/tabviews/formtab/index.jsx index 1ffd69f..0e02983 100644 --- a/src/tabviews/formtab/index.jsx +++ b/src/tabviews/formtab/index.jsx @@ -67,9 +67,9 @@ let config = '' try { // 閰嶇疆淇℃伅瑙f瀽 - config = window.decodeURIComponent(window.atob(result.LongParam)) - config = JSON.parse(config) + config = JSON.parse(window.decodeURIComponent(window.atob(result.LongParam))) } catch (e) { + console.warn('Parse Failure') config = '' } diff --git a/src/tabviews/managetable/index.jsx b/src/tabviews/managetable/index.jsx index 89a9c42..5f2cdf3 100644 --- a/src/tabviews/managetable/index.jsx +++ b/src/tabviews/managetable/index.jsx @@ -82,9 +82,9 @@ let config = '' try { // 閰嶇疆淇℃伅瑙f瀽 - config = window.decodeURIComponent(window.atob(result.LongParam)) - config = JSON.parse(config) + config = JSON.parse(window.decodeURIComponent(window.atob(result.LongParam))) } catch (e) { + console.warn('Parse Failure') config = '' } diff --git a/src/tabviews/subtable/index.jsx b/src/tabviews/subtable/index.jsx index 77b92a6..7c4d767 100644 --- a/src/tabviews/subtable/index.jsx +++ b/src/tabviews/subtable/index.jsx @@ -84,9 +84,9 @@ let config = '' try { // 閰嶇疆淇℃伅瑙f瀽 - config = window.decodeURIComponent(window.atob(result.LongParam)) - config = JSON.parse(config) + config = JSON.parse(window.decodeURIComponent(window.atob(result.LongParam))) } catch (e) { + console.warn('Parse Failure') config = '' } diff --git a/src/tabviews/subtabtable/index.jsx b/src/tabviews/subtabtable/index.jsx index 7a24d89..cafcb9f 100644 --- a/src/tabviews/subtabtable/index.jsx +++ b/src/tabviews/subtabtable/index.jsx @@ -64,9 +64,9 @@ let config = '' try { // 閰嶇疆淇℃伅瑙f瀽 - config = window.decodeURIComponent(window.atob(result.LongParam)) - config = JSON.parse(config) + config = JSON.parse(window.decodeURIComponent(window.atob(result.LongParam))) } catch (e) { + console.warn('Parse Failure') config = '' } diff --git a/src/tabviews/tableshare/actionList/index.jsx b/src/tabviews/tableshare/actionList/index.jsx index 4a49773..8e2e4a1 100644 --- a/src/tabviews/tableshare/actionList/index.jsx +++ b/src/tabviews/tableshare/actionList/index.jsx @@ -722,6 +722,10 @@ message: res.ErrMesg || this.props.dict['main.action.confirm.success'], duration: btn.verify && btn.verify.stime ? btn.verify.stime : 2 }) + } else if (res && res.ErrCode === 'Y') { // 鎵ц鎴愬姛 + Modal.success({ + title: res.ErrMesg || this.props.dict['main.action.confirm.success'] + }) } else if (res && res.ErrCode === '-1') { // 瀹屾垚鍚庝笉鎻愮ず // } else if (res.Relogin === 'true') { // 鍒囨崲鐢ㄦ埛鍔熻兘 @@ -818,10 +822,10 @@ let _LongParam = '' if (res.status && res.LongParam) { - _LongParam = window.decodeURIComponent(window.atob(res.LongParam)) try { - _LongParam = JSON.parse(_LongParam) + _LongParam = JSON.parse(window.decodeURIComponent(window.atob(res.LongParam))) } catch (e) { + console.warn('Parse Failure') _LongParam = '' } } diff --git a/src/tabviews/tableshare/mutilform/index.jsx b/src/tabviews/tableshare/mutilform/index.jsx index b3f3e45..0fa09e1 100644 --- a/src/tabviews/tableshare/mutilform/index.jsx +++ b/src/tabviews/tableshare/mutilform/index.jsx @@ -549,7 +549,7 @@ message: formRule.input.formMessage.replace('@max', _max) } ] - })(<TextArea autosize={{ minRows: 2, maxRows: 6 }} disabled={item.readonly === 'true'} />)} + })(<TextArea autosize={{ minRows: 2, maxRows: item.maxRows || 6 }} disabled={item.readonly === 'true'} />)} </Form.Item> </Col> ) diff --git a/src/templates/comtableconfig/actionform/index.jsx b/src/templates/comtableconfig/actionform/index.jsx index bc36764..92a7802 100644 --- a/src/templates/comtableconfig/actionform/index.jsx +++ b/src/templates/comtableconfig/actionform/index.jsx @@ -9,11 +9,12 @@ class MainSearch extends Component { static propTpyes = { - dict: PropTypes.object, // 瀛楀吀椤� - setting: PropTypes.object, // 椤甸潰璁剧疆 - formlist: PropTypes.any, // 琛ㄥ崟淇℃伅 - card: PropTypes.any, // 鎸夐挳淇℃伅 - tabs: PropTypes.array // 鎵�鏈夋爣绛鹃〉 + dict: PropTypes.object, // 瀛楀吀椤� + setting: PropTypes.object, // 椤甸潰璁剧疆 + formlist: PropTypes.any, // 琛ㄥ崟淇℃伅 + card: PropTypes.any, // 鎸夐挳淇℃伅 + tabs: PropTypes.array, // 鎵�鏈夋爣绛鹃〉 + inputSubmit: PropTypes.any // 鍥炶溅鎻愪氦浜嬩欢 } state = { @@ -417,6 +418,14 @@ } } + handleSubmit = (e) => { + e.preventDefault() + + if (this.props.inputSubmit) { + this.props.inputSubmit() + } + } + getFields() { const { getFieldDecorator } = this.props.form const fields = [] @@ -467,7 +476,7 @@ }, ..._rules ] - })(<Input placeholder="" autoComplete="off" disabled={item.readonly} />)} + })(<Input placeholder="" autoComplete="off" disabled={item.readonly} onPressEnter={this.handleSubmit} />)} </Form.Item> </Col> ) diff --git a/src/templates/comtableconfig/index.jsx b/src/templates/comtableconfig/index.jsx index 4710693..7fb6751 100644 --- a/src/templates/comtableconfig/index.jsx +++ b/src/templates/comtableconfig/index.jsx @@ -19,6 +19,7 @@ import TabForm from '@/templates/tableshare/tabform' import SearchForm from '@/templates/tableshare/searchform' import ColumnForm from '@/templates/tableshare/columnform' +import PasteForm from '@/templates/tableshare/pasteform' import DragElement from '@/templates/tableshare/dragelement' import ColspanForm from '@/templates/tableshare/colspanform' import GridBtnForm from '@/templates/tableshare/gridbtnform' @@ -612,9 +613,9 @@ // 瑙f瀽閰嶇疆锛屼慨鏀规ā鎬佹鏍囬鍚嶇О if (result.LongParam) { try { - _LongParam = window.decodeURIComponent(window.atob(result.LongParam)) - _LongParam = JSON.parse(_LongParam) + _LongParam = JSON.parse(window.decodeURIComponent(window.atob(result.LongParam))) } catch (e) { + console.warn('Parse Failure') _LongParam = '' } } @@ -623,6 +624,7 @@ _LongParam.setting.title = res.label _LongParam = window.btoa(window.encodeURIComponent(JSON.stringify(_LongParam))) } catch { + console.warn('Stringify Failure') _LongParam = '' } } else { @@ -669,9 +671,9 @@ // 瑙f瀽閰嶇疆锛屼慨鏀规ā鎬佹鏍囬鍚嶇О if (result.LongParam) { try { - _LongParam = window.decodeURIComponent(window.atob(result.LongParam)) - _LongParam = JSON.parse(_LongParam) + _LongParam = JSON.parse(window.decodeURIComponent(window.atob(result.LongParam))) } catch (e) { + console.warn('Parse Failure') _LongParam = '' } } @@ -694,6 +696,7 @@ _LongParam = window.btoa(window.encodeURIComponent(JSON.stringify(_LongParam))) _temp = 'FormTab' } catch { + console.warn('Stringify Failure') _LongParam = '' } } else { @@ -874,10 +877,10 @@ }).then(res => { let _LongParam = '' if (res.status && res.LongParam) { - _LongParam = window.decodeURIComponent(window.atob(res.LongParam)) try { - _LongParam = JSON.parse(_LongParam) + _LongParam = JSON.parse(window.decodeURIComponent(window.atob(res.LongParam))) } catch (e) { + console.warn('Parse Failure') _LongParam = '' } } @@ -1685,9 +1688,9 @@ if (result.LongParam) { try { - _LongParam = window.decodeURIComponent(window.atob(result.LongParam)) - _LongParam = JSON.parse(_LongParam) + _LongParam = JSON.parse(window.decodeURIComponent(window.atob(result.LongParam))) } catch (e) { + console.warn('Parse Failure') _LongParam = '' } } @@ -1752,14 +1755,22 @@ let tabParam = { // 娣诲姞鑿滃崟tab椤� func: 'sPC_sMenusTab_AddUpt', - MenuID: menu.MenuID, - LText: _config.tabs.map((item, index) => { - return `select '${menu.MenuID}' as MenuID ,'${item.linkTab}' as Tabid,'${item.label}' as TabName ,'${(index + 1) * 10}' as Sort` - }) + MenuID: menu.MenuID } - tabParam.LText = tabParam.LText.join(' union all ') - tabParam.LText = Utils.formatOptions(tabParam.LText) + let _LText = [] + let _index = 1 + + _config.tabgroups.forEach(groupId => { + _config[groupId].forEach(item => { + _LText.push(`select '${menu.MenuID}' as MenuID ,'${item.linkTab}' as Tabid,'${item.label}' as TabName ,'${_index * 10}' as Sort`) + _index++ + }) + }) + + _LText = _LText.join(' union all ') + + tabParam.LText = Utils.formatOptions(_LText) tabParam.timestamp = moment().format('YYYY-MM-DD HH:mm:ss') + '.000' tabParam.secretkey = Utils.encrypt(tabParam.LText, tabParam.timestamp) @@ -1804,6 +1815,7 @@ try { _ParentParam = window.btoa(window.encodeURIComponent(JSON.stringify(item.card))) } catch (e) { + console.warn('Stringify Failure') _ParentParam = null } @@ -2027,10 +2039,10 @@ if (result.LongParam) { let _subconfig = '' try { - _subconfig = window.decodeURIComponent(window.atob(result.LongParam)) - _subconfig = JSON.parse(_subconfig) + _subconfig = JSON.parse(window.decodeURIComponent(window.atob(result.LongParam))) _temp = _subconfig.type } catch (e) { + console.warn('Parse Failure') _subconfig = '' } @@ -2054,6 +2066,7 @@ }) _subconfig = window.btoa(window.encodeURIComponent(JSON.stringify(_subconfig))) } catch { + console.warn('Stringify Failure') _subconfig = '' } @@ -2554,10 +2567,10 @@ }) let _LongParam = '' if (res.LongParam) { - _LongParam = window.decodeURIComponent(window.atob(res.LongParam)) try { - _LongParam = JSON.parse(_LongParam) + _LongParam = JSON.parse(window.decodeURIComponent(window.atob(res.LongParam))) } catch (e) { + console.warn('Parse Failure') _LongParam = '' } } @@ -2740,6 +2753,7 @@ try { _conf = JSON.parse(window.decodeURIComponent(window.atob(menu.ParentParam))) } catch (e) { + console.warn('Parse Failure') _conf = '' } } @@ -2826,6 +2840,25 @@ Api.getSystemConfig(_param) }) this.props.handleView() + } + + pasteSubmit = () => { + this.pasteFormRef.handleConfirm().then(res => { + if (res.copyType !== 'action') { + notification.warning({ + top: 92, + message: '閰嶇疆淇℃伅鏍煎紡閿欒锛�', + duration: 10 + }) + return + } + + this.setState({ + modaltype: '' + }, () => { + this.handleAction(res, 'copy') + }) + }) } render () { @@ -2995,13 +3028,13 @@ placeholder={this.state.dict['header.form.search.placeholder']} /> </div> - <div className="action-list"> + <div className="action-list" id="action-list"> <Tooltip placement="bottomLeft" overlayClassName="middle" title="鍦ㄥ乏渚у伐鍏锋爮銆婃寜閽�嬩腑锛岄�夋嫨瀵瑰簲绫诲瀷鐨勬寜閽嫋鑷虫澶勬坊鍔狅紝濡傞�夋嫨鎸夐挳绫诲瀷涓鸿〃鍗曘�佹柊鏍囩椤电瓑鍚湁閰嶇疆椤甸潰鐨勬寜閽紝鍙湪宸︿晶宸ュ叿鏍�-鎸夐挳-鍙厤缃寜閽锛岀偣鍑绘寜閽畬鎴愮浉鍏抽厤缃�傛敞锛氬綋璁剧疆鎸夐挳鏄剧ず浣嶇疆涓鸿〃鏍兼椂锛屾樉绀哄垪浼氬鍔犳搷浣滃垪銆�"> <Icon type="question-circle" /> </Tooltip> - {/* <div className="thawbutton" title={this.state.dict['header.form.thawbutton']} onClick={this.handleThaw}> - <Icon type="unlock" /> - </div> */} + <div className="copybutton" title={this.state.dict['header.form.paste']} onClick={() => {this.setState({modaltype: 'paste'})}}> + <Icon type="snippets" /> + </div> <DragElement type="action" list={this.state.config.action} @@ -3073,6 +3106,7 @@ <SearchForm dict={this.state.dict} card={this.state.card} + inputSubmit={this.handleSubmit} optionLibs={this.state.optionLibs} formlist={this.state.formlist} wrappedComponentRef={(inst) => this.searchFormRef = inst} @@ -3097,6 +3131,7 @@ card={this.state.card} tabs={this.state.tabviews} formlist={this.state.formlist} + inputSubmit={this.handleSubmit} setting={this.state.config.setting} wrappedComponentRef={(inst) => this.actionFormRef = inst} /> @@ -3114,6 +3149,7 @@ <ColumnForm dict={this.state.dict} card={this.state.card} + inputSubmit={this.handleSubmit} formlist={this.state.formlist} wrappedComponentRef={(inst) => this.columnFormRef = inst} /> @@ -3131,6 +3167,7 @@ <ColspanForm dict={this.state.dict} card={this.state.card} + inputSubmit={this.handleSubmit} columns={this.state.config.columns} wrappedComponentRef={(inst) => this.columnFormRef = inst} /> @@ -3147,6 +3184,7 @@ > <GridBtnForm dict={this.state.dict} + inputSubmit={this.handleSubmit} card={this.state.config.gridBtn} wrappedComponentRef={(inst) => this.gridBtnFormRef = inst} /> @@ -3163,10 +3201,11 @@ > <TabForm type="tabs" - tabs={this.state.tabviews} dict={this.state.dict} card={this.state.card} + tabs={this.state.tabviews} formlist={this.state.formlist} + inputSubmit={this.handleSubmit} wrappedComponentRef={(inst) => this.tabsFormRef = inst} /> </Modal> @@ -3261,6 +3300,7 @@ <SettingForm dict={this.state.dict} menu={this.props.menu} + inputSubmit={this.settingSave} data={this.state.config.setting} columns={this.state.config.columns} usefulFields={this.props.permFuncField} @@ -3295,6 +3335,21 @@ {!this.state.thawbtnlist && <Spin style={{marginLeft: 'calc(50% - 22px)', marginTop: '70px', marginBottom: '70px'}} size="large" />} {this.state.thawbtnlist && <TransferForm ref="trawmenu" dict={this.state.dict} menulist={this.state.thawbtnlist}/>} </Modal> + {/* 鎸夐挳閰嶇疆淇℃伅绮樿创澶嶅埗 */} + <Modal + title={this.state.dict['header.form.paste']} + visible={modaltype === 'paste'} + width={600} + maskClosable={false} + onOk={this.pasteSubmit} + onCancel={() => {this.setState({modaltype: ''})}} + destroyOnClose + > + <PasteForm + dict={this.state.dict} + wrappedComponentRef={(inst) => this.pasteFormRef = inst} + /> + </Modal> {this.state.loading && <Spin size="large" />} </div> ) diff --git a/src/templates/comtableconfig/index.scss b/src/templates/comtableconfig/index.scss index d1a0239..064a25d 100644 --- a/src/templates/comtableconfig/index.scss +++ b/src/templates/comtableconfig/index.scss @@ -308,14 +308,15 @@ display: inline-block; } } - .thawbutton { + .copybutton { position: absolute; right: 10px; top: 5px; + z-index: 2; padding: 5px; cursor: pointer; i { - font-size: 18px; + font-size: 16px; } } } @@ -494,7 +495,7 @@ > .anticon-setting { position: absolute; font-size: 18px; - right: 5px; + right: 7px; top: 10px; padding: 10px; z-index: 1; diff --git a/src/templates/comtableconfig/settingform/index.jsx b/src/templates/comtableconfig/settingform/index.jsx index 33c6b40..84d451b 100644 --- a/src/templates/comtableconfig/settingform/index.jsx +++ b/src/templates/comtableconfig/settingform/index.jsx @@ -12,7 +12,8 @@ menu: PropTypes.object, data: PropTypes.object, columns: PropTypes.array, - usefulFields: PropTypes.array + usefulFields: PropTypes.array, + inputSubmit: PropTypes.any // 鍥炶溅鎻愪氦浜嬩欢 } state = { @@ -113,6 +114,14 @@ }) } + handleSubmit = (e) => { + e.preventDefault() + + if (this.props.inputSubmit) { + this.props.inputSubmit() + } + } + render() { const { data, dict, menu, usefulFields } = this.props const { getFieldDecorator } = this.props.form @@ -149,7 +158,7 @@ message: formRule.input.message } ] - })(<Input placeholder="" autoComplete="off" />)} + })(<Input placeholder="" autoComplete="off" onPressEnter={this.handleSubmit} />)} </Form.Item> </Col> <Col span={12}> @@ -205,7 +214,7 @@ message: formRule.input.message } ] - })(<Input placeholder="" autoComplete="off" disabled={this.state.interReadonly} />)} + })(<Input placeholder="" autoComplete="off" disabled={this.state.interReadonly} onPressEnter={this.handleSubmit} />)} </Form.Item> </Col> : null} {interType === 'outer' ? <Col span={12}> @@ -221,7 +230,7 @@ message: formRule.func.maxMessage } ] - })(<Input placeholder="" autoComplete="off" />)} + })(<Input placeholder="" autoComplete="off" onPressEnter={this.handleSubmit} />)} </Form.Item> </Col> : null} {interType !== 'outer' ? <Col span={12}> @@ -242,7 +251,7 @@ message: formRule.func.maxMessage } ] - })(<Input placeholder="" autoComplete="off" />)} + })(<Input placeholder="" autoComplete="off" onPressEnter={this.handleSubmit} />)} </Form.Item> </Col> : null} {interType !== 'outer' ? <Col span={24} style={{paddingLeft: '7px'}}> @@ -330,7 +339,7 @@ message: formRule.input.message } ] - })(<Input placeholder="ID asc, UID desc" autoComplete="off" />)} + })(<Input placeholder="ID asc, UID desc" autoComplete="off" onPressEnter={this.handleSubmit} />)} </Form.Item> </Col> <Col span={12}> diff --git a/src/templates/formtabconfig/actionform/index.jsx b/src/templates/formtabconfig/actionform/index.jsx index bb9b201..c1ed1b0 100644 --- a/src/templates/formtabconfig/actionform/index.jsx +++ b/src/templates/formtabconfig/actionform/index.jsx @@ -9,10 +9,11 @@ class MainSearch extends Component { static propTpyes = { - dict: PropTypes.object, // 瀛楀吀椤� - formlist: PropTypes.any, // 琛ㄥ崟淇℃伅 - card: PropTypes.any, // 鎸夐挳淇℃伅 - tabs: PropTypes.array // 鎵�鏈夋爣绛鹃〉 + dict: PropTypes.object, // 瀛楀吀椤� + formlist: PropTypes.any, // 琛ㄥ崟淇℃伅 + card: PropTypes.any, // 鎸夐挳淇℃伅 + tabs: PropTypes.array, // 鎵�鏈夋爣绛鹃〉 + inputSubmit: PropTypes.any // 鍥炶溅鎻愪氦浜嬩欢 } state = { @@ -238,6 +239,14 @@ } } + handleSubmit = (e) => { + e.preventDefault() + + if (this.props.inputSubmit) { + this.props.inputSubmit() + } + } + getFields() { const { getFieldDecorator } = this.props.form const fields = [] @@ -288,7 +297,7 @@ }, ..._rules ] - })(<Input placeholder="" autoComplete="off" disabled={item.readonly} />)} + })(<Input placeholder="" autoComplete="off" disabled={item.readonly} onPressEnter={this.handleSubmit} />)} </Form.Item> </Col> ) diff --git a/src/templates/formtabconfig/dragelement/card.jsx b/src/templates/formtabconfig/dragelement/card.jsx index 9bf2c1f..00f0036 100644 --- a/src/templates/formtabconfig/dragelement/card.jsx +++ b/src/templates/formtabconfig/dragelement/card.jsx @@ -8,7 +8,7 @@ const { MonthPicker } = DatePicker const { TextArea } = Input -const Card = ({ id, type, cols, card, moveCard, findCard, editCard, delCard, profileCard, hasDrop }) => { +const Card = ({ id, type, cols, card, moveCard, findCard, editCard, delCard, profileCard, hasDrop, copyCard }) => { const originalIndex = findCard(id).index const [{ isDragging }, drag] = useDrag({ item: { type: ItemTypes[type], id, originalIndex }, @@ -40,6 +40,10 @@ const del = () => { delCard(id) + } + + const copy = () => { + copyCard(id) } const profile = () => { @@ -91,6 +95,7 @@ <div className={'ant-col ant-form-item-label ant-col-xs-24 ' + labelCol}> <label title={card.label}>{card.label}</label> <Icon className="edit" title="缂栬緫" type="edit" onClick={edit} /> + <Icon className="edit copy" title="澶嶅埗" type="copy" onClick={copy} /> <Icon className="edit close" title="鍒犻櫎" type="close" onClick={del} /> </div> <div className={'ant-col ant-form-item-control-wrapper ant-col-xs-24 ' + wrapCol}> diff --git a/src/templates/formtabconfig/dragelement/index.jsx b/src/templates/formtabconfig/dragelement/index.jsx index 1b0d594..337f491 100644 --- a/src/templates/formtabconfig/dragelement/index.jsx +++ b/src/templates/formtabconfig/dragelement/index.jsx @@ -40,6 +40,19 @@ const { card } = findCard(id) handleMenu(card) } + + const copyCard = id => { + const { card } = findCard(id) + + let _card = JSON.parse(JSON.stringify(card)) + + _card.originUuid = _card.uuid + _card.uuid = Utils.getuuid() + _card.iscopy = true + _card.focus = true + + handleMenu(_card) + } const profileCard = id => { const { card } = findCard(id) @@ -156,6 +169,7 @@ moveCard={moveCard} editCard={editCard} delCard={delCard} + copyCard={copyCard} findCard={findCard} hasDrop={hasDrop} /> diff --git a/src/templates/formtabconfig/groupform/index.jsx b/src/templates/formtabconfig/groupform/index.jsx index 139ba52..4689d8e 100644 --- a/src/templates/formtabconfig/groupform/index.jsx +++ b/src/templates/formtabconfig/groupform/index.jsx @@ -8,9 +8,10 @@ class GroupForm extends Component { static propTpyes = { - dict: PropTypes.object, // 瀛楀吀椤� - group: PropTypes.object, // 瀛楀吀椤� - groups: PropTypes.array + dict: PropTypes.object, // 瀛楀吀椤� + group: PropTypes.object, // 褰撳墠鍒嗙粍 + groups: PropTypes.array, // 鎵�鏈夊垎缁� + inputSubmit: PropTypes.any // 鍥炶溅鎻愪氦浜嬩欢 } state = { @@ -68,6 +69,14 @@ }) } + handleSubmit = (e) => { + e.preventDefault() + + if (this.props.inputSubmit) { + this.props.inputSubmit() + } + } + render() { const { group, groups } = this.props const { getFieldDecorator } = this.props.form @@ -99,7 +108,7 @@ message: formRule.input.message } ] - })(<Input placeholder="" autoComplete="off"/>)} + })(<Input placeholder="" autoComplete="off" onPressEnter={this.handleSubmit} />)} </Form.Item> </Col> <Col span={12}> diff --git a/src/templates/formtabconfig/index.jsx b/src/templates/formtabconfig/index.jsx index 31b1c27..0f47aef 100644 --- a/src/templates/formtabconfig/index.jsx +++ b/src/templates/formtabconfig/index.jsx @@ -371,7 +371,7 @@ } handleSearch = (card) => { - const {menu} = this.props + const { menu } = this.props const { config } = this.state let _inputfields = [] let _linkableFields = [] @@ -558,7 +558,7 @@ */ handleSubmit = () => { const { btnTab } = this.props - const { config, modaltype, optionLibs } = this.state + const { config, modaltype, optionLibs, card } = this.state if (modaltype === 'search') { this.modalFormRef.handleConfirm().then(res => { @@ -583,19 +583,42 @@ options: res.options }) } - let _groups = config.groups.map(group => { - group.sublist = group.sublist.map(item => { - if (item.uuid === res.uuid) { - return res - } else { - return item + + let _groups = null + + if (card.iscopy) { + _groups = config.groups.map(group => { + let _index = null + group.sublist.forEach((item, index) => { + if (item.uuid === card.originUuid) { + _index = index + } + }) + + if (_index !== null) { + group.sublist.splice(_index + 1, 0, res) } + + if (group.isDefault) { + group.sublist = group.sublist.filter(item => !item.origin) + } + return group }) - if (group.isDefault) { - group.sublist = group.sublist.filter(item => !item.origin) - } - return group - }) + } else { + _groups = config.groups.map(group => { + group.sublist = group.sublist.map(item => { + if (item.uuid === res.uuid) { + return res + } else { + return item + } + }) + if (group.isDefault) { + group.sublist = group.sublist.filter(item => !item.origin) + } + return group + }) + } this.setState({ config: {...config, groups: _groups}, @@ -711,10 +734,10 @@ }).then(res => { let _LongParam = '' if (res.status && res.LongParam) { - _LongParam = window.decodeURIComponent(window.atob(res.LongParam)) try { - _LongParam = JSON.parse(_LongParam) + _LongParam = JSON.parse(window.decodeURIComponent(window.atob(res.LongParam))) } catch (e) { + console.warn('Parse Failure') _LongParam = '' } } @@ -1373,9 +1396,9 @@ if (result.LongParam) { try { - _LongParam = window.decodeURIComponent(window.atob(result.LongParam)) - _LongParam = JSON.parse(_LongParam) + _LongParam = JSON.parse(window.decodeURIComponent(window.atob(result.LongParam))) } catch (e) { + console.warn('Parse Failure') _LongParam = '' } } @@ -1441,13 +1464,23 @@ let tabParam = { // 娣诲姞鑿滃崟tab椤� func: 'sPC_sMenusTab_AddUpt', - MenuID: btnTab.uuid, - LText: config.tabs.map((item, index) => { - return `select '${btnTab.uuid}' as MenuID ,'${item.linkTab}' as Tabid,'${item.label}' as TabName ,'${(index + 1) * 10}' as Sort` - }) + MenuID: btnTab.uuid } - tabParam.LText = tabParam.LText.join(' union all ') - tabParam.LText = Utils.formatOptions(tabParam.LText) + + let _LText = [] + let _index = 1 + + config.tabgroups.forEach(groupId => { + config[groupId].forEach(item => { + _LText.push(`select '${btnTab.uuid}' as MenuID ,'${item.linkTab}' as Tabid,'${item.label}' as TabName ,'${_index * 10}' as Sort`) + _index++ + }) + }) + + _LText = _LText.join(' union all ') + + tabParam.LText = Utils.formatOptions(_LText) + tabParam.timestamp = moment().format('YYYY-MM-DD HH:mm:ss') + '.000' tabParam.secretkey = Utils.encrypt(tabParam.LText, tabParam.timestamp) @@ -1898,10 +1931,10 @@ }) let _LongParam = '' if (res.LongParam) { - _LongParam = window.decodeURIComponent(window.atob(res.LongParam)) try { - _LongParam = JSON.parse(_LongParam) + _LongParam = JSON.parse(window.decodeURIComponent(window.atob(res.LongParam))) } catch (e) { + console.warn('Parse Failure') _LongParam = '' } } @@ -2328,7 +2361,7 @@ </DndProvider> {/* 缂栬緫琛ㄥ崟 */} <Modal - title={this.state.dict['header.modal.form.edit']} + title={this.state.card && this.state.card.iscopy ? this.state.dict['header.modal.form.copy'] : this.state.dict['header.modal.form.edit']} visible={modaltype === 'search'} width={700} maskClosable={false} @@ -2340,6 +2373,7 @@ dict={this.state.dict} card={this.state.card} formlist={this.state.formlist} + inputSubmit={this.handleSubmit} optionLibs={this.state.optionLibs} wrappedComponentRef={(inst) => this.modalFormRef = inst} /> @@ -2364,6 +2398,7 @@ card={this.state.card} tabs={this.state.tabviews} formlist={this.state.formlist} + inputSubmit={this.handleSubmit} wrappedComponentRef={(inst) => this.actionFormRef = inst} /> </Modal> @@ -2383,6 +2418,7 @@ card={this.state.card} tabs={this.state.tabviews} formlist={this.state.formlist} + inputSubmit={this.handleSubmit} wrappedComponentRef={(inst) => this.tabsFormRef = inst} /> </Modal> @@ -2453,6 +2489,7 @@ dict={this.state.dict} menu={this.props.menu} config={this.state.config} + inputSubmit={this.settingSave} usefulFields={this.props.permFuncField} wrappedComponentRef={(inst) => this.settingRef = inst} /> @@ -2483,8 +2520,9 @@ > <GroupForm groups={config.groups} - group={this.state.editgroup} dict={this.state.dict} + group={this.state.editgroup} + inputSubmit={this.handleGroupSave} wrappedComponentRef={(inst) => this.groupRef = inst} /> </Modal> diff --git a/src/templates/formtabconfig/index.scss b/src/templates/formtabconfig/index.scss index fea4310..04cf656 100644 --- a/src/templates/formtabconfig/index.scss +++ b/src/templates/formtabconfig/index.scss @@ -255,7 +255,6 @@ } .edit { position: absolute; - // left: calc(34% - 100px); right: 100px; top: -5px; color: #1890ff; @@ -263,9 +262,12 @@ display: none; } .edit.close { - // left: calc(34% - 80px); - right: 80px; + right: 60px; color: #ff4d4f; + } + .edit.copy { + right: 80px; + color: #26C281; } } .page-card:hover { @@ -438,7 +440,7 @@ > .anticon-setting { position: absolute; font-size: 18px; - right: 5px; + right: 7px; top: 10px; padding: 10px; z-index: 1; diff --git a/src/templates/formtabconfig/settingform/index.jsx b/src/templates/formtabconfig/settingform/index.jsx index 2d163bd..7dafe72 100644 --- a/src/templates/formtabconfig/settingform/index.jsx +++ b/src/templates/formtabconfig/settingform/index.jsx @@ -11,7 +11,8 @@ dict: PropTypes.object, // 瀛楀吀椤� menu: PropTypes.object, config: PropTypes.object, - usefulFields: PropTypes.array + usefulFields: PropTypes.array, + inputSubmit: PropTypes.any // 鍥炶溅鎻愪氦浜嬩欢 } state = { @@ -132,6 +133,14 @@ }) } + handleSubmit = (e) => { + e.preventDefault() + + if (this.props.inputSubmit) { + this.props.inputSubmit() + } + } + render() { const { dict, usefulFields, menu } = this.props const { getFieldDecorator } = this.props.form @@ -168,7 +177,7 @@ message: formRule.input.message } ] - })(<Input placeholder="" autoComplete="off" />)} + })(<Input placeholder="" autoComplete="off" onPressEnter={this.handleSubmit} />)} </Form.Item> </Col> <Col span={12}> @@ -241,7 +250,7 @@ message: formRule.input.message } ] - })(<Input placeholder="" autoComplete="off" disabled={this.state.interReadonly} />)} + })(<Input placeholder="" autoComplete="off" disabled={this.state.interReadonly} onPressEnter={this.handleSubmit} />)} </Form.Item> </Col> : null} {datatype === 'query' && interType !== 'outer' ? <Col span={12}> @@ -262,7 +271,7 @@ message: formRule.func.maxMessage } ] - })(<Input placeholder="" autoComplete="off" />)} + })(<Input placeholder="" autoComplete="off" onPressEnter={this.handleSubmit} />)} </Form.Item> </Col> : null} {datatype === 'query' && interType !== 'outer' ? <Col span={24}> @@ -290,7 +299,7 @@ message: formRule.func.maxMessage } ] - })(<Input placeholder="" autoComplete="off" />)} + })(<Input placeholder="" autoComplete="off" onPressEnter={this.handleSubmit} />)} </Form.Item> </Col> : null} <Col span={12}> diff --git a/src/templates/modalconfig/groupform/index.jsx b/src/templates/modalconfig/groupform/index.jsx index 3fedb7b..426ba3c 100644 --- a/src/templates/modalconfig/groupform/index.jsx +++ b/src/templates/modalconfig/groupform/index.jsx @@ -10,7 +10,8 @@ static propTpyes = { dict: PropTypes.object, // 瀛楀吀椤� group: PropTypes.object, // 瀛楀吀椤� - config: PropTypes.object + config: PropTypes.object, + inputSubmit: PropTypes.any // 鍥炶溅鎻愪氦浜嬩欢 } state = { @@ -73,6 +74,14 @@ }) } + handleSubmit = (e) => { + e.preventDefault() + + if (this.props.inputSubmit) { + this.props.inputSubmit() + } + } + render() { const { group, config } = this.props const { getFieldDecorator } = this.props.form @@ -104,7 +113,7 @@ message: formRule.input.message } ] - })(<Input placeholder="" autoComplete="off"/>)} + })(<Input placeholder="" autoComplete="off" onPressEnter={this.handleSubmit} />)} </Form.Item> </Col> <Col span={12}> diff --git a/src/templates/modalconfig/index.jsx b/src/templates/modalconfig/index.jsx index 62b8d6a..803641a 100644 --- a/src/templates/modalconfig/index.jsx +++ b/src/templates/modalconfig/index.jsx @@ -1213,8 +1213,8 @@ dict={this.state.dict} card={this.state.card} formlist={this.state.formlist} - optionLibs={this.state.optionLibs} inputSubmit={this.handleSubmit} + optionLibs={this.state.optionLibs} wrappedComponentRef={(inst) => this.formRef = inst} />} </Modal> @@ -1247,8 +1247,9 @@ destroyOnClose > <SettingForm - dict={this.state.dict} config={config} + dict={this.state.dict} + inputSubmit={this.settingSave} wrappedComponentRef={(inst) => this.settingRef = inst} /> </Modal> @@ -1278,8 +1279,9 @@ > <GroupForm config={config} - group={this.state.curgroup} dict={this.state.dict} + group={this.state.curgroup} + inputSubmit={this.handleGroupSave} wrappedComponentRef={(inst) => this.groupRef = inst} /> </Modal> diff --git a/src/templates/modalconfig/index.scss b/src/templates/modalconfig/index.scss index 2970012..c29a540 100644 --- a/src/templates/modalconfig/index.scss +++ b/src/templates/modalconfig/index.scss @@ -285,7 +285,7 @@ > .anticon-setting { position: absolute; font-size: 16px; - right: 10px; + right: 15px; top: 10px; } } diff --git a/src/templates/modalconfig/settingform/index.jsx b/src/templates/modalconfig/settingform/index.jsx index d1d0e58..f019104 100644 --- a/src/templates/modalconfig/settingform/index.jsx +++ b/src/templates/modalconfig/settingform/index.jsx @@ -6,8 +6,9 @@ class SettingForm extends Component { static propTpyes = { - dict: PropTypes.object, // 瀛楀吀椤� - config: PropTypes.object // 琛ㄥ崟閰嶇疆淇℃伅 + dict: PropTypes.object, // 瀛楀吀椤� + config: PropTypes.object, // 琛ㄥ崟閰嶇疆淇℃伅 + inputSubmit: PropTypes.any // 鍥炶溅鎻愪氦浜嬩欢 } state = { @@ -52,6 +53,14 @@ }) } + handleSubmit = (e) => { + e.preventDefault() + + if (this.props.inputSubmit) { + this.props.inputSubmit() + } + } + render() { const { config, dict } = this.props const { fields } = this.state @@ -81,7 +90,7 @@ message: formRule.input.message } ] - })(<Input placeholder="" autoComplete="off"/>)} + })(<Input placeholder="" autoComplete="off" onPressEnter={this.handleSubmit} />)} </Form.Item> </Col> <Col span={12}> diff --git a/src/templates/subtableconfig/actionform/index.jsx b/src/templates/subtableconfig/actionform/index.jsx index 415be65..1e1c9e9 100644 --- a/src/templates/subtableconfig/actionform/index.jsx +++ b/src/templates/subtableconfig/actionform/index.jsx @@ -9,11 +9,12 @@ class MainSearch extends Component { static propTpyes = { - dict: PropTypes.object, // 瀛楀吀椤� - setting: PropTypes.object, // 椤甸潰璁剧疆 - formlist: PropTypes.any, // 琛ㄥ崟淇℃伅 - card: PropTypes.any, // 鎸夐挳淇℃伅 - tabs: PropTypes.array // 鎵�鏈夋爣绛鹃〉 + dict: PropTypes.object, // 瀛楀吀椤� + setting: PropTypes.object, // 椤甸潰璁剧疆 + formlist: PropTypes.any, // 琛ㄥ崟淇℃伅 + card: PropTypes.any, // 鎸夐挳淇℃伅 + tabs: PropTypes.array, // 鎵�鏈夋爣绛鹃〉 + inputSubmit: PropTypes.any // 鍥炶溅鎻愪氦浜嬩欢 } state = { @@ -393,6 +394,14 @@ } } + handleSubmit = (e) => { + e.preventDefault() + + if (this.props.inputSubmit) { + this.props.inputSubmit() + } + } + getFields() { const { getFieldDecorator } = this.props.form const fields = [] @@ -442,7 +451,7 @@ }, ..._rules ] - })(<Input placeholder="" autoComplete="off" disabled={item.readonly} />)} + })(<Input placeholder="" autoComplete="off" disabled={item.readonly} onPressEnter={this.handleSubmit} />)} </Form.Item> </Col> ) diff --git a/src/templates/subtableconfig/index.jsx b/src/templates/subtableconfig/index.jsx index e5e7ccd..6cc9aab 100644 --- a/src/templates/subtableconfig/index.jsx +++ b/src/templates/subtableconfig/index.jsx @@ -19,6 +19,7 @@ import SearchForm from '@/templates/tableshare/searchform' import ColumnForm from '@/templates/tableshare/columnform' import DragElement from '@/templates/tableshare/dragelement' +import PasteForm from '@/templates/tableshare/pasteform' import ColspanForm from '@/templates/tableshare/colspanform' import GridBtnForm from '@/templates/tableshare/gridbtnform' import EditCard from '@/templates/tableshare/editcard' @@ -489,9 +490,9 @@ // 瑙f瀽閰嶇疆锛屼慨鏀规ā鎬佹鏍囬鍚嶇О if (result.LongParam) { try { - _LongParam = window.decodeURIComponent(window.atob(result.LongParam)) - _LongParam = JSON.parse(_LongParam) + _LongParam = JSON.parse(window.decodeURIComponent(window.atob(result.LongParam))) } catch (e) { + console.warn('Parse Failure') _LongParam = '' } } @@ -500,6 +501,7 @@ _LongParam.setting.title = res.label _LongParam = window.btoa(window.encodeURIComponent(JSON.stringify(_LongParam))) } catch { + console.warn('Stringify Failure') _LongParam = '' } } else { @@ -657,10 +659,10 @@ }).then(res => { let _LongParam = '' if (res.status && res.LongParam) { - _LongParam = window.decodeURIComponent(window.atob(res.LongParam)) try { - _LongParam = JSON.parse(_LongParam) + _LongParam = JSON.parse(window.decodeURIComponent(window.atob(res.LongParam))) } catch (e) { + console.warn('Parse Failure') _LongParam = '' } } @@ -1381,9 +1383,9 @@ if (result.LongParam) { try { - _LongParam = window.decodeURIComponent(window.atob(result.LongParam)) - _LongParam = JSON.parse(_LongParam) + _LongParam = JSON.parse(window.decodeURIComponent(window.atob(result.LongParam))) } catch (e) { + console.warn('Parse Failure') _LongParam = '' } } @@ -1475,6 +1477,7 @@ try { _ParentParam = window.btoa(window.encodeURIComponent(JSON.stringify(item.card))) } catch (e) { + console.warn('Stringify Failure') _ParentParam = null } @@ -1643,10 +1646,10 @@ let _LongParam = '' if (result.LongParam) { - _LongParam = window.decodeURIComponent(window.atob(result.LongParam)) try { - _LongParam = JSON.parse(_LongParam) + _LongParam = JSON.parse(window.decodeURIComponent(window.atob(result.LongParam))) } catch (e) { + console.warn('Parse Failure') _LongParam = '' } } @@ -2084,10 +2087,10 @@ }) let _LongParam = '' if (res.LongParam) { - _LongParam = window.decodeURIComponent(window.atob(res.LongParam)) try { - _LongParam = JSON.parse(_LongParam) + _LongParam = JSON.parse(window.decodeURIComponent(window.atob(res.LongParam))) } catch (e) { + console.warn('Parse Failure') _LongParam = '' } } @@ -2199,6 +2202,7 @@ try { _conf = JSON.parse(window.decodeURIComponent(window.atob(menu.ParentParam))) } catch (e) { + console.warn('Parse Failure') _conf = '' } } @@ -2251,6 +2255,32 @@ thawBtnVisible: false }) } + } + + pasteSubmit = () => { + this.pasteFormRef.handleConfirm().then(res => { + if (res.copyType !== 'action') { + notification.warning({ + top: 92, + message: '閰嶇疆淇℃伅鏍煎紡閿欒锛�', + duration: 10 + }) + return + } else if (!['pop', 'prompt', 'exec', 'excelIn', 'excelOut', 'popview'].includes(res.OpenType)) { + notification.warning({ + top: 92, + message: '涓嶆敮鎸佹鎵撳紑鏂瑰紡锛�', + duration: 10 + }) + return + } + + this.setState({ + modaltype: '' + }, () => { + this.handleAction(res, 'copy') + }) + }) } render () { @@ -2398,6 +2428,9 @@ <Tooltip placement="bottomLeft" overlayClassName="middle" title="鍦ㄥ乏渚у伐鍏锋爮銆婃寜閽�嬩腑锛岄�夋嫨瀵瑰簲绫诲瀷鐨勬寜閽嫋鑷虫澶勬坊鍔狅紝濡傞�夋嫨鎸夐挳绫诲瀷涓鸿〃鍗曘�佹柊鏍囩椤电瓑鍚湁閰嶇疆椤甸潰鐨勬寜閽紝鍙湪宸︿晶宸ュ叿鏍�-鎸夐挳-鍙厤缃寜閽锛岀偣鍑绘寜閽畬鎴愮浉鍏抽厤缃�傛敞锛氬綋璁剧疆鎸夐挳鏄剧ず浣嶇疆涓鸿〃鏍兼椂锛屾樉绀哄垪浼氬鍔犳搷浣滃垪銆�"> <Icon type="question-circle" /> </Tooltip> + <div className="copybutton" title={this.state.dict['header.form.paste']} onClick={() => {this.setState({modaltype: 'paste'})}}> + <Icon type="snippets" /> + </div> <DragElement type="action" list={this.state.config.action} @@ -2444,6 +2477,7 @@ dict={this.state.dict} card={this.state.card} formlist={this.state.formlist} + inputSubmit={this.handleSubmit} optionLibs={this.state.optionLibs} wrappedComponentRef={(inst) => this.searchFormRef = inst} /> @@ -2467,6 +2501,7 @@ card={this.state.card} tabs={this.state.tabviews} formlist={this.state.formlist} + inputSubmit={this.handleSubmit} setting={this.state.config.setting} wrappedComponentRef={(inst) => this.actionFormRef = inst} /> @@ -2484,6 +2519,7 @@ <ColumnForm dict={this.state.dict} card={this.state.card} + inputSubmit={this.handleSubmit} formlist={this.state.formlist} wrappedComponentRef={(inst) => this.columnFormRef = inst} /> @@ -2501,6 +2537,7 @@ <ColspanForm dict={this.state.dict} card={this.state.card} + inputSubmit={this.handleSubmit} columns={this.state.config.columns} wrappedComponentRef={(inst) => this.columnFormRef = inst} /> @@ -2517,6 +2554,7 @@ > <GridBtnForm dict={this.state.dict} + inputSubmit={this.handleSubmit} card={this.state.config.gridBtn} wrappedComponentRef={(inst) => this.gridBtnFormRef = inst} /> @@ -2604,6 +2642,7 @@ <SettingForm dict={this.state.dict} tabId={this.state.config.uuid} + inputSubmit={this.settingSave} data={this.state.config.setting} columns={this.state.config.columns} usefulFields={this.props.permFuncField} @@ -2638,6 +2677,21 @@ {!this.state.thawbtnlist && <Spin style={{marginLeft: 'calc(50% - 22px)', marginTop: '70px', marginBottom: '70px'}} size="large" />} {this.state.thawbtnlist && <TransferForm ref="trawmenu" dict={this.state.dict} menulist={this.state.thawbtnlist}/>} </Modal> + {/* 鎸夐挳閰嶇疆淇℃伅绮樿创澶嶅埗 */} + <Modal + title={this.state.dict['header.form.paste']} + visible={modaltype === 'paste'} + width={600} + maskClosable={false} + onOk={this.pasteSubmit} + onCancel={() => {this.setState({modaltype: ''})}} + destroyOnClose + > + <PasteForm + dict={this.state.dict} + wrappedComponentRef={(inst) => this.pasteFormRef = inst} + /> + </Modal> {this.state.loading && <Spin size="large" />} </div> ) diff --git a/src/templates/subtableconfig/index.scss b/src/templates/subtableconfig/index.scss index a144c1d..989b573 100644 --- a/src/templates/subtableconfig/index.scss +++ b/src/templates/subtableconfig/index.scss @@ -302,6 +302,17 @@ display: inline-block; } } + .copybutton { + position: absolute; + right: 10px; + top: 5px; + z-index: 2; + padding: 5px; + cursor: pointer; + i { + font-size: 16px; + } + } } .column-list { position: relative; @@ -381,58 +392,10 @@ } } } - .tab-list { - position: relative; - padding: 30px 20px 0px; - .ant-switch { - position: absolute; - right: 20px; - top: 20px; - } - > .ant-row { - min-height: 47px; - .page-card { - position: relative; - padding: 0px; - > div { - padding: 12px 0px 0px; - cursor: move; - } - } - .ant-tabs-tab { - .edit { - position: absolute; - left: 0; - top: 0px; - color: #1890ff; - cursor: pointer; - display: none; - } - .edit.close { - left: 20px; - color: #ff4d4f; - } - } - .ant-tabs-bar { - min-height: 55px; - } - .ant-tabs-tab:hover { - .edit { - display: inline-block; - } - } - } - > .anticon-setting { - position: absolute; - font-size: 18px; - right: 15px; - top: 30px; - } - } > .anticon-setting { position: absolute; font-size: 18px; - right: 15px; + right: 7px; top: 10px; } } diff --git a/src/templates/subtableconfig/settingform/index.jsx b/src/templates/subtableconfig/settingform/index.jsx index 8b4cc1b..0754355 100644 --- a/src/templates/subtableconfig/settingform/index.jsx +++ b/src/templates/subtableconfig/settingform/index.jsx @@ -12,7 +12,8 @@ tabId: PropTypes.string, data: PropTypes.object, columns: PropTypes.array, - usefulFields: PropTypes.array + usefulFields: PropTypes.array, + inputSubmit: PropTypes.any // 鍥炶溅鎻愪氦浜嬩欢 } state = { @@ -115,6 +116,14 @@ }) } + handleSubmit = (e) => { + e.preventDefault() + + if (this.props.inputSubmit) { + this.props.inputSubmit() + } + } + render() { const { data, dict, tabId, usefulFields } = this.props const { getFieldDecorator } = this.props.form @@ -151,7 +160,7 @@ message: formRule.input.message } ] - })(<Input placeholder="" autoComplete="off" />)} + })(<Input placeholder="" autoComplete="off" onPressEnter={this.handleSubmit} />)} </Form.Item> </Col> <Col span={12}> @@ -207,7 +216,7 @@ message: formRule.input.message } ] - })(<Input placeholder="" autoComplete="off" disabled={this.state.interReadonly} />)} + })(<Input placeholder="" autoComplete="off" disabled={this.state.interReadonly} onPressEnter={this.handleSubmit} />)} </Form.Item> </Col> : null} {interType === 'outer' ? <Col span={12}> @@ -223,7 +232,7 @@ message: formRule.func.maxMessage } ] - })(<Input placeholder="" autoComplete="off" />)} + })(<Input placeholder="" autoComplete="off" onPressEnter={this.handleSubmit} />)} </Form.Item> </Col> : null} {interType !== 'outer' ? <Col span={12}> @@ -244,7 +253,7 @@ message: formRule.func.maxMessage } ] - })(<Input placeholder="" autoComplete="off" />)} + })(<Input placeholder="" autoComplete="off" onPressEnter={this.handleSubmit} />)} </Form.Item> </Col> : null} {interType !== 'outer' ? <Col span={24}> @@ -307,7 +316,7 @@ message: formRule.input.message } ] - })(<Input placeholder="ID asc, UID desc" autoComplete="off" />)} + })(<Input placeholder="ID asc, UID desc" autoComplete="off" onPressEnter={this.handleSubmit} />)} </Form.Item> </Col> <Col span={12}> diff --git a/src/templates/tableshare/colspanform/index.jsx b/src/templates/tableshare/colspanform/index.jsx index 11a6ed7..2a5ee0d 100644 --- a/src/templates/tableshare/colspanform/index.jsx +++ b/src/templates/tableshare/colspanform/index.jsx @@ -9,11 +9,8 @@ static propTpyes = { dict: PropTypes.object, // 瀛楀吀椤� columns: PropTypes.array, - card: PropTypes.any - } - - state = { - + card: PropTypes.any, + inputSubmit: PropTypes.any // 鍥炶溅鎻愪氦浜嬩欢 } componentDidMount () { @@ -56,6 +53,14 @@ }) } + handleSubmit = (e) => { + e.preventDefault() + + if (this.props.inputSubmit) { + this.props.inputSubmit() + } + } + render() { const { getFieldDecorator } = this.props.form const formItemLayout = { @@ -85,7 +90,7 @@ message: formRule.input.message } ] - })(<Input placeholder="" autoComplete="off" />)} + })(<Input placeholder="" autoComplete="off" onPressEnter={this.handleSubmit} />)} </Form.Item> </Col> <Col span={12}> diff --git a/src/templates/tableshare/columnform/index.jsx b/src/templates/tableshare/columnform/index.jsx index acd1c18..16991dc 100644 --- a/src/templates/tableshare/columnform/index.jsx +++ b/src/templates/tableshare/columnform/index.jsx @@ -6,9 +6,10 @@ class MainSearch extends Component { static propTpyes = { - dict: PropTypes.object, // 瀛楀吀椤� + dict: PropTypes.object, // 瀛楀吀椤� formlist: PropTypes.any, - card: PropTypes.any + card: PropTypes.any, + inputSubmit: PropTypes.any // 鍥炶溅鎻愪氦浜嬩欢 } state = { @@ -99,6 +100,14 @@ } } + handleSubmit = (e) => { + e.preventDefault() + + if (this.props.inputSubmit) { + this.props.inputSubmit() + } + } + getFields() { const { getFieldDecorator } = this.props.form const fields = [] @@ -138,7 +147,7 @@ }, ...rules ] - })(<Input placeholder="" autoComplete="off" disabled={item.readonly} />)} + })(<Input placeholder="" autoComplete="off" disabled={item.readonly} onPressEnter={this.handleSubmit} />)} </Form.Item> </Col> ) diff --git a/src/templates/tableshare/dragelement/index.jsx b/src/templates/tableshare/dragelement/index.jsx index 12a0f89..7737c7a 100644 --- a/src/templates/tableshare/dragelement/index.jsx +++ b/src/templates/tableshare/dragelement/index.jsx @@ -48,12 +48,32 @@ const copyCard = id => { const { card } = findCard(id) let copycard = JSON.parse(JSON.stringify(card)) + copycard.uuid = Utils.getuuid() copycard.origin = false copycard.label = copycard.label + '(copy)' copycard.focus = true copycard.originCard = card + + let _val = '' + + try { + copycard.copyType = 'action' + _val = window.btoa(window.encodeURIComponent(JSON.stringify(copycard))) + } catch { + console.warn('Stringify Failure') + _val = '' + } + + if (_val) { + let oInput = document.createElement('input') + oInput.value = _val + document.body.appendChild(oInput) + oInput.select() + document.execCommand('Copy') + document.body.removeChild(oInput) + } copyElement(copycard) } diff --git a/src/templates/tableshare/formconfig.js b/src/templates/tableshare/formconfig.js index 41a2b46..1f790b1 100644 --- a/src/templates/tableshare/formconfig.js +++ b/src/templates/tableshare/formconfig.js @@ -1086,6 +1086,13 @@ initVal: '', required: false, options: [] + }, + { + type: 'number', + key: 'maxRows', + label: Formdict['header.form.maxRows'], + initVal: card.maxRows || 6, + required: false } ] } \ No newline at end of file diff --git a/src/templates/tableshare/gridbtnform/index.jsx b/src/templates/tableshare/gridbtnform/index.jsx index a1bb535..f904918 100644 --- a/src/templates/tableshare/gridbtnform/index.jsx +++ b/src/templates/tableshare/gridbtnform/index.jsx @@ -6,8 +6,9 @@ class MainSearch extends Component { static propTpyes = { - dict: PropTypes.object, // 瀛楀吀椤� - card: PropTypes.any + dict: PropTypes.object, // 瀛楀吀椤� + card: PropTypes.any, + inputSubmit: PropTypes.any // 鍥炶溅鎻愪氦浜嬩欢 } state = { @@ -75,6 +76,14 @@ ] } + handleSubmit = (e) => { + e.preventDefault() + + if (this.props.inputSubmit) { + this.props.inputSubmit() + } + } + getFields() { const { getFieldDecorator } = this.props.form const fields = [] @@ -95,7 +104,7 @@ message: formRule.input.message } ] - })(<Input placeholder="" autoComplete="off" disabled={item.readonly} />)} + })(<Input placeholder="" autoComplete="off" disabled={item.readonly} onPressEnter={this.handleSubmit} />)} </Form.Item> </Col> ) diff --git a/src/templates/tableshare/pasteform/index.jsx b/src/templates/tableshare/pasteform/index.jsx new file mode 100644 index 0000000..7cdfc58 --- /dev/null +++ b/src/templates/tableshare/pasteform/index.jsx @@ -0,0 +1,75 @@ +import React, {Component} from 'react' +import PropTypes from 'prop-types' +import { Form, Row, Col, Input, notification } from 'antd' +import './index.scss' + +const { TextArea } = Input + +class MainSearch extends Component { + static propTpyes = { + dict: PropTypes.object // 瀛楀吀椤� + } + + handleConfirm = () => { + // 琛ㄥ崟鎻愪氦鏃舵鏌ヨ緭鍏ュ�兼槸鍚︽纭� + return new Promise((resolve, reject) => { + this.props.form.validateFieldsAndScroll((err, values) => { + if (!err) { + let _config = values.config + + try { + _config = JSON.parse(window.decodeURIComponent(window.atob(_config))) + } catch (e) { + notification.warning({ + top: 92, + message: '瑙f瀽閿欒', + duration: 10 + }) + _config = '' + } + + if (_config) { + resolve(_config) + } + } else { + reject(err) + } + }) + }) + } + + render() { + const { getFieldDecorator } = this.props.form + const formItemLayout = { + labelCol: { + xs: { span: 24 }, + sm: { span: 24 } + }, + wrapperCol: { + xs: { span: 24 }, + sm: { span: 24 } + } + } + return ( + <Form {...formItemLayout} className="config-paste-form"> + <Row gutter={24}> + <Col span={24}> + <Form.Item label="閰嶇疆淇℃伅" className="textarea"> + {getFieldDecorator('config', { + initialValue: '', + rules: [ + { + required: true, + message: this.props.dict['form.required.input'] + '閰嶇疆淇℃伅!' + } + ] + })(<TextArea autosize={{ minRows: 4, maxRows: 8 }} />)} + </Form.Item> + </Col> + </Row> + </Form> + ) + } +} + +export default Form.create()(MainSearch) \ No newline at end of file diff --git a/src/templates/tableshare/pasteform/index.scss b/src/templates/tableshare/pasteform/index.scss new file mode 100644 index 0000000..4c3aea9 --- /dev/null +++ b/src/templates/tableshare/pasteform/index.scss @@ -0,0 +1,7 @@ +.config-paste-form { + min-height: 150px; + + .ant-form-item-label { + text-align: left; + } +} \ No newline at end of file diff --git a/src/templates/tableshare/searchform/index.jsx b/src/templates/tableshare/searchform/index.jsx index 1e3d35d..51a0c5b 100644 --- a/src/templates/tableshare/searchform/index.jsx +++ b/src/templates/tableshare/searchform/index.jsx @@ -9,10 +9,11 @@ class MainSearch extends Component { static propTpyes = { - dict: PropTypes.object, // 瀛楀吀椤� - formlist: PropTypes.any, // 琛ㄥ崟 - optionLibs: PropTypes.any, // 鑷畾涔変笅鎷夐泦 - card: PropTypes.object // 鎼滅储鏉′欢淇℃伅 + dict: PropTypes.object, // 瀛楀吀椤� + formlist: PropTypes.any, // 琛ㄥ崟 + optionLibs: PropTypes.any, // 鑷畾涔変笅鎷夐泦 + card: PropTypes.object, // 鎼滅储鏉′欢淇℃伅 + inputSubmit: PropTypes.any // 鍥炶溅鎻愪氦浜嬩欢 } state = { @@ -214,6 +215,14 @@ } } + handleSubmit = (e) => { + e.preventDefault() + + if (this.props.inputSubmit) { + this.props.inputSubmit() + } + } + getFields() { const { getFieldDecorator } = this.props.form const fields = [] @@ -254,7 +263,7 @@ }, ...rules ] - })(<Input placeholder="" autoComplete="off" disabled={item.readonly} />)} + })(<Input placeholder="" autoComplete="off" disabled={item.readonly} onPressEnter={this.handleSubmit} />)} </Form.Item> </Col> ) diff --git a/src/templates/tableshare/tabform/index.jsx b/src/templates/tableshare/tabform/index.jsx index c09e01c..64b356a 100644 --- a/src/templates/tableshare/tabform/index.jsx +++ b/src/templates/tableshare/tabform/index.jsx @@ -8,11 +8,12 @@ class MainTab extends Component { static propTpyes = { - tabs: PropTypes.array, // 绫诲瀷 - type: PropTypes.string, // 绫诲瀷 - dict: PropTypes.object, // 瀛楀吀椤� - formlist: PropTypes.any, // 琛ㄥ崟 - card: PropTypes.object // 鏍囩椤典俊鎭� + tabs: PropTypes.array, // 鍙叧鑱旀爣绛鹃泦 + type: PropTypes.string, // 绫诲瀷 + dict: PropTypes.object, // 瀛楀吀椤� + formlist: PropTypes.any, // 琛ㄥ崟 + card: PropTypes.object, // 鏍囩椤典俊鎭� + inputSubmit: PropTypes.any // 鍥炶溅鎻愪氦浜嬩欢 } state = { @@ -26,10 +27,8 @@ const { formlist } = this.props let type = formlist.filter(cell => cell.key === 'type')[0].initVal - // let _initval = formlist.filter(cell => cell.key === 'linkTab')[0].initVal let _tabs = this.props.tabs.filter(tab => tab.type === type) - // let initTab = _tabs.filter(tab => tab.uuid === _initval)[0] this.setState({ formlist: formlist.map(item => { @@ -41,9 +40,6 @@ }, ..._tabs ] - // if (!initTab) { - // item.initVal = '' - // } } return item @@ -101,6 +97,14 @@ } } + handleSubmit = (e) => { + e.preventDefault() + + if (this.props.inputSubmit) { + this.props.inputSubmit() + } + } + getFields() { const { getFieldDecorator } = this.props.form const fields = [] @@ -124,7 +128,7 @@ message: formRule.input.message } ] - })(<Input placeholder="" autoComplete="off" disabled={item.readonly} />)} + })(<Input placeholder="" autoComplete="off" disabled={item.readonly} onPressEnter={this.handleSubmit} />)} </Form.Item> </Col> ) diff --git a/src/templates/tableshare/verifycard/index.jsx b/src/templates/tableshare/verifycard/index.jsx index c93912e..6ad62f0 100644 --- a/src/templates/tableshare/verifycard/index.jsx +++ b/src/templates/tableshare/verifycard/index.jsx @@ -423,10 +423,10 @@ if (res.status) { let _LongParam = '' if (res.LongParam) { - _LongParam = window.decodeURIComponent(window.atob(res.LongParam)) try { - _LongParam = JSON.parse(_LongParam) + _LongParam = JSON.parse(window.decodeURIComponent(window.atob(res.LongParam))) } catch (e) { + console.warn('Parse Failure') _LongParam = '' } } @@ -953,6 +953,10 @@ message: '鎵ц鎴愬姛锛�', duration: 2 }) + } else if (errorType === 'Y') { + Modal.success({ + title: '鎵ц鎴愬姛锛�' + }) } else if (errorType === 'F') { notification.error({ className: 'notification-custom-error', @@ -1148,8 +1152,10 @@ <Row gutter={24}> <Col offset={6} span={6}> <Form.Item label={'鎻愮ず缂栫爜'}> - <span className="errorval"> -1 </span> - 涓嶆彁绀� + <span className="errorval"> Y </span> + <Button onClick={() => {this.showError('Y')}} type="primary" size="small"> + 鏌ョ湅 + </Button> </Form.Item> </Col> </Row> @@ -1203,6 +1209,14 @@ </Form.Item> </Col> </Row> + <Row gutter={24}> + <Col offset={6} span={6}> + <Form.Item label={'鎻愮ず缂栫爜'}> + <span className="errorval"> -1 </span> + 涓嶆彁绀� + </Form.Item> + </Col> + </Row> </Form> </TabPane> </Tabs> diff --git a/src/templates/tableshare/verifycardexcelin/index.jsx b/src/templates/tableshare/verifycardexcelin/index.jsx index 7c57b0d..d31432a 100644 --- a/src/templates/tableshare/verifycardexcelin/index.jsx +++ b/src/templates/tableshare/verifycardexcelin/index.jsx @@ -400,6 +400,10 @@ message: '鎵ц鎴愬姛锛�', duration: 2 }) + } else if (errorType === 'Y') { + Modal.success({ + title: '鎵ц鎴愬姛锛�' + }) } else if (errorType === 'F') { notification.error({ className: 'notification-custom-error', @@ -539,8 +543,10 @@ <Row gutter={24}> <Col offset={6} span={6}> <Form.Item label={'鎻愮ず缂栫爜'}> - <span className="errorval"> -1 </span> - 涓嶆彁绀� + <span className="errorval"> Y </span> + <Button onClick={() => {this.showError('Y')}} type="primary" size="small"> + 鏌ョ湅 + </Button> </Form.Item> </Col> </Row> @@ -594,6 +600,14 @@ </Form.Item> </Col> </Row> + <Row gutter={24}> + <Col offset={6} span={6}> + <Form.Item label={'鎻愮ず缂栫爜'}> + <span className="errorval"> -1 </span> + 涓嶆彁绀� + </Form.Item> + </Col> + </Row> </Form> </TabPane> </Tabs> diff --git a/src/templates/tableshare/verifycardexcelout/index.jsx b/src/templates/tableshare/verifycardexcelout/index.jsx index 66a8e26..24186f6 100644 --- a/src/templates/tableshare/verifycardexcelout/index.jsx +++ b/src/templates/tableshare/verifycardexcelout/index.jsx @@ -147,6 +147,10 @@ message: '鎵ц鎴愬姛锛�', duration: 2 }) + } else if (errorType === 'Y') { + Modal.success({ + title: '鎵ц鎴愬姛锛�' + }) } else if (errorType === 'F') { notification.error({ className: 'notification-custom-error', @@ -228,8 +232,10 @@ <Row gutter={24}> <Col offset={6} span={6}> <Form.Item label={'鎻愮ず缂栫爜'}> - <span className="errorval"> -1 </span> - 涓嶆彁绀� + <span className="errorval"> Y </span> + <Button onClick={() => {this.showError('Y')}} type="primary" size="small"> + 鏌ョ湅 + </Button> </Form.Item> </Col> </Row> @@ -283,6 +289,14 @@ </Form.Item> </Col> </Row> + <Row gutter={24}> + <Col offset={6} span={6}> + <Form.Item label={'鎻愮ず缂栫爜'}> + <span className="errorval"> -1 </span> + 涓嶆彁绀� + </Form.Item> + </Col> + </Row> </Form> </TabPane> </Tabs> diff --git a/src/templates/tableshare/verifycardprint/index.jsx b/src/templates/tableshare/verifycardprint/index.jsx index 07956b3..484761d 100644 --- a/src/templates/tableshare/verifycardprint/index.jsx +++ b/src/templates/tableshare/verifycardprint/index.jsx @@ -102,6 +102,10 @@ message: '鎵ц鎴愬姛锛�', duration: 2 }) + } else if (errorType === 'Y') { + Modal.success({ + title: '鎵ц鎴愬姛锛�' + }) } else if (errorType === 'F') { notification.error({ className: 'notification-custom-error', @@ -243,8 +247,10 @@ <Row gutter={24}> <Col offset={6} span={6}> <Form.Item label={'鎻愮ず缂栫爜'}> - <span className="errorval"> -1 </span> - 涓嶆彁绀� + <span className="errorval"> Y </span> + <Button onClick={() => {this.showError('Y')}} type="primary" size="small"> + 鏌ョ湅 + </Button> </Form.Item> </Col> </Row> @@ -298,6 +304,14 @@ </Form.Item> </Col> </Row> + <Row gutter={24}> + <Col offset={6} span={6}> + <Form.Item label={'鎻愮ず缂栫爜'}> + <span className="errorval"> -1 </span> + 涓嶆彁绀� + </Form.Item> + </Col> + </Row> </Form> </TabPane> </Tabs> diff --git a/src/templates/ushare/modalform/index.jsx b/src/templates/ushare/modalform/index.jsx index 9771c0b..2e94ac3 100644 --- a/src/templates/ushare/modalform/index.jsx +++ b/src/templates/ushare/modalform/index.jsx @@ -61,7 +61,7 @@ } else if (type === 'fileupload') { _options = ['label', 'field', 'type', 'readonly', 'required', 'readin', 'fieldlength'] } else if (type === 'textarea') { - _options = [..._options, 'fieldlength'] + _options = [..._options, 'fieldlength', 'maxRows'] } else if (type === 'text') { _options = [..._options, 'fieldlength', 'regular'] } @@ -132,7 +132,7 @@ } else if (value === 'fileupload') { _options = ['label', 'field', 'type', 'readonly', 'required', 'readin', 'fieldlength'] } else if (value === 'textarea') { - _options = [..._options, 'fieldlength'] + _options = [..._options, 'fieldlength', 'maxRows'] } else if (value === 'text') { _options = [..._options, 'fieldlength', 'regular'] } @@ -325,7 +325,7 @@ message: this.props.dict['form.required.input'] + item.label + '!' } ] - })(<InputNumber min={0} max={18} precision={0} onPressEnter={this.handleSubmit} />)} + })(<InputNumber min={0} max={18} precision={0} />)} </Form.Item> </Col> ) @@ -341,7 +341,23 @@ message: this.props.dict['form.required.input'] + item.label + '!' } ] - })(<InputNumber min={1} precision={0} onPressEnter={this.handleSubmit} />)} + })(<InputNumber min={1} precision={0} />)} + </Form.Item> + </Col> + ) + } else if (item.key === 'maxRows') { + fields.push( + <Col span={12} key={index}> + <Form.Item label={item.label}> + {getFieldDecorator(item.key, { + initialValue: item.initVal, + rules: [ + { + required: !!item.required, + message: this.props.dict['form.required.input'] + item.label + '!' + } + ] + })(<InputNumber min={2} max={100} precision={0} />)} </Form.Item> </Col> ) @@ -357,7 +373,7 @@ message: this.props.dict['form.required.input'] + item.label + '!' } ] - })(<InputNumber onPressEnter={this.handleSubmit} />)} + })(<InputNumber />)} </Form.Item> </Col> ) diff --git a/src/views/login/loginform.jsx b/src/views/login/loginform.jsx index 0b47002..7540a4a 100644 --- a/src/views/login/loginform.jsx +++ b/src/views/login/loginform.jsx @@ -62,6 +62,7 @@ try { _user = JSON.parse(window.decodeURIComponent(window.atob(_user))) } catch { + console.warn('Parse Failure') _user = '' } } -- Gitblit v1.8.0