From dfdcdcb3dbd0b711bc0b77bb00fd1d39af91bd0b Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期五, 10 一月 2025 17:43:34 +0800 Subject: [PATCH] 2025-01-10 --- src/views/sso/index.jsx | 160 +++++++++++++++++++++++++++++----------------------- 1 files changed, 89 insertions(+), 71 deletions(-) diff --git a/src/views/sso/index.jsx b/src/views/sso/index.jsx index 077a30b..bcd4613 100644 --- a/src/views/sso/index.jsx +++ b/src/views/sso/index.jsx @@ -1,13 +1,11 @@ import React, {Component} from 'react' -import { Spin } from 'antd' -import { connect } from 'react-redux' +import { Spin, notification } from 'antd' import md5 from 'md5' import moment from 'moment' import Api from '@/api' import Utils from '@/utils/utils.js' -import options from '@/store/options.js' -import { modifyMemberLevel } from '@/store/action' +import { styles } from '@/store/options.js' import './index.scss' class SSOLogin extends Component { @@ -16,30 +14,51 @@ let _param = JSON.parse(window.decodeURIComponent(window.atob(this.props.match.params.param))) if (typeof(_param) === 'object') { - _param.UserID && sessionStorage.setItem('UserID', _param.UserID) - _param.LoginUID && sessionStorage.setItem('LoginUID', _param.LoginUID) - _param.User_Name && sessionStorage.setItem('User_Name', _param.User_Name) - _param.Full_Name && sessionStorage.setItem('Full_Name', _param.Full_Name) - _param.debug && sessionStorage.setItem('debug', _param.debug) - _param.dataM && sessionStorage.setItem('dataM', _param.dataM) - _param.dataM && sessionStorage.setItem('localDataM', _param.dataM) - _param.avatar && sessionStorage.setItem('avatar', _param.avatar) - _param.role_id && sessionStorage.setItem('role_id', _param.role_id) - _param.role_id && sessionStorage.setItem('localRole_id', _param.role_id) + this.authLogin(_param.appid, _param.openid, _param.memberId, _param.key, _param.menuId || '') } else { this.props.history.replace('/login') } - this.getMessage() - } catch { + } catch (e) { this.props.history.replace('/login') } } - getMessage = () => { + authLogin = (appid, openid, memberid, scanId, menuId) => { + Api.getTouristMsg('mk', 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('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 || '') + + this.getMessage(menuId) + } else { + notification.warning({ + top: 92, + message: res.message, + duration: 5 + }) + this.props.history.replace('/login') + } + }) + } + + getMessage = (menuId) => { let _param = { func: 's_Get_style', TypeCharOne: 'PC', LText: `select '${window.GLOB.appkey}'`, + } + + if (window.GLOB.style_appkey) { + _param.style_appkey = window.GLOB.style_appkey } _param.timestamp = moment().format('YYYY-MM-DD HH:mm:ss') @@ -47,7 +66,10 @@ Api.getSystemConfig(_param).then(res => { if (res.status) { - let _url = window.location.href.split('#')[0] + 'system' + if (!['shutter', 'linkage_navigation', 'linkage', 'menu_board', 'menu_board_navigation'].includes(res.menu_type)) { + res.menu_type = 'shutter' + } + let systemMsg = { favicon: res.titlelogo || '', platTitle: res.titleName || '', @@ -59,54 +81,57 @@ mainlogo: res.indexlogo || '', doclogo: res.doclogo || '', style: res.CSS || '', - webSite: res.WebSite || '' + showline: res.split_line_show || 'true', + webSite: res.WebSite || '', + navBar: res.menu_type, + app_version: res.app_version, + Member_Level: 0, + appname: res.appname || '' } + + if ([10, 20, 30, 40, 50, 60, 70, 80, 90, 100].includes(res.member_level)) { + systemMsg.Member_Level = md5('mksoft' + window.GLOB.appkey + res.member_level) + if (!window.GLOB.memberLevel) { + Object.defineProperty(window.GLOB, 'memberLevel', { + writable: false, + value: res.member_level + }) + } + } + + let level = res.pwd_level || '' + + if (level && !['letter_num', 'char_num', 'char_num_90', 'char_num_90_sms'].includes(level)) { + level = '' + } + + localStorage.setItem(window.GLOB.sysSign + 'pwdlevel', level) + + res.index_background_color && sessionStorage.setItem('home_background', res.index_background_color) + + let seconds = 0 + if (res.sys_datetime) { + seconds = Math.floor((new Date(res.sys_datetime).getTime() - new Date().getTime()) / 1000) + } + sessionStorage.setItem('sys_time_shim', isNaN(seconds) ? 0 : seconds) // url鏍囬 document.title = systemMsg.platTitle try { - localStorage.setItem(_url, window.btoa(window.encodeURIComponent(JSON.stringify(systemMsg)))) - } catch { - localStorage.removeItem(_url) - } - - let _loginurl = window.location.href.split('#')[0] + 'loginways' - let login_ways = [] - let login_types = [] - if (res.login_ways && res.login_ways.length > 0) { - res.login_ways.forEach(item => { - // 鐭俊楠岃瘉鐮佺櫥褰曪紝蹇呴』璁剧疆鐭俊Id - if (item.way_no === 'sms_vcode' && !item.sms_id) return - if (login_types.includes(item.way_no)) return - - 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: '' - }) - } - - try { - localStorage.setItem(_loginurl, window.btoa(window.encodeURIComponent(JSON.stringify(login_ways)))) - } catch { - localStorage.removeItem(_loginurl) + localStorage.setItem(window.GLOB.sysSign + 'system', window.btoa(window.encodeURIComponent(JSON.stringify(systemMsg)))) + } catch (e) { + localStorage.removeItem(window.GLOB.sysSign + 'system') } window.GLOB.mainlogo = systemMsg.mainlogo window.GLOB.style = systemMsg.style + window.GLOB.navBar = systemMsg.navBar + window.GLOB.appVersion = systemMsg.app_version + sessionStorage.setItem('appname', res.appname || '') - if (window.GLOB.style && options.styles[window.GLOB.style]) { - document.getElementById('root').className = options.styles[window.GLOB.style] + if (window.GLOB.style && styles[window.GLOB.style]) { + document.body.className = styles[window.GLOB.style] + ' ' + (res.split_line_show === 'false' ? 'hidden-split-line' : '') } if (res.titlelogo && window.GLOB.favicon !== res.titlelogo) { @@ -117,14 +142,17 @@ document.getElementsByTagName('head')[0].appendChild(link) } - 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) + if (menuId) { + sessionStorage.setItem('ThirdMenu', menuId) } + this.props.history.replace('/main') } else { + notification.warning({ + top: 92, + message: res.message, + duration: 5 + }) this.props.history.replace('/login') } }, () => { @@ -141,14 +169,4 @@ } } -const mapStateToProps = () => { - return {} -} - -const mapDispatchToProps = (dispatch) => { - return { - modifyMemberLevel: (memberLevel) => dispatch(modifyMemberLevel(memberLevel)) - } -} - -export default connect(mapStateToProps, mapDispatchToProps)(SSOLogin) \ No newline at end of file +export default SSOLogin \ No newline at end of file -- Gitblit v1.8.0