diff --git a/bo/components.d.ts b/bo/components.d.ts index 85bba39..b2e1dd7 100644 --- a/bo/components.d.ts +++ b/bo/components.d.ts @@ -25,7 +25,7 @@ declare module 'vue' { PageCreateAccount: typeof import('./src/components/customer/PageCreateAccount.vue')['default'] PageCustomerData: typeof import('./src/components/customer/PageCustomerData.vue')['default'] PageProductCardFull: typeof import('./src/components/customer/PageProductCardFull.vue')['default'] - PageProductsList: typeof import('./src/components/customer/PageProductsList.vue')['default'] + PageProductsList: typeof import('./src/components/admin/PageProductsList.vue')['default'] Pl_PrivacyPolicyView: typeof import('./src/components/terms/pl_PrivacyPolicyView.vue')['default'] Pl_TermsAndConditionsView: typeof import('./src/components/terms/pl_TermsAndConditionsView.vue')['default'] ProductCustomization: typeof import('./src/components/customer/components/ProductCustomization.vue')['default'] diff --git a/bo/src/components/TopBar.vue b/bo/src/components/TopBar.vue index f999875..0e388c1 100644 --- a/bo/src/components/TopBar.vue +++ b/bo/src/components/TopBar.vue @@ -19,6 +19,9 @@ const authStore = useAuthStore() TimeTracker + + products list + product detail @@ -37,9 +40,6 @@ const authStore = useAuthStore() Cart1 - - Products List -
diff --git a/bo/src/components/customer/PageProductsList.vue b/bo/src/components/admin/PageProductsList.vue similarity index 86% rename from bo/src/components/customer/PageProductsList.vue rename to bo/src/components/admin/PageProductsList.vue index 62630b4..4f3dfb1 100644 --- a/bo/src/components/customer/PageProductsList.vue +++ b/bo/src/components/admin/PageProductsList.vue @@ -22,7 +22,7 @@ Image - Product ID + Product Code Name @@ -33,18 +33,19 @@ + class="hover:bg-gray-50 dark:hover:bg-gray-800" + @click="goToProduct(product.product_id)"> - product image {{ - product.product_id }} + product.reference }} {{ product.name }} - {{ product.LinkRewrite }} + {{ product.link_rewrite }} @@ -65,13 +66,16 @@ import { ref, onMounted, watch } from 'vue' import { useFetchJson } from '@/composable/useFetchJson' import Default from '@/layouts/default.vue' +import { useRouter } from 'vue-router' interface Product { - product_id: number + reference: number + product_id:number name: string - ImageID: string - LinkRewrite: string + image_link: string + link_rewrite: string } +const router = useRouter() const page = ref(1) const perPage = ref(15) @@ -97,6 +101,7 @@ async function fetchProductList() { ) as ApiResponse productsList.value = response.items || [] + console.log(response) total.value = response.count || 0 } catch (e: unknown) { error.value = e instanceof Error ? e.message : 'Failed to load products' @@ -109,4 +114,11 @@ watch(page, () => { fetchProductList() }) onMounted(fetchProductList) + +function goToProduct(productId: number) { + router.push({ + name: 'product-detail', + params: { id: productId } + }) +} \ No newline at end of file diff --git a/bo/src/components/admin/ProductDetailView.vue b/bo/src/components/admin/ProductDetailView.vue index 2ce5806..3f6527b 100644 --- a/bo/src/components/admin/ProductDetailView.vue +++ b/bo/src/components/admin/ProductDetailView.vue @@ -35,11 +35,19 @@
-
-

img

+
+ +
+
+

{{ productStore.error }}

+
+
+
+ Product Image +

- {{ productStore.productDescription.name }} + {{ productStore.productDescription.name || 'Product Name' }}

@@ -52,14 +60,14 @@

- {{ productStore.productDescription.delivery_in_stock }} + {{ productStore.productDescription.delivery_in_stock || 'Delivery information' }}

-
+