From 95ccc1acc6d8ede1c839493e7aecc9c97fd34c8c Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期五, 24 九月 2021 15:55:39 +0800 Subject: [PATCH] 2021-09-24 --- src/views/design/header/index.scss | 2 src/views/login/loginform.jsx | 25 + src/components/header/index.jsx | 2 src/tabviews/zshare/topSearch/index.jsx | 4 src/tabviews/zshare/normalTable/index.jsx | 270 ++++++++++++-------- src/templates/formtabconfig/index.jsx | 9 src/menu/components/form/normal-form/index.jsx | 2 src/locales/zh-CN/model.js | 3 src/menu/components/table/normal-table/columns/editColumn/index.jsx | 2 src/templates/modalconfig/index.jsx | 2 src/templates/sharecomponent/columncomponent/colspanform/index.jsx | 2 src/locales/en-US/model.js | 3 src/menu/components/table/normal-table/columns/index.scss | 3 src/mob/modalconfig/index.jsx | 2 src/tabviews/zshare/actionList/normalbutton/index.jsx | 83 +++++ src/templates/sharecomponent/actioncomponent/verifyexcelin/index.jsx | 18 + src/templates/sharecomponent/actioncomponent/verifyexcelout/index.jsx | 26 + src/templates/zshare/formconfig.jsx | 21 + src/menu/components/form/tab-form/index.jsx | 2 src/pc/components/login/normal-login/loginform.jsx | 34 ++ src/templates/sharecomponent/actioncomponent/actionform/index.jsx | 6 src/templates/sharecomponent/settingcomponent/settingform/datasource/index.jsx | 16 + src/templates/sharecomponent/searchcomponent/dragsearch/index.jsx | 7 src/tabviews/zshare/actionList/printbutton/index.jsx | 2 src/pc/components/login/normal-login/index.jsx | 4 src/tabviews/zshare/mutilform/index.jsx | 6 src/templates/sharecomponent/actioncomponent/index.jsx | 7 src/views/login/index.scss | 81 ++--- src/menu/modalconfig/index.jsx | 2 src/menu/components/table/normal-table/columns/index.jsx | 15 + src/pc/components/login/normal-login/index.scss | 87 +++-- src/templates/sharecomponent/columncomponent/columnform/index.jsx | 4 src/views/login/index.jsx | 2 33 files changed, 494 insertions(+), 260 deletions(-) diff --git a/src/components/header/index.jsx b/src/components/header/index.jsx index 16d1e9d..ac930a4 100644 --- a/src/components/header/index.jsx +++ b/src/components/header/index.jsx @@ -398,7 +398,7 @@ sessionStorage.setItem('isEditState', 'true') this.setSystemFuncs() - + this.props.modifyMainMenu(null) this.props.history.replace('/design') } else { if (res.message.indexOf('瀵嗙爜閿欒') > -1) { diff --git a/src/locales/en-US/model.js b/src/locales/en-US/model.js index e42101d..6eb3569 100644 --- a/src/locales/en-US/model.js +++ b/src/locales/en-US/model.js @@ -210,7 +210,6 @@ 'model.status.forbidden': '绂佺敤', 'model.status.open': '鍚敤', 'header.form.readin': '鑷姩濉厖', - 'header.form.readin.tooltip': '鏄惁灏嗚〃鏍奸�変腑鐨勬暟鎹嚜鍔ㄥ~鍏呭埌琛ㄥ崟锛堝瓧娈电浉鍚岋級', 'header.form.afterExecSuccess': '鎴愬姛鍚�', 'header.form.afterExecError': '澶辫触鍚�', 'header.form.pagination': '鍒嗛〉', @@ -244,5 +243,5 @@ 'model.tooltip.action.guide': '鍦ㄥ乏渚у伐鍏锋爮銆婃寜閽�嬩腑锛岄�夋嫨瀵瑰簲绫诲瀷鐨勬寜閽嫋鑷虫澶勬坊鍔狅紝濡傞�夋嫨鎸夐挳绫诲瀷涓鸿〃鍗曘�佹柊鏍囩椤电瓑鍚湁閰嶇疆椤甸潰鐨勬寜閽紝鍙湪宸︿晶宸ュ叿鏍�-鎸夐挳-鍙厤缃寜閽锛岀偣鍑绘寜閽畬鎴愮浉鍏抽厤缃�傛敞锛氬綋璁剧疆鎸夐挳鏄剧ず浣嶇疆涓鸿〃鏍兼椂锛屾樉绀哄垪浼氬鍔犳搷浣滃垪銆�', 'model.tooltip.column.guide': '鍦ㄥ乏渚у伐鍏锋爮銆婃樉绀哄垪銆嬩腑锛岄�夋嫨瀵瑰簲绫诲瀷鐨勬樉绀哄垪鎷栬嚦姝ゅ娣诲姞锛涙垨鐐瑰嚮銆婃坊鍔犳樉绀哄垪銆嬫寜閽壒閲忔坊鍔狅紝閫夋嫨鎵归噺娣诲姞鏃讹紝闇�鎻愬墠閫夋嫨浣跨敤琛ㄣ�傛敞锛氭坊鍔犲悎骞跺垪鏃讹紝闇�璁剧疆鍙�夊垪銆�', 'model.tooltip.tabs.guide': '鍦ㄥ乏渚у伐鍏锋爮銆婃爣绛鹃〉銆嬩腑锛岄�夋嫨瀵瑰簲绫诲瀷鐨勬爣绛鹃〉鎷栬嚦姝ゅ娣诲姞銆�', - 'model.tooltip.func.innerface': '鍐呴儴鍑芥暟鍚嶇О闇�浠ableField绛夊瓧绗﹀紑濮�;', + 'model.tooltip.func.innerface': '鍑芥暟鍚嶇О闇�浠ableField绛夊瓧绗﹀紑濮�;', } \ No newline at end of file diff --git a/src/locales/zh-CN/model.js b/src/locales/zh-CN/model.js index 112722f..6e111a9 100644 --- a/src/locales/zh-CN/model.js +++ b/src/locales/zh-CN/model.js @@ -210,7 +210,6 @@ 'model.status.forbidden': '绂佺敤', 'model.status.open': '鍚敤', 'header.form.readin': '鑷姩濉厖', - 'header.form.readin.tooltip': '鏄惁灏嗚〃鏍奸�変腑鐨勬暟鎹嚜鍔ㄥ~鍏呭埌琛ㄥ崟锛堝瓧娈电浉鍚岋級', 'header.form.afterExecSuccess': '鎴愬姛鍚�', 'header.form.afterExecError': '澶辫触鍚�', 'header.form.pagination': '鍒嗛〉', @@ -244,5 +243,5 @@ 'model.tooltip.action.guide': '鍦ㄥ乏渚у伐鍏锋爮銆婃寜閽�嬩腑锛岄�夋嫨瀵瑰簲绫诲瀷鐨勬寜閽嫋鑷虫澶勬坊鍔狅紝濡傞�夋嫨鎸夐挳绫诲瀷涓鸿〃鍗曘�佹柊鏍囩椤电瓑鍚湁閰嶇疆椤甸潰鐨勬寜閽紝鍙湪宸︿晶宸ュ叿鏍�-鎸夐挳-鍙厤缃寜閽锛岀偣鍑绘寜閽畬鎴愮浉鍏抽厤缃�傛敞锛氬綋璁剧疆鎸夐挳鏄剧ず浣嶇疆涓鸿〃鏍兼椂锛屾樉绀哄垪浼氬鍔犳搷浣滃垪銆�', 'model.tooltip.column.guide': '鍦ㄥ乏渚у伐鍏锋爮銆婃樉绀哄垪銆嬩腑锛岄�夋嫨瀵瑰簲绫诲瀷鐨勬樉绀哄垪鎷栬嚦姝ゅ娣诲姞锛涙垨鐐瑰嚮銆婃坊鍔犳樉绀哄垪銆嬫寜閽壒閲忔坊鍔狅紝閫夋嫨鎵归噺娣诲姞鏃讹紝闇�鎻愬墠閫夋嫨浣跨敤琛ㄣ�傛敞锛氭坊鍔犲悎骞跺垪鏃讹紝闇�璁剧疆鍙�夊垪銆�', 'model.tooltip.tabs.guide': '鍦ㄥ乏渚у伐鍏锋爮銆婃爣绛鹃〉銆嬩腑锛岄�夋嫨瀵瑰簲绫诲瀷鐨勬爣绛鹃〉鎷栬嚦姝ゅ娣诲姞銆�', - 'model.tooltip.func.innerface': '鍐呴儴鍑芥暟鍚嶇О闇�浠ableField绛夊瓧绗﹀紑濮�;', + 'model.tooltip.func.innerface': '鍑芥暟鍚嶇О闇�浠ableField绛夊瓧绗﹀紑濮�;', } \ No newline at end of file diff --git a/src/menu/components/form/normal-form/index.jsx b/src/menu/components/form/normal-form/index.jsx index 58f180c..4444f91 100644 --- a/src/menu/components/form/normal-form/index.jsx +++ b/src/menu/components/form/normal-form/index.jsx @@ -427,7 +427,7 @@ }] let standardform = null - _inputfields = group.fields.filter(item => item.type === 'text' || item.type === 'number' || item.type === 'textarea' || item.type === 'color') + _inputfields = group.fields.filter(item => ['text', 'number', 'textarea', 'color'].includes(item.type) && _item.field !== item.field) if (appType === 'mob') { _tabfields = group.fields.filter(item => _form.field !== item.field && item.hidden !== 'true' && ['text', 'number'].includes(item.type)) } else { diff --git a/src/menu/components/form/tab-form/index.jsx b/src/menu/components/form/tab-form/index.jsx index ce0f66c..f1fc543 100644 --- a/src/menu/components/form/tab-form/index.jsx +++ b/src/menu/components/form/tab-form/index.jsx @@ -419,7 +419,7 @@ }] let standardform = null - _inputfields = group.fields.filter(item => item.type === 'text' || item.type === 'number' || item.type === 'textarea' || item.type === 'color') + _inputfields = group.fields.filter(item => ['text', 'number', 'textarea', 'color'].includes(item.type) && _item.field !== item.field) if (appType === 'mob') { _tabfields = group.fields.filter(item => _form.field !== item.field && item.hidden !== 'true' && ['text', 'number'].includes(item.type)) } else { diff --git a/src/menu/components/table/normal-table/columns/editColumn/index.jsx b/src/menu/components/table/normal-table/columns/editColumn/index.jsx index 3f7bee9..81aed8a 100644 --- a/src/menu/components/table/normal-table/columns/editColumn/index.jsx +++ b/src/menu/components/table/normal-table/columns/editColumn/index.jsx @@ -101,7 +101,7 @@ } values.type = 'number' values.decimal = decimal - } else if (/nvarchar/ig.test(option.props.datatype)) { + } else { values.type = 'text' } diff --git a/src/menu/components/table/normal-table/columns/index.jsx b/src/menu/components/table/normal-table/columns/index.jsx index a7711e0..c347313 100644 --- a/src/menu/components/table/normal-table/columns/index.jsx +++ b/src/menu/components/table/normal-table/columns/index.jsx @@ -513,6 +513,20 @@ }) } + clear = () => { + const _this = this + + confirm({ + content: '纭畾娓呯┖鏄剧ず鍒楀悧锛�', + onOk() { + _this.setState({columns: []}, () => { + _this.props.updatecolumn({..._this.props.config, cols: []}) + }) + }, + onCancel() {} + }) + } + componentDidMount () { MKEmitter.addListener('submitStyle', this.getStyle) } @@ -555,6 +569,7 @@ <Icon title="澶嶅埗鏄剧ず鍒�" type="copy" onClick={this.copycolumn} /> <MarkColumn columns={fields} type="line" marks={lineMarks} onSubmit={this.updateLineMarks} /> <Icon title="鍚屾瀛楁闆�" type="file-sync" onClick={this.syncfield} /> + <Icon title="娓呯┖鏄剧ず鍒�" type="delete" onClick={this.clear}/> </div> <DndProvider> <Table diff --git a/src/menu/components/table/normal-table/columns/index.scss b/src/menu/components/table/normal-table/columns/index.scss index 5c733b7..f376b55 100644 --- a/src/menu/components/table/normal-table/columns/index.scss +++ b/src/menu/components/table/normal-table/columns/index.scss @@ -66,6 +66,9 @@ >.anticon-copy { color: #26C281; } + >.anticon-delete { + color: #ff4d4f; + } >.anticon-file-sync { color: #1890ff; } diff --git a/src/menu/modalconfig/index.jsx b/src/menu/modalconfig/index.jsx index fc2a91e..fa87b7f 100644 --- a/src/menu/modalconfig/index.jsx +++ b/src/menu/modalconfig/index.jsx @@ -119,7 +119,7 @@ }] let standardform = null - _inputfields = config.fields.filter(item => item.type === 'text' || item.type === 'number' || item.type === 'textarea' || item.type === 'color') + _inputfields = config.fields.filter(item => ['text', 'number', 'textarea', 'color'].includes(item.type) && card.field !== item.field) _tabfields = config.fields.filter(item => card.field !== item.field && item.hidden !== 'true' && ['text', 'number', 'select', 'link'].includes(item.type)) _tabfields.unshift({field: '', text: '鍘熻〃鍗�'}) diff --git a/src/mob/modalconfig/index.jsx b/src/mob/modalconfig/index.jsx index 6876fc5..29c8e42 100644 --- a/src/mob/modalconfig/index.jsx +++ b/src/mob/modalconfig/index.jsx @@ -123,7 +123,7 @@ }] let standardform = null - _inputfields = config.fields.filter(item => item.type === 'text' || item.type === 'number' || item.type === 'textarea' || item.type === 'color') + _inputfields = config.fields.filter(item => ['text', 'number', 'textarea', 'color'].includes(item.type) && card.field !== item.field) _tabfields = config.fields.filter(item => card.field !== item.field && item.hidden !== 'true' && ['text', 'number', 'select', 'link'].includes(item.type)) _tabfields.unshift({field: '', text: '鍘熻〃鍗�'}) diff --git a/src/pc/components/login/normal-login/index.jsx b/src/pc/components/login/normal-login/index.jsx index 390a8cb..1ffb207 100644 --- a/src/pc/components/login/normal-login/index.jsx +++ b/src/pc/components/login/normal-login/index.jsx @@ -47,8 +47,8 @@ wrap: { name: card.name, width: card.width || 24, loginWays: ['uname_pwd'], shortcut: 'remember' }, style: { background: '#ffffff', width: '330px', borderRadius: '4px', marginLeft: '55vw'}, loginWays: [ - {type: 'uname_pwd', label: '璐﹀彿瀵嗙爜鐧诲綍', shortcut: 'remember'}, - {type: 'sms_vcode', label: '鐭俊楠岃瘉鐮�'}, + {type: 'uname_pwd', label: '璐﹀彿鐧诲綍', shortcut: 'remember'}, + {type: 'sms_vcode', label: '鐭俊鐧诲綍'}, {type: 'app_scan', label: '鎵爜鐧诲綍'}, ] } diff --git a/src/pc/components/login/normal-login/index.scss b/src/pc/components/login/normal-login/index.scss index 2ee7fbb..5eb7460 100644 --- a/src/pc/components/login/normal-login/index.scss +++ b/src/pc/components/login/normal-login/index.scss @@ -43,58 +43,69 @@ height: 40px; line-height: 1; font-size: 18px; - margin-bottom: 25px; + margin-bottom: 15px; } .ant-form-item:last-child { margin-bottom: 0; } } - .login-way-wrap { - height: 50px; - line-height: 50px; - margin-bottom: 10px; + .login-way-title { + font-size: 18px; + line-height: 45px; display: flex; - border-radius: inherit; - .login-way { - flex: 1; - width: 50%; - font-size: 17px; - text-align: center; - white-space: nowrap; - text-overflow: ellipsis; - overflow: hidden; - padding: 0 16px; - transition: all 0.3s; - border: 1px solid transparent; - border-top: 0!important; + padding-top: 10px; + padding-left: 15px; + padding-right: 15px; + padding-bottom: 10px; + } + .login-way-title::before, .login-way-title::after { + display: inline-block; + content: ' '; + height: 0.5px; + flex: 1; + background-color: rgba(0, 0, 0, 0.15); + position: relative; + top: 22px; + } + .login-way-title::before { + margin: 0 10px 0 0; + } + .login-way-title::after { + margin: 0 0 0 10px; + } + .scan-icon { + position: absolute; + right: 0px; + top: 0px; + font-size: 46px; + color: #000000; + line-height: 1; + transform: rotate(-45deg); + transform-origin: 0 0; + overflow: hidden; + padding-bottom: 10px; + cursor: pointer; + i { + transform-origin: 0 0; + transform: rotate(45deg); } - .login-way.active, .login-way:hover { + } + .login-ways { + padding: 0 20px 25px; + span { color: #1890ff; - } - .login-way:not(.active) { cursor: pointer; - background: #fafafa; - border: 1px solid #e8e8e8; } - .login-way:first-child { - border-left: 0; - border-top-left-radius: inherit; - } - .login-way:last-child { - border-right: 0; - border-top-right-radius: inherit; + span + span { + margin-left: 15px; } } - .login-way-wrap.simple { - .login-way { - font-size: 18px; - text-align: left; - padding: 0 15px; - line-height: 60px; - } + .login-ways.center { + text-align: center; } + .form-scan-wrap { - padding: 30px; + padding: 10px 30px 0; text-align: center; font-size: 12px; line-height: 35px; diff --git a/src/pc/components/login/normal-login/loginform.jsx b/src/pc/components/login/normal-login/loginform.jsx index 19ede79..536b883 100644 --- a/src/pc/components/login/normal-login/loginform.jsx +++ b/src/pc/components/login/normal-login/loginform.jsx @@ -20,14 +20,23 @@ state = { activeWay: null, loginWays: [], + scanWay: null } UNSAFE_componentWillMount () { const { loginWays, wrap } = this.props let _loginWays = [] + let scanWay = null loginWays.forEach(item => { if (!wrap.loginWays || wrap.loginWays.includes(item.type)) { + if (item.type === 'sms_vcode') { + item.label = '鐭俊鐧诲綍' + } else if (item.type === 'uname_pwd') { + item.label = '璐﹀彿鐧诲綍' + } else if (item.type === 'app_scan') { + scanWay = item + } _loginWays.push(item) } }) @@ -35,6 +44,7 @@ this.setState({ loginWays: _loginWays, activeWay: _loginWays[0], + scanWay }) } @@ -43,8 +53,16 @@ if (!is(fromJS(wrap), fromJS(nextProps.wrap))) { let _loginWays = [] + let scanWay = null nextProps.loginWays.forEach(item => { if (!nextProps.wrap.loginWays || nextProps.wrap.loginWays.includes(item.type)) { + if (item.type === 'sms_vcode') { + item.label = '鐭俊鐧诲綍' + } else if (item.type === 'uname_pwd') { + item.label = '璐﹀彿鐧诲綍' + } else if (item.type === 'app_scan') { + scanWay = item + } _loginWays.push(item) } }) @@ -52,6 +70,7 @@ this.setState({ loginWays: _loginWays, activeWay: _loginWays[0], + scanWay }) } } @@ -81,15 +100,12 @@ } render() { - const { activeWay, loginWays } = this.state + const { activeWay, loginWays, scanWay } = this.state return ( <Form className="login-edit-form"> - <div className={'login-way-wrap ' + (loginWays.length === 1 ? 'simple' : '')}> - {loginWays.map(item => ( - <div className={'login-way' + (activeWay.type === item.type ? ' active' : '')} onClick={() => this.onChangeTab(item)} key={item.type}>{item.label}</div> - ))} - </div> + <div className="login-way-title">{activeWay.label}</div> + {scanWay && activeWay.type !== 'app_scan' ? <div className="scan-icon" onClick={() => this.onChangeTab(scanWay)}><Icon type="qrcode" /></div> : null} {activeWay.type === 'uname_pwd' ? <div className={'form-item-wrap ' + (activeWay.shortcut === 'none' ? 'no-short' : '')}> <Form.Item> <Input @@ -143,6 +159,12 @@ </div> 璇蜂娇鐢ㄥ鎴风鎵竴鎵櫥褰� </div> : null} + <div className={'login-ways ' + (activeWay.type === 'app_scan' ? 'center' : '')}> + {loginWays.map(item => { + if (item.type === 'app_scan' || activeWay.type === item.type) return null + return (<span key={item.type} onClick={() => this.onChangeTab(item)}>{item.label}</span>) + })} + </div> </Form> ) } diff --git a/src/tabviews/zshare/actionList/normalbutton/index.jsx b/src/tabviews/zshare/actionList/normalbutton/index.jsx index 5c5818a..9b690c8 100644 --- a/src/tabviews/zshare/actionList/normalbutton/index.jsx +++ b/src/tabviews/zshare/actionList/normalbutton/index.jsx @@ -314,6 +314,9 @@ param.$callbacksql = callbacksql } else { param.LText = getSysDefaultSql(btn, setting, '', param, data[0], columns, this.props.Tab, false, this.moduleParams, Utils.getAllSearchOptions) // 鏁版嵁婧� + if (btn.output) { + param.key_back_type = 'Y' + } } if (sessionStorage.getItem('dataM') === 'true') { // 鏁版嵁鏉冮檺 @@ -356,7 +359,7 @@ param.$callbacksql = callbacksql } else { param.LText = getSysDefaultSql(btn, setting, formdata, param, data[0], columns, this.props.Tab, false, this.moduleParams, Utils.getAllSearchOptions) // 鏁版嵁婧� - if (btn.OpenType === 'formSubmit' && btn.output) { + if (btn.output) { param.key_back_type = 'Y' } } @@ -391,6 +394,9 @@ param.$callbacksql = callbacksql } else { param.LText = getSysDefaultSql(btn, setting, formdata, param, data[0], columns, this.props.Tab, false, this.moduleParams, Utils.getAllSearchOptions) // 鏁版嵁婧� + if (btn.output) { + param.key_back_type = 'Y' + } } if (sessionStorage.getItem('dataM') === 'true') { // 鏁版嵁鏉冮檺 @@ -457,6 +463,9 @@ param.$callbacksql = callbacksql } else { param.LText = getSysDefaultSql(btn, setting, '', param, cell, columns, this.props.Tab, false, this.moduleParams, Utils.getAllSearchOptions, Utils.getAllSearchOptions) // 鏁版嵁婧� + if (btn.output) { + param.key_back_type = 'Y' + } } if (sessionStorage.getItem('dataM') === 'true') { // 鏁版嵁鏉冮檺 @@ -490,6 +499,9 @@ param.$callbacksql = callbacksql } else { param.LText = getSysDefaultSql(btn, setting, formdata, param, cell, columns, this.props.Tab, false, this.moduleParams, Utils.getAllSearchOptions) // 鏁版嵁婧� + if (btn.output) { + param.key_back_type = 'Y' + } } if (sessionStorage.getItem('dataM') === 'true') { // 鏁版嵁鏉冮檺 @@ -513,6 +525,9 @@ param.$callbacksql = callbacksql } else { param.LText = getSysDefaultSql(btn, setting, formdata, param, cell, columns, this.props.Tab, false, this.moduleParams, Utils.getAllSearchOptions) // 鏁版嵁婧� + if (btn.output) { + param.key_back_type = 'Y' + } } if (sessionStorage.getItem('dataM') === 'true') { // 鏁版嵁鏉冮檺 @@ -668,14 +683,39 @@ } if (params.length <= 20) { - let deffers = params.map(param => { + let deffers = params.map((param, i) => { return new Promise(resolve => { - Api.genericInterface(param).then(res => { - resolve(res) - }, () => { - this.updateStatus('over') - _resolve() - }) + setTimeout(() => { + let _param = null + if (btn.preFunc) { + _param = fromJS(param).toJS() + param.func = btn.preFunc + } + Api.genericInterface(param).then(res => { + if (btn.preFunc && res.status && res.ErrCode !== '-1') { + _param = {..._param, ...res} + + delete _param.status + delete _param.ErrCode + delete _param.ErrMesg + delete _param.message + + Api.genericInterface(_param).then(result => { + if (!result.status) { + notification.warning({ + top: 92, + message: result.message, + duration: 5 + }) + } + }) + } + resolve(res) + }, () => { + this.updateStatus('over') + _resolve() + }) + }, 20 * i) }) }) Promise.all(deffers).then(result => { @@ -1111,8 +1151,33 @@ loadingNumber: params.length || '' }) + let _param = null + + if (btn.preFunc) { + _param = fromJS(param).toJS() + param.func = btn.preFunc + } + Api.genericInterface(param).then(res => { if (res.status) { + if (btn.preFunc && res.ErrCode !== '-1') { + _param = {..._param, ...res} + + delete _param.status + delete _param.ErrCode + delete _param.ErrMesg + delete _param.message + + Api.genericInterface(_param).then(result => { + if (!result.status) { + notification.warning({ + top: 92, + message: result.message, + duration: 5 + }) + } + }) + } if (params.length === 0) { this.execSuccess(res) _resolve() @@ -1713,7 +1778,7 @@ result.push({ key: item.field, readonly: item.readonly === 'true', - readin: _readin, + readin: item.readin !== 'false' && item.readin !== 'top', fieldlen: _fieldlen, writein: item.writein !== 'false', type: _type, diff --git a/src/tabviews/zshare/actionList/printbutton/index.jsx b/src/tabviews/zshare/actionList/printbutton/index.jsx index 4931b51..2520eac 100644 --- a/src/tabviews/zshare/actionList/printbutton/index.jsx +++ b/src/tabviews/zshare/actionList/printbutton/index.jsx @@ -1434,7 +1434,7 @@ result.push({ key: item.field, readonly: item.readonly === 'true', - readin: _readin, + readin: item.readin !== 'false' && item.readin !== 'top', fieldlen: _fieldlen, type: item.type, value: _initval diff --git a/src/tabviews/zshare/mutilform/index.jsx b/src/tabviews/zshare/mutilform/index.jsx index 6d5929a..2525408 100644 --- a/src/tabviews/zshare/mutilform/index.jsx +++ b/src/tabviews/zshare/mutilform/index.jsx @@ -76,13 +76,15 @@ if (!item.field || !['text', 'number', 'switch', 'select', 'link', 'linkMain', 'funcvar', 'date', 'datemonth', 'datetime', 'radio', 'checkbox', 'checkcard', 'fileupload', 'textarea', 'multiselect', 'brafteditor', 'color'].includes(item.type)) return false // 鏁版嵁鑷姩濉厖 - item.readin = item.readin !== 'false' + let readin = item.readin !== 'false' + item.readin = item.readin !== 'false' && item.readin !== 'top' item.readonly = check || item.readonly === 'true' item.writein = item.writein !== 'false' item.hidden = item.hidden === 'true' item.fieldlength = item.fieldlength || 50 if (item.type === 'funcvar') { + readin = false item.readin = false item.hidden = true } else if (item.type === 'number') { @@ -111,7 +113,7 @@ let newval = '$empty' - if (item.readin && data && data.hasOwnProperty(item.field)) { + if (readin && data && data.hasOwnProperty(item.field)) { newval = data[item.field] } if (item.type === 'linkMain') { diff --git a/src/tabviews/zshare/normalTable/index.jsx b/src/tabviews/zshare/normalTable/index.jsx index 38c2501..7aa11e6 100644 --- a/src/tabviews/zshare/normalTable/index.jsx +++ b/src/tabviews/zshare/normalTable/index.jsx @@ -17,6 +17,16 @@ const TabButton = asyncComponent(() => import('@/tabviews/zshare/actionList/tabbutton')) const NewPageButton = asyncComponent(() => import('@/tabviews/zshare/actionList/newpagebutton')) +class BodyRow extends React.Component { + shouldComponentUpdate (nextProps) { + return this.props.className !== nextProps.className + } + + render() { + return <tr {...this.props}/> + } +} + class NormalTable extends Component { static propTpyes = { tableId: PropTypes.string, // 鍒楄〃Id @@ -49,7 +59,7 @@ } UNSAFE_componentWillMount () { - const { menuType, memberLevel, pageSize } = this.props + const { menuType, memberLevel, pageSize, setting } = this.props let columns = fromJS(this.props.columns).toJS() let lineMarks = [] let _columns = [] @@ -57,122 +67,159 @@ let _format = false // 鏄惁铏氬寲澶勭悊 let rowspans = [] - if (window.GLOB.dataFormat && menuType !== 'HS' && memberLevel) { - _format = true - - if (memberLevel >= 30) { - radio = 20 - } else if (memberLevel >= 20) { - radio = 10 - } - } - - columns.forEach((item, index) => { - if (item.hidden === true || item.Hide === 'true') return - let cell = null - - if (item.type === 'colspan') { - cell = {title: item.label, children: []} - - item.subcols.forEach(col => { - if (col.rowspan === 'true') { - rowspans.push(col.field) - } - if (_format && !Math.floor(Math.random() * radio)) { - col.blur = true - } - - if (col.marks) { // 杩囨护琛屽拰鍗$墖鏍囪 - col.marks = col.marks.filter(mark => { - if (mark.signType === 'line') { - lineMarks.push(mark) - } - return mark.signType !== 'line' && mark.signType !== 'card' + if (setting.tableMode === 'fast') { + rowspans = null + columns.forEach(item => { + if (item.hidden === true || item.Hide === 'true') return + let cell = null + + if (item.type === 'colspan' || item.type === 'old_colspan') { + cell = {title: item.label, children: []} + + item.subcols.forEach(col => { + cell.children.push({ + align: col.Align, + title: col.label, + dataIndex: col.field || col.uuid, + key: col.uuid, + width: col.Width || 120 }) - - if (col.marks.length === 0) { - col.marks = '' - } - } - - cell.children.push({ - align: col.Align, - title: col.label, - dataIndex: col.field || col.uuid, - key: col.uuid, - width: col.Width || 120, - render: (text, record) => { - return this.getContent(col, record) - } }) - }) - } else if (item.type === 'old_colspan') { - item.subcols.forEach(col => { - if (col.marks) { // 杩囨护琛屽拰鍗$墖鏍囪 - col.marks = col.marks.filter(mark => { - if (mark.signType === 'line') { - lineMarks.push(mark) + } else { + if (item.type === 'index') { + item.field = '$Index' + item.type = 'text' + } + + cell = { + align: item.Align, + dataIndex: item.field || item.uuid, + title: item.label, + sorter: item.field && item.IsSort === 'true', + width: item.Width || 120 + } + } + + _columns.push(cell) + }) + } else { + if (window.GLOB.dataFormat && menuType !== 'HS' && memberLevel) { + _format = true + + if (memberLevel >= 30) { + radio = 20 + } else if (memberLevel >= 20) { + radio = 10 + } + } + + columns.forEach((item, index) => { + if (item.hidden === true || item.Hide === 'true') return + let cell = null + + if (item.type === 'colspan') { + cell = {title: item.label, children: []} + + item.subcols.forEach(col => { + if (col.rowspan === 'true') { + rowspans.push(col.field) + } + if (_format && !Math.floor(Math.random() * radio)) { + col.blur = true + } + + if (col.marks) { // 杩囨护琛屽拰鍗$墖鏍囪 + col.marks = col.marks.filter(mark => { + if (mark.signType === 'line') { + lineMarks.push(mark) + } + return mark.signType !== 'line' && mark.signType !== 'card' + }) + + if (col.marks.length === 0) { + col.marks = '' } - return mark.signType !== 'line' && mark.signType !== 'card' + } + + cell.children.push({ + align: col.Align, + title: col.label, + dataIndex: col.field || col.uuid, + key: col.uuid, + width: col.Width || 120, + render: (text, record) => { + return this.getContent(col, record) + } }) - - if (col.marks.length === 0) { - col.marks = '' + }) + } else if (item.type === 'old_colspan') { + item.subcols.forEach(col => { + if (col.marks) { // 杩囨护琛屽拰鍗$墖鏍囪 + col.marks = col.marks.filter(mark => { + if (mark.signType === 'line') { + lineMarks.push(mark) + } + return mark.signType !== 'line' && mark.signType !== 'card' + }) + + if (col.marks.length === 0) { + col.marks = '' + } } - } - }) - - cell = { - align: item.Align, - dataIndex: item.field || item.uuid, - title: item.label, - sorter: item.field && item.IsSort === 'true', - width: item.Width || 120, - render: (text, record) => { - return this.getContent(item, record) - } - } - } else { - if (item.rowspan === 'true') { - rowspans.push(item.field) - } - if (item.type === 'index') { - item.field = '$Index' - item.type = 'text' - } else if (_format && !Math.floor(Math.random() * radio)) { - item.blur = true - } - - if (item.marks) { // 杩囨护琛屽拰鍗$墖鏍囪 - item.marks = item.marks.filter(mark => { - if (mark.signType === 'line') { - lineMarks.push(mark) - } - return mark.signType !== 'line' && mark.signType !== 'card' }) - if (item.marks.length === 0) { - item.marks = '' + cell = { + align: item.Align, + dataIndex: item.field || item.uuid, + title: item.label, + sorter: item.field && item.IsSort === 'true', + width: item.Width || 120, + render: (text, record) => { + return this.getContent(item, record) + } + } + } else { + if (item.rowspan === 'true') { + rowspans.push(item.field) + } + if (item.type === 'index') { + item.field = '$Index' + item.type = 'text' + } else if (_format && !Math.floor(Math.random() * radio)) { + item.blur = true + } + + if (item.marks) { // 杩囨护琛屽拰鍗$墖鏍囪 + item.marks = item.marks.filter(mark => { + if (mark.signType === 'line') { + lineMarks.push(mark) + } + return mark.signType !== 'line' && mark.signType !== 'card' + }) + + if (item.marks.length === 0) { + item.marks = '' + } + } + + cell = { + align: item.Align, + dataIndex: item.field || item.uuid, + title: item.label, + sorter: item.field && item.IsSort === 'true', + width: item.Width || 120, + render: (text, record) => { + return this.getContent(item, record) + } } } - - cell = { - align: item.Align, - dataIndex: item.field || item.uuid, - title: item.label, - sorter: item.field && item.IsSort === 'true', - width: item.Width || 120, - render: (text, record) => { - return this.getContent(item, record) - } - } + + _columns.push(cell) + }) + + if (rowspans.length === 0) { + rowspans = null } - - _columns.push(cell) - }) - - if (rowspans.length === 0) { - rowspans = null } this.setState({ @@ -1056,6 +1103,14 @@ const { setting, pickup, statFValue } = this.props const { selectedRowKeys, lineMarks, activeIndex } = this.state + let components = { + body: {} + } + + if (setting.tableMode === 'fast') { + components.body.row = BodyRow + } + // 璁剧疆琛ㄦ牸閫夋嫨灞炴�э細鍗曢�夈�佸閫夈�佷笉鍙�� let rowSelection = null if (setting.tableType) { @@ -1136,6 +1191,7 @@ /> </Affix>} <Table + components={components} size={setting.size || 'middle'} style={style} bordered={setting.bordered !== 'false'} diff --git a/src/tabviews/zshare/topSearch/index.jsx b/src/tabviews/zshare/topSearch/index.jsx index 90209bf..defee38 100644 --- a/src/tabviews/zshare/topSearch/index.jsx +++ b/src/tabviews/zshare/topSearch/index.jsx @@ -433,6 +433,7 @@ const { getFieldDecorator } = this.props.form const { dict, showButton, showAdvanced, float, visible } = this.state const fields = [] + let lastRadio = 6 this.state.searchlist.forEach((item, index) => { if (item.hidden || item.advanced) return @@ -446,6 +447,7 @@ let content = null let field = item.field + lastRadio = item.ratio || 6 if (item.type === 'text') { if (item.inputType === 'search') { @@ -480,7 +482,7 @@ if (showButton) { let action = ( - <Col span={6} style={{ whiteSpace: 'nowrap' }} className="search-button" key="actions"> + <Col span={lastRadio < 6 ? 6 : lastRadio} style={{ whiteSpace: 'nowrap' }} className="search-button" key="actions"> <Form.Item label={' '} colon={false} style={{ minHeight: '40px' }}> <Button type="primary" onClick={this.handleSubmit}> {dict['main.search']} diff --git a/src/templates/formtabconfig/index.jsx b/src/templates/formtabconfig/index.jsx index e2aacac..8b38bc5 100644 --- a/src/templates/formtabconfig/index.jsx +++ b/src/templates/formtabconfig/index.jsx @@ -440,7 +440,7 @@ _formfields = [..._formfields, ...group.sublist] }) - _inputfields = _formfields.filter(item => item.type === 'text' || item.type === 'number' || item.type === 'textarea' || item.type === 'color') + _inputfields = _formfields.filter(item => ['text', 'number', 'textarea', 'color'].includes(item.type) && card.field !== item.field) _tabfields = _formfields.filter(item => card.field !== item.field && item.hidden !== 'true' && ['text', 'number', 'select', 'link'].includes(item.type)) _tabfields.unshift({field: '', text: '鍘熻〃鍗�'}) @@ -505,15 +505,10 @@ usefulFields = [] } - let ableField = usefulFields.join(', ') - let functip = <div> - <p style={{marginBottom: '5px'}}>{this.state.dict['model.tooltip.func.innerface'].replace('@ableField', ableField)}</p> - </div> - this.setState({ modaltype: 'actionEdit', card: card, - formlist: getActionForm(card, functip, this.state.config, usefulFields) + formlist: getActionForm(card, this.state.config, usefulFields) }) } diff --git a/src/templates/modalconfig/index.jsx b/src/templates/modalconfig/index.jsx index ba2dcdc..8e0e44a 100644 --- a/src/templates/modalconfig/index.jsx +++ b/src/templates/modalconfig/index.jsx @@ -200,7 +200,7 @@ }] let standardform = null - _inputfields = config.fields.filter(item => item.type === 'text' || item.type === 'number' || item.type === 'textarea' || item.type === 'color') + _inputfields = config.fields.filter(item => ['text', 'number', 'textarea', 'color'].includes(item.type) && card.field !== item.field) _tabfields = config.fields.filter(item => card.field !== item.field && item.hidden !== 'true' && ['text', 'number', 'select', 'link'].includes(item.type)) _tabfields.unshift({field: '', text: '鍘熻〃鍗�'}) diff --git a/src/templates/sharecomponent/actioncomponent/actionform/index.jsx b/src/templates/sharecomponent/actioncomponent/actionform/index.jsx index b544ead..96d9c47 100644 --- a/src/templates/sharecomponent/actioncomponent/actionform/index.jsx +++ b/src/templates/sharecomponent/actioncomponent/actionform/index.jsx @@ -222,7 +222,7 @@ } else if (_intertype === 'outer') { _options.push('innerFunc', 'sysInterface', 'interface', 'proInterface', 'outerFunc', 'callbackFunc') } else if (_intertype === 'inner') { - _options.push('innerFunc') + _options.push('innerFunc', 'preFunc') } else { _options.push('sql', 'sqlType') } @@ -527,7 +527,7 @@ if (item.type === 'text') { // 鏂囨湰鎼滅储 let _rules = [] - if (item.key === 'innerFunc') { + if (item.key === 'innerFunc' || item.key === 'preFunc') { let str = '^(' + item.fields.join('|') + ')' let _patten = new RegExp(str + formRule.func.innerPattern + '$', 'g') _rules = [{ @@ -589,7 +589,7 @@ message: this.props.dict['form.required.input'] + item.label + '!' } ] - })(<InputNumber min={0} max={10000} precision={0} />)} + })(<InputNumber min={0} max={10000} precision={0} onPressEnter={this.handleSubmit}/>)} </Form.Item> </Col> ) diff --git a/src/templates/sharecomponent/actioncomponent/index.jsx b/src/templates/sharecomponent/actioncomponent/index.jsx index 2bd7db5..2a76df0 100644 --- a/src/templates/sharecomponent/actioncomponent/index.jsx +++ b/src/templates/sharecomponent/actioncomponent/index.jsx @@ -151,11 +151,6 @@ usefulFields = [] } - let ableField = usefulFields.join(', ') - let functip = <div> - <p style={{marginBottom: '5px'}}>{this.state.dict['model.tooltip.func.innerface'].replace('@ableField', ableField)}</p> - </div> - let menulist = [] if (menu.fstMenuList) { @@ -183,7 +178,7 @@ this.setState({ visible: true, card: card, - formlist: getActionForm(card, functip, this.props.config, usefulFields, this.props.type, menulist, this.state.printTemps) + formlist: getActionForm(card, this.props.config, usefulFields, this.props.type, menulist, this.state.printTemps) }) } diff --git a/src/templates/sharecomponent/actioncomponent/verifyexcelin/index.jsx b/src/templates/sharecomponent/actioncomponent/verifyexcelin/index.jsx index d5b0024..3701e1d 100644 --- a/src/templates/sharecomponent/actioncomponent/verifyexcelin/index.jsx +++ b/src/templates/sharecomponent/actioncomponent/verifyexcelin/index.jsx @@ -429,6 +429,22 @@ changeColumns = (columns) => { const { verify } = this.state + if (columns[0] && (columns[0].type === 'image' || columns[0].type === 'text')) { + columns = columns.map(col => { + let _cell = { + uuid: Utils.getuuid(), + Column: col.Column, + Text: col.Text, + type: 'Nvarchar(50)', + limit: '50', + import: 'true', + required: 'true' + } + + return _cell + }) + } + columns = columns.map(col => { if (/^Nvarchar/ig.test(col.type)) { col.limit = col.type.match(/\d+/) ? col.type.match(/\d+/)[0] : '20000' @@ -835,7 +851,7 @@ 娓呯┖Excel鍒� </Button> <Col style={{fontSize: '12px', color: '#757575', paddingLeft: '10px'}} span={24}>娉細鏁板�肩被鍨嬶紙int 鎴� decimal锛夛紝鍐呭涓哄繀濉紱鏈�澶у�煎拰鏈�灏忓�煎湪绫诲瀷涓烘暟鍊兼椂鏈夋晥銆�</Col> - <EditTable actions={['edit', 'move', 'copy', 'del']} type="excelincolumn" data={verify.columns} columns={excelColumns} onChange={this.changeColumns}/> + <EditTable actions={['edit', 'move', 'copy', 'del']} type="excelcolumn" data={verify.columns} columns={excelColumns} onChange={this.changeColumns}/> </TabPane> {card.intertype === 'system' ? <TabPane tab={ <span> diff --git a/src/templates/sharecomponent/actioncomponent/verifyexcelout/index.jsx b/src/templates/sharecomponent/actioncomponent/verifyexcelout/index.jsx index b5fadc0..72cc3a2 100644 --- a/src/templates/sharecomponent/actioncomponent/verifyexcelout/index.jsx +++ b/src/templates/sharecomponent/actioncomponent/verifyexcelout/index.jsx @@ -49,7 +49,8 @@ min: 5, max: 200, editable: true, - width: '20%' + width: '20%', + render: (text) => text || 20 }, { title: '绫诲瀷', @@ -425,6 +426,27 @@ }) } + changeColumns = (columns) => { + const { verify } = this.state + + if (columns[0] && (columns[0].type !== 'image' && columns[0].type !== 'text')) { + columns = columns.map(col => { + let _cell = { + uuid: Utils.getuuid(), + Column: col.Column, + Text: col.Text, + Width: 20, + abs: 'false', + type: 'text', + } + + return _cell + }) + } + + this.setState({verify: {...verify, columns}}) + } + render() { const { card } = this.props const { verify, excelColumns, defaultscript } = this.state @@ -457,7 +479,7 @@ 娓呯┖Excel鍒� </Button> <div style={{color: '#959595', fontSize: '13px', paddingLeft: '10px'}}>濡傞渶瀵煎嚭搴忓彿锛岃浣跨敤瀛楁 $Index銆�</div> - <EditTable actions={['edit', 'move', 'copy', 'del']} type="exceloutcolumn" data={verify.columns} columns={excelColumns} onChange={(columns) => this.setState({verify: {...verify, columns}})}/> + <EditTable actions={['edit', 'move', 'copy', 'del']} type="excelcolumn" data={verify.columns} columns={excelColumns} onChange={this.changeColumns}/> </TabPane> {card.intertype === 'system' ? <TabPane tab={ <span> diff --git a/src/templates/sharecomponent/columncomponent/colspanform/index.jsx b/src/templates/sharecomponent/columncomponent/colspanform/index.jsx index 029ee98..2729c01 100644 --- a/src/templates/sharecomponent/columncomponent/colspanform/index.jsx +++ b/src/templates/sharecomponent/columncomponent/colspanform/index.jsx @@ -138,7 +138,7 @@ message: this.props.dict['form.required.input'] + this.props.dict['model.form.columnWidth'] + '!' } ] - })(<InputNumber min={1} max={1000} precision={0} />)} + })(<InputNumber min={1} max={1000} precision={0} onPressEnter={this.handleSubmit} />)} </Form.Item> </Col> <Col span={12}> diff --git a/src/templates/sharecomponent/columncomponent/columnform/index.jsx b/src/templates/sharecomponent/columncomponent/columnform/index.jsx index eaf0a25..5efbdd6 100644 --- a/src/templates/sharecomponent/columncomponent/columnform/index.jsx +++ b/src/templates/sharecomponent/columncomponent/columnform/index.jsx @@ -215,8 +215,8 @@ message: this.props.dict['form.required.input'] + item.label + '!' } ] - })(item.unlimit ? <InputNumber /> : - <InputNumber min={item.min} max={item.max} precision={item.decimal} />)} + })(item.unlimit ? <InputNumber onPressEnter={this.handleSubmit}/> : + <InputNumber min={item.min} max={item.max} precision={item.decimal} onPressEnter={this.handleSubmit}/>)} </Form.Item> </Col> ) diff --git a/src/templates/sharecomponent/searchcomponent/dragsearch/index.jsx b/src/templates/sharecomponent/searchcomponent/dragsearch/index.jsx index 0a4383f..374c44e 100644 --- a/src/templates/sharecomponent/searchcomponent/dragsearch/index.jsx +++ b/src/templates/sharecomponent/searchcomponent/dragsearch/index.jsx @@ -123,6 +123,11 @@ } }) + let radio = 6 + if (cards.length > 0) { + radio = cards[cards.length - 1].ratio || 6 + } + return ( <div ref={drop} className="ant-row"> {cards.map(card => ( @@ -139,7 +144,7 @@ /> </Col> ))} - {cards.length > 0 ? <Col key="action" className="action" span={6}> + {cards.length > 0 ? <Col key="action" className="action" span={radio < 6 ? 6 : radio}> <div className="ant-row ant-form-item" style={{whiteSpace: 'nowrap', lineHeight: '40px', height: '55px', marginBottom: 0}}> <div className="ant-col ant-form-item-label ant-col-xs-24 ant-col-sm-8"> </div> diff --git a/src/templates/sharecomponent/settingcomponent/settingform/datasource/index.jsx b/src/templates/sharecomponent/settingcomponent/settingform/datasource/index.jsx index d7000ac..2e620cb 100644 --- a/src/templates/sharecomponent/settingcomponent/settingform/datasource/index.jsx +++ b/src/templates/sharecomponent/settingcomponent/settingform/datasource/index.jsx @@ -641,6 +641,22 @@ </Col> <Col span={12}> <Form.Item label={ + <Tooltip placement="topLeft" title="浣跨敤鎬ラ�熸ā寮忔椂锛岃〃鏍间腑鐨勬爣璁般�佸弻鍑讳簨浠躲�佹牸寮忓寲銆佽鍚堝苟銆佸墠缂�銆佸悗缂�銆佸瓧娈甸�忚绛夋晥鏋滃皢鏃犳晥锛屼笖鏁版嵁閮戒細浠ユ枃鏈牸寮忔樉绀恒��"> + <Icon type="question-circle" /> + 妯″紡 + </Tooltip> + }> + {getFieldDecorator('tableMode', { + initialValue: setting.tableMode || 'compatible' + })( + <Radio.Group> + <Radio value="compatible">鍏煎</Radio> + <Radio value="fast">鎬ラ��</Radio> + </Radio.Group>)} + </Form.Item> + </Col> + <Col span={12}> + <Form.Item label={ <Tooltip placement="topLeft" title="楂樼骇鎼滅储寮圭獥鐨勫搴︼紝娉細褰撳搴﹀�煎皬浜�100鏃惰〃绀哄崰绐楀彛鐨勭櫨鍒嗘瘮锛屽ぇ浜�100鏃惰〃绀哄搴︾殑缁濆鍊笺��"> <Icon type="question-circle" /> 楂樼骇鎼滅储 diff --git a/src/templates/zshare/formconfig.jsx b/src/templates/zshare/formconfig.jsx index 63ba08f..6613e61 100644 --- a/src/templates/zshare/formconfig.jsx +++ b/src/templates/zshare/formconfig.jsx @@ -788,12 +788,11 @@ /** * @description 鑾峰彇鎸夐挳琛ㄥ崟閰嶇疆淇℃伅 * @param {*} card 缂栬緫鎸夐挳 - * @param {*} functip 鐢熸垚瀛樺偍杩囩▼鎻愮ず * @param {*} config 椤甸潰閰嶇疆 * @param {*} usefulFields 瀛樺偍杩囩▼鍙敤鐨勫紑濮嬪瓧娈� * @param {*} type 鎸夐挳绫诲瀷锛岀敤浜庡尯鍒嗗彲閫夌殑鎵撳紑鏂瑰紡 */ -export function getActionForm (card, functip, config, usefulFields, type, menulist = [], printTemps = []) { +export function getActionForm (card, config, usefulFields, type, menulist = [], printTemps = []) { let columns = (config.columns || []).filter(col => col.field) let opentypes = [ @@ -954,7 +953,7 @@ key: 'innerFunc', label: Formdict['header.form.innerFunc'], initVal: card.innerFunc || '', - tooltip: functip, + tooltip: `鍑芥暟鍚嶇О闇�浠�${usefulFields.join(', ')}绛夊瓧绗﹀紑濮嬨�俙, fields: usefulFields, tooltipClass: 'middle', required: card.intertype === 'inner', @@ -1386,6 +1385,17 @@ value: 'bottom', text: '涓嬩晶' }] + }, + { + type: 'text', + key: 'preFunc', + label: '鍓嶇疆鍑芥暟', + initVal: card.preFunc || '', + tooltip: `鍑芥暟鍚嶇О闇�浠�${usefulFields.join(', ')}绛夊瓧绗﹀紑濮嬶紱鍓嶇疆鍑芥暟鎵ц瀹屾垚鍚庯紝缁撴灉浼氫紶鍏ュ唴閮ㄥ嚱鏁颁腑锛屾鏃跺唴閮ㄥ嚱鏁颁細寮傛鎵ц銆俙, + fields: usefulFields, + tooltipClass: 'middle', + required: false, + readonly: false }, ] } @@ -2744,7 +2754,7 @@ type: 'radio', key: 'readin', label: Formdict['header.form.readin'], - tooltip: Formdict['header.form.readin.tooltip'], + tooltip: '鏄惁灏嗚〃鏍奸�変腑鐨勬暟鎹嚜鍔ㄥ~鍏呭埌琛ㄥ崟锛堝瓧娈电浉鍚岋級', initVal: card.readin || 'true', options: [{ value: 'true', @@ -2752,6 +2762,9 @@ }, { value: 'false', text: Formdict['model.false'] + }, { + value: 'top', + text: '棣栬' }] }, { diff --git a/src/views/design/header/index.scss b/src/views/design/header/index.scss index e9fe096..2e1c35a 100644 --- a/src/views/design/header/index.scss +++ b/src/views/design/header/index.scss @@ -29,9 +29,7 @@ line-height: 48px; padding-left: 10px; margin: 0 10px; - transition: padding-left 0.15s; i { - cursor: pointer; position: relative; top: 3px; font-size: 20px; diff --git a/src/views/login/index.jsx b/src/views/login/index.jsx index 315618c..ef337c1 100644 --- a/src/views/login/index.jsx +++ b/src/views/login/index.jsx @@ -453,14 +453,12 @@ login_types.push(item.way_no) login_ways.push({ - label: item.way_name, type: item.way_no, smsId: item.sms_id }) }) } else { login_ways.push({ - label: '璐﹀彿瀵嗙爜鐧诲綍', type: 'uname_pwd', smsId: '' }) diff --git a/src/views/login/index.scss b/src/views/login/index.scss index 80c6e97..68ff047 100644 --- a/src/views/login/index.scss +++ b/src/views/login/index.scss @@ -35,6 +35,7 @@ border-bottom: 2px solid #1890ff; .login-form { + position: relative; float: right; margin-top: 5%; margin-right: 20%; @@ -49,15 +50,46 @@ font-size: 18px; line-height: 45px; display: flex; + padding-top: 10px; } .login-way-title::before, .login-way-title::after { display: inline-block; content: ' '; height: 0.5px; flex: 1; - background-color: red; + background-color: rgba(0, 0, 0, 0.15); position: relative; top: 22px; + } + .scan-icon { + position: absolute; + right: 0px; + top: 0px; + font-size: 46px; + color: #000000; + line-height: 1; + transform: rotate(-45deg); + transform-origin: 0 0; + overflow: hidden; + padding-bottom: 10px; + cursor: pointer; + i { + transform-origin: 0 0; + transform: rotate(45deg); + } + } + .login-ways { + padding: 0 1.6vw 1.5vw; + span { + color: #1890ff; + cursor: pointer; + } + span + span { + margin-left: 15px; + } + } + .login-ways.center { + text-align: center; } .login-way-title::before { margin: 0 10px 0 1.6vw; @@ -65,49 +97,9 @@ .login-way-title::after { margin: 0 1.6vw 0 10px; } - .login-way-wrap { - height: 50px; - line-height: 50px; - margin-bottom: 10px; - display: flex; - .login-way { - flex: 1; - width: 50%; - font-size: 17px; - text-align: center; - white-space: nowrap; - text-overflow: ellipsis; - overflow: hidden; - padding: 0 16px; - transition: all 0.3s; - border: 1px solid transparent; - border-top: 0!important; - } - .login-way.active, .login-way:hover { - color: #1890ff; - } - .login-way:not(.active) { - cursor: pointer; - background: #fafafa; - border: 1px solid #e8e8e8; - } - .login-way:first-child { - border-left: 0; - } - .login-way:last-child { - border-right: 0; - } - } - .login-way-wrap.simple { - .login-way { - font-size: 18px; - text-align: left!important; - padding-left: 1.6vw!important; - line-height: 60px!important; - } - } .form-item-wrap { - padding: 0.6vw 1.6vw 1.6vw; + // padding: 0.6vw 1.6vw 1.6vw; + padding: 0.6vw 1.6vw 0vw; } h4 { @@ -142,16 +134,17 @@ font-size: 14px; margin-bottom: 10px; height: 25px; + float: right; .ant-form-item-control { line-height: 25px; } .register { color: #1890ff; + margin-right: 10px; } .forgot { font-size: 14px; color: #1890ff; - float: right; } } .minline { diff --git a/src/views/login/loginform.jsx b/src/views/login/loginform.jsx index 43cfa46..8e56f32 100644 --- a/src/views/login/loginform.jsx +++ b/src/views/login/loginform.jsx @@ -40,6 +40,7 @@ loginWays: [], smsId: '', verdisabled: false, + hasScan: false, timeout: false } @@ -56,15 +57,19 @@ } let smsId = '' + let hasScan = false let _loginWays = [] loginWays.forEach(item => { if (item.type === 'sms_vcode') { + item.label = '鐭俊鐧诲綍' smsId = item.smsId _loginWays.push(item) } else if (item.type === 'uname_pwd') { + item.label = '璐﹀彿鐧诲綍' _loginWays.push(item) } else if (item.type === 'app_scan') { _loginWays.push(item) + hasScan = true } }) @@ -76,7 +81,8 @@ activeKey, scanId: activeKey === 'app_scan' ? Utils.getuuid() : '', timeout: false, - remember + remember, + hasScan }) if (activeKey === 'app_scan') { @@ -356,16 +362,13 @@ render() { const { getFieldDecorator } = this.props.form - const { activeKey, verdisabled, delay, loginWays, remember, scanId, timeout } = this.state + const { activeKey, verdisabled, delay, loginWays, remember, scanId, timeout, hasScan } = this.state + const wayLabels = {app_scan: '鎵爜鐧诲綍', uname_pwd: '璐﹀彿鐧诲綍', sms_vcode: '鐭俊鐧诲綍'} return ( <Form className="login-form" id="login-form" onSubmit={this.handleSubmit}> - <div className={'login-way-wrap ' + (loginWays.length === 1 ? 'simple' : '')}> - {loginWays.map(item => ( - <div className={'login-way' + (activeKey === item.type ? ' active' : '')} onClick={() => this.onChangeTab(item.type)} key={item.type}>{item.label}</div> - ))} - </div> - {/* <div className="login-way-title">鐢ㄦ埛鐧诲綍</div> */} + <div className="login-way-title">{wayLabels[activeKey]}</div> + {hasScan && activeKey !== 'app_scan' ? <div className="scan-icon" onClick={() => this.onChangeTab('app_scan')}><Icon type="qrcode" /></div> : null} {activeKey === 'uname_pwd' ? <div className="form-item-wrap"> <Form.Item> {getFieldDecorator('username', { @@ -489,6 +492,12 @@ 璇蜂娇鐢ㄥ鎴风鎵竴鎵櫥褰� </div> </div> : null} + <div className={'login-ways ' + (activeKey === 'app_scan' ? 'center' : '')}> + {loginWays.map(item => { + if (item.type === 'app_scan' || activeKey === item.type) return null + return (<span key={item.type} onClick={() => this.onChangeTab(item.type)}>{item.label}</span>) + })} + </div> </Form> ) } -- Gitblit v1.8.0