|
@@ -1,33 +1,43 @@
|
|
// src/store/index.js
|
|
// src/store/index.js
|
|
import { createStore } from 'vuex';
|
|
import { createStore } from 'vuex';
|
|
-import { House, Setting, Help } from '@element-plus/icons-vue';
|
|
|
|
import { ServerActionUserLogin, ServerActionCheckLogin, ServerActionUserLogout } from '../../wailsjs/go/main/App'
|
|
import { ServerActionUserLogin, ServerActionCheckLogin, ServerActionUserLogout } from '../../wailsjs/go/main/App'
|
|
import rulesList from './modules/rulesList'
|
|
import rulesList from './modules/rulesList'
|
|
-
|
|
|
|
-const iconComponents = {
|
|
|
|
- house: House,
|
|
|
|
- setting: Setting,
|
|
|
|
- help: Help,
|
|
|
|
-};
|
|
|
|
|
|
+import { USER_ROLE_AUTH_MAP, USER_ROLE_REVIEWER, USER_ROLE_DEVELOPER, USER_ROLE_ADMIN } from '../data/index'
|
|
|
|
|
|
export default createStore({
|
|
export default createStore({
|
|
state: {
|
|
state: {
|
|
isAuthenticated: false,
|
|
isAuthenticated: false,
|
|
- userInfo: {},
|
|
|
|
|
|
+ userInfo: {
|
|
|
|
+ // i_auth: 1, // 角色身份,1开发,2审核,3管理
|
|
|
|
+ // i_identity: 1,
|
|
|
|
+ // i_scope: -1,
|
|
|
|
+ // ids: null,
|
|
|
|
+ // s_email: 'liuyifan@topnet.net.cn',
|
|
|
|
+ // s_fullname: '刘一帆',
|
|
|
|
+ // s_name: 'lyf',
|
|
|
|
+ // _id: '5cbd57e9a9c3320223906553',
|
|
|
|
+ },
|
|
profile: {
|
|
profile: {
|
|
nickname: '',
|
|
nickname: '',
|
|
},
|
|
},
|
|
menuConfig: {
|
|
menuConfig: {
|
|
- admin: [
|
|
|
|
- { title: '首页', icon: iconComponents.house, path: '/' },
|
|
|
|
- { title: '设置', icon: iconComponents.setting, path: '/setting' },
|
|
|
|
- { title: '帮助', icon: iconComponents.help, path: '/help' },
|
|
|
|
- // 更多管理员菜单项
|
|
|
|
|
|
+ // 管理员菜单
|
|
|
|
+ [USER_ROLE_ADMIN]: [
|
|
|
|
+ { title: '爬虫列表', icon: 'Guide', path: '/code/list' },
|
|
|
|
+ { title: '审核列表', icon: 'Setting', path: '/audit/list' },
|
|
|
|
+ { title: '系统设置', icon: 'Help', path: '/setting' },
|
|
|
|
+ ],
|
|
|
|
+ // 开发者菜单
|
|
|
|
+ [USER_ROLE_DEVELOPER]: [
|
|
|
|
+ { title: '爬虫列表', icon: 'Guide', path: '/code/list' },
|
|
|
|
+ { title: '审核列表', icon: 'Setting', path: '/audit/list' },
|
|
|
|
+ { title: '系统设置', icon: 'Help', path: '/setting' },
|
|
],
|
|
],
|
|
- user: [
|
|
|
|
- { title: '首页', icon: iconComponents.house, path: '/' },
|
|
|
|
- { title: '帮助', icon: iconComponents.help, path: '/help' },
|
|
|
|
- // 更多普通用户菜单项
|
|
|
|
|
|
+ // 审核人员菜单
|
|
|
|
+ [USER_ROLE_REVIEWER]: [
|
|
|
|
+ { title: '爬虫列表', icon: 'Guide', path: '/code/list' },
|
|
|
|
+ { title: '审核列表', icon: 'Setting', path: '/audit/list' },
|
|
|
|
+ { title: '系统设置', icon: 'Help', path: '/setting' },
|
|
],
|
|
],
|
|
},
|
|
},
|
|
},
|
|
},
|
|
@@ -35,7 +45,7 @@ export default createStore({
|
|
SET_AUTHENTICATED(state, payload) {
|
|
SET_AUTHENTICATED(state, payload) {
|
|
state.isAuthenticated = payload;
|
|
state.isAuthenticated = payload;
|
|
},
|
|
},
|
|
- SET_USER_INFO(state, payload) {
|
|
|
|
|
|
+ SET_USER_INFO(state, payload = {}) {
|
|
state.userInfo = payload;
|
|
state.userInfo = payload;
|
|
},
|
|
},
|
|
},
|
|
},
|
|
@@ -85,12 +95,18 @@ export default createStore({
|
|
async logout({ commit }) {
|
|
async logout({ commit }) {
|
|
await ServerActionUserLogout()
|
|
await ServerActionUserLogout()
|
|
commit('SET_AUTHENTICATED', false);
|
|
commit('SET_AUTHENTICATED', false);
|
|
|
|
+ commit('SET_USER_INFO', {});
|
|
return true
|
|
return true
|
|
},
|
|
},
|
|
},
|
|
},
|
|
getters: {
|
|
getters: {
|
|
// 定义一个 Getter 来获取当前登录用户的信息
|
|
// 定义一个 Getter 来获取当前登录用户的信息
|
|
getCurrentUser: (state) => state.userInfo,
|
|
getCurrentUser: (state) => state.userInfo,
|
|
|
|
+ // 角色身份,1开发,2审核,3管理
|
|
|
|
+ userRole: (state) => USER_ROLE_AUTH_MAP[state.userInfo?.i_auth],
|
|
|
|
+ getCurrentMenu: (state, getters) => {
|
|
|
|
+ return state.menuConfig[getters.userRole] || []
|
|
|
|
+ }
|
|
},
|
|
},
|
|
modules: {
|
|
modules: {
|
|
rulesList
|
|
rulesList
|