Skip to content

Commit 881ec67

Browse files
committed
2 parents 067f89f + 1302089 commit 881ec67

File tree

23 files changed

+888
-450
lines changed

23 files changed

+888
-450
lines changed

src/api/mall/promotion/coupon/coupon.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,3 +16,11 @@ export const getCouponPage = async (params: PageParam) => {
1616
params: params
1717
})
1818
}
19+
20+
// 发送优惠券
21+
export const sendCoupon = async (data: any) => {
22+
return request.post({
23+
url: '/promotion/coupon/send',
24+
data: data
25+
})
26+
}

src/api/mall/promotion/coupon/couponTemplate.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ export interface CouponTemplateVO {
99
takeType: number
1010
usePrice: number
1111
productScope: number
12-
productSpuIds: string
12+
productScopeValues: number[]
1313
validityType: number
1414
validStartTime: Date
1515
validEndTime: Date

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

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,11 +15,11 @@ export interface OrderVO {
1515
cancelTime?: Date | null // 订单取消时间
1616
cancelType?: number | null // 取消类型
1717
remark?: string // 商家备注
18-
payOrderId: number | null // 支付订单编号
18+
payOrderId?: number | null // 支付订单编号
1919
payed?: boolean // 是否已支付
2020
payTime?: Date | null // 付款时间
2121
payChannelCode?: string // 支付渠道
22-
originalPrice?: number | null // 商品原价(总)
22+
totalPrice?: number | null // 商品原价(总)
2323
orderPrice?: number | null // 订单原价(总)
2424
discountPrice?: number | null // 订单优惠(总)
2525
deliveryPrice?: number | null // 运费金额
@@ -44,12 +44,19 @@ export interface OrderVO {
4444
pointPrice?: number | null // 积分抵扣的金额
4545
receiverAreaName?: string //收件人地区名字
4646
items?: OrderItemRespVO[] // 订单项列表
47-
//用户信息
47+
// 用户信息
4848
user?: {
4949
id?: number | null
5050
nickname?: string
5151
avatar?: string
5252
}
53+
// 订单操作日志
54+
orderLog: orderLog[]
55+
}
56+
57+
export interface orderLog {
58+
content?: string
59+
createTime?: Date
5360
}
5461

5562
export interface OrderItemRespVO {
@@ -94,6 +101,11 @@ export const getOrder = async (id: number | null) => {
94101
return await request.get({ url: `/trade/order/get-detail?id=` + id })
95102
}
96103

104+
// 查询交易订单物流详情
105+
export const getExpressTrackList = async (id: number | null) => {
106+
return await request.get({ url: `/trade/order/get-express-track-list?id=` + id })
107+
}
108+
97109
export interface DeliveryVO {
98110
id: number // 订单编号
99111
logisticsId: number | null // 物流公司编号

src/utils/constants.ts

Lines changed: 24 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -209,17 +209,39 @@ export const CouponTemplateValidityTypeEnum = {
209209
}
210210
}
211211

212+
/**
213+
* 优惠劵模板的领取方式的枚举
214+
*/
215+
export const CouponTemplateTakeTypeEnum = {
216+
USER: {
217+
type: 1,
218+
name: '直接领取'
219+
},
220+
ADMIN: {
221+
type: 2,
222+
name: '指定发放'
223+
},
224+
REGISTER: {
225+
type: 3,
226+
name: '新人券'
227+
}
228+
}
229+
212230
/**
213231
* 营销的商品范围枚举
214232
*/
215233
export const PromotionProductScopeEnum = {
216234
ALL: {
217235
scope: 1,
218-
name: '全部商品参与'
236+
name: '通用劵'
219237
},
220238
SPU: {
221239
scope: 2,
222-
name: '指定商品参与'
240+
name: '商品劵'
241+
},
242+
CATEGORY: {
243+
scope: 3,
244+
name: '品类劵'
223245
}
224246
}
225247

src/views/mall/product/brand/index.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@
5959
<el-table-column label="品牌名称" prop="name" sortable />
6060
<el-table-column label="品牌图片" align="center" prop="picUrl">
6161
<template #default="scope">
62-
<img v-if="scope.row.picUrl" :src="scope.row.picUrl" alt="品牌图片" class="h-100px" />
62+
<img v-if="scope.row.picUrl" :src="scope.row.picUrl" alt="品牌图片" class="h-30px" />
6363
</template>
6464
</el-table-column>
6565
<el-table-column label="品牌排序" align="center" prop="sort" />
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
<template>
2+
<el-tree-select
3+
v-model="selectCategoryId"
4+
:data="categoryList"
5+
:props="defaultProps"
6+
:multiple="multiple"
7+
:show-checkbox="multiple"
8+
class="w-1/1"
9+
node-key="id"
10+
placeholder="请选择商品分类"
11+
/>
12+
</template>
13+
<script lang="ts" setup>
14+
import { defaultProps, handleTree } from '@/utils/tree'
15+
import * as ProductCategoryApi from '@/api/mall/product/category'
16+
import { oneOfType } from 'vue-types'
17+
import { propTypes } from '@/utils/propTypes'
18+
19+
/** 商品分类选择组件 */
20+
defineOptions({ name: 'ProductCategorySelect' })
21+
22+
const props = defineProps({
23+
modelValue: oneOfType([propTypes.number.def(undefined), propTypes.array.def([])]).def(undefined), // 选中的ID
24+
multiple: propTypes.bool.def(false) // 是否多选
25+
})
26+
27+
/** 选中的分类 ID */
28+
const selectCategoryId = computed({
29+
get: () => {
30+
return props.modelValue
31+
},
32+
set: (val: number | number[]) => {
33+
emit('update:modelValue', val)
34+
}
35+
})
36+
37+
/** 分类选择 */
38+
const emit = defineEmits(['update:modelValue'])
39+
40+
/** 初始化 **/
41+
const categoryList = ref([]) // 分类树
42+
onMounted(async () => {
43+
// 获得分类树
44+
const data = await ProductCategoryApi.getCategoryList({})
45+
categoryList.value = handleTree(data, 'id', 'parentId')
46+
})
47+
</script>

src/views/mall/product/category/index.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@
3838
<el-table-column label="分类名称" prop="name" sortable />
3939
<el-table-column label="移动端分类图" align="center" prop="picUrl">
4040
<template #default="scope">
41-
<img v-if="scope.row.picUrl" :src="scope.row.picUrl" alt="移动端分类图" class="h-100px" />
41+
<img v-if="scope.row.picUrl" :src="scope.row.picUrl" alt="移动端分类图" class="h-30px" />
4242
</template>
4343
</el-table-column>
4444
<el-table-column label="分类排序" align="center" prop="sort" />

src/views/mall/product/comment/index.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,7 @@
115115
:formatter="dateFormatter"
116116
width="170"
117117
/>
118-
<el-table-column label="状态" align="center" width="65px">
118+
<el-table-column label="是否展示" align="center" width="80px">
119119
<template #default="scope">
120120
<el-switch
121121
v-model="scope.row.visible"

src/views/mall/product/property/value/index.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -147,7 +147,7 @@ const handleDelete = async (id: number) => {
147147
// 删除的二次确认
148148
await message.delConfirm()
149149
// 发起删除
150-
await PropertyApi.deleteProperty(id)
150+
await PropertyApi.deletePropertyValue(id)
151151
message.success(t('common.delSuccess'))
152152
// 刷新列表
153153
await getList()

src/views/mall/product/spu/components/SkuList.vue

Lines changed: 4 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -328,24 +328,15 @@ const tableHeaders = ref<{ prop: string; label: string }[]>([]) // 多属性表
328328
* 保存时,每个商品规格的表单要校验下。例如说,销售金额最低是 0.01 这种。
329329
*/
330330
const validateSku = () => {
331-
const checks = ['price', 'marketPrice', 'costPrice']
332331
let warningInfo = '请检查商品各行相关属性配置,'
333332
let validate = true // 默认通过
334333
for (const sku of formData.value!.skus!) {
335334
// 作为活动组件的校验
336-
if (props.isActivityComponent) {
337-
for (const rule of props?.ruleConfig) {
338-
const arg = getValue(sku, rule.name)
339-
if (!rule.rule(arg)) {
340-
validate = false // 只要有一个不通过则直接不通过
341-
warningInfo += rule.message
342-
break
343-
}
344-
}
345-
} else {
346-
if (checks.some((check) => sku[check] < 0.01)) {
335+
for (const rule of props?.ruleConfig) {
336+
const arg = getValue(sku, rule.name)
337+
if (!rule.rule(arg)) {
347338
validate = false // 只要有一个不通过则直接不通过
348-
warningInfo = '商品相关价格不能低于 0.01 元!!'
339+
warningInfo += rule.message
349340
break
350341
}
351342
}

0 commit comments

Comments
 (0)