From 8ed1e158001e1a3f6f988c2037f7ef6f82df343d Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期三, 07 六月 2023 21:02:25 +0800
Subject: [PATCH] 2023-06-07

---
 src/views/login/index.jsx |  114 +++++++++++++++++++++++++++++++++++++++++++++------------
 1 files changed, 90 insertions(+), 24 deletions(-)

diff --git a/src/views/login/index.jsx b/src/views/login/index.jsx
index a654d81..115e679 100644
--- a/src/views/login/index.jsx
+++ b/src/views/login/index.jsx
@@ -5,7 +5,7 @@
 
 import Api from '@/api'
 import Utils from '@/utils/utils.js' 
-// import MKEmitter from '@/utils/events.js'
+import MKEmitter from '@/utils/events.js'
 import options, { styles } from '@/store/options.js'
 import zhCN from '@/locales/zh-CN/login.js'
 import enUS from '@/locales/en-US/login.js'
@@ -52,7 +52,6 @@
     localStorage.removeItem('localDataM')
     localStorage.removeItem('debug')
     localStorage.removeItem('role_id')
-    localStorage.removeItem('localRole_id')
 
     sessionStorage.clear()
   }
@@ -112,19 +111,36 @@
       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')
 
-      let _url = window.location.href.split('#')[0]
+      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 || '')
 
-      // 璁颁綇瀵嗙爜鏃惰处鍙峰瘑鐮佸瓨鍏ocalStorage
-      localStorage.setItem(_url, window.btoa(window.encodeURIComponent(JSON.stringify({username: param.username, password: param.password}))))
+      if (res.paas_externalDatabase) {
+        sessionStorage.setItem('externalDatabase', res.paas_externalDatabase)
+        window.GLOB.externalDatabase = `[${res.paas_externalDatabase}]..`
+      }
 
-      let _param = {
-        UserName: param.username,
-        Password: param.password,
-        BasePath: '/'
+      localStorage.setItem(_href + 'lang', param.lang || 'zh-CN')
+      sessionStorage.setItem('lang', param.lang || 'zh-CN')
+
+      sessionStorage.removeItem('visitorUserID')
+      sessionStorage.removeItem('visitorLoginUID')
+      
+      if (param.remember) { // 璁颁綇瀵嗙爜鏃惰处鍙峰瘑鐮佸瓨鍏ocalStorage
+        localStorage.setItem(_href, window.btoa(window.encodeURIComponent(JSON.stringify({username: param.username, password: param.password}))))
+      } else {
+        localStorage.removeItem(_href)
       }
       
       // positecgroup
@@ -137,19 +153,47 @@
         return
       }
 
-      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('mk_user_type', res.mk_user_type || '')
-      sessionStorage.setItem('localRole_id', res.role_id || '')
+      let level = localStorage.getItem(_href + 'pwdlevel')
+
+      if (level && process.env.NODE_ENV === 'production') {
+        let visible = false
+        let tip = '瀵嗙爜寮哄害涓嶅锛岃淇敼瀵嗙爜锛�'
+        if (param.password.length < 8) {
+          visible = true
+        } else if (level === 'letter_num' && /^([^0-9]*|[^a-zA-Z]*)$/.test(param.password)) {
+          visible = true
+        } else if ((level === 'char_num' || level === 'char_num_90' || level === 'char_num_90_sms') && /^([^0-9]*|[^a-zA-Z]*|[^!@#$%^&*()_]*)$/.test(param.password)) {
+          visible = true
+        } else if ((level === 'char_num_90' || level === 'char_num_90_sms') && res.modifydate) {
+          let s = (new Date().getTime() - new Date(res.modifydate).getTime()) / (1000 * 24 * 60 * 60)
+          if (!isNaN(s) && s > 90) {
+            visible = true
+            tip = '鎮ㄥ凡90澶╂湭淇敼瀵嗙爜锛岃鏇存崲瀵嗙爜鍚庝娇鐢紒'
+          }
+        }
+
+        if (visible) {
+          message.warning(tip)
+          this.setState({
+            isDisabled: false
+          })
+          
+          MKEmitter.emit('resetpassword', () => {
+            const input = document.getElementById('password')
+            if (input) {
+              input.select()
+            }
+          })
+          return
+        }
+      }
 
       if (process.env.NODE_ENV === 'production') {
+        let _param = {
+          UserName: param.username,
+          Password: param.password,
+          BasePath: '/'
+        }
         Api.loginAndRedirect(_param).then(result => {
           if (result.IsError) {
             this.setState({
@@ -164,6 +208,7 @@
       } else {
         this.props.history.replace('/main')
       }
+      this.props.history.replace('/main')
     } else if (res.ErrCode === 'Need_Get_Appkey' && options.sysType === 'SSO') {
       message.warning('搴旂敤灏氭湭鍒涘缓锛岃鍚戜簯绔悓姝ュ簲鐢紒')
 
@@ -561,6 +606,26 @@
             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 (options.sysType === 'local' && window.GLOB.systemType !== 'production') {
+            //   if (md5(('mk' + window.GLOB.appkey + res.sys_datetime + res.member_type + res.registry_date).toLowerCase()) !== res.secret_key) {
+            //     Modal.warning({
+            //       title: '瀵嗛挜閿欒锛岃鑱旂郴绠$悊鍛橈紒',
+            //       okText: '鐭ラ亾浜�'
+            //     })
+            //     this.setState({
+            //       auth: false,
+            //       authError: '瀵嗛挜閿欒锛岃鑱旂郴绠$悊鍛橈紒'
+            //     })
+            //     return
+            //   } else if (res.member_type === 'personal' && res.registry_date) {
+            //     let saveDelay = 0
+            //     try {
+            //       saveDelay = parseInt((new Date().getTime() - new Date(res.registry_date).getTime()) / 4320000)
+            //       sessionStorage.setItem('mkDelay', saveDelay)
+            //     } catch(e) {}
+            //   }
+            // }
+
             if (!['shutter', 'linkage_navigation', 'linkage', 'menu_board', 'menu_board_navigation'].includes(res.menu_type)) {
               res.menu_type = 'shutter'
             }
@@ -876,14 +941,15 @@
   }
 
   render () {
-    const { lineColor, loginlogo, bgImage, copyRight, webSite, ICP, loginWays, touristLogin } = this.state
+    const { lineColor, bgImage, loginlogo, copyRight, webSite, ICP, loginWays, touristLogin } = this.state
 
     return (
-      <div className="login-container" id="mk-login-view">
+      <div className="login-container" id="mk-login-view" style={bgImage ? {backgroundImage: 'url(' + bgImage + ')'} : {}}>
         <div className="logo" style={lineColor ? {borderColor: lineColor} : {}}>
           {loginlogo ? <img src={loginlogo} alt=""/> : null}
+          {this.state.platName ? <p className="plat-name">{this.state.platName}</p> : null}
         </div>
-        <div className="login-middle" style={bgImage ? {backgroundImage: 'url(' + bgImage + ')'} : null}>
+        <div className="login-middle" style={lineColor ? {borderColor: lineColor} : {}}>
           {loginWays ? <LoginForm
             platName={this.state.platName}
             dict={this.state.dict}

--
Gitblit v1.8.0