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
2e52acba
Commit
2e52acba
authored
May 20, 2021
by
黑潮
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
update: ecm编辑
parent
116433f6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
62 additions
and
14 deletions
+62
-14
current-list.vue
src/views/ecm/current-list.vue
+1
-1
form.js
src/views/ecm/form.js
+3
-0
form.vue
src/views/ecm/form.vue
+6
-6
lib-qfxx.vue
src/views/ecm/marketing-event/components/lib-qfxx.vue
+33
-3
lib-teltask.vue
src/views/ecm/marketing-event/components/lib-teltask.vue
+16
-2
index.vue
src/views/ecm/marketing-event/index.vue
+3
-2
No files found.
src/views/ecm/current-list.vue
View file @
2e52acba
...
...
@@ -96,7 +96,7 @@ export default {
loading
:
false
,
infoHeader
:
[
{
label
:
'
回复
方式'
,
label
:
'
营销
方式'
,
prop
:
'marketingType'
,
align
:
'left'
,
formatter
(
row
)
{
...
...
src/views/ecm/form.js
View file @
2e52acba
...
...
@@ -15,6 +15,7 @@ export default {
mixins
:
[
xxSysp_mix
],
data
()
{
return
{
onlineStatus
:
0
,
ecmPlanId
:
''
,
// 必传,
creatorId
:
''
,
code
:
'1001'
,
...
...
@@ -117,6 +118,7 @@ export default {
isEdit
:
this
.
$route
.
meta
.
type
===
'edit'
,
isAdd
:
this
.
$route
.
meta
.
type
===
'add'
,
isInfo
:
this
.
$route
.
meta
.
type
===
'info'
,
isCopy
:
this
.
$route
.
meta
.
copy
===
'copy'
,
// 人群筛选器可传参数
sceneValue
:
'member'
,
// 场景值
useId
:
''
,
// 模板id
...
...
@@ -302,6 +304,7 @@ export default {
this
.
enabledMessageState
=
res
.
result
.
enabledMessageState
||
0
;
this
.
xxSysp
.
goodsEnable
=
res
.
result
.
goodsEnable
||
false
;
// 是否支持商品选择器
if
(
result
&&
!
this
.
isAdd
)
{
this
.
onlineStatus
=
result
.
onlineStatus
;
this
.
creatorId
=
res
.
result
.
ecmDTO
.
creatorId
;
this
.
ecmPlanId
=
this
.
form
.
ecmPlanId
=
result
.
ecmPlanId
||
''
;
this
.
form
.
ecmPlanName
=
result
.
ecmPlanName
;
...
...
src/views/ecm/form.vue
View file @
2e52acba
...
...
@@ -269,10 +269,10 @@
<section
class=
"dm-form__wrap"
v-if=
"form.effectType == 0 || form.effectType == 1"
>
<h3
class=
"dm-title__label"
>
有效时间
</h3>
<el-form-item
label=
"有效时间"
prop=
"endDate"
:show-message=
"showMessage"
>
<el-radio
v-model=
"form.expireType"
:label=
"0"
>
长期有效
</el-radio>
<el-radio
v-model=
"form.expireType"
:label=
"1"
>
固定期限
</el-radio>
<el-date-picker
class=
"ml10"
v-if=
"form.expireType"
v-model=
"form.beginDate"
type=
"datetime"
placeholder=
"开始时间"
@
change=
"checkBeginEndTime"
>
</el-date-picker>
<el-date-picker
v-if=
"form.expireType"
v-model=
"form.endDate"
type=
"datetime"
:picker-options=
"endDatePickerOptions"
placeholder=
"结束时间"
@
change=
"checkBeginEndTime"
>
</el-date-picker>
<el-radio
:disabled=
"onlineStatus != 0 && form.expireType == 1"
v-model=
"form.expireType"
:label=
"0"
>
长期有效
</el-radio>
<el-radio
:disabled=
"onlineStatus != 0 && form.expireType == 0"
v-model=
"form.expireType"
:label=
"1"
>
固定期限
</el-radio>
<el-date-picker
class=
"ml10"
v-if=
"form.expireType"
v-model=
"form.beginDate"
:disabled=
"onlineStatus != 0"
type=
"datetime"
placeholder=
"开始时间"
@
change=
"checkBeginEndTime"
>
</el-date-picker>
<el-date-picker
v-if=
"form.expireType"
v-model=
"form.endDate"
:disabled=
"onlineStatus == 2"
type=
"datetime"
:picker-options=
"endDatePickerOptions"
placeholder=
"结束时间"
@
change=
"checkBeginEndTime"
>
</el-date-picker>
</el-form-item>
</section>
<!-- 人群筛选器 -->
...
...
@@ -301,7 +301,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 && ['consume', 'stored'].includes(form.effectAction) && form.effectType == 0"
></marketing-event>
<marketing-event
:readOnly=
"isInfo
|| onlineStatus == 2"
:show-delete-tooltip=
"isEdit && analyseConfig.open_flag == 1
"
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) && form.effectType == 0"
></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
/>
...
...
@@ -422,7 +422,7 @@
<el-input-number
:disabled=
"!isAdd"
controls-position=
"right"
class=
"w150"
:min=
"3"
:max=
"31"
v-model=
"analyseConfig.marke_days"
></el-input-number>
<span
class=
"ml10"
>
天之内
</span>
</div>
<div
style=
"margin-top:6px;color:#A5A7AD;font-size:12px;margin-left:164px"
>
最长 31 天,最短
3
天 (以自然日计算)
</div>
<div
style=
"margin-top:6px;color:#A5A7AD;font-size:12px;margin-left:164px"
>
最长 31 天,最短
1
天 (以自然日计算)
</div>
<div
class=
"mt20"
v-show=
"[1, 2].includes(form.effectType)"
>
<div
class=
"w150 text-right inline-block mr10"
>
<label
class=
"cursor"
>
...
...
src/views/ecm/marketing-event/components/lib-qfxx.vue
View file @
2e52acba
<
template
>
<div>
<el-dialog
:title=
"isEdit && !readOnly ? '编辑群发消息' : '群发信息'"
:visible
.
sync=
"show"
width=
"6
6
0px"
@
closed=
"close"
>
<el-form
ref=
"form"
:model=
"form"
:rules=
"rules"
label-width=
"1
1
0px"
>
<el-dialog
:title=
"isEdit && !readOnly ? '编辑群发消息' : '群发信息'"
:visible
.
sync=
"show"
width=
"6
8
0px"
@
closed=
"close"
>
<el-form
ref=
"form"
:model=
"form"
:rules=
"rules"
label-width=
"1
3
0px"
>
<el-form-item
label=
"选择企业"
prop=
"qfxxEnterpriseId"
>
<el-select
v-model=
"form.qfxxEnterpriseId"
@
change=
"onChangeEnterprise"
:disabled=
"isEdit || readOnly"
>
<el-option
v-for=
"el in entepriseList"
:key=
"el.wxEnterpriseId"
:value=
"el.wxEnterpriseId"
:label=
"el.corpName"
></el-option>
</el-select>
</el-form-item>
<el-form-item
label=
"任务标题"
prop=
"title"
>
<template
slot=
"label"
>
<span>
任务标题
</span>
<el-tooltip
open-delay=
"200"
placement=
"top"
>
<i
style=
"cursor:pointer;color:#909399;font-size:14px;"
class=
"iconfont icon-xinxixianshi"
></i>
<div
slot=
"content"
style=
"width:376px;line-height: 22px;"
>
计划创建后编辑任务标题,历史创建任务的标题不会更新,新下发任务按编辑后标题展示
</div>
</el-tooltip>
</
template
>
<el-input
show-word-limit
v-model=
"form.title"
:maxlength=
"20"
:disabled=
"readOnly"
></el-input>
</el-form-item>
<el-form-item
label=
"任务描述"
prop=
"remark"
>
<
template
slot=
"label"
>
<span>
任务描述
</span>
<el-tooltip
open-delay=
"200"
placement=
"top"
>
<i
style=
"cursor:pointer;color:#909399;font-size:14px;"
class=
"iconfont icon-xinxixianshi"
></i>
<div
slot=
"content"
style=
"width:376px;line-height: 22px;"
>
计划创建后编辑任务描述,历史创建任务的描述按编辑后内容展示,新下发任务按编辑后内容展示
</div>
</el-tooltip>
</
template
>
<el-input
class=
"task-desc"
type=
"textarea"
show-word-limit
v-model=
"form.remark"
:rows=
"4"
:maxlength=
"200"
resize=
"none"
:disabled=
"readOnly"
></el-input>
</el-form-item>
<el-form-item
label=
"任务逾期判定"
prop=
"expireDays"
>
...
...
@@ -18,6 +32,13 @@
<span>
天之后
</span>
</el-form-item>
<el-form-item
label=
"添加群发内容"
prop=
""
>
<
template
slot=
"label"
>
<span>
添加群发内容
</span>
<el-tooltip
open-delay=
"200"
placement=
"top"
>
<i
style=
"cursor:pointer;color:#909399;font-size:14px;"
class=
"iconfont icon-xinxixianshi"
></i>
<div
slot=
"content"
style=
"width:376px;line-height: 22px;"
>
计划创建后编辑添加群发内容,历史创建群发内容不会更新,新下发任务按编辑后内容展示
</div>
</el-tooltip>
</
template
>
<div
style=
"font-size:12px;color:#6B6D71;margin-bottom:10px"
>
建议以文本+其他类型组合创建群发内容;文本内容最多只能添加 1 个
</div>
<div
style=
"margin-bottom:16px;display:flex;flex-wrap:wrap;margin-top:12px"
>
<material-item
class=
"card-item"
v-for=
"item in materials"
:key=
"item.relation_id"
:item=
"item"
@
delete=
"onDeleteMaterial"
:read-only=
"readOnly"
></material-item>
...
...
@@ -33,7 +54,7 @@
<el-button
style=
"width:74px"
type=
"primary"
@
click=
"addItem"
>
确定
</el-button>
</
template
>
</el-dialog>
<dm-material
:visible
.
sync=
"materialVisible"
@
select=
"onSelectMaterial"
:wx-enterprise-id=
"this.form.qfxxEnterpriseId"
projectName=
"marketing"
:material-ids=
"materials.map(el => el.relation_id)"
></dm-material>
<dm-material
:visible
.
sync=
"materialVisible"
@
select=
"onSelectMaterial"
:wx-enterprise-id=
"this.form.qfxxEnterpriseId"
projectName=
"marketing"
:material-ids=
"materials.map(el => el.relation_id)"
:disableTypes=
"disableTypes"
></dm-material>
</div>
</template>
...
...
@@ -158,6 +179,15 @@ export default {
});
}
},
computed
:
{
disableTypes
()
{
if
(
this
.
materials
.
some
(
el
=>
el
.
type
==
1
))
{
return
[
1
];
}
else
{
return
[];
}
}
},
watch
:
{
show
:
{
handler
()
{
...
...
src/views/ecm/marketing-event/components/lib-teltask.vue
View file @
2e52acba
<
template
>
<el-dialog
title=
"编辑话务"
:visible
.
sync=
"show"
width=
"6
0
0px"
:before-close=
"close"
>
<el-form
ref=
"form"
:model=
"form"
label-width=
"1
1
0px"
:rules=
"rules"
v-loading=
"loading"
>
<el-dialog
title=
"编辑话务"
:visible
.
sync=
"show"
width=
"6
2
0px"
:before-close=
"close"
>
<el-form
ref=
"form"
:model=
"form"
label-width=
"1
3
0px"
:rules=
"rules"
v-loading=
"loading"
>
<el-form-item
label=
"话务任务标题"
class=
"pb10"
prop=
"title"
>
<template
slot=
"label"
>
<span>
话务任务标题
</span>
<el-tooltip
open-delay=
"200"
placement=
"top"
>
<i
style=
"cursor:pointer;color:#909399;font-size:14px;"
class=
"iconfont icon-xinxixianshi"
></i>
<div
slot=
"content"
style=
"width:376px;line-height: 22px;"
>
计划创建后编辑标题,历史创建任务的标题不会更新,新下发任务按编辑后标题展示
</div>
</el-tooltip>
</
template
>
<dm-input
class=
"w400"
v-model=
"form.title"
placeholder=
"限制20个字符"
:maxlength=
"20"
></dm-input>
</el-form-item>
<el-form-item
label=
"话务任务内容"
class=
"pb10"
prop=
"content"
>
<
template
slot=
"label"
>
<span>
话务任务内容
</span>
<el-tooltip
open-delay=
"200"
placement=
"top"
>
<i
style=
"cursor:pointer;color:#909399;font-size:14px;"
class=
"iconfont icon-xinxixianshi"
></i>
<div
slot=
"content"
style=
"width:376px;line-height: 22px;"
>
计划创建后编辑内容,历史创建任务的内容按编辑后内容展示,新下发任务按编辑后内容展示
</div>
</el-tooltip>
</
template
>
<dm-input
class=
"w400"
:rows=
"4"
type=
"textarea"
v-model=
"form.content"
placeholder=
"限制200个字符"
:maxlength=
"200"
></dm-input>
</el-form-item>
<el-form-item
label=
"任务逾期判定"
prop=
"lateDays"
>
<el-input-number
controls-position=
"right"
class=
"w400"
v-model=
"form.lateDays"
></el-input-number>
天之后
</el-form-item>
...
...
src/views/ecm/marketing-event/index.vue
View file @
2e52acba
...
...
@@ -18,7 +18,7 @@
<component
:is=
"v.comName"
:item=
"v.item"
:isSupportVar=
"isSupportVar"
></component>
<template
v-if=
"!readOnly"
>
<i
class=
"el-icon-edit dm-marketing__opt--icon"
v-if=
"showEdit(v) && (v.comName === 'item-teltask' || v.comName === 'item-text' || v.comName === 'item-wxa' || v.comName === 'item-integral' || v.comName === 'item-qywx' || v.comName === 'item-qfxx')"
@
click=
"editItem(v)"
></i>
<dm-delete
@
confirm=
"delItem(v)"
>
<dm-delete
:tips=
"showDeleteTooltip ? '是否确定删除该营销事件?删除后,该计划营销分析数据可能会不准确。' : '是否删除?'"
@
confirm=
"delItem(v)"
>
<i
class=
"el-icon-delete dm-marketing__opt--icon"
></i>
</dm-delete>
</
template
>
...
...
@@ -150,7 +150,8 @@ export default {
useQywx
:
{
type
:
Boolean
,
default
:
true
}
},
showDeleteTooltip
:
Boolean
},
data
()
{
return
{
...
...
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