64 lines
1.5 KiB
TypeScript
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,
|
|
};
|
|
});
|