This commit is contained in:
张洋川 2024-04-12 11:49:30 +08:00
commit 6b9f0bbf9c
5 changed files with 55 additions and 6 deletions

View File

@ -11,6 +11,7 @@ const getters = {
introduction: state => state.user.introduction, introduction: state => state.user.introduction,
roles: state => state.user.roles, roles: state => state.user.roles,
permissions: state => state.user.permissions, permissions: state => state.user.permissions,
applicationId: state => state.user.applicationId,
permission_routes: state => state.permission.routes, permission_routes: state => state.permission.routes,
topbarRouters:state => state.permission.topbarRouters, topbarRouters:state => state.permission.topbarRouters,
defaultRoutes:state => state.permission.defaultRoutes, defaultRoutes:state => state.permission.defaultRoutes,

View File

@ -1,5 +1,6 @@
import { login, logout, getInfo } from '@/api/login' import { login, logout, getInfo } from '@/api/login'
import { getToken, setToken, removeToken } from '@/utils/auth' import { getToken, setToken, removeToken } from '@/utils/auth'
import { getApplicationId, setApplicationId, removeApplicationId } from '@/utils/application'
const user = { const user = {
state: { state: {
@ -7,7 +8,9 @@ const user = {
name: '', name: '',
avatar: '', avatar: '',
roles: [], roles: [],
permissions: [] permissions: [],
applicationId: getApplicationId(),
applicationInfo: {}, // 用户选中的项目/应用
}, },
mutations: { mutations: {
@ -25,7 +28,12 @@ const user = {
}, },
SET_PERMISSIONS: (state, permissions) => { SET_PERMISSIONS: (state, permissions) => {
state.permissions = permissions state.permissions = permissions
} },
SET_APPLICATION: (state, applicationInfo) => {
const { id } = applicationInfo;
state.applicationId = id;
state.applicationInfo = applicationInfo;
},
}, },
actions: { actions: {
@ -74,6 +82,8 @@ const user = {
commit('SET_TOKEN', '') commit('SET_TOKEN', '')
commit('SET_ROLES', []) commit('SET_ROLES', [])
commit('SET_PERMISSIONS', []) commit('SET_PERMISSIONS', [])
commit('SET_APPLICATION', {})
removeApplicationId()
removeToken() removeToken()
resolve() resolve()
}).catch(error => { }).catch(error => {
@ -86,9 +96,17 @@ const user = {
FedLogOut({ commit }) { FedLogOut({ commit }) {
return new Promise(resolve => { return new Promise(resolve => {
commit('SET_TOKEN', '') commit('SET_TOKEN', '')
commit('SET_APPLICATION', {})
removeApplicationId()
removeToken() removeToken()
resolve() resolve()
}) })
},
// 设置选中的项目应用信息
SetApplication({ commit }, applicationInfo) {
commit('SET_APPLICATION', applicationInfo)
setApplicationId(applicationInfo?.id);
} }
} }
} }

View File

@ -0,0 +1,30 @@
import Cookies from "js-cookie";
const ApplicationKey = "Admin-Application-Id";
/**
* 获取应用项目ID
* 该函数从Cookie中检索与应用项目相关的关键信息
* @returns {string} 返回从Cookie中获取的应用项目ID
*/
export function getApplicationId() {
return Cookies.get(ApplicationKey);
}
/**
* 设置应用项目ID到Cookie中
* @param {string} ApplicationId - 需要设置的应用项目ID
* @return {boolean|Object} 返回Cookie设置的结果成功则返回true失败则返回设置失败的对象
*/
export function setApplicationId(ApplicationId) {
return Cookies.set(ApplicationKey, ApplicationId);
}
/**
* 移除应用ID的Cookie
* 本函数用于删除与应用相关的ID Cookie
* @returns {boolean} 返回删除操作的结果如果删除成功则返回true如果删除失败则返回false
*/
export function removeApplicationId() {
return Cookies.remove(ApplicationKey);
}

View File

@ -15,7 +15,7 @@
:size="100" :size="100"
/> --> /> -->
<div class="content ml20"> <div class="content ml20">
<div class="title">{{item.appName}}</div> <div class="card-title">{{item.appName}}</div>
<div class="time">{{item.createTime}}</div> <div class="time">{{item.createTime}}</div>
</div> </div>
</div> </div>
@ -75,12 +75,13 @@ export default {
flex-flow: column; flex-flow: column;
justify-content: space-evenly; justify-content: space-evenly;
} }
.title { .card-title {
font-size: 16px; font-size: 16px;
font-weight: bold; font-weight: bold;
overflow: hidden; overflow: hidden;
text-overflow: ellipsis; text-overflow: ellipsis;
white-space: nowrap; white-space: nowrap;
color: #707070;
} }
.time { .time {
font-size: 14px; font-size: 14px;

View File

@ -163,8 +163,7 @@ export default {
// }); // });
// }, // },
async handleEnter(row) { async handleEnter(row) {
// TODO this.$store.dispatch('SetApplication', row);
// id使
let routes = this.routes; let routes = this.routes;
if (this.routes.length === 0) { if (this.routes.length === 0) {
routes = await this.$store.dispatch('GenerateRoutes'); routes = await this.$store.dispatch('GenerateRoutes');