+
+
+
import { ref, computed, onMounted } from 'vue'
+import LayoutSkeleton from '@/components/ui/LayoutSkeleton.vue'
import { useColorMode } from '@vueuse/core'
import type { DropdownMenuItem, NavigationMenuItem } from '@nuxt/ui'
import { defineShortcuts, extractShortcuts } from '@nuxt/ui/runtime/composables/defineShortcuts.js'
@@ -98,7 +101,9 @@ const userStore = useUserStore()
const route = useRoute()
const pageTitle = computed(() => route.meta.name ?? 'Default Page')
-await userStore.getUser()
+
+const loadingLayout = ref(true)
+userStore.getUser().finally(() => { loadingLayout.value = false })
const open = ref(true)
const colorMode = useColorMode()
diff --git a/bo/src/layouts/management.vue b/bo/src/layouts/management.vue
index a9a51f0..864af21 100644
--- a/bo/src/layouts/management.vue
+++ b/bo/src/layouts/management.vue
@@ -182,7 +182,7 @@ const menu = ref(null)
const Id = Number(route.params.user_id)
async function cmGetTopMenu() {
try {
- const { items } = await useFetchJson(`/api/v1/restricted/menu/get-top-menu?target_user_id=${Id}`)
+ const { items } = await useFetchJson(`/api/v1/restricted/menu/get-customer-management-menu`)
menu.value = items
} catch (err) {
diff --git a/bo/src/stores/admin/addProduct.ts b/bo/src/stores/admin/addProduct.ts
index 5abad7d..1b58652 100644
--- a/bo/src/stores/admin/addProduct.ts
+++ b/bo/src/stores/admin/addProduct.ts
@@ -136,9 +136,12 @@ export const useAddProductStore = defineStore('addProduct', () => {
}
const categories = ref