From cb9ade2afd2a367ad767bc605ab7086c695dd010 Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期五, 09 十二月 2022 15:53:32 +0800 Subject: [PATCH] 2022-12-09 --- src/views/login/index.jsx | 182 ++++++++++++++++++++++++++++++++++++++------- 1 files changed, 154 insertions(+), 28 deletions(-) diff --git a/src/views/login/index.jsx b/src/views/login/index.jsx index 8238418..c1de41c 100644 --- a/src/views/login/index.jsx +++ b/src/views/login/index.jsx @@ -1,6 +1,5 @@ import React, { Component } from 'react' import { message, Modal, notification } from 'antd' -import { connect } from 'react-redux' import md5 from 'md5' import moment from 'moment' @@ -11,19 +10,15 @@ import enUS from '@/locales/en-US/login.js' import asyncComponent from '@/utils/asyncComponent' import asyncLoadComponent from '@/utils/asyncLoadComponent' -import { modifyMemberLevel } from '@/store/action' import './index.scss' const LoginForm = asyncLoadComponent(() => import('./loginform')) const Resetpwd = asyncLoadComponent(() => import('@/components/header/resetpwd')) const LoginCloudForm = asyncComponent(() => import('./logincloudform')) +const LoginCodeForm = asyncComponent(() => import('./logincodeform')) const iszhCN = sessionStorage.getItem('lang') !== 'en-US' const _href = window.location.href.split('#')[0] -if (localStorage.getItem(_href + 'paramsmain')) { - sessionStorage.setItem('history', localStorage.getItem(_href + 'paramsmain')) - localStorage.removeItem(_href + 'paramsmain') -} class Login extends Component { state = { @@ -95,6 +90,20 @@ // 鐧诲綍鎻愪氦 let res = await Api.getusermsg(param.username, param.password, false, ipAddress, city) if (res.status) { + if (res.check_mob) { + let loginWays = this.state.loginWays.filter(item => item.type === 'sms_vcode') + + if (loginWays.length > 0) { + this.setState({loginWays: null, isDisabled: false}, () => { + this.setState({loginWays: loginWays}) + }) + Modal.warning({ + title: '涓虹‘璁ゆ槸鎮ㄦ湰浜烘搷浣滐紝璇蜂娇鐢ㄦ墜鏈虹煭淇¢獙璇佺爜杩涜韬唤璁よ瘉', + okText: '鐭ラ亾浜�' + }) + return + } + } localStorage.setItem('UserID', res.UserID) localStorage.setItem('LoginUID', res.LoginUID) localStorage.setItem('User_Name', res.UserName) @@ -106,6 +115,7 @@ localStorage.setItem('role_id', res.role_id || '') 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') @@ -119,6 +129,16 @@ UserName: param.username, Password: param.password, BasePath: '/' + } + + // positecgroup + if (res.token) { + this.setState({ + isDisabled: false, + verify: {...res, $password: param.password}, + codeVisible: true + }) + return } if (process.env.NODE_ENV === 'production') { @@ -142,6 +162,7 @@ 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 _history = sessionStorage.getItem('history') @@ -197,7 +218,13 @@ 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 || '') sessionStorage.setItem('localRole_id', res.role_id || '') + + if (res.paas_externalDatabase) { + sessionStorage.setItem('externalDatabase', res.paas_externalDatabase) + window.GLOB.externalDatabase = `[${res.paas_externalDatabase}]..` + } localStorage.setItem(_href + 'lang', param.lang || 'zh-CN') sessionStorage.setItem('lang', param.lang || 'zh-CN') @@ -229,7 +256,7 @@ } authLogin = (appid, openid, memberid, scanId) => { - Api.getTouristMsg(appid, openid, memberid, scanId).then(res => { + Api.getTouristMsg('mk', appid, openid, memberid, scanId).then(res => { if (res.status) { sessionStorage.setItem('UserID', res.UserID) sessionStorage.setItem('LoginUID', res.LoginUID) @@ -242,7 +269,13 @@ 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 || '') sessionStorage.setItem('localRole_id', res.role_id || '') + + if (res.paas_externalDatabase) { + sessionStorage.setItem('externalDatabase', res.paas_externalDatabase) + window.GLOB.externalDatabase = `[${res.paas_externalDatabase}]..` + } sessionStorage.removeItem('visitorUserID') sessionStorage.removeItem('visitorLoginUID') @@ -299,6 +332,14 @@ // if (!res || !res.ip) return // sessionStorage.setItem('ipAddress', res.ip) // }) + if (window.GLOB.filter) { + let view = document.getElementById('mk-login-view') + + if (view) { + view.style.filter = 'grayscale(100%)' + } + } + if (sessionStorage.getItem('loginError')) { try { let res = JSON.parse(sessionStorage.getItem('loginError')) @@ -322,10 +363,7 @@ const _addressUrl = _href + 'queryAddress' - if (localStorage.getItem(_addressUrl) !== 'true') { - sessionStorage.setItem('city', '') - sessionStorage.setItem('ipAddress', '') - } else { + if (localStorage.getItem(_addressUrl) === 'true') { this.queryAddress() } @@ -501,6 +539,21 @@ Api.getTouristMsg().then(result => { if (result.status) { + if (result.website && process.env.NODE_ENV === 'production') { + let website = result.website.replace(/http(s)?:\/\/|\/$/ig, '').toLowerCase() + let current = window.GLOB.baseurl.replace(/http(s)?:\/\/|\/$/ig, '').toLowerCase() + + if (website !== current) { + try { + window.history.replaceState(null, null, result.website.replace(/\/$/ig, '') + '/admin/index.html#/login') + window.location.reload() + } catch(e) { + window.location.href = result.website.replace(/\/$/ig, '') + '/admin/index.html#/login' + } + return + } + } + sessionStorage.setItem('visitorUserID', result.UserID || '') sessionStorage.setItem('visitorLoginUID', result.LoginUID || '') @@ -528,6 +581,10 @@ 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 (!['shutter', 'linkage_navigation', 'linkage', 'menu_board', 'menu_board_navigation'].includes(res.menu_type)) { + res.menu_type = 'shutter' + } + let _url = _href + 'system' let systemMsg = { favicon: res.titlelogo || '', @@ -542,7 +599,7 @@ style: res.CSS || '', showline: res.split_line_show || 'true', webSite: res.WebSite || '', - navBar: res.menu_type, + navBar: res.menu_type, // shutter 鐧惧彾绐椼�乴inkage_navigation 鑱斿姩鑿滃崟銆乴inkage 鑱斿姩鑿滃崟_鏃犲鑸爮銆乵enu_board 鑿滃崟闈㈡澘銆乵enu_board_navigation 鑿滃崟闈㈡澘_鏍囩椤� app_version: res.app_version } @@ -630,8 +687,8 @@ let memberLevel = res.member_level if (typeof(memberLevel) === 'number' && memberLevel > 10 && parseInt(memberLevel / 10) * 10 === memberLevel) { - sessionStorage.setItem('Member_Level', md5('mksoft' + moment().format('YYYYMM') + memberLevel)) - this.props.modifyMemberLevel(memberLevel) + sessionStorage.setItem('Member_Level', md5('mksoft' + window.GLOB.appkey + new Date().getFullYear() + new Date().getMonth() + memberLevel)) + window.GLOB.memberLevel = memberLevel } // positecgroup @@ -687,8 +744,12 @@ queryAddress = () => { window.callbackFunction = (res) => { if (res.result && res.result.ad_info) { - sessionStorage.setItem('city', res.result.ad_info.city) - sessionStorage.setItem('ipAddress', res.result.ip) + sessionStorage.setItem('nation', res.result.ad_info.nation || '') + sessionStorage.setItem('province', res.result.ad_info.province || '') + sessionStorage.setItem('city', res.result.ad_info.city || '') + sessionStorage.setItem('district', res.result.ad_info.district || '') + sessionStorage.setItem('address', res.result.ad_info.address || '') + sessionStorage.setItem('ipAddress', res.result.ip || '') } } @@ -766,6 +827,66 @@ }) } + codeSubmit = () => { + const { verify } = this.state + this.codeRef.handleConfirm().then(res => { + this.setState({ + codeLoading: true + }) + Api.verifycode({...verify, code: res.code}).then(result => { + this.setState({ + codeVisible: false, + codeLoading: false + }) + + if (result.verifyResult === 'success') { + let level = localStorage.getItem(_href + 'pwdlevel') + if (level) { + let visible = false + let tip = '瀵嗙爜寮哄害涓嶅锛岃淇敼瀵嗙爜锛�' + if (verify.$password.length < 8) { + visible = true + } else if (level === 'letter_num' && /^([^0-9]*|[^a-zA-Z]*)$/.test(verify.$password)) { + visible = true + } else if ((level === 'char_num' || level === 'char_num_90') && /^([^0-9]*|[^a-zA-Z]*|[^!@#$%^&*()_]*)$/.test(verify.$password)) { + visible = true + } else if (level === 'char_num_90' && verify.modifydate) { + let s = (new Date().getTime() - new Date(verify.modifydate).getTime()) / (1000 * 24 * 60 * 60) + if (!isNaN(s) && s > 90) { + visible = true + tip = '鎮ㄥ凡90澶╂湭淇敼瀵嗙爜锛岃鏇存崲瀵嗙爜鍚庝娇鐢紒' + } + } + + if (visible) { + message.warning(tip) + this.setState({ + isDisabled: false, + visible: true + }) + return + } + } + + let _history = sessionStorage.getItem('history') + if (_history) { + sessionStorage.removeItem('history') + // 鏌ョ湅鏄惁涓哄叾浠栭〉闈㈣烦杞紝璺緞瀛樺湪鏃讹紝璺冲洖鍘熼〉闈� + this.props.history.replace(_history) + } else { + this.props.history.replace('/main') + } + } else { + notification.warning({ + top: 92, + message: '楠岃瘉鐮佹棤鏁堬紝璇烽噸鏂扮櫥褰曪紒', + duration: 5 + }) + } + }) + }, () => {}) + } + resetPwdSubmit = () => { this.formRef.handleConfirm().then(res => { this.setState({ @@ -821,7 +942,7 @@ const { lineColor, loginlogo, bgImage, copyRight, webSite, ICP, loginWays, touristLogin } = this.state return ( - <div className="login-container"> + <div className="login-container" id="mk-login-view"> <div className="logo" style={lineColor ? {borderColor: lineColor} : {}}> {loginlogo ? <img src={loginlogo} alt=""/> : null} </div> @@ -872,25 +993,30 @@ cancelText={this.state.dict['login.cancel']} visible={this.state.visible} onOk={this.resetPwdSubmit} + maskClosable={false} confirmLoading={this.state.resetLoading} onCancel={() => this.setState({visible: false, resetLoading: false})} destroyOnClose > <Resetpwd wrappedComponentRef={(inst) => this.formRef = inst} resetPwdSubmit={this.resetPwdSubmit}/> </Modal> + {/* 浜屾楠岃瘉 */} + <Modal + title="浜屾楠岃瘉" + okText={this.state.dict['login.ok']} + cancelText={this.state.dict['login.cancel']} + visible={this.state.codeVisible} + onOk={this.codeSubmit} + maskClosable={false} + confirmLoading={this.state.codeLoading} + onCancel={() => this.setState({codeVisible: false, codeLoading: false})} + destroyOnClose + > + <LoginCodeForm verify={this.state.verify} wrappedComponentRef={(inst) => this.codeRef = inst} handleSubmit={this.codeSubmit}/> + </Modal> </div> ) } } -const mapStateToProps = () => { - return {} -} - -const mapDispatchToProps = (dispatch) => { - return { - modifyMemberLevel: (memberLevel) => dispatch(modifyMemberLevel(memberLevel)) - } -} - -export default connect(mapStateToProps, mapDispatchToProps)(Login) \ No newline at end of file +export default Login \ No newline at end of file -- Gitblit v1.8.0