132 lines
3.5 KiB
JavaScript
132 lines
3.5 KiB
JavaScript
import { defineStore } from "pinia";
|
|
import { ref } from "vue";
|
|
import api from "../lib/axios";
|
|
|
|
export const useLoadsStore = defineStore('load', () => {
|
|
const companyid = localStorage.getItem('id');
|
|
const currentLoad = ref(null);
|
|
const loads = ref([])
|
|
const proposalsOfLoads = ref([]);
|
|
const openModalEdit = ref(false);
|
|
const openAttachmentsModal = ref(false);
|
|
const openProposalsModal = ref(false);
|
|
|
|
|
|
const getCompanyLoads = async(filterQuery) => {
|
|
let filterArr = Object.values(filterQuery);
|
|
let cleanfilterArr = filterArr.filter(n=>n);
|
|
var filterStr = "";
|
|
if(cleanfilterArr.length >0){
|
|
filterStr = cleanfilterArr.join("&");
|
|
}
|
|
// console.log(filterStr);
|
|
try {
|
|
const endpoint = `/loads?company=${companyid}&${filterStr}`;
|
|
const {data} = await api.get(endpoint);
|
|
loads.value = data.data;
|
|
} catch (error) {
|
|
loads.value = [];
|
|
console.log(error);
|
|
}
|
|
}
|
|
|
|
const getProposalsOfLoads = async(filterQuery) => {
|
|
try {
|
|
const endpoint = `/proposals/?load=${filterQuery}`;
|
|
const {data} = await api.get(endpoint);
|
|
// console.log(data);
|
|
proposalsOfLoads.value = data.data;
|
|
} catch (error) {
|
|
proposalsOfLoads.value = [];
|
|
console.log(error);
|
|
}
|
|
}
|
|
|
|
const saveLoad = async(load) => {
|
|
try {
|
|
const endpoint = `/loads/`;
|
|
const {data} = await api.post(endpoint, load);
|
|
return data;
|
|
} catch (error) {
|
|
console.log(error);
|
|
return null;
|
|
}
|
|
}
|
|
|
|
const updateProposal = async(id, proposal) => {
|
|
try {
|
|
const endpoint = `/proposals/${id}`;
|
|
const {data} = await api.patch(endpoint, proposal);
|
|
// console.log(data);
|
|
return data;
|
|
} catch (error) {
|
|
console.log(error);
|
|
return null;
|
|
}
|
|
}
|
|
|
|
const deleteProposal = async(id) => {
|
|
try {
|
|
const endpoint = `/proposals/${id}`;
|
|
const {data} = await api.delete(endpoint);
|
|
// console.log(data);
|
|
return data;
|
|
} catch (error) {
|
|
console.log(error);
|
|
return null;
|
|
}
|
|
}
|
|
|
|
const updateLoad = async(loadId, load) => {
|
|
try {
|
|
const endpoint = `/loads/${loadId}`;
|
|
const {data} = await api.patch(endpoint, load);
|
|
// console.log(data);
|
|
return data;
|
|
} catch (error) {
|
|
console.log(error);
|
|
return null;
|
|
}
|
|
}
|
|
|
|
const deleteLoad = async(loadId) => {
|
|
try {
|
|
const endpoint = `/loads/${loadId}`;
|
|
console.log(endpoint);
|
|
const {data} = await api.delete(endpoint);
|
|
return data;
|
|
} catch (error) {
|
|
console.log(error);
|
|
return null;
|
|
}
|
|
}
|
|
|
|
const getLoad = async(filterQuery) => {
|
|
try {
|
|
const endpoint = `/loads/${filterQuery}`;
|
|
const {data} = await api.get(endpoint);
|
|
return data;
|
|
} catch (error) {
|
|
console.log(error);
|
|
return [];
|
|
}
|
|
}
|
|
|
|
|
|
return {
|
|
openModalEdit,
|
|
openProposalsModal,
|
|
openAttachmentsModal,
|
|
getProposalsOfLoads,
|
|
getCompanyLoads,
|
|
deleteLoad,
|
|
getLoad,
|
|
saveLoad,
|
|
updateLoad,
|
|
updateProposal,
|
|
deleteProposal,
|
|
loads,
|
|
currentLoad,
|
|
proposalsOfLoads,
|
|
}
|
|
}); |