Files
mp-vue/src/api/system/user/index.ts
赵忠林 f0efe079e7 feat(login): 支持用户ID、邮箱及超级管理员短信验证码登录
- 在登录参数中新增 userId 和 email 字段,支持多种登录凭证
- 新增 loginByUserId、loginByEmail 和 loginBySuperAdminSms 三种登录API
- 新增跨租户查询管理员账号接口 listAdminsByEmailAll
- 登录页支持账号登录与手机号登录标签切换,添加动画效果
- 账号登录中合并用户ID及邮箱登录逻辑,增加输入格式验证
- 调整登录表单UI和交互,优化输入框占位及样式
- 更新登录时的用户信息及租户ID本地存储逻辑
- 修正登录页版权信息为 websopy Inc.
2026-07-20 11:35:49 +08:00

313 lines
6.8 KiB
TypeScript

import request from '@/utils/request';
import type { ApiResult, PageResult } from '@/api';
import type { User, UserParam } from './model';
import { SERVER_API_URL } from '@/config/setting';
/**
* 分页查询用户
*/
export async function pageUsers(params: UserParam) {
const res = await request.get<ApiResult<PageResult<User>>>(
SERVER_API_URL + '/system/user/page',
{ params }
);
if (res.data.code === 0) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 查询用户列表
*/
export async function listUsers(params?: UserParam) {
const res = await request.get<ApiResult<User[]>>(
SERVER_API_URL + '/system/user',
{
params
}
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 查询用户列表
*/
export async function getStaffs(params?: UserParam) {
const res = await request.get<ApiResult<User[]>>(
SERVER_API_URL + '/system/user',
{
params
}
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 查询用户列表
*/
export async function getCompanyList(params?: UserParam) {
const res = await request.get<ApiResult<User[]>>(
SERVER_API_URL + '/system/user',
{
params
}
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 根据id查询用户
*/
export async function getUser(id: number) {
const res = await request.get<ApiResult<User>>(
SERVER_API_URL + '/system/user/' + id
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 添加用户
*/
export async function addUser(data: User) {
const res = await request.post<ApiResult<unknown>>(
SERVER_API_URL + '/system/user',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 添加管理员用户
* @param data
*/
export async function addAdminUser(data: User) {
const res = await request.post<ApiResult<unknown>>(
SERVER_API_URL + '/system/user/addAdminUser',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 修改用户
*/
export async function updateUser(data: User) {
const res = await request.put<ApiResult<unknown>>(
SERVER_API_URL + '/system/user',
data
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 删除用户
*/
export async function removeUser(id?: number) {
const res = await request.delete<ApiResult<unknown>>(
SERVER_API_URL + '/system/user/' + id
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 批量删除用户
*/
export async function removeUsers(data: (number | undefined)[]) {
const res = await request.delete<ApiResult<unknown>>(
SERVER_API_URL + '/system/user/batch',
{
data
}
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 修改用户状态
*/
export async function updateUserStatus(userId?: number, status?: number) {
const res = await request.put<ApiResult<unknown>>(
SERVER_API_URL + '/system/user/status',
{
userId,
status
}
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 修改推荐状态
*/
export async function updateUserRecommend(form) {
const res = await request.put<ApiResult<unknown>>(
SERVER_API_URL + '/system/user/recommend',
form
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 重置用户密码
*/
export async function updateUserPassword(userId?: number, password = '123456') {
const res = await request.put<ApiResult<unknown>>(
SERVER_API_URL + '/system/user/password',
{
userId,
password
}
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 导入用户
*/
export async function importUsers(file: File) {
const formData = new FormData();
formData.append('file', file);
const res = await request.post<ApiResult<unknown>>(
SERVER_API_URL + '/system/user/import',
formData
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 导入经销商
*/
export async function importShopAdmins(file: File) {
const formData = new FormData();
formData.append('file', file);
const res = await request.post<ApiResult<unknown>>(
SERVER_API_URL + '/shop/admin/import',
formData
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 检查用户是否存在
*/
export async function checkExistence(
field: string,
value: string,
id?: number
) {
const res = await request.get<ApiResult<unknown>>(
SERVER_API_URL + '/system/user/existence',
{
params: { field, value, id }
}
);
if (res.data.code === 0) {
return res.data.message;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 统计用户余额
*/
export async function countUserBalance(params?: UserParam) {
const res = await request.get<ApiResult<unknown>>(
SERVER_API_URL + '/system/user/countUserBalance',
{
params
}
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 选择管理员账号登录
* @param params
*/
export async function listAdminsByPhoneAll(params?: UserParam) {
const res = await request.get<ApiResult<User[]>>(
SERVER_API_URL + '/system/user/listAdminsByPhoneAll',
{
params
}
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 选择邮箱下管理员账号登录(跨租户)
* @param params
*/
export async function listAdminsByEmailAll(params?: UserParam) {
const res = await request.get<ApiResult<User[]>>(
'https://server.websoft.top/api/listAdminsByEmailAll',
{
params
}
);
if (res.data.code === 0 && res.data.data) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 导出用户列表
*/
export async function exportUsers(params?: UserParam) {
const res = await request.get<Blob>(SERVER_API_URL + '/system/user/export', {
params,
responseType: 'blob'
});
return res.data;
}