king
2025-01-10 dfdcdcb3dbd0b711bc0b77bb00fd1d39af91bd0b
src/views/sso/index.jsx
@@ -1,13 +1,11 @@
import React, {Component} from 'react'
import { Spin, notification } from 'antd'
import { connect } from 'react-redux'
import md5 from 'md5'
import moment from 'moment'
import Api from '@/api'
import Utils from '@/utils/utils.js' 
import { styles } from '@/store/options.js'
import { modifyMemberLevel } from '@/store/action'
import './index.scss'
class SSOLogin extends Component {
@@ -16,7 +14,7 @@
      let _param = JSON.parse(window.decodeURIComponent(window.atob(this.props.match.params.param)))
      if (typeof(_param) === 'object') {
        this.authLogin(_param.appid, _param.openid, _param.memberId, _param.key)
        this.authLogin(_param.appid, _param.openid, _param.memberId, _param.key, _param.menuId || '')
      } else {
        this.props.history.replace('/login')
      }
@@ -25,8 +23,8 @@
    }
  }
  authLogin = (appid, openid, memberid, scanId) => {
    Api.getTouristMsg(appid, openid, memberid, scanId).then(res => {
  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)
@@ -34,14 +32,13 @@
        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.setItem('mk_user_type', res.mk_user_type || '')
        
        this.getMessage()
        this.getMessage(menuId)
      } else {
        notification.warning({
          top: 92,
@@ -53,11 +50,15 @@
    })
  }
  getMessage = () => {
  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')
@@ -65,14 +66,10 @@
    Api.getSystemConfig(_param).then(res => {
      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 (!['shutter', 'linkage_navigation', 'linkage', 'menu_board', 'menu_board_navigation'].includes(res.menu_type)) {
          res.menu_type = 'shutter'
        }
        const _href = window.location.href.split('#')[0]
        let _url = _href + 'system'
        let systemMsg = {
          favicon: res.titlelogo || '',
          platTitle: res.titleName || '',
@@ -87,42 +84,51 @@
          showline: res.split_line_show || 'true',
          webSite: res.WebSite || '',
          navBar: res.menu_type,
          app_version: res.app_version
          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'].includes(level)) {
        if (level && !['letter_num', 'char_num', 'char_num_90', 'char_num_90_sms'].includes(level)) {
          level = ''
        }
        localStorage.setItem(_href + 'pwdlevel', level)
        localStorage.setItem(window.GLOB.sysSign + 'pwdlevel', level)
        if (res.srcid) {
          localStorage.setItem(_href + 'srcId', res.srcid)
        } else {
          localStorage.removeItem(_href + 'srcId')
        }
        res.index_background_color && sessionStorage.setItem('home_background', res.index_background_color)
        sessionStorage.setItem('home_background', res.index_background_color || '')
        let seconds = 0
        if (res.sys_datetime) {
          sessionStorage.setItem('sys_datetime', res.sys_datetime)
          sessionStorage.setItem('app_datetime', new Date().getTime())
          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))))
          localStorage.setItem(window.GLOB.sysSign + 'system', window.btoa(window.encodeURIComponent(JSON.stringify(systemMsg))))
        } catch (e) {
          localStorage.removeItem(_url)
          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 && styles[window.GLOB.style]) {
          document.body.className = styles[window.GLOB.style] + ' ' + (res.split_line_show === 'false' ? 'hidden-split-line' : '')
@@ -136,12 +142,10 @@
          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({
@@ -165,14 +169,4 @@
  }
}
const mapStateToProps = () => {
  return {}
}
const mapDispatchToProps = (dispatch) => {
  return {
    modifyMemberLevel: (memberLevel) => dispatch(modifyMemberLevel(memberLevel))
  }
}
export default connect(mapStateToProps, mapDispatchToProps)(SSOLogin)
export default SSOLogin