diff --git a/apps/web-antd/src/api/mall/market/banner/index.ts b/apps/web-antd/src/api/mall/market/banner/index.ts deleted file mode 100644 index 362a649d..00000000 --- a/apps/web-antd/src/api/mall/market/banner/index.ts +++ /dev/null @@ -1,49 +0,0 @@ - - -import { requestClient } from '#/api/request'; -import {PageParam} from "#/api/types"; -import {PageResult} from "#/api/common"; - -export namespace MallBannerApi { - /** Banner 信息 */ - export interface Banner { - id: number; - title: string; - picUrl: string; - status: number; - url: string; - position: number; - sort: number; - memo: string; - } -} - -/** 查询Banner管理列表 */ -export function getBannerPage(params: PageParam) { - return requestClient.get>( - '/promotion/banner/page', - { params }, - ); -} - -/** 查询Banner管理详情 */ -export function getBanner(id: number) { - return requestClient.get( - `/promotion/banner/get?id=${id}`, - ); -} - -/** 新增Banner管理 */ -export function createBanner(data: MallBannerApi.Banner) { - return requestClient.post('/promotion/banner/create', data); -} - -/** 修改Banner管理 */ -export function updateBanner(data: MallBannerApi.Banner) { - return requestClient.put('/promotion/banner/update', data); -} - -/** 删除Banner管理 */ -export function deleteBanner(id: number) { - return requestClient.delete(`/promotion/banner/delete?id=${id}`); -} diff --git a/apps/web-antd/src/api/mall/product/brand.ts b/apps/web-antd/src/api/mall/product/brand.ts deleted file mode 100644 index d4c25b96..00000000 --- a/apps/web-antd/src/api/mall/product/brand.ts +++ /dev/null @@ -1,58 +0,0 @@ -import type { PageParam, PageResult } from '../../../types'; - -import { requestClient } from '#/api/request'; - -export namespace MallBrandApi { - /** 商品品牌 */ - export interface Brand { - /** 品牌编号 */ - id?: number; - /** 品牌名称 */ - name: string; - /** 品牌图片 */ - picUrl: string; - /** 品牌排序 */ - sort?: number; - /** 品牌描述 */ - description?: string; - /** 开启状态 */ - status: number; - } -} - -/** 创建商品品牌 */ -export function createBrand(data: MallBrandApi.Brand) { - return requestClient.post('/product/brand/create', data); -} - -/** 更新商品品牌 */ -export function updateBrand(data: MallBrandApi.Brand) { - return requestClient.put('/product/brand/update', data); -} - -/** 删除商品品牌 */ -export function deleteBrand(id: number) { - return requestClient.delete(`/product/brand/delete?id=${id}`); -} - -/** 获得商品品牌 */ -export function getBrand(id: number) { - return requestClient.get(`/product/brand/get?id=${id}`); -} - -/** 获得商品品牌列表 */ -export function getBrandPage(params: PageParam) { - return requestClient.get>( - '/product/brand/page', - { - params, - }, - ); -} - -/** 获得商品品牌精简信息列表 */ -export function getSimpleBrandList() { - return requestClient.get( - '/product/brand/list-all-simple', - ); -} diff --git a/apps/web-antd/src/api/mall/product/category.ts b/apps/web-antd/src/api/mall/product/category.ts deleted file mode 100644 index f30d6c6b..00000000 --- a/apps/web-antd/src/api/mall/product/category.ts +++ /dev/null @@ -1,51 +0,0 @@ -import { requestClient } from '#/api/request'; - -export namespace MallCategoryApi { - /** 产品分类 */ - export interface Category { - /** 分类编号 */ - id?: number; - /** 父分类编号 */ - parentId?: number; - /** 分类名称 */ - name: string; - /** 移动端分类图 */ - picUrl: string; - /** 分类排序 */ - sort: number; - /** 开启状态 */ - status: number; - } -} - -/** 创建商品分类 */ -export function createCategory(data: MallCategoryApi.Category) { - return requestClient.post('/product/category/create', data); -} - -/** 更新商品分类 */ -export function updateCategory(data: MallCategoryApi.Category) { - return requestClient.put('/product/category/update', data); -} - -/** 删除商品分类 */ -export function deleteCategory(id: number) { - return requestClient.delete(`/product/category/delete?id=${id}`); -} - -/** 获得商品分类 */ -export function getCategory(id: number) { - return requestClient.get( - `/product/category/get?id=${id}`, - ); -} - -/** 获得商品分类列表 */ -export function getCategoryList(params: any) { - return requestClient.get( - '/product/category/list', - { - params, - }, - ); -} diff --git a/apps/web-antd/src/api/mall/product/comment.ts b/apps/web-antd/src/api/mall/product/comment.ts deleted file mode 100644 index 90605dea..00000000 --- a/apps/web-antd/src/api/mall/product/comment.ts +++ /dev/null @@ -1,81 +0,0 @@ -import type { PageParam, PageResult } from '../../../types'; - -import { requestClient } from '#/api/request'; - -export namespace MallCommentApi { - export interface Property { - propertyId: number; - propertyName: string; - valueId: number; - valueName: string; - } - /** 商品评论 */ - export interface Comment { - id: number; - userId: number; - userNickname: string; - userAvatar: string; - anonymous: boolean; - orderId: number; - orderItemId: number; - spuId: number; - spuName: string; - skuId: number; - visible: boolean; - scores: number; - descriptionScores: number; - benefitScores: number; - content: string; - picUrls: string[]; - replyStatus: boolean; - replyUserId: number; - replyContent: string; - replyTime: Date; - createTime: Date; - skuProperties: Property[]; - } - - /** 评论可见性更新 */ - export interface CommentVisibleUpdate { - id: number; - visible: boolean; - } - - /** 评论回复 */ - export interface CommentReply { - id: number; - replyContent: string; - } -} - -/** 查询商品评论列表 */ -export function getCommentPage(params: PageParam) { - return requestClient.get>( - '/product/comment/page', - { params }, - ); -} - -/** 查询商品评论详情 */ -export function getComment(id: number) { - return requestClient.get( - `/product/comment/get?id=${id}`, - ); -} - -/** 添加自评 */ -export function createComment(data: MallCommentApi.Comment) { - return requestClient.post('/product/comment/create', data); -} - -/** 显示 / 隐藏评论 */ -export function updateCommentVisible( - data: MallCommentApi.CommentVisibleUpdate, -) { - return requestClient.put('/product/comment/update-visible', data); -} - -/** 商家回复 */ -export function replyComment(data: MallCommentApi.CommentReply) { - return requestClient.put('/product/comment/reply', data); -} diff --git a/apps/web-antd/src/api/mall/product/favorite.ts b/apps/web-antd/src/api/mall/product/favorite.ts deleted file mode 100644 index cc8d2f0b..00000000 --- a/apps/web-antd/src/api/mall/product/favorite.ts +++ /dev/null @@ -1,23 +0,0 @@ -import type { PageParam, PageResult } from '../../../types'; - -import { requestClient } from '#/api/request'; - -export namespace MallFavoriteApi { - /** 商品收藏 */ - export interface Favorite { - /** 收藏编号 */ - id?: number; - /** 用户编号 */ - userId?: string; - /** 商品 SPU 编号 */ - spuId?: null | number; - } -} - -/** 获得商品收藏列表 */ -export function getFavoritePage(params: PageParam) { - return requestClient.get>( - '/product/favorite/page', - { params }, - ); -} diff --git a/apps/web-antd/src/api/mall/product/history.ts b/apps/web-antd/src/api/mall/product/history.ts deleted file mode 100644 index 28b5766a..00000000 --- a/apps/web-antd/src/api/mall/product/history.ts +++ /dev/null @@ -1,29 +0,0 @@ -import type { PageParam, PageResult } from '../../../types'; - -import { requestClient } from '#/api/request'; - -export namespace MallHistoryApi { - /** 商品浏览记录 */ - export interface BrowseHistory { - /** 记录编号 */ - id?: number; - /** 用户编号 */ - userId?: number; - /** 商品 SPU 编号 */ - spuId?: number; - /** 浏览时间 */ - createTime?: Date; - } -} - -/** - * 获得商品浏览记录分页 - * - * @param params 请求参数 - */ -export function getBrowseHistoryPage(params: PageParam) { - return requestClient.get>( - '/product/browse-history/page', - { params }, - ); -} diff --git a/apps/web-antd/src/api/mall/product/property.ts b/apps/web-antd/src/api/mall/product/property.ts deleted file mode 100644 index ec0d89bc..00000000 --- a/apps/web-antd/src/api/mall/product/property.ts +++ /dev/null @@ -1,111 +0,0 @@ -import type { PageParam, PageResult } from '../../../types'; - -import { requestClient } from '#/api/request'; - -export namespace MallPropertyApi { - /** 商品属性 */ - export interface Property { - /** 属性编号 */ - id?: number; - /** 名称 */ - name: string; - /** 备注 */ - remark?: string; - } - - /** 属性值 */ - export interface PropertyValue { - /** 属性值编号 */ - id?: number; - /** 属性项的编号 */ - propertyId?: number; - /** 名称 */ - name: string; - /** 备注 */ - remark?: string; - } - - /** 属性值查询参数 */ - export interface PropertyValueQuery extends PageParam { - propertyId?: number; - } -} - -/** 创建属性项 */ -export function createProperty(data: MallPropertyApi.Property) { - return requestClient.post('/product/property/create', data); -} - -/** 更新属性项 */ -export function updateProperty(data: MallPropertyApi.Property) { - return requestClient.put('/product/property/update', data); -} - -/** 删除属性项 */ -export function deleteProperty(id: number) { - return requestClient.delete(`/product/property/delete?id=${id}`); -} - -/** 获得属性项 */ -export function getProperty(id: number) { - return requestClient.get( - `/product/property/get?id=${id}`, - ); -} - -/** 获得属性项分页 */ -export function getPropertyPage(params: PageParam) { - return requestClient.get>( - '/product/property/page', - { params }, - ); -} - -/** 获得属性项精简列表 */ -export function getPropertySimpleList() { - return requestClient.get( - '/product/property/simple-list', - ); -} - -/** 获得属性值分页 */ -export function getPropertyValuePage( - params: MallPropertyApi.PropertyValueQuery, -) { - return requestClient.get>( - '/product/property/value/page', - { params }, - ); -} - -/** 获得属性值 */ -export function getPropertyValue(id: number) { - return requestClient.get( - `/product/property/value/get?id=${id}`, - ); -} - -/** 创建属性值 */ -export function createPropertyValue(data: MallPropertyApi.PropertyValue) { - return requestClient.post('/product/property/value/create', data); -} - -/** 更新属性值 */ -export function updatePropertyValue(data: MallPropertyApi.PropertyValue) { - return requestClient.put('/product/property/value/update', data); -} - -/** 删除属性值 */ -export function deletePropertyValue(id: number) { - return requestClient.delete(`/product/property/value/delete?id=${id}`); -} - -/** 获得属性值精简列表 */ -export function getPropertyValueSimpleList(propertyId: number) { - return requestClient.get( - '/product/property/value/simple-list', - { - params: { propertyId }, - }, - ); -} diff --git a/apps/web-antd/src/api/mall/product/spu.ts b/apps/web-antd/src/api/mall/product/spu.ts deleted file mode 100644 index 5ddb390c..00000000 --- a/apps/web-antd/src/api/mall/product/spu.ts +++ /dev/null @@ -1,177 +0,0 @@ -import type { PageParam, PageResult } from '../../../types'; - -import { requestClient } from '#/api/request'; - -export namespace MallSpuApi { - /** 商品属性 */ - export interface Property { - /** 属性编号 */ - propertyId?: number; - /** 属性名称 */ - propertyName?: string; - /** 属性值编号 */ - valueId?: number; - /** 属性值名称 */ - valueName?: string; - } - - /** 商品 SKU */ - export interface Sku { - /** 商品 SKU 编号 */ - id?: number; - /** 商品 SKU 名称 */ - name?: string; - /** SPU 编号 */ - spuId?: number; - /** 属性数组 */ - properties?: Property[]; - /** 商品价格 */ - price?: number | string; - /** 市场价 */ - marketPrice?: number | string; - /** 成本价 */ - costPrice?: number | string; - /** 商品条码 */ - barCode?: string; - /** 图片地址 */ - picUrl?: string; - /** 库存 */ - stock?: number; - /** 商品重量,单位:kg 千克 */ - weight?: number; - /** 商品体积,单位:m^3 平米 */ - volume?: number; - /** 一级分销的佣金 */ - firstBrokeragePrice?: number | string; - /** 二级分销的佣金 */ - secondBrokeragePrice?: number | string; - /** 商品销量 */ - salesCount?: number; - } - - /** 优惠券模板 */ - export interface GiveCouponTemplate { - /** 优惠券编号 */ - id?: number; - /** 优惠券名称 */ - name?: string; - } - - /** 商品 SPU */ - export interface Spu { - /** 商品编号 */ - id?: number; - /** 商品名称 */ - name?: string; - /** 商品分类 */ - categoryId?: number; - /** 关键字 */ - keyword?: string; - /** 单位 */ - unit?: number | undefined; - /** 商品封面图 */ - picUrl?: string; - /** 商品轮播图 */ - sliderPicUrls?: string[]; - /** 商品简介 */ - introduction?: string; - /** 配送方式 */ - deliveryTypes?: number[]; - /** 运费模版 */ - deliveryTemplateId?: number | undefined; - /** 商品品牌编号 */ - brandId?: number; - /** 商品规格 */ - specType?: boolean; - /** 分销类型 */ - subCommissionType?: boolean; - /** sku数组 */ - skus?: Sku[]; - /** 商品详情 */ - description?: string; - /** 商品排序 */ - sort?: number; - /** 赠送积分 */ - giveIntegral?: number; - /** 虚拟销量 */ - virtualSalesCount?: number; - /** 商品价格 */ - price?: number; - /** 商品拼团价格 */ - combinationPrice?: number; - /** 商品秒杀价格 */ - seckillPrice?: number; - /** 商品销量 */ - salesCount?: number; - /** 市场价 */ - marketPrice?: number; - /** 成本价 */ - costPrice?: number; - /** 商品库存 */ - stock?: number; - /** 商品创建时间 */ - createTime?: Date; - /** 商品状态 */ - status?: number; - } - - /** 商品状态更新 */ - export interface StatusUpdate { - /** 商品编号 */ - id: number; - /** 商品状态 */ - status: number; - } -} - -/** 获得商品 SPU 列表 */ -export function getSpuPage(params: PageParam) { - return requestClient.get>('/product/spu/page', { - params, - }); -} - -/** 获得商品 SPU 列表 tabsCount */ -export function getTabsCount() { - return requestClient.get>('/product/spu/get-count'); -} - -/** 创建商品 SPU */ -export function createSpu(data: MallSpuApi.Spu) { - return requestClient.post('/product/spu/create', data); -} - -/** 更新商品 SPU */ -export function updateSpu(data: MallSpuApi.Spu) { - return requestClient.put('/product/spu/update', data); -} - -/** 更新商品 SPU 状态 */ -export function updateStatus(data: MallSpuApi.StatusUpdate) { - return requestClient.put('/product/spu/update-status', data); -} - -/** 获得商品 SPU */ -export function getSpu(id: number) { - return requestClient.get(`/product/spu/get-detail?id=${id}`); -} - -/** 获得商品 SPU 详情列表 */ -export function getSpuDetailList(ids: number[]) { - return requestClient.get(`/product/spu/list?spuIds=${ids}`); -} - -/** 删除商品 SPU */ -export function deleteSpu(id: number) { - return requestClient.delete(`/product/spu/delete?id=${id}`); -} - -/** 导出商品 SPU Excel */ -export function exportSpu(params: PageParam) { - return requestClient.download('/product/spu/export-excel', { params }); -} - -/** 获得商品 SPU 精简列表 */ -export function getSpuSimpleList() { - return requestClient.get('/product/spu/list-all-simple'); -} diff --git a/apps/web-antd/src/api/mall/promotion/article/index.ts b/apps/web-antd/src/api/mall/promotion/article/index.ts deleted file mode 100644 index 74b6fd47..00000000 --- a/apps/web-antd/src/api/mall/promotion/article/index.ts +++ /dev/null @@ -1,65 +0,0 @@ -import type { PageParam, PageResult } from '../../../types'; - -import { requestClient } from '#/api/request'; - -export namespace MallArticleApi { - /** 文章管理 */ - export interface Article { - /** 文章编号 */ - id: number; - /** 分类编号 */ - categoryId: number; - /** 文章标题 */ - title: string; - /** 作者 */ - author: string; - /** 封面图 */ - picUrl: string; - /** 文章简介 */ - introduction: string; - /** 浏览数量 */ - browseCount: string; - /** 排序 */ - sort: number; - /** 状态 */ - status: number; - /** 商品编号 */ - spuId: number; - /** 是否热门 */ - recommendHot: boolean; - /** 是否轮播图 */ - recommendBanner: boolean; - /** 文章内容 */ - content: string; - } -} - -/** 查询文章管理列表 */ -export function getArticlePage(params: PageParam) { - return requestClient.get>( - '/promotion/article/page', - { params }, - ); -} - -/** 查询文章管理详情 */ -export function getArticle(id: number) { - return requestClient.get( - `/promotion/article/get?id=${id}`, - ); -} - -/** 新增文章管理 */ -export function createArticle(data: MallArticleApi.Article) { - return requestClient.post('/promotion/article/create', data); -} - -/** 修改文章管理 */ -export function updateArticle(data: MallArticleApi.Article) { - return requestClient.put('/promotion/article/update', data); -} - -/** 删除文章管理 */ -export function deleteArticle(id: number) { - return requestClient.delete(`/promotion/article/delete?id=${id}`); -} diff --git a/apps/web-antd/src/api/mall/promotion/articleCategory/index.ts b/apps/web-antd/src/api/mall/promotion/articleCategory/index.ts deleted file mode 100644 index 68e8e86a..00000000 --- a/apps/web-antd/src/api/mall/promotion/articleCategory/index.ts +++ /dev/null @@ -1,60 +0,0 @@ -import type { PageParam, PageResult } from '../../../types'; - -import { requestClient } from '#/api/request'; - -export namespace MallArticleCategoryApi { - /** 文章分类 */ - export interface ArticleCategory { - /** 分类编号 */ - id: number; - /** 分类名称 */ - name: string; - /** 分类图片 */ - picUrl: string; - /** 状态 */ - status: number; - /** 排序 */ - sort: number; - } -} - -/** 查询文章分类列表 */ -export function getArticleCategoryPage(params: PageParam) { - return requestClient.get>( - '/promotion/article-category/page', - { params }, - ); -} - -/** 查询文章分类精简信息列表 */ -export function getSimpleArticleCategoryList() { - return requestClient.get( - '/promotion/article-category/list-all-simple', - ); -} - -/** 查询文章分类详情 */ -export function getArticleCategory(id: number) { - return requestClient.get( - `/promotion/article-category/get?id=${id}`, - ); -} - -/** 新增文章分类 */ -export function createArticleCategory( - data: MallArticleCategoryApi.ArticleCategory, -) { - return requestClient.post('/promotion/article-category/create', data); -} - -/** 修改文章分类 */ -export function updateArticleCategory( - data: MallArticleCategoryApi.ArticleCategory, -) { - return requestClient.put('/promotion/article-category/update', data); -} - -/** 删除文章分类 */ -export function deleteArticleCategory(id: number) { - return requestClient.delete(`/promotion/article-category/delete?id=${id}`); -} diff --git a/apps/web-antd/src/api/mall/promotion/bargain/bargainActivity.ts b/apps/web-antd/src/api/mall/promotion/bargain/bargainActivity.ts deleted file mode 100644 index 75a433bc..00000000 --- a/apps/web-antd/src/api/mall/promotion/bargain/bargainActivity.ts +++ /dev/null @@ -1,106 +0,0 @@ -import type { PageParam, PageResult } from '../../../types'; - -import type { MallSpuApi } from '#/api/mall/product/spu'; - -import { requestClient } from '#/api/request'; - -export namespace MallBargainActivityApi { - /** 砍价活动 */ - export interface BargainActivity { - /** 活动编号 */ - id?: number; - /** 活动名称 */ - name?: string; - /** 开始时间 */ - startTime?: Date; - /** 结束时间 */ - endTime?: Date; - /** 状态 */ - status?: number; - /** 达到该人数,才能砍到低价 */ - helpMaxCount?: number; - /** 最大帮砍次数 */ - bargainCount?: number; - /** 最大购买次数 */ - totalLimitCount?: number; - /** 商品 SPU 编号 */ - spuId: number; - /** 商品 SKU 编号 */ - skuId: number; - /** 砍价起始价格,单位分 */ - bargainFirstPrice: number; - /** 砍价底价 */ - bargainMinPrice: number; - /** 活动库存 */ - stock: number; - /** 用户每次砍价的最小金额,单位:分 */ - randomMinPrice?: number; - /** 用户每次砍价的最大金额,单位:分 */ - randomMaxPrice?: number; - } - - /** 砍价活动所需属性。选择的商品和属性的时候使用方便使用活动的通用封装 */ - export interface BargainProduct { - /** 商品 SPU 编号 */ - spuId: number; - /** 商品 SKU 编号 */ - skuId: number; - /** 砍价起始价格,单位分 */ - bargainFirstPrice: number; - /** 砍价底价 */ - bargainMinPrice: number; - /** 活动库存 */ - stock: number; - } - - /** 扩展 SKU 配置 */ - export type SkuExtension = { - /** 砍价活动配置 */ - productConfig: BargainProduct; - } & MallSpuApi.Sku; - - /** 扩展 SPU 配置 */ - export interface SpuExtension extends MallSpuApi.Spu { - /** SKU 列表 */ - skus: SkuExtension[]; - } -} - -/** 查询砍价活动列表 */ -export function getBargainActivityPage(params: PageParam) { - return requestClient.get>( - '/promotion/bargain-activity/page', - { params }, - ); -} - -/** 查询砍价活动详情 */ -export function getBargainActivity(id: number) { - return requestClient.get( - `/promotion/bargain-activity/get?id=${id}`, - ); -} - -/** 新增砍价活动 */ -export function createBargainActivity( - data: MallBargainActivityApi.BargainActivity, -) { - return requestClient.post('/promotion/bargain-activity/create', data); -} - -/** 修改砍价活动 */ -export function updateBargainActivity( - data: MallBargainActivityApi.BargainActivity, -) { - return requestClient.put('/promotion/bargain-activity/update', data); -} - -/** 关闭砍价活动 */ -export function closeBargainActivity(id: number) { - return requestClient.put(`/promotion/bargain-activity/close?id=${id}`); -} - -/** 删除砍价活动 */ -export function deleteBargainActivity(id: number) { - return requestClient.delete(`/promotion/bargain-activity/delete?id=${id}`); -} diff --git a/apps/web-antd/src/api/mall/promotion/bargain/bargainHelp.ts b/apps/web-antd/src/api/mall/promotion/bargain/bargainHelp.ts deleted file mode 100644 index 30685912..00000000 --- a/apps/web-antd/src/api/mall/promotion/bargain/bargainHelp.ts +++ /dev/null @@ -1,27 +0,0 @@ -import type { PageParam, PageResult } from '../../../types'; - -import { requestClient } from '#/api/request'; - -export namespace MallBargainHelpApi { - /** 砍价记录 */ - export interface BargainHelp { - /** 记录编号 */ - id: number; - /** 砍价记录编号 */ - record: number; - /** 用户编号 */ - userId: number; - /** 砍掉金额 */ - reducePrice: number; - /** 结束时间 */ - endTime: Date; - } -} - -/** 查询砍价记录列表 */ -export function getBargainHelpPage(params: PageParam) { - return requestClient.get>( - '/promotion/bargain-help/page', - { params }, - ); -} diff --git a/apps/web-antd/src/api/mall/promotion/bargain/bargainRecord.ts b/apps/web-antd/src/api/mall/promotion/bargain/bargainRecord.ts deleted file mode 100644 index d7759c32..00000000 --- a/apps/web-antd/src/api/mall/promotion/bargain/bargainRecord.ts +++ /dev/null @@ -1,37 +0,0 @@ -import type { PageParam, PageResult } from '../../../types'; - -import { requestClient } from '#/api/request'; - -export namespace MallBargainRecordApi { - /** 砍价记录 */ - export interface BargainRecord { - /** 记录编号 */ - id: number; - /** 活动编号 */ - activityId: number; - /** 用户编号 */ - userId: number; - /** 商品 SPU 编号 */ - spuId: number; - /** 商品 SKU 编号 */ - skuId: number; - /** 砍价起始价格 */ - bargainFirstPrice: number; - /** 砍价价格 */ - bargainPrice: number; - /** 状态 */ - status: number; - /** 订单编号 */ - orderId: number; - /** 结束时间 */ - endTime: Date; - } -} - -/** 查询砍价记录列表 */ -export function getBargainRecordPage(params: PageParam) { - return requestClient.get>( - '/promotion/bargain-record/page', - { params }, - ); -} diff --git a/apps/web-antd/src/api/mall/promotion/combination/combinationActivity.ts b/apps/web-antd/src/api/mall/promotion/combination/combinationActivity.ts deleted file mode 100644 index 4b81116e..00000000 --- a/apps/web-antd/src/api/mall/promotion/combination/combinationActivity.ts +++ /dev/null @@ -1,111 +0,0 @@ -import type { PageParam, PageResult } from '../../../types'; - -import type { MallSpuApi } from '#/api/mall/product/spu'; - -import { requestClient } from '#/api/request'; - -export namespace MallCombinationActivityApi { - /** 拼团活动所需属性 */ - export interface CombinationProduct { - /** 商品 SPU 编号 */ - spuId: number; - /** 商品 SKU 编号 */ - skuId: number; - /** 拼团价格 */ - combinationPrice: number; - } - /** 拼团活动 */ - export interface CombinationActivity { - /** 活动编号 */ - id?: number; - /** 活动名称 */ - name?: string; - /** 商品 SPU 编号 */ - spuId?: number; - /** 总限购数量 */ - totalLimitCount?: number; - /** 单次限购数量 */ - singleLimitCount?: number; - /** 开始时间 */ - startTime?: Date; - /** 结束时间 */ - endTime?: Date; - /** 用户数量 */ - userSize?: number; - /** 总数量 */ - totalCount?: number; - /** 成功数量 */ - successCount?: number; - /** 订单用户数量 */ - orderUserCount?: number; - /** 虚拟成团 */ - virtualGroup?: number; - /** 状态 */ - status?: number; - /** 限制时长 */ - limitDuration?: number; - /** 拼团价格 */ - combinationPrice?: number; - /** 商品列表 */ - products: CombinationProduct[]; - } - - /** 扩展 SKU 配置 */ - export type SkuExtension = { - /** 拼团活动配置 */ - productConfig: CombinationProduct; - } & MallSpuApi.Sku; - - /** 扩展 SPU 配置 */ - export interface SpuExtension extends MallSpuApi.Spu { - /** SKU 列表 */ - skus: SkuExtension[]; - } -} - -/** 查询拼团活动列表 */ -export function getCombinationActivityPage(params: PageParam) { - return requestClient.get< - PageResult - >('/promotion/combination-activity/page', { params }); -} - -/** 查询拼团活动详情 */ -export function getCombinationActivity(id: number) { - return requestClient.get( - `/promotion/combination-activity/get?id=${id}`, - ); -} - -/** 获得拼团活动列表,基于活动编号数组 */ -export function getCombinationActivityListByIds(ids: number[]) { - return requestClient.get( - `/promotion/combination-activity/list-by-ids?ids=${ids}`, - ); -} - -/** 新增拼团活动 */ -export function createCombinationActivity( - data: MallCombinationActivityApi.CombinationActivity, -) { - return requestClient.post('/promotion/combination-activity/create', data); -} - -/** 修改拼团活动 */ -export function updateCombinationActivity( - data: MallCombinationActivityApi.CombinationActivity, -) { - return requestClient.put('/promotion/combination-activity/update', data); -} - -/** 关闭拼团活动 */ -export function closeCombinationActivity(id: number) { - return requestClient.put(`/promotion/combination-activity/close?id=${id}`); -} - -/** 删除拼团活动 */ -export function deleteCombinationActivity(id: number) { - return requestClient.delete( - `/promotion/combination-activity/delete?id=${id}`, - ); -} diff --git a/apps/web-antd/src/api/mall/promotion/combination/combinationRecord.ts b/apps/web-antd/src/api/mall/promotion/combination/combinationRecord.ts deleted file mode 100644 index 6d89780c..00000000 --- a/apps/web-antd/src/api/mall/promotion/combination/combinationRecord.ts +++ /dev/null @@ -1,61 +0,0 @@ -import type { PageParam, PageResult } from '../../../types'; - -import { requestClient } from '#/api/request'; - -export namespace MallCombinationRecordApi { - /** 拼团记录 */ - export interface CombinationRecord { - /** 拼团记录编号 */ - id: number; - /** 拼团活动编号 */ - activityId: number; - /** 用户昵称 */ - nickname: string; - /** 用户头像 */ - avatar: string; - /** 团长编号 */ - headId: number; - /** 过期时间 */ - expireTime: string; - /** 可参团人数 */ - userSize: number; - /** 已参团人数 */ - userCount: number; - /** 拼团状态 */ - status: number; - /** 商品名字 */ - spuName: string; - /** 商品图片 */ - picUrl: string; - /** 是否虚拟成团 */ - virtualGroup: boolean; - /** 开始时间 (订单付款后开始的时间) */ - startTime: string; - /** 结束时间(成团时间/失败时间) */ - endTime: string; - } - - /** 拼团记录概要信息 */ - export interface RecordSummary { - /** 待成团数量 */ - pendingCount: number; - /** 已成团数量 */ - successCount: number; - /** 已失败数量 */ - failCount: number; - } -} - -/** 查询拼团记录列表 */ -export function getCombinationRecordPage(params: PageParam) { - return requestClient.get< - PageResult - >('/promotion/combination-record/page', { params }); -} - -/** 获得拼团记录的概要信息 */ -export function getCombinationRecordSummary() { - return requestClient.get( - '/promotion/combination-record/get-summary', - ); -} diff --git a/apps/web-antd/src/api/mall/promotion/coupon/coupon.ts b/apps/web-antd/src/api/mall/promotion/coupon/coupon.ts deleted file mode 100644 index 164f4d71..00000000 --- a/apps/web-antd/src/api/mall/promotion/coupon/coupon.ts +++ /dev/null @@ -1,67 +0,0 @@ -import type { PageParam, PageResult } from '../../../types'; - -import { requestClient } from '#/api/request'; - -export namespace MallCouponApi { - /** 优惠券 */ - export interface Coupon { - /** 优惠券编号 */ - id: number; - /** 优惠券名称 */ - name: string; - /** 优惠券状态 */ - status: number; - /** 优惠券类型 */ - type: number; - /** 优惠券金额 */ - price: number; - /** 使用门槛 */ - usePrice: number; - /** 商品范围 */ - productScope: number; - /** 商品编号数组 */ - productSpuIds: number[]; - /** 有效期类型 */ - validityType: number; - /** 固定日期-生效开始时间 */ - validStartTime: Date; - /** 固定日期-生效结束时间 */ - validEndTime: Date; - /** 领取日期-开始天数 */ - fixedStartTerm: number; - /** 领取日期-结束天数 */ - fixedEndTerm: number; - /** 每人限领个数 */ - takeLimitCount: number; - /** 是否设置满多少金额可用 */ - usePriceEnabled: boolean; - /** 商品分类编号数组 */ - productCategoryIds: number[]; - } - - /** 发送优惠券 */ - export interface SendCoupon { - /** 优惠券编号 */ - couponId: number; - /** 用户编号数组 */ - userIds: number[]; - } -} - -/** 删除优惠劵 */ -export function deleteCoupon(id: number) { - return requestClient.delete(`/promotion/coupon/delete?id=${id}`); -} - -/** 获得优惠劵分页 */ -export function getCouponPage(params: PageParam) { - return requestClient.get>( - '/promotion/coupon/page', - { params }, - ); -} - -/** 发送优惠券 */ -export function sendCoupon(data: MallCouponApi.SendCoupon) { - return requestClient.post('/promotion/coupon/send', data); -} diff --git a/apps/web-antd/src/api/mall/promotion/coupon/couponTemplate.ts b/apps/web-antd/src/api/mall/promotion/coupon/couponTemplate.ts deleted file mode 100644 index c96ce635..00000000 --- a/apps/web-antd/src/api/mall/promotion/coupon/couponTemplate.ts +++ /dev/null @@ -1,112 +0,0 @@ -import type { PageParam, PageResult } from '../../../types'; - -import { requestClient } from '#/api/request'; - -export namespace MallCouponTemplateApi { - /** 优惠券模板 */ - export interface CouponTemplate { - /** 模板编号 */ - id: number; - /** 模板名称 */ - name: string; - /** 状态 */ - status: number; - /** 发放数量 */ - totalCount: number; - /** 每人限领个数 */ - takeLimitCount: number; - /** 领取方式 */ - takeType: number; - /** 使用门槛 */ - usePrice: number; - /** 商品范围 */ - productScope: number; - /** 商品范围值 */ - productScopeValues: number[]; - /** 有效期类型 */ - validityType: number; - /** 固定日期-生效开始时间 */ - validStartTime: Date; - /** 固定日期-生效结束时间 */ - validEndTime: Date; - /** 领取日期-开始天数 */ - fixedStartTerm: number; - /** 领取日期-结束天数 */ - fixedEndTerm: number; - /** 优惠类型 */ - discountType: number; - /** 折扣百分比 */ - discountPercent: number; - /** 优惠金额 */ - discountPrice: number; - /** 折扣上限 */ - discountLimitPrice: number; - /** 已领取数量 */ - takeCount: number; - /** 已使用数量 */ - useCount: number; - } - - /** 优惠券模板状态更新 */ - export interface StatusUpdate { - /** 模板编号 */ - id: number; - /** 状态 */ - status: 0 | 1; - } -} - -/** 创建优惠劵模板 */ -export function createCouponTemplate( - data: MallCouponTemplateApi.CouponTemplate, -) { - return requestClient.post('/promotion/coupon-template/create', data); -} - -/** 更新优惠劵模板 */ -export function updateCouponTemplate( - data: MallCouponTemplateApi.CouponTemplate, -) { - return requestClient.put('/promotion/coupon-template/update', data); -} - -/** 更新优惠劵模板的状态 */ -export function updateCouponTemplateStatus(id: number, status: 0 | 1) { - const data: MallCouponTemplateApi.StatusUpdate = { id, status }; - return requestClient.put('/promotion/coupon-template/update-status', data); -} - -/** 删除优惠劵模板 */ -export function deleteCouponTemplate(id: number) { - return requestClient.delete(`/promotion/coupon-template/delete?id=${id}`); -} - -/** 获得优惠劵模板 */ -export function getCouponTemplate(id: number) { - return requestClient.get( - `/promotion/coupon-template/get?id=${id}`, - ); -} - -/** 获得优惠劵模板分页 */ -export function getCouponTemplatePage(params: PageParam) { - return requestClient.get>( - '/promotion/coupon-template/page', - { params }, - ); -} - -/** 获得优惠劵模板列表 */ -export function getCouponTemplateList(ids: number[]) { - return requestClient.get( - `/promotion/coupon-template/list?ids=${ids}`, - ); -} - -/** 导出优惠劵模板 Excel */ -export function exportCouponTemplateExcel(params: PageParam) { - return requestClient.get('/promotion/coupon-template/export-excel', { - params, - responseType: 'blob', - }); -} diff --git a/apps/web-antd/src/api/mall/promotion/discount/discountActivity.ts b/apps/web-antd/src/api/mall/promotion/discount/discountActivity.ts deleted file mode 100644 index 75fd5568..00000000 --- a/apps/web-antd/src/api/mall/promotion/discount/discountActivity.ts +++ /dev/null @@ -1,91 +0,0 @@ -import type { PageParam, PageResult } from '../../../types'; - -import type { MallSpuApi } from '#/api/mall/product/spu'; - -import { requestClient } from '#/api/request'; - -export namespace MallDiscountActivityApi { - /** 限时折扣相关属性 */ - export interface DiscountProduct { - /** 商品 SPU 编号 */ - spuId: number; - /** 商品 SKU 编号 */ - skuId: number; - /** 折扣类型 */ - discountType: number; - /** 折扣百分比 */ - discountPercent: number; - /** 折扣价格 */ - discountPrice: number; - } - - /** 限时折扣活动 */ - export interface DiscountActivity { - /** 活动编号 */ - id?: number; - /** 商品 SPU 编号 */ - spuId?: number; - /** 活动名称 */ - name?: string; - /** 状态 */ - status?: number; - /** 备注 */ - remark?: string; - /** 开始时间 */ - startTime?: Date; - /** 结束时间 */ - endTime?: Date; - /** 商品列表 */ - products?: DiscountProduct[]; - } - - /** 扩展 SKU 配置 */ - export type SkuExtension = { - /** 限时折扣配置 */ - productConfig: DiscountProduct; - } & MallSpuApi.Sku; - - /** 扩展 SPU 配置 */ - export interface SpuExtension extends MallSpuApi.Spu { - /** SKU 列表 */ - skus: SkuExtension[]; - } -} - -/** 查询限时折扣活动列表 */ -export function getDiscountActivityPage(params: PageParam) { - return requestClient.get< - PageResult - >('/promotion/discount-activity/page', { params }); -} - -/** 查询限时折扣活动详情 */ -export function getDiscountActivity(id: number) { - return requestClient.get( - `/promotion/discount-activity/get?id=${id}`, - ); -} - -/** 新增限时折扣活动 */ -export function createDiscountActivity( - data: MallDiscountActivityApi.DiscountActivity, -) { - return requestClient.post('/promotion/discount-activity/create', data); -} - -/** 修改限时折扣活动 */ -export function updateDiscountActivity( - data: MallDiscountActivityApi.DiscountActivity, -) { - return requestClient.put('/promotion/discount-activity/update', data); -} - -/** 关闭限时折扣活动 */ -export function closeDiscountActivity(id: number) { - return requestClient.put(`/promotion/discount-activity/close?id=${id}`); -} - -/** 删除限时折扣活动 */ -export function deleteDiscountActivity(id: number) { - return requestClient.delete(`/promotion/discount-activity/delete?id=${id}`); -} diff --git a/apps/web-antd/src/api/mall/promotion/diy/page.ts b/apps/web-antd/src/api/mall/promotion/diy/page.ts deleted file mode 100644 index a781505b..00000000 --- a/apps/web-antd/src/api/mall/promotion/diy/page.ts +++ /dev/null @@ -1,61 +0,0 @@ -import type { PageParam, PageResult } from '../../../types'; - -import { requestClient } from '#/api/request'; - -export namespace MallDiyPageApi { - /** 装修页面 */ - export interface DiyPage { - /** 页面编号 */ - id?: number; - /** 模板编号 */ - templateId?: number; - /** 页面名称 */ - name: string; - /** 备注 */ - remark: string; - /** 预览图片地址数组 */ - previewPicUrls: string[]; - /** 页面属性 */ - property: string; - } -} - -/** 查询装修页面列表 */ -export function getDiyPagePage(params: PageParam) { - return requestClient.get>( - '/promotion/diy-page/page', - { params }, - ); -} - -/** 查询装修页面详情 */ -export function getDiyPage(id: number) { - return requestClient.get( - `/promotion/diy-page/get?id=${id}`, - ); -} - -/** 新增装修页面 */ -export function createDiyPage(data: MallDiyPageApi.DiyPage) { - return requestClient.post('/promotion/diy-page/create', data); -} - -/** 修改装修页面 */ -export function updateDiyPage(data: MallDiyPageApi.DiyPage) { - return requestClient.put('/promotion/diy-page/update', data); -} - -/** 删除装修页面 */ -export function deleteDiyPage(id: number) { - return requestClient.delete(`/promotion/diy-page/delete?id=${id}`); -} - -/** 获得装修页面属性 */ -export function getDiyPageProperty(id: number) { - return requestClient.get(`/promotion/diy-page/get-property?id=${id}`); -} - -/** 更新装修页面属性 */ -export function updateDiyPageProperty(data: MallDiyPageApi.DiyPage) { - return requestClient.put('/promotion/diy-page/update-property', data); -} diff --git a/apps/web-antd/src/api/mall/promotion/diy/template.ts b/apps/web-antd/src/api/mall/promotion/diy/template.ts deleted file mode 100644 index 3c155463..00000000 --- a/apps/web-antd/src/api/mall/promotion/diy/template.ts +++ /dev/null @@ -1,80 +0,0 @@ -import type { PageParam, PageResult } from '../../../types'; - -import type { MallDiyPageApi } from './page'; - -import { requestClient } from '#/api/request'; - -export namespace MallDiyTemplateApi { - /** 装修模板 */ - export interface DiyTemplate { - /** 模板编号 */ - id?: number; - /** 模板名称 */ - name: string; - /** 是否使用 */ - used: boolean; - /** 使用时间 */ - usedTime?: Date; - /** 备注 */ - remark: string; - /** 预览图片地址数组 */ - previewPicUrls: string[]; - /** 模板属性 */ - property: string; - } - - /** 装修模板属性(包含页面列表) */ - export interface DiyTemplateProperty extends DiyTemplate { - /** 页面列表 */ - pages: MallDiyPageApi.DiyPage[]; - } -} - -/** 查询装修模板列表 */ -export function getDiyTemplatePage(params: PageParam) { - return requestClient.get>( - '/promotion/diy-template/page', - { params }, - ); -} - -/** 查询装修模板详情 */ -export function getDiyTemplate(id: number) { - return requestClient.get( - `/promotion/diy-template/get?id=${id}`, - ); -} - -/** 新增装修模板 */ -export function createDiyTemplate(data: MallDiyTemplateApi.DiyTemplate) { - return requestClient.post('/promotion/diy-template/create', data); -} - -/** 修改装修模板 */ -export function updateDiyTemplate(data: MallDiyTemplateApi.DiyTemplate) { - return requestClient.put('/promotion/diy-template/update', data); -} - -/** 删除装修模板 */ -export function deleteDiyTemplate(id: number) { - return requestClient.delete(`/promotion/diy-template/delete?id=${id}`); -} - -/** 使用装修模板 */ -export function useDiyTemplate(id: number) { - return requestClient.put(`/promotion/diy-template/use?id=${id}`); -} - -/** 获得装修模板属性 */ -export function getDiyTemplateProperty(id: number) { - return requestClient.get( - `/promotion/diy-template/get-property?id=${id}`, - ); -} - -/** 更新装修模板属性 */ -export function updateDiyTemplateProperty( - data: MallDiyTemplateApi.DiyTemplate, -) { - return requestClient.put('/promotion/diy-template/update-property', data); -} diff --git a/apps/web-antd/src/api/mall/promotion/kefu/conversation/index.ts b/apps/web-antd/src/api/mall/promotion/kefu/conversation/index.ts deleted file mode 100644 index c2cdaf25..00000000 --- a/apps/web-antd/src/api/mall/promotion/kefu/conversation/index.ts +++ /dev/null @@ -1,70 +0,0 @@ -import type { PageResult } from '@vben/request'; - -import { requestClient } from '#/api/request'; - -export namespace MallKefuConversationApi { - /** 客服会话 */ - export interface Conversation { - /** 编号 */ - id: number; - /** 会话所属用户 */ - userId: number; - /** 会话所属用户头像 */ - userAvatar: string; - /** 会话所属用户昵称 */ - userNickname: string; - /** 最后聊天时间 */ - lastMessageTime: Date; - /** 最后聊天内容 */ - lastMessageContent: string; - /** 最后发送的消息类型 */ - lastMessageContentType: number; - /** 管理端置顶 */ - adminPinned: boolean; - /** 用户是否可见 */ - userDeleted: boolean; - /** 管理员是否可见 */ - adminDeleted: boolean; - /** 管理员未读消息数 */ - adminUnreadMessageCount: number; - /** 创建时间 */ - createTime?: string; - } - - /** 会话置顶请求 */ - export interface ConversationPinnedUpdate { - /** 会话编号 */ - id: number; - /** 是否置顶 */ - pinned: boolean; - } -} - -/** 获得客服会话列表 */ -export function getConversationList() { - return requestClient.get>( - '/promotion/kefu-conversation/list', - ); -} - -/** 获得客服会话 */ -export function getConversation(id: number) { - return requestClient.get( - `/promotion/kefu-conversation/get?id=${id}`, - ); -} - -/** 客服会话置顶 */ -export function updateConversationPinned( - data: MallKefuConversationApi.ConversationPinnedUpdate, -) { - return requestClient.put( - '/promotion/kefu-conversation/update-conversation-pinned', - data, - ); -} - -/** 删除客服会话 */ -export function deleteConversation(id: number) { - return requestClient.delete(`/promotion/kefu-conversation/delete?id=${id}`); -} diff --git a/apps/web-antd/src/api/mall/promotion/kefu/message/index.ts b/apps/web-antd/src/api/mall/promotion/kefu/message/index.ts deleted file mode 100644 index 02db10cb..00000000 --- a/apps/web-antd/src/api/mall/promotion/kefu/message/index.ts +++ /dev/null @@ -1,67 +0,0 @@ -import type { PageParam, PageResult } from '../../../types'; - -import { requestClient } from '#/api/request'; - -export namespace MallKefuMessageApi { - /** 客服消息 */ - export interface Message { - /** 编号 */ - id: number; - /** 会话编号 */ - conversationId: number; - /** 发送人编号 */ - senderId: number; - /** 发送人头像 */ - senderAvatar: string; - /** 发送人类型 */ - senderType: number; - /** 接收人编号 */ - receiverId: number; - /** 接收人类型 */ - receiverType: number; - /** 消息类型 */ - contentType: number; - /** 消息内容 */ - content: string; - /** 是否已读 */ - readStatus: boolean; - /** 创建时间 */ - createTime: Date; - } - - /** 发送消息请求 */ - export interface MessageSend { - /** 会话编号 */ - conversationId: number; - /** 消息类型 */ - contentType: number; - /** 消息内容 */ - content: string; - } - - /** 消息列表查询参数 */ - export interface MessageQuery extends PageParam { - /** 会话编号 */ - conversationId: number; - } -} - -/** 发送客服消息 */ -export function sendKeFuMessage(data: MallKefuMessageApi.MessageSend) { - return requestClient.post('/promotion/kefu-message/send', data); -} - -/** 更新客服消息已读状态 */ -export function updateKeFuMessageReadStatus(conversationId: number) { - return requestClient.put( - `/promotion/kefu-message/update-read-status?conversationId=${conversationId}`, - ); -} - -/** 获得消息列表(流式加载) */ -export function getKeFuMessageList(params: MallKefuMessageApi.MessageQuery) { - return requestClient.get>( - '/promotion/kefu-message/list', - { params }, - ); -} diff --git a/apps/web-antd/src/api/mall/promotion/point/index.ts b/apps/web-antd/src/api/mall/promotion/point/index.ts deleted file mode 100644 index 10f493e5..00000000 --- a/apps/web-antd/src/api/mall/promotion/point/index.ts +++ /dev/null @@ -1,127 +0,0 @@ -import type { PageParam, PageResult } from '../../../types'; - -import type { MallSpuApi } from '#/api/mall/product/spu'; - -import { requestClient } from '#/api/request'; - -export namespace MallPointActivityApi { - /** 积分商城商品 */ - export interface PointProduct { - /** 积分商城商品编号 */ - id?: number; - /** 积分商城活动 id */ - activityId?: number; - /** 商品 SPU 编号 */ - spuId?: number; - /** 商品 SKU 编号 */ - skuId: number; - /** 可兑换数量 */ - count: number; - /** 兑换积分 */ - point: number; - /** 兑换金额,单位:分 */ - price: number; - /** 积分商城商品库存 */ - stock: number; - /** 积分商城商品状态 */ - activityStatus?: number; - } - - /** 积分商城活动 */ - export interface PointActivity { - /** 积分商城活动编号 */ - id: number; - /** 积分商城活动商品 */ - spuId: number; - /** 活动状态 */ - status: number; - /** 积分商城活动库存 */ - stock: number; - /** 积分商城活动总库存 */ - totalStock: number; - /** 备注 */ - remark?: string; - /** 排序 */ - sort: number; - /** 创建时间 */ - createTime: string; - /** 积分商城商品 */ - products: PointProduct[]; - /** 商品名称 */ - spuName: string; - /** 商品主图 */ - picUrl: string; - /** 商品市场价,单位:分 */ - marketPrice: number; - /** 兑换积分 */ - point: number; - /** 兑换金额,单位:分 */ - price: number; - } - - /** 扩展 SKU 配置 */ - export type SkuExtension = { - /** 积分商城商品配置 */ - productConfig: PointProduct; - } & MallSpuApi.Sku; - - /** 扩展 SPU 配置 */ - export interface SpuExtension extends MallSpuApi.Spu { - /** SKU 列表 */ - skus: SkuExtension[]; - } - - /** 扩展 SPU 配置(带积分信息) */ - export interface SpuExtensionWithPoint extends MallSpuApi.Spu { - /** 积分商城活动库存 */ - pointStock: number; - /** 积分商城活动总库存 */ - pointTotalStock: number; - /** 兑换积分 */ - point: number; - /** 兑换金额,单位:分 */ - pointPrice: number; - } -} - -/** 查询积分商城活动分页 */ -export function getPointActivityPage(params: PageParam) { - return requestClient.get>( - '/promotion/point-activity/page', - { params }, - ); -} - -/** 查询积分商城活动详情 */ -export function getPointActivity(id: number) { - return requestClient.get( - `/promotion/point-activity/get?id=${id}`, - ); -} - -/** 查询积分商城活动列表,基于活动编号数组 */ -export function getPointActivityListByIds(ids: number[]) { - return requestClient.get( - `/promotion/point-activity/list-by-ids?ids=${ids}`, - ); -} - -/** 新增积分商城活动 */ -export function createPointActivity(data: MallPointActivityApi.PointActivity) { - return requestClient.post('/promotion/point-activity/create', data); -} - -/** 修改积分商城活动 */ -export function updatePointActivity(data: MallPointActivityApi.PointActivity) { - return requestClient.put('/promotion/point-activity/update', data); -} - -/** 删除积分商城活动 */ -export function deletePointActivity(id: number) { - return requestClient.delete(`/promotion/point-activity/delete?id=${id}`); -} - -/** 关闭积分商城活动 */ -export function closePointActivity(id: number) { - return requestClient.put(`/promotion/point-activity/close?id=${id}`); -} diff --git a/apps/web-antd/src/api/mall/promotion/reward/rewardActivity.ts b/apps/web-antd/src/api/mall/promotion/reward/rewardActivity.ts deleted file mode 100644 index e3a7c7aa..00000000 --- a/apps/web-antd/src/api/mall/promotion/reward/rewardActivity.ts +++ /dev/null @@ -1,88 +0,0 @@ -import type { PageParam, PageResult } from '../../../types'; - -import { requestClient } from '#/api/request'; - -export namespace MallRewardActivityApi { - /** 优惠规则 */ - export interface RewardRule { - /** 满足金额 */ - limit?: number; - /** 优惠金额 */ - discountPrice?: number; - /** 是否包邮 */ - freeDelivery?: boolean; - /** 赠送积分 */ - point: number; - /** 赠送优惠券数量 */ - giveCouponTemplateCounts?: { - [key: number]: number; - }; - } - - /** 满减送活动 */ - export interface RewardActivity { - /** 活动编号 */ - id?: number; - /** 活动名称 */ - name?: string; - /** 开始时间 */ - startTime?: Date; - /** 结束时间 */ - endTime?: Date; - /** 开始和结束时间(仅前端使用) */ - startAndEndTime?: Date[]; - /** 备注 */ - remark?: string; - /** 条件类型 */ - conditionType?: number; - /** 商品范围 */ - productScope?: number; - /** 优惠规则列表 */ - rules: RewardRule[]; - /** 商品范围值(仅表单使用):值为品类编号列表、商品编号列表 */ - productScopeValues?: number[]; - /** 商品分类编号列表(仅表单使用) */ - productCategoryIds?: number[]; - /** 商品 SPU 编号列表(仅表单使用) */ - productSpuIds?: number[]; - } -} - -/** 新增满减送活动 */ -export function createRewardActivity( - data: MallRewardActivityApi.RewardActivity, -) { - return requestClient.post('/promotion/reward-activity/create', data); -} - -/** 更新满减送活动 */ -export function updateRewardActivity( - data: MallRewardActivityApi.RewardActivity, -) { - return requestClient.put('/promotion/reward-activity/update', data); -} - -/** 查询满减送活动列表 */ -export function getRewardActivityPage(params: PageParam) { - return requestClient.get>( - '/promotion/reward-activity/page', - { params }, - ); -} - -/** 查询满减送活动详情 */ -export function getReward(id: number) { - return requestClient.get( - `/promotion/reward-activity/get?id=${id}`, - ); -} - -/** 删除满减送活动 */ -export function deleteRewardActivity(id: number) { - return requestClient.delete(`/promotion/reward-activity/delete?id=${id}`); -} - -/** 关闭满减送活动 */ -export function closeRewardActivity(id: number) { - return requestClient.put(`/promotion/reward-activity/close?id=${id}`); -} diff --git a/apps/web-antd/src/api/mall/promotion/seckill/seckillActivity.ts b/apps/web-antd/src/api/mall/promotion/seckill/seckillActivity.ts deleted file mode 100644 index 6e82bf7d..00000000 --- a/apps/web-antd/src/api/mall/promotion/seckill/seckillActivity.ts +++ /dev/null @@ -1,117 +0,0 @@ -import type { PageParam, PageResult } from '../../../types'; - -import type { MallSpuApi } from '#/api/mall/product/spu'; - -import { requestClient } from '#/api/request'; - -export namespace MallSeckillActivityApi { - /** 秒杀商品 */ - export interface SeckillProduct { - /** 商品 SKU 编号 */ - skuId: number; - /** 商品 SPU 编号 */ - spuId: number; - /** 秒杀价格 */ - seckillPrice: number; - /** 秒杀库存 */ - stock: number; - } - - /** 秒杀活动 */ - export interface SeckillActivity { - /** 活动编号 */ - id?: number; - /** 商品 SPU 编号 */ - spuId?: number; - /** 活动名称 */ - name?: string; - /** 活动状态 */ - status?: number; - /** 备注 */ - remark?: string; - /** 开始时间 */ - startTime?: Date; - /** 结束时间 */ - endTime?: Date; - /** 排序 */ - sort?: number; - /** 配置编号 */ - configIds?: string; - /** 订单数量 */ - orderCount?: number; - /** 用户数量 */ - userCount?: number; - /** 总金额 */ - totalPrice?: number; - /** 总限购数量 */ - totalLimitCount?: number; - /** 单次限购数量 */ - singleLimitCount?: number; - /** 秒杀库存 */ - stock?: number; - /** 秒杀总库存 */ - totalStock?: number; - /** 秒杀价格 */ - seckillPrice?: number; - /** 秒杀商品列表 */ - products?: SeckillProduct[]; - } - - /** 扩展 SKU 配置 */ - export type SkuExtension = { - /** 秒杀商品配置 */ - productConfig: SeckillProduct; - } & MallSpuApi.Sku; - - /** 扩展 SPU 配置 */ - export interface SpuExtension extends MallSpuApi.Spu { - /** SKU 列表 */ - skus: SkuExtension[]; - } -} - -/** 查询秒杀活动列表 */ -export function getSeckillActivityPage(params: PageParam) { - return requestClient.get>( - '/promotion/seckill-activity/page', - { params }, - ); -} - -/** 查询秒杀活动列表,基于活动编号数组 */ -export function getSeckillActivityListByIds(ids: number[]) { - return requestClient.get( - `/promotion/seckill-activity/list-by-ids?ids=${ids}`, - ); -} - -/** 查询秒杀活动详情 */ -export function getSeckillActivity(id: number) { - return requestClient.get( - `/promotion/seckill-activity/get?id=${id}`, - ); -} - -/** 新增秒杀活动 */ -export function createSeckillActivity( - data: MallSeckillActivityApi.SeckillActivity, -) { - return requestClient.post('/promotion/seckill-activity/create', data); -} - -/** 修改秒杀活动 */ -export function updateSeckillActivity( - data: MallSeckillActivityApi.SeckillActivity, -) { - return requestClient.put('/promotion/seckill-activity/update', data); -} - -/** 关闭秒杀活动 */ -export function closeSeckillActivity(id: number) { - return requestClient.put(`/promotion/seckill-activity/close?id=${id}`); -} - -/** 删除秒杀活动 */ -export function deleteSeckillActivity(id: number) { - return requestClient.delete(`/promotion/seckill-activity/delete?id=${id}`); -} diff --git a/apps/web-antd/src/api/mall/promotion/seckill/seckillConfig.ts b/apps/web-antd/src/api/mall/promotion/seckill/seckillConfig.ts deleted file mode 100644 index 23b6c1d9..00000000 --- a/apps/web-antd/src/api/mall/promotion/seckill/seckillConfig.ts +++ /dev/null @@ -1,74 +0,0 @@ -import type { PageParam, PageResult } from '../../../types'; - -import { requestClient } from '#/api/request'; - -export namespace MallSeckillConfigApi { - /** 秒杀时段 */ - export interface SeckillConfig { - /** 编号 */ - id: number; - /** 秒杀时段名称 */ - name: string; - /** 开始时间点 */ - startTime: string; - /** 结束时间点 */ - endTime: string; - /** 秒杀轮播图 */ - sliderPicUrls: string[]; - /** 活动状态 */ - status: number; - } - - /** 时段配置状态更新 */ - export interface StatusUpdate { - /** 编号 */ - id: number; - /** 状态 */ - status: number; - } -} - -/** 查询秒杀时段分页 */ -export function getSeckillConfigPage(params: PageParam) { - return requestClient.get>( - '/promotion/seckill-config/page', - { params }, - ); -} - -/** 查询秒杀时段列表 */ -export function getSimpleSeckillConfigList() { - return requestClient.get( - '/promotion/seckill-config/list', - ); -} - -/** 查询秒杀时段详情 */ -export function getSeckillConfig(id: number) { - return requestClient.get( - `/promotion/seckill-config/get?id=${id}`, - ); -} - -/** 新增秒杀时段 */ -export function createSeckillConfig(data: MallSeckillConfigApi.SeckillConfig) { - return requestClient.post('/promotion/seckill-config/create', data); -} - -/** 修改秒杀时段 */ -export function updateSeckillConfig(data: MallSeckillConfigApi.SeckillConfig) { - return requestClient.put('/promotion/seckill-config/update', data); -} - -/** 删除秒杀时段 */ -export function deleteSeckillConfig(id: number) { - return requestClient.delete(`/promotion/seckill-config/delete?id=${id}`); -} - -/** 修改时段配置状态 */ -export function updateSeckillConfigStatus(id: number, status: number) { - return requestClient.put('/promotion/seckill-config/update-status', { - id, - status, - }); -} diff --git a/apps/web-antd/src/api/mall/statistics/common.ts b/apps/web-antd/src/api/mall/statistics/common.ts deleted file mode 100644 index bb474b5c..00000000 --- a/apps/web-antd/src/api/mall/statistics/common.ts +++ /dev/null @@ -1,5 +0,0 @@ -/** 数据对照 Response */ -export interface MallDataComparisonResp { - value: T; - reference: T; -} diff --git a/apps/web-antd/src/api/mall/statistics/member.ts b/apps/web-antd/src/api/mall/statistics/member.ts deleted file mode 100644 index fb7a6b01..00000000 --- a/apps/web-antd/src/api/mall/statistics/member.ts +++ /dev/null @@ -1,131 +0,0 @@ -import type { MallDataComparisonResp } from './common'; - -import { formatDate } from '@vben/utils'; - -import { requestClient } from '#/api/request'; - -export namespace MallMemberStatisticsApi { - /** 会员分析 Request */ - export interface AnalyseReq { - times: Date[]; - } - - /** 会员分析对照数据 Response */ - export interface AnalyseComparison { - registerUserCount: number; - visitUserCount: number; - rechargeUserCount: number; - } - - /** 会员分析 Response */ - export interface Analyse { - visitUserCount: number; - orderUserCount: number; - payUserCount: number; - atv: number; - comparison: MallDataComparisonResp; - } - - /** 会员地区统计 Response */ - export interface AreaStatistics { - areaId: number; - areaName: string; - userCount: number; - orderCreateUserCount: number; - orderPayUserCount: number; - orderPayPrice: number; - } - - /** 会员性别统计 Response */ - export interface SexStatistics { - sex: number; - userCount: number; - } - - /** 会员统计 Response */ - export interface Summary { - userCount: number; - rechargeUserCount: number; - rechargePrice: number; - expensePrice: number; - } - - /** 会员终端统计 Response */ - export interface TerminalStatistics { - terminal: number; - userCount: number; - } - - /** 会员数量统计 Response */ - export interface Count { - /** 用户访问量 */ - visitUserCount: string; - /** 注册用户数量 */ - registerUserCount: number; - } - - /** 会员注册数量 Response */ - export interface RegisterCount { - date: string; - count: number; - } -} - -/** 查询会员统计 */ -export function getMemberSummary() { - return requestClient.get( - '/statistics/member/summary', - ); -} - -/** 查询会员分析数据 */ -export function getMemberAnalyse(params: MallMemberStatisticsApi.AnalyseReq) { - return requestClient.get( - '/statistics/member/analyse', - { - params: { - times: [formatDate(params.times[0]), formatDate(params.times[1])], - }, - }, - ); -} - -/** 按照省份,查询会员统计列表 */ -export function getMemberAreaStatisticsList() { - return requestClient.get( - '/statistics/member/area-statistics-list', - ); -} - -/** 按照性别,查询会员统计列表 */ -export function getMemberSexStatisticsList() { - return requestClient.get( - '/statistics/member/sex-statistics-list', - ); -} - -/** 按照终端,查询会员统计列表 */ -export function getMemberTerminalStatisticsList() { - return requestClient.get( - '/statistics/member/terminal-statistics-list', - ); -} - -/** 获得用户数量量对照 */ -export function getUserCountComparison() { - return requestClient.get< - MallDataComparisonResp - >('/statistics/member/user-count-comparison'); -} - -/** 获得会员注册数量列表 */ -export function getMemberRegisterCountList(beginTime: Date, endTime: Date) { - return requestClient.get( - '/statistics/member/register-count-list', - { - params: { - times: [formatDate(beginTime), formatDate(endTime)], - }, - }, - ); -} diff --git a/apps/web-antd/src/api/mall/statistics/pay.ts b/apps/web-antd/src/api/mall/statistics/pay.ts deleted file mode 100644 index d78ea034..00000000 --- a/apps/web-antd/src/api/mall/statistics/pay.ts +++ /dev/null @@ -1,16 +0,0 @@ -import { requestClient } from '#/api/request'; - -export namespace MallPayStatisticsApi { - /** 支付统计 */ - export interface PaySummaryResp { - /** 充值金额,单位分 */ - rechargePrice: number; - } -} - -/** 获取钱包充值金额 */ -export function getWalletRechargePrice() { - return requestClient.get( - '/statistics/pay/summary', - ); -} diff --git a/apps/web-antd/src/api/mall/statistics/product.ts b/apps/web-antd/src/api/mall/statistics/product.ts deleted file mode 100644 index ee9a800e..00000000 --- a/apps/web-antd/src/api/mall/statistics/product.ts +++ /dev/null @@ -1,68 +0,0 @@ -import type { PageParam, PageResult } from '../../../types'; - -import type { MallDataComparisonResp } from './common'; - -import { requestClient } from '#/api/request'; - -export namespace MallProductStatisticsApi { - /** 商品统计数据 */ - export interface ProductStatistics { - /** 编号 */ - id: number; - /** 统计日期 */ - day: string; - /** 商品 SPU 编号 */ - spuId: number; - /** 商品 SPU 名称 */ - spuName: string; - /** 商品 SPU 图片 */ - spuPicUrl: string; - /** 浏览次数 */ - browseCount: number; - /** 浏览人数 */ - browseUserCount: number; - /** 收藏次数 */ - favoriteCount: number; - /** 加购次数 */ - cartCount: number; - /** 下单次数 */ - orderCount: number; - /** 支付次数 */ - orderPayCount: number; - /** 支付金额 */ - orderPayPrice: number; - /** 售后次数 */ - afterSaleCount: number; - /** 退款金额 */ - afterSaleRefundPrice: number; - /** 浏览转化率 */ - browseConvertPercent: number; - } -} - -/** 获得商品统计分析 */ -export function getProductStatisticsAnalyse(params: PageParam) { - return requestClient.get< - MallDataComparisonResp - >('/statistics/product/analyse', { params }); -} - -/** 获得商品状况明细 */ -export function getProductStatisticsList(params: PageParam) { - return requestClient.get( - '/statistics/product/list', - { params }, - ); -} - -/** 导出获得商品状况明细 Excel */ -export function exportProductStatisticsExcel(params: PageParam) { - return requestClient.download('/statistics/product/export-excel', { params }); -} - -/** 获得商品排行榜分页 */ -export function getProductStatisticsRankPage(params: PageParam) { - return requestClient.get< - PageResult - >('/statistics/product/rank-page', { params }); -} diff --git a/apps/web-antd/src/api/mall/statistics/trade.ts b/apps/web-antd/src/api/mall/statistics/trade.ts deleted file mode 100644 index 1f866c63..00000000 --- a/apps/web-antd/src/api/mall/statistics/trade.ts +++ /dev/null @@ -1,135 +0,0 @@ -import type { MallDataComparisonResp } from './common'; - -import { formatDate } from '@vben/utils'; - -import { requestClient } from '#/api/request'; - -export namespace MallTradeStatisticsApi { - /** 交易统计 Response */ - export interface TradeSummary { - yesterdayOrderCount: number; - monthOrderCount: number; - yesterdayPayPrice: number; - monthPayPrice: number; - } - - /** 交易状况 Request */ - export interface TradeTrendReq { - times: [Date, Date]; - } - - /** 交易状况统计 Response */ - export interface TradeTrendSummary { - time: string; - turnoverPrice: number; - orderPayPrice: number; - rechargePrice: number; - expensePrice: number; - walletPayPrice: number; - brokerageSettlementPrice: number; - afterSaleRefundPrice: number; - } - - /** 交易订单数量 Response */ - export interface TradeOrderCount { - /** 待发货 */ - undelivered?: number; - /** 待核销 */ - pickUp?: number; - /** 退款中 */ - afterSaleApply?: number; - /** 提现待审核 */ - auditingWithdraw?: number; - } - - /** 交易订单统计 Response */ - export interface TradeOrderSummary { - /** 支付订单商品数 */ - orderPayCount?: number; - /** 总支付金额,单位:分 */ - orderPayPrice?: number; - } - - /** 订单量趋势统计 Response */ - export interface TradeOrderTrend { - /** 日期 */ - date: string; - /** 订单数量 */ - orderPayCount: number; - /** 订单支付金额 */ - orderPayPrice: number; - } -} - -/** 时间参数需要格式化, 确保接口能识别 */ -const formatDateParam = (params: MallTradeStatisticsApi.TradeTrendReq) => { - return { - times: [formatDate(params.times[0]), formatDate(params.times[1])], - } as MallTradeStatisticsApi.TradeTrendReq; -}; - -/** 查询交易统计 */ -export function getTradeStatisticsSummary() { - return requestClient.get< - MallDataComparisonResp - >('/statistics/trade/summary'); -} - -/** 获得交易状况统计 */ -export function getTradeStatisticsAnalyse( - params: MallTradeStatisticsApi.TradeTrendReq, -) { - return requestClient.get< - MallDataComparisonResp - >('/statistics/trade/analyse', { params: formatDateParam(params) }); -} - -/** 获得交易状况明细 */ -export function getTradeStatisticsList( - params: MallTradeStatisticsApi.TradeTrendReq, -) { - return requestClient.get( - '/statistics/trade/list', - { params: formatDateParam(params) }, - ); -} - -/** 导出交易状况明细 */ -export function exportTradeStatisticsExcel( - params: MallTradeStatisticsApi.TradeTrendReq, -) { - return requestClient.download('/statistics/trade/export-excel', { - params: formatDateParam(params), - }); -} - -/** 获得交易订单数量 */ -export function getOrderCount() { - return requestClient.get( - '/statistics/trade/order-count', - ); -} - -/** 获得交易订单数量对照 */ -export function getOrderComparison() { - return requestClient.get< - MallDataComparisonResp - >('/statistics/trade/order-comparison'); -} - -/** 获得订单量趋势统计 */ -export function getOrderCountTrendComparison( - type: number, - beginTime: Date, - endTime: Date, -) { - return requestClient.get< - MallDataComparisonResp[] - >('/statistics/trade/order-count-trend', { - params: { - type, - beginTime: formatDate(beginTime), - endTime: formatDate(endTime), - }, - }); -} diff --git a/apps/web-antd/src/api/mall/trade/afterSale/index.ts b/apps/web-antd/src/api/mall/trade/afterSale/index.ts deleted file mode 100644 index 9882ef51..00000000 --- a/apps/web-antd/src/api/mall/trade/afterSale/index.ts +++ /dev/null @@ -1,127 +0,0 @@ -import type { PageParam, PageResult } from '../../../types'; - -import { requestClient } from '#/api/request'; - -export namespace MallAfterSaleApi { - /** 商品属性 */ - export interface ProductProperty { - /** 属性的编号 */ - propertyId?: null | number; - /** 属性的名称 */ - propertyName?: string; - /** 属性值的编号 */ - valueId?: null | number; - /** 属性值的名称 */ - valueName?: string; - } - - /** 交易售后 */ - export interface AfterSale { - /** 售后编号,主键自增 */ - id?: null | number; - /** 售后单号 */ - no?: string; - /** 退款状态 */ - status?: null | number; - /** 售后方式 */ - way?: null | number; - /** 售后类型 */ - type?: null | number; - /** 用户编号 */ - userId?: null | number; - /** 申请原因 */ - applyReason?: string; - /** 补充描述 */ - applyDescription?: string; - /** 补充凭证图片 */ - applyPicUrls?: string[]; - /** 交易订单编号 */ - orderId?: null | number; - /** 订单流水号 */ - orderNo?: string; - /** 交易订单项编号 */ - orderItemId?: null | number; - /** 商品 SPU 编号 */ - spuId?: null | number; - /** 商品 SPU 名称 */ - spuName?: string; - /** 商品 SKU 编号 */ - skuId?: null | number; - /** 属性数组 */ - properties?: ProductProperty[]; - /** 商品图片 */ - picUrl?: string; - /** 退货商品数量 */ - count?: null | number; - /** 审批时间 */ - auditTime?: Date; - /** 审批人 */ - auditUserId?: null | number; - /** 审批备注 */ - auditReason?: string; - /** 退款金额,单位:分 */ - refundPrice?: null | number; - /** 支付退款编号 */ - payRefundId?: null | number; - /** 退款时间 */ - refundTime?: Date; - /** 退货物流公司编号 */ - logisticsId?: null | number; - /** 退货物流单号 */ - logisticsNo?: string; - /** 退货时间 */ - deliveryTime?: Date; - /** 收货时间 */ - receiveTime?: Date; - /** 收货备注 */ - receiveReason?: string; - } - - /** 拒绝售后请求 */ - export interface DisagreeRequest { - /** 售后编号 */ - id: number; - /** 拒绝原因 */ - reason: string; - } -} - -/** 获得交易售后分页 */ -export function getAfterSalePage(params: PageParam) { - return requestClient.get>( - '/trade/after-sale/page', - { params }, - ); -} - -/** 获得交易售后详情 */ -export function getAfterSale(id: number) { - return requestClient.get( - `/trade/after-sale/get-detail?id=${id}`, - ); -} - -/** 同意售后 */ -export function agree(id: number) { - return requestClient.put(`/trade/after-sale/agree?id=${id}`); -} - -/** 拒绝售后 */ -export function disagree(data: MallAfterSaleApi.DisagreeRequest) { - return requestClient.put('/trade/after-sale/disagree', data); -} - -/** 确认收货 */ -export function receive(id: number) { - return requestClient.put(`/trade/after-sale/receive?id=${id}`); -} - -/** 拒绝收货 */ -export function refuse(id: number) { - return requestClient.put(`/trade/after-sale/refuse?id=${id}`); -} - -/** 确认退款 */ -export function refund(id: number) { - return requestClient.put(`/trade/after-sale/refund?id=${id}`); -} diff --git a/apps/web-antd/src/api/mall/trade/brokerage/record/index.ts b/apps/web-antd/src/api/mall/trade/brokerage/record/index.ts deleted file mode 100644 index 2fc85e81..00000000 --- a/apps/web-antd/src/api/mall/trade/brokerage/record/index.ts +++ /dev/null @@ -1,46 +0,0 @@ -import type { PageParam, PageResult } from '../../../types'; - -import { requestClient } from '#/api/request'; - -export namespace MallBrokerageRecordApi { - /** 佣金记录 */ - export interface BrokerageRecord { - /** 编号 */ - id: number; - /** 用户编号 */ - userId: number; - /** 用户昵称 */ - userNickname: string; - /** 用户头像 */ - userAvatar: string; - /** 佣金金额,单位:分 */ - price: number; - /** 佣金类型 */ - type: number; - /** 关联订单编号 */ - orderId: number; - /** 关联订单号 */ - orderNo: string; - /** 创建时间 */ - createTime: Date; - /** 状态 */ - status: number; - /** 结算时间 */ - settlementTime: Date; - } -} - -/** 查询佣金记录列表 */ -export function getBrokerageRecordPage(params: PageParam) { - return requestClient.get>( - '/trade/brokerage-record/page', - { params }, - ); -} - -/** 查询佣金记录详情 */ -export function getBrokerageRecord(id: number) { - return requestClient.get( - `/trade/brokerage-record/get?id=${id}`, - ); -} diff --git a/apps/web-antd/src/api/mall/trade/brokerage/user/index.ts b/apps/web-antd/src/api/mall/trade/brokerage/user/index.ts deleted file mode 100644 index 98a5bc6f..00000000 --- a/apps/web-antd/src/api/mall/trade/brokerage/user/index.ts +++ /dev/null @@ -1,99 +0,0 @@ -import type { PageParam, PageResult } from '../../../types'; - -import { requestClient } from '#/api/request'; - -export namespace MallBrokerageUserApi { - /** 分销用户 */ - export interface BrokerageUser { - /** 编号 */ - id: number; - /** 推广员编号 */ - bindUserId: number; - /** 推广员绑定时间 */ - bindUserTime: Date; - /** 是否启用分销 */ - brokerageEnabled: boolean; - /** 分销资格时间 */ - brokerageTime: Date; - /** 可提现金额,单位:分 */ - price: number; - /** 冻结金额,单位:分 */ - frozenPrice: number; - /** 用户昵称 */ - nickname: string; - /** 用户头像 */ - avatar: string; - } - - /** 创建分销用户请求 */ - export interface CreateRequest { - /** 用户编号 */ - userId: number; - /** 推广员编号 */ - bindUserId: number; - } - - /** 修改推广员请求 */ - export interface UpdateBindUserRequest { - /** 用户编号 */ - id: number; - /** 推广员编号 */ - bindUserId: number; - } - - /** 清除推广员请求 */ - export interface ClearBindUserRequest { - /** 用户编号 */ - id: number; - } - - /** 修改推广资格请求 */ - export interface UpdateBrokerageEnabledRequest { - /** 用户编号 */ - id: number; - /** 是否启用分销 */ - enabled: boolean; - } -} - -/** 创建分销用户 */ -export function createBrokerageUser(data: MallBrokerageUserApi.CreateRequest) { - return requestClient.post('/trade/brokerage-user/create', data); -} - -/** 查询分销用户列表 */ -export function getBrokerageUserPage(params: PageParam) { - return requestClient.get>( - '/trade/brokerage-user/page', - { params }, - ); -} - -/** 查询分销用户详情 */ -export function getBrokerageUser(id: number) { - return requestClient.get( - `/trade/brokerage-user/get?id=${id}`, - ); -} - -/** 修改推广员 */ -export function updateBindUser( - data: MallBrokerageUserApi.UpdateBindUserRequest, -) { - return requestClient.put('/trade/brokerage-user/update-bind-user', data); -} - -/** 清除推广员 */ -export function clearBindUser(data: MallBrokerageUserApi.ClearBindUserRequest) { - return requestClient.put('/trade/brokerage-user/clear-bind-user', data); -} - -/** 修改推广资格 */ -export function updateBrokerageEnabled( - data: MallBrokerageUserApi.UpdateBrokerageEnabledRequest, -) { - return requestClient.put( - '/trade/brokerage-user/update-brokerage-enable', - data, - ); -} diff --git a/apps/web-antd/src/api/mall/trade/brokerage/withdraw/index.ts b/apps/web-antd/src/api/mall/trade/brokerage/withdraw/index.ts deleted file mode 100644 index 0ec41107..00000000 --- a/apps/web-antd/src/api/mall/trade/brokerage/withdraw/index.ts +++ /dev/null @@ -1,81 +0,0 @@ -import type { PageParam, PageResult } from '../../../types'; - -import { requestClient } from '#/api/request'; - -export namespace MallBrokerageWithdrawApi { - /** 佣金提现 */ - export interface BrokerageWithdraw { - /** 编号 */ - id: number; - /** 用户编号 */ - userId: number; - /** 提现金额,单位:分 */ - price: number; - /** 手续费,单位:分 */ - feePrice: number; - /** 总金额,单位:分 */ - totalPrice: number; - /** 提现类型 */ - type: number; - /** 用户名称 */ - userName: string; - /** 用户账号 */ - userAccount: string; - /** 银行名称 */ - bankName: string; - /** 银行地址 */ - bankAddress: string; - /** 收款码地址 */ - qrCodeUrl: string; - /** 状态 */ - status: number; - /** 审核备注 */ - auditReason: string; - /** 审核时间 */ - auditTime: Date; - /** 备注 */ - remark: string; - /** 支付转账编号 */ - payTransferId?: number; - /** 转账渠道编码 */ - transferChannelCode?: string; - /** 转账时间 */ - transferTime?: Date; - /** 转账错误信息 */ - transferErrorMsg?: string; - } - - /** 驳回申请请求 */ - export interface RejectRequest { - /** 编号 */ - id: number; - /** 驳回原因 */ - auditReason: string; - } -} - -/** 查询佣金提现列表 */ -export function getBrokerageWithdrawPage(params: PageParam) { - return requestClient.get< - PageResult - >('/trade/brokerage-withdraw/page', { params }); -} - -/** 查询佣金提现详情 */ -export function getBrokerageWithdraw(id: number) { - return requestClient.get( - `/trade/brokerage-withdraw/get?id=${id}`, - ); -} - -/** 佣金提现 - 通过申请 */ -export function approveBrokerageWithdraw(id: number) { - return requestClient.put(`/trade/brokerage-withdraw/approve?id=${id}`); -} - -/** 审核佣金提现 - 驳回申请 */ -export function rejectBrokerageWithdraw( - data: MallBrokerageWithdrawApi.RejectRequest, -) { - return requestClient.put('/trade/brokerage-withdraw/reject', data); -} diff --git a/apps/web-antd/src/api/mall/trade/config/index.ts b/apps/web-antd/src/api/mall/trade/config/index.ts deleted file mode 100644 index de419d29..00000000 --- a/apps/web-antd/src/api/mall/trade/config/index.ts +++ /dev/null @@ -1,33 +0,0 @@ -import { requestClient } from '#/api/request'; - -export namespace MallTradeConfigApi { - /** 交易中心配置 */ - export interface Config { - id?: number; - afterSaleRefundReasons?: string[]; - afterSaleReturnReasons?: string[]; - deliveryExpressFreeEnabled?: boolean; - deliveryExpressFreePrice?: number; - deliveryPickUpEnabled?: boolean; - brokerageEnabled?: boolean; - brokerageEnabledCondition?: number; - brokerageBindMode?: number; - brokeragePosterUrls?: string; - brokerageFirstPercent?: number; - brokerageSecondPercent?: number; - brokerageWithdrawMinPrice?: number; - brokerageFrozenDays?: number; - brokerageWithdrawTypes?: string; - tencentLbsKey?: string; - } -} - -/** 查询交易中心配置详情 */ -export function getTradeConfig() { - return requestClient.get('/trade/config/get'); -} - -/** 保存交易中心配置 */ -export function saveTradeConfig(data: MallTradeConfigApi.Config) { - return requestClient.put('/trade/config/save', data); -} diff --git a/apps/web-antd/src/api/mall/trade/delivery/express/index.ts b/apps/web-antd/src/api/mall/trade/delivery/express/index.ts deleted file mode 100644 index 44950f4b..00000000 --- a/apps/web-antd/src/api/mall/trade/delivery/express/index.ts +++ /dev/null @@ -1,79 +0,0 @@ -import type { PageParam, PageResult } from '../../../types'; - -import { requestClient } from '#/api/request'; - -export namespace MallDeliveryExpressApi { - /** 快递公司 */ - export interface DeliveryExpress { - /** 编号 */ - id: number; - /** 快递公司编码 */ - code: string; - /** 快递公司名称 */ - name: string; - /** 快递公司 logo */ - logo: string; - /** 排序 */ - sort: number; - /** 状态 */ - status: number; - } - - /** 快递公司精简信息 */ - export interface SimpleDeliveryExpress { - /** 编号 */ - id: number; - /** 快递公司编码 */ - code: string; - /** 快递公司名称 */ - name: string; - } -} - -/** 查询快递公司列表 */ -export function getDeliveryExpressPage(params: PageParam) { - return requestClient.get>( - '/trade/delivery/express/page', - { params }, - ); -} - -/** 查询快递公司详情 */ -export function getDeliveryExpress(id: number) { - return requestClient.get( - `/trade/delivery/express/get?id=${id}`, - ); -} - -/** 获得快递公司精简信息列表 */ -export function getSimpleDeliveryExpressList() { - return requestClient.get( - '/trade/delivery/express/list-all-simple', - ); -} - -/** 新增快递公司 */ -export function createDeliveryExpress( - data: MallDeliveryExpressApi.DeliveryExpress, -) { - return requestClient.post('/trade/delivery/express/create', data); -} - -/** 修改快递公司 */ -export function updateDeliveryExpress( - data: MallDeliveryExpressApi.DeliveryExpress, -) { - return requestClient.put('/trade/delivery/express/update', data); -} - -/** 删除快递公司 */ -export function deleteDeliveryExpress(id: number) { - return requestClient.delete(`/trade/delivery/express/delete?id=${id}`); -} - -/** 导出快递公司 Excel */ -export function exportDeliveryExpress(params: PageParam) { - return requestClient.download('/trade/delivery/express/export-excel', { - params, - }); -} diff --git a/apps/web-antd/src/api/mall/trade/delivery/expressTemplate/index.ts b/apps/web-antd/src/api/mall/trade/delivery/expressTemplate/index.ts deleted file mode 100644 index 96dc93d1..00000000 --- a/apps/web-antd/src/api/mall/trade/delivery/expressTemplate/index.ts +++ /dev/null @@ -1,95 +0,0 @@ -import type { PageParam, PageResult } from '../../../types'; - -import { requestClient } from '#/api/request'; - -export namespace MallDeliveryExpressTemplateApi { - /** 运费模板计费 */ - export interface TemplateCharge { - /** 区域编号列表 */ - areaIds: number[]; - /** 首件数量 */ - startCount: number; - /** 首件价格,单位:分 */ - startPrice: number; - /** 续件数量 */ - extraCount: number; - /** 续件价格,单位:分 */ - extraPrice: number; - } - - /** 运费模板包邮 */ - export interface TemplateFree { - /** 区域编号列表 */ - areaIds: number[]; - /** 包邮件数 */ - freeCount: number; - /** 包邮金额,单位:分 */ - freePrice: number; - } - - /** 快递运费模板 */ - export interface ExpressTemplate { - /** 编号 */ - id: number; - /** 模板名称 */ - name: string; - /** 计费方式 */ - chargeMode: number; - /** 排序 */ - sort: number; - /** 计费区域列表 */ - templateCharge: TemplateCharge[]; - /** 包邮区域列表 */ - templateFree: TemplateFree[]; - } - - /** 运费模板精简信息 */ - export interface SimpleTemplate { - /** 编号 */ - id: number; - /** 模板名称 */ - name: string; - } -} - -/** 查询快递运费模板列表 */ -export function getDeliveryExpressTemplatePage(params: PageParam) { - return requestClient.get< - PageResult - >('/trade/delivery/express-template/page', { params }); -} - -/** 查询快递运费模板详情 */ -export function getDeliveryExpressTemplate(id: number) { - return requestClient.get( - `/trade/delivery/express-template/get?id=${id}`, - ); -} - -/** 查询快递运费模板详情 */ -export function getSimpleTemplateList() { - return requestClient.get( - '/trade/delivery/express-template/list-all-simple', - ); -} - -/** 新增快递运费模板 */ -export function createDeliveryExpressTemplate( - data: MallDeliveryExpressTemplateApi.ExpressTemplate, -) { - return requestClient.post('/trade/delivery/express-template/create', data); -} - -/** 修改快递运费模板 */ -export function updateDeliveryExpressTemplate( - data: MallDeliveryExpressTemplateApi.ExpressTemplate, -) { - return requestClient.put('/trade/delivery/express-template/update', data); -} - -/** 删除快递运费模板 */ -export function deleteDeliveryExpressTemplate(id: number) { - return requestClient.delete( - `/trade/delivery/express-template/delete?id=${id}`, - ); -} diff --git a/apps/web-antd/src/api/mall/trade/delivery/pickUpStore/index.ts b/apps/web-antd/src/api/mall/trade/delivery/pickUpStore/index.ts deleted file mode 100644 index 07e37354..00000000 --- a/apps/web-antd/src/api/mall/trade/delivery/pickUpStore/index.ts +++ /dev/null @@ -1,94 +0,0 @@ -import type { PageParam, PageResult } from '../../../types'; - -import { requestClient } from '#/api/request'; - -export namespace MallDeliveryPickUpStoreApi { - /** 自提门店 */ - export interface PickUpStore { - /** 编号 */ - id: number; - /** 门店名称 */ - name: string; - /** 门店简介 */ - introduction: string; - /** 联系电话 */ - phone: string; - /** 区域编号 */ - areaId: number; - /** 详细地址 */ - detailAddress: string; - /** 门店 logo */ - logo: string; - /** 营业开始时间 */ - openingTime: string; - /** 营业结束时间 */ - closingTime: string; - /** 纬度 */ - latitude: number; - /** 经度 */ - longitude: number; - /** 状态 */ - status: number; - /** 绑定用户编号组数 */ - verifyUserIds: number[]; - } - - /** 绑定自提店员请求 */ - export interface BindStaffRequest { - id?: number; - /** 门店名称 */ - name: string; - /** 门店编号 */ - storeId: number; - /** 用户编号列表 */ - userIds: number[]; - } -} - -/** 查询自提门店列表 */ -export function getDeliveryPickUpStorePage(params: PageParam) { - return requestClient.get>( - '/trade/delivery/pick-up-store/page', - { params }, - ); -} - -/** 查询自提门店详情 */ -export function getDeliveryPickUpStore(id: number) { - return requestClient.get( - `/trade/delivery/pick-up-store/get?id=${id}`, - ); -} - -/** 查询自提门店精简列表 */ -export function getSimpleDeliveryPickUpStoreList() { - return requestClient.get( - '/trade/delivery/pick-up-store/simple-list', - ); -} - -/** 新增自提门店 */ -export function createDeliveryPickUpStore( - data: MallDeliveryPickUpStoreApi.PickUpStore, -) { - return requestClient.post('/trade/delivery/pick-up-store/create', data); -} - -/** 修改自提门店 */ -export function updateDeliveryPickUpStore( - data: MallDeliveryPickUpStoreApi.PickUpStore, -) { - return requestClient.put('/trade/delivery/pick-up-store/update', data); -} - -/** 删除自提门店 */ -export function deleteDeliveryPickUpStore(id: number) { - return requestClient.delete(`/trade/delivery/pick-up-store/delete?id=${id}`); -} - -/** 绑定自提店员 */ -export function bindStoreStaffId( - data: MallDeliveryPickUpStoreApi.BindStaffRequest, -) { - return requestClient.post('/trade/delivery/pick-up-store/bind', data); -} diff --git a/apps/web-antd/src/api/mall/trade/order/index.ts b/apps/web-antd/src/api/mall/trade/order/index.ts deleted file mode 100644 index cc5695be..00000000 --- a/apps/web-antd/src/api/mall/trade/order/index.ts +++ /dev/null @@ -1,298 +0,0 @@ -import type { PageParam, PageResult } from '../../../types'; - -import { requestClient } from '#/api/request'; - -export namespace MallOrderApi { - /** 商品属性 */ - export interface ProductProperty { - /** 属性的编号 */ - propertyId?: null | number; - /** 属性的名称 */ - propertyName?: string; - /** 属性值的编号 */ - valueId?: null | number; - /** 属性值的名称 */ - valueName?: string; - } - - /** 订单项 */ - export interface OrderItem { - /** 编号 */ - id?: null | number; - /** 用户编号 */ - userId?: null | number; - /** 订单编号 */ - orderId?: null | number; - /** 商品 SPU 编号 */ - spuId?: null | number; - /** 商品 SPU 名称 */ - spuName?: string; - /** 商品 SKU 编号 */ - skuId?: null | number; - /** 商品图片 */ - picUrl?: string; - /** 购买数量 */ - count?: null | number; - /** 商品原价(总) */ - originalPrice?: null | number; - /** 商品原价(单) */ - originalUnitPrice?: null | number; - /** 商品优惠(总) */ - discountPrice?: null | number; - /** 商品实付金额(总) */ - payPrice?: null | number; - /** 子订单分摊金额(总) */ - orderPartPrice?: null | number; - /** 分摊后子订单实付金额(总) */ - orderDividePrice?: null | number; - /** 售后状态 */ - afterSaleStatus?: null | number; - /** 属性数组 */ - properties?: ProductProperty[]; - } - - /** 订单日志 */ - export interface OrderLog { - /** 日志内容 */ - content?: string; - /** 创建时间 */ - createTime?: Date; - /** 用户类型 */ - userType?: number; - } - - /** 订单 */ - export interface Order { - /** 订单编号 */ - id?: null | number; - /** 订单流水号 */ - no?: string; - /** 下单时间 */ - createTime?: Date | null; - /** 订单类型 */ - type?: null | number; - /** 订单来源 */ - terminal?: null | number; - /** 用户编号 */ - userId?: null | number; - /** 用户 IP */ - userIp?: string; - /** 用户备注 */ - userRemark?: string; - /** 订单状态 */ - status?: null | number; - /** 购买的商品数量 */ - productCount?: null | number; - /** 订单完成时间 */ - finishTime?: Date | null; - /** 订单取消时间 */ - cancelTime?: Date | null; - /** 取消类型 */ - cancelType?: null | number; - /** 商家备注 */ - remark?: string; - /** 支付订单编号 */ - payOrderId?: null | number; - /** 是否已支付 */ - payStatus?: boolean; - /** 付款时间 */ - payTime?: Date | null; - /** 支付渠道 */ - payChannelCode?: string; - /** 商品原价(总) */ - totalPrice?: null | number; - /** 订单优惠(总) */ - discountPrice?: null | number; - /** 运费金额 */ - deliveryPrice?: null | number; - /** 订单调价(总) */ - adjustPrice?: null | number; - /** 应付金额(总) */ - payPrice?: null | number; - /** 发货方式 */ - deliveryType?: null | number; - /** 自提门店编号 */ - pickUpStoreId?: number; - /** 自提核销码 */ - pickUpVerifyCode?: string; - /** 配送模板编号 */ - deliveryTemplateId?: null | number; - /** 发货物流公司编号 */ - logisticsId?: null | number; - /** 发货物流单号 */ - logisticsNo?: string; - /** 发货时间 */ - deliveryTime?: Date | null; - /** 收货时间 */ - receiveTime?: Date | null; - /** 收件人名称 */ - receiverName?: string; - /** 收件人手机 */ - receiverMobile?: string; - /** 收件人邮编 */ - receiverPostCode?: null | number; - /** 收件人地区编号 */ - receiverAreaId?: null | number; - /** 收件人地区名字 */ - receiverAreaName?: string; - /** 收件人详细地址 */ - receiverDetailAddress?: string; - /** 售后状态 */ - afterSaleStatus?: null | number; - /** 退款金额 */ - refundPrice?: null | number; - /** 优惠劵编号 */ - couponId?: null | number; - /** 优惠劵减免金额 */ - couponPrice?: null | number; - /** 积分抵扣的金额 */ - pointPrice?: null | number; - /** VIP 减免金额 */ - vipPrice?: null | number; - /** 订单项列表 */ - items?: OrderItem[]; - /** 下单用户信息 */ - user?: { - /** 用户头像 */ - avatar?: string; - /** 用户编号 */ - id?: null | number; - /** 用户昵称 */ - nickname?: string; - }; - /** 推广用户信息 */ - brokerageUser?: { - /** 用户头像 */ - avatar?: string; - /** 用户编号 */ - id?: null | number; - /** 用户昵称 */ - nickname?: string; - }; - /** 订单操作日志 */ - logs?: OrderLog[]; - } - - /** 交易订单统计 */ - export interface OrderSummary { - /** 订单数量 */ - orderCount: number; - /** 订单金额 */ - orderPayPrice: number; - /** 退款单数 */ - afterSaleCount: number; - /** 退款金额 */ - afterSalePrice: number; - } - - /** 订单发货请求 */ - export interface DeliveryRequest { - /** 订单编号 */ - id?: number; - /** 发货方式 */ - expressType: string; - /** 物流公司编号 */ - logisticsId: null | number; - /** 物流编号 */ - logisticsNo: string; - } - - /** 订单备注请求 */ - export interface RemarkRequest { - /** 订单编号 */ - id: number; - /** 备注 */ - remark: string; - } - - /** 订单调价请求 */ - export interface PriceRequest { - /** 订单编号 */ - id: number; - /** 调整金额,单位:分 */ - adjustPrice: number; - } - - /** 订单地址请求 */ - export interface AddressRequest { - /** 订单编号 */ - id: number; - /** 收件人名称 */ - receiverName: string; - /** 收件人手机 */ - receiverMobile: string; - /** 收件人地区编号 */ - receiverAreaId: number; - /** 收件人详细地址 */ - receiverDetailAddress: string; - } -} - -/** 查询交易订单列表 */ -export function getOrderPage(params: PageParam) { - return requestClient.get>( - '/trade/order/page', - { - params, - }, - ); -} - -/** 查询交易订单统计 */ -export function getOrderSummary(params: PageParam) { - return requestClient.get('/trade/order/summary', { - params, - }); -} - -/** 查询交易订单详情 */ -export function getOrder(id: number) { - return requestClient.get( - `/trade/order/get-detail?id=${id}`, - ); -} - -/** 查询交易订单物流详情 */ -export function getExpressTrackList(id: number) { - return requestClient.get(`/trade/order/get-express-track-list?id=${id}`); -} - -/** 订单发货 */ -export function deliveryOrder(data: MallOrderApi.DeliveryRequest) { - return requestClient.put('/trade/order/delivery', data); -} - -/** 订单备注 */ -export function updateOrderRemark(data: MallOrderApi.RemarkRequest) { - return requestClient.put('/trade/order/update-remark', data); -} - -/** 订单调价 */ -export function updateOrderPrice(data: MallOrderApi.PriceRequest) { - return requestClient.put('/trade/order/update-price', data); -} - -/** 修改订单地址 */ -export function updateOrderAddress(data: MallOrderApi.AddressRequest) { - return requestClient.put('/trade/order/update-address', data); -} - -/** 订单核销 */ -export function pickUpOrder(id: number) { - return requestClient.put(`/trade/order/pick-up-by-id?id=${id}`); -} - -/** 订单核销 */ -export function pickUpOrderByVerifyCode(pickUpVerifyCode: string) { - return requestClient.put('/trade/order/pick-up-by-verify-code', { - params: { pickUpVerifyCode }, - }); -} - -/** 查询核销码对应的订单 */ -export function getOrderByPickUpVerifyCode(pickUpVerifyCode: string) { - return requestClient.get( - '/trade/order/get-by-pick-up-verify-code', - { params: { pickUpVerifyCode } }, - ); -} diff --git a/apps/web-antd/src/api/request.ts b/apps/web-antd/src/api/request.ts index 08d9a8f7..3025cb4e 100644 --- a/apps/web-antd/src/api/request.ts +++ b/apps/web-antd/src/api/request.ts @@ -240,6 +240,10 @@ function createRequestClient(baseURL: string) { // 不再执行下面逻辑 throw new Error(_msg); } + case 403: { + window.location.href = msg; + break; + } default: { if (msg) { timeoutMsg = msg; diff --git a/apps/web-antd/src/views/mall/home/index.vue b/apps/web-antd/src/views/mall/home/index.vue deleted file mode 100644 index fde1c3d3..00000000 --- a/apps/web-antd/src/views/mall/home/index.vue +++ /dev/null @@ -1,176 +0,0 @@ - - - diff --git a/apps/web-antd/src/views/mall/product/brand/data.ts b/apps/web-antd/src/views/mall/product/brand/data.ts deleted file mode 100644 index cdf64706..00000000 --- a/apps/web-antd/src/views/mall/product/brand/data.ts +++ /dev/null @@ -1,132 +0,0 @@ -import type { VbenFormSchema } from '#/adapter/form'; -import type { VxeGridPropTypes } from '#/adapter/vxe-table'; - -import { z } from '#/adapter/form'; -import { - CommonStatusEnum, - DICT_TYPE, - getDictOptions, - getRangePickerDefaultProps, -} from '#/utils/utils'; - -/** 新增/修改的表单 */ -export function useFormSchema(): VbenFormSchema[] { - return [ - { - component: 'Input', - fieldName: 'id', - dependencies: { - triggerFields: [''], - show: () => false, - }, - }, - { - fieldName: 'name', - label: '品牌名称', - component: 'Input', - rules: 'required', - }, - { - fieldName: 'picUrl', - label: '品牌图片', - component: 'ImageUpload', - rules: 'required', - }, - { - fieldName: 'sort', - label: '品牌排序', - component: 'InputNumber', - componentProps: { - min: 0, - controlsPosition: 'right', - placeholder: '请输入品牌排序', - }, - rules: z.number().min(0).default(1), - }, - { - fieldName: 'status', - label: '品牌状态', - component: 'RadioGroup', - componentProps: { - options: getDictOptions(DICT_TYPE.COMMON_STATUS, 'number'), - buttonStyle: 'solid', - optionType: 'button', - }, - rules: z.number().default(CommonStatusEnum.ENABLE), - }, - { - fieldName: 'description', - label: '品牌描述', - component: 'Textarea', - }, - ]; -} - -/** 列表的搜索表单 */ -export function useGridFormSchema(): VbenFormSchema[] { - return [ - { - fieldName: 'name', - label: '品牌名称', - component: 'Input', - }, - { - fieldName: 'status', - label: '品牌状态', - component: 'Select', - componentProps: { - options: getDictOptions(DICT_TYPE.COMMON_STATUS, 'number'), - }, - }, - { - fieldName: 'createTime', - label: '创建时间', - component: 'RangePicker', - componentProps: { - ...getRangePickerDefaultProps(), - allowClear: true, - }, - }, - ]; -} - -/** 表格列配置 */ -export function useGridColumns(): VxeGridPropTypes.Columns { - return [ - { - field: 'name', - title: '分类名称', - fixed: 'left', - }, - { - field: 'picUrl', - title: '品牌图片', - cellRender: { - name: 'CellImage', - }, - }, - { - field: 'sort', - title: '品牌排序', - }, - { - field: 'status', - title: '开启状态', - cellRender: { - name: 'CellDict', - props: { type: DICT_TYPE.COMMON_STATUS }, - }, - }, - { - field: 'createTime', - title: '创建时间', - formatter: 'formatDateTime', - }, - { - title: '操作', - width: 180, - fixed: 'right', - slots: { default: 'actions' }, - }, - ]; -} diff --git a/apps/web-antd/src/views/mall/product/brand/index.vue b/apps/web-antd/src/views/mall/product/brand/index.vue deleted file mode 100644 index a9669af9..00000000 --- a/apps/web-antd/src/views/mall/product/brand/index.vue +++ /dev/null @@ -1,127 +0,0 @@ - - - diff --git a/apps/web-antd/src/views/mall/product/brand/modules/form.vue b/apps/web-antd/src/views/mall/product/brand/modules/form.vue deleted file mode 100644 index 436e7318..00000000 --- a/apps/web-antd/src/views/mall/product/brand/modules/form.vue +++ /dev/null @@ -1,83 +0,0 @@ - - - diff --git a/apps/web-antd/src/views/mall/product/category/data.ts b/apps/web-antd/src/views/mall/product/category/data.ts deleted file mode 100644 index 5efa27c0..00000000 --- a/apps/web-antd/src/views/mall/product/category/data.ts +++ /dev/null @@ -1,139 +0,0 @@ -import type { VbenFormSchema } from '#/adapter/form'; -import type { VxeTableGridOptions } from '#/adapter/vxe-table'; -import type { MallCategoryApi } from '#/api/mall/product/category'; - -import { handleTree } from '@vben/utils'; - -import { z } from '#/adapter/form'; -import { getCategoryList } from '#/api/mall/product/category'; -import { CommonStatusEnum, DICT_TYPE, getDictOptions } from '#/utils'; - -/** 新增/修改的表单 */ -export function useFormSchema(): VbenFormSchema[] { - return [ - { - fieldName: 'id', - component: 'Input', - dependencies: { - triggerFields: [''], - show: () => false, - }, - }, - { - fieldName: 'parentId', - label: '上级分类', - component: 'ApiTreeSelect', - componentProps: { - allowClear: true, - api: async () => { - const data = await getCategoryList({ parentId: 0 }); - data.unshift({ - id: 0, - name: '顶级分类', - picUrl: '', - sort: 0, - status: 0, - }); - return handleTree(data); - }, - labelField: 'name', - valueField: 'id', - childrenField: 'children', - placeholder: '请选择上级分类', - treeDefaultExpandAll: true, - }, - rules: 'selectRequired', - }, - { - fieldName: 'name', - label: '分类名称', - component: 'Input', - componentProps: { - placeholder: '请输入分类名称', - }, - rules: 'required', - }, - { - fieldName: 'picUrl', - label: '移动端分类图', - component: 'ImageUpload', - rules: 'required', - }, - { - fieldName: 'sort', - label: '分类排序', - component: 'InputNumber', - componentProps: { - min: 0, - controlsPosition: 'right', - placeholder: '请输入分类排序', - }, - rules: z.number().min(0).default(1), - }, - { - fieldName: 'status', - label: '开启状态', - component: 'RadioGroup', - componentProps: { - options: getDictOptions(DICT_TYPE.COMMON_STATUS, 'number'), - buttonStyle: 'solid', - optionType: 'button', - }, - rules: z.number().default(CommonStatusEnum.ENABLE), - }, - ]; -} - -/** 列表的搜索表单 */ -export function useGridFormSchema(): VbenFormSchema[] { - return [ - { - fieldName: 'name', - label: '分类名称', - component: 'Input', - }, - ]; -} - -/** 列表的字段 */ -export function useGridColumns(): VxeTableGridOptions['columns'] { - return [ - { - field: 'name', - title: '分类名称', - align: 'left', - fixed: 'left', - treeNode: true, - }, - { - field: 'picUrl', - title: '移动端分类图', - cellRender: { - name: 'CellImage', - }, - }, - { - field: 'sort', - title: '分类排序', - }, - { - field: 'status', - title: '开启状态', - cellRender: { - name: 'CellDict', - props: { type: DICT_TYPE.COMMON_STATUS }, - }, - }, - { - field: 'createTime', - title: '创建时间', - formatter: 'formatDateTime', - }, - { - title: '操作', - width: 300, - fixed: 'right', - slots: { default: 'actions' }, - }, - ]; -} diff --git a/apps/web-antd/src/views/mall/product/category/index.vue b/apps/web-antd/src/views/mall/product/category/index.vue deleted file mode 100644 index ebb17103..00000000 --- a/apps/web-antd/src/views/mall/product/category/index.vue +++ /dev/null @@ -1,187 +0,0 @@ - - - diff --git a/apps/web-antd/src/views/mall/product/category/modules/form.vue b/apps/web-antd/src/views/mall/product/category/modules/form.vue deleted file mode 100644 index a8732356..00000000 --- a/apps/web-antd/src/views/mall/product/category/modules/form.vue +++ /dev/null @@ -1,89 +0,0 @@ - - - diff --git a/apps/web-antd/src/views/mall/product/comment/data.ts b/apps/web-antd/src/views/mall/product/comment/data.ts deleted file mode 100644 index fb4d87cf..00000000 --- a/apps/web-antd/src/views/mall/product/comment/data.ts +++ /dev/null @@ -1,202 +0,0 @@ -import type { VbenFormSchema } from '#/adapter/form'; -import type { VxeGridPropTypes } from '#/adapter/vxe-table'; -import type { MallCommentApi } from '#/api/mall/product/comment'; - -import { getSpuSimpleList } from '#/api/mall/product/spu'; -import { getRangePickerDefaultProps } from '#/utils'; - -/** 新增/修改的表单 */ -export function useFormSchema(): VbenFormSchema[] { - return [ - { - component: 'Input', - fieldName: 'id', - dependencies: { - triggerFields: [''], - show: () => false, - }, - }, - { - fieldName: 'spuId', - label: '商品', - component: 'ApiSelect', - componentProps: { - api: getSpuSimpleList, - labelField: 'name', - valueField: 'id', - }, - rules: 'required', - }, - { - fieldName: 'userAvatar', - label: '用户头像', - component: 'ImageUpload', - rules: 'required', - }, - { - fieldName: 'userNickname', - label: '用户名称', - component: 'Input', - rules: 'required', - }, - { - fieldName: 'content', - label: '评论内容', - component: 'Textarea', - rules: 'required', - }, - { - fieldName: 'descriptionScores', - label: '描述星级', - component: 'Rate', - rules: 'required', - }, - { - fieldName: 'benefitScores', - label: '服务星级', - component: 'Rate', - rules: 'required', - }, - { - fieldName: 'picUrls', - label: '评论图片', - component: 'ImageUpload', - componentProps: { - maxNumber: 9, - }, - rules: 'required', - }, - ]; -} - -/** 列表的搜索表单 */ -export function useGridFormSchema(): VbenFormSchema[] { - return [ - { - fieldName: 'replyStatus', - label: '回复状态', - component: 'Select', - componentProps: { - options: [ - { label: '已回复', value: true }, - { label: '未回复', value: false }, - ], - }, - }, - { - fieldName: 'spuName', - label: '商品名称', - component: 'Input', - }, - { - fieldName: 'userNickname', - label: '用户名称', - component: 'Input', - }, - { - fieldName: 'orderId', - label: '订单编号', - component: 'Input', - }, - { - fieldName: 'createTime', - label: '评论时间', - component: 'RangePicker', - componentProps: { - ...getRangePickerDefaultProps(), - allowClear: true, - }, - }, - ]; -} - -/** 表格列配置 */ -export function useGridColumns( - onStatusChange?: ( - newStatus: boolean, - row: T, - ) => PromiseLike, -): VxeGridPropTypes.Columns { - return [ - { - field: 'id', - title: '评论编号', - fixed: 'left', - }, - { - field: 'skuPicUrl', - title: '商品图片', - cellRender: { - name: 'CellImage', - }, - }, - { - field: 'spuName', - title: '商品名称', - minWidth: 200, - }, - { - field: 'skuProperties', - title: '商品属性', - minWidth: 200, - formatter: ({ cellValue }) => { - return cellValue && cellValue.length > 0 - ? cellValue - .map((item: any) => `${item.propertyName} : ${item.valueName}`) - .join('\n') - : '-'; - }, - }, - { - field: 'userNickname', - title: '用户名称', - }, - { - field: 'descriptionScores', - title: '商品评分', - }, - { - field: 'benefitScores', - title: '服务评分', - }, - { - field: 'content', - title: '评论内容', - }, - { - field: 'picUrls', - title: '评论图片', - cellRender: { - name: 'CellImages', - }, - }, - { - field: 'replyContent', - title: '回复内容', - }, - { - field: 'createTime', - title: '评论时间', - formatter: 'formatDateTime', - }, - { - field: 'visible', - title: '是否展示', - align: 'center', - cellRender: { - attrs: { beforeChange: onStatusChange }, - name: 'CellSwitch', - props: { - checkedValue: true, - unCheckedValue: false, - }, - }, - }, - { - title: '操作', - width: 80, - fixed: 'right', - slots: { default: 'actions' }, - }, - ]; -} diff --git a/apps/web-antd/src/views/mall/product/comment/index.vue b/apps/web-antd/src/views/mall/product/comment/index.vue deleted file mode 100644 index f6e58063..00000000 --- a/apps/web-antd/src/views/mall/product/comment/index.vue +++ /dev/null @@ -1,156 +0,0 @@ - - - diff --git a/apps/web-antd/src/views/mall/product/comment/modules/form.vue b/apps/web-antd/src/views/mall/product/comment/modules/form.vue deleted file mode 100644 index ce86b1c4..00000000 --- a/apps/web-antd/src/views/mall/product/comment/modules/form.vue +++ /dev/null @@ -1,83 +0,0 @@ - - - diff --git a/apps/web-antd/src/views/mall/product/property/data.ts b/apps/web-antd/src/views/mall/product/property/data.ts deleted file mode 100644 index 733c8fdc..00000000 --- a/apps/web-antd/src/views/mall/product/property/data.ts +++ /dev/null @@ -1,176 +0,0 @@ -import type { VbenFormSchema } from '#/adapter/form'; -import type { VxeTableGridOptions } from '#/adapter/vxe-table'; - -import { getPropertySimpleList } from '#/api/mall/product/property'; - -// ============================== 属性 ============================== - -/** 类型新增/修改的表单 */ -export function usePropertyFormSchema(): VbenFormSchema[] { - return [ - { - fieldName: 'id', - component: 'Input', - dependencies: { - triggerFields: [''], - show: () => false, - }, - }, - { - fieldName: 'name', - label: '名称', - component: 'Input', - componentProps: { - placeholder: '请输入名称', - }, - rules: 'required', - }, - { - fieldName: 'remark', - label: '备注', - component: 'Textarea', - componentProps: { - placeholder: '请输入备注', - }, - }, - ]; -} - -/** 类型列表的搜索表单 */ -export function usePropertyGridFormSchema(): VbenFormSchema[] { - return [ - { - fieldName: 'name', - label: '名称', - component: 'Input', - componentProps: { - placeholder: '请输入名称', - clearable: true, - }, - }, - ]; -} - -/** 类型列表的字段 */ -export function usePropertyGridColumns(): VxeTableGridOptions['columns'] { - return [ - { - field: 'id', - title: '编号', - }, - { - field: 'name', - title: '名称', - }, - { - field: 'remark', - title: '备注', - }, - { - field: 'createTime', - title: '创建时间', - formatter: 'formatDateTime', - }, - { - title: '操作', - width: 160, - fixed: 'right', - slots: { default: 'actions' }, - }, - ]; -} - -// ============================== 值数据 ============================== - -/** 数据新增/修改的表单 */ -export function useValueFormSchema(): VbenFormSchema[] { - return [ - { - fieldName: 'id', - component: 'Input', - dependencies: { - triggerFields: [''], - show: () => false, - }, - }, - { - fieldName: 'propertyId', - label: '属性编号', - component: 'ApiSelect', - componentProps: (values) => { - return { - api: getPropertySimpleList, - labelField: 'name', - valueField: 'id', - disabled: !!values.id, - }; - }, - rules: 'required', - dependencies: { - triggerFields: [''], - }, - }, - { - fieldName: 'name', - label: '名称', - component: 'Input', - componentProps: { - placeholder: '请输入名称', - }, - rules: 'required', - }, - { - fieldName: 'remark', - label: '备注', - component: 'Textarea', - componentProps: { - placeholder: '请输入备注', - }, - }, - ]; -} - -/** 字典数据列表搜索表单 */ -export function useValueGridFormSchema(): VbenFormSchema[] { - return [ - { - fieldName: 'name', - label: '名称', - component: 'Input', - componentProps: { - clearable: true, - }, - }, - ]; -} - -/** - * 字典数据表格列 - */ -export function useValueGridColumns(): VxeTableGridOptions['columns'] { - return [ - { - field: 'id', - title: '编号', - }, - { - field: 'name', - title: '属性值名称', - }, - { - field: 'remark', - title: '备注', - }, - { - title: '创建时间', - field: 'createTime', - formatter: 'formatDateTime', - }, - { - title: '操作', - width: 160, - fixed: 'right', - slots: { default: 'actions' }, - }, - ]; -} diff --git a/apps/web-antd/src/views/mall/product/property/index.vue b/apps/web-antd/src/views/mall/product/property/index.vue deleted file mode 100644 index 97036c49..00000000 --- a/apps/web-antd/src/views/mall/product/property/index.vue +++ /dev/null @@ -1,35 +0,0 @@ - - - diff --git a/apps/web-antd/src/views/mall/product/property/modules/property-form.vue b/apps/web-antd/src/views/mall/product/property/modules/property-form.vue deleted file mode 100644 index cce88878..00000000 --- a/apps/web-antd/src/views/mall/product/property/modules/property-form.vue +++ /dev/null @@ -1,88 +0,0 @@ - - - diff --git a/apps/web-antd/src/views/mall/product/property/modules/property-grid.vue b/apps/web-antd/src/views/mall/product/property/modules/property-grid.vue deleted file mode 100644 index 5be3a96b..00000000 --- a/apps/web-antd/src/views/mall/product/property/modules/property-grid.vue +++ /dev/null @@ -1,142 +0,0 @@ - - - diff --git a/apps/web-antd/src/views/mall/product/property/modules/value-form.vue b/apps/web-antd/src/views/mall/product/property/modules/value-form.vue deleted file mode 100644 index 394bfe14..00000000 --- a/apps/web-antd/src/views/mall/product/property/modules/value-form.vue +++ /dev/null @@ -1,100 +0,0 @@ - - - diff --git a/apps/web-antd/src/views/mall/product/property/modules/value-grid.vue b/apps/web-antd/src/views/mall/product/property/modules/value-grid.vue deleted file mode 100644 index e34dcca5..00000000 --- a/apps/web-antd/src/views/mall/product/property/modules/value-grid.vue +++ /dev/null @@ -1,151 +0,0 @@ - - - diff --git a/apps/web-antd/src/views/mall/product/spu/data.ts b/apps/web-antd/src/views/mall/product/spu/data.ts deleted file mode 100644 index 6ceb265e..00000000 --- a/apps/web-antd/src/views/mall/product/spu/data.ts +++ /dev/null @@ -1,117 +0,0 @@ -import type { VbenFormSchema } from '#/adapter/form'; -import type { VxeTableGridOptions } from '#/adapter/vxe-table'; -import type { MallSpuApi } from '#/api/mall/product/spu'; - -import { handleTree } from '@vben/utils'; - -import { getCategoryList } from '#/api/mall/product/category'; -import { getRangePickerDefaultProps } from '#/utils'; - -/** 列表的搜索表单 */ -export function useGridFormSchema(): VbenFormSchema[] { - return [ - { - fieldName: 'name', - label: '商品名称', - component: 'Input', - }, - { - fieldName: 'categoryId', - label: '商品分类', - component: 'ApiTreeSelect', - componentProps: { - api: async () => { - const res = await getCategoryList({}); - return handleTree(res, 'id', 'parentId', 'children'); - }, - fieldNames: { label: 'name', value: 'id', children: 'children' }, - }, - }, - { - fieldName: 'createTime', - label: '创建时间', - component: 'RangePicker', - componentProps: { - ...getRangePickerDefaultProps(), - allowClear: true, - }, - }, - ]; -} - -/** 列表的字段 */ -export function useGridColumns( - onStatusChange?: ( - newStatus: number, - row: T, - ) => PromiseLike, -): VxeTableGridOptions['columns'] { - return [ - { - type: 'expand', - width: 80, - slots: { content: 'expand_content' }, - fixed: 'left', - }, - { - field: 'id', - title: '商品编号', - fixed: 'left', - }, - { - field: 'name', - title: '商品名称', - fixed: 'left', - minWidth: 200, - }, - { - field: 'picUrl', - title: '商品图片', - cellRender: { - name: 'CellImage', - }, - }, - { - field: 'price', - title: '价格', - formatter: 'formatAmount2', - }, - { - field: 'salesCount', - title: '销量', - }, - { - field: 'stock', - title: '库存', - }, - { - field: 'sort', - title: '排序', - }, - { - field: 'status', - title: '销售状态', - cellRender: { - attrs: { beforeChange: onStatusChange }, - name: 'CellSwitch', - props: { - checkedValue: 1, - checkedChildren: '上架', - unCheckedValue: 0, - unCheckedChildren: '下架', - }, - }, - }, - { - field: 'createTime', - title: '创建时间', - formatter: 'formatDateTime', - }, - { - title: '操作', - width: 300, - fixed: 'right', - slots: { default: 'actions' }, - }, - ]; -} diff --git a/apps/web-antd/src/views/mall/product/spu/index.vue b/apps/web-antd/src/views/mall/product/spu/index.vue deleted file mode 100644 index aa408522..00000000 --- a/apps/web-antd/src/views/mall/product/spu/index.vue +++ /dev/null @@ -1,348 +0,0 @@ - - - diff --git a/apps/web-antd/src/views/mall/product/spu/modules/detail.vue b/apps/web-antd/src/views/mall/product/spu/modules/detail.vue deleted file mode 100644 index c28ebc68..00000000 --- a/apps/web-antd/src/views/mall/product/spu/modules/detail.vue +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/apps/web-antd/src/views/mall/product/spu/modules/form.vue b/apps/web-antd/src/views/mall/product/spu/modules/form.vue deleted file mode 100644 index 5b641357..00000000 --- a/apps/web-antd/src/views/mall/product/spu/modules/form.vue +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/apps/web-antd/src/views/mall/promotion/article/category/data.ts b/apps/web-antd/src/views/mall/promotion/article/category/data.ts deleted file mode 100644 index d03a5d87..00000000 --- a/apps/web-antd/src/views/mall/promotion/article/category/data.ts +++ /dev/null @@ -1,135 +0,0 @@ -import type { VbenFormSchema } from '#/adapter/form'; -import type { VxeGridPropTypes } from '#/adapter/vxe-table'; - -import { DICT_TYPE, getDictOptions, getRangePickerDefaultProps } from '#/utils'; - -/** 新增/修改的表单 */ -export function useFormSchema(): VbenFormSchema[] { - return [ - { - component: 'Input', - fieldName: 'id', - dependencies: { - triggerFields: [''], - show: () => false, - }, - }, - { - fieldName: 'name', - label: '分类名称', - component: 'Input', - rules: 'required', - }, - { - fieldName: 'picUrl', - label: '图标地址', - component: 'ImageUpload', - }, - { - fieldName: 'sort', - label: '排序', - component: 'InputNumber', - componentProps: { - min: 0, - controlsPosition: 'right', - placeholder: '请输入排序', - }, - rules: 'required', - }, - { - fieldName: 'status', - label: '状态', - component: 'RadioGroup', - componentProps: { - options: getDictOptions(DICT_TYPE.COMMON_STATUS, 'number'), - buttonStyle: 'solid', - optionType: 'button', - }, - rules: 'required', - }, - ]; -} - -/** 列表的搜索表单 */ -export function useGridFormSchema(): VbenFormSchema[] { - return [ - { - fieldName: 'name', - label: '分类名称', - component: 'Input', - componentProps: { - placeholder: '请输入分类名称', - }, - }, - { - fieldName: 'status', - label: '状态', - component: 'Select', - componentProps: { - placeholder: '请选择状态', - options: getDictOptions(DICT_TYPE.COMMON_STATUS, 'number'), - }, - }, - { - fieldName: 'createTime', - label: '创建时间', - component: 'RangePicker', - componentProps: { - ...getRangePickerDefaultProps(), - allowClear: true, - }, - }, - ]; -} - -/** 表格列配置 */ -export function useGridColumns(): VxeGridPropTypes.Columns { - return [ - { - title: '编号', - field: 'id', - width: 100, - }, - { - title: '分类名称', - field: 'name', - minWidth: 240, - }, - { - title: '分类图片', - field: 'picUrl', - width: 80, - cellRender: { - name: 'CellImage', - }, - }, - { - title: '状态', - field: 'status', - width: 150, - cellRender: { - name: 'CellDictTag', - props: { - dictType: DICT_TYPE.COMMON_STATUS, - }, - }, - }, - { - title: '排序', - field: 'sort', - width: 150, - }, - { - title: '创建时间', - field: 'createTime', - width: 180, - formatter: 'formatDateTime', - }, - { - title: '操作', - width: 180, - fixed: 'right', - slots: { default: 'actions' }, - }, - ]; -} diff --git a/apps/web-antd/src/views/mall/promotion/article/category/index.vue b/apps/web-antd/src/views/mall/promotion/article/category/index.vue deleted file mode 100644 index ca3c71c1..00000000 --- a/apps/web-antd/src/views/mall/promotion/article/category/index.vue +++ /dev/null @@ -1,130 +0,0 @@ - - - diff --git a/apps/web-antd/src/views/mall/promotion/article/category/modules/form.vue b/apps/web-antd/src/views/mall/promotion/article/category/modules/form.vue deleted file mode 100644 index cfdd46f0..00000000 --- a/apps/web-antd/src/views/mall/promotion/article/category/modules/form.vue +++ /dev/null @@ -1,90 +0,0 @@ - - - diff --git a/apps/web-antd/src/views/mall/promotion/article/data.ts b/apps/web-antd/src/views/mall/promotion/article/data.ts deleted file mode 100644 index 5b03258f..00000000 --- a/apps/web-antd/src/views/mall/promotion/article/data.ts +++ /dev/null @@ -1,210 +0,0 @@ -import type { VbenFormSchema } from '#/adapter/form'; -import type { VxeGridPropTypes } from '#/adapter/vxe-table'; - -import { z } from '#/adapter/form'; -import { getSimpleArticleCategoryList } from '#/api/mall/promotion/articleCategory'; -import { - CommonStatusEnum, - DICT_TYPE, - getDictOptions, - getRangePickerDefaultProps, -} from '#/utils'; - -/** 新增/修改的表单 */ -export function useFormSchema(): VbenFormSchema[] { - return [ - { - component: 'Input', - fieldName: 'id', - dependencies: { - triggerFields: [''], - show: () => false, - }, - }, - { - fieldName: 'title', - label: '文章标题', - component: 'Input', - rules: 'required', - }, - { - fieldName: 'categoryId', - label: '文章分类', - component: 'ApiSelect', - componentProps: { - api: getSimpleArticleCategoryList, - labelField: 'name', - valueField: 'id', - }, - rules: 'required', - }, - { - fieldName: 'author', - label: '文章作者', - component: 'Input', - }, - { - fieldName: 'introduction', - label: '文章简介', - component: 'Input', - }, - { - fieldName: 'picUrl', - label: '文章封面', - component: 'ImageUpload', - rules: 'required', - }, - { - fieldName: 'recommendHot', - label: '是否热门', - component: 'RadioGroup', - componentProps: { - options: getDictOptions(DICT_TYPE.INFRA_BOOLEAN_STRING, 'boolean'), - buttonStyle: 'solid', - optionType: 'button', - }, - }, - { - fieldName: 'recommendBanner', - label: '是否轮播图', - component: 'RadioGroup', - componentProps: { - options: getDictOptions(DICT_TYPE.INFRA_BOOLEAN_STRING, 'boolean'), - buttonStyle: 'solid', - optionType: 'button', - }, - }, - { - // TODO: 商品关联 - fieldName: 'spuId', - label: '商品关联', - component: 'Input', - }, - { - fieldName: 'sort', - label: '排序', - component: 'InputNumber', - componentProps: { - min: 0, - controlsPosition: 'right', - placeholder: '请输入品牌排序', - }, - rules: z.number().min(0).default(1), - }, - { - fieldName: 'status', - label: '状态', - component: 'RadioGroup', - componentProps: { - options: getDictOptions(DICT_TYPE.COMMON_STATUS, 'number'), - buttonStyle: 'solid', - optionType: 'button', - }, - rules: z.number().default(CommonStatusEnum.ENABLE), - }, - { - fieldName: 'description', - label: '文章内容', - component: 'RichTextarea', - }, - ]; -} - -/** 列表的搜索表单 */ -export function useGridFormSchema(): VbenFormSchema[] { - return [ - { - fieldName: 'name', - label: '文章分类', - component: 'ApiSelect', - componentProps: { - api: getSimpleArticleCategoryList, - labelField: 'name', - valueField: 'id', - }, - }, - { - fieldName: 'title', - label: '文章标题', - component: 'Input', - }, - { - fieldName: 'status', - label: '状态', - component: 'Select', - componentProps: { - options: getDictOptions(DICT_TYPE.COMMON_STATUS, 'number'), - }, - }, - { - fieldName: 'createTime', - label: '创建时间', - component: 'RangePicker', - componentProps: { - ...getRangePickerDefaultProps(), - allowClear: true, - }, - }, - ]; -} - -/** 表格列配置 */ -export function useGridColumns(): VxeGridPropTypes.Columns { - return [ - { - field: 'id', - title: '编号', - fixed: 'left', - }, - { - field: 'title', - title: '标题', - }, - { - field: 'picUrl', - title: '封面', - cellRender: { - name: 'CellImage', - }, - }, - { - field: 'categoryId', - title: '分类', - }, - { - field: 'browseCount', - title: '浏览量', - }, - { - field: 'author', - title: '作者', - }, - { - field: 'introduction', - title: '文章简介', - }, - { - field: 'sort', - title: '排序', - }, - { - field: 'status', - title: '状态', - cellRender: { - name: 'CellDict', - props: { type: DICT_TYPE.COMMON_STATUS }, - }, - }, - { - field: 'createTime', - title: '创建时间', - formatter: 'formatDateTime', - }, - { - title: '操作', - width: 180, - fixed: 'right', - slots: { default: 'actions' }, - }, - ]; -} diff --git a/apps/web-antd/src/views/mall/promotion/article/index.vue b/apps/web-antd/src/views/mall/promotion/article/index.vue deleted file mode 100644 index 7c035ec0..00000000 --- a/apps/web-antd/src/views/mall/promotion/article/index.vue +++ /dev/null @@ -1,127 +0,0 @@ - - - diff --git a/apps/web-antd/src/views/mall/promotion/article/modules/form.vue b/apps/web-antd/src/views/mall/promotion/article/modules/form.vue deleted file mode 100644 index dcf648cf..00000000 --- a/apps/web-antd/src/views/mall/promotion/article/modules/form.vue +++ /dev/null @@ -1,87 +0,0 @@ - - - diff --git a/apps/web-antd/src/views/mall/promotion/banner/data.ts b/apps/web-antd/src/views/mall/promotion/banner/data.ts deleted file mode 100644 index cdc7acbe..00000000 --- a/apps/web-antd/src/views/mall/promotion/banner/data.ts +++ /dev/null @@ -1,175 +0,0 @@ -import type { VbenFormSchema } from '#/adapter/form'; -import type { VxeGridPropTypes } from '#/adapter/vxe-table'; - -import { DICT_TYPE, getDictOptions, getRangePickerDefaultProps } from '#/utils'; - -/** 新增/修改的表单 */ -export function useFormSchema(): VbenFormSchema[] { - return [ - { - component: 'Input', - fieldName: 'id', - dependencies: { - triggerFields: [''], - show: () => false, - }, - }, - { - fieldName: 'title', - label: 'Banner标题', - component: 'Input', - rules: 'required', - }, - { - fieldName: 'picUrl', - label: '图片地址', - component: 'ImageUpload', - rules: 'required', - }, - { - fieldName: 'position', - label: '定位', - component: 'RadioGroup', - componentProps: { - options: getDictOptions(DICT_TYPE.PROMOTION_BANNER_POSITION, 'number'), - buttonStyle: 'solid', - optionType: 'button', - }, - rules: 'required', - }, - { - fieldName: 'url', - label: '跳转地址', - component: 'Input', - rules: 'required', - }, - { - fieldName: 'sort', - label: '排序', - component: 'InputNumber', - componentProps: { - min: 0, - controlsPosition: 'right', - placeholder: '请输入排序', - }, - rules: 'required', - }, - { - fieldName: 'status', - label: '状态', - component: 'RadioGroup', - componentProps: { - options: getDictOptions(DICT_TYPE.COMMON_STATUS, 'number'), - buttonStyle: 'solid', - optionType: 'button', - }, - rules: 'required', - }, - { - fieldName: 'memo', - label: '描述', - component: 'Textarea', - componentProps: { - rows: 4, - placeholder: '请输入描述', - }, - }, - ]; -} - -/** 列表的搜索表单 */ -export function useGridFormSchema(): VbenFormSchema[] { - return [ - { - fieldName: 'title', - label: 'Banner标题', - component: 'Input', - componentProps: { - placeholder: '请输入Banner标题', - }, - }, - { - fieldName: 'status', - label: '状态', - component: 'Select', - componentProps: { - placeholder: '请选择状态', - options: getDictOptions(DICT_TYPE.COMMON_STATUS, 'number'), - }, - }, - { - fieldName: 'createTime', - label: '创建时间', - component: 'RangePicker', - componentProps: { - ...getRangePickerDefaultProps(), - allowClear: true, - }, - }, - ]; -} - -/** 表格列配置 */ -export function useGridColumns(): VxeGridPropTypes.Columns { - return [ - { - title: 'Banner标题', - field: 'title', - }, - { - title: '图片', - field: 'picUrl', - width: 80, - cellRender: { - name: 'CellImage', - }, - }, - { - title: '状态', - field: 'status', - width: 150, - cellRender: { - name: 'CellDictTag', - props: { - dictType: DICT_TYPE.COMMON_STATUS, - }, - }, - }, - { - title: '定位', - field: 'position', - width: 150, - cellRender: { - name: 'CellDictTag', - props: { - dictType: DICT_TYPE.PROMOTION_BANNER_POSITION, - }, - }, - }, - { - title: '跳转地址', - field: 'url', - }, - { - title: '创建时间', - field: 'createTime', - width: 180, - formatter: 'formatDateTime', - }, - { - title: '排序', - field: 'sort', - width: 100, - }, - { - title: '描述', - field: 'memo', - }, - { - title: '操作', - width: 180, - fixed: 'right', - slots: { default: 'actions' }, - }, - ]; -} diff --git a/apps/web-antd/src/views/mall/promotion/banner/index.vue b/apps/web-antd/src/views/mall/promotion/banner/index.vue deleted file mode 100644 index d5ad127c..00000000 --- a/apps/web-antd/src/views/mall/promotion/banner/index.vue +++ /dev/null @@ -1,127 +0,0 @@ - - - diff --git a/apps/web-antd/src/views/mall/promotion/banner/modules/form.vue b/apps/web-antd/src/views/mall/promotion/banner/modules/form.vue deleted file mode 100644 index d58d2e92..00000000 --- a/apps/web-antd/src/views/mall/promotion/banner/modules/form.vue +++ /dev/null @@ -1,87 +0,0 @@ - - - diff --git a/apps/web-antd/src/views/mall/promotion/bargain/activity/data.ts b/apps/web-antd/src/views/mall/promotion/bargain/activity/data.ts deleted file mode 100644 index 80285f23..00000000 --- a/apps/web-antd/src/views/mall/promotion/bargain/activity/data.ts +++ /dev/null @@ -1,262 +0,0 @@ -import type { VbenFormSchema } from '#/adapter/form'; -import type { VxeTableGridOptions } from '#/adapter/vxe-table'; - -import { formatDate } from '@vben/utils'; - -import { DICT_TYPE, getDictOptions } from '#/utils'; - -/** 新增/修改的表单 */ -export function useFormSchema(): VbenFormSchema[] { - return [ - { - fieldName: 'id', - component: 'Input', - dependencies: { - triggerFields: [''], - show: () => false, - }, - }, - { - fieldName: 'name', - label: '活动名称', - component: 'Input', - componentProps: { - placeholder: '请输入活动名称', - }, - rules: 'required', - }, - { - fieldName: 'startTime', - label: '开始时间', - component: 'DatePicker', - componentProps: { - format: 'YYYY-MM-DD HH:mm:ss', - valueFormat: 'YYYY-MM-DD HH:mm:ss', - placeholder: '请选择开始时间', - }, - rules: 'required', - }, - { - fieldName: 'endTime', - label: '结束时间', - component: 'DatePicker', - componentProps: { - format: 'YYYY-MM-DD HH:mm:ss', - valueFormat: 'YYYY-MM-DD HH:mm:ss', - placeholder: '请选择结束时间', - }, - rules: 'required', - }, - { - fieldName: 'bargainFirstPrice', - label: '砍价起始价格(元)', - component: 'InputNumber', - componentProps: { - min: 0, - precision: 2, - step: 0.01, - placeholder: '请输入砍价起始价格', - }, - rules: 'required', - }, - { - fieldName: 'bargainMinPrice', - label: '砍价底价(元)', - component: 'InputNumber', - componentProps: { - min: 0, - precision: 2, - step: 0.01, - placeholder: '请输入砍价底价', - }, - rules: 'required', - }, - { - fieldName: 'stock', - label: '活动库存', - component: 'InputNumber', - componentProps: { - min: 1, - placeholder: '请输入活动库存', - }, - rules: 'required', - }, - { - fieldName: 'helpMaxCount', - label: '助力人数', - component: 'InputNumber', - componentProps: { - min: 1, - placeholder: '请输入助力人数', - }, - rules: 'required', - }, - { - fieldName: 'bargainCount', - label: '砍价次数', - component: 'InputNumber', - componentProps: { - min: 1, - placeholder: '请输入砍价次数', - }, - rules: 'required', - }, - { - fieldName: 'totalLimitCount', - label: '购买限制', - component: 'InputNumber', - componentProps: { - min: 1, - placeholder: '请输入购买限制', - }, - rules: 'required', - }, - { - fieldName: 'randomMinPrice', - label: '最小砍价金额(元)', - component: 'InputNumber', - componentProps: { - min: 0, - precision: 2, - step: 0.01, - placeholder: '请输入最小砍价金额', - }, - }, - { - fieldName: 'randomMaxPrice', - label: '最大砍价金额(元)', - component: 'InputNumber', - componentProps: { - min: 0, - precision: 2, - step: 0.01, - placeholder: '请输入最大砍价金额', - }, - }, - ]; -} - -/** 列表的搜索表单 */ -export function useGridFormSchema(): VbenFormSchema[] { - return [ - { - fieldName: 'name', - label: '活动名称', - component: 'Input', - componentProps: { - placeholder: '请输入活动名称', - clearable: true, - }, - }, - { - fieldName: 'status', - label: '活动状态', - component: 'Select', - componentProps: { - placeholder: '请选择活动状态', - clearable: true, - options: getDictOptions(DICT_TYPE.COMMON_STATUS, 'number'), - }, - }, - ]; -} - -/** 列表的字段 */ -export function useGridColumns(): VxeTableGridOptions['columns'] { - return [ - { - field: 'id', - title: '活动编号', - minWidth: 80, - }, - { - field: 'name', - title: '活动名称', - minWidth: 140, - }, - { - field: 'activityTime', - title: '活动时间', - minWidth: 210, - formatter: ({ row }) => { - if (!row.startTime || !row.endTime) return ''; - return `${formatDate(row.startTime, 'YYYY-MM-DD')} ~ ${formatDate(row.endTime, 'YYYY-MM-DD')}`; - }, - }, - { - field: 'picUrl', - title: '商品图片', - minWidth: 80, - cellRender: { - name: 'CellImage', - props: { - height: 40, - width: 40, - }, - }, - }, - { - field: 'spuName', - title: '商品标题', - minWidth: 300, - }, - { - field: 'bargainFirstPrice', - title: '起始价格', - minWidth: 100, - formatter: 'formatAmount2', - }, - { - field: 'bargainMinPrice', - title: '砍价底价', - minWidth: 100, - formatter: 'formatAmount2', - }, - { - field: 'recordUserCount', - title: '总砍价人数', - minWidth: 100, - }, - { - field: 'recordSuccessUserCount', - title: '成功砍价人数', - minWidth: 110, - }, - { - field: 'helpUserCount', - title: '助力人数', - minWidth: 100, - }, - { - field: 'status', - title: '活动状态', - minWidth: 100, - cellRender: { - name: 'CellDict', - props: { type: DICT_TYPE.COMMON_STATUS }, - }, - }, - { - field: 'stock', - title: '库存', - minWidth: 80, - }, - { - field: 'totalStock', - title: '总库存', - minWidth: 80, - }, - { - field: 'createTime', - title: '创建时间', - width: 180, - formatter: 'formatDateTime', - }, - { - title: '操作', - width: 150, - fixed: 'right', - slots: { default: 'actions' }, - }, - ]; -} diff --git a/apps/web-antd/src/views/mall/promotion/bargain/activity/index.vue b/apps/web-antd/src/views/mall/promotion/bargain/activity/index.vue deleted file mode 100644 index c6291ade..00000000 --- a/apps/web-antd/src/views/mall/promotion/bargain/activity/index.vue +++ /dev/null @@ -1,178 +0,0 @@ - - - diff --git a/apps/web-antd/src/views/mall/promotion/bargain/activity/modules/form.vue b/apps/web-antd/src/views/mall/promotion/bargain/activity/modules/form.vue deleted file mode 100644 index bfbf6cc9..00000000 --- a/apps/web-antd/src/views/mall/promotion/bargain/activity/modules/form.vue +++ /dev/null @@ -1,92 +0,0 @@ - - - diff --git a/apps/web-antd/src/views/mall/promotion/bargain/record/data.ts b/apps/web-antd/src/views/mall/promotion/bargain/record/data.ts deleted file mode 100644 index 9bd74a66..00000000 --- a/apps/web-antd/src/views/mall/promotion/bargain/record/data.ts +++ /dev/null @@ -1,161 +0,0 @@ -import type { VbenFormSchema } from '#/adapter/form'; -import type { VxeTableGridOptions } from '#/adapter/vxe-table'; - -import { DICT_TYPE, getDictOptions, getRangePickerDefaultProps } from '#/utils'; - -/** 列表的搜索表单 */ -export function useGridFormSchema(): VbenFormSchema[] { - return [ - { - fieldName: 'status', - label: '砍价状态', - component: 'Select', - componentProps: { - placeholder: '请选择砍价状态', - clearable: true, - options: getDictOptions( - DICT_TYPE.PROMOTION_BARGAIN_RECORD_STATUS, - 'number', - ), - }, - }, - { - fieldName: 'createTime', - label: '创建时间', - component: 'RangePicker', - componentProps: { - ...getRangePickerDefaultProps(), - clearable: true, - }, - }, - ]; -} - -/** 列表的字段 */ -export function useGridColumns(): VxeTableGridOptions['columns'] { - return [ - { - field: 'id', - title: '编号', - minWidth: 50, - }, - { - field: 'avatar', - title: '用户头像', - minWidth: 120, - cellRender: { - name: 'CellImage', - props: { - height: 40, - width: 40, - shape: 'circle', - }, - }, - }, - { - field: 'nickname', - title: '用户昵称', - minWidth: 100, - }, - { - field: 'createTime', - title: '发起时间', - width: 180, - formatter: 'formatDateTime', - }, - { - field: 'activity.name', - title: '砍价活动', - minWidth: 150, - }, - { - field: 'activity.bargainMinPrice', - title: '最低价', - minWidth: 100, - formatter: 'formatAmount2', - }, - { - field: 'bargainPrice', - title: '当前价', - minWidth: 100, - formatter: 'formatAmount2', - }, - { - field: 'activity.helpMaxCount', - title: '总砍价次数', - minWidth: 100, - }, - { - field: 'helpCount', - title: '剩余砍价次数', - minWidth: 100, - }, - { - field: 'status', - title: '砍价状态', - minWidth: 100, - cellRender: { - name: 'CellDict', - props: { type: DICT_TYPE.PROMOTION_BARGAIN_RECORD_STATUS }, - }, - }, - { - field: 'endTime', - title: '结束时间', - minWidth: 180, - formatter: 'formatDateTime', - }, - { - field: 'orderId', - title: '订单编号', - minWidth: 100, - }, - { - title: '操作', - width: 100, - fixed: 'right', - slots: { default: 'actions' }, - }, - ]; -} - -/** 助力列表表格列配置 */ -export function useHelpGridColumns(): VxeTableGridOptions['columns'] { - return [ - { - field: 'userId', - title: '用户编号', - minWidth: 80, - }, - { - field: 'avatar', - title: '用户头像', - minWidth: 80, - cellRender: { - name: 'CellImage', - props: { - height: 40, - width: 40, - shape: 'circle', - }, - }, - }, - { - field: 'nickname', - title: '用户昵称', - minWidth: 100, - }, - { - field: 'reducePrice', - title: '砍价金额', - minWidth: 100, - formatter: 'formatAmount2', - }, - { - field: 'createTime', - title: '助力时间', - width: 180, - formatter: 'formatDateTime', - }, - ]; -} diff --git a/apps/web-antd/src/views/mall/promotion/bargain/record/index.vue b/apps/web-antd/src/views/mall/promotion/bargain/record/index.vue deleted file mode 100644 index 88075484..00000000 --- a/apps/web-antd/src/views/mall/promotion/bargain/record/index.vue +++ /dev/null @@ -1,83 +0,0 @@ - - - diff --git a/apps/web-antd/src/views/mall/promotion/bargain/record/modules/list.vue b/apps/web-antd/src/views/mall/promotion/bargain/record/modules/list.vue deleted file mode 100644 index 4d584bdc..00000000 --- a/apps/web-antd/src/views/mall/promotion/bargain/record/modules/list.vue +++ /dev/null @@ -1,67 +0,0 @@ - - - diff --git a/apps/web-antd/src/views/mall/promotion/combination/activity/data.ts b/apps/web-antd/src/views/mall/promotion/combination/activity/data.ts deleted file mode 100644 index e08dfa66..00000000 --- a/apps/web-antd/src/views/mall/promotion/combination/activity/data.ts +++ /dev/null @@ -1,238 +0,0 @@ -import type { VbenFormSchema } from '#/adapter/form'; -import type { VxeTableGridOptions } from '#/adapter/vxe-table'; - -import { formatDate } from '@vben/utils'; - -import { DICT_TYPE, getDictOptions } from '#/utils'; - -/** 表单配置 */ -export function useFormSchema(): VbenFormSchema[] { - return [ - { - fieldName: 'id', - component: 'Input', - dependencies: { - triggerFields: [''], - show: () => false, - }, - }, - { - fieldName: 'name', - label: '活动名称', - component: 'Input', - componentProps: { - placeholder: '请输入活动名称', - }, - rules: 'required', - }, - { - fieldName: 'status', - label: '活动状态', - component: 'Select', - componentProps: { - placeholder: '请选择活动状态', - options: getDictOptions(DICT_TYPE.COMMON_STATUS, 'number'), - }, - rules: 'required', - }, - { - fieldName: 'startTime', - label: '开始时间', - component: 'DatePicker', - componentProps: { - placeholder: '请选择开始时间', - showTime: false, - valueFormat: 'x', - format: 'YYYY-MM-DD', - }, - rules: 'required', - }, - { - fieldName: 'endTime', - label: '结束时间', - component: 'DatePicker', - componentProps: { - placeholder: '请选择结束时间', - showTime: false, - valueFormat: 'x', - format: 'YYYY-MM-DD', - }, - rules: 'required', - }, - { - fieldName: 'userSize', - label: '用户数量', - component: 'InputNumber', - componentProps: { - placeholder: '请输入用户数量', - min: 2, - }, - rules: 'required', - }, - { - fieldName: 'limitDuration', - label: '限制时长', - component: 'InputNumber', - componentProps: { - placeholder: '请输入限制时长(小时)', - min: 0, - }, - rules: 'required', - }, - { - fieldName: 'totalLimitCount', - label: '总限购数量', - component: 'InputNumber', - componentProps: { - placeholder: '请输入总限购数量', - min: 0, - }, - }, - { - fieldName: 'singleLimitCount', - label: '单次限购数量', - component: 'InputNumber', - componentProps: { - placeholder: '请输入单次限购数量', - min: 0, - }, - }, - { - fieldName: 'virtualGroup', - label: '虚拟成团', - component: 'RadioGroup', - componentProps: { - options: getDictOptions(DICT_TYPE.INFRA_BOOLEAN_STRING, 'boolean'), - }, - }, - { - // TODO - fieldName: 'spuId', - label: '拼团商品', - component: 'Input', - }, - ]; -} - -/** 列表的搜索表单 */ -export function useGridFormSchema(): VbenFormSchema[] { - return [ - { - fieldName: 'name', - label: '活动名称', - component: 'Input', - componentProps: { - placeholder: '请输入活动名称', - clearable: true, - }, - }, - { - fieldName: 'status', - label: '活动状态', - component: 'Select', - componentProps: { - placeholder: '请选择活动状态', - clearable: true, - options: getDictOptions(DICT_TYPE.COMMON_STATUS, 'number'), - }, - }, - ]; -} - -/** 列表的字段 */ -export function useGridColumns(): VxeTableGridOptions['columns'] { - return [ - { - field: 'id', - title: '活动编号', - minWidth: 80, - }, - { - field: 'name', - title: '活动名称', - minWidth: 140, - }, - { - field: 'activityTime', - title: '活动时间', - minWidth: 210, - formatter: ({ row }) => { - if (!row.startTime || !row.endTime) return ''; - return `${formatDate(row.startTime, 'YYYY-MM-DD')} ~ ${formatDate(row.endTime, 'YYYY-MM-DD')}`; - }, - }, - { - field: 'picUrl', - title: '商品图片', - minWidth: 80, - cellRender: { - name: 'CellImage', - props: { - height: 40, - width: 40, - }, - }, - }, - { - field: 'spuName', - title: '商品标题', - minWidth: 300, - }, - { - field: 'marketPrice', - title: '原价', - minWidth: 100, - formatter: ({ cellValue }) => { - return `¥${(cellValue / 100).toFixed(2)}`; - }, - }, - { - field: 'combinationPrice', - title: '拼团价', - minWidth: 100, - formatter: ({ row }) => { - if (!row.products || row.products.length === 0) return ''; - const combinationPrice = Math.min( - ...row.products.map((item: any) => item.combinationPrice), - ); - return `¥${(combinationPrice / 100).toFixed(2)}`; - }, - }, - { - field: 'groupCount', - title: '开团组数', - minWidth: 100, - }, - { - field: 'groupSuccessCount', - title: '成团组数', - minWidth: 100, - }, - { - field: 'recordCount', - title: '购买次数', - minWidth: 100, - }, - { - field: 'status', - title: '活动状态', - minWidth: 100, - cellRender: { - name: 'CellDict', - props: { type: DICT_TYPE.COMMON_STATUS }, - }, - }, - { - field: 'createTime', - title: '创建时间', - minWidth: 180, - formatter: 'formatDateTime', - }, - { - title: '操作', - width: 200, - fixed: 'right', - slots: { default: 'actions' }, - }, - ]; -} diff --git a/apps/web-antd/src/views/mall/promotion/combination/activity/index.vue b/apps/web-antd/src/views/mall/promotion/combination/activity/index.vue deleted file mode 100644 index 287071e0..00000000 --- a/apps/web-antd/src/views/mall/promotion/combination/activity/index.vue +++ /dev/null @@ -1,182 +0,0 @@ - - - diff --git a/apps/web-antd/src/views/mall/promotion/combination/activity/modules/form.vue b/apps/web-antd/src/views/mall/promotion/combination/activity/modules/form.vue deleted file mode 100644 index 15115feb..00000000 --- a/apps/web-antd/src/views/mall/promotion/combination/activity/modules/form.vue +++ /dev/null @@ -1,93 +0,0 @@ - - - diff --git a/apps/web-antd/src/views/mall/promotion/combination/record/data.ts b/apps/web-antd/src/views/mall/promotion/combination/record/data.ts deleted file mode 100644 index 3a508217..00000000 --- a/apps/web-antd/src/views/mall/promotion/combination/record/data.ts +++ /dev/null @@ -1,177 +0,0 @@ -import type { VbenFormSchema } from '#/adapter/form'; -import type { VxeTableGridOptions } from '#/adapter/vxe-table'; - -import { DICT_TYPE, getDictOptions } from '#/utils'; - -/** 列表的搜索表单 */ -export function useGridFormSchema(): VbenFormSchema[] { - return [ - { - fieldName: 'status', - label: '拼团状态', - component: 'Select', - componentProps: { - placeholder: '请选择拼团状态', - clearable: true, - options: getDictOptions(DICT_TYPE.COMMON_STATUS, 'number'), - }, - }, - { - fieldName: 'createTime', - label: '创建时间', - component: 'RangePicker', - componentProps: { - placeholder: ['开始时间', '结束时间'], - clearable: true, - valueFormat: 'YYYY-MM-DD HH:mm:ss', - }, - }, - ]; -} - -/** 列表的字段 */ -export function useGridColumns(): VxeTableGridOptions['columns'] { - return [ - { - field: 'id', - title: '拼团编号', - minWidth: 80, - }, - { - field: 'avatar', - title: '头像', - minWidth: 80, - cellRender: { - name: 'CellImage', - props: { - height: 40, - width: 40, - shape: 'circle', - }, - }, - }, - { - field: 'nickname', - title: '昵称', - minWidth: 100, - }, - { - field: 'headId', - title: '开团团长', - minWidth: 100, - }, - { - field: 'picUrl', - title: '拼团商品图', - minWidth: 80, - cellRender: { - name: 'CellImage', - }, - }, - { - field: 'spuName', - title: '拼团商品', - minWidth: 120, - }, - { - field: 'activityName', - title: '拼团活动', - minWidth: 140, - }, - { - field: 'userSize', - title: '几人团', - minWidth: 80, - }, - { - field: 'userCount', - title: '参与人数', - minWidth: 80, - }, - { - field: 'createTime', - title: '参团时间', - minWidth: 180, - formatter: 'formatDateTime', - }, - { - field: 'endTime', - title: '结束时间', - minWidth: 180, - formatter: 'formatDateTime', - }, - { - field: 'status', - title: '拼团状态', - minWidth: 100, - cellRender: { - name: 'CellDict', - props: { type: DICT_TYPE.COMMON_STATUS }, - }, - }, - { - title: '操作', - width: 100, - fixed: 'right', - slots: { default: 'actions' }, - }, - ]; -} - -/** 用户列表表格列配置 */ -export function useUserGridColumns(): VxeTableGridOptions['columns'] { - return [ - { - field: 'id', - title: '编号', - minWidth: 80, - }, - { - field: 'avatar', - title: '用户头像', - minWidth: 80, - cellRender: { - name: 'CellImage', - props: { - height: 40, - width: 40, - shape: 'circle', - }, - }, - }, - { - field: 'nickname', - title: '用户昵称', - minWidth: 100, - }, - { - field: 'headId', - title: '开团团长', - minWidth: 100, - formatter: ({ cellValue }) => { - return cellValue === 0 ? '团长' : '团员'; - }, - }, - { - field: 'createTime', - title: '参团时间', - minWidth: 180, - formatter: 'formatDateTime', - }, - { - field: 'endTime', - title: '结束时间', - minWidth: 180, - formatter: 'formatDateTime', - }, - { - field: 'status', - title: '拼团状态', - minWidth: 100, - cellRender: { - name: 'CellDict', - props: { type: DICT_TYPE.COMMON_STATUS }, - }, - }, - ]; -} diff --git a/apps/web-antd/src/views/mall/promotion/combination/record/index.vue b/apps/web-antd/src/views/mall/promotion/combination/record/index.vue deleted file mode 100644 index b10a156b..00000000 --- a/apps/web-antd/src/views/mall/promotion/combination/record/index.vue +++ /dev/null @@ -1,81 +0,0 @@ - - - diff --git a/apps/web-antd/src/views/mall/promotion/combination/record/modules/list.vue b/apps/web-antd/src/views/mall/promotion/combination/record/modules/list.vue deleted file mode 100644 index 459cd34d..00000000 --- a/apps/web-antd/src/views/mall/promotion/combination/record/modules/list.vue +++ /dev/null @@ -1,63 +0,0 @@ - - - diff --git a/apps/web-antd/src/views/mall/promotion/coupon/data.ts b/apps/web-antd/src/views/mall/promotion/coupon/data.ts deleted file mode 100644 index 36c9fe71..00000000 --- a/apps/web-antd/src/views/mall/promotion/coupon/data.ts +++ /dev/null @@ -1,129 +0,0 @@ -import type { VbenFormSchema } from '#/adapter/form'; -import type { VxeTableGridOptions } from '#/adapter/vxe-table'; - -import { DICT_TYPE, getDictOptions, getRangePickerDefaultProps } from '#/utils'; - -import { discountFormat } from './formatter'; - -/** 列表的搜索表单 */ -export function useGridFormSchema(): VbenFormSchema[] { - return [ - { - fieldName: 'nickname', - label: '会员昵称', - component: 'Input', - componentProps: { - placeholder: '请输入会员昵称', - clearable: true, - }, - }, - { - fieldName: 'createTime', - label: '领取时间', - component: 'RangePicker', - componentProps: { - ...getRangePickerDefaultProps(), - clearable: true, - }, - }, - ]; -} - -/** 列表的字段 */ -export function useGridColumns(): VxeTableGridOptions['columns'] { - return [ - { - field: 'nickname', - title: '会员昵称', - minWidth: 100, - }, - { - field: 'name', - title: '优惠券名称', - minWidth: 140, - }, - { - field: 'productScope', - title: '类型', - minWidth: 110, - cellRender: { - name: 'CellDict', - props: { type: DICT_TYPE.PROMOTION_PRODUCT_SCOPE }, - }, - }, - { - field: 'discountType', - title: '优惠', - minWidth: 110, - cellRender: { - name: 'CellDict', - props: { type: DICT_TYPE.PROMOTION_DISCOUNT_TYPE }, - }, - }, - { - field: 'discountPrice', - title: '优惠力度', - minWidth: 110, - formatter: ({ row }) => { - return discountFormat(row); - }, - }, - { - field: 'takeType', - title: '领取方式', - minWidth: 110, - cellRender: { - name: 'CellDict', - props: { type: DICT_TYPE.PROMOTION_COUPON_TAKE_TYPE }, - }, - }, - { - field: 'status', - title: '状态', - minWidth: 110, - cellRender: { - name: 'CellDict', - props: { type: DICT_TYPE.PROMOTION_COUPON_STATUS }, - }, - }, - { - field: 'createTime', - title: '领取时间', - minWidth: 180, - formatter: 'formatDateTime', - }, - { - field: 'useTime', - title: '使用时间', - minWidth: 180, - formatter: 'formatDateTime', - }, - { - title: '操作', - width: 100, - fixed: 'right', - slots: { default: 'actions' }, - }, - ]; -} - -/** 获取状态选项卡配置 */ -export function getStatusTabs() { - const tabs = [ - { - label: '全部', - value: 'all', - }, - ]; - - // 添加字典状态选项 - const statusOptions = getDictOptions(DICT_TYPE.PROMOTION_COUPON_STATUS); - for (const option of statusOptions) { - tabs.push({ - label: option.label, - value: String(option.value), - }); - } - - return tabs; -} diff --git a/apps/web-antd/src/views/mall/promotion/coupon/formatter.ts b/apps/web-antd/src/views/mall/promotion/coupon/formatter.ts deleted file mode 100644 index 41e6ec37..00000000 --- a/apps/web-antd/src/views/mall/promotion/coupon/formatter.ts +++ /dev/null @@ -1,65 +0,0 @@ -import type { MallCouponTemplateApi } from '#/api/mall/promotion/coupon/couponTemplate'; - -import { floatToFixed2, formatDate } from '@vben/utils'; - -import { - CouponTemplateValidityTypeEnum, - PromotionDiscountTypeEnum, -} from '#/utils'; - -// 格式化【优惠金额/折扣】 -export function discountFormat(row: MallCouponTemplateApi.CouponTemplate) { - if (row.discountType === PromotionDiscountTypeEnum.PRICE.type) { - return `¥${floatToFixed2(row.discountPrice)}`; - } - if (row.discountType === PromotionDiscountTypeEnum.PERCENT.type) { - return `${row.discountPercent}%`; - } - return `未知【${row.discountType}】`; -} - -// 格式化【领取上限】 -export function takeLimitCountFormat( - row: MallCouponTemplateApi.CouponTemplate, -) { - if (row.takeLimitCount) { - if (row.takeLimitCount === -1) { - return '无领取限制'; - } - return `${row.takeLimitCount} 张/人`; - } else { - return ' '; - } -} - -// 格式化【有效期限】 -export function validityTypeFormat(row: MallCouponTemplateApi.CouponTemplate) { - if (row.validityType === CouponTemplateValidityTypeEnum.DATE.type) { - return `${formatDate(row.validStartTime)} 至 ${formatDate(row.validEndTime)}`; - } - if (row.validityType === CouponTemplateValidityTypeEnum.TERM.type) { - return `领取后第 ${row.fixedStartTerm} - ${row.fixedEndTerm} 天内可用`; - } - return `未知【${row.validityType}】`; -} - -// 格式化【totalCount】 -export function totalCountFormat(row: MallCouponTemplateApi.CouponTemplate) { - if (row.totalCount === -1) { - return '不限制'; - } - return row.totalCount; -} - -// 格式化【剩余数量】 -export function remainedCountFormat(row: MallCouponTemplateApi.CouponTemplate) { - if (row.totalCount === -1) { - return '不限制'; - } - return row.totalCount - row.takeCount; -} - -// 格式化【最低消费】 -export function usePriceFormat(row: MallCouponTemplateApi.CouponTemplate) { - return `¥${floatToFixed2(row.usePrice)}`; -} diff --git a/apps/web-antd/src/views/mall/promotion/coupon/index.vue b/apps/web-antd/src/views/mall/promotion/coupon/index.vue deleted file mode 100644 index 27fbb2e3..00000000 --- a/apps/web-antd/src/views/mall/promotion/coupon/index.vue +++ /dev/null @@ -1,132 +0,0 @@ - - - diff --git a/apps/web-antd/src/views/mall/promotion/coupon/template/data.ts b/apps/web-antd/src/views/mall/promotion/coupon/template/data.ts deleted file mode 100644 index e2359f2d..00000000 --- a/apps/web-antd/src/views/mall/promotion/coupon/template/data.ts +++ /dev/null @@ -1,252 +0,0 @@ -import type { VbenFormSchema } from '#/adapter/form'; -import type { VxeTableGridOptions } from '#/adapter/vxe-table'; - -// 格式化函数移到组件内部实现 -import { z } from '#/adapter/form'; -import { - CommonStatusEnum, - DICT_TYPE, - getDictOptions, - getRangePickerDefaultProps, -} from '#/utils'; - -import { - discountFormat, - remainedCountFormat, - takeLimitCountFormat, - totalCountFormat, - validityTypeFormat, -} from '../formatter'; - -/** 新增/修改的表单 */ -export function useFormSchema(): VbenFormSchema[] { - return [ - { - fieldName: 'id', - component: 'Input', - dependencies: { - triggerFields: [''], - show: () => false, - }, - }, - { - fieldName: 'name', - label: '优惠券名称', - component: 'Input', - componentProps: { - placeholder: '请输入优惠券名称', - }, - rules: 'required', - }, - { - fieldName: 'description', - label: '优惠券描述', - component: 'Textarea', - }, - // TODO - { - fieldName: 'productScope', - label: '优惠类型', - component: 'RadioGroup', - componentProps: { - options: getDictOptions(DICT_TYPE.PROMOTION_PRODUCT_SCOPE, 'number'), - }, - rules: 'required', - }, - { - fieldName: 'takeType', - label: '领取方式', - component: 'Select', - componentProps: { - placeholder: '请选择领取方式', - options: getDictOptions(DICT_TYPE.PROMOTION_COUPON_TAKE_TYPE, 'number'), - }, - rules: 'required', - }, - { - fieldName: 'validityType', - label: '有效期类型', - component: 'Select', - componentProps: { - placeholder: '请选择有效期类型', - options: getDictOptions( - DICT_TYPE.PROMOTION_COUPON_TEMPLATE_VALIDITY_TYPE, - 'number', - ), - }, - rules: 'required', - }, - { - fieldName: 'totalCount', - label: '发放数量', - component: 'InputNumber', - componentProps: { - min: 0, - placeholder: '请输入发放数量', - }, - rules: 'required', - }, - { - fieldName: 'takeLimitCount', - label: '领取上限', - component: 'InputNumber', - componentProps: { - min: 0, - placeholder: '请输入领取上限', - }, - rules: 'required', - }, - { - fieldName: 'status', - label: '优惠券状态', - component: 'RadioGroup', - componentProps: { - options: getDictOptions(DICT_TYPE.COMMON_STATUS, 'number'), - buttonStyle: 'solid', - optionType: 'button', - }, - rules: z.number().default(CommonStatusEnum.ENABLE), - }, - ]; -} - -/** 列表的搜索表单 */ -export function useGridFormSchema(): VbenFormSchema[] { - return [ - { - fieldName: 'name', - label: '优惠券名称', - component: 'Input', - componentProps: { - placeholder: '请输入优惠券名称', - clearable: true, - }, - }, - { - fieldName: 'discountType', - label: '优惠类型', - component: 'Select', - componentProps: { - placeholder: '请选择优惠类型', - clearable: true, - options: getDictOptions(DICT_TYPE.PROMOTION_DISCOUNT_TYPE, 'number'), - }, - }, - { - fieldName: 'status', - label: '优惠券状态', - component: 'Select', - componentProps: { - placeholder: '请选择优惠券状态', - clearable: true, - options: getDictOptions(DICT_TYPE.COMMON_STATUS, 'number'), - }, - }, - { - fieldName: 'createTime', - label: '创建时间', - component: 'RangePicker', - componentProps: { - ...getRangePickerDefaultProps(), - clearable: true, - }, - }, - ]; -} - -/** 列表的字段 */ -export function useGridColumns(): VxeTableGridOptions['columns'] { - return [ - { type: 'checkbox', width: 40 }, - { - field: 'name', - title: '优惠券名称', - minWidth: 140, - }, - { - field: 'productScope', - title: '类型', - minWidth: 130, - cellRender: { - name: 'CellDict', - props: { type: DICT_TYPE.PROMOTION_PRODUCT_SCOPE }, - }, - }, - { - field: 'discountType', - title: '优惠', - minWidth: 110, - cellRender: { - name: 'CellDict', - props: { type: DICT_TYPE.PROMOTION_DISCOUNT_TYPE }, - }, - }, - { - field: 'discountPrice', - title: '优惠力度', - minWidth: 110, - formatter: ({ row }) => { - return discountFormat(row); - }, - }, - { - field: 'takeType', - title: '领取方式', - minWidth: 100, - cellRender: { - name: 'CellDict', - props: { type: DICT_TYPE.PROMOTION_COUPON_TAKE_TYPE }, - }, - }, - { - field: 'validityType', - title: '使用时间', - minWidth: 180, - formatter: ({ row }) => { - return validityTypeFormat(row); - }, - }, - { - field: 'totalCount', - title: '发放数量', - minWidth: 100, - formatter: ({ row }) => { - return totalCountFormat(row); - }, - }, - { - field: 'remainedCount', - title: '剩余数量', - minWidth: 100, - formatter: ({ row }) => { - return remainedCountFormat(row); - }, - }, - { - field: 'takeLimitCount', - title: '领取上限', - minWidth: 100, - formatter: ({ row }) => { - return takeLimitCountFormat(row); - }, - }, - { - field: 'status', - title: '状态', - minWidth: 100, - slots: { default: 'status' }, - }, - { - field: 'createTime', - title: '创建时间', - minWidth: 180, - formatter: 'formatDateTime', - }, - { - title: '操作', - width: 120, - fixed: 'right', - slots: { default: 'actions' }, - }, - ]; -} diff --git a/apps/web-antd/src/views/mall/promotion/coupon/template/index.vue b/apps/web-antd/src/views/mall/promotion/coupon/template/index.vue deleted file mode 100644 index 98529564..00000000 --- a/apps/web-antd/src/views/mall/promotion/coupon/template/index.vue +++ /dev/null @@ -1,190 +0,0 @@ - - - diff --git a/apps/web-antd/src/views/mall/promotion/coupon/template/modules/form.vue b/apps/web-antd/src/views/mall/promotion/coupon/template/modules/form.vue deleted file mode 100644 index f6436098..00000000 --- a/apps/web-antd/src/views/mall/promotion/coupon/template/modules/form.vue +++ /dev/null @@ -1,89 +0,0 @@ - - - diff --git a/apps/web-antd/src/views/mall/promotion/discountActivity/data.ts b/apps/web-antd/src/views/mall/promotion/discountActivity/data.ts deleted file mode 100644 index dffafe32..00000000 --- a/apps/web-antd/src/views/mall/promotion/discountActivity/data.ts +++ /dev/null @@ -1,159 +0,0 @@ -import type { VbenFormSchema } from '#/adapter/form'; -import type { VxeTableGridOptions } from '#/adapter/vxe-table'; - -import { formatDate } from '@vben/utils'; - -import { DICT_TYPE, getDictOptions } from '#/utils'; - -/** 表单配置 */ -export function useFormSchema(): VbenFormSchema[] { - return [ - { - fieldName: 'id', - component: 'Input', - dependencies: { - triggerFields: [''], - show: () => false, - }, - }, - { - fieldName: 'name', - label: '活动名称', - component: 'Input', - componentProps: { - placeholder: '请输入活动名称', - }, - rules: 'required', - }, - { - fieldName: 'status', - label: '活动状态', - component: 'Select', - componentProps: { - placeholder: '请选择活动状态', - options: getDictOptions(DICT_TYPE.COMMON_STATUS, 'number'), - }, - rules: 'required', - }, - { - fieldName: 'startTime', - label: '开始时间', - component: 'DatePicker', - componentProps: { - placeholder: '请选择开始时间', - showTime: false, - valueFormat: 'x', - format: 'YYYY-MM-DD', - }, - rules: 'required', - }, - { - fieldName: 'endTime', - label: '结束时间', - component: 'DatePicker', - componentProps: { - placeholder: '请选择结束时间', - showTime: false, - valueFormat: 'x', - format: 'YYYY-MM-DD', - }, - rules: 'required', - }, - { - fieldName: 'remark', - label: '备注', - component: 'Textarea', - componentProps: { - placeholder: '请输入备注', - rows: 4, - }, - }, - // TODO - ]; -} - -/** 列表的搜索表单 */ -export function useGridFormSchema(): VbenFormSchema[] { - return [ - { - fieldName: 'name', - label: '活动名称', - component: 'Input', - componentProps: { - placeholder: '请输入活动名称', - clearable: true, - }, - }, - { - fieldName: 'status', - label: '活动状态', - component: 'Select', - componentProps: { - placeholder: '请选择活动状态', - clearable: true, - options: getDictOptions(DICT_TYPE.COMMON_STATUS, 'number'), - }, - }, - { - fieldName: 'activeTime', - label: '活动时间', - component: 'RangePicker', - componentProps: { - placeholder: ['开始时间', '结束时间'], - clearable: true, - valueFormat: 'YYYY-MM-DD HH:mm:ss', - }, - }, - ]; -} - -/** 列表的字段 */ -export function useGridColumns(): VxeTableGridOptions['columns'] { - return [ - { - field: 'id', - title: '活动编号', - minWidth: 80, - }, - { - field: 'name', - title: '活动名称', - minWidth: 140, - }, - { - field: 'activityTime', - title: '活动时间', - minWidth: 210, - formatter: ({ row }) => { - if (!row.startTime || !row.endTime) return ''; - return `${formatDate(row.startTime, 'YYYY-MM-DD')} ~ ${formatDate(row.endTime, 'YYYY-MM-DD')}`; - }, - }, - { - field: 'status', - title: '活动状态', - minWidth: 100, - cellRender: { - name: 'CellDict', - props: { type: DICT_TYPE.COMMON_STATUS }, - }, - }, - { - field: 'remark', - title: '备注', - minWidth: 200, - }, - { - field: 'createTime', - title: '创建时间', - minWidth: 180, - formatter: 'formatDateTime', - }, - { - title: '操作', - width: 150, - fixed: 'right', - slots: { default: 'actions' }, - }, - ]; -} diff --git a/apps/web-antd/src/views/mall/promotion/discountActivity/index.vue b/apps/web-antd/src/views/mall/promotion/discountActivity/index.vue deleted file mode 100644 index de252278..00000000 --- a/apps/web-antd/src/views/mall/promotion/discountActivity/index.vue +++ /dev/null @@ -1,178 +0,0 @@ - - - diff --git a/apps/web-antd/src/views/mall/promotion/discountActivity/modules/form.vue b/apps/web-antd/src/views/mall/promotion/discountActivity/modules/form.vue deleted file mode 100644 index 120a7a90..00000000 --- a/apps/web-antd/src/views/mall/promotion/discountActivity/modules/form.vue +++ /dev/null @@ -1,98 +0,0 @@ - - - diff --git a/apps/web-antd/src/views/mall/promotion/diy/page/data.ts b/apps/web-antd/src/views/mall/promotion/diy/page/data.ts deleted file mode 100644 index 554f6829..00000000 --- a/apps/web-antd/src/views/mall/promotion/diy/page/data.ts +++ /dev/null @@ -1,109 +0,0 @@ -import type { VbenFormSchema } from '#/adapter/form'; -import type { VxeTableGridOptions } from '#/adapter/vxe-table'; - -/** 表单配置 */ -export function useFormSchema(): VbenFormSchema[] { - return [ - { - fieldName: 'id', - component: 'Input', - dependencies: { - triggerFields: [''], - show: () => false, - }, - }, - { - fieldName: 'name', - label: '页面名称', - component: 'Input', - componentProps: { - placeholder: '请输入页面名称', - }, - rules: 'required', - }, - { - fieldName: 'remark', - label: '备注', - component: 'Textarea', - componentProps: { - placeholder: '请输入备注', - rows: 4, - }, - }, - { - fieldName: 'previewPicUrls', - component: 'ImageUpload', - label: '预览图', - componentProps: { - maxNumber: 10, - multiple: true, - }, - }, - ]; -} - -/** 列表的搜索表单 */ -export function useGridFormSchema(): VbenFormSchema[] { - return [ - { - fieldName: 'name', - label: '页面名称', - component: 'Input', - componentProps: { - placeholder: '请输入页面名称', - clearable: true, - }, - }, - { - fieldName: 'createTime', - label: '创建时间', - component: 'RangePicker', - componentProps: { - placeholder: ['开始时间', '结束时间'], - clearable: true, - valueFormat: 'YYYY-MM-DD HH:mm:ss', - }, - }, - ]; -} - -/** 列表的字段 */ -export function useGridColumns(): VxeTableGridOptions['columns'] { - return [ - { - field: 'id', - title: '编号', - minWidth: 80, - }, - { - field: 'previewPicUrls', - title: '预览图', - minWidth: 120, - cellRender: { - name: 'CellImages', - }, - }, - { - field: 'name', - title: '页面名称', - minWidth: 150, - }, - { - field: 'remark', - title: '备注', - minWidth: 200, - }, - { - field: 'createTime', - title: '创建时间', - minWidth: 180, - formatter: 'formatDateTime', - }, - { - title: '操作', - width: 200, - fixed: 'right', - slots: { default: 'actions' }, - }, - ]; -} diff --git a/apps/web-antd/src/views/mall/promotion/diy/page/index.vue b/apps/web-antd/src/views/mall/promotion/diy/page/index.vue deleted file mode 100644 index e4c8c7a7..00000000 --- a/apps/web-antd/src/views/mall/promotion/diy/page/index.vue +++ /dev/null @@ -1,141 +0,0 @@ - - - diff --git a/apps/web-antd/src/views/mall/promotion/diy/page/modules/form.vue b/apps/web-antd/src/views/mall/promotion/diy/page/modules/form.vue deleted file mode 100644 index 7d24c171..00000000 --- a/apps/web-antd/src/views/mall/promotion/diy/page/modules/form.vue +++ /dev/null @@ -1,92 +0,0 @@ - - - diff --git a/apps/web-antd/src/views/mall/promotion/diy/template/data.ts b/apps/web-antd/src/views/mall/promotion/diy/template/data.ts deleted file mode 100644 index 0c46faf7..00000000 --- a/apps/web-antd/src/views/mall/promotion/diy/template/data.ts +++ /dev/null @@ -1,120 +0,0 @@ -import type { VbenFormSchema } from '#/adapter/form'; -import type { VxeTableGridOptions } from '#/adapter/vxe-table'; - -import { DICT_TYPE } from '#/utils/dict'; - -/** 表单配置 */ -export function useFormSchema(): VbenFormSchema[] { - return [ - { - fieldName: 'id', - component: 'Input', - dependencies: { - triggerFields: [''], - show: () => false, - }, - }, - { - fieldName: 'name', - label: '模板名称', - component: 'Input', - componentProps: { - placeholder: '请输入模板名称', - }, - rules: 'required', - }, - { - fieldName: 'remark', - label: '备注', - component: 'Textarea', - componentProps: { - placeholder: '请输入备注', - rows: 4, - }, - }, - { - fieldName: 'previewPicUrls', - component: 'ImageUpload', - label: '预览图', - componentProps: { - maxNumber: 10, - multiple: true, - }, - }, - ]; -} - -/** 列表的搜索表单 */ -export function useGridFormSchema(): VbenFormSchema[] { - return [ - { - fieldName: 'name', - label: '模板名称', - component: 'Input', - componentProps: { - placeholder: '请输入模板名称', - clearable: true, - }, - }, - { - fieldName: 'createTime', - label: '创建时间', - component: 'RangePicker', - componentProps: { - placeholder: ['开始时间', '结束时间'], - clearable: true, - valueFormat: 'YYYY-MM-DD HH:mm:ss', - }, - }, - ]; -} - -/** 列表的字段 */ -export function useGridColumns(): VxeTableGridOptions['columns'] { - return [ - { - field: 'id', - title: '编号', - minWidth: 80, - }, - { - field: 'previewPicUrls', - title: '预览图', - minWidth: 120, - cellRender: { - name: 'CellImages', - }, - }, - { - field: 'name', - title: '模板名称', - minWidth: 150, - }, - { - field: 'used', - title: '是否使用', - minWidth: 100, - cellRender: { - name: 'CellDict', - props: { type: DICT_TYPE.INFRA_BOOLEAN_STRING }, - }, - }, - { - field: 'remark', - title: '备注', - minWidth: 200, - }, - { - field: 'createTime', - title: '创建时间', - minWidth: 180, - formatter: 'formatDateTime', - }, - { - title: '操作', - width: 250, - fixed: 'right', - slots: { default: 'actions' }, - }, - ]; -} diff --git a/apps/web-antd/src/views/mall/promotion/diy/template/index.vue b/apps/web-antd/src/views/mall/promotion/diy/template/index.vue deleted file mode 100644 index 74e47ed0..00000000 --- a/apps/web-antd/src/views/mall/promotion/diy/template/index.vue +++ /dev/null @@ -1,167 +0,0 @@ - - - diff --git a/apps/web-antd/src/views/mall/promotion/diy/template/modules/form.vue b/apps/web-antd/src/views/mall/promotion/diy/template/modules/form.vue deleted file mode 100644 index 7370dce3..00000000 --- a/apps/web-antd/src/views/mall/promotion/diy/template/modules/form.vue +++ /dev/null @@ -1,99 +0,0 @@ - - - diff --git a/apps/web-antd/src/views/mall/promotion/kefu/index.vue b/apps/web-antd/src/views/mall/promotion/kefu/index.vue deleted file mode 100644 index 59a7d217..00000000 --- a/apps/web-antd/src/views/mall/promotion/kefu/index.vue +++ /dev/null @@ -1,28 +0,0 @@ - - - diff --git a/apps/web-antd/src/views/mall/promotion/point/activity/data.ts b/apps/web-antd/src/views/mall/promotion/point/activity/data.ts deleted file mode 100644 index 27625475..00000000 --- a/apps/web-antd/src/views/mall/promotion/point/activity/data.ts +++ /dev/null @@ -1,140 +0,0 @@ -import type { VbenFormSchema } from '#/adapter/form'; -import type { VxeTableGridOptions } from '#/adapter/vxe-table'; - -import { DICT_TYPE } from '#/utils/dict'; - -/** 表单配置 */ -export function useFormSchema(): VbenFormSchema[] { - return [ - { - fieldName: 'id', - component: 'Input', - dependencies: { - triggerFields: [''], - show: () => false, - }, - }, - { - fieldName: 'spuId', - label: '积分商城活动商品', - component: 'Input', - componentProps: { - placeholder: '请选择商品', - }, - rules: 'required', - }, - { - fieldName: 'sort', - label: '排序', - component: 'InputNumber', - componentProps: { - placeholder: '请输入排序', - min: 0, - }, - rules: 'required', - }, - { - fieldName: 'remark', - label: '备注', - component: 'Textarea', - componentProps: { - placeholder: '请输入备注', - rows: 4, - }, - }, - ]; -} - -/** 列表的搜索表单 */ -export function useGridFormSchema(): VbenFormSchema[] { - return [ - { - fieldName: 'status', - label: '活动状态', - component: 'Select', - componentProps: { - placeholder: '请选择活动状态', - clearable: true, - dictType: DICT_TYPE.COMMON_STATUS, - }, - }, - ]; -} - -/** 列表的字段 */ -export function useGridColumns(): VxeTableGridOptions['columns'] { - return [ - { - field: 'id', - title: '活动编号', - minWidth: 80, - }, - { - field: 'picUrl', - title: '商品图片', - minWidth: 80, - cellRender: { - name: 'CellImage', - }, - }, - { - field: 'spuName', - title: '商品标题', - minWidth: 300, - }, - { - field: 'marketPrice', - title: '原价', - minWidth: 100, - formatter: 'formatAmount2', - }, - { - field: 'point', - title: '兑换积分', - minWidth: 100, - }, - { - field: 'price', - title: '兑换金额', - minWidth: 100, - formatter: 'formatAmount2', - }, - { - field: 'status', - title: '活动状态', - minWidth: 100, - cellRender: { - name: 'CellDict', - props: { type: DICT_TYPE.COMMON_STATUS }, - }, - }, - { - field: 'stock', - title: '库存', - minWidth: 80, - }, - { - field: 'totalStock', - title: '总库存', - minWidth: 80, - }, - { - field: 'redeemedQuantity', - title: '已兑换数量', - minWidth: 100, - slots: { default: 'redeemedQuantity' }, - }, - { - field: 'createTime', - title: '创建时间', - minWidth: 180, - formatter: 'formatDateTime', - }, - { - title: '操作', - width: 150, - fixed: 'right', - slots: { default: 'actions' }, - }, - ]; -} diff --git a/apps/web-antd/src/views/mall/promotion/point/activity/index.vue b/apps/web-antd/src/views/mall/promotion/point/activity/index.vue deleted file mode 100644 index 7e6c5c4b..00000000 --- a/apps/web-antd/src/views/mall/promotion/point/activity/index.vue +++ /dev/null @@ -1,161 +0,0 @@ - - - diff --git a/apps/web-antd/src/views/mall/promotion/point/activity/modules/form.vue b/apps/web-antd/src/views/mall/promotion/point/activity/modules/form.vue deleted file mode 100644 index a698f812..00000000 --- a/apps/web-antd/src/views/mall/promotion/point/activity/modules/form.vue +++ /dev/null @@ -1,107 +0,0 @@ - - - diff --git a/apps/web-antd/src/views/mall/promotion/rewardActivity/data.ts b/apps/web-antd/src/views/mall/promotion/rewardActivity/data.ts deleted file mode 100644 index c145669b..00000000 --- a/apps/web-antd/src/views/mall/promotion/rewardActivity/data.ts +++ /dev/null @@ -1,166 +0,0 @@ -import type { VbenFormSchema } from '#/adapter/form'; -import type { VxeTableGridOptions } from '#/adapter/vxe-table'; - -import { DICT_TYPE, getDictOptions } from '#/utils'; - -/** 表单配置 */ -export function useFormSchema(): VbenFormSchema[] { - return [ - { - fieldName: 'id', - component: 'Input', - dependencies: { - triggerFields: [''], - show: () => false, - }, - }, - { - fieldName: 'name', - label: '活动名称', - component: 'Input', - componentProps: { - placeholder: '请输入活动名称', - }, - rules: 'required', - }, - { - fieldName: 'startTime', - label: '开始时间', - component: 'DatePicker', - componentProps: { - placeholder: '请选择开始时间', - showTime: true, - valueFormat: 'x', - format: 'YYYY-MM-DD HH:mm:ss', - }, - rules: 'required', - }, - { - fieldName: 'endTime', - label: '结束时间', - component: 'DatePicker', - componentProps: { - placeholder: '请选择结束时间', - showTime: true, - valueFormat: 'x', - format: 'YYYY-MM-DD HH:mm:ss', - }, - rules: 'required', - }, - { - fieldName: 'conditionType', - label: '条件类型', - component: 'RadioGroup', - componentProps: { - options: getDictOptions(DICT_TYPE.PROMOTION_CONDITION_TYPE, 'number'), - }, - rules: 'required', - }, - { - fieldName: 'productScope', - label: '商品范围', - component: 'RadioGroup', - componentProps: { - options: getDictOptions(DICT_TYPE.PROMOTION_PRODUCT_SCOPE, 'number'), - }, - rules: 'required', - }, - { - fieldName: 'remark', - label: '备注', - component: 'Textarea', - componentProps: { - placeholder: '请输入备注', - rows: 4, - }, - }, - ]; -} - -/** 列表的搜索表单 */ -export function useGridFormSchema(): VbenFormSchema[] { - return [ - { - fieldName: 'name', - label: '活动名称', - component: 'Input', - componentProps: { - placeholder: '请输入活动名称', - clearable: true, - }, - }, - { - fieldName: 'status', - label: '活动状态', - component: 'Select', - componentProps: { - placeholder: '请选择活动状态', - clearable: true, - options: getDictOptions(DICT_TYPE.COMMON_STATUS, 'number'), - }, - }, - { - fieldName: 'createTime', - label: '活动时间', - component: 'RangePicker', - componentProps: { - placeholder: ['活动开始日期', '活动结束日期'], - clearable: true, - valueFormat: 'YYYY-MM-DD HH:mm:ss', - }, - }, - ]; -} - -/** 列表的字段 */ -export function useGridColumns(): VxeTableGridOptions['columns'] { - return [ - { - field: 'name', - title: '活动名称', - minWidth: 140, - }, - { - field: 'productScope', - title: '活动范围', - minWidth: 100, - cellRender: { - name: 'CellDict', - props: { type: DICT_TYPE.PROMOTION_PRODUCT_SCOPE }, - }, - }, - { - field: 'startTime', - title: '活动开始时间', - minWidth: 180, - formatter: 'formatDateTime', - }, - { - field: 'endTime', - title: '活动结束时间', - minWidth: 180, - formatter: 'formatDateTime', - }, - { - field: 'status', - title: '状态', - minWidth: 100, - cellRender: { - name: 'CellDict', - props: { type: DICT_TYPE.COMMON_STATUS }, - }, - }, - { - field: 'createTime', - title: '创建时间', - minWidth: 180, - formatter: 'formatDateTime', - }, - { - title: '操作', - width: 180, - fixed: 'right', - slots: { default: 'actions' }, - }, - ]; -} diff --git a/apps/web-antd/src/views/mall/promotion/rewardActivity/index.vue b/apps/web-antd/src/views/mall/promotion/rewardActivity/index.vue deleted file mode 100644 index acc5112d..00000000 --- a/apps/web-antd/src/views/mall/promotion/rewardActivity/index.vue +++ /dev/null @@ -1,178 +0,0 @@ - - - diff --git a/apps/web-antd/src/views/mall/promotion/rewardActivity/modules/form.vue b/apps/web-antd/src/views/mall/promotion/rewardActivity/modules/form.vue deleted file mode 100644 index 7e209a90..00000000 --- a/apps/web-antd/src/views/mall/promotion/rewardActivity/modules/form.vue +++ /dev/null @@ -1,105 +0,0 @@ - - - diff --git a/apps/web-antd/src/views/mall/promotion/seckill/activity/data.ts b/apps/web-antd/src/views/mall/promotion/seckill/activity/data.ts deleted file mode 100644 index 2d294e8e..00000000 --- a/apps/web-antd/src/views/mall/promotion/seckill/activity/data.ts +++ /dev/null @@ -1,126 +0,0 @@ -import type { VbenFormSchema } from '#/adapter/form'; -import type { VxeTableGridOptions } from '#/adapter/vxe-table'; - -import { DICT_TYPE, getDictOptions } from '#/utils'; - -/** 列表的搜索表单 */ -export function useGridFormSchema(): VbenFormSchema[] { - return [ - { - fieldName: 'name', - label: '活动名称', - component: 'Input', - componentProps: { - placeholder: '请输入活动名称', - clearable: true, - }, - }, - { - fieldName: 'status', - label: '活动状态', - component: 'Select', - componentProps: { - placeholder: '请选择活动状态', - clearable: true, - options: getDictOptions(DICT_TYPE.COMMON_STATUS, 'number'), - }, - }, - ]; -} - -/** 列表的字段 */ -export function useGridColumns(): VxeTableGridOptions['columns'] { - return [ - { - field: 'id', - title: '活动编号', - minWidth: 80, - }, - { - field: 'name', - title: '活动名称', - minWidth: 140, - }, - { - field: 'configIds', - title: '秒杀时段', - minWidth: 220, - slots: { default: 'configIds' }, - }, - { - field: 'startTime', - title: '活动时间', - minWidth: 210, - slots: { default: 'timeRange' }, - }, - { - field: 'picUrl', - title: '商品图片', - minWidth: 80, - cellRender: { - name: 'CellImage', - }, - }, - { - field: 'spuName', - title: '商品标题', - minWidth: 300, - }, - { - field: 'marketPrice', - title: '原价', - minWidth: 100, - formatter: ({ row }) => `¥${(row.marketPrice / 100).toFixed(2)}`, - }, - { - field: 'seckillPrice', - title: '秒杀价', - minWidth: 100, - formatter: ({ row }) => { - if (!(row.products || row.products.length === 0)) { - return '¥0.00'; - } - const seckillPrice = Math.min( - ...row.products.map((item: any) => item.seckillPrice), - ); - return `¥${(seckillPrice / 100).toFixed(2)}`; - }, - }, - { - field: 'status', - title: '活动状态', - align: 'center', - minWidth: 100, - cellRender: { - name: 'CellDict', - props: { type: DICT_TYPE.COMMON_STATUS }, - }, - }, - { - field: 'stock', - title: '库存', - align: 'center', - minWidth: 80, - }, - { - field: 'totalStock', - title: '总库存', - align: 'center', - minWidth: 80, - }, - { - field: 'createTime', - title: '创建时间', - align: 'center', - minWidth: 180, - formatter: 'formatDateTime', - }, - { - title: '操作', - align: 'center', - width: 150, - fixed: 'right', - slots: { default: 'actions' }, - }, - ]; -} diff --git a/apps/web-antd/src/views/mall/promotion/seckill/activity/formatter.ts b/apps/web-antd/src/views/mall/promotion/seckill/activity/formatter.ts deleted file mode 100644 index db1bce54..00000000 --- a/apps/web-antd/src/views/mall/promotion/seckill/activity/formatter.ts +++ /dev/null @@ -1,34 +0,0 @@ -import { formatDate } from '@vben/utils'; - -// 全局变量,用于存储配置列表 -let configList: any[] = []; - -/** 设置配置列表 */ -export function setConfigList(list: any[]) { - configList = list; -} - -/** 格式化配置名称 */ -export function formatConfigNames(configId: number): string { - const config = configList.find((item) => item.id === configId); - return config === null || config === undefined - ? '' - : `${config.name}[${config.startTime} ~ ${config.endTime}]`; -} - -/** 格式化秒杀价格 */ -export function formatSeckillPrice(products: any[]): string { - if (!products || products.length === 0) { - return '¥0.00'; - } - const seckillPrice = Math.min(...products.map((item) => item.seckillPrice)); - return `¥${(seckillPrice / 100).toFixed(2)}`; -} - -/** 格式化活动时间范围 */ -export function formatTimeRange( - startTime: Date | string, - endTime: Date | string, -): string { - return `${formatDate(startTime, 'YYYY-MM-DD')} ~ ${formatDate(endTime, 'YYYY-MM-DD')}`; -} diff --git a/apps/web-antd/src/views/mall/promotion/seckill/activity/index.vue b/apps/web-antd/src/views/mall/promotion/seckill/activity/index.vue deleted file mode 100644 index 0d3a6cb0..00000000 --- a/apps/web-antd/src/views/mall/promotion/seckill/activity/index.vue +++ /dev/null @@ -1,198 +0,0 @@ - - - diff --git a/apps/web-antd/src/views/mall/promotion/seckill/activity/modules/form.vue b/apps/web-antd/src/views/mall/promotion/seckill/activity/modules/form.vue deleted file mode 100644 index 99c2767d..00000000 --- a/apps/web-antd/src/views/mall/promotion/seckill/activity/modules/form.vue +++ /dev/null @@ -1,121 +0,0 @@ - - - diff --git a/apps/web-antd/src/views/mall/promotion/seckill/config/data.ts b/apps/web-antd/src/views/mall/promotion/seckill/config/data.ts deleted file mode 100644 index 845169b6..00000000 --- a/apps/web-antd/src/views/mall/promotion/seckill/config/data.ts +++ /dev/null @@ -1,151 +0,0 @@ -import type { VbenFormSchema } from '#/adapter/form'; -import type { VxeTableGridOptions } from '#/adapter/vxe-table'; -import type { MallSeckillConfigApi } from '#/api/mall/promotion/seckill/seckillConfig'; - -import { DICT_TYPE, getDictOptions } from '#/utils'; - -/** 新增/修改的表单 */ -export function useFormSchema(): VbenFormSchema[] { - return [ - { - component: 'Input', - fieldName: 'id', - dependencies: { - triggerFields: [''], - show: () => false, - }, - }, - { - fieldName: 'name', - label: '秒杀时段名称', - component: 'Input', - rules: 'required', - }, - { - fieldName: 'startTime', - label: '开始时间点', - component: 'TimePicker', - componentProps: { - format: 'HH:mm', - valueFormat: 'HH:mm', - placeholder: '请选择开始时间点', - }, - rules: 'required', - }, - { - fieldName: 'endTime', - label: '结束时间点', - component: 'TimePicker', - componentProps: { - format: 'HH:mm', - valueFormat: 'HH:mm', - placeholder: '请选择结束时间点', - }, - rules: 'required', - }, - { - fieldName: 'sliderPicUrls', - label: '秒杀轮播图', - component: 'ImageUpload', - componentProps: { - multiple: true, - maxNumber: 5, - }, - }, - { - fieldName: 'status', - label: '状态', - component: 'RadioGroup', - componentProps: { - options: getDictOptions(DICT_TYPE.COMMON_STATUS, 'number'), - buttonStyle: 'solid', - optionType: 'button', - }, - rules: 'required', - }, - ]; -} - -/** 列表的搜索表单 */ -export function useGridFormSchema(): VbenFormSchema[] { - return [ - { - fieldName: 'name', - label: '秒杀时段名称', - component: 'Input', - componentProps: { - placeholder: '请输入秒杀时段名称', - }, - }, - { - fieldName: 'status', - label: '状态', - component: 'Select', - componentProps: { - placeholder: '请选择状态', - options: getDictOptions(DICT_TYPE.COMMON_STATUS, 'number'), - }, - }, - ]; -} - -/** 表格列配置 */ -export function useGridColumns( - onStatusChange?: ( - newStatus: number, - row: T, - ) => PromiseLike, -): VxeTableGridOptions['columns'] { - return [ - { - title: '秒杀时段名称', - field: 'name', - minWidth: 200, - }, - { - title: '开始时间点', - field: 'startTime', - minWidth: 120, - }, - { - title: '结束时间点', - field: 'endTime', - minWidth: 120, - }, - { - title: '秒杀轮播图', - field: 'sliderPicUrls', - minWidth: 100, - cellRender: { - name: 'CellImages', - }, - }, - { - title: '活动状态', - field: 'status', - minWidth: 100, - cellRender: { - attrs: { beforeChange: onStatusChange }, - name: 'CellSwitch', - props: { - checkedValue: 1, - checkedChildren: '启用', - unCheckedValue: 0, - unCheckedChildren: '禁用', - }, - }, - }, - { - title: '创建时间', - field: 'createTime', - minWidth: 180, - formatter: 'formatDateTime', - }, - { - title: '操作', - width: 180, - fixed: 'right', - slots: { default: 'actions' }, - }, - ]; -} diff --git a/apps/web-antd/src/views/mall/promotion/seckill/config/index.vue b/apps/web-antd/src/views/mall/promotion/seckill/config/index.vue deleted file mode 100644 index c6b7a45b..00000000 --- a/apps/web-antd/src/views/mall/promotion/seckill/config/index.vue +++ /dev/null @@ -1,159 +0,0 @@ - - - diff --git a/apps/web-antd/src/views/mall/promotion/seckill/config/modules/form.vue b/apps/web-antd/src/views/mall/promotion/seckill/config/modules/form.vue deleted file mode 100644 index 028f48d1..00000000 --- a/apps/web-antd/src/views/mall/promotion/seckill/config/modules/form.vue +++ /dev/null @@ -1,90 +0,0 @@ - - - diff --git a/apps/web-antd/src/views/mall/statistics/member/index.vue b/apps/web-antd/src/views/mall/statistics/member/index.vue deleted file mode 100644 index 3e6a57c0..00000000 --- a/apps/web-antd/src/views/mall/statistics/member/index.vue +++ /dev/null @@ -1,32 +0,0 @@ - - - diff --git a/apps/web-antd/src/views/mall/statistics/product/index.vue b/apps/web-antd/src/views/mall/statistics/product/index.vue deleted file mode 100644 index df8469a9..00000000 --- a/apps/web-antd/src/views/mall/statistics/product/index.vue +++ /dev/null @@ -1,32 +0,0 @@ - - - diff --git a/apps/web-antd/src/views/mall/statistics/trade/index.vue b/apps/web-antd/src/views/mall/statistics/trade/index.vue deleted file mode 100644 index 46ceb7e6..00000000 --- a/apps/web-antd/src/views/mall/statistics/trade/index.vue +++ /dev/null @@ -1,32 +0,0 @@ - - - diff --git a/apps/web-antd/src/views/mall/trade/afterSale/data.ts b/apps/web-antd/src/views/mall/trade/afterSale/data.ts deleted file mode 100644 index fbe685f1..00000000 --- a/apps/web-antd/src/views/mall/trade/afterSale/data.ts +++ /dev/null @@ -1,140 +0,0 @@ -import type { VbenFormSchema } from '#/adapter/form'; -import type { VxeGridPropTypes } from '#/adapter/vxe-table'; - -import { DICT_TYPE, getDictOptions, getRangePickerDefaultProps } from '#/utils'; - -/** 列表的搜索表单 */ -export function useGridFormSchema(): VbenFormSchema[] { - return [ - { - fieldName: 'spuName', - label: '商品名称', - component: 'Input', - }, - { - fieldName: 'no', - label: '退款编号', - component: 'Input', - }, - { - fieldName: 'orderNo', - label: '订单编号', - component: 'Input', - }, - { - fieldName: 'status', - label: '售后状态', - component: 'Select', - componentProps: { - options: getDictOptions(DICT_TYPE.TRADE_AFTER_SALE_STATUS, 'number'), - }, - }, - { - fieldName: 'status', - label: '售后方式', - component: 'Select', - componentProps: { - options: getDictOptions(DICT_TYPE.TRADE_AFTER_SALE_WAY, 'number'), - }, - }, - { - fieldName: 'type', - label: '售后类型', - component: 'Select', - componentProps: { - options: getDictOptions(DICT_TYPE.TRADE_AFTER_SALE_TYPE, 'number'), - }, - }, - { - fieldName: 'createTime', - label: '创建时间', - component: 'RangePicker', - componentProps: { - ...getRangePickerDefaultProps(), - allowClear: true, - }, - }, - ]; -} - -/** 表格列配置 */ -export function useGridColumns(): VxeGridPropTypes.Columns { - return [ - { - field: 'no', - title: '退款编号', - fixed: 'left', - }, - { - field: 'orderNo', - title: '订单编号', - fixed: 'left', - slots: { default: 'orderNo' }, - }, - { - field: 'spuName', - title: '商品名称', - align: 'left', - minWidth: 200, - }, - { - field: 'picUrl', - title: '商品图片', - cellRender: { - name: 'CellImage', - }, - }, - { - field: 'properties', - title: '商品属性', - minWidth: 200, - formatter: ({ cellValue }) => { - return cellValue && cellValue.length > 0 - ? cellValue - .map((item: any) => `${item.propertyName} : ${item.valueName}`) - .join('\n') - : '-'; - }, - }, - { - field: 'refundPrice', - title: '订单金额', - formatter: 'formatAmount2', - }, - { - field: 'user.nickname', - title: '买家', - }, - { - field: 'createTime', - title: '申请时间', - formatter: 'formatDateTime', - }, - { - field: 'content', - title: '售后状态', - cellRender: { - name: 'CellDictTag', - props: { - dictType: DICT_TYPE.TRADE_AFTER_SALE_STATUS, - }, - }, - }, - { - field: 'way', - title: '售后方式', - cellRender: { - name: 'CellDictTag', - props: { - dictType: DICT_TYPE.TRADE_AFTER_SALE_WAY, - }, - }, - }, - { - title: '操作', - width: 80, - fixed: 'right', - slots: { default: 'actions' }, - }, - ]; -} diff --git a/apps/web-antd/src/views/mall/trade/afterSale/index.vue b/apps/web-antd/src/views/mall/trade/afterSale/index.vue deleted file mode 100644 index c9e05584..00000000 --- a/apps/web-antd/src/views/mall/trade/afterSale/index.vue +++ /dev/null @@ -1,119 +0,0 @@ - - - diff --git a/apps/web-antd/src/views/mall/trade/brokerage/record/data.ts b/apps/web-antd/src/views/mall/trade/brokerage/record/data.ts deleted file mode 100644 index c5e6ae68..00000000 --- a/apps/web-antd/src/views/mall/trade/brokerage/record/data.ts +++ /dev/null @@ -1,135 +0,0 @@ -import type { VbenFormSchema } from '#/adapter/form'; -import type { VxeTableGridOptions } from '#/adapter/vxe-table'; - -import { fenToYuan } from '@vben/utils'; - -import { DICT_TYPE, getDictOptions, getRangePickerDefaultProps } from '#/utils'; - -/** 列表的搜索表单 */ -export function useGridFormSchema(): VbenFormSchema[] { - return [ - { - fieldName: 'userId', - label: '用户编号', - component: 'Input', - componentProps: { - placeholder: '请输入用户编号', - clearable: true, - }, - }, - { - fieldName: 'bizType', - label: '业务类型', - component: 'Select', - componentProps: { - placeholder: '请选择业务类型', - clearable: true, - options: getDictOptions(DICT_TYPE.BROKERAGE_RECORD_BIZ_TYPE, 'number'), - }, - }, - { - fieldName: 'status', - label: '状态', - component: 'Select', - componentProps: { - placeholder: '请选择状态', - clearable: true, - options: getDictOptions(DICT_TYPE.BROKERAGE_RECORD_STATUS, 'number'), - }, - }, - { - fieldName: 'createTime', - label: '创建时间', - component: 'RangePicker', - componentProps: { - ...getRangePickerDefaultProps(), - clearable: true, - }, - }, - ]; -} - -/** 列表的字段 */ -export function useGridColumns(): VxeTableGridOptions['columns'] { - return [ - { - field: 'id', - title: '编号', - minWidth: 60, - }, - { - field: 'userId', - title: '用户编号', - minWidth: 80, - }, - { - field: 'userAvatar', - title: '头像', - minWidth: 70, - cellRender: { - name: 'CellImage', - props: { - height: 40, - width: 40, - shape: 'circle', - }, - }, - }, - { - field: 'userNickname', - title: '昵称', - minWidth: 80, - }, - { - field: 'bizType', - title: '业务类型', - minWidth: 85, - cellRender: { - name: 'CellDict', - props: { type: DICT_TYPE.BROKERAGE_RECORD_BIZ_TYPE }, - }, - }, - { - field: 'bizId', - title: '业务编号', - minWidth: 80, - }, - { - field: 'title', - title: '标题', - minWidth: 110, - }, - { - field: 'price', - title: '金额', - minWidth: 60, - formatter: ({ row }) => `¥${fenToYuan(row.price)}`, - }, - { - field: 'description', - title: '说明', - minWidth: 120, - }, - { - field: 'status', - title: '状态', - minWidth: 85, - cellRender: { - name: 'CellDict', - props: { type: DICT_TYPE.BROKERAGE_RECORD_STATUS }, - }, - }, - { - field: 'unfreezeTime', - title: '解冻时间', - minWidth: 180, - formatter: 'formatDateTime', - }, - { - field: 'createTime', - title: '创建时间', - width: 180, - formatter: 'formatDateTime', - }, - ]; -} diff --git a/apps/web-antd/src/views/mall/trade/brokerage/record/index.vue b/apps/web-antd/src/views/mall/trade/brokerage/record/index.vue deleted file mode 100644 index 619cef76..00000000 --- a/apps/web-antd/src/views/mall/trade/brokerage/record/index.vue +++ /dev/null @@ -1,57 +0,0 @@ - - - diff --git a/apps/web-antd/src/views/mall/trade/brokerage/user/data.ts b/apps/web-antd/src/views/mall/trade/brokerage/user/data.ts deleted file mode 100644 index 8de25b5b..00000000 --- a/apps/web-antd/src/views/mall/trade/brokerage/user/data.ts +++ /dev/null @@ -1,140 +0,0 @@ -import type { VbenFormSchema } from '#/adapter/form'; -import type { VxeTableGridOptions } from '#/adapter/vxe-table'; - -import { fenToYuan } from '@vben/utils'; - -import { getRangePickerDefaultProps } from '#/utils'; - -/** 列表的搜索表单 */ -export function useGridFormSchema(): VbenFormSchema[] { - return [ - { - fieldName: 'bindUserId', - label: '推广员编号', - component: 'Input', - componentProps: { - placeholder: '请输入推广员编号', - clearable: true, - }, - }, - { - fieldName: 'brokerageEnabled', - label: '推广资格', - component: 'Select', - componentProps: { - placeholder: '请选择推广资格', - clearable: true, - options: [ - { label: '有', value: true }, - { label: '无', value: false }, - ], - }, - }, - { - fieldName: 'createTime', - label: '创建时间', - component: 'RangePicker', - componentProps: { - ...getRangePickerDefaultProps(), - clearable: true, - }, - }, - ]; -} - -/** 列表的字段 */ -export function useGridColumns(): VxeTableGridOptions['columns'] { - return [ - { - field: 'id', - title: '用户编号', - minWidth: 80, - }, - { - field: 'avatar', - title: '头像', - minWidth: 70, - cellRender: { - name: 'CellImage', - props: { - width: 24, - height: 24, - shape: 'circle', - }, - }, - }, - { - field: 'nickname', - title: '昵称', - minWidth: 80, - }, - { - field: 'brokerageUserCount', - title: '推广人数', - minWidth: 80, - }, - { - field: 'brokerageOrderCount', - title: '推广订单数量', - minWidth: 110, - }, - { - field: 'brokerageOrderPrice', - title: '推广订单金额', - minWidth: 110, - formatter: ({ row }) => `¥${fenToYuan(row.brokerageOrderPrice)}`, - }, - { - field: 'withdrawPrice', - title: '已提现金额', - minWidth: 100, - formatter: ({ row }) => `¥${fenToYuan(row.withdrawPrice)}`, - }, - { - field: 'withdrawCount', - title: '已提现次数', - minWidth: 100, - }, - { - field: 'price', - title: '未提现金额', - minWidth: 100, - formatter: ({ row }) => `¥${fenToYuan(row.price)}`, - }, - { - field: 'frozenPrice', - title: '冻结中佣金', - minWidth: 100, - formatter: ({ row }) => `¥${fenToYuan(row.frozenPrice)}`, - }, - { - field: 'brokerageEnabled', - title: '推广资格', - minWidth: 80, - slots: { default: 'brokerageEnabled' }, - }, - { - field: 'brokerageTime', - title: '成为推广员时间', - minWidth: 180, - formatter: 'formatDateTime', - }, - { - field: 'bindUserId', - title: '上级推广员编号', - minWidth: 150, - }, - { - field: 'bindUserTime', - title: '推广员绑定时间', - minWidth: 180, - formatter: 'formatDateTime', - }, - { - title: '操作', - width: 150, - fixed: 'right', - slots: { default: 'actions' }, - }, - ]; -} diff --git a/apps/web-antd/src/views/mall/trade/brokerage/user/index.vue b/apps/web-antd/src/views/mall/trade/brokerage/user/index.vue deleted file mode 100644 index 1839c52d..00000000 --- a/apps/web-antd/src/views/mall/trade/brokerage/user/index.vue +++ /dev/null @@ -1,223 +0,0 @@ - - - diff --git a/apps/web-antd/src/views/mall/trade/brokerage/user/modules/order-list-modal.vue b/apps/web-antd/src/views/mall/trade/brokerage/user/modules/order-list-modal.vue deleted file mode 100644 index 8706aa32..00000000 --- a/apps/web-antd/src/views/mall/trade/brokerage/user/modules/order-list-modal.vue +++ /dev/null @@ -1,185 +0,0 @@ - - - diff --git a/apps/web-antd/src/views/mall/trade/brokerage/user/modules/user-create-form.vue b/apps/web-antd/src/views/mall/trade/brokerage/user/modules/user-create-form.vue deleted file mode 100644 index 4d49231c..00000000 --- a/apps/web-antd/src/views/mall/trade/brokerage/user/modules/user-create-form.vue +++ /dev/null @@ -1,166 +0,0 @@ - - - diff --git a/apps/web-antd/src/views/mall/trade/brokerage/user/modules/user-list-modal.vue b/apps/web-antd/src/views/mall/trade/brokerage/user/modules/user-list-modal.vue deleted file mode 100644 index d69d6b35..00000000 --- a/apps/web-antd/src/views/mall/trade/brokerage/user/modules/user-list-modal.vue +++ /dev/null @@ -1,160 +0,0 @@ - - - diff --git a/apps/web-antd/src/views/mall/trade/brokerage/user/modules/user-update-form.vue b/apps/web-antd/src/views/mall/trade/brokerage/user/modules/user-update-form.vue deleted file mode 100644 index 4f2fe59e..00000000 --- a/apps/web-antd/src/views/mall/trade/brokerage/user/modules/user-update-form.vue +++ /dev/null @@ -1,131 +0,0 @@ - - - diff --git a/apps/web-antd/src/views/mall/trade/brokerage/withdraw/data.ts b/apps/web-antd/src/views/mall/trade/brokerage/withdraw/data.ts deleted file mode 100644 index f72e5281..00000000 --- a/apps/web-antd/src/views/mall/trade/brokerage/withdraw/data.ts +++ /dev/null @@ -1,145 +0,0 @@ -import type { VbenFormSchema } from '#/adapter/form'; -import type { VxeTableGridOptions } from '#/adapter/vxe-table'; - -import { DICT_TYPE, getDictOptions, getRangePickerDefaultProps } from '#/utils'; - -/** 列表的搜索表单 */ -export function useGridFormSchema(): VbenFormSchema[] { - return [ - { - fieldName: 'userId', - label: '用户编号', - component: 'Input', - componentProps: { - placeholder: '请输入用户编号', - clearable: true, - }, - }, - { - fieldName: 'type', - label: '提现类型', - component: 'Select', - componentProps: { - placeholder: '请选择提现类型', - clearable: true, - options: getDictOptions(DICT_TYPE.BROKERAGE_WITHDRAW_TYPE, 'number'), - }, - }, - { - fieldName: 'userAccount', - label: '账号', - component: 'Input', - componentProps: { - placeholder: '请输入账号', - clearable: true, - }, - }, - { - fieldName: 'userName', - label: '真实名字', - component: 'Input', - componentProps: { - placeholder: '请输入真实名字', - clearable: true, - }, - }, - { - fieldName: 'bankName', - label: '提现银行', - component: 'Select', - componentProps: { - placeholder: '请选择提现银行', - clearable: true, - options: getDictOptions(DICT_TYPE.BROKERAGE_BANK_NAME, 'string'), - }, - }, - { - fieldName: 'status', - label: '状态', - component: 'Select', - componentProps: { - placeholder: '请选择状态', - clearable: true, - options: getDictOptions(DICT_TYPE.BROKERAGE_WITHDRAW_STATUS, 'number'), - }, - }, - { - fieldName: 'createTime', - label: '申请时间', - component: 'RangePicker', - componentProps: { - ...getRangePickerDefaultProps(), - clearable: true, - }, - }, - ]; -} - -/** 列表的字段 */ -export function useGridColumns(): VxeTableGridOptions['columns'] { - return [ - { - field: 'id', - title: '编号', - minWidth: 80, - }, - { - field: 'userId', - title: '用户编号:', - minWidth: 80, - }, - { - field: 'userNickname', - title: '用户昵称:', - minWidth: 80, - }, - { - field: 'price', - title: '提现金额', - minWidth: 80, - formatter: 'formatAmount2', - }, - { - field: 'feePrice', - title: '提现手续费', - minWidth: 80, - formatter: 'formatAmount2', - }, - { - field: 'type', - title: '提现方式', - minWidth: 120, - cellRender: { - name: 'CellDict', - props: { type: DICT_TYPE.BROKERAGE_WITHDRAW_TYPE }, - }, - }, - { - title: '提现信息', - minWidth: 200, - slots: { default: 'withdraw-info' }, - }, - { - field: 'createTime', - title: '申请时间', - minWidth: 180, - formatter: 'formatDateTime', - }, - { - field: 'remark', - title: '备注', - minWidth: 120, - }, - { - title: '状态', - minWidth: 200, - slots: { default: 'status-info' }, - }, - { - title: '操作', - width: 150, - fixed: 'right', - slots: { default: 'actions' }, - }, - ]; -} diff --git a/apps/web-antd/src/views/mall/trade/brokerage/withdraw/index.vue b/apps/web-antd/src/views/mall/trade/brokerage/withdraw/index.vue deleted file mode 100644 index 9d945e75..00000000 --- a/apps/web-antd/src/views/mall/trade/brokerage/withdraw/index.vue +++ /dev/null @@ -1,195 +0,0 @@ - - - diff --git a/apps/web-antd/src/views/mall/trade/config/data.ts b/apps/web-antd/src/views/mall/trade/config/data.ts deleted file mode 100644 index 9c35219f..00000000 --- a/apps/web-antd/src/views/mall/trade/config/data.ts +++ /dev/null @@ -1,243 +0,0 @@ -import type { VbenFormSchema } from '#/adapter/form'; - -import { DICT_TYPE, getDictOptions } from '#/utils'; - -/** 售后表单 */ -export function useFormSchema(): VbenFormSchema[] { - return [ - { - component: 'Input', - fieldName: 'id', - dependencies: { - triggerFields: [''], - show: () => false, - }, - }, - { - component: 'Input', - fieldName: 'type', - dependencies: { - triggerFields: [''], - show: () => false, - }, - }, - { - fieldName: 'afterSaleRefundReasons', - label: '退款理由', - component: 'Select', - componentProps: { - mode: 'tags', - placeholder: '请直接输入退款理由', - class: 'w-full', - }, - dependencies: { - triggerFields: ['type'], - show: (values) => values.type === 'afterSale', - }, - }, - { - fieldName: 'afterSaleReturnReasons', - label: '退货理由', - component: 'Select', - componentProps: { - mode: 'tags', - placeholder: '请直接输入退货理由', - class: 'w-full', - }, - dependencies: { - triggerFields: ['type'], - show: (values) => values.type === 'afterSale', - }, - }, - { - fieldName: 'deliveryExpressFreeEnabled', - label: '启用包邮', - component: 'Switch', - dependencies: { - triggerFields: ['type'], - show: (values) => values.type === 'delivery', - }, - description: '商城是否启用全场包邮', - }, - { - fieldName: 'deliveryExpressFreePrice', - label: '满额包邮', - component: 'InputNumber', - componentProps: { - min: 0, - precision: 2, - class: 'w-full', - }, - rules: 'required', - dependencies: { - triggerFields: ['type'], - show: (values) => values.type === 'delivery', - }, - description: '商城商品满多少金额即可包邮,单位:元', - }, - { - fieldName: 'deliveryPickUpEnabled', - label: '启用门店自提', - component: 'Switch', - dependencies: { - triggerFields: ['type'], - show: (values) => values.type === 'delivery', - }, - }, - { - fieldName: 'brokerageEnabled', - label: '启用分佣', - component: 'Switch', - description: '商城是否开启分销模式', - dependencies: { - triggerFields: ['type'], - show: (values) => values.type === 'brokerage', - }, - }, - { - fieldName: 'brokerageEnabledCondition', - label: '分佣模式', - component: 'RadioGroup', - componentProps: { - options: getDictOptions( - DICT_TYPE.BROKERAGE_ENABLED_CONDITION, - 'number', - ), - buttonStyle: 'solid', - optionType: 'button', - class: 'w-full', - }, - rules: 'required', - dependencies: { - triggerFields: ['type'], - show: (values) => values.type === 'brokerage', - }, - description: - '人人分销:每个用户都可以成为推广员 \n 单级分销:每个用户只能有一个上级推广员', - }, - { - fieldName: 'brokerageBindMode', - label: '分销关系绑定', - component: 'RadioGroup', - componentProps: { - options: getDictOptions(DICT_TYPE.BROKERAGE_BIND_MODE, 'number'), - buttonStyle: 'solid', - optionType: 'button', - class: 'w-full', - }, - rules: 'required', - dependencies: { - triggerFields: ['type'], - show: (values) => values.type === 'brokerage', - }, - description: - '首次绑定:只要用户没有推广人,随时都可以绑定推广关系 \n 注册绑定:只有新用户注册时或首次进入系统时才可以绑定推广关系', - }, - { - fieldName: 'brokeragePosterUrls', - label: '分销海报图', - component: 'ImageUpload', - dependencies: { - triggerFields: ['type'], - show: (values) => values.type === 'brokerage', - }, - description: '个人中心分销海报图片,建议尺寸 600x1000', - }, - { - fieldName: 'brokerageFirstPercent', - label: '一级返佣比例', - component: 'InputNumber', - componentProps: { - min: 0, - max: 100, - class: 'w-full', - }, - rules: 'required', - dependencies: { - triggerFields: ['type'], - show: (values) => values.type === 'brokerage', - }, - description: '订单交易成功后给推广人返佣的百分比', - }, - { - fieldName: 'brokerageSecondPercent', - label: '二级返佣比例', - component: 'InputNumber', - componentProps: { - min: 0, - max: 100, - class: 'w-full', - }, - rules: 'required', - dependencies: { - triggerFields: ['type'], - show: (values) => values.type === 'brokerage', - }, - description: '订单交易成功后给推广人的推荐人返佣的百分比', - }, - { - fieldName: 'brokerageFrozenDays', - label: '佣金冻结天数', - component: 'InputNumber', - componentProps: { - min: 0, - class: 'w-full', - }, - rules: 'required', - dependencies: { - triggerFields: ['type'], - show: (values) => values.type === 'brokerage', - }, - description: - '防止用户退款,佣金被提现了,所以需要设置佣金冻结时间,单位:天', - }, - { - fieldName: 'brokerageWithdrawMinPrice', - label: '提现最低金额', - component: 'InputNumber', - componentProps: { - min: 0, - precision: 2, - class: 'w-full', - }, - rules: 'required', - dependencies: { - triggerFields: ['type'], - show: (values) => values.type === 'brokerage', - }, - description: '用户提现最低金额限制,单位:元', - }, - { - fieldName: 'brokerageWithdrawFeePercent', - label: '提现手续费', - component: 'InputNumber', - componentProps: { - min: 0, - max: 100, - class: 'w-full', - }, - rules: 'required', - dependencies: { - triggerFields: ['type'], - show: (values) => values.type === 'brokerage', - }, - description: - '提现手续费百分比,范围 0-100,0 为无提现手续费。例:设置 10,即收取 10% 手续费,提现10 元,到账 9 元,1 元手续费', - }, - { - fieldName: 'brokerageWithdrawTypes', - label: '提现方式', - component: 'CheckboxGroup', - componentProps: { - options: getDictOptions(DICT_TYPE.BROKERAGE_WITHDRAW_TYPE, 'number'), - class: 'w-full', - }, - rules: 'required', - dependencies: { - triggerFields: ['type'], - show: (values) => values.type === 'brokerage', - }, - description: '商城开通提现的付款方式', - }, - ]; -} diff --git a/apps/web-antd/src/views/mall/trade/config/index.vue b/apps/web-antd/src/views/mall/trade/config/index.vue deleted file mode 100644 index 695b81a7..00000000 --- a/apps/web-antd/src/views/mall/trade/config/index.vue +++ /dev/null @@ -1,98 +0,0 @@ - - - diff --git a/apps/web-antd/src/views/mall/trade/delivery/express/data.ts b/apps/web-antd/src/views/mall/trade/delivery/express/data.ts deleted file mode 100644 index 793d86d6..00000000 --- a/apps/web-antd/src/views/mall/trade/delivery/express/data.ts +++ /dev/null @@ -1,130 +0,0 @@ -import type { VbenFormSchema } from '#/adapter/form'; -import type { VxeTableGridOptions } from '#/adapter/vxe-table'; - -import { z } from '#/adapter/form'; -// import { CommonStatusEnum, DICT_TYPE, getDictOptions } from '#/utils'; - -/** 新增/修改的表单 */ -export function useFormSchema(): VbenFormSchema[] { - return [ - { - component: 'Input', - fieldName: 'id', - dependencies: { - triggerFields: [''], - show: () => false, - }, - }, - { - component: 'Input', - fieldName: 'code', - label: '公司编码', - rules: 'required', - }, - { - component: 'Input', - fieldName: 'name', - label: '公司名称', - rules: 'required', - }, - { - component: 'ImageUpload', - fieldName: 'logo', - label: '公司 logo', - rules: 'required', - }, - { - fieldName: 'sort', - label: '显示顺序', - component: 'InputNumber', - componentProps: { - min: 0, - }, - rules: 'required', - }, - { - fieldName: 'status', - label: '开启状态', - component: 'RadioGroup', - componentProps: { - options: getDictOptions(DICT_TYPE.COMMON_STATUS, 'number'), - buttonStyle: 'solid', - optionType: 'button', - }, - rules: z.number().default(CommonStatusEnum.ENABLE), - }, - ]; -} - -/** 列表的搜索表单 */ -export function useGridFormSchema(): VbenFormSchema[] { - return [ - { - fieldName: 'name', - label: '快递公司名称', - component: 'Input', - }, - { - fieldName: 'code', - label: '快递公司编号', - component: 'Input', - }, - { - fieldName: 'status', - label: '状态', - component: 'Select', - componentProps: { - allowClear: true, - options: getDictOptions(DICT_TYPE.COMMON_STATUS, 'number'), - }, - }, - ]; -} - -/** 列表的字段 */ -export function useGridColumns(): VxeTableGridOptions['columns'] { - return [ - { - field: 'id', - title: '编号', - }, - { - field: 'code', - title: '公司编码', - }, - { - field: 'name', - title: '公司名称', - }, - { - field: 'logo', - title: '公司 logo', - cellRender: { - name: 'CellImage', - }, - }, - { - field: 'sort', - title: '显示顺序', - }, - { - field: 'status', - title: '状态', - cellRender: { - name: 'CellDict', - props: { type: DICT_TYPE.COMMON_STATUS }, - }, - }, - { - field: 'createTime', - title: '创建时间', - formatter: 'formatDateTime', - }, - { - title: '操作', - width: 130, - fixed: 'right', - slots: { default: 'actions' }, - }, - ]; -} diff --git a/apps/web-antd/src/views/mall/trade/delivery/express/index.vue b/apps/web-antd/src/views/mall/trade/delivery/express/index.vue deleted file mode 100644 index 5a52b282..00000000 --- a/apps/web-antd/src/views/mall/trade/delivery/express/index.vue +++ /dev/null @@ -1,145 +0,0 @@ - - - diff --git a/apps/web-antd/src/views/mall/trade/delivery/express/modules/form.vue b/apps/web-antd/src/views/mall/trade/delivery/express/modules/form.vue deleted file mode 100644 index 85858419..00000000 --- a/apps/web-antd/src/views/mall/trade/delivery/express/modules/form.vue +++ /dev/null @@ -1,89 +0,0 @@ - - - diff --git a/apps/web-antd/src/views/mall/trade/delivery/expressTemplate/data.ts b/apps/web-antd/src/views/mall/trade/delivery/expressTemplate/data.ts deleted file mode 100644 index b243fd88..00000000 --- a/apps/web-antd/src/views/mall/trade/delivery/expressTemplate/data.ts +++ /dev/null @@ -1,102 +0,0 @@ -import type { VbenFormSchema } from '#/adapter/form'; -import type { VxeTableGridOptions } from '#/adapter/vxe-table'; - -import { z } from '#/adapter/form'; -import { CommonStatusEnum, DICT_TYPE, getDictOptions } from '#/utils'; - -/** 新增/修改的表单 */ -export function useFormSchema(): VbenFormSchema[] { - return [ - { - component: 'Input', - fieldName: 'id', - dependencies: { - triggerFields: [''], - show: () => false, - }, - }, - { - component: 'Input', - fieldName: 'name', - label: '模板名称', - rules: 'required', - }, - { - fieldName: 'chargeMode', - label: '计费方式', - component: 'RadioGroup', - componentProps: { - options: getDictOptions(DICT_TYPE.EXPRESS_CHARGE_MODE, 'number'), - buttonStyle: 'solid', - optionType: 'button', - }, - rules: z.number().default(CommonStatusEnum.ENABLE), - }, - { - fieldName: 'sort', - label: '显示顺序', - component: 'InputNumber', - componentProps: { - min: 0, - }, - rules: 'required', - }, - ]; -} - -/** 列表的搜索表单 */ -export function useGridFormSchema(): VbenFormSchema[] { - return [ - { - fieldName: 'name', - label: '模板名称', - component: 'Input', - }, - { - fieldName: 'chargeMode', - label: '计费方式', - component: 'Select', - componentProps: { - allowClear: true, - options: getDictOptions(DICT_TYPE.EXPRESS_CHARGE_MODE, 'number'), - }, - }, - ]; -} - -/** 列表的字段 */ -export function useGridColumns(): VxeTableGridOptions['columns'] { - return [ - { - field: 'id', - title: '编号', - }, - { - field: 'name', - title: '模板名称', - }, - { - field: 'chargeMode', - title: '计费方式', - cellRender: { - name: 'CellDict', - props: { type: DICT_TYPE.EXPRESS_CHARGE_MODE }, - }, - }, - { - field: 'sort', - title: '显示顺序', - }, - { - field: 'createTime', - title: '创建时间', - formatter: 'formatDateTime', - }, - { - title: '操作', - width: 130, - fixed: 'right', - slots: { default: 'actions' }, - }, - ]; -} diff --git a/apps/web-antd/src/views/mall/trade/delivery/expressTemplate/index.vue b/apps/web-antd/src/views/mall/trade/delivery/expressTemplate/index.vue deleted file mode 100644 index 5235097c..00000000 --- a/apps/web-antd/src/views/mall/trade/delivery/expressTemplate/index.vue +++ /dev/null @@ -1,132 +0,0 @@ - - - diff --git a/apps/web-antd/src/views/mall/trade/delivery/expressTemplate/modules/form.vue b/apps/web-antd/src/views/mall/trade/delivery/expressTemplate/modules/form.vue deleted file mode 100644 index cf00e715..00000000 --- a/apps/web-antd/src/views/mall/trade/delivery/expressTemplate/modules/form.vue +++ /dev/null @@ -1,91 +0,0 @@ - - - diff --git a/apps/web-antd/src/views/mall/trade/delivery/pickUpOrder/data.ts b/apps/web-antd/src/views/mall/trade/delivery/pickUpOrder/data.ts deleted file mode 100644 index f68f275f..00000000 --- a/apps/web-antd/src/views/mall/trade/delivery/pickUpOrder/data.ts +++ /dev/null @@ -1,127 +0,0 @@ -import type { VbenFormSchema } from '#/adapter/form'; -import type { VxeGridPropTypes } from '#/adapter/vxe-table'; -import type { MallDeliveryPickUpStoreApi } from '#/api/mall/trade/delivery/pickUpStore'; - -import { ref } from 'vue'; - -import { getSimpleDeliveryPickUpStoreList } from '#/api/mall/trade/delivery/pickUpStore'; -import { - DeliveryTypeEnum, - DICT_TYPE, - getRangePickerDefaultProps, -} from '#/utils'; - -const pickUpStoreList = ref([]); - -getSimpleDeliveryPickUpStoreList().then((res) => { - pickUpStoreList.value = res; -}); - -/** 列表的搜索表单 */ -export function useGridFormSchema(): VbenFormSchema[] { - return [ - { - fieldName: 'createTime', - label: '创建时间', - component: 'RangePicker', - componentProps: { - ...getRangePickerDefaultProps(), - allowClear: true, - }, - }, - { - fieldName: 'pickUpStoreId', - label: '自提门店', - component: 'ApiSelect', - componentProps: { - api: getSimpleDeliveryPickUpStoreList, - fieldNames: { - label: 'name', - value: 'id', - }, - }, - dependencies: { - triggerFields: ['deliveryType'], - trigger: (values) => - values.deliveryType === DeliveryTypeEnum.PICK_UP.type, - }, - }, - ]; -} - -/** 表格列配置 */ -export function useGridColumns(): VxeGridPropTypes.Columns { - return [ - { - field: 'no', - title: '订单号', - fixed: 'left', - minWidth: 180, - }, - { - field: 'user.nickname', - title: '用户信息', - minWidth: 100, - }, - { - field: 'brokerageUser.nickname', - title: '推荐人信息', - minWidth: 100, - }, - { - field: 'spuName', - title: '商品信息', - minWidth: 100, - formatter: ({ row }) => { - if (row.items.length > 1) { - return row.items.map((item: any) => item.spuName).join(','); - } - }, - }, - { - field: 'payPrice', - title: '实付金额(元)', - formatter: 'formatAmount2', - minWidth: 180, - }, - { - field: 'storeStaffName', - title: '核销员', - minWidth: 160, - }, - { - field: 'pickUpStoreId', - title: '核销门店', - minWidth: 160, - formatter: ({ row }) => { - return pickUpStoreList.value.find( - (item) => item.id === row.pickUpStoreId, - )?.name; - }, - }, - { - field: 'payStatus', - title: '支付状态', - cellRender: { - name: 'CellDict', - props: { type: DICT_TYPE.INFRA_BOOLEAN_STRING }, - }, - minWidth: 80, - }, - { - field: 'status', - title: '订单状态', - cellRender: { - name: 'CellDict', - props: { type: DICT_TYPE.TRADE_ORDER_STATUS }, - }, - minWidth: 80, - }, - { - field: 'createTime', - title: '下单时间', - formatter: 'formatDateTime', - minWidth: 160, - }, - ]; -} diff --git a/apps/web-antd/src/views/mall/trade/delivery/pickUpOrder/index.vue b/apps/web-antd/src/views/mall/trade/delivery/pickUpOrder/index.vue deleted file mode 100644 index 8a32abf0..00000000 --- a/apps/web-antd/src/views/mall/trade/delivery/pickUpOrder/index.vue +++ /dev/null @@ -1,241 +0,0 @@ - - - diff --git a/apps/web-antd/src/views/mall/trade/delivery/pickUpStore/data.ts b/apps/web-antd/src/views/mall/trade/delivery/pickUpStore/data.ts deleted file mode 100644 index ac3e0828..00000000 --- a/apps/web-antd/src/views/mall/trade/delivery/pickUpStore/data.ts +++ /dev/null @@ -1,245 +0,0 @@ -import type { VbenFormSchema } from '#/adapter/form'; -import type { VxeTableGridOptions } from '#/adapter/vxe-table'; - -import { z } from '#/adapter/form'; -import { getAreaTree } from '#/api/system/area'; -import { getSimpleUserList } from '#/api/system/user'; -import { - CommonStatusEnum, - DICT_TYPE, - getDictOptions, - getRangePickerDefaultProps, -} from '#/utils'; - -/** 新增/修改的表单 */ -export function useFormSchema(): VbenFormSchema[] { - return [ - { - component: 'Input', - fieldName: 'id', - dependencies: { - triggerFields: [''], - show: () => false, - }, - }, - { - component: 'ImageUpload', - fieldName: 'logo', - label: '门店logo', - rules: 'required', - }, - { - component: 'Input', - fieldName: 'name', - label: '门店名称', - rules: 'required', - }, - { - component: 'Input', - fieldName: 'phone', - label: '门店手机', - rules: 'mobileRequired', - }, - { - component: 'Textarea', - fieldName: 'introduction', - label: '门店简介', - }, - { - fieldName: 'areaId', - label: '地址', - component: 'ApiTreeSelect', - componentProps: { - api: () => getAreaTree(), - fieldNames: { label: 'name', value: 'id', children: 'children' }, - }, - }, - { - component: 'Input', - fieldName: 'detailAddress', - label: '详细地址', - rules: 'required', - }, - { - component: 'TimePicker', - fieldName: 'openingTime', - label: '营业开始时间', - rules: 'required', - }, - { - component: 'TimePicker', - fieldName: 'closingTime', - label: '营业结束时间', - rules: 'required', - }, - { - component: 'Input', - fieldName: 'longitude', - label: '经度', - rules: 'required', - }, - { - component: 'Input', - fieldName: 'latitude', - label: '纬度', - rules: 'required', - }, - { - component: 'Input', - fieldName: 'getGeo', - label: '获取经纬度', - }, - { - fieldName: 'status', - label: '门店状态', - component: 'RadioGroup', - componentProps: { - options: getDictOptions(DICT_TYPE.COMMON_STATUS, 'number'), - buttonStyle: 'solid', - optionType: 'button', - }, - rules: z.number().default(CommonStatusEnum.ENABLE), - }, - ]; -} - -/** 绑定店员的表单 */ -export function useBindFormSchema(): VbenFormSchema[] { - return [ - { - component: 'Input', - fieldName: 'id', - dependencies: { - triggerFields: [''], - show: () => false, - }, - }, - { - component: 'Input', - fieldName: 'name', - label: '门店名称', - dependencies: { - triggerFields: ['id'], - disabled: true, - }, - }, - { - component: 'ApiSelect', - fieldName: 'verifyUserIds', - label: '门店店员', - rules: 'required', - componentProps: { - api: () => getSimpleUserList(), - fieldNames: { label: 'nickname', value: 'id' }, - mode: 'tags', - allowClear: true, - }, - }, - { - component: 'Select', - fieldName: 'verifyUsers', - label: '店员列表', - rules: 'required', - componentProps: { - options: [], - mode: 'tags', - }, - dependencies: { - triggerFields: ['verifyUserIds'], - trigger(values, form) { - form.setFieldValue('verifyUsers', values.verifyUserIds); - }, - disabled: true, - }, - }, - ]; -} - -/** 列表的搜索表单 */ -export function useGridFormSchema(): VbenFormSchema[] { - return [ - { - fieldName: 'phone', - label: '门店手机', - component: 'Input', - }, - { - fieldName: 'name', - label: '门店名称', - component: 'Input', - }, - { - fieldName: 'status', - label: '门店状态', - component: 'Select', - componentProps: { - allowClear: true, - options: getDictOptions(DICT_TYPE.COMMON_STATUS, 'number'), - }, - }, - { - fieldName: 'createTime', - label: '创建时间', - component: 'RangePicker', - componentProps: { - ...getRangePickerDefaultProps(), - allowClear: true, - }, - }, - ]; -} - -/** 列表的字段 */ -export function useGridColumns(): VxeTableGridOptions['columns'] { - return [ - { - field: 'id', - title: '编号', - }, - { - field: 'logo', - title: '门店logo', - cellRender: { - name: 'CellImage', - }, - }, - { - field: 'name', - title: '门店名称', - }, - { - field: 'phone', - title: '门店手机', - }, - { - field: 'detailAddress', - title: '地址', - }, - { - field: 'openingTime', - title: '营业时间', - formatter: ({ row }) => { - return `${row.openingTime} ~ ${row.closingTime}`; - }, - }, - { - field: 'status', - title: '开启状态', - cellRender: { - name: 'CellDict', - props: { type: DICT_TYPE.COMMON_STATUS }, - }, - }, - { - field: 'createTime', - title: '创建时间', - formatter: 'formatDateTime', - }, - { - title: '操作', - width: 200, - fixed: 'right', - slots: { default: 'actions' }, - }, - ]; -} diff --git a/apps/web-antd/src/views/mall/trade/delivery/pickUpStore/index.vue b/apps/web-antd/src/views/mall/trade/delivery/pickUpStore/index.vue deleted file mode 100644 index 0fec6490..00000000 --- a/apps/web-antd/src/views/mall/trade/delivery/pickUpStore/index.vue +++ /dev/null @@ -1,149 +0,0 @@ - - - diff --git a/apps/web-antd/src/views/mall/trade/delivery/pickUpStore/modules/bind-form.vue b/apps/web-antd/src/views/mall/trade/delivery/pickUpStore/modules/bind-form.vue deleted file mode 100644 index 542c68c3..00000000 --- a/apps/web-antd/src/views/mall/trade/delivery/pickUpStore/modules/bind-form.vue +++ /dev/null @@ -1,87 +0,0 @@ - - - diff --git a/apps/web-antd/src/views/mall/trade/delivery/pickUpStore/modules/form.vue b/apps/web-antd/src/views/mall/trade/delivery/pickUpStore/modules/form.vue deleted file mode 100644 index 44623e1c..00000000 --- a/apps/web-antd/src/views/mall/trade/delivery/pickUpStore/modules/form.vue +++ /dev/null @@ -1,89 +0,0 @@ - - - diff --git a/apps/web-antd/src/views/mall/trade/order/data.ts b/apps/web-antd/src/views/mall/trade/order/data.ts deleted file mode 100644 index 3e026532..00000000 --- a/apps/web-antd/src/views/mall/trade/order/data.ts +++ /dev/null @@ -1,218 +0,0 @@ -import type { VbenFormSchema } from '#/adapter/form'; -import type { VxeGridPropTypes } from '#/adapter/vxe-table'; -import type { MallDeliveryPickUpStoreApi } from '#/api/mall/trade/delivery/pickUpStore'; - -import { ref } from 'vue'; - -import { getSimpleDeliveryExpressList } from '#/api/mall/trade/delivery/express'; -import { getSimpleDeliveryPickUpStoreList } from '#/api/mall/trade/delivery/pickUpStore'; -import { - DeliveryTypeEnum, - DICT_TYPE, - getDictOptions, - getRangePickerDefaultProps, -} from '#/utils'; - -const pickUpStoreList = ref([]); - -getSimpleDeliveryPickUpStoreList().then((res) => { - pickUpStoreList.value = res; -}); - -/** 列表的搜索表单 */ -export function useGridFormSchema(): VbenFormSchema[] { - return [ - { - fieldName: 'status', - label: '订单状态', - component: 'Select', - componentProps: { - options: getDictOptions(DICT_TYPE.TRADE_ORDER_STATUS, 'number'), - }, - }, - { - fieldName: 'payChannelCode', - label: '支付方式', - component: 'Select', - componentProps: { - options: getDictOptions(DICT_TYPE.PAY_CHANNEL_CODE, 'number'), - }, - }, - { - fieldName: 'name', - label: '品牌名称', - component: 'Input', - }, - { - fieldName: 'createTime', - label: '创建时间', - component: 'RangePicker', - componentProps: { - ...getRangePickerDefaultProps(), - allowClear: true, - }, - }, - { - fieldName: 'terminal', - label: '订单来源', - component: 'Select', - componentProps: { - options: getDictOptions(DICT_TYPE.TERMINAL, 'number'), - }, - }, - { - fieldName: 'deliveryType', - label: '配送方式', - component: 'Select', - componentProps: { - options: getDictOptions(DICT_TYPE.TRADE_DELIVERY_TYPE, 'number'), - }, - }, - { - fieldName: 'logisticsId', - label: '快递公司', - component: 'ApiSelect', - componentProps: { - api: getSimpleDeliveryExpressList, - fieldNames: { - label: 'name', - value: 'id', - }, - }, - dependencies: { - triggerFields: ['deliveryType'], - show: (values) => values.deliveryType === DeliveryTypeEnum.EXPRESS.type, - }, - }, - { - fieldName: 'pickUpStoreId', - label: '自提门店', - component: 'ApiSelect', - componentProps: { - api: getSimpleDeliveryPickUpStoreList, - fieldNames: { - label: 'name', - value: 'id', - }, - }, - dependencies: { - triggerFields: ['deliveryType'], - show: (values) => values.deliveryType === DeliveryTypeEnum.PICK_UP.type, - }, - }, - { - fieldName: 'deliveryType', - label: '核销码', - component: 'Input', - dependencies: { - triggerFields: ['deliveryType'], - show: (values) => values.deliveryType === DeliveryTypeEnum.PICK_UP.type, - }, - }, - ]; -} - -/** 表格列配置 */ -export function useGridColumns(): VxeGridPropTypes.Columns { - return [ - { - type: 'expand', - width: 80, - slots: { content: 'expand_content' }, - fixed: 'left', - }, - { - field: 'no', - title: '订单号', - fixed: 'left', - minWidth: 180, - }, - { - field: 'createTime', - title: '下单时间', - formatter: 'formatDateTime', - minWidth: 160, - }, - { - field: 'terminal', - title: '订单来源', - cellRender: { - name: 'CellDict', - props: { type: DICT_TYPE.TERMINAL }, - }, - minWidth: 120, - }, - { - field: 'payChannelCode', - title: '支付方式', - cellRender: { - name: 'CellDict', - props: { type: DICT_TYPE.PAY_CHANNEL_CODE }, - }, - minWidth: 120, - }, - { - field: 'payTime', - title: '支付时间', - formatter: 'formatDateTime', - minWidth: 160, - }, - { - field: 'type', - title: '订单类型', - cellRender: { - name: 'CellDict', - props: { type: DICT_TYPE.TRADE_ORDER_TYPE }, - }, - minWidth: 80, - }, - - { - field: 'payPrice', - title: '实际支付', - formatter: 'formatAmount2', - minWidth: 180, - }, - { - field: 'user', - title: '买家/收货人', - formatter: ({ row }) => { - if (row.deliveryType === DeliveryTypeEnum.EXPRESS.type) { - return `买家:${row.user?.nickname} / 收货人: ${row.receiverName} ${row.receiverMobile}${row.receiverAreaName}${row.receiverDetailAddress}`; - } - if (row.deliveryType === DeliveryTypeEnum.PICK_UP.type) { - return `门店名称:${pickUpStoreList.value.find((item) => item.id === row.pickUpStoreId)?.name} / - 门店手机:${pickUpStoreList.value.find((item) => item.id === row.pickUpStoreId)?.phone} / - 自提门店:${pickUpStoreList.value.find((item) => item.id === row.pickUpStoreId)?.detailAddress} - `; - } - return ''; - }, - minWidth: 180, - }, - { - field: 'deliveryType', - title: '配送方式', - cellRender: { - name: 'CellDict', - props: { type: DICT_TYPE.TRADE_DELIVERY_TYPE }, - }, - minWidth: 80, - }, - { - field: 'status', - title: '订单状态', - cellRender: { - name: 'CellDict', - props: { type: DICT_TYPE.TRADE_ORDER_STATUS }, - }, - minWidth: 80, - }, - { - title: '操作', - width: 180, - fixed: 'right', - slots: { default: 'actions' }, - }, - ]; -} diff --git a/apps/web-antd/src/views/mall/trade/order/index.vue b/apps/web-antd/src/views/mall/trade/order/index.vue deleted file mode 100644 index 1e6a4302..00000000 --- a/apps/web-antd/src/views/mall/trade/order/index.vue +++ /dev/null @@ -1,178 +0,0 @@ - - - diff --git a/apps/web-antd/src/views/mall/trade/order/modules/delevery-form.vue b/apps/web-antd/src/views/mall/trade/order/modules/delevery-form.vue deleted file mode 100644 index 5bf26abc..00000000 --- a/apps/web-antd/src/views/mall/trade/order/modules/delevery-form.vue +++ /dev/null @@ -1,131 +0,0 @@ - - - diff --git a/apps/web-antd/vite.config.mts b/apps/web-antd/vite.config.mts index dcbd4d1b..29bf5bc4 100644 --- a/apps/web-antd/vite.config.mts +++ b/apps/web-antd/vite.config.mts @@ -29,7 +29,7 @@ export default defineConfig(async () => { // mock代理目标地址 // target: 'http://192.168.43.169:8080', // target: 'https://by.missmoc.top/api/', - target: 'http://192.168.0.108:8080', + target: 'http://127.0.0.1:8080', // target: 'http://192.168.0.106:8080', // target: 'http://47.109.37.87:3010', ws: true, diff --git a/packages/effects/layouts/src/authentication/authentication.vue b/packages/effects/layouts/src/authentication/authentication.vue index 0a444d9e..2600e4f4 100644 --- a/packages/effects/layouts/src/authentication/authentication.vue +++ b/packages/effects/layouts/src/authentication/authentication.vue @@ -50,12 +50,17 @@ const rememberMe = ref(false) // 页面加载时恢复用户名 onMounted(() => { - const savedUser = localStorage.getItem('rememberedUser') + const savedUser = localStorage.getItem('rememberedUser'); if (savedUser) { - username.value = savedUser - rememberMe.value = true + username.value = savedUser; + rememberMe.value = true; } -}) +}); +function getRetUrlParam() { + const urlParams = new URLSearchParams(window.location.search); + return urlParams.get('returl'); +} +const retUrl : string | null = getRetUrlParam(); // 登录逻辑 const login = () => { @@ -96,6 +101,7 @@ const handleAccountLogin = async () => { password: password.value, tenantId: "000000", username: username.value, + retUrl: retUrl, }); } catch (error) { console.error(error);