users.ts 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. // src/API/users.ts
  2. import request from "@/utils/request";
  3. import { useTokenStore } from "@/stores/mytoken";
  4. // =========================
  5. // 登录
  6. // =========================
  7. export interface LoginInfo {
  8. name: string;
  9. password: string;
  10. usertype?: string; // 可选,前端可以传入
  11. }
  12. export const login = (loginInfo: LoginInfo) => {
  13. return request({
  14. url: "/admin/login",
  15. method: "POST",
  16. data: {
  17. name: loginInfo.name,
  18. password: loginInfo.password,
  19. },
  20. });
  21. };
  22. // =========================
  23. // 注册 / 新增用户
  24. // =========================
  25. export interface RegisterInfo {
  26. name: string;
  27. password: string;
  28. userType?: string; // 默认 "user"
  29. }
  30. export const addUser = (data: RegisterInfo) => {
  31. return request({
  32. url: "/admin/register", // 或者根据后端实际路由修改
  33. method: "POST",
  34. data: {
  35. name: data.name,
  36. password: data.password,
  37. userType: data.userType ?? "user",
  38. },
  39. });
  40. };
  41. // 兼容老代码:register 导出
  42. export const register = addUser;
  43. // =========================
  44. // 获取用户列表
  45. // =========================
  46. export const getUsers = () => {
  47. return request({
  48. url: "/admin/list_users",
  49. method: "GET",
  50. });
  51. };
  52. // =========================
  53. // 更新用户
  54. // =========================
  55. export interface UpdateUserInfo {
  56. name?: string;
  57. userType?: string;
  58. password?: string;
  59. }
  60. export const updateUser = (userId: number, data: UpdateUserInfo) => {
  61. return request({
  62. url: `/admin/update_user/${userId}`,
  63. method: "PUT",
  64. data,
  65. });
  66. };
  67. // =========================
  68. // 删除用户
  69. // =========================
  70. export const deleteUser = (userId: number) => {
  71. return request({
  72. url: `/admin/delete_user/${userId}`,
  73. method: "DELETE",
  74. });
  75. };
  76. // =========================
  77. // 登出(前端本地清理)
  78. // =========================
  79. export const logout = async () => {
  80. const store = useTokenStore();
  81. store.clearToken();
  82. localStorage.removeItem("userInfo");
  83. return { success: true, message: "已退出登录" };
  84. };