rkljw 3 mesiacov pred
rodič
commit
5e44101dee

+ 1 - 1
src/api/user.js

@@ -59,4 +59,4 @@ export function updateUserAvatarNickname(data) {
     method: 'post',
     data
   })
-}
+}

+ 2 - 2
src/layout/components/Navbar.vue

@@ -27,9 +27,9 @@
           <!-- <i class="el-icon-caret-bottom" /> -->
         </div>
         <el-dropdown-menu slot="dropdown">
-          <a :href="'http://' + this.$store.state.user.userurl">
+          <!-- <a :href="'http://' + this.$store.state.user.userurl">
             <el-dropdown-item>返回用户端</el-dropdown-item>
-          </a> 
+          </a>  -->
           <router-link to="/profile/index">
             <div class="userMenuDownItem">
               <el-dropdown-item>

+ 10 - 2
src/layout/components/Sidebar/Logo.vue

@@ -1,12 +1,20 @@
 <template>
   <div class="sidebar-logo-container" :class="{'collapse':collapse}">
     <transition name="sidebarLogoFade">
-      <router-link v-if="collapse" key="collapse" class="sidebar-logo-link" to="/">
+      <!-- <router-link v-if="collapse" key="collapse" class="sidebar-logo-link" to="/">
         <h1 class="sidebar-title">{{ title }} </h1>
       </router-link>
       <router-link v-else key="expand" class="sidebar-logo-link" to="/">
         <h1 class="sidebar-title">{{ title }} </h1>
-      </router-link>
+      </router-link> -->
+      <a :href="'http://' + this.$store.state.user.userurl" v-if="collapse" key="collapse" class="sidebar-logo-link">
+        <h1 class="sidebar-title" v-if="this.$store.state.user.usertype==10000">{{ title }} </h1>
+        <h1 class="sidebar-title" v-else>返回首页</h1>
+      </a>
+      <a :href="'http://' + this.$store.state.user.userurl" v-else key="expand" class="sidebar-logo-link">
+        <h1 class="sidebar-title" v-if="this.$store.state.user.usertype==10000">{{ title }} </h1>
+        <h1 class="sidebar-title" v-else>返回首页 </h1>
+      </a>
     </transition>
   </div>
 </template>

+ 3 - 2
src/store/getters.js

@@ -12,7 +12,8 @@ const getters = {
   roles: state => state.user.roles,
   permission_routes: state => state.permission.routes,
   errorLogs: state => state.errorLog.logs,
-  SiteId: state => state.template.editWebsiteId,
-  userurl: state => state.user.userurl
+  userurl: state => state.user.userurl,
+  usertype: state => state.user.usertype,
+  exp: state => state.user.exp
 }
 export default getters

+ 28 - 4
src/store/modules/user.js

@@ -1,5 +1,5 @@
 import { login, logout, getInfo, getMenu ,getImgCode,updateUserAvatarNickname } from '@/api/user'
-import { getToken, setToken, setUserUrl, removeToken ,removUserUrl,getUserUrl } from '@/utils/auth'
+import { getToken, setToken, setUserUrl, removeToken ,removUserUrl,getUserUrl,getUseType,removUseType,setUseType,getExp,setExp,removeExp } from '@/utils/auth'
 import router, { resetRouter } from '@/router'
 import axios from 'axios'
 
@@ -12,6 +12,8 @@ const state = {
   userid:'',
   role_id:'',
   userurl: getUserUrl(),
+  usertype: getUseType(),
+  exp:getExp(),
 }
 
 const mutations = {
@@ -21,6 +23,9 @@ const mutations = {
   SET_URL: (state, url) => {
     state.userurl = url
   },
+  SET_USE_TYPE: (state, user_type) => {
+    state.usertype = user_type
+  },
   SET_INTRODUCTION: (state, introduction) => {
     state.introduction = introduction
   },
@@ -39,6 +44,9 @@ const mutations = {
   SET_USERID: (state, id) => {
     state.userid = id
   },
+  SET_EXP: (state, exp) => {
+    state.exp = exp
+  },
   // 退出登录逻辑直接放在 mutations 中
   LOGOUT(state) {
     state.token = '';
@@ -51,6 +59,8 @@ const mutations = {
     removeToken();
     removUserUrl();
     resetRouter();
+    removUseType();
+    removeExp();
     //退出登录跳转回原网站
     window.location.href = "http://" + state.userurl
   }
@@ -78,22 +88,29 @@ const actions = {
 
         //会员登录跳转 但不储存
         if(userInfo.backurl){
-          //储存token即可 无需储存url
+          //设置用户url
+          setUserUrl(userInfo.backurl,data.exp)
+          commit('SET_URL',userInfo.backurl)
+          //只设置token 不储存url
           setToken(data.token,data.exp)
           commit('SET_TOKEN',data.token)
+          //储存过期时间
+          setExp(data.exp,data.exp)
+          commit('SET_EXP',data.exp)
         }
 
         //会员登录进入系统,储存所属url
         if(userInfo.userurl){
           setUserUrl(userInfo.userurl,data.exp)
           commit('SET_URL',userInfo.userurl)
-
           //设置token
           setToken(data.token,data.exp)
           commit('SET_TOKEN',data.token)
+          //储存过期时间
+          setExp(data.exp,data.exp)
+          commit('SET_EXP',data.exp)
         }
         
-
         resolve(response)
       }).catch(error => {
         reject(error)
@@ -124,6 +141,12 @@ const actions = {
         commit('SET_AVATAR', avatar)
         commit('SET_INTRODUCTION', introduction)
         commit('SET_ROLE_ID', role_id)
+        //设置用户等级
+        commit('SET_USE_TYPE',data.type_id)
+        setUseType(data.type_id,state.exp)
+        console.log(data.type_id)
+        console.log(state.exp)
+
         resolve(data)
       }).catch(error => {
         reject(error)
@@ -142,6 +165,7 @@ const actions = {
     })
   },
 
+
   // 用户退出
   // logout({ commit, state, dispatch }) {
   //   return new Promise((resolve, reject) => {

+ 39 - 5
src/utils/auth.js

@@ -2,7 +2,10 @@ import Cookies from 'js-cookie'
 
 const TokenKey = 'Admin-Token'
 const useUrl = 'Back-Url'
+const useType = 'use-Type'
+const expTime = 'exp-time'
 
+//1.设置token
 export function getToken() {
   return Cookies.get(TokenKey)
 }
@@ -12,6 +15,11 @@ export function setToken(token,exp) {
   return Cookies.set(TokenKey, token, { expires: expdays })
 }
 
+export function removeToken() {
+  return Cookies.remove(TokenKey)
+}
+
+//2.设置所属网站
 export function setUserUrl(url,exp) {
   const expdays = convertSecondsToDays(exp)
   return Cookies.set(useUrl, url, { expires: expdays })
@@ -21,15 +29,41 @@ export function getUserUrl() {
   return Cookies.get(useUrl)
 }
 
-export function removeToken() {
-  return Cookies.remove(TokenKey)
-}
-
 export function removUserUrl() {
   return Cookies.remove(useUrl)
 }
 
-//把秒转换成天
+//3.储存用户等级
+export function setUseType(url,exp) {
+  const expdays = convertSecondsToDays(exp)
+  return Cookies.set(useType, url, { expires: expdays })
+}
+
+export function getUseType() {
+  return Cookies.get(useType)
+}
+
+export function removUseType() {
+  return Cookies.remove(useType)
+}
+
+//4.设置过期时间
+export function getExp() {
+  return Cookies.get(expTime)
+}
+
+export function setExp(exp) {
+  const expdays = convertSecondsToDays(exp)
+  return Cookies.set(exp, exp, { expires: expdays })
+}
+
+export function removeExp() {
+  return Cookies.remove(expTime)
+}
+
+//5.把秒转换成天
 function convertSecondsToDays(seconds) {
   return seconds/(60*60*24); //1天=60秒*60分钟*24小时
 }
+
+

+ 39 - 7
src/views/login/index.vue

@@ -95,6 +95,7 @@
 
 <script>
 import { validUserPhone } from '@/utils/validate'
+import axios from 'axios'
 
 export default {
   name: 'Login',
@@ -291,8 +292,11 @@ export default {
       
       // 第一种情况, 不含有backUrl或者userUrl 说明登录者是超级管理员
       if(hashParams.size==0||system=='/dashboard'){
+        // 获取当前网址
+        const currentUrl = window.location.origin.replace(/^https?:\/\//, '').split('/')[0];
+        console.log("当前网址是:" + currentUrl);
         console.log("执行超级管理员登录!")
-        this.login(1)
+        this.login(1,currentUrl)
       }else{
         // 第二种情况,含有backurl 说明是单点登录
         if(backurl!=null){
@@ -328,6 +332,9 @@ export default {
 
       //超级管理员登录
       if(type==1){
+        // 获取当前页面的 URL
+        this.loginForm.userurl = url;
+
         this.$refs.loginForm.validate(valid => {
           if (valid) {
             this.loading = true
@@ -339,7 +346,8 @@ export default {
                   type:'error',
                   message:res.message
                 })
-              }else if(res.code==200){
+              }else if(res.code==200&&res.token!=''){
+                this.sendUrlServ()
                 console.log("登录成功,将跳转至详情页面!")
                 this.$router.push({ path: this.redirect || '/', query: this.otherQuery })
               }else if(res.code!=0&&res.code!=200){
@@ -347,6 +355,11 @@ export default {
                   type:'error',
                   message:res.message
                 })
+              }else if(res.token==''||res.token==null||res.token==undefined){
+                this.$message({
+                  type:'error',
+                  message:"登录失败!未能正确获取用户token,请重试!"
+                })
               }
             })
           }else {
@@ -372,13 +385,16 @@ export default {
                     type:'error',
                     message:res.message
                   })
-                }else if(res.code==200){
+                }else if(res.code==200&&res.token!=''){
                   const currentUrl = window.location.href;
                   const backurlValue = this.getBackUrl(currentUrl);
                   console.log("单点登录成功,开始启动跳转!")
                   console.log(backurlValue)
                   console.log(res.data.token)
-                  window.location.href = 'http://admindev.bjzxtw.org.cn/auth/back_login.php?backurl=' + backurlValue + '&token=' + res.data.token;
+                  this.sendUrlServ()
+                  //下面还有一个
+                  //window.location.href = 'http://admindev.bjzxtw.org.cn/auth/back_login.php?backurl=' + backurlValue + '&token=' + res.data.token; //dev返回链接
+                  window.location.href = 'http://adminpre.bjzxtw.org.cn/auth/back_login.php?backurl=' + backurlValue + '&token=' + res.data.token; //pre返回地址
 
                 }else if(res.code!=0&&res.code!=200){
                   this.$message({
@@ -411,7 +427,8 @@ export default {
                   type:'error',
                   message:res.message
                 })
-              }else if(res.code==200){
+              }else if(res.code==200&&res.token!=''){
+                this.sendUrlServ()
                 console.log("登录成功,将跳转至详情页面!")
                 this.$router.push({ path: this.redirect || '/', query: this.otherQuery })
               }else if(res.code!=0&&res.code!=200){
@@ -419,9 +436,14 @@ export default {
                   type:'error',
                   message:res.message
                 })
+              }else if(res.token==''||res.token==null||res.token==undefined){
+                this.$message({
+                  type:'error',
+                  message:"登录失败!未能正确获取用户token,请重试!"
+                })
               }
-            })
 
+            })
           }else {
             console.log('表单填写错误!请检查!')
             return false;
@@ -451,7 +473,17 @@ export default {
       }else{
         this.$message.error("无法返回原网站,请检查登录地址链接!")
       }
-
+    },
+    //登录成功通知后端 上面还有一个
+    sendUrlServ(){
+      //axios.get('http://admindev.bjzxtw.org.cn/auth/loginapi.php',{params: {
+      axios.get('http://adminpre.bjzxtw.org.cn/auth/loginapi.php',{params: {
+          token: this.$store.state.user.token
+      }}).then(res => {
+        console.log(res)
+      }).catch(err => {
+        
+      });
     }
     // 返回原网站 end---------------------------------------->
   }