Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
M
marketing
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
marketing-web
marketing
Commits
91353e86
Commit
91353e86
authored
Apr 15, 2021
by
黑潮
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'feature/3月迭代' into master
# Conflicts: # src/views/ecm/form.vue
parents
4d086ebe
9097a491
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
68 additions
and
19 deletions
+68
-19
current-list.vue
src/views/ecm/current-list.vue
+12
-5
form.js
src/views/ecm/form.js
+1
-1
form.vue
src/views/ecm/form.vue
+3
-3
list.vue
src/views/ecm/list.vue
+1
-1
index.css
src/views/ecm/marketing-event/assets/style/index.css
+4
-0
opt.vue
src/views/ecm/marketing-event/components/opt.vue
+12
-1
index.vue
src/views/ecm/marketing-event/index.vue
+35
-8
No files found.
src/views/ecm/current-list.vue
View file @
91353e86
...
...
@@ -5,6 +5,10 @@
<el-select
class=
"dm-select"
clearable
v-model=
"listParams.success"
placeholder=
"所有条件"
@
change=
"search"
>
<el-option
v-for=
"(v, i) in successOptions"
:key=
"i"
:label=
"v.label"
:value=
"v.value"
></el-option>
</el-select>
<el-select
class=
"dm-select"
placeholder=
"所有条件"
v-model=
"listParams.status"
@
change=
"changeStatus"
>
<el-option
label=
"正在进行中"
:value=
"1"
></el-option>
<el-option
label=
"已删除"
:value=
"0"
></el-option>
</el-select>
<!--
<el-button
type=
"text"
@
click=
"goHistory"
>
历史记录
</el-button>
-->
<el-button
icon=
"iconfont icon-icon_yunxiazai"
class=
"fr"
type=
"primary"
@
click=
"exportCurrentSendDetails"
>
导出列表
</el-button>
</div>
...
...
@@ -84,7 +88,8 @@ export default {
pageSize
:
20
,
success
:
''
,
beginTime
:
''
,
endTime
:
''
endTime
:
''
,
status
:
1
},
userMemberInfo
:
''
,
// 下面列表搜索
total
:
0
,
...
...
@@ -186,9 +191,10 @@ export default {
this
.
listParams
.
ecmMarketingTypeRelationIds
=
list
;
this
.
ecmCurrentSendDetails
();
},
// goHistory() {
// },
changeStatus
()
{
this
.
listParams
.
currentPage
=
1
;
this
.
ecmCurrentSendInfos
();
},
search
()
{
this
.
listParams
.
currentPage
=
1
;
this
.
ecmCurrentSendInfos
();
...
...
@@ -215,7 +221,8 @@ export default {
beginTime
:
this
.
listParams
.
beginTime
,
endTime
:
this
.
listParams
.
endTime
,
memberInfo
:
this
.
listParams
.
memberInfo
,
success
:
this
.
listParams
.
success
success
:
this
.
listParams
.
success
,
status
:
this
.
listParams
.
status
});
this
.
infoList
=
res
.
result
||
[];
this
.
$nextTick
(
_
=>
{
...
...
src/views/ecm/form.js
View file @
91353e86
...
...
@@ -19,7 +19,7 @@ export default {
creatorId
:
''
,
code
:
'1001'
,
loading
:
false
,
effectActionOptions
:
[{
value
:
'subscribe'
,
label
:
'关注触发'
},
{
value
:
'authentication'
,
label
:
'认证触发'
},
{
value
:
'consume'
,
label
:
'消费触发'
},
{
value
:
'upgrade'
,
label
:
'会员卡升级触发'
},
],
// eslint-disable-line
effectActionOptions
:
[{
value
:
'subscribe'
,
label
:
'关注触发'
},
{
value
:
'authentication'
,
label
:
'认证触发'
},
{
value
:
'consume'
,
label
:
'消费触发'
},
{
value
:
'
degrade'
,
label
:
'会员卡降级触发'
},
{
value
:
'
upgrade'
,
label
:
'会员卡升级触发'
},
],
// eslint-disable-line
marketingTimesTypeOptions
:
[{
value
:
0
,
label
:
'总共触发'
},
{
value
:
1
,
label
:
'每天触发'
},
{
value
:
2
,
label
:
'每周触发'
},
{
value
:
3
,
label
:
'每月触发'
},
{
value
:
4
,
label
:
'每年触发'
},
{
value
:
-
1
,
label
:
'无限次触发'
}],
// eslint-disable-line
execDateType
:
[
{
label
:
'每天'
,
value
:
1
},
...
...
src/views/ecm/form.vue
View file @
91353e86
...
...
@@ -143,7 +143,7 @@
<el-input-number
controls-position=
"right"
:disabled=
"!isAdd"
v-model=
"discount_limit.count"
:precision=
"2"
:min=
"0"
:max=
"10"
class=
"w150"
></el-input-number>
折
</div>
<span
class=
"fz14 gray"
v-else
>
不限制消费商品折扣
</span>
<div
v-if=
"discount_limit.flag"
class=
"fz12 gray"
>
* 商品折扣 =
订单项实付金额 / 订单项应付金额
</div>
<div
v-if=
"discount_limit.flag"
class=
"fz12 gray"
>
* 商品折扣 =
商品实付 / 吊牌价
</div>
</div>
</div>
</el-form-item>
...
...
@@ -225,7 +225,7 @@
</div>
</section>
<!-- 营销次数配置 实时触点 -->
<section
class=
"dm-form__wrap"
v-if=
"form.effectType == 0 && ['consume', 'upgrade', 'degrade'].includes(form.effectAction)"
>
<section
class=
"dm-form__wrap"
v-if=
"form.effectType == 0 && ['consume', 'upgrade', 'degrade'
, 'stored'
].includes(form.effectAction)"
>
<h3
class=
"dm-title__label"
>
营销次数配置
<i
class=
"dm-title__label--icon iconfont icon-xinxixianshi"
></i>
...
...
@@ -275,7 +275,7 @@
<section
class=
"dm-form__wrap"
>
<h3
class=
"dm-title__label"
>
营销事件
</h3>
<!-- 只有实时才是单图文 -->
<marketing-event
:readOnly=
"isInfo"
show-out-coupon-icon
ref=
"marketingEvent"
@
has-card=
"hasCard"
v-if=
"ecmPlanId"
:singleFlag=
"form.effectType === 0"
:integralMultiple=
"form.effectAction === 'consume'"
:ecmPlanId=
"ecmPlanId"
:isSupportVar=
"form.effectType === 0"
:code=
"code"
:enabledMessageState=
"enabledMessageState"
:cardLimitType=
"-1"
:use-stored=
"useStoredFlag"
></marketing-event>
<marketing-event
:readOnly=
"isInfo"
show-out-coupon-icon
ref=
"marketingEvent"
@
has-card=
"hasCard"
v-if=
"ecmPlanId"
:singleFlag=
"form.effectType === 0"
:integralMultiple=
"form.effectAction === 'consume'"
:ecmPlanId=
"ecmPlanId"
:isSupportVar=
"form.effectType === 0"
:code=
"code"
:enabledMessageState=
"enabledMessageState"
:cardLimitType=
"-1"
:use-stored=
"useStoredFlag
&& ['consume', 'stored'].includes(form.effectAction)
"
></marketing-event>
<!-- 只有非实时&&选择卡券了展示提示 -->
<div
v-if=
"currentCard.comName && form.effectType != 0 && couponAutoGetFlag"
class=
"fz13 regular-font-color line-height2"
style=
"margin-left:120px;margin-top:30px;"
>
* 用户在领取卡券后需要
<b
class=
"bold"
>
同步至ERP
</b>
,如果关闭用户
<b
class=
"bold"
>
手动领取
</b>
,卡券在
<b
class=
"bold"
>
批量投放
</b>
时会需要将卡券信息批量同步至ERP。
<br
/>
...
...
src/views/ecm/list.vue
View file @
91353e86
...
...
@@ -132,7 +132,7 @@ export default {
created
()
{
getUseStoredFalg
().
then
(
res
=>
{
if
(
res
.
result
.
useStoredFlag
)
{
this
.
marketingTypeOptions
.
push
({
value
:
'grade'
,
label
:
'会员卡升级'
})
;
this
.
marketingTypeOptions
=
[...
this
.
marketingTypeOptions
,
{
value
:
'grade'
,
label
:
'会员卡升级'
}]
;
}
});
this
.
loadEcmList
();
...
...
src/views/ecm/marketing-event/assets/style/index.css
View file @
91353e86
...
...
@@ -448,6 +448,8 @@
border-radius
:
4px
;
display
:
inline-block
;
position
:
relative
;
vertical-align
:
middle
;
margin
:
0
10px
;
}
.dm-grade__item__wrap
{
width
:
300px
;
...
...
@@ -456,4 +458,6 @@
border-radius
:
4px
;
display
:
inline-block
;
position
:
relative
;
vertical-align
:
middle
;
margin
:
0
10px
;
}
src/views/ecm/marketing-event/components/opt.vue
View file @
91353e86
<
template
>
<div
class=
"inline-block dm-marketing__opt"
>
<span
v-for=
"(v, i) in options"
:key=
"i"
class=
"dm-marketing__opt__item"
@
click=
"addItem(v)"
>
<span
v-for=
"(v, i) in options"
:key=
"i"
class=
"dm-marketing__opt__item"
:class=
"
{ 'is-disabled': v.disabled }"
@click="addItem(v)">
<img
:src=
"v.img"
alt=
""
srcset=
""
/><span>
{{
v
.
name
}}
</span>
</span>
</div>
...
...
@@ -19,8 +19,19 @@ export default {
},
methods
:
{
addItem
(
item
)
{
if
(
item
.
disabled
)
return
;
this
.
$emit
(
'addItem'
,
item
);
}
}
};
</
script
>
<
style
lang=
"scss"
scoped
>
.is-disabled
{
span,
img
{
color
:
#c0c4cc
!important
;
}
cursor
:
not-allowed
;
}
</
style
>
src/views/ecm/marketing-event/index.vue
View file @
91353e86
...
...
@@ -65,7 +65,7 @@ import libGrade from './components/lib-grade';
// 全部的操作项
// eslint-disable-next-line
cons
t
allOptions
=
[{
name
:
'图文'
,
value
:
'teletext'
,
key
:
1
,
img
:
require
(
'./assets/img/teletext.svg'
)
},
{
name
:
'文本'
,
value
:
'text'
,
key
:
2
,
img
:
require
(
'./assets/img/text.svg'
)
},
{
name
:
'小程序'
,
value
:
'wxa'
,
key
:
3
,
img
:
require
(
'./assets/img/wxa.svg'
)
},
{
name
:
'图片'
,
value
:
'image'
,
key
:
4
,
img
:
require
(
'./assets/img/image.svg'
)
},
{
name
:
'卡券'
,
value
:
'card'
,
key
:
5
,
img
:
require
(
'./assets/img/card.svg'
)
},
{
name
:
'短信'
,
value
:
'message'
,
key
:
6
,
img
:
require
(
'./assets/img/message.svg'
)
},
{
name
:
'话务'
,
value
:
'teltask'
,
key
:
7
,
img
:
require
(
'./assets/img/teltask.svg'
)},
{
name
:
'积分'
,
value
:
'integral'
,
key
:
8
,
img
:
require
(
'./assets/img/integral.svg'
)
}];
le
t
allOptions
=
[{
name
:
'图文'
,
value
:
'teletext'
,
key
:
1
,
img
:
require
(
'./assets/img/teletext.svg'
)
},
{
name
:
'文本'
,
value
:
'text'
,
key
:
2
,
img
:
require
(
'./assets/img/text.svg'
)
},
{
name
:
'小程序'
,
value
:
'wxa'
,
key
:
3
,
img
:
require
(
'./assets/img/wxa.svg'
)
},
{
name
:
'图片'
,
value
:
'image'
,
key
:
4
,
img
:
require
(
'./assets/img/image.svg'
)
},
{
name
:
'卡券'
,
value
:
'card'
,
key
:
5
,
img
:
require
(
'./assets/img/card.svg'
)
},
{
name
:
'短信'
,
value
:
'message'
,
key
:
6
,
img
:
require
(
'./assets/img/message.svg'
)
},
{
name
:
'话务'
,
value
:
'teltask'
,
key
:
7
,
img
:
require
(
'./assets/img/teltask.svg'
)},
{
name
:
'积分'
,
value
:
'integral'
,
key
:
8
,
img
:
require
(
'./assets/img/integral.svg'
)
}];
export
default
{
name
:
'vue-gic-marketing-event'
,
components
:
{
...
...
@@ -153,11 +153,38 @@ export default {
};
},
created
()
{
this
.
allOptions
=
[...
allOptions
];
if
(
this
.
useStored
)
{
allOptions
.
push
({
name
:
'会员卡升级'
,
value
:
'grade'
,
key
:
9
,
img
:
require
(
'./assets/img/grade.svg'
)
});
//eslint-disable-line
this
.
allOptions
.
push
({
name
:
'会员卡升级'
,
value
:
'grade'
,
key
:
9
,
img
:
require
(
'./assets/img/grade.svg'
)
});
//eslint-disable-line
}
this
.
init
();
},
watch
:
{
useStored
:
{
handler
()
{
if
(
this
.
useStored
)
{
this
.
options
=
[
...
this
.
options
,
{
name
:
'会员卡升级'
,
value
:
'grade'
,
key
:
9
,
img
:
require
(
'./assets/img/grade.svg'
),
disabled
:
false
}];
//eslint-disable-line
}
else
{
this
.
options
=
this
.
options
.
filter
(
item
=>
item
.
value
!==
'grade'
);
}
}
},
list
()
{
if
(
this
.
list
.
some
(
item
=>
item
.
comName
===
'item-grade'
))
{
this
.
options
.
forEach
(
item
=>
{
if
(
item
.
value
==
'grade'
)
{
item
.
disabled
=
true
;
}
});
}
else
{
this
.
options
.
forEach
(
item
=>
{
if
(
item
.
value
==
'grade'
)
{
item
.
disabled
=
false
;
}
});
}
}
},
methods
:
{
/*------------------逻辑方法--------------*/
// 初始化获取配置项
...
...
@@ -168,7 +195,7 @@ export default {
this
.
maxEventCount
=
Number
(
res
.
result
.
maxEventCount
||
0
);
let
list
=
res
.
result
.
list
||
[];
let
optionNameList
=
list
.
map
(
v
=>
v
.
eventName
);
allOptions
.
map
(
v
=>
{
this
.
allOptions
.
map
(
v
=>
{
if
(
optionNameList
.
indexOf
(
v
.
name
)
>=
0
)
{
this
.
options
.
push
(
v
);
}
...
...
@@ -218,7 +245,7 @@ export default {
// this.list.push({ comName: 'item-teltask', item: { ...v.teltask, ecmMarketingTypeRelationId: v.ecmMarketingTypeRelationId, relationId: v.relationId, ecmPlanId: v.ecmPlanId } });
break
;
case
'grade'
:
// 8 积分
this
.
list
.
push
({
comName
:
'item-grade'
,
item
:
{
title
:
v
.
title
}
});
this
.
list
.
push
({
comName
:
'item-grade'
,
item
:
{
title
:
v
.
title
,
ecmMarketingTypeRelationId
:
v
.
ecmMarketingTypeRelationId
,
relationId
:
v
.
relationId
,
ecmPlanId
:
v
.
ecmPlanId
}
});
break
;
}
});
...
...
@@ -325,10 +352,10 @@ export default {
this
.
$message
({
type
:
'warning'
,
message
:
`最多只能添加
${
this
.
maxEventCount
}
个营销事件`
});
return
;
}
if
(
this
.
list
.
some
(
item
=>
item
.
comName
===
'item-grade'
))
{
this
.
$message
({
type
:
'warning'
,
message
:
`已添加会员卡升级营销事件`
});
return
;
}
// if (v.value === 'grade' &&
this.list.some(item => item.comName === 'item-grade')) {
//
this.$message({ type: 'warning', message: `已添加会员卡升级营销事件` });
//
return;
//
}
// 判断是否欠费
if
(
v
.
value
===
'message'
&&
this
.
checkAccountState
())
return
;
this
.
dialogCom
=
'lib-'
+
v
.
value
;
...
...
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