Skip to content

Commit f908c12

Browse files
YunaiVgitee-org
authored andcommitted
!183 同步商城实现
Merge pull request !183 from 芋道源码/dev
2 parents 399d8af + 59de1d6 commit f908c12

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

60 files changed

+4985
-538
lines changed

.env.dev

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# 开发环境
2-
NODE_ENV=production
2+
NODE_ENV=development
33

44
VITE_DEV=false
55

@@ -19,13 +19,13 @@ VITE_API_URL=/admin-api
1919
VITE_BASE_PATH=/
2020

2121
# 是否删除debugger
22-
VITE_DROP_DEBUGGER=false
22+
VITE_DROP_DEBUGGER=true
2323

2424
# 是否删除console.log
2525
VITE_DROP_CONSOLE=false
2626

2727
# 是否sourcemap
28-
VITE_SOURCEMAP=true
28+
VITE_SOURCEMAP=false
2929

3030
# 输出路径
3131
VITE_OUT_DIR=dist-dev

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,7 @@
6565
"url": "^0.11.1",
6666
"video.js": "^8.3.0",
6767
"vue": "3.3.4",
68+
"vue-dompurify-html": "^4.1.4",
6869
"vue-i18n": "9.2.2",
6970
"vue-router": "^4.2.4",
7071
"vue-types": "^5.1.0",

src/api/mall/product/spu.ts

Lines changed: 18 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,7 @@ export interface Property {
77
valueName?: string // 属性值名称
88
}
99

10-
// TODO puhui999:是不是直接叫 Sku 更简洁一点哈。type 待后面,总感觉有个类型?
11-
export interface SkuType {
10+
export interface Sku {
1211
id?: number // 商品 SKU 编号
1312
spuId?: number // SPU 编号
1413
properties?: Property[] // 属性数组
@@ -25,8 +24,7 @@ export interface SkuType {
2524
salesCount?: number // 商品销量
2625
}
2726

28-
// TODO puhui999:是不是直接叫 Spu 更简洁一点哈。type 待后面,总感觉有个类型?
29-
export interface SpuType {
27+
export interface Spu {
3028
id?: number
3129
name?: string // 商品名称
3230
categoryId?: number | null // 商品分类
@@ -39,16 +37,23 @@ export interface SpuType {
3937
brandId?: number | null // 商品品牌编号
4038
specType?: boolean // 商品规格
4139
subCommissionType?: boolean // 分销类型
42-
skus: SkuType[] // sku数组
40+
skus?: Sku[] // sku数组
4341
description?: string // 商品详情
44-
sort?: string // 商品排序
42+
sort?: number // 商品排序
4543
giveIntegral?: number // 赠送积分
4644
virtualSalesCount?: number // 虚拟销量
4745
recommendHot?: boolean // 是否热卖
4846
recommendBenefit?: boolean // 是否优惠
4947
recommendBest?: boolean // 是否精品
5048
recommendNew?: boolean // 是否新品
5149
recommendGood?: boolean // 是否优品
50+
price?: number // 商品价格
51+
salesCount?: number // 商品销量
52+
marketPrice?: number // 市场价
53+
costPrice?: number // 成本价
54+
stock?: number // 商品库存
55+
createTime?: Date // 商品创建时间
56+
status?: number // 商品状态
5257
}
5358

5459
// 获得 Spu 列表
@@ -62,12 +67,12 @@ export const getTabsCount = () => {
6267
}
6368

6469
// 创建商品 Spu
65-
export const createSpu = (data: SpuType) => {
70+
export const createSpu = (data: Spu) => {
6671
return request.post({ url: '/product/spu/create', data })
6772
}
6873

6974
// 更新商品 Spu
70-
export const updateSpu = (data: SpuType) => {
75+
export const updateSpu = (data: Spu) => {
7176
return request.put({ url: '/product/spu/update', data })
7277
}
7378

@@ -90,3 +95,8 @@ export const deleteSpu = (id: number) => {
9095
export const exportSpu = async (params) => {
9196
return await request.download({ url: '/product/spu/export', params })
9297
}
98+
99+
// 获得商品 SPU 精简列表
100+
export const getSpuSimpleList = async () => {
101+
return request.get({ url: '/product/spu/get-simple-list' })
102+
}

src/api/mall/promotion/coupon.ts

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
import request from '@/config/axios'
2+
3+
// TODO @dhb52:vo 缺少
4+
5+
// 删除优惠劵
6+
export const deleteCoupon = async (id: number) => {
7+
return request.delete({
8+
url: `/promotion/coupon/delete?id=${id}`
9+
})
10+
}
11+
12+
// 获得优惠劵分页
13+
export const getCouponPage = async (params: PageParam) => {
14+
return request.get({
15+
url: '/promotion/coupon/page',
16+
params: params
17+
})
18+
}
Lines changed: 83 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,83 @@
1+
import request from '@/config/axios'
2+
3+
export interface CouponTemplateVO {
4+
id: number
5+
name: string
6+
status: number
7+
totalCount: number
8+
takeLimitCount: number
9+
takeType: number
10+
usePrice: number
11+
productScope: number
12+
productSpuIds: string
13+
validityType: number
14+
validStartTime: Date
15+
validEndTime: Date
16+
fixedStartTerm: number
17+
fixedEndTerm: number
18+
discountType: number
19+
discountPercent: number
20+
discountPrice: number
21+
discountLimitPrice: number
22+
takeCount: number
23+
useCount: number
24+
}
25+
26+
// 创建优惠劵模板
27+
export function createCouponTemplate(data: CouponTemplateVO) {
28+
return request.post({
29+
url: '/promotion/coupon-template/create',
30+
data: data
31+
})
32+
}
33+
34+
// 更新优惠劵模板
35+
export function updateCouponTemplate(data: CouponTemplateVO) {
36+
return request.put({
37+
url: '/promotion/coupon-template/update',
38+
data: data
39+
})
40+
}
41+
42+
// 更新优惠劵模板的状态
43+
export function updateCouponTemplateStatus(id: number, status: [0, 1]) {
44+
const data = {
45+
id,
46+
status
47+
}
48+
return request.put({
49+
url: '/promotion/coupon-template/update-status',
50+
data: data
51+
})
52+
}
53+
54+
// 删除优惠劵模板
55+
export function deleteCouponTemplate(id: number) {
56+
return request.delete({
57+
url: '/promotion/coupon-template/delete?id=' + id
58+
})
59+
}
60+
61+
// 获得优惠劵模板
62+
export function getCouponTemplate(id: number) {
63+
return request.get({
64+
url: '/promotion/coupon-template/get?id=' + id
65+
})
66+
}
67+
68+
// 获得优惠劵模板分页
69+
export function getCouponTemplatePage(params: PageParam) {
70+
return request.get({
71+
url: '/promotion/coupon-template/page',
72+
params: params
73+
})
74+
}
75+
76+
// 导出优惠劵模板 Excel
77+
export function exportCouponTemplateExcel(params: PageParam) {
78+
return request.get({
79+
url: '/promotion/coupon-template/export-excel',
80+
params: params,
81+
responseType: 'blob'
82+
})
83+
}
Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
import request from '@/config/axios'
2+
import { Sku, Spu } from '@/api/mall/product/spu'
3+
4+
export interface SeckillActivityVO {
5+
id: number
6+
spuIds: number[]
7+
name: string
8+
status: number
9+
remark: string
10+
startTime: Date
11+
endTime: Date
12+
sort: number
13+
configIds: string
14+
orderCount: number
15+
userCount: number
16+
totalPrice: number
17+
totalLimitCount: number
18+
singleLimitCount: number
19+
stock: number
20+
totalStock: number
21+
products: SeckillProductVO[]
22+
}
23+
24+
// 秒杀活动所需属性
25+
export interface SeckillProductVO {
26+
spuId: number
27+
skuId: number
28+
seckillPrice: number
29+
stock: number
30+
}
31+
32+
// 扩展 Sku 配置
33+
type SkuExtension = Sku & {
34+
productConfig: SeckillProductVO
35+
}
36+
37+
export interface SpuExtension extends Spu {
38+
skus: SkuExtension[] // 重写类型
39+
}
40+
41+
// 查询秒杀活动列表
42+
export const getSeckillActivityPage = async (params) => {
43+
return await request.get({ url: '/promotion/seckill-activity/page', params })
44+
}
45+
46+
// 查询秒杀活动详情
47+
export const getSeckillActivity = async (id: number) => {
48+
return await request.get({ url: '/promotion/seckill-activity/get?id=' + id })
49+
}
50+
51+
// 新增秒杀活动
52+
export const createSeckillActivity = async (data: SeckillActivityVO) => {
53+
return await request.post({ url: '/promotion/seckill-activity/create', data })
54+
}
55+
56+
// 修改秒杀活动
57+
export const updateSeckillActivity = async (data: SeckillActivityVO) => {
58+
return await request.put({ url: '/promotion/seckill-activity/update', data })
59+
}
60+
61+
// 删除秒杀活动
62+
export const deleteSeckillActivity = async (id: number) => {
63+
return await request.delete({ url: '/promotion/seckill-activity/delete?id=' + id })
64+
}
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
import request from '@/config/axios'
2+
3+
export interface SeckillConfigVO {
4+
id: number
5+
name: string
6+
startTime: string
7+
endTime: string
8+
picUrl: string
9+
status: number
10+
}
11+
12+
// 查询秒杀时段配置列表
13+
export const getSeckillConfigPage = async (params) => {
14+
return await request.get({ url: '/promotion/seckill-config/page', params })
15+
}
16+
17+
// 查询秒杀时段配置详情
18+
export const getSeckillConfig = async (id: number) => {
19+
return await request.get({ url: '/promotion/seckill-config/get?id=' + id })
20+
}
21+
22+
// 获得所有开启状态的秒杀时段精简列表
23+
export const getListAllSimple = async () => {
24+
return await request.get({ url: '/promotion/seckill-config/list-all-simple' })
25+
}
26+
27+
// 新增秒杀时段配置
28+
export const createSeckillConfig = async (data: SeckillConfigVO) => {
29+
return await request.post({ url: '/promotion/seckill-config/create', data })
30+
}
31+
32+
// 修改秒杀时段配置
33+
export const updateSeckillConfig = async (data: SeckillConfigVO) => {
34+
return await request.put({ url: '/promotion/seckill-config/update', data })
35+
}
36+
37+
// 修改时段配置状态
38+
export const updateSeckillConfigStatus = (id: number, status: number) => {
39+
const data = {
40+
id,
41+
status
42+
}
43+
return request.put({ url: '/promotion/seckill-config/update-status', data: data })
44+
}
45+
46+
// 删除秒杀时段配置
47+
export const deleteSeckillConfig = async (id: number) => {
48+
return await request.delete({ url: '/promotion/seckill-config/delete?id=' + id })
49+
}

src/api/mall/trade/delivery/expressTemplate/index.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,11 @@ export const getDeliveryExpressTemplate = async (id: number) => {
3333
return await request.get({ url: '/trade/delivery/express-template/get?id=' + id })
3434
}
3535

36+
// 查询快递运费模板详情
37+
export const getSimpleTemplateList = async () => {
38+
return await request.get({ url: '/trade/delivery/express-template/list-all-simple' })
39+
}
40+
3641
// 新增快递运费模板
3742
export const createDeliveryExpressTemplate = async (data: DeliveryExpressTemplateVO) => {
3843
return await request.post({ url: '/trade/delivery/express-template/create', data })
@@ -47,8 +52,3 @@ export const updateDeliveryExpressTemplate = async (data: DeliveryExpressTemplat
4752
export const deleteDeliveryExpressTemplate = async (id: number) => {
4853
return await request.delete({ url: '/trade/delivery/express-template/delete?id=' + id })
4954
}
50-
51-
// 导出快递运费模板 Excel
52-
export const exportDeliveryExpressTemplateApi = async (params) => {
53-
return await request.download({ url: '/trade/delivery/express-template/export-excel', params })
54-
}
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
import request from '@/config/axios'
2+
3+
export interface DeliveryPickUpStoreVO {
4+
id: number
5+
name: string
6+
introduction: string
7+
phone: string
8+
areaId: number
9+
detailAddress: string
10+
logo: string
11+
openingTime: string
12+
closingTime: string
13+
latitude: number
14+
longitude: number
15+
status: number
16+
}
17+
18+
// 查询自提门店列表
19+
export const getDeliveryPickUpStorePage = async (params: DeliveryPickUpStorePageReqVO) => {
20+
return await request.get({ url: '/trade/delivery/pick-up-store/page', params })
21+
}
22+
23+
// 查询自提门店详情
24+
export const getDeliveryPickUpStore = async (id: number) => {
25+
return await request.get({ url: '/trade/delivery/pick-up-store/get?id=' + id })
26+
}
27+
28+
// 新增自提门店
29+
export const createDeliveryPickUpStore = async (data: DeliveryPickUpStoreVO) => {
30+
return await request.post({ url: '/trade/delivery/pick-up-store/create', data })
31+
}
32+
33+
// 修改自提门店
34+
export const updateDeliveryPickUpStore = async (data: DeliveryPickUpStoreVO) => {
35+
return await request.put({ url: '/trade/delivery/pick-up-store/update', data })
36+
}
37+
38+
// 删除自提门店
39+
export const deleteDeliveryPickUpStore = async (id: number) => {
40+
return await request.delete({ url: '/trade/delivery/pick-up-store/delete?id=' + id })
41+
}
42+
43+
// 导出自提门店 Excel
44+
export const exportDeliveryPickUpStoreApi = async (params) => {
45+
return await request.download({ url: '/trade/delivery/pick-up-store/export-excel', params })
46+
}

src/api/mall/trade/order/index.ts

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
import request from '@/config/axios'
2+
3+
// 获得交易订单分页
4+
// TODO @xiaobai:改成 getOrderPage
5+
export const getOrderList = (params: PageParam) => {
6+
return request.get({ url: '/trade/order/page', params })
7+
}
8+
9+
// 获得交易订单详情
10+
export const getOrderDetail = (id: number) => {
11+
return request.get({ url: '/trade/order/get-detail?id=' + id })
12+
}

0 commit comments

Comments
 (0)