Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
phsl
/
admin
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
Snippets
Members
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit
a45c8e6d
authored
Sep 22, 2024
by
puhui999
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'yudao/dev' into dev-crm
parents
360cce10
fe33517e
Hide whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
54 additions
and
17 deletions
+54
-17
.vscode/settings.json
+1
-1
src/api/mall/promotion/reward/rewardActivity.ts
+6
-6
src/components/DiyEditor/components/mobile/ProductCard/index.vue
+1
-1
src/utils/dict.ts
+0
-1
src/views/mall/product/spu/form/InfoForm.vue
+1
-1
src/views/mall/promotion/coupon/components/CouponSelect.vue
+2
-1
src/views/mall/promotion/coupon/formatter.ts
+7
-3
src/views/mall/promotion/discountActivity/DiscountActivityForm.vue
+1
-1
src/views/mall/promotion/discountActivity/discountActivity.data.ts
+11
-0
src/views/mall/promotion/rewardActivity/RewardForm.vue
+6
-0
src/views/mall/promotion/rewardActivity/components/RewardRule.vue
+12
-1
src/views/mall/promotion/rewardActivity/index.vue
+6
-1
No files found.
.vscode/settings.json
View file @
a45c8e6d
...
...
@@ -87,7 +87,7 @@
"source.fixAll.stylelint"
:
"explicit"
},
"[vue]"
:
{
"editor.defaultFormatter"
:
"
rvest.vs-code-prettier-eslint
"
"editor.defaultFormatter"
:
"
esbenp.prettier-vscode
"
},
"i18n-ally.localesPaths"
:
[
"src/locales"
],
"i18n-ally.keystyle"
:
"nested"
,
...
...
src/api/mall/promotion/reward/rewardActivity.ts
View file @
a45c8e6d
...
...
@@ -47,12 +47,12 @@ export const getReward = async (id: number) => {
return
await
request
.
get
({
url
:
'/promotion/reward-activity/get?id='
+
id
})
}
// 关闭拼团活动
export
const
closeRewardActivity
=
async
(
id
:
number
)
=>
{
return
await
request
.
put
({
url
:
'/promotion/reward-activity/close?id='
+
id
})
}
// 删除限时折扣活动
// 删除满减送活动
export
const
deleteRewardActivity
=
async
(
id
:
number
)
=>
{
return
await
request
.
delete
({
url
:
'/promotion/reward-activity/delete?id='
+
id
})
}
// 关闭满减送活动
export
const
closeRewardActivity
=
async
(
id
:
number
)
=>
{
return
await
request
.
put
({
url
:
'/promotion/reward-activity/close?id='
+
id
})
}
src/components/DiyEditor/components/mobile/ProductCard/index.vue
View file @
a45c8e6d
...
...
@@ -67,7 +67,7 @@
class=
"text-16px"
:style=
"
{ color: property.fields.price.color }"
>
¥
{{
fenToYuan
(
spu
.
price
)
}}
¥
{{
fenToYuan
(
spu
.
price
as
any
)
}}
</span>
<!-- 市场价 -->
<span
...
...
src/utils/dict.ts
View file @
a45c8e6d
...
...
@@ -194,7 +194,6 @@ export enum DICT_TYPE {
PROMOTION_COUPON_TEMPLATE_VALIDITY_TYPE
=
'promotion_coupon_template_validity_type'
,
// 优惠劵模板的有限期类型
PROMOTION_COUPON_STATUS
=
'promotion_coupon_status'
,
// 优惠劵的状态
PROMOTION_COUPON_TAKE_TYPE
=
'promotion_coupon_take_type'
,
// 优惠劵的领取方式
PROMOTION_ACTIVITY_STATUS
=
'promotion_activity_status'
,
// 优惠活动的状态
PROMOTION_CONDITION_TYPE
=
'promotion_condition_type'
,
// 营销的条件类型枚举
PROMOTION_BARGAIN_RECORD_STATUS
=
'promotion_bargain_record_status'
,
// 砍价记录的状态
PROMOTION_COMBINATION_RECORD_STATUS
=
'promotion_combination_record_status'
,
// 拼团记录的状态
...
...
src/views/mall/product/spu/form/InfoForm.vue
View file @
a45c8e6d
...
...
@@ -45,7 +45,7 @@
:show-word-limit="true"
class="w-80!"
maxlength="128"
placeholder="请输入商品
名称
"
placeholder="请输入商品
简介
"
type="textarea"
/>
</el-form-item>
...
...
src/views/mall/promotion/coupon/components/CouponSelect.vue
View file @
a45c8e6d
...
...
@@ -116,6 +116,7 @@ import {
validityTypeFormat
}
from
'@/views/mall/promotion/coupon/formatter'
import
*
as
CouponTemplateApi
from
'@/api/mall/promotion/coupon/couponTemplate'
import
{
CouponTemplateTakeTypeEnum
}
from
'@/utils/constants'
defineOptions
({
name
:
'CouponSelect'
})
...
...
@@ -138,7 +139,7 @@ const queryParams = reactive({
pageSize
:
10
,
name
:
null
,
discountType
:
null
,
canTakeTypes
:
null
canTakeTypes
:
[
CouponTemplateTakeTypeEnum
.
USER
.
type
]
// 只获得直接领取的券
})
const
queryFormRef
=
ref
()
// 搜索的表单
const
selectedCouponList
=
ref
<
CouponTemplateApi
.
CouponTemplateVO
[]
>
([])
// 选择的数据
...
...
src/views/mall/promotion/coupon/formatter.ts
View file @
a45c8e6d
...
...
@@ -16,10 +16,14 @@ export const discountFormat = (row: CouponTemplateVO) => {
// 格式化【领取上限】
export
const
takeLimitCountFormat
=
(
row
:
CouponTemplateVO
)
=>
{
if
(
row
.
takeLimitCount
===
-
1
)
{
return
'无领取限制'
if
(
row
.
takeLimitCount
)
{
if
(
row
.
takeLimitCount
===
-
1
)
{
return
'无领取限制'
}
return
`
${
row
.
takeLimitCount
}
张/人`
}
else
{
return
' '
}
return
`
${
row
.
takeLimitCount
}
张/人`
}
// 格式化【有效期限】
...
...
src/views/mall/promotion/discountActivity/DiscountActivityForm.vue
View file @
a45c8e6d
...
...
@@ -190,7 +190,7 @@ const submitForm = async () => {
const
products
=
cloneDeep
(
spuAndSkuListRef
.
value
.
getSkuConfigs
(
'productConfig'
))
products
.
forEach
((
item
:
DiscountActivityApi
.
DiscountProductVO
)
=>
{
item
.
discountPercent
=
convertToInteger
(
item
.
discountPercent
)
item
.
discountPrice
=
convertToInteger
(
item
.
discountPrice
)
item
.
discountPrice
=
convertToInteger
(
yuanToFen
(
item
.
discountPrice
)
)
})
const
data
=
cloneDeep
(
formRef
.
value
.
formModel
)
as
DiscountActivityApi
.
DiscountActivityVO
data
.
products
=
products
...
...
src/views/mall/promotion/discountActivity/discountActivity.data.ts
View file @
a45c8e6d
...
...
@@ -71,6 +71,17 @@ const crudSchemas = reactive<CrudSchema[]>([
}
},
{
label
:
'优惠类型'
,
field
:
'discountType'
,
dictType
:
DICT_TYPE
.
PROMOTION_DISCOUNT_TYPE
,
dictClass
:
'number'
,
isSearch
:
true
,
form
:
{
component
:
'Radio'
,
value
:
1
}
},
{
label
:
'活动商品'
,
field
:
'spuId'
,
isTable
:
true
,
...
...
src/views/mall/promotion/rewardActivity/RewardForm.vue
View file @
a45c8e6d
...
...
@@ -119,6 +119,9 @@ const open = async (type: string, id?: number) => {
// 规则分转元
data
.
rules
?.
forEach
((
item
:
any
)
=>
{
item
.
discountPrice
=
fenToYuan
(
item
.
discountPrice
||
0
)
if
(
data
.
conditionType
===
PromotionConditionTypeEnum
.
PRICE
.
type
)
{
item
.
limit
=
fenToYuan
(
item
.
limit
||
0
)
}
})
formData
.
value
=
data
// 获得商品范围
...
...
@@ -151,6 +154,9 @@ const submitForm = async () => {
// 规则元转分
data
.
rules
.
forEach
((
item
)
=>
{
item
.
discountPrice
=
yuanToFen
(
item
.
discountPrice
||
0
)
if
(
data
.
conditionType
===
PromotionConditionTypeEnum
.
PRICE
.
type
)
{
item
.
limit
=
yuanToFen
(
item
.
limit
||
0
)
}
})
// 设置商品范围
setProductScopeValues
(
data
)
...
...
src/views/mall/promotion/rewardActivity/components/RewardRule.vue
View file @
a45c8e6d
...
...
@@ -10,14 +10,25 @@
<el-form
ref=
"formRef"
:model=
"rule"
>
<el-form-item
label=
"优惠门槛:"
label-width=
"100px"
prop=
"limit"
>
满
<el-input-number
v-if=
"PromotionConditionTypeEnum.PRICE.type === formData.conditionType"
v-model=
"rule.limit"
:min=
"0"
:precision=
"2"
:step=
"0.1"
class=
"w-150px! p-x-20px!"
placeholder=
""
type=
"number"
controls-position=
"right"
/>
<el-input
v-else
v-model=
"rule.limit"
:min=
"0"
class=
"w-150px! p-x-20px!"
placeholder=
""
type=
"number"
/>
<!-- TODO @puhui999:走字典数据? -->
{{
PromotionConditionTypeEnum
.
PRICE
.
type
===
formData
.
conditionType
?
'元'
:
'件'
}}
</el-form-item>
<el-form-item
label=
"优惠内容:"
label-width=
"100px"
>
...
...
src/views/mall/promotion/rewardActivity/index.vue
View file @
a45c8e6d
...
...
@@ -27,7 +27,7 @@
placeholder=
"请选择活动状态"
>
<el-option
v-for=
"dict in getIntDictOptions(DICT_TYPE.
PROMOTION_ACTIVITY
_STATUS)"
v-for=
"dict in getIntDictOptions(DICT_TYPE.
COMMON
_STATUS)"
:key=
"dict.value"
:label=
"dict.label"
:value=
"dict.value"
...
...
@@ -71,6 +71,11 @@
<ContentWrap>
<el-table
v-loading=
"loading"
:data=
"list"
default-expand-all
row-key=
"id"
>
<el-table-column
label=
"活动名称"
prop=
"name"
/>
<el-table-column
label=
"活动范围"
prop=
"productScope"
>
<template
#
default=
"scope"
>
<dict-tag
:type=
"DICT_TYPE.PROMOTION_PRODUCT_SCOPE"
:value=
"scope.row.productScope"
/>
</
template
>
</el-table-column>
<el-table-column
:formatter=
"dateFormatter"
align=
"center"
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment