From 8ed1e158001e1a3f6f988c2037f7ef6f82df343d Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期三, 07 六月 2023 21:02:25 +0800 Subject: [PATCH] 2023-06-07 --- src/views/login/index.jsx | 114 +++++++++++++++++++++++++++++++++++++++++++++------------ 1 files changed, 90 insertions(+), 24 deletions(-) diff --git a/src/views/login/index.jsx b/src/views/login/index.jsx index a654d81..115e679 100644 --- a/src/views/login/index.jsx +++ b/src/views/login/index.jsx @@ -5,7 +5,7 @@ import Api from '@/api' import Utils from '@/utils/utils.js' -// import MKEmitter from '@/utils/events.js' +import MKEmitter from '@/utils/events.js' import options, { styles } from '@/store/options.js' import zhCN from '@/locales/zh-CN/login.js' import enUS from '@/locales/en-US/login.js' @@ -52,7 +52,6 @@ localStorage.removeItem('localDataM') localStorage.removeItem('debug') localStorage.removeItem('role_id') - localStorage.removeItem('localRole_id') sessionStorage.clear() } @@ -112,19 +111,36 @@ localStorage.setItem('departmentcode', res.departmentcode || '') localStorage.setItem('organization', res.organization || '') localStorage.setItem('mk_user_type', res.mk_user_type || '') - localStorage.setItem('localRole_id', res.role_id || '') localStorage.setItem('lang', 'zh-CN') - let _url = window.location.href.split('#')[0] + sessionStorage.setItem('UserID', res.UserID) + sessionStorage.setItem('LoginUID', res.LoginUID) + sessionStorage.setItem('User_Name', res.UserName) + sessionStorage.setItem('Full_Name', res.FullName) + sessionStorage.setItem('avatar', res.icon || '') + sessionStorage.setItem('dataM', res.dataM ? 'true' : '') + sessionStorage.setItem('debug', res.debug || '') + sessionStorage.setItem('role_id', res.role_id || '') + sessionStorage.setItem('departmentcode', res.departmentcode || '') + sessionStorage.setItem('organization', res.organization || '') + sessionStorage.setItem('mk_user_type', res.mk_user_type || '') - // 璁颁綇瀵嗙爜鏃惰处鍙峰瘑鐮佸瓨鍏ocalStorage - localStorage.setItem(_url, window.btoa(window.encodeURIComponent(JSON.stringify({username: param.username, password: param.password})))) + if (res.paas_externalDatabase) { + sessionStorage.setItem('externalDatabase', res.paas_externalDatabase) + window.GLOB.externalDatabase = `[${res.paas_externalDatabase}]..` + } - let _param = { - UserName: param.username, - Password: param.password, - BasePath: '/' + localStorage.setItem(_href + 'lang', param.lang || 'zh-CN') + sessionStorage.setItem('lang', param.lang || 'zh-CN') + + sessionStorage.removeItem('visitorUserID') + sessionStorage.removeItem('visitorLoginUID') + + if (param.remember) { // 璁颁綇瀵嗙爜鏃惰处鍙峰瘑鐮佸瓨鍏ocalStorage + localStorage.setItem(_href, window.btoa(window.encodeURIComponent(JSON.stringify({username: param.username, password: param.password})))) + } else { + localStorage.removeItem(_href) } // positecgroup @@ -137,19 +153,47 @@ return } - sessionStorage.setItem('UserID', res.UserID) - sessionStorage.setItem('LoginUID', res.LoginUID) - sessionStorage.setItem('User_Name', res.UserName) - sessionStorage.setItem('Full_Name', res.FullName) - sessionStorage.setItem('avatar', res.icon || '') - sessionStorage.setItem('dataM', res.dataM ? 'true' : '') - sessionStorage.setItem('localDataM', res.dataM ? 'true' : '') - sessionStorage.setItem('debug', res.debug || '') - sessionStorage.setItem('role_id', res.role_id || '') - sessionStorage.setItem('mk_user_type', res.mk_user_type || '') - sessionStorage.setItem('localRole_id', res.role_id || '') + let level = localStorage.getItem(_href + 'pwdlevel') + + if (level && process.env.NODE_ENV === 'production') { + let visible = false + let tip = '瀵嗙爜寮哄害涓嶅锛岃淇敼瀵嗙爜锛�' + if (param.password.length < 8) { + visible = true + } else if (level === 'letter_num' && /^([^0-9]*|[^a-zA-Z]*)$/.test(param.password)) { + visible = true + } else if ((level === 'char_num' || level === 'char_num_90' || level === 'char_num_90_sms') && /^([^0-9]*|[^a-zA-Z]*|[^!@#$%^&*()_]*)$/.test(param.password)) { + visible = true + } else if ((level === 'char_num_90' || level === 'char_num_90_sms') && res.modifydate) { + let s = (new Date().getTime() - new Date(res.modifydate).getTime()) / (1000 * 24 * 60 * 60) + if (!isNaN(s) && s > 90) { + visible = true + tip = '鎮ㄥ凡90澶╂湭淇敼瀵嗙爜锛岃鏇存崲瀵嗙爜鍚庝娇鐢紒' + } + } + + if (visible) { + message.warning(tip) + this.setState({ + isDisabled: false + }) + + MKEmitter.emit('resetpassword', () => { + const input = document.getElementById('password') + if (input) { + input.select() + } + }) + return + } + } if (process.env.NODE_ENV === 'production') { + let _param = { + UserName: param.username, + Password: param.password, + BasePath: '/' + } Api.loginAndRedirect(_param).then(result => { if (result.IsError) { this.setState({ @@ -164,6 +208,7 @@ } else { this.props.history.replace('/main') } + this.props.history.replace('/main') } else if (res.ErrCode === 'Need_Get_Appkey' && options.sysType === 'SSO') { message.warning('搴旂敤灏氭湭鍒涘缓锛岃鍚戜簯绔悓姝ュ簲鐢紒') @@ -561,6 +606,26 @@ res.indexlogo = res.indexlogo ? res.indexlogo.replace(/:8080/ig, '').replace(/http:/ig, 'https:') : '' res.loginlogo = res.loginlogo ? res.loginlogo.replace(/:8080/ig, '').replace(/http:/ig, 'https:') : '' + // if (options.sysType === 'local' && window.GLOB.systemType !== 'production') { + // if (md5(('mk' + window.GLOB.appkey + res.sys_datetime + res.member_type + res.registry_date).toLowerCase()) !== res.secret_key) { + // Modal.warning({ + // title: '瀵嗛挜閿欒锛岃鑱旂郴绠$悊鍛橈紒', + // okText: '鐭ラ亾浜�' + // }) + // this.setState({ + // auth: false, + // authError: '瀵嗛挜閿欒锛岃鑱旂郴绠$悊鍛橈紒' + // }) + // return + // } else if (res.member_type === 'personal' && res.registry_date) { + // let saveDelay = 0 + // try { + // saveDelay = parseInt((new Date().getTime() - new Date(res.registry_date).getTime()) / 4320000) + // sessionStorage.setItem('mkDelay', saveDelay) + // } catch(e) {} + // } + // } + if (!['shutter', 'linkage_navigation', 'linkage', 'menu_board', 'menu_board_navigation'].includes(res.menu_type)) { res.menu_type = 'shutter' } @@ -876,14 +941,15 @@ } render () { - const { lineColor, loginlogo, bgImage, copyRight, webSite, ICP, loginWays, touristLogin } = this.state + const { lineColor, bgImage, loginlogo, copyRight, webSite, ICP, loginWays, touristLogin } = this.state return ( - <div className="login-container" id="mk-login-view"> + <div className="login-container" id="mk-login-view" style={bgImage ? {backgroundImage: 'url(' + bgImage + ')'} : {}}> <div className="logo" style={lineColor ? {borderColor: lineColor} : {}}> {loginlogo ? <img src={loginlogo} alt=""/> : null} + {this.state.platName ? <p className="plat-name">{this.state.platName}</p> : null} </div> - <div className="login-middle" style={bgImage ? {backgroundImage: 'url(' + bgImage + ')'} : null}> + <div className="login-middle" style={lineColor ? {borderColor: lineColor} : {}}> {loginWays ? <LoginForm platName={this.state.platName} dict={this.state.dict} -- Gitblit v1.8.0