| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108 |
- import Token from '@/utils/token';
- import SystemConst from '@/utils/const';
- import { request } from 'umi';
- interface IBaseService<T> {
- query: (params: any) => Promise<any>;
- save: (data: T) => Promise<any>;
- remove: (id: string) => Promise<any>;
- }
- class BaseService<T> implements IBaseService<T> {
- protected uri: string;
- protected headers = {
- 'X-Access-Token': Token.get(),
- };
- constructor(uri?: string) {
- this.uri = `/${SystemConst.API_BASE}/${uri}`;
- }
- query(data: any): Promise<any> {
- return request(`${this.uri}/_query/`, { data, method: 'POST' });
- }
- queryNoPagingPost(data: any): Promise<unknown> {
- return request(`${this.uri}/_query/no-paging?paging=false`, { data, method: 'POST' });
- }
- queryNoPaging(params?: any): Promise<unknown> {
- return request(`${this.uri}/_query/no-paging?paging=false`, { params, method: 'GET' });
- }
- remove(id: string): Promise<unknown> {
- return request(`${this.uri}/${id}`, { method: 'DELETE' });
- }
- save(data: Partial<T>): Promise<unknown> {
- return request(this.uri, { data, method: 'POST' });
- }
- savePatch(data: Partial<T>): Promise<unknown> {
- return request(this.uri, { data, method: 'PATCH' });
- }
- update(data: Partial<T>): Promise<any> {
- // @ts-ignore
- return data.id ? request(this.uri, { data, method: 'PATCH' }) : this.save(data);
- }
- detail(id: string): Promise<any> {
- return request(`${this.uri}/${id}`, { method: 'GET' });
- }
- modify(id: string, data: Partial<T>): Promise<any> {
- return request(`${this.uri}/${id}`, {
- method: 'PUT',
- data,
- });
- }
- getUri() {
- return this.uri;
- }
- POST(url: string, data: Partial<T> = {}, params?: any, options?: any): Promise<any> {
- return request(url, {
- method: 'POST',
- data,
- params,
- ...options,
- });
- }
- GET(url: string, params?: Partial<T>, options?: any): Promise<any> {
- return request(url, {
- method: 'GET',
- params,
- ...options,
- });
- }
- PATCH(url: string, data?: Partial<T>, options?: any): Promise<any> {
- return request(url, {
- method: 'PATCH',
- data,
- ...options,
- });
- }
- DELETE(url: string, params?: Partial<T>, options?: any): Promise<any> {
- return request(url, {
- method: 'DELETE',
- params,
- ...options,
- });
- }
- PUT(url: string, data?: Partial<T>, options?: any): Promise<any> {
- return request(url, {
- method: 'PUT',
- data,
- ...options,
- });
- }
- }
- export default BaseService;
|