manage.ts 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141
  1. import type { MenuModel, UserModel, RoleModel, LoggerModel } from '@/request/model/manage.model';
  2. import HTTP from '@/request/alova';
  3. import { cacheFor } from '@/request/api/index';
  4. import { fromMenusData, fromUserData, fromRoleData, fromLoggerData } from '@/request/model/manage.model';
  5. export function login(data: { account: string; password: string }) {
  6. return HTTP.Post<string, any>(
  7. `/login`,
  8. { username: data.account, password: data.password },
  9. {
  10. meta: { ignoreToken: true },
  11. transform(data) {
  12. return data.token;
  13. },
  14. }
  15. );
  16. }
  17. export function getAccountInfo(token: string) {
  18. return HTTP.Get<[string, UserModel], any>(`/getInfo`, {
  19. headers: {
  20. Authorization: token,
  21. },
  22. transform(data: any) {
  23. return [token, fromUserData(data)];
  24. },
  25. });
  26. }
  27. export function getMenus() {
  28. return HTTP.Get<MenuModel[], any>(`/warrantManage/getMenus`, {
  29. transform(data) {
  30. const menus = typeof data === 'string' ? JSON.parse(data) : data;
  31. return fromMenusData(menus)!;
  32. },
  33. shareRequest: true,
  34. cacheFor,
  35. });
  36. }
  37. export function getRoles() {
  38. return HTTP.Get<(RoleModel & { __raw__: any })[], any>(`/admin/right_RoleMgr/optionselect`, {
  39. transform(data) {
  40. return Array.isArray(data) ? data.map((item) => Object.assign(fromRoleData(item), { __raw__: item })) : [];
  41. },
  42. hitSource: /^role-/,
  43. });
  44. }
  45. export function listRoles(page = 1, size = 20, query = {}) {
  46. const params = { page, limit: size };
  47. return HTTP.Post<{ data: RoleModel[]; total: number }, any>(
  48. `/admin/right_RoleMgr/listPain`,
  49. { ...params, ...query },
  50. {
  51. params,
  52. transform(data) {
  53. return { total: data.TotalRecordCount, data: data.Items.map(fromRoleData) };
  54. },
  55. hitSource: /^role-/,
  56. }
  57. );
  58. }
  59. export function editRole(data: { pid?: string } & Record<string, any>) {
  60. return HTTP.Post<RoleModel, any>(data.pid ? `/admin/right_RoleMgr/update` : `/admin/right_RoleMgr/Add`, data, {
  61. transform() {
  62. return fromRoleData(data);
  63. },
  64. name: `role-edit`,
  65. });
  66. }
  67. export function deleteRole(id: string) {
  68. return HTTP.Post(
  69. `/admin/right_RoleMgr/BatchDelete`,
  70. {},
  71. {
  72. params: { ids: id },
  73. name: `role-delete`,
  74. }
  75. );
  76. }
  77. export function listUsers(page = 1, size = 20, query = {}) {
  78. const params = { page, limit: size };
  79. return HTTP.Post<{ data: UserModel[]; total: number }, any>(
  80. `/portal/userMgr/listPain`,
  81. { ...params, ...query },
  82. {
  83. params,
  84. transform(data) {
  85. return { total: data.TotalRecordCount, data: data.Items.map(fromUserData) };
  86. },
  87. }
  88. );
  89. }
  90. export function editUser(data: { pid?: string } & Record<string, any>) {
  91. if (!data.pid) data.isFirst = 0;
  92. return HTTP.Post<UserModel, any>(data.pid ? `/portal/userMgr/update` : `/portal/userMgr/Add`, data, {
  93. transform() {
  94. return fromUserData(data);
  95. },
  96. });
  97. }
  98. export function deleteUser(id: string) {
  99. return HTTP.Post(`/portal/userMgr/BatchDelete`, {}, { params: { ids: id } });
  100. }
  101. export function resetUserPassword(pid: string) {
  102. return HTTP.Post(`/portal/userMgr/resetPassWord`, { userPid: pid });
  103. }
  104. export function updateUserPassword(data: { password: string; again: string; pid: string | number }, token?: string) {
  105. return HTTP.Post(
  106. `/portal/userMgr/UpdatePassWord`,
  107. {
  108. userPid: data.pid,
  109. password: data.password,
  110. newPassword: data.again,
  111. },
  112. { headers: { token } }
  113. );
  114. }
  115. export function listLoggers(page = 1, size = 20, query = {}) {
  116. const params = { page, limit: size };
  117. return HTTP.Get<{ data: LoggerModel[]; total: number }, any>(
  118. `/monitor/operlog/list`,
  119. {
  120. params: { ...params, ...query },
  121. transform(data) {
  122. return { total: data.TotalRecordCount, data: data.Items.map(fromLoggerData) };
  123. },
  124. }
  125. );
  126. }