From 4583d1540e5baaf98d786caf14a062c6339ff96e Mon Sep 17 00:00:00 2001 From: yannqing <67121851@qq.com> Date: Sat, 20 Jan 2024 02:07:34 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B5=8B=E8=AF=952----=E5=AE=8C=E5=96=84?= =?UTF-8?q?=E6=89=80=E6=9C=89=E6=8E=A5=E5=8F=A3=E7=9A=84=E8=AF=B7=E6=B1=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/login.vue | 32 ++- src/public/request.js | 536 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 557 insertions(+), 11 deletions(-) create mode 100644 src/public/request.js diff --git a/src/components/login.vue b/src/components/login.vue index 357ed21..047500e 100644 --- a/src/components/login.vue +++ b/src/components/login.vue @@ -62,6 +62,15 @@ import axios from 'axios'; import getCurrentTimestamp from '../public/methods.js'; import Icp from "@/components/MainPage/Icp.vue"; +import {useRouter} from "vue-router"; +import message from "view-ui-plus/src/components/message/index.js"; +import requests from "../public/request.js"; + + + + +const router = useRouter() + const data = { user: '', @@ -69,26 +78,27 @@ const data = { } function loginUser(){ - axios({ - url: "http://nbxt.oa.x-lf.cn/auth/login", - method: "get", - data: data, - headers: { - 'content-type': 'application/json;charset=utf-8', - 'Timestamp': getCurrentTimestamp() - }, - }).then((res) => { +requests.login(data).then((res) => { console.log(res) + message.config({ + background: true + }) if (res.data.code === 200) { //登录成功,跳转页面+消息提示+存储登录用户的数据 + //判断是否是管理员,管理员跳转manager, + if (res.data.data.role.rid===1) { + router.push("/manager") + }else { + router.push("/") //非管理员跳转index主页 + } + message.success('登录成功') } else { //登录失败,消息提示 + message.error(res.data.message) } }); - console.log("data.userNum:"+data.user) - console.log("data.password:"+data.password) } \ No newline at end of file diff --git a/src/public/request.js b/src/public/request.js new file mode 100644 index 0000000..03f6c15 --- /dev/null +++ b/src/public/request.js @@ -0,0 +1,536 @@ +import axios from "axios"; +import getCurrentTimestamp from "@/public/methods.js"; + +const api = 'http://nbxt.oa.x-lf.cn' + +/** + * 登录 + * @param data (username,password) + * @returns {*} + */ +const login = (data) => { + return axios({ + url: api+"/auth/login", + method: "post", + data: data, + headers: { + 'content-type': 'application/json;charset=utf-8', + 'Timestamp': getCurrentTimestamp() + }, + }) +} + +/** + * 注册 + * @param data (username,password,address,phone,email,sex,age) + * @returns {*} + */ +const register = (data) => { + return axios({ + url: api + "/auth/register", + method: "post", + data: data, + headers: { + 'content-type': 'application/json;charset=utf-8', + 'Timestamp': getCurrentTimestamp() + } + }) +} + +/** + * 退出登录 + * @param token + * @returns {Promise> | *} + */ +const logout = (token) => { + return axios({ + url: api + "/auth/logout", + method: "get", + headers: { + 'Authorization':'Bearer '+token, + 'Timestamp': getCurrentTimestamp() + } + }) +} + +/** + * 修改密码 + * @param data (oldPassword,newPassword,confirmPassword) + * @param token + * @returns {Promise> | *} + */ +const changePassword = (data, token) => { + return axios({ + url: api + "/auth/password", + method: "put", + data: data, + headers: { + 'Authorization':'Bearer '+token, + 'Timestamp': getCurrentTimestamp() + } + }) +} + +/** + * 忘记密码 + * @param data (email,check(邮箱验证码),newPassword) + * @returns {*} + */ +const forgetPassword = (data) => { + return axios({ + url: api + "/auth/password/forget", + method: "put", + data: data, + headers: { + 'content-type': 'application/json;charset=utf-8', + 'Timestamp': getCurrentTimestamp() + } + }) +} + +/** + * 邮箱登录 + * @param params 对象(包含邮箱email:string,验证码code:integer) + * @returns {*} + */ +const authLoginWithEmail = (params) => { + return axios({ + url: api + "/auth/login/email", + method: "get", + params: params, + headers: { + 'Timestamp': getCurrentTimestamp() + } + }) +} + +/** + * 发送邮箱验证码 + * @param email 邮箱(string) + * @returns {*} + */ +const authSendEmailCode = (email) => { + return axios({ + url: api + "/auth/email/code", + method: "get", + params: email, + headers: { + 'Timestamp': getCurrentTimestamp() + } + }) +} + +/** + * 获取全部用户信息 + * @param data (page,limit,search,role) + * @param token + * @returns {Promise> | *} + */ +const userAllCurrent = (data, token) => { + return axios({ + url: api + "/user/current/all", + method: "post", + data: data, + headers: { + 'Authorization':'Bearer '+token, + 'Content-Type': 'application/json;charset=utf-8', + 'Timestamp': getCurrentTimestamp() + } + }) +} + +/** + * 获取一个用户信息(敏感) + * @param params (id,username,email,phone)可以只传一个参数 + * @param token + * @returns {Promise> | *} + */ +const userCurrent = (params, token) => { + return axios({ + url: api + "/user/current", + method: "get", + params: params, + headers: { + 'Authorization':'Bearer '+token, + // 'Content-Type': 'application/json;charset=utf-8', + 'Timestamp': getCurrentTimestamp() + } + }) +} + +/** + * 新增用户 + * @param data (username,password,address,phone,email,sex,age)必须全部 + * @param token + * @returns {Promise> | *} + */ +const userAdd = (data, token) => { + return axios({ + url: api + "/user/add", + method: "post", + data: data, + headers: { + 'Authorization':'Bearer '+token, + 'Content-Type': 'application/json;charset=utf-8', + 'Timestamp': getCurrentTimestamp() + } + }) +} + +/** + * 编辑用户 + * @param data (id,address,phone,email,age,signature,sex,avatar,nickname,description + * @param token + * @returns {Promise> | *} + */ +const userEdit = (data, token) => { + return axios({ + url: api + "/user/edit", + method: "put", + data: data, + headers: { + 'Authorization':'Bearer '+token, + 'Content-Type': 'application/json;charset=utf-8', + 'Timestamp': getCurrentTimestamp() + } + }) +} + +/** + * 删除用户 + * @param id + * @param token + * @returns {Promise> | *} + */ +const userDelete = (id, token) => { + return axios({ + url: api + "/user/delete", + method: "put", + data: id, + headers: { + 'Authorization':'Bearer '+token, + 'Content-Type': 'application/json;charset=utf-8', //? + 'Timestamp': getCurrentTimestamp() + } + }) +} + +/** + * 锁定用户 + * @param data (id,isLock(1解锁)) + * @param token + * @returns {Promise> | *} + */ +const userLock = (data, token) => { + return axios({ + url: api + "/user/lock", + method: "put", + data: data, + headers: { + 'Authorization':'Bearer '+token, + 'Content-Type': 'application/json;charset=utf-8', + 'Timestamp': getCurrentTimestamp() + } + }) +} + +/** + * 获取用户信息(非敏感) + * @param token + * @returns {Promise> | *} + */ +const userGetProfile = (token) => { + return axios({ + url: api + "/user/profile/get", + method: "get", + headers: { + 'Authorization':'Bearer '+token, + 'Timestamp': getCurrentTimestamp() + } + }) +} + +/** + * 修改用户信息(普通用户) + * @param data (id,username,address,phone,email,sex,age,signature,avatar,nickname,description) + * @param token + * @returns {Promise> | *} + */ +const userEditProfile = (data, token) => { + return axios({ + url: api + "/user/profile/edit", + method: "put", + data: data, + headers: { + 'Authorization':'Bearer '+token, + 'Content-Type': 'application/json;charset=utf-8', + 'Timestamp': getCurrentTimestamp() + } + }) +} + +/** + * 查询角色 + * @param id 可选,不填则是查询所有? + * @param token + * @returns {Promise> | *} + */ +const roleGet = (id, token) => { + return axios({ + url: api + "/role/get", + method: "get", + params: id, + headers: { + 'Authorization':'Bearer '+token, + 'Content-Type': 'application/json;charset=utf-8', + 'Timestamp': getCurrentTimestamp() + } + }) +} + +/** + * 新增角色 + * @param data (name,displayName)示例(name:teacher, displayName:老师)必须 + * @param token + * @returns {Promise> | *} + */ +const roleAdd = (data, token) => { + return axios({ + url: api + "/role/add", + method: "post", + data: data, + headers: { + 'Authorization':'Bearer '+token, + 'Content-Type': 'application/json;charset=utf-8', + 'Timestamp': getCurrentTimestamp() + } + }) +} + +/** + * 编辑角色 + * @param data (id,name,displayName(中文))必须 + * @param token + * @returns {Promise> | *} + */ +const roleEdit = (data, token) => { + return axios({ + url: api + "/role/edit", + method: "put", + data: data, + headers: { + 'Authorization':'Bearer '+token, + 'Content-Type': 'application/json;charset=utf-8', + 'Timestamp': getCurrentTimestamp() + } + }) +} + +/** + * 删除角色 + * @param id + * @param token + * @returns {Promise> | *} + */ +const roleDelete = (id, token) => { + return axios({ + url: api + "/role/delete", + method: "delete", + params: id, + headers: { + 'Authorization':'Bearer '+token, + 'Content-Type': 'application/json;charset=utf-8', + 'Timestamp': getCurrentTimestamp() + } + }) +} + +/** + * 给角色添加用户 + * @param data (rid,uid) + * @param token + * @returns {Promise> | *} + */ +const roleAddUser = (data, token) => { + return axios({ + url: api + "/role/user/add", + method: "post", + data: data, + headers: { + 'Authorization':'Bearer '+token, + 'Content-Type': 'application/json;charset=utf-8', + 'Timestamp': getCurrentTimestamp() + } + }) +} + +/** + * 修改用户的角色 + * @param data (uid,rid) + * @param token + * @returns {Promise> | *} + */ +const roleChangeUser = (data, token) => { + return axios({ + url: api + "/role/user/change", + method: "put", + data: data, + headers: { + 'Authorization':'Bearer '+token, + 'Content-Type': 'application/json;charset=utf-8', + 'Timestamp': getCurrentTimestamp() + } + }) +} + +/** + * 移除用户的角色 + * @param uid + * @param token + * @returns {Promise> | *} + */ +const roleRemoveUser = (uid, token) => { + return axios({ + url: api + "/role/user/remove", + method: "delete", + data: uid, + headers: { + 'Authorization':'Bearer '+token, + 'Content-Type': 'application/json;charset=utf-8', + 'Timestamp': getCurrentTimestamp() + } + }) +} + +/** + * 查询轮播图(管理员) + * @param id 可选 + * @param token + * @returns {Promise> | *} + */ +const infoGetHeaderImage = (id, token) => { + return axios({ + url: api + "/info/header-image/get", + method: "get", + params: id, + headers: { + 'Authorization':'Bearer '+token, + 'Content-Type': 'application/json;charset=utf-8', + 'Timestamp': getCurrentTimestamp() + } + }) +} + +/** + * 编辑轮播图信息 + * @param id 轮播图id + * @param data (displayOrder(排序顺序),image(图片地址),title,description,isActive(是否启用)) + * @param token + * @returns {Promise> | *} + */ +const infoEditHeaderImage = (id, data, token) => { + return axios({ + url: api + "/info/header-image/edit", + method: "put", + params: id, + data: data, + headers: { + 'Authorization':'Bearer '+token, + 'Content-Type': 'application/json;charset=utf-8', + 'Timestamp': getCurrentTimestamp() + } + }) +} + +/** + * 新增轮播图 + * @param data (displayOrder,image,title,description,isActive) + * @param token + * @returns {Promise> | *} + */ +const infoAddHeaderImage = (data, token) => { + return axios({ + url: api + "/info/header-image/add", + method: "post", + data: data, + headers: { + 'Authorization':'Bearer '+token, + 'Content-Type': 'application/json;charset=utf-8', + 'Timestamp': getCurrentTimestamp() + } + }) +} + +/** + * 删除轮播图 + * @param id + * @param token + * @returns {Promise> | *} + */ +const infoDeleteHeaderImage = (id, token) => { + return axios({ + url: api + "/info/header-image/del", + method: "delete", + params: id, + headers: { + 'Authorization':'Bearer '+token, + 'Content-Type': 'application/json;charset=utf-8', + 'Timestamp': getCurrentTimestamp() + } + }) +} + +/** + * 展示轮播图,顺序或倒序 + * @param showType 0倒序,1顺序 + * @param token + * @returns {Promise> | *} + */ +const infoEditSettingHeaderImage = (showType, token) => { + return axios({ + url: api + "/info/header-image/edit-setting", + method: "put", + data: showType, + headers: { + 'Authorization':'Bearer '+token, + 'Content-Type': 'application/json;charset=utf-8', + 'Timestamp': getCurrentTimestamp() + } + }) +} + + +export default { + login, + register, + logout, + changePassword, + forgetPassword, + authLoginWithEmail, + authSendEmailCode, + + userAllCurrent, + userCurrent, + userAdd, + userEdit, + userDelete, + userLock, + userGetProfile, + userEditProfile, + + roleGet, + roleEdit, + roleAdd, + roleDelete, + roleAddUser, + roleChangeUser, + roleRemoveUser, + + infoGetHeaderImage, + infoEditHeaderImage, + infoAddHeaderImage, + infoDeleteHeaderImage, + infoEditSettingHeaderImage, + + +} \ No newline at end of file