import type { Category, CategoryTree } from "~/server/models/category"; // export const useCategoryStore = defineStore("category-v2", () => { // const categories = ref([]); // const categoryTree = ref([]); // const currentCategoryTree = ref([]) // const findBySiteId = async () => { // try { // const { data } = await useFetch(`/api/services/category-tree`) // categoryTree.value = data.value // return categoryTree.value // } catch (error) {} // } // async function fetchCategories() { // const { data, error } = await useFetch("/api/v2/categories"); // if (error.value) { // return [] as Category[]; // } // categories.value = Object.assign([], data.value); // return categories.value; // } // function findByCode(code?: string) { // if (code) return categories.value.find((c) => c.code === code); // } // function findById(id?: number) { // return categories.value.find((c) => c.id === id); // } // function findParents(category?: Category) { // if (!category) return []; // const parents = []; // let parent = findById(category.parentId); // while (parent) { // parents.push(parent); // parent = findById(parent.parentId); // } // return parents.reverse().concat(category); // } // function findSubTree(category?: Category) { // if (!category) return []; // let subTree = [] as Category[]; // function findChildren(category: Category) { // const children = categories.value.filter((c:Category) => c.parentId === category.id); // if (children.length === 0) return; // subTree.push(...children,category); // } // if(category.parentId === 41){ // findChildren(category); // }else{ // const parent = findById(category.parentId); // if(parent){ // findChildren(parent); // } // } // return subTree.reverse(); // } // function findChildren(category: Category) { // const children = categories.value.filter((c:Category) => c.parentId === category.id); // if (children.length === 0) return; // else return [...children] // } // return { categories, categoryTree, currentCategoryTree, findBySiteId, fetchCategories, findByCode, findById, findParents,findSubTree, findChildren }; // }); export const useCategoryStore = defineStore('usecategorystore', () => { const categoryTree = shallowRef([]) const currentCategoryTree = shallowRef([]) async function fetchBySiteId() { const { data }: any = await useFetch(`/api/services/category-tree`) categoryTree.value = data.value.items return categoryTree.value } return { categoryTree, currentCategoryTree, fetchBySiteId } }) if (import.meta.hot) { import.meta.hot.accept(acceptHMRUpdate(useCategoryStore, import.meta.hot)); }