system.ts 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141
  1. import type { RouteMeta } from 'vue-router';
  2. import type { TransformData, TransformList, TransformRecord } from '#/api';
  3. import { http } from '#/api';
  4. import { fromRole, fromUser, toRole, toUser } from '#/api/model';
  5. import { fromMenus } from '#/api/model/menu';
  6. export namespace SystemModel {
  7. export interface Role extends TransformRecord {
  8. [key: string]: any;
  9. id: string;
  10. name: string;
  11. code?: string;
  12. permissions: string[];
  13. remark?: string;
  14. status: 0 | 1;
  15. }
  16. export interface User extends TransformRecord {
  17. id: string;
  18. access: string;
  19. name: string;
  20. worker?: string;
  21. mobile?: string;
  22. roles?: Array<Role | string>;
  23. password?: string;
  24. }
  25. export interface Menu {
  26. type: 'button' | 'catalog' | 'menu';
  27. id: string;
  28. pid?: string;
  29. name: string;
  30. path: string;
  31. component?: string;
  32. meta: Partial<RouteMeta>;
  33. children?: Menu[];
  34. }
  35. }
  36. export function listRolesMethod(page = 1, size = 20, query?: TransformData) {
  37. return http.post<TransformList<SystemModel.Role>, TransformList>(
  38. `/admin/right_RoleMgr/listPain`,
  39. query,
  40. {
  41. params: { page, limit: size },
  42. transform({ items, ...data }) {
  43. return { ...data, items: items.map((item) => fromRole(item)) };
  44. },
  45. },
  46. );
  47. }
  48. export function optionsRoleMethod() {
  49. return http.get<SystemModel.Role[], TransformData[]>(
  50. `/admin/right_RoleMgr/optionselect`,
  51. {
  52. transform(data) {
  53. return data.map((item) => fromRole(item));
  54. },
  55. },
  56. );
  57. }
  58. export function editRoleMethod(data: Partial<SystemModel.Role>) {
  59. return http.post(
  60. data.id ? `/admin/right_RoleMgr/update` : `/admin/right_RoleMgr/Add`,
  61. toRole(data),
  62. );
  63. }
  64. export function updateRoleStatusMethod(
  65. id: string,
  66. data: Partial<Omit<SystemModel.Role, 'id'>>,
  67. ) {
  68. const { pid, stateSel } = toRole({ ...data, id });
  69. return http.put(`/admin/right_RoleMgr/changeStatus`, { pid, stateSel });
  70. }
  71. export function deleteRoleMethod(data: Pick<SystemModel.User, 'id'>) {
  72. return deleteRolesMethod([data]);
  73. }
  74. export function deleteRolesMethod(params: Pick<SystemModel.User, 'id'>[]) {
  75. return http.post(`/admin/right_RoleMgr/BatchDelete`, void 0, {
  76. params: { ids: params.map((item) => item.id).join(',') },
  77. });
  78. }
  79. export function listUsersMethod(page = 1, size = 20, query?: SystemModel.User) {
  80. return http.post<TransformList<SystemModel.User>, TransformList>(
  81. `/portal/userMgr/listPain`,
  82. toUser(query),
  83. {
  84. params: { page, limit: size },
  85. transform({ items, ...data }) {
  86. return { ...data, items: items.map((item) => fromUser(item)) };
  87. },
  88. },
  89. );
  90. }
  91. export function editUserMethod(data: Partial<SystemModel.User>) {
  92. return http.post(
  93. data?.id ? `/portal/userMgr/update` : `/portal/userMgr/Add`,
  94. toUser(data),
  95. );
  96. }
  97. export function getUserMethod(id: string) {
  98. return http.get<SystemModel.User, TransformData>(`/portal/userMgr/${id}`, {
  99. transform(data) {
  100. return fromUser(data);
  101. },
  102. });
  103. }
  104. export function deleteUserMethod(data: Pick<SystemModel.User, 'id'>) {
  105. return deleteUsersMethod([data]);
  106. }
  107. export function deleteUsersMethod(params: Pick<SystemModel.User, 'id'>[]) {
  108. return http.post(`/portal/userMgr/BatchDelete`, void 0, {
  109. params: { ids: params.map((item) => item.id).join(',') },
  110. });
  111. }
  112. export function getMenusMethod() {
  113. return http.post<SystemModel.Menu[], TransformData[]>(
  114. `/admin/right_RoleMgr/allMenu`,
  115. void 0,
  116. {
  117. transform(data) {
  118. return fromMenus(data);
  119. },
  120. },
  121. );
  122. }