ruoyi-system-vue3/src/mock/user.js
2025-06-23 19:00:40 +08:00

197 lines
5.0 KiB
JavaScript

import Mock from 'mockjs'
import { getRandomImage } from './utils'
// 模拟验证码
const captchaCode = {
codes: ['1234', '5678', 'abcd', 'efgh', 'ABCD']
}
const userApi = {
// 获取验证码
getCodeImg: () => {
const code = captchaCode.codes[Math.floor(Math.random() * captchaCode.codes.length)]
return {
code: 200,
msg: "操作成功",
img: getRandomImage(100, 40, code),
uuid: Mock.mock('@guid'),
captchaEnabled: true
}
},
// 登录
// login: (config) => {
// const body = typeof config.body === 'string' ? JSON.parse(config.body) : config.body
// console.log('登录请求参数:', body)
// // 默认管理员账号
// if (body.username === 'admin' && body.password === 'admin123') {
// const tokenValue = Mock.mock('@guid')
// console.log('生成的token值:', tokenValue)
// // 尝试格式1: 最简单的格式
// return {
// code: 200,
// msg: "操作成功",
// token: tokenValue
// }
// }
// },
// 更新 src/mock/user.js 中的 login 方法
// 登录
login: (config) => {
const body = typeof config.body === 'string' ? JSON.parse(config.body) : config.body
console.log('登录请求参数:', body)
// 默认管理员账号
if (body.username === 'admin' && body.password === 'admin123') {
return {
msg: "操作成功",
code: 200,
token: "eyJhbGciOiJIUzUxMiJ9.eyJsb2dpbl91c2VyX2tleSI6ImYzMDZlNzcyLTZhMmMtNGVjZi05NGNiLTE5ZDA1ZTZkNzVhNyJ9.69J3NMHMxbeP4_NLuo7Dw_0fJoPBwlrLdLb4p2b8poZxRoIfRMnj-F9lts3_i0MpsfrGG6HjmQQe-k8XenGTZg"
}
}
// 模拟普通用户
if (body.username === 'user' && body.password === 'user123') {
return {
msg: "操作成功",
code: 200,
token: "eyJhbGciOiJIUzUxMiJ9.eyJsb2dpbl91c2VyX2tleSI6ImQzYWIxMjM0LTVlNmYtN2FiYy04ZGVmLTk5MDEyMzQ1Njc4OSJ9.abcdefghijklmnopqrstuvwxyz1234567890abcdefghijklmnopqrstuvwxyz1234567890abcdefghijklmnopqrstuvwxyz"
}
}
// 用户名或密码错误
if ((body.username === 'admin' && body.password !== 'admin123') ||
(body.username === 'user' && body.password !== 'user123')) {
return {
code: 500,
msg: '用户名或密码错误'
}
}
// 验证码错误
if (body.code && !captchaCode.codes.includes(body.code)) {
return {
code: 500,
msg: '验证码错误'
}
}
// 未知用户
return {
code: 500,
msg: '用户不存在'
}
}
,
// 获取用户信息
// 获取用户信息
getInfo: (config) => {
console.log('获取用户信息请求:', config);
// 检查 Authorization 头
const token = config.headers?.Authorization?.replace('Bearer ', '') || '';
console.log('当前token:', token);
// 模拟验证 token (在实际项目中应该有更复杂的验证)
// 由于这是 mock 数据,我们可以简单地返回成功
return {
msg: "操作成功",
code: 200,
permissions: [
"*:*:*"
],
roles: [
"admin"
],
user: {
searchValue: null,
createBy: "admin",
createTime: "2025-06-17 09:28:41",
updateBy: null,
updateTime: null,
remark: "管理员",
params: {},
userId: 1,
deptId: 103,
userName: "admin",
nickName: "若依",
email: "ry@163.com",
phonenumber: "15888888888",
sex: "1",
avatar: "",
password: "$2a$10$7JB720yubVSZvUI0rEqK/.VqGOZTH.ulu33dHOiBE8ByOhJIrdAu2",
status: "0",
delFlag: "0",
loginIp: "10.0.0.170",
loginDate: "2025-06-23T14:11:40.000+08:00",
dept: {
searchValue: null,
createBy: null,
createTime: null,
updateBy: null,
updateTime: null,
remark: null,
params: {},
deptId: 103,
parentId: 101,
ancestors: "0,100,101",
deptName: "研发部门",
orderNum: 1,
leader: "若依",
phone: null,
email: null,
status: "0",
delFlag: null,
parentName: null,
children: []
},
roles: [
{
searchValue: null,
createBy: null,
createTime: null,
updateBy: null,
updateTime: null,
remark: null,
params: {},
roleId: 1,
roleName: "超级管理员",
roleKey: "admin",
roleSort: "1",
dataScope: "1",
menuCheckStrictly: false,
deptCheckStrictly: false,
status: "0",
delFlag: null,
flag: false,
menuIds: null,
deptIds: null,
permissions: null,
admin: true
}
],
roleIds: null,
postIds: null,
roleId: null,
admin: true
}
}
},
// 退出登录
logout: (config) => {
console.log('退出登录请求:', config);
// 检查 Authorization 头
const token = config.headers?.Authorization?.replace('Bearer ', '') || '';
console.log('退出登录token:', token);
// 在 mock 环境中,我们总是返回成功
return {
code: 200,
msg: "退出成功"
}
}
}
export default userApi