From cf9307b25a18df3f2be156fb2ecd69c97dd3fadc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=AE=B8=E5=AE=8F=E6=9D=B0?= <1943105267@qq.com> Date: Mon, 11 Nov 2024 11:08:41 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A4=96=E9=83=A8=E7=B3=BB=E7=BB=9F=E5=AF=B9?= =?UTF-8?q?=E6=8E=A5=E5=85=8D=E7=99=BB=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/login.js | 69 ++++++++++++++++---------- src/components/NavigationBar/index.vue | 3 +- src/permission.js | 29 +++++++++-- src/store/modules/user.js | 19 ++++++- src/utils/request.js | 2 +- 5 files changed, 89 insertions(+), 33 deletions(-) diff --git a/src/api/login.js b/src/api/login.js index 7b7388f..4fc6399 100644 --- a/src/api/login.js +++ b/src/api/login.js @@ -1,60 +1,79 @@ -import request from '@/utils/request' +import request from "@/utils/request"; +import { encrypt } from "@/utils/jsencrypt"; // 登录方法 export function login(username, password, code, uuid) { + // password = encrypt(password); //密码加密 const data = { username, password, code, - uuid - } + uuid, + }; return request({ - url: '/login', + url: "/login", headers: { isToken: false, - repeatSubmit: false + repeatSubmit: false, }, - method: 'post', - data: data - }) + method: "post", + data: data, + }); +} +export function login2(username, password, code, uuid) { + // password = encrypt(password); //密码加密 + const data = { + username, + password, + code, + uuid, + }; + return request({ + url: "/loginnocaptcha", + headers: { + isToken: false, + }, + method: "post", + data: data, + }); } // 注册方法 export function register(data) { return request({ - url: '/register', + url: "/register", headers: { - isToken: false + isToken: false, }, - method: 'post', - data: data - }) + method: "post", + data: data, + }); } // 获取用户详细信息 export function getInfo() { return request({ - url: '/getInfo', - method: 'get' - }) + url: "/getInfo", + method: "get", + }); } // 退出方法 export function logout() { return request({ - url: '/logout', - method: 'post' - }) + url: "/logout", + method: "post", + }); } // 获取验证码 export function getCodeImg() { return request({ - url: '/captchaImage', + url: "/captchaImage", headers: { - isToken: false + isToken: false, }, - method: 'get', - timeout: 20000 - }) -} \ No newline at end of file + method: "get", + timeout: 20000, + }); +} diff --git a/src/components/NavigationBar/index.vue b/src/components/NavigationBar/index.vue index 810b30e..7bb1580 100644 --- a/src/components/NavigationBar/index.vue +++ b/src/components/NavigationBar/index.vue @@ -158,7 +158,8 @@ export default { return ( this.$route.name == "xiaoqu" && (this.$auth.hasRoleOr(["admin", "leader"]) || - (this.$auth.hasRoleOr(["xiaoqu"]) && this.dept.xiaoquId == 238)) + (this.$auth.hasRoleOr(["xiaoqu"]) && this.dept.xiaoquId == 238)) && + !this.$route.query.isLeader ); }, }, diff --git a/src/permission.js b/src/permission.js index bed4a5e..0013355 100644 --- a/src/permission.js +++ b/src/permission.js @@ -12,6 +12,29 @@ const whiteList = ["/login", "/register"]; router.beforeEach((to, from, next) => { NProgress.start(); + if (to.path == "/xiaoqu" && to.query.isLeader && !getToken()) { + store + .dispatch("login2", { username: "领导", password: "Loudong@2022***" }) + .then((res) => { + handelRouter(to, from, next); + }) + .catch((err) => { + store.dispatch("LogOut").then(() => { + Message.error("账号无法登录,请联系管理员"); + next(`/login?redirect=${to.fullPath}`); // 否则全部重定向到登录页 + }); + }); + + return; + } + handelRouter(to, from, next); +}); + +router.afterEach(() => { + NProgress.done(); +}); + +function handelRouter(to, from, next) { if (getToken()) { to.meta.title && store.dispatch("settings/setTitle", to.meta.title); /* has token*/ @@ -54,8 +77,4 @@ router.beforeEach((to, from, next) => { NProgress.done(); } } -}); - -router.afterEach(() => { - NProgress.done(); -}); +} diff --git a/src/store/modules/user.js b/src/store/modules/user.js index d8cf7e9..164bea9 100644 --- a/src/store/modules/user.js +++ b/src/store/modules/user.js @@ -1,4 +1,4 @@ -import { login, logout, getInfo } from "@/api/login"; +import { login, logout, getInfo, login2 } from "@/api/login"; import { getToken, setToken, removeToken } from "@/utils/auth"; const user = { @@ -55,6 +55,23 @@ const user = { }); }); }, + login2({ commit }, userInfo) { + const username = userInfo.username.trim(); + const password = userInfo.password; + const code = userInfo.code; + const uuid = userInfo.uuid; + return new Promise((resolve, reject) => { + login2(username, password, code, uuid) + .then((res) => { + setToken(res.token); + commit("SET_TOKEN", res.token); + resolve(); + }) + .catch((error) => { + reject(error); + }); + }); + }, // 获取用户信息 GetInfo({ commit, state }) { diff --git a/src/utils/request.js b/src/utils/request.js index b35943b..5befb3f 100644 --- a/src/utils/request.js +++ b/src/utils/request.js @@ -70,7 +70,7 @@ service.interceptors.request.use( const s_url = sessionObj.url; // 请求地址 const s_data = sessionObj.data; // 请求数据 const s_time = sessionObj.time; // 请求时间 - const interval = 1000; // 间隔时间(ms),小于此时间视为重复提交 + const interval = 2000; // 间隔时间(ms),小于此时间视为重复提交 if ( s_data === requestObj.data && requestObj.time - s_time < interval &&