From 8cfa252d9af1d68546ddfcafa9b64797ccb82799 Mon Sep 17 00:00:00 2001 From: dzq Date: Mon, 2 Jun 2025 10:24:50 +0800 Subject: [PATCH] =?UTF-8?q?feat(=E5=95=86=E5=93=81=E7=AE=A1=E7=90=86):=20?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=95=86=E5=93=81=E7=AE=A1=E7=90=86=E6=A8=A1?= =?UTF-8?q?=E5=9D=97=E5=8F=8A=E7=9B=B8=E5=85=B3=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 新增商品管理页面及API接口 - 扩展用户余额信息展示,增加已用借呗和总额显示 - 添加商品管理路由入口和权限控制 - 移除商品列表页未使用的滚动定位代码 - 新增通用类型定义文件 - 添加余额刷新功能 商品管理模块包含商品列表展示、添加、编辑和删除功能,同时完善了用户余额信息的展示,包括剩余借呗、已用借呗和总额。移除了商品列表页中未使用的滚动定位相关代码以简化逻辑。 --- src/common/apis/manage/goods.ts | 96 ++++++++++ src/common/apis/shop/type.ts | 5 + src/common/apis/type.ts | 24 +++ src/pages/manage/goods/goodsList.vue | 261 +++++++++++++++++++++++++++ src/pages/me/index.vue | 41 +++-- src/pages/product/ProductList.vue | 14 +- src/pinia/stores/wx.ts | 28 ++- src/router/guard.ts | 4 + src/router/index.ts | 19 ++ 9 files changed, 465 insertions(+), 27 deletions(-) create mode 100644 src/common/apis/manage/goods.ts create mode 100644 src/common/apis/type.ts create mode 100644 src/pages/manage/goods/goodsList.vue diff --git a/src/common/apis/manage/goods.ts b/src/common/apis/manage/goods.ts new file mode 100644 index 0000000..2bd908a --- /dev/null +++ b/src/common/apis/manage/goods.ts @@ -0,0 +1,96 @@ +import { request } from "@/http/axios" +import { PageDTO, ResponseData, BasePageQuery } from "../type" + +export interface ShopGoodsDTO { + goodsId?: number + goodsName?: string + categoryId?: number + categoryName?: string + price?: number + stock?: number + status?: number + autoApproval?: number + coverImg?: string + creatorId?: number + creatorName?: string + createTime?: string + remark?: string + cabinetName?: string + cellNo?: number + cellNoStr?: string + totalStock?: number + usageInstruction?: string +} + +export interface SearchShopGoodsQuery extends BasePageQuery { + goodsName?: string + categoryId?: number + status?: number + autoApproval?: number + minPrice?: number + maxPrice?: number +} + +/** 获取商品列表 */ +export function getGoodsList(query: SearchShopGoodsQuery) { + return request>>({ + url: "manage/goods/list", + method: "get", + params: query + }) +} + +/** 新增商品 */ +export function addGoods(data: { + goodsName: string + categoryId: number + price: number + stock: number + status: number + autoApproval: number + coverImg: string + goodsDetail?: string + usageInstruction?: string +}) { + return request>({ + url: "manage/goods", + method: "post", + data + }) +} + +/** 删除商品 */ +export function deleteGoods(goodsIds: number[]) { + return request>({ + url: `manage/goods/${goodsIds.join(',')}`, + method: "delete" + }) +} + +/** 修改商品 */ +export function updateGoods(goodsId: number, data: { + goodsName?: string + categoryId?: number + price?: number + stock?: number + status?: number + autoApproval?: number + coverImg?: string + goodsDetail?: string + usageInstruction?: string +}) { + return request>({ + url: `manage/goods/${goodsId}`, + method: "put", + data + }) +} + +/** 获取单个商品信息 */ +export function getGoodsInfo(goodsId: number) { + return request>({ + url: "manage/goods/getGoodsInfo", + method: "get", + params: { goodsId } + }) +} \ No newline at end of file diff --git a/src/common/apis/shop/type.ts b/src/common/apis/shop/type.ts index 219bd05..c0cd808 100644 --- a/src/common/apis/shop/type.ts +++ b/src/common/apis/shop/type.ts @@ -101,7 +101,12 @@ export interface GetOrdersByOpenIdDTO { export interface GetBalanceResponse { userid: string corpid: string + /** 剩余借呗 */ balance: number + /** 已用借呗 */ + useBalance: number + /** 借呗总额 */ + balanceLimit: number } export interface QyLoginDTO { diff --git a/src/common/apis/type.ts b/src/common/apis/type.ts new file mode 100644 index 0000000..cde7738 --- /dev/null +++ b/src/common/apis/type.ts @@ -0,0 +1,24 @@ + +export type ResponseData = { + code: number; + msg: string; + data: T; +}; + +export type PageDTO = { + total: number; + rows: Array; +}; + +export interface BasePageQuery extends BaseQuery { + pageNum?: number; + pageSize?: number; +} + +export interface BaseQuery { + beginTime?: string; + endTime?: string; + orderColumn?: string; + orderDirection?: string; + timeRangeColumn?: string; +} \ No newline at end of file diff --git a/src/pages/manage/goods/goodsList.vue b/src/pages/manage/goods/goodsList.vue new file mode 100644 index 0000000..d3dbc56 --- /dev/null +++ b/src/pages/manage/goods/goodsList.vue @@ -0,0 +1,261 @@ + + + + + \ No newline at end of file diff --git a/src/pages/me/index.vue b/src/pages/me/index.vue index 4d2f6b6..71e0fa2 100644 --- a/src/pages/me/index.vue +++ b/src/pages/me/index.vue @@ -1,16 +1,17 @@