This commit is contained in:
jxxghp
2024-07-06 17:53:51 +08:00
parent 81fb44da80
commit b2e1fe314f
13 changed files with 373 additions and 207 deletions

View File

@@ -9,6 +9,7 @@ interface AuthState {
avatar: string
originalPath: string | null
level: number
permissions: { [key: string]: any }
}
// 定义根状态类型
@@ -16,17 +17,40 @@ interface RootState {
auth: AuthState
}
// 导出模块
// 用户信息模块
const authModule: Module<AuthState, RootState> = {
namespaced: true,
state: {
token: null,
remember: false,
superUser: false,
userName: '',
avatar: '',
originalPath: null,
level: 1,
token: null, // 用户令牌
remember: false, // 记住我
superUser: false, // 超级管理员
userName: '', // 用户名
avatar: '', // 头像
originalPath: null, // 原始路径
level: 1, // 用户认证等级 1-未认证 2-已认证
permissions: {
admin: false, // 管理员
usermanage: false, // 用户管理
dashboard: true, //仪表板
ranking: true, // 推荐榜单
resource: {
search: false, // 搜索站点资源
download: false, // 下载站点资源
},
subscribe: {
movie: true, // 查看电影订阅
tv: true, // 电视剧订阅
request: true, // 提交订阅请求
autopass: false, // 订阅请求自动批准
approve: false, // 审批订阅请求
calendar: true, // 查看订阅日历
manage: false, // 管理所有订阅
},
downloading: {
view: true, // 查看正在下载任务
manager: false, // 管理正在下载任务
},
},
},
mutations: {
setToken(state, token: string) {
@@ -53,15 +77,19 @@ const authModule: Module<AuthState, RootState> = {
setLevel(state, level: number) {
state.level = level
},
setPermissions(state, permissions: object) {
state.permissions = permissions
},
},
actions: {
login({ commit }, { token, remember, superUser, userName, avatar, level }) {
login({ commit }, { token, remember, superUser, userName, avatar, level, permissions }) {
commit('setToken', token)
commit('setRemember', remember)
commit('setSuperUser', superUser)
commit('setUserName', userName)
commit('setAvatar', avatar)
commit('setLevel', level)
commit('setPermissions', permissions)
},
logout({ commit }) {
commit('clearToken')
@@ -76,6 +104,7 @@ const authModule: Module<AuthState, RootState> = {
getAvatar: state => state.avatar,
getOriginalPath: state => state.originalPath,
getLevel: state => state.level,
getPermissions: state => state.permissions,
},
}