123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381 |
- import request from "@/utils/request";
- import { AxiosPromise, AxiosResponse } from "axios";
- const USER_BASE_URL = "/api/v1/users";
- class UserAPI {
- /**
- * 获取当前登录用户信息
- *
- * @returns 登录用户昵称、头像信息,包括角色和权限
- */
- static getInfo() {
- return request<any, UserInfo>({
- url: `${USER_BASE_URL}/me`,
- method: "get",
- });
- }
- /**
- * 获取用户分页列表
- *
- * @param queryParams 查询参数
- */
- static getPage(queryParams: UserPageQuery) {
- return request<any, PageResult<UserPageVO[]>>({
- url: `${USER_BASE_URL}/page`,
- method: "get",
- params: queryParams,
- });
- }
- /**
- * 获取用户表单详情
- *
- * @param userId 用户ID
- * @returns 用户表单详情
- */
- static getFormData(userId: number) {
- return request<any, UserForm>({
- url: `${USER_BASE_URL}/${userId}/form`,
- method: "get",
- });
- }
- /**
- * 添加用户
- *
- * @param data 用户表单数据
- */
- static add(data: UserForm) {
- return request({
- url: `${USER_BASE_URL}`,
- method: "post",
- data: data,
- });
- }
- /**
- * 修改用户
- *
- * @param id 用户ID
- * @param data 用户表单数据
- */
- static update(id: number, data: UserForm) {
- return request({
- url: `${USER_BASE_URL}/${id}`,
- method: "put",
- data: data,
- });
- }
- /**
- * 修改用户密码
- *
- * @param id 用户ID
- * @param password 新密码
- */
- static resetPassword(id: number, password: string) {
- return request({
- url: `${USER_BASE_URL}/${id}/password/reset`,
- method: "put",
- params: { password: password },
- });
- }
- /**
- * 批量删除用户,多个以英文逗号(,)分割
- *
- * @param ids 用户ID字符串,多个以英文逗号(,)分割
- */
- static deleteByIds(ids: string) {
- return request({
- url: `${USER_BASE_URL}/${ids}`,
- method: "delete",
- });
- }
- /** 下载用户导入模板 */
- static downloadTemplate() {
- return request({
- url: `${USER_BASE_URL}/template`,
- method: "get",
- responseType: "arraybuffer",
- });
- }
- /**
- * 导出用户
- *
- * @param queryParams 查询参数
- */
- static export(queryParams: UserPageQuery) {
- return request({
- url: `${USER_BASE_URL}/export`,
- method: "get",
- params: queryParams,
- responseType: "arraybuffer",
- });
- }
- /**
- * 导入用户
- *
- * @param deptId 部门ID
- * @param file 导入文件
- */
- static import(deptId: number, file: File) {
- const formData = new FormData();
- formData.append("file", file);
- return request({
- url: `${USER_BASE_URL}/import`,
- method: "post",
- params: { deptId: deptId },
- data: formData,
- headers: {
- "Content-Type": "multipart/form-data",
- },
- });
- }
- /** 获取个人中心用户信息 */
- static getProfile() {
- return request<any, UserProfileVO>({
- url: `${USER_BASE_URL}/profile`,
- method: "get",
- });
- }
- /** 修改个人中心用户信息 */
- static updateProfile(data: UserProfileForm) {
- return request({
- url: `${USER_BASE_URL}/profile`,
- method: "put",
- data: data,
- });
- }
- /** 修改个人中心用户密码 */
- static changePassword(data: PasswordChangeForm) {
- return request({
- url: `${USER_BASE_URL}/password`,
- method: "put",
- data: data,
- });
- }
- /**
- * 发送手机/邮箱验证码
- *
- * @param contact 联系方式 手机号/邮箱
- * @param contactType 联系方式类型 MOBILE:手机;EMAIL:邮箱
- */
- static sendVerificationCode(contact: string, contactType: string) {
- return request({
- url: `${USER_BASE_URL}/send-verification-code`,
- method: "get",
- params: { contact: contact, contactType: contactType },
- });
- }
- /** 绑定个人中心用户手机 */
- static bindMobile(data: MobileBindingForm) {
- return request({
- url: `${USER_BASE_URL}/mobile`,
- method: "put",
- data: data,
- });
- }
- /** 绑定个人中心用户邮箱 */
- static bindEmail(data: EmailBindingForm) {
- return request({
- url: `${USER_BASE_URL}/email`,
- method: "put",
- data: data,
- });
- }
- /**
- * 获取用户下拉列表
- */
- static getOptions() {
- return request<any, OptionType[]>({
- url: `${USER_BASE_URL}/options`,
- method: "get",
- });
- }
- }
- export default UserAPI;
- /** 登录用户信息 */
- export interface UserInfo {
- /** 用户ID */
- userId?: number;
- /** 用户名 */
- username?: string;
- /** 昵称 */
- nickname?: string;
- /** 头像URL */
- avatar?: string;
- /** 角色 */
- roles: string[];
- /** 权限 */
- perms: string[];
- }
- /**
- * 用户分页查询对象
- */
- export interface UserPageQuery extends PageQuery {
- /** 搜索关键字 */
- keywords?: string;
- /** 用户状态 */
- status?: number;
- /** 部门ID */
- deptId?: number;
- /** 开始时间 */
- createTime?: [string, string];
- }
- /** 用户分页对象 */
- export interface UserPageVO {
- /** 用户头像URL */
- avatar?: string;
- /** 创建时间 */
- createTime?: Date;
- /** 部门名称 */
- deptName?: string;
- /** 用户邮箱 */
- email?: string;
- /** 性别 */
- genderLabel?: string;
- /** 用户ID */
- id?: number;
- /** 手机号 */
- mobile?: string;
- /** 用户昵称 */
- nickname?: string;
- /** 角色名称,多个使用英文逗号(,)分割 */
- roleNames?: string;
- /** 用户状态(1:启用;0:禁用) */
- status?: number;
- /** 用户名 */
- username?: string;
- }
- /** 用户表单类型 */
- export interface UserForm {
- /** 用户头像 */
- avatar?: string;
- /** 部门ID */
- deptId?: number;
- /** 邮箱 */
- email?: string;
- /** 性别 */
- gender?: number;
- /** 用户ID */
- id?: number;
- /** 手机号 */
- mobile?: string;
- /** 昵称 */
- nickname?: string;
- /** 角色ID集合 */
- roleIds?: number[];
- /** 用户状态(1:正常;0:禁用) */
- status?: number;
- /** 用户名 */
- username?: string;
- }
- /** 个人中心用户信息 */
- export interface UserProfileVO {
- /** 用户ID */
- id?: number;
- /** 用户名 */
- username?: string;
- /** 昵称 */
- nickname?: string;
- /** 头像URL */
- avatar?: string;
- /** 性别 */
- gender?: number;
- /** 手机号 */
- mobile?: string;
- /** 邮箱 */
- email?: string;
- /** 部门名称 */
- deptName?: string;
- /** 角色名称,多个使用英文逗号(,)分割 */
- roleNames?: string;
- /** 创建时间 */
- createTime?: Date;
- }
- /** 个人中心用户信息表单 */
- export interface UserProfileForm {
- /** 用户ID */
- id?: number;
- /** 用户名 */
- username?: string;
- /** 昵称 */
- nickname?: string;
- /** 头像URL */
- avatar?: string;
- /** 性别 */
- gender?: number;
- /** 手机号 */
- mobile?: string;
- /** 邮箱 */
- email?: string;
- }
- /** 修改密码表单 */
- export interface PasswordChangeForm {
- /** 原密码 */
- oldPassword?: string;
- /** 新密码 */
- newPassword?: string;
- /** 确认新密码 */
- confirmPassword?: string;
- }
- /** 修改手机表单 */
- export interface MobileBindingForm {
- /** 手机号 */
- mobile?: string;
- /** 验证码 */
- code?: string;
- }
- /** 修改邮箱表单 */
- export interface EmailBindingForm {
- /** 邮箱 */
- email?: string;
- /** 验证码 */
- code?: string;
- }
|