arrange.ts 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. import { defineStore } from 'pinia';
  2. import { AxiosWrapper } from '@/util/axios-wrapper';
  3. import _ from 'lodash';
  4. import type { IQueryType, IQueryResult, IQueryParams } from '@/util/types.util';
  5. const axios = new AxiosWrapper();
  6. const api = {
  7. url: `/arrange`
  8. };
  9. export const ArrangeStore = defineStore('arrange', () => {
  10. const query = async ({ skip = 0, limit = undefined, ...info }: IQueryParams = {}): Promise<IQueryResult> => {
  11. let cond: IQueryType = {};
  12. if (skip) cond.skip = skip;
  13. if (limit) cond.limit = limit;
  14. cond = { ...cond, ...info };
  15. const res = await axios.$get(`${api.url}`, cond);
  16. return res;
  17. };
  18. const getByDate = async (info: IQueryParams = {}): Promise<IQueryResult> => {
  19. const res = await axios.$get(`${api.url}/getByDate`, info);
  20. return res;
  21. };
  22. const fetch = async (payload: any): Promise<IQueryResult> => {
  23. const res = await axios.$get(`${api.url}/${payload}`);
  24. return res;
  25. };
  26. const create = async (payload: any): Promise<IQueryResult> => {
  27. const res = await axios.$post(`${api.url}`, payload);
  28. return res;
  29. };
  30. const update = async (payload: any): Promise<IQueryResult> => {
  31. const id = _.get(payload, 'id', _.get(payload, '_id'));
  32. const res = await axios.$post(`${api.url}/${id}`, payload);
  33. return res;
  34. };
  35. const del = async (payload: any): Promise<IQueryResult> => {
  36. const res = await axios.$delete(`${api.url}/${payload}`);
  37. return res;
  38. };
  39. return {
  40. query,
  41. getByDate,
  42. fetch,
  43. create,
  44. update,
  45. del
  46. };
  47. });