feat: add function submit
This commit is contained in:
parent
9c34172422
commit
84f5a06874
2 changed files with 36 additions and 4 deletions
|
|
@ -7,7 +7,7 @@ import { QuotationPayload, EmployeeWorker } from 'src/stores/quotations/types';
|
||||||
// NOTE: Import stores
|
// NOTE: Import stores
|
||||||
import { useQuotationStore } from 'stores/quotations';
|
import { useQuotationStore } from 'stores/quotations';
|
||||||
|
|
||||||
const DEFAULT_DATA: QuotationPayload & { id?: string } = {
|
const DEFAULT_DATA: QuotationPayload = {
|
||||||
productServiceList: [],
|
productServiceList: [],
|
||||||
urgent: false,
|
urgent: false,
|
||||||
customerBranchId: '',
|
customerBranchId: '',
|
||||||
|
|
@ -32,7 +32,9 @@ export const useQuotationForm = defineStore('form-quotation', () => {
|
||||||
let resetFormData = structuredClone(DEFAULT_DATA);
|
let resetFormData = structuredClone(DEFAULT_DATA);
|
||||||
|
|
||||||
const currentTreeData = ref();
|
const currentTreeData = ref();
|
||||||
const currentFormData = ref<QuotationPayload>(structuredClone(resetFormData));
|
const currentFormData = ref<QuotationPayload & { id?: string }>(
|
||||||
|
structuredClone(resetFormData),
|
||||||
|
);
|
||||||
const currentFormState = ref<{
|
const currentFormState = ref<{
|
||||||
mode: null | 'info' | 'create' | 'edit';
|
mode: null | 'info' | 'create' | 'edit';
|
||||||
}>({
|
}>({
|
||||||
|
|
@ -77,7 +79,17 @@ export const useQuotationForm = defineStore('form-quotation', () => {
|
||||||
currentFormState.value.mode = mode;
|
currentFormState.value.mode = mode;
|
||||||
}
|
}
|
||||||
|
|
||||||
function submitQuotation() {
|
async function submitQuotation() {
|
||||||
|
if (currentFormState.value.mode === 'create') {
|
||||||
|
// await quotationStore.createQuotation();
|
||||||
|
}
|
||||||
|
if (currentFormState.value.mode === 'edit' && currentFormData.value.id) {
|
||||||
|
// await quotationStore.editQuotation({
|
||||||
|
// id: currentFormData.value.id,
|
||||||
|
// ...currentFormData.value,
|
||||||
|
// });
|
||||||
|
}
|
||||||
|
|
||||||
currentFormState.value.mode = 'info';
|
currentFormState.value.mode = 'info';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -41,7 +41,18 @@ export const useQuotationStore = defineStore('quotation-store', () => {
|
||||||
}
|
}
|
||||||
|
|
||||||
async function createQuotation(payload: QuotationPayload) {
|
async function createQuotation(payload: QuotationPayload) {
|
||||||
const res = await api.post('/quotation', payload);
|
const res = await api.post('/quotation', {
|
||||||
|
...payload,
|
||||||
|
productServiceList: payload.productServiceList.map((v) => ({
|
||||||
|
vat: v.vat,
|
||||||
|
amount: v.amount,
|
||||||
|
pricePerUnit: v.pricePerUnit,
|
||||||
|
discount: v.discount,
|
||||||
|
productId: v.product.id,
|
||||||
|
workId: v.work?.id,
|
||||||
|
serviceId: v.service?.id,
|
||||||
|
})),
|
||||||
|
});
|
||||||
if (res.status < 400) {
|
if (res.status < 400) {
|
||||||
return res.data;
|
return res.data;
|
||||||
}
|
}
|
||||||
|
|
@ -51,6 +62,15 @@ export const useQuotationStore = defineStore('quotation-store', () => {
|
||||||
async function editQuotation(payload: QuotationPayload & { id: string }) {
|
async function editQuotation(payload: QuotationPayload & { id: string }) {
|
||||||
const res = await api.put(`/quotation/${payload.id}`, {
|
const res = await api.put(`/quotation/${payload.id}`, {
|
||||||
...payload,
|
...payload,
|
||||||
|
productServiceList: payload.productServiceList.map((v) => ({
|
||||||
|
vat: v.vat,
|
||||||
|
amount: v.amount,
|
||||||
|
pricePerUnit: v.pricePerUnit,
|
||||||
|
discount: v.discount,
|
||||||
|
productId: v.product.id,
|
||||||
|
workId: v.work?.id,
|
||||||
|
serviceId: v.service?.id,
|
||||||
|
})),
|
||||||
id: undefined,
|
id: undefined,
|
||||||
});
|
});
|
||||||
if (res.status < 400) {
|
if (res.status < 400) {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue