index.ts 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. import type { Recordable } from '@vben-core/typings';
  2. import createRequestClient from '@six/request';
  3. import { message } from 'ant-design-vue';
  4. import { useAuthStore } from '#/store';
  5. import {
  6. transformDatabaseResponse,
  7. transformHttpResponse,
  8. } from '#/api/utils/response-transform';
  9. import '@six/request/alova';
  10. export * from './method/access';
  11. export * from './method/business';
  12. export * from './method/common';
  13. export * from './method/dict';
  14. export * from './method/patient-evaluation';
  15. export * from './method/prescription';
  16. export * from './method/prescription-review';
  17. export * from './method/system';
  18. export const http = createRequestClient({
  19. id: import.meta.env.VITE_APP_NAMESPACE?.split('/').pop() ?? 'smart-pharmacy',
  20. transform: transformHttpResponse,
  21. });
  22. http.interceptor('error', async (error) => {
  23. if (error?.code === 401) await useAuthStore().logout();
  24. message.error(error.message ?? `服务错误 (${error.code})`).then();
  25. });
  26. export const database = createRequestClient({
  27. baseURL: `${import.meta.env.BASE_URL}database`,
  28. transform: transformDatabaseResponse,
  29. });
  30. export type TransformData<T = any> = Recordable<T>;
  31. export interface TransformList<T = TransformData> {
  32. total: number;
  33. items: T[];
  34. data?: {
  35. page: number;
  36. size: number;
  37. total: number;
  38. };
  39. }
  40. export interface TransformBody<T> {
  41. code: number;
  42. data: T;
  43. message?: string;
  44. }
  45. export interface TransformBlob {
  46. fileName: string;
  47. source: Blob;
  48. }
  49. export interface TransformRecord {
  50. id: string;
  51. createUser?: string;
  52. createTime?: string;
  53. updateUser?: string;
  54. updateTime?: string;
  55. lastTime?: string;
  56. lastUser?: string;
  57. }