UNPKG

@opentiny/tiny-toolkit-pro

Version:

TinyPro Vue:开箱即用、前后端分离的 Vue 后台管理模板

70 lines (63 loc) 1.55 kB
import axios from 'axios'; import { Lang } from './lang'; export type I18Table = { [lang: string]: { [key: string]: string; }; }; export interface Locals { items: Local[]; meta: Meta; } export interface Local { content: string; id: number; key: string; lang: Lang; } export interface Meta { currentPage: number; itemCount: number; itemsPerPage: number; totalItems: number; totalPages: number; } export interface CreateLocal { content: string; key: string; lang: number; } export interface CreateLocalReturn { content: string; id: number; key: string; lang: Lang; } type DeleteLocaleRet = Omit<CreateLocalReturn, 'id'>; export const getLocalTable = (lang?: string) => { return axios.get<I18Table>('/api/i18/format', { params: { lang } }); }; export const getAllLocalItems = ( page?: number, limit?: number, all?: number, filters?: { [x: string]: number[] | string; }, ) => { return axios.get<Locals>('/api/i18', { params: { page, limit, all, ...filters }, }); }; export const createLocalItem = (data: CreateLocal) => { return axios.post<CreateLocalReturn>('/api/i18', data); }; export const deleteLocale = (id: number) => { return axios.delete<DeleteLocaleRet>(`/api/i18/${id}`); }; export const patchLocal = (id: number, data: Partial<CreateLocal>) => { return axios.patch(`/api/i18/${id}`, data); }; export const batchDeleteLocal = (ids: string[]) => { return axios.post('/api/i18/batch', ids) }