From a9887b63df352c6bf8e0f574f1ba0e5b22b0229e Mon Sep 17 00:00:00 2001 From: puzvv <1@> Date: Tue, 30 Dec 2025 17:46:50 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E4=BA=86=E9=A1=B5=E9=9D=A2?= =?UTF-8?q?=E6=98=BE=E7=A4=BA=E6=95=88=E6=9E=9C=EF=BC=8C=E5=AE=9E=E7=8E=B0?= =?UTF-8?q?=E4=BA=86=E5=95=86=E5=93=81=E5=88=A0=E9=99=A4=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/apis/product.ts | 18 + src/layouts/MainLayout.vue | 65 ++- src/layouts/ManageLayout.vue | 9 + src/pages/admin/ProductPage.vue | 13 +- src/pages/product/ProductPage.vue | 11 +- src/pages/user/ProductPage.vue | 648 ++++++++++++++++++++++++++++++ src/types/product.ts | 4 + 7 files changed, 757 insertions(+), 11 deletions(-) create mode 100644 src/pages/user/ProductPage.vue diff --git a/src/apis/product.ts b/src/apis/product.ts index 4e0dc13..613d7fc 100644 --- a/src/apis/product.ts +++ b/src/apis/product.ts @@ -18,6 +18,15 @@ export const getProductList = (params: ProductPageParams) => { }); }; +// 获取商家商品列表 +export const getMerchantProductList = (params: ProductPageParams) => { + return http({ + url: "/product/page/merchant", + method: "get", + params, + }); +}; + // 获取商品分类 export const getProductCategories = () => { return http({ @@ -51,6 +60,15 @@ export const saveProduct = (data: ProductDTO) => { }); }; +// 删除商品 +export const deleteProductAPI = (id: number) => { + return http({ + url: `/product`, + method: "delete", + params: { id }, + }); +}; + // 更新商品 export const updateProduct = (data: ProductDTO) => { return http({ diff --git a/src/layouts/MainLayout.vue b/src/layouts/MainLayout.vue index 6337076..649ee8f 100644 --- a/src/layouts/MainLayout.vue +++ b/src/layouts/MainLayout.vue @@ -13,6 +13,11 @@ const isLoggedIn = computed(() => { return !!userStore.token; }); +// 计算属性:判断用户是否为管理员 +const isAdmin = computed(() => { + return userStore.userInfo?.isAdmin === 1; +}); + // 计算属性:获取用户昵称 const userNickname = computed(() => { return userStore.userInfo?.nickname || userStore.userInfo?.username || "用户"; @@ -42,6 +47,24 @@ const goToProfile = () => { router.push(`/user/profile/${userStore.userInfo?.id}`); isMobileMenuOpen.value = false; }; + +// 跳转到管理界面 +const goToAdmin = () => { + router.push("/admin"); + isMobileMenuOpen.value = false; +}; + +// 跳转到地址管理 +const goToAddress = () => { + router.push("/user/address"); + isMobileMenuOpen.value = false; +}; + +// 跳转到商品管理界面 +const goToProductManage = () => { + router.push("/user/product"); + isMobileMenuOpen.value = false; +};