Compare commits
No commits in common. '0a3b114ebee7cfb52cd02f5aee02f2c0092899ef' and 'cf3d489d9d1b36eaeafec489d54401cea0d2cd52' have entirely different histories.
0a3b114ebe
...
cf3d489d9d
17 changed files with 31 additions and 426 deletions
@ -1,9 +0,0 @@ |
|||||||
import request from "@/request/index.js" |
|
||||||
|
|
||||||
export const userInfo = (data) => { |
|
||||||
return request({ |
|
||||||
url: '/personal/userinfo', |
|
||||||
method: 'get', |
|
||||||
data, |
|
||||||
}) |
|
||||||
} |
|
@ -1,103 +0,0 @@ |
|||||||
export const users = [ |
|
||||||
{ |
|
||||||
name: "visitor", |
|
||||||
roleId: 'visitor', |
|
||||||
password: "visitor", |
|
||||||
}, |
|
||||||
{ |
|
||||||
name: "master", |
|
||||||
roleId: "master", |
|
||||||
password: "master", |
|
||||||
}, |
|
||||||
{ |
|
||||||
name: "admin", |
|
||||||
roleId: "admin", |
|
||||||
password: "admin", |
|
||||||
}, |
|
||||||
]; |
|
||||||
|
|
||||||
export const menuTreeData = [ |
|
||||||
{ |
|
||||||
id: 1, |
|
||||||
parentId: 0, |
|
||||||
name: 'App', |
|
||||||
path: "/app", |
|
||||||
icon: "el-icon-menu", |
|
||||||
children: [ |
|
||||||
{ |
|
||||||
id: 11, |
|
||||||
parentId: 1, |
|
||||||
name: 'AppUser', |
|
||||||
path: "/app/user", |
|
||||||
icon: "user", |
|
||||||
}, |
|
||||||
{ |
|
||||||
id: 12, |
|
||||||
parentId: 1, |
|
||||||
name: 'AppDept', |
|
||||||
path: "/app/dept", |
|
||||||
icon: "office-building", |
|
||||||
}, |
|
||||||
{ |
|
||||||
id: 13, |
|
||||||
parentId: 1, |
|
||||||
name: 'AppRole', |
|
||||||
path: "/app/role", |
|
||||||
icon: "avatar", |
|
||||||
}, |
|
||||||
{ |
|
||||||
id: 14, |
|
||||||
parentId: 1, |
|
||||||
name: 'AppResource', |
|
||||||
path: "/app/resource", |
|
||||||
icon: "management", |
|
||||||
}, |
|
||||||
], |
|
||||||
}, |
|
||||||
{ |
|
||||||
id: 2, |
|
||||||
parentId: 0, |
|
||||||
name: 'Sys', |
|
||||||
path: "/sys", |
|
||||||
icon: "setting", |
|
||||||
children: [ |
|
||||||
{ |
|
||||||
id: 21, |
|
||||||
parentId: 2, |
|
||||||
name: 'SysUser', |
|
||||||
path: "/sys/user", |
|
||||||
icon: "user-filled", |
|
||||||
}, |
|
||||||
{ |
|
||||||
id: 22, |
|
||||||
parentId: 2, |
|
||||||
name: 'SysNotice', |
|
||||||
path: "/sys/notice", |
|
||||||
icon: "chat-dot-round", |
|
||||||
}, |
|
||||||
], |
|
||||||
}, |
|
||||||
{ |
|
||||||
id: 3, |
|
||||||
parentId: 0, |
|
||||||
name: 'Logs', |
|
||||||
path: "/logs", |
|
||||||
icon: "document", |
|
||||||
children: [ |
|
||||||
{ |
|
||||||
id: 31, |
|
||||||
parentId: 3, |
|
||||||
name: 'LogsVisit', |
|
||||||
path: "/logs/visit", |
|
||||||
icon: "tickets", |
|
||||||
}, |
|
||||||
{ |
|
||||||
id: 32, |
|
||||||
parentId: 3, |
|
||||||
name: 'LogsOperation', |
|
||||||
path: "/logs/operation", |
|
||||||
icon: "operation", |
|
||||||
}, |
|
||||||
], |
|
||||||
}, |
|
||||||
]; |
|
@ -1,52 +0,0 @@ |
|||||||
import Mock from "mockjs"; |
|
||||||
import config from "@/request/config"; |
|
||||||
import * as login from "./modules/login"; |
|
||||||
import * as personal from "./modules/personal"; |
|
||||||
const { baseURL } = config; |
|
||||||
|
|
||||||
// 1. 开启/关闭所有模块拦截, 通过openMock开关设置.
|
|
||||||
// 2. 开启/关闭单个模块拦截, 通过调用mock方法isOpen参数设置.
|
|
||||||
// 3. 开启/关闭模块中某个请求拦截, 通过函数返回对象中的isOpen属性设置.
|
|
||||||
const openMock = true; |
|
||||||
// 模拟所有模块
|
|
||||||
// mockAll([login], openMock);
|
|
||||||
|
|
||||||
// function mockAll(modules, isOpen = true) {
|
|
||||||
// for (const k in modules) {
|
|
||||||
// mock(modules[k], isOpen);
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// 模拟单个模块
|
|
||||||
mock(login, openMock) |
|
||||||
mock(personal, openMock) |
|
||||||
/** |
|
||||||
* 创建mock模拟数据 |
|
||||||
* @param {*} mod 模块 |
|
||||||
* @param {*} isOpen 是否开启? |
|
||||||
*/ |
|
||||||
function mock(mod, isOpen = true) { |
|
||||||
if (isOpen) { |
|
||||||
for (var key in mod) { |
|
||||||
((res) => { |
|
||||||
if (res.isOpen !== false) { |
|
||||||
let url = baseURL; |
|
||||||
if (!url.endsWith("/")) { |
|
||||||
url = url + "/"; |
|
||||||
} |
|
||||||
url = url + res.url; |
|
||||||
Mock.mock(new RegExp(url), res.method, (opts) => { |
|
||||||
opts.data = opts.body ? JSON.parse(opts.body) : null; |
|
||||||
const resData = Mock.mock( |
|
||||||
typeof res.response === "function" |
|
||||||
? res.response(opts) |
|
||||||
: res.response |
|
||||||
); |
|
||||||
console.log("%cmock拦截, 请求: ", "color:blue", opts); |
|
||||||
console.log("%cmock拦截, 响应: ", "color:blue", resData); |
|
||||||
return resData; |
|
||||||
}); |
|
||||||
} |
|
||||||
})(mod[key]() || {}); |
|
||||||
} |
|
||||||
} |
|
||||||
} |
|
@ -1,54 +0,0 @@ |
|||||||
/* |
|
||||||
* 系统登录模块 |
|
||||||
*/ |
|
||||||
import { users } from "../data"; |
|
||||||
// 登录
|
|
||||||
export function login() { |
|
||||||
return { |
|
||||||
url: "login", |
|
||||||
method: "post", |
|
||||||
response: (opts) => { |
|
||||||
const name = opts.data.account; |
|
||||||
if ( |
|
||||||
users.find((v) => v.name === name && v.password === opts.data.password) |
|
||||||
) { |
|
||||||
return { |
|
||||||
code: 200, |
|
||||||
msg: "", |
|
||||||
data: { |
|
||||||
token: name + "@eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsImV4cC", |
|
||||||
name, |
|
||||||
}, |
|
||||||
}; |
|
||||||
} |
|
||||||
return { |
|
||||||
code: -1, |
|
||||||
msg: "用户名或密码错误", |
|
||||||
}; |
|
||||||
}, |
|
||||||
}; |
|
||||||
} |
|
||||||
// export function login() {
|
|
||||||
// return {
|
|
||||||
// url: "login",
|
|
||||||
// method: "post",
|
|
||||||
// response: () => {
|
|
||||||
// return {
|
|
||||||
// code: -1,
|
|
||||||
// msg: "用户名或密码不正确!",
|
|
||||||
// };
|
|
||||||
// },
|
|
||||||
// };
|
|
||||||
// }
|
|
||||||
// 登出接口
|
|
||||||
export function logout() { |
|
||||||
return { |
|
||||||
url: "logout", |
|
||||||
method: "get", |
|
||||||
response: { |
|
||||||
code: 200, |
|
||||||
msg: null, |
|
||||||
data: {}, |
|
||||||
}, |
|
||||||
}; |
|
||||||
} |
|
@ -1,66 +0,0 @@ |
|||||||
import { users, menuTreeData } from "../data"; |
|
||||||
export function userInfo() { |
|
||||||
return { |
|
||||||
url: "personal/userinfo", |
|
||||||
method: "get", |
|
||||||
response: () => { |
|
||||||
const token = localStorage.getItem('pm_token'); |
|
||||||
if (token) { |
|
||||||
const uinfo = {...users.find((v) => v.name === token.split('@')[0])} |
|
||||||
delete uinfo.password; |
|
||||||
return { |
|
||||||
code: 200, |
|
||||||
data: { |
|
||||||
...uinfo, |
|
||||||
'unReadCount|0-10': 0 |
|
||||||
} |
|
||||||
}; |
|
||||||
} else { |
|
||||||
return { |
|
||||||
code: -2, |
|
||||||
msg: '请先登录!' |
|
||||||
} |
|
||||||
} |
|
||||||
}, |
|
||||||
}; |
|
||||||
} |
|
||||||
|
|
||||||
export function menuTree() { |
|
||||||
return { |
|
||||||
url: "personal/menuTree", |
|
||||||
method: "get", |
|
||||||
response: () => { |
|
||||||
const token = localStorage.getItem('pm_token'); |
|
||||||
if (!token) { |
|
||||||
return { |
|
||||||
code: 200, |
|
||||||
msg: '' |
|
||||||
} |
|
||||||
} |
|
||||||
const name = token.split('@')[0] |
|
||||||
const info = users.find(v => v.name === name) |
|
||||||
const role = info.roleId; |
|
||||||
let treeData = [menuTreeData[2]]; |
|
||||||
switch (role) { |
|
||||||
case "admin": |
|
||||||
treeData = menuTreeData; |
|
||||||
break; |
|
||||||
case "master": |
|
||||||
treeData = [menuTreeData[0], menuTreeData[2]]; |
|
||||||
break; |
|
||||||
case "visitor": |
|
||||||
treeData = [menuTreeData[2]]; |
|
||||||
break; |
|
||||||
default: |
|
||||||
break; |
|
||||||
} |
|
||||||
|
|
||||||
return { |
|
||||||
code: 200, |
|
||||||
data: treeData, |
|
||||||
}; |
|
||||||
}, |
|
||||||
}; |
|
||||||
} |
|
||||||
|
|
||||||
|
|
@ -1,10 +1,10 @@ |
|||||||
export default { |
export default { |
||||||
method: 'get', |
method: 'get', |
||||||
baseURL: 'http://localhost:8001', |
baseURL: 'http://localhost:8001', |
||||||
headers: { |
header: { |
||||||
'Content-Type': 'application/json;charset=UTF-8' |
'Content-Type': 'application/json;charset=UTF-8' |
||||||
}, |
}, |
||||||
timeout: 10000, |
timeout: 10000, |
||||||
withCredentials: true, |
withCredentials: true, |
||||||
responseType: 'json', |
responseType: 'json', |
||||||
} |
} |
@ -1,27 +1,12 @@ |
|||||||
import {createStore} from "vuex"; |
import {createStore} from "vuex"; |
||||||
|
|
||||||
import user from "./modules/user.js" |
|
||||||
|
|
||||||
export default createStore({ |
export default createStore({ |
||||||
modules: { |
|
||||||
user |
|
||||||
}, |
|
||||||
state: { |
state: { |
||||||
routeLoaded: false, // 菜单和路由是否已经加载
|
count: 0, |
||||||
firstRoute: null, // 第一个路由,用于设置进入主页 的redirect
|
|
||||||
menuTree: null, // 菜单树
|
|
||||||
}, |
}, |
||||||
mutations: { |
mutations: { |
||||||
// 改变菜单和路由的加载状态
|
increase (state, count) { |
||||||
setRouteLoaded(state, loaded) { |
state.count += count; |
||||||
state.routeLoaded = loaded; |
} |
||||||
}, |
} |
||||||
setFirstRoute(state, route) { |
}) |
||||||
state.firstRoute = route; |
|
||||||
}, |
|
||||||
setMenuTree(state, data) { |
|
||||||
state.menuTree = data |
|
||||||
}, |
|
||||||
}, |
|
||||||
actions: {}, |
|
||||||
}) |
|
@ -1,38 +0,0 @@ |
|||||||
import {userInfo} from "@/apis/personal.js" |
|
||||||
import {info} from "sass"; |
|
||||||
|
|
||||||
export default { |
|
||||||
namespaced: true, |
|
||||||
state: { |
|
||||||
token: '', |
|
||||||
userInfo: {} // 用户基本信息
|
|
||||||
}, |
|
||||||
getters: { |
|
||||||
isLogin(state) { |
|
||||||
return !!state.token || !!localStorage.getItem("pm_token"); |
|
||||||
} |
|
||||||
}, |
|
||||||
mutations: { |
|
||||||
setToken(state, token) { |
|
||||||
localStorage.setItem('pm_token', token); |
|
||||||
state.token = token; |
|
||||||
}, |
|
||||||
clearToken(state) { |
|
||||||
state.token = ''; |
|
||||||
localStorage.removeItem('pm_token'); |
|
||||||
}, |
|
||||||
setUserInfo(state, info) { |
|
||||||
state.userInfo = info || {}; |
|
||||||
}, |
|
||||||
clearUserInfo(state) { |
|
||||||
state.userInfo = {} |
|
||||||
} |
|
||||||
}, |
|
||||||
actions: { |
|
||||||
refreshInfo({commit}) { |
|
||||||
userInfo().then(res => { |
|
||||||
commit('setUserInfo', res.data) |
|
||||||
}) |
|
||||||
} |
|
||||||
} |
|
||||||
} |
|
Loading…
Reference in new issue