From da64ab0923bf8817fc8599a6e37b953ce38f64c8 Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期日, 27 八月 2023 18:37:36 +0800 Subject: [PATCH] 2023-08-27 --- src/views/login/index.jsx | 198 ++++++++++++++++++++++++++++++++----------------- 1 files changed, 129 insertions(+), 69 deletions(-) diff --git a/src/views/login/index.jsx b/src/views/login/index.jsx index 44b5c39..bbc3c2a 100644 --- a/src/views/login/index.jsx +++ b/src/views/login/index.jsx @@ -6,7 +6,7 @@ import Api from '@/api' import Utils from '@/utils/utils.js' import MKEmitter from '@/utils/events.js' -import options, { styles } from '@/store/options.js' +import { styles } from '@/store/options.js' import zhCN from '@/locales/zh-CN/login.js' import enUS from '@/locales/en-US/login.js' import asyncComponent from '@/utils/asyncComponent' @@ -99,6 +99,7 @@ return } } + localStorage.setItem('UserID', res.UserID) localStorage.setItem('LoginUID', res.LoginUID) localStorage.setItem('User_Name', res.UserName) @@ -112,17 +113,40 @@ localStorage.setItem('organization', res.organization || '') localStorage.setItem('mk_user_type', res.mk_user_type || '') - localStorage.setItem('lang', 'zh-CN') + 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 || '') - let _url = window.location.href.split('#')[0] + if (res.paas_externalDatabase) { + sessionStorage.setItem('externalDatabase', res.paas_externalDatabase) + window.GLOB.externalDatabase = `[${res.paas_externalDatabase}]..` + } - // 璁颁綇瀵嗙爜鏃惰处鍙峰瘑鐮佸瓨鍏ocalStorage - localStorage.setItem(_url, window.btoa(window.encodeURIComponent(JSON.stringify({username: param.username, password: param.password})))) + localStorage.setItem(_href + 'lang', param.lang || 'zh-CN') + sessionStorage.setItem('lang', param.lang || 'zh-CN') - let _param = { - UserName: param.username, - Password: param.password, - BasePath: '/' + sessionStorage.removeItem('visitorUserID') + sessionStorage.removeItem('visitorLoginUID') + + let users = localStorage.getItem(_href + 'users') + + if (users) { + try { + users = JSON.parse(window.decodeURIComponent(window.atob(users))) + } catch (e) { + console.warn('Parse Failure') + users = [] + } + } else { + users = [] } // positecgroup @@ -134,7 +158,17 @@ }) return } - + + users = users.filter(item => item.username !== param.username) + + if (users.length > 4) { + users.length = 4 + } + + users.unshift({username: param.username, password: param.remember ? param.password : ''}) + + localStorage.setItem(_href + 'users', window.btoa(window.encodeURIComponent(JSON.stringify(users)))) + let level = localStorage.getItem(_href + 'pwdlevel') if (level && process.env.NODE_ENV === 'production') { @@ -170,7 +204,12 @@ } } - if (process.env.NODE_ENV === 'production') { + if (process.env.NODE_ENV === 'production' && param.username !== 'IF_DMS_APP') { + let _param = { + UserName: param.username, + Password: param.password, + BasePath: '/' + } Api.loginAndRedirect(_param).then(result => { if (result.IsError) { this.setState({ @@ -182,20 +221,15 @@ } }) } else { - 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 || '') - - this.props.history.replace('/main') + let iframe = sessionStorage.getItem('iframe') + if (iframe) { + sessionStorage.removeItem('iframe') + this.props.history.replace(iframe.replace(/@loginuid@/, res.LoginUID)) + } else { + this.props.history.replace('/main') + } } - } else if (res.ErrCode === 'Need_Get_Appkey' && options.sysType === 'SSO') { + } else if (res.ErrCode === 'Need_Get_Appkey' && window.GLOB.sysType === 'SSO') { message.warning('搴旂敤灏氭湭鍒涘缓锛岃鍚戜簯绔悓姝ュ簲鐢紒') this.setState({ @@ -210,7 +244,8 @@ input.select() } } else if (res.message.indexOf('鐧诲綍鏉冮檺') > -1) { - const input = document.getElementById('username') + const wrap = document.getElementById('username') + const input = wrap ? wrap.getElementsByTagName('input')[0] : null if (input) { input.select() } @@ -248,8 +283,14 @@ sessionStorage.removeItem('visitorUserID') sessionStorage.removeItem('visitorLoginUID') - this.props.history.replace('/main') - } else if (res.ErrCode === 'Need_Get_Appkey' && options.sysType === 'SSO') { + let iframe = sessionStorage.getItem('iframe') + if (iframe) { + sessionStorage.removeItem('iframe') + this.props.history.replace(iframe.replace(/@loginuid@/, res.LoginUID)) + } else { + this.props.history.replace('/main') + } + } else if (res.ErrCode === 'Need_Get_Appkey' && window.GLOB.sysType === 'SSO') { message.warning('搴旂敤灏氭湭鍒涘缓锛岃鍚戜簯绔悓姝ュ簲鐢紒') this.setState({ @@ -287,8 +328,14 @@ sessionStorage.removeItem('visitorUserID') sessionStorage.removeItem('visitorLoginUID') - this.props.history.replace('/main') - } else if (res.ErrCode === 'Need_Get_Appkey' && options.sysType === 'SSO') { + let iframe = sessionStorage.getItem('iframe') + if (iframe) { + sessionStorage.removeItem('iframe') + this.props.history.replace(iframe.replace(/@loginuid@/, res.LoginUID)) + } else { + this.props.history.replace('/main') + } + } else if (res.ErrCode === 'Need_Get_Appkey' && window.GLOB.sysType === 'SSO') { message.warning('搴旂敤灏氭湭鍒涘缓锛岃鍚戜簯绔悓姝ュ簲鐢紒') this.setState({ @@ -320,7 +367,7 @@ document.getElementsByTagName('head')[0].removeChild(JSONP) },500) }) -} + } componentDidMount () { // md5("/ws/location/v1/ip?callback=callbackFunction&key=key&output=jsonp secret key") @@ -336,27 +383,6 @@ if (view) { view.style.filter = 'grayscale(100%)' } - } - - if (sessionStorage.getItem('loginError')) { - try { - let res = JSON.parse(sessionStorage.getItem('loginError')) - console.info(res.url) - console.info(res.request) - console.info(res.response) - - let result = JSON.parse(res.response) - - notification.warning({ - top: 92, - message: result.message, - duration: 5 - }) - } catch (e) {} - - setTimeout(() => { - sessionStorage.removeItem('loginError') - }, 2000) } const _addressUrl = _href + 'queryAddress' @@ -453,22 +479,17 @@ } if (!window.GLOB.licenseKey && (index === -1 || index > 5)) { - let _appId = window.GLOB.appId - - if (options.sysType === 'cloud') { // 浜戠浣跨敤绯荤粺閰嶇疆appid - _appId = options.caId - } - - let str = md5('MK19' + _appId + timeStamp) + let str = md5('MK19' + window.GLOB.appId + timeStamp) let _rduri = window.atob('aHR0cHM6Ly9lcGMubWs5aC5$mkjbi93ZWJhcGkvZG9zdGFycw=='.replace(/\$mk/ig, '')) let _func = window.atob('c0VtcG93ZXJDbG91$mkZF9HZXRfTGlua1VybA=='.replace(/\$mk/ig, '')) let _id = window.atob('YmgwYmFwYWJ0ZDQ1ZXBz$mkZ3JhNzlzZWdiY2g2YzFpYms='.replace(/\$mk/ig, '')) let param = { func: _func, - AppID: _appId, + AppID: window.GLOB.appId, TimeStamp: timeStamp, appkey: window.GLOB.appkey, + SessionUid: localStorage.getItem('SessionUid') || '', userid: _id, LoginUID: _id, nonc: Utils.getuuid() @@ -536,7 +557,30 @@ authError: res.message }) } - }, () => { + }, (error) => { + if (error && error.ErrCode === 'LoginError') { + let param = { + func: 's_visitor_login', + timestamp: moment().format('YYYY-MM-DD HH:mm:ss'), + SessionUid: _id, + TypeCharOne: 'pc', + appkey: '202004041613277377A6A2456D34A4948AE84' + } + + param.LText = md5(window.btoa(_id + param.timestamp)) + param.secretkey = md5(param.LText + 'mingke' + param.timestamp) + + let params = { + url: _rduri.replace('dostars', 'dologon'), + method: 'post', + data: JSON.stringify(param) + } + + Api.directRequest(params) + + return + } + if (index === -1 || index > 10) { this.setState({ auth: false, @@ -583,12 +627,29 @@ _param.secretkey = Utils.encrypt(_param.LText, _param.timestamp) Api.getSystemConfig(_param).then(res => { + if (!res) return + if (res.status) { // positecgroup - res.Banner = res.Banner ? res.Banner.replace(/:8080/ig, '').replace(/http:/ig, 'https:') : '' - res.doclogo = res.doclogo ? res.doclogo.replace(/:8080/ig, '').replace(/http:/ig, 'https:') : '' - 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 (window.GLOB.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' @@ -701,7 +762,7 @@ let memberLevel = res.member_level - if (typeof(memberLevel) === 'number' && memberLevel > 10 && parseInt(memberLevel / 10) * 10 === memberLevel) { + if (typeof(memberLevel) === 'number' && memberLevel > 0 && parseInt(memberLevel / 10) * 10 === memberLevel) { sessionStorage.setItem('Member_Level', md5('mksoft' + window.GLOB.appkey + new Date().getFullYear() + new Date().getMonth() + memberLevel)) window.GLOB.memberLevel = memberLevel } @@ -787,15 +848,15 @@ func: 's_get_app_from_cloud', UserName: '', Password: '', - systemType: options.sysType, + systemType: window.GLOB.sysType, Type: 'X', debug: 'Y' } param.appkey = window.GLOB.appkey || '' - if (options.cloudServiceApi) { - param.rduri = options.cloudServiceApi.replace('dostars', 'dostar') + if (window.GLOB.cloudServiceApi) { + param.rduri = window.GLOB.cloudServiceApi.replace('dostars', 'dostar') } this.logincloudRef.handleConfirm().then(result => { @@ -914,7 +975,6 @@ </div> <div className="login-middle" style={bgImage ? {backgroundImage: 'url(' + bgImage + ')'} : null}> {loginWays ? <LoginForm - platName={this.state.platName} dict={this.state.dict} auth={this.state.auth} authError={this.state.authError} -- Gitblit v1.8.0