From e9c48bd7356462ba9257540b130a47a65ad1861d Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期四, 26 八月 2021 17:17:11 +0800 Subject: [PATCH] 2021-08-26 --- src/views/login/index.jsx | 166 ++++++++++++++++++++++++++++++++++++++++++++++-------- 1 files changed, 140 insertions(+), 26 deletions(-) diff --git a/src/views/login/index.jsx b/src/views/login/index.jsx index 3598767..5315abd 100644 --- a/src/views/login/index.jsx +++ b/src/views/login/index.jsx @@ -29,6 +29,7 @@ dict: iszhCN ? zhCN : enUS, isDisabled: false, auth: false, + authError: '', loginlogo: window.GLOB.loginlogo || '', bgImage: window.GLOB.bgImage || '', platName: window.GLOB.platName || '', @@ -40,9 +41,7 @@ syncApp: false, loginWays: null, touristLogin: false, - syncing: false, - ipAddress: '', - city: '' + syncing: false } UNSAFE_componentWillMount() { @@ -86,13 +85,15 @@ * @param {Object} param 鐢ㄦ埛鍚嶅瘑鐮佺瓑淇℃伅 */ async loginsubmit (param) { - const { ipAddress, city } = this.state if (options.sysType === 'local' && !window.GLOB.mainSystemApi) { // 涓氬姟绯荤粺蹇呴』璁剧疆鍗曠偣鍦板潃 Modal.warning({ title: '鏈缃崟鐐规湇鍔″櫒鍦板潃锛岃鑱旂郴绠$悊鍛橈紒' }) return } + + let city = sessionStorage.getItem('city') || '' + let ipAddress = sessionStorage.getItem('ipAddress') || '' // 鐧诲綍鎻愪氦 let res = await Api.getusermsg(param.username, param.password, false, ipAddress, city) @@ -106,6 +107,8 @@ localStorage.setItem('localDataM', res.dataM ? 'true' : '') localStorage.setItem('debug', res.debug || '') localStorage.setItem('role_id', res.role_id || '') + localStorage.setItem('departmentcode', res.departmentcode || '') + localStorage.setItem('organization', res.organization || '') localStorage.setItem('localRole_id', res.role_id || '') localStorage.setItem('lang', 'zh-CN') @@ -180,13 +183,15 @@ } async phoneloginsubmit (param) { - const { ipAddress, city } = this.state if (options.sysType === 'local' && !window.GLOB.mainSystemApi) { // 涓氬姟绯荤粺蹇呴』璁剧疆鍗曠偣鍦板潃 Modal.warning({ title: '鏈缃崟鐐规湇鍔″櫒鍦板潃锛岃鑱旂郴绠$悊鍛橈紒' }) return } + + let city = sessionStorage.getItem('city') || '' + let ipAddress = sessionStorage.getItem('ipAddress') || '' // 鐧诲綍鎻愪氦 let res = await Api.getphoneusermsg(param.phone, param.vercode, false, ipAddress, city) @@ -200,6 +205,8 @@ sessionStorage.setItem('localDataM', 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('localRole_id', res.role_id || '') let _url = window.location.href.split('#')[0] @@ -233,17 +240,106 @@ } } - componentDidMount () { - // 鑾峰彇ip鍙婂煄甯備俊鎭� - let ipurl = window.atob('aHR0cHM6Ly9lcGMubWs5a$mkC5jbi93ZWJhcGkvaXBsb2M='.replace(/\$mk/ig, '')) - Api.directRequest(ipurl, 'get', null, 'true').then(res => { - if (!res || !res.location) return - sessionStorage.setItem('city', res.location) - this.setState({ - ipAddress: res.ip || '', - city: res.location + authLogin = (appid, openid, memberid, scanId) => { + if (options.sysType === 'local' && !window.GLOB.mainSystemApi) { // 涓氬姟绯荤粺蹇呴』璁剧疆鍗曠偣鍦板潃 + Modal.warning({ + title: '鏈缃崟鐐规湇鍔″櫒鍦板潃锛岃鑱旂郴绠$悊鍛橈紒' }) + return + } + Api.getTouristMsg(appid, openid, memberid, scanId).then(res => { + if (res.status) { + 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('departmentcode', res.departmentcode || '') + sessionStorage.setItem('organization', res.organization || '') + sessionStorage.setItem('localRole_id', res.role_id || '') + + sessionStorage.removeItem('visitorUserID') + sessionStorage.removeItem('visitorLoginUID') + + let _history = sessionStorage.getItem('history') + if (_history) { + sessionStorage.removeItem('history') + // 鏌ョ湅鏄惁涓哄叾浠栭〉闈㈣烦杞紝璺緞瀛樺湪鏃讹紝璺冲洖鍘熼〉闈� + this.props.history.replace(_history) + } else { + this.props.history.replace('/main') + } + } else if (res.ErrCode === 'Need_Get_Appkey' && options.sysType === 'SSO') { + message.warning('搴旂敤灏氭湭鍒涘缓锛岃鍚戜簯绔悓姝ュ簲鐢紒') + + this.setState({ + isDisabled: false, + syncApp: true + }) + } else { + message.warning(res.message) + this.setState({ + isDisabled: false + }) + } }) + } + + jsonp(url) { + return new Promise((resolve, reject) => { + window.jsonCallBack = (result) => { + resolve(result) + } + + const JSONP = document.createElement('script') + JSONP.type = 'text/javascript' + JSONP.src = url + + document.getElementsByTagName('head')[0].appendChild(JSONP) + + setTimeout(() => { + document.getElementsByTagName('head')[0].removeChild(JSONP) + },500) + }) +} + + componentDidMount () { + // md5("/ws/location/v1/ip?callback=callbackFunction&key=key&output=jsonp secret key") + // md5("/ws/location/v1/ip?callback=callbackFunction&key=BA7BZ-4QB65-LFCIA-QPDA6-4G6O7-MJB4Q&output=jsonpuThL4ZM3XOj642ksEQh76tyHFjh4") + + // 鑾峰彇ip鍙婂煄甯備俊鎭� + // let ipurl = window.atob('aHR0cHM6Ly9lcGMubWs5a$mkC5jbi93ZWJhcGkvaXBsb2M='.replace(/\$mk/ig, '')) + // Api.directRequest(ipurl, 'get', null, 'true').then(res => { + // if (!res || !res.ip) return + // sessionStorage.setItem('ipAddress', res.ip) + // }) + const _addressUrl = window.location.href.split('#')[0] + 'queryAddress' + + if (_addressUrl !== 'true') { + sessionStorage.setItem('city', '') + sessionStorage.setItem('ipAddress', '') + } else { + window.callbackFunction = (res) => { + if (res.result && res.result.ad_info) { + sessionStorage.setItem('city', res.result.ad_info.city) + sessionStorage.setItem('ipAddress', res.result.ip) + } + } + + const JSONP = document.createElement('script') + JSONP.type = 'text/javascript' + JSONP.src = 'https://apis.map.qq.com/ws/location/v1/ip?callback=callbackFunction&key=BA7BZ-4QB65-LFCIA-QPDA6-4G6O7-MJB4Q&output=jsonp&sig=3e5ebecb324ba266bf80014dcc8380db' + document.getElementsByTagName('head')[0].appendChild(JSONP) + + setTimeout(() => { + document.getElementsByTagName('head')[0].removeChild(JSONP) + },500) + } + const timeStamp = new Date().getTime() const _authUrl = window.location.href.split('#')[0] + 'AuthCode' @@ -252,13 +348,15 @@ authCode = authCode ? authCode.split(',') : [] let index = authCode.findIndex(key => key === _s) - if (index > -1) { + let key = md5(window.GLOB.appId + 'minke_software' + window.GLOB.appkey).toUpperCase().substr(-6) + + if (index > -1 || window.GLOB.licenseKey === key) { this.setState({ auth: true }) } - if (index === -1 || index > 5) { + if (window.GLOB.licenseKey !== key && (index === -1 || index > 5)) { let _appId = window.GLOB.appId if (options.sysType === 'cloud') { // 浜戠浣跨敤绯荤粺閰嶇疆appid @@ -280,6 +378,15 @@ nonc: Utils.getuuid() } + // param = { + // func: _func, + // VerificationCode: '鎺堟潈鐮�', + // TimeStamp: timeStamp, + // userid: _id, + // LoginUID: _id, + // nonc: Utils.getuuid() + // } + let keys = Object.keys(param).sort() let values = '' keys.forEach(key => { @@ -288,7 +395,7 @@ param.sign = md5(values) param.t = new Date().getTime() - Api.directRequest(_rduri + '/sEmpowerCloud_Get_LinkUrl', 'post', param, 'true').then(res => { + Api.directRequest(_rduri + '/' + _func, 'post', param, 'true').then(res => { if (res.status) { if (res.EPC === str) { let box = [] @@ -308,10 +415,17 @@ auth: false }) } + + if (res.query_address !== 'true') { + localStorage.setItem(_addressUrl, 'false') + } else { + localStorage.setItem(_addressUrl, 'true') + } } else if (res.ErrCode === 'N') { localStorage.removeItem(_authUrl) this.setState({ - auth: false + auth: false, + authError: res.message }) } }) @@ -478,14 +592,12 @@ try { loginWays = JSON.parse(window.decodeURIComponent(window.atob(loginWays))) } catch { - localStorage.removeItem(window.location.href.split('#')[0] + 'loginways') + loginWays = null } - if (loginWays) { - this.setState({ - loginWays: loginWays - }) - } + this.setState({ + loginWays: loginWays + }) } } @@ -576,6 +688,7 @@ platName={this.state.platName} dict={this.state.dict} auth={this.state.auth} + authError={this.state.authError} touristLogin={touristLogin} loginWays={loginWays} lang={this.state.selectedlang} @@ -583,6 +696,7 @@ isDisabled={this.state.isDisabled} changelang={(value) => this.changelang(value)} handleSubmit={() => this.handleSubmit()} + authLogin={this.authLogin} wrappedComponentRef={(inst) => this.loginformRef = inst} /> : null} </div> @@ -596,8 +710,8 @@ {/* 缂栬緫鐘舵�佺櫥褰� */} <Modal title={this.state.dict['login.sync.cloud']} - okText={this.state.dict['login.auth.ok']} - cancelText={this.state.dict['login.auth.cancel']} + okText={this.state.dict['login.ok']} + cancelText={this.state.dict['login.cancel']} visible={this.state.syncApp} onOk={this.syncSubmit} maskClosable={false} -- Gitblit v1.8.0