BaseService.ts 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. import Token from '@/utils/token';
  2. import SystemConst from '@/utils/const';
  3. import { request } from 'umi';
  4. interface IBaseService<T> {
  5. query: (params: any) => Promise<any>;
  6. save: (data: T) => Promise<any>;
  7. remove: (id: string) => Promise<any>;
  8. }
  9. class BaseService<T> implements IBaseService<T> {
  10. protected uri: string;
  11. protected headers = {
  12. 'X-Access-Token': Token.get(),
  13. };
  14. constructor(uri?: string) {
  15. this.uri = `/${SystemConst.API_BASE}/${uri}`;
  16. }
  17. query(data: any): Promise<any> {
  18. return request(`${this.uri}/_query/`, { data, method: 'POST' });
  19. }
  20. queryNoPaging(params: any): Promise<unknown> {
  21. return request(`${this.uri}/_query/no-paging?paging=false`, { params, method: 'GET' });
  22. }
  23. remove(id: string): Promise<unknown> {
  24. return request(`${this.uri}/${id}`, { method: 'DELETE' });
  25. }
  26. save(data: T): Promise<unknown> {
  27. return request(this.uri, { data, method: 'POST' });
  28. }
  29. update(data: Partial<T>): Promise<any> {
  30. return request(this.uri, { data, method: 'PATCH' });
  31. }
  32. detail(id: string): Promise<any> {
  33. return request(`${this.uri}/${id}`, { method: 'GET' });
  34. }
  35. modify(id: string, data: Partial<T>): Promise<any> {
  36. return request(`${this.uri}/${id}`, {
  37. method: 'PUT',
  38. data,
  39. });
  40. }
  41. getUri() {
  42. return this.uri;
  43. }
  44. }
  45. export default BaseService;