jws-frontend/src/stores/workflow-template/index.ts
2024-10-24 14:03:38 +07:00

64 lines
1.5 KiB
TypeScript

import { ref } from 'vue';
import { defineStore } from 'pinia';
import { api } from 'src/boot/axios';
import { PaginationResult } from 'src/types';
import { WorkflowTemplate } from './types';
export const useWorkflowTemplate = defineStore('workkflow-store', () => {
const data = ref<WorkflowTemplate[]>([]);
const page = ref<number>(1);
const pageMax = ref<number>(1);
const pageSize = ref<number>(30);
async function getWorkflowTemplate(id: string) {
const res = await api.get<WorkflowTemplate>(`/workflow-template/${id}`);
if (res.status >= 400) return null;
return res.data;
}
async function getWorkflowTemplateList(query?: {
page?: number;
pageSize?: number;
}) {
const res = await api.get<PaginationResult<WorkflowTemplate>>(
'/workflow-template',
{ params: query },
);
if (res.status >= 400) return null;
return res.data;
}
async function editWorkflowTemplate(data: WorkflowTemplate & { id: string }) {
const res = await api.put<WorkflowTemplate>(
`/workflow-template/${data.id}`,
{
...data,
id: undefined,
},
);
if (res.status >= 400) return null;
return res;
}
async function deleteWorkflowTemplate(id: string) {
const res = await api.delete(`/workflow-template/${id}`);
if (res.status >= 400) return null;
return res;
}
return {
data,
page,
pageSize,
pageMax,
getWorkflowTemplate,
getWorkflowTemplateList,
editWorkflowTemplate,
deleteWorkflowTemplate,
};
});