123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- import { ref, computed } from 'vue';
- import { defineStore } from 'pinia';
- import { AxiosWrapper } from '@/util/axios-wrapper';
- import _ from 'lodash';
- import type { IQueryType, IQueryResult, IQueryParams } from '@/util/types.util';
- const axios = new AxiosWrapper();
- const api = {
- url: `/travel/v1/api/admin`
- };
- export const AdminStore = defineStore('admin', () => {
- const count = ref(0);
- const doubleCount = computed(() => count.value * 2);
- function increment() {
- count.value++;
- }
- const query = async ({ skip = 0, limit = undefined, ...info }: IQueryParams = {}): Promise<IQueryResult> => {
- let cond: IQueryType = {};
- if (skip) cond.skip = skip;
- if (limit) cond.limit = limit;
- cond = { ...cond, ...info };
- const res = await axios.$get(`${api.url}`, cond);
- return res;
- };
- const fetch = async (payload: any): Promise<IQueryResult> => {
- const res = await axios.$get(`${api.url}/${payload}`);
- return res;
- };
- const create = async (payload: any): Promise<IQueryResult> => {
- const res = await axios.$post(`${api.url}`, payload);
- return res;
- };
- const update = async (payload: any): Promise<IQueryResult> => {
- const id = _.get(payload, 'id', _.get(payload, '_id'));
- const res = await axios.$post(`${api.url}/${id}`, payload);
- return res;
- };
- const del = async (payload: any): Promise<IQueryResult> => {
- const res = await axios.$delete(`${api.url}/${payload}`);
- return res;
- };
- const login = async (payload: any): Promise<IQueryResult> => {
- const res = await axios.$post(`${api.url}/login`, payload);
- return res;
- };
- //password
- const rp = async (payload: any): Promise<IQueryResult> => {
- const res = await axios.$post(`${api.url}/rp`, payload);
- return res;
- };
- return {
- count,
- doubleCount,
- increment,
- query,
- fetch,
- create,
- update,
- del,
- login,
- rp
- };
- });
|