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