forked from verdnatura/hedera-web
82 lines
2.5 KiB
JavaScript
82 lines
2.5 KiB
JavaScript
import { defineStore } from 'pinia';
|
|
import { jApi } from 'boot/axios';
|
|
import useNotify from 'src/composables/useNotify.js';
|
|
|
|
const { notify } = useNotify();
|
|
|
|
export const useAppStore = defineStore('hedera', {
|
|
state: () => ({
|
|
title: null,
|
|
subtitle: null,
|
|
imageUrl: '',
|
|
useRightDrawer: false,
|
|
rightDrawerOpen: false,
|
|
isHeaderMounted: false,
|
|
menuEssentialLinks: [],
|
|
basketOrderId: null
|
|
}),
|
|
|
|
actions: {
|
|
async getMenuLinks() {
|
|
const sections = await jApi.query('SELECT * FROM myMenu');
|
|
const sectionMap = new Map();
|
|
for (const section of sections) {
|
|
sectionMap.set(section.id, section);
|
|
}
|
|
|
|
const sectionTree = [];
|
|
for (const section of sections) {
|
|
const parent = section.parentFk;
|
|
if (parent) {
|
|
const parentSection = sectionMap.get(parent);
|
|
if (!parentSection) continue;
|
|
let childs = parentSection.childs;
|
|
if (!childs) {
|
|
childs = parentSection.childs = [];
|
|
}
|
|
childs.push(section);
|
|
} else {
|
|
sectionTree.push(section);
|
|
}
|
|
}
|
|
|
|
this.menuEssentialLinks = sectionTree;
|
|
},
|
|
|
|
async loadConfig() {
|
|
const imageUrl = await jApi.getValue('SELECT url FROM imageConfig');
|
|
this.$patch({ imageUrl });
|
|
},
|
|
|
|
async init() {
|
|
this.getBasketOrderId();
|
|
},
|
|
|
|
getBasketOrderId() {
|
|
this.basketOrderId = localStorage.getItem('hederaBasket');
|
|
},
|
|
|
|
async checkOrder(orderId) {
|
|
try {
|
|
const resultSet = await jApi.execQuery(
|
|
'CALL myOrder_checkConfig(#id)',
|
|
{ id: orderId }
|
|
);
|
|
resultSet.fetchValue();
|
|
} catch (err) {
|
|
console.error('Error checking order', err);
|
|
}
|
|
},
|
|
|
|
loadIntoBasket(orderId) {
|
|
console.log('loadIntoBasket', orderId);
|
|
console.log('this.basketOrderId', this.basketOrderId);
|
|
if (this.basketOrderId !== orderId) {
|
|
localStorage.setItem('hederaBasket', orderId);
|
|
this.basketOrderId = orderId;
|
|
notify('orderLoadedIntoBasket', 'positive');
|
|
}
|
|
}
|
|
}
|
|
});
|