Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
C
common-templete
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
汤强勇
common-templete
Commits
d2056904
Commit
d2056904
authored
Mar 28, 2019
by
张卿
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
修复了 marketing 和addmarketing的页面接口
parent
2f908dc2
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
282 additions
and
109 deletions
+282
-109
AddDesc.vue
src/pages/addmarketing/components/AddDesc.vue
+24
-5
StepInfo.vue
src/pages/addmarketing/components/StepInfo.vue
+0
-0
index.vue
src/pages/marketingCenter/components/MarketingPush/index.vue
+4
-4
ArticleDetails.vue
...arketingCenter/components/MarketingTab/ArticleDetails.vue
+13
-1
MessageList.vue
...s/marketingCenter/components/MarketingTab/MessageList.vue
+85
-43
TempList.vue
...ages/marketingCenter/components/MarketingTab/TempList.vue
+76
-43
index.vue
src/pages/marketingCenter/components/MarketingTab/index.vue
+71
-5
api.js
src/tool/api.js
+9
-8
No files found.
src/pages/addmarketing/components/AddDesc.vue
View file @
d2056904
...
@@ -5,7 +5,9 @@
...
@@ -5,7 +5,9 @@
<span
class=
"top-title title"
>
新建图文素材推送
</span>
<span
class=
"top-title title"
>
新建图文素材推送
</span>
<span
class=
"top-tips gray"
>
<span
class=
"top-tips gray"
>
<span
class=
"star-red"
>
*
</span>
<span
class=
"star-red"
>
*
</span>
将
<a
href=
"#"
>
微信公众平台
</a>
的图文素材,通过
<a
href=
"#"
>
会员标签
</a>
分类投放,实现精准投放
将
<a
href=
"#"
>
微信公众平台
</a>
的图文素材,通过
<a
href=
"#"
>
会员标签
</a>
分类投放,实现精准投放
</span>
</span>
</el-col>
</el-col>
</el-row>
</el-row>
...
@@ -15,10 +17,27 @@
...
@@ -15,10 +17,27 @@
<img
src=
"@/assets/images/picture.png"
class=
"iconimg"
>
<img
src=
"@/assets/images/picture.png"
class=
"iconimg"
>
</el-col>
</el-col>
<el-col
:span=
"18"
class=
"subtitle-tips"
>
<el-col
:span=
"18"
class=
"subtitle-tips"
>
<p>
在微信触达域中,公众号作为最通用的触达渠道,微信为品牌号提供了
<span
class=
"star-red"
>
适配大批量会员触达
</span>
的图文素材触达方式。
</p>
<p>
<p><span><i
class=
"el-icon-check"
></i></span>
通过会员标签画像分群的分批精准推送,建议编辑不同的图文素材面向不同的会员群体。前往
<a
href=
"#"
>
微信公众平台
</a>
-管理-素材管理
</p>
在微信触达域中,公众号作为最通用的触达渠道,微信为品牌号提供了
<p><span><i
class=
"el-icon-check"
></i></span>
最大化的利用微信“用户每月只能接受4条”的规则限制,通过舞象云实现多次投放,但每日上限为
<span
class=
"star-red"
>
100次
</span>
。
</p>
<span
class=
"star-red"
>
适配大批量会员触达
</span>
的图文素材触达方式。
<p><span><i
class=
"el-icon-check"
></i></span>
大批量的微信消息推送,微信端控制最大为80W/分钟,平台将进行资源的动态优化,请耐心等待,推送成功后将发送邮件通知。
</p>
</p>
<p>
<span>
<i
class=
"el-icon-check"
></i>
</span>
通过会员标签画像分群的分批精准推送,建议编辑不同的图文素材面向不同的会员群体。前往
<a
href=
"#"
>
微信公众平台
</a>
-管理-素材管理
</p>
<p>
<span>
<i
class=
"el-icon-check"
></i>
</span>
最大化的利用微信“用户每月只能接受4条”的规则限制,通过舞象云实现多次投放,但每日上限为
<span
class=
"star-red"
>
100次
</span>
。
</p>
<p>
<span>
<i
class=
"el-icon-check"
></i>
</span>
大批量的微信消息推送,微信端控制最大为80W/分钟,平台将进行资源的动态优化,请耐心等待,推送成功后将发送邮件通知。
</p>
</el-col>
</el-col>
</el-row>
</el-row>
</div>
</div>
...
...
src/pages/addmarketing/components/StepInfo.vue
View file @
d2056904
This diff is collapsed.
Click to expand it.
src/pages/marketingCenter/components/MarketingPush/index.vue
View file @
d2056904
...
@@ -80,10 +80,10 @@ export default {
...
@@ -80,10 +80,10 @@ export default {
msgUrl
:
""
msgUrl
:
""
};
};
},
},
created
()
{
//
created() {
this
.
authUrl
=
ctx
+
"/back/wechat/auth"
;
//
this.authUrl = ctx + "/back/wechat/auth";
this
.
msgUrl
=
platformCtx
+
"/message/marketingSms/list.do"
;
//
this.msgUrl = platformCtx + "/message/marketingSms/list.do";
}
//
}
};
};
</
script
>
</
script
>
...
...
src/pages/marketingCenter/components/MarketingTab/ArticleDetails.vue
View file @
d2056904
...
@@ -31,7 +31,14 @@
...
@@ -31,7 +31,14 @@
</div>
</div>
</el-col>
</el-col>
<el-col
:span=
"10"
class=
"articleChart"
>
<el-col
:span=
"10"
class=
"articleChart"
>
<ve-line
:data=
"item.chartData"
height=
"110px"
:grid=
"grid"
:extend=
"extend"
:tooltip-visible=
"false"
:legend-visible=
"false"
></ve-line>
<ve-line
:data=
"item.chartData"
height=
"110px"
:grid=
"grid"
:extend=
"extend"
:tooltip-visible=
"false"
:legend-visible=
"false"
></ve-line>
</el-col>
</el-col>
</el-row>
</el-row>
</div>
</div>
...
@@ -85,6 +92,7 @@ export default {
...
@@ -85,6 +92,7 @@ export default {
rows
:
item
.
tempList
,
rows
:
item
.
tempList
,
}
}
})
})
console
.
log
(
this
.
GetarticleList
)
return
this
.
GetarticleList
return
this
.
GetarticleList
},
},
},
},
...
@@ -111,6 +119,10 @@ export default {
...
@@ -111,6 +119,10 @@ export default {
font-size
16px
font-size
16px
height
30px
height
30px
line-height
30px
line-height
30px
white-space
:
nowrap
;
text-overflow
:
ellipsis
;
overflow
:
hidden
;
word-break
:
break-all
;
span
span
height
50px
height
50px
line-height
50px
line-height
50px
...
...
src/pages/marketingCenter/components/MarketingTab/MessageList.vue
View file @
d2056904
...
@@ -7,7 +7,12 @@
...
@@ -7,7 +7,12 @@
</div>
</div>
</el-row>
</el-row>
<el-form
:inline=
"true"
:model=
"form"
class=
"demo-form-inline"
style=
"min-width:980px;padding:0 25px;"
>
<el-form
:inline=
"true"
:model=
"form"
class=
"demo-form-inline"
style=
"min-width:980px;padding:0 25px;"
>
<el-row
class=
"temp-input"
>
<el-row
class=
"temp-input"
>
<el-col
:span=
"10"
>
<el-col
:span=
"10"
>
<el-form-item
label=
"推送名称:"
>
<el-form-item
label=
"推送名称:"
>
...
@@ -16,9 +21,21 @@
...
@@ -16,9 +21,21 @@
</el-col>
</el-col>
<el-col
:span=
"14"
>
<el-col
:span=
"14"
>
<el-form-item
label=
"活动时间:"
>
<el-form-item
label=
"活动时间:"
>
<el-date-picker
type=
"date"
placeholder=
"推送时间"
v-model=
"queryDateStart"
format=
"yyyy-MM-dd"
value-format=
"yyyy-MM-dd"
></el-date-picker>
<el-date-picker
type=
"date"
placeholder=
"推送时间"
v-model=
"queryDateStart"
format=
"yyyy-MM-dd"
value-format=
"yyyy-MM-dd"
></el-date-picker>
<span
class=
"line time-line"
:span=
"2"
>
-
</span>
<span
class=
"line time-line"
:span=
"2"
>
-
</span>
<el-date-picker
type=
"date"
placeholder=
"推送时间"
v-model=
"queryDateEnd"
format=
"yyyy-MM-dd"
value-format=
"yyyy-MM-dd"
></el-date-picker>
<el-date-picker
type=
"date"
placeholder=
"推送时间"
v-model=
"queryDateEnd"
format=
"yyyy-MM-dd"
value-format=
"yyyy-MM-dd"
></el-date-picker>
</el-form-item>
</el-form-item>
</el-col>
</el-col>
</el-row>
</el-row>
...
@@ -34,17 +51,24 @@
...
@@ -34,17 +51,24 @@
<el-col
:span=
"10"
>
<el-col
:span=
"10"
>
<el-form-item
label=
"创建推送节点:"
>
<el-form-item
label=
"创建推送节点:"
>
<el-select
v-model=
"clerkId"
placeholder=
"--全部--"
>
<el-select
v-model=
"clerkId"
placeholder=
"--全部--"
>
<el-option
v-for=
"(item,index) in dataList"
:key=
"index"
:label=
"item.clerkName"
:value=
"item.clerkId"
>
<el-option
</el-option>
v-for=
"(item,index) in dataList"
:key=
"index"
:label=
"item.clerkName"
:value=
"item.clerkId"
></el-option>
</el-select>
</el-select>
</el-form-item>
</el-form-item>
</el-col>
</el-col>
</el-row>
</el-row>
</el-form>
</el-form>
<el-table
:data=
"dataList"
style=
"width: 100%"
:header-cell-style=
"
{background:'#374a5e', color:'#fff'}">
<el-table
<el-table-column
prop=
"title"
label=
"推送名称"
min-width=
"100"
align=
"center"
>
:data=
"dataList"
</el-table-column>
style=
"width: 100%"
:header-cell-style=
"
{background:'#374a5e', color:'#fff'}"
>
<el-table-column
prop=
"title"
label=
"推送名称"
min-width=
"100"
align=
"center"
></el-table-column>
<el-table-column
prop=
"type"
label=
"推送类型"
min-width=
"76"
align=
"center"
>
<el-table-column
prop=
"type"
label=
"推送类型"
min-width=
"76"
align=
"center"
>
<template
slot-scope=
"scope"
>
<template
slot-scope=
"scope"
>
<span
v-if=
"scope.row.type === 1"
>
微信素材
</span>
<span
v-if=
"scope.row.type === 1"
>
微信素材
</span>
...
@@ -53,23 +77,27 @@
...
@@ -53,23 +77,27 @@
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
label=
"推送时间"
min-width=
"150"
align=
"center"
>
<el-table-column
label=
"推送时间"
min-width=
"150"
align=
"center"
>
<
template
slot-scope=
"scope"
>
<
template
slot-scope=
"scope"
>
{{
scope
.
row
.
pushTime
|
formatedDate
}}
</
template
>
{{
scope
.
row
.
pushTime
|
formatedDate
}}
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
prop=
"scope"
label=
"推送范围"
min-width=
"260"
align=
"center"
>
<el-table-column
prop=
"scope"
label=
"推送范围"
min-width=
"260"
align=
"center"
>
<
template
slot-scope=
"scope"
>
<
template
slot-scope=
"scope"
>
<span
v-if=
"scope.row.scope === 0"
>
全体推送
</span>
<span
v-if=
"scope.row.scope === 0"
>
全体推送
</span>
<template
v-if=
"scope.row.scope === 1 && scope.row.tagList "
>
<template
v-if=
"scope.row.scope === 1 && scope.row.tagList "
>
<span
class=
"temp-tablespan"
>
<span
class=
"temp-tablespan"
>
{{
scope
.
row
.
tagList
&&
scope
.
row
.
tagList
[
0
]
}}
</span>
{{
scope
.
row
.
tagList
&&
scope
.
row
.
tagList
[
0
]
}}
<span
class=
"temp-tablespan"
>
{{
scope
.
row
.
tagList
&&
scope
.
row
.
tagList
[
1
]
}}
</span>
</span>
<el-popover
<span
class=
"temp-tablespan"
>
v-if=
"scope.row.tagList"
{{
scope
.
row
.
tagList
&&
scope
.
row
.
tagList
[
1
]
}}
placement=
"bottom"
</span>
title=
"标签"
<el-popover
v-if=
"scope.row.tagList"
placement=
"bottom"
title=
"标签"
width=
"200"
trigger=
"click"
>
width=
"200"
trigger=
"click"
>
<div>
<div>
<span
v-for=
"(item,index) in scope.row.tagList"
:key=
"index"
class=
"table-tag"
style=
"
<span
v-for=
"(item,index) in scope.row.tagList"
:key=
"index"
class=
"table-tag"
style=
"
display: inline-block;
display: inline-block;
width: 90px;
width: 90px;
border: 1px solid transparent;
border: 1px solid transparent;
...
@@ -83,21 +111,17 @@
...
@@ -83,21 +111,17 @@
vertical-align: top;
vertical-align: top;
margin: 0 5px 5px 0;
margin: 0 5px 5px 0;
font-size: 13px;
font-size: 13px;
line-height: 28px;"
>
line-height: 28px;"
{{
item
}}
>
{{
item
}}
</span>
</span>
</div>
</div>
<el-button
class=
"fr temp-tablesmore"
slot=
"reference"
>
更多
</el-button>
<el-button
class=
"fr temp-tablesmore"
slot=
"reference"
>
更多
</el-button>
</el-popover>
</el-popover>
</
template
>
</
template
>
</template>
</template>
</el-table-column>
</el-table-column>
<el-table-column
prop=
"pushCount"
label=
"推送人数"
align=
"center"
>
<el-table-column
prop=
"pushCount"
label=
"推送人数"
align=
"center"
></el-table-column>
</el-table-column>
<el-table-column
prop=
"sentCount"
label=
"推送成功人数"
align=
"center"
></el-table-column>
<el-table-column
prop=
"sentCount"
label=
"推送成功人数"
align=
"center"
>
<el-table-column
prop=
"clerkName"
label=
"创建消息节点"
align=
"center"
></el-table-column>
</el-table-column>
<el-table-column
prop=
"clerkName"
label=
"创建消息节点"
align=
"center"
>
</el-table-column>
<el-table-column
prop=
"statusMsg"
label=
"推送进度"
align=
"center"
>
<el-table-column
prop=
"statusMsg"
label=
"推送进度"
align=
"center"
>
<
template
slot-scope=
"scope"
>
<
template
slot-scope=
"scope"
>
<span
v-if=
"scope.row.statusMsg === '推送失败'"
style=
"color:red"
>
推送失败
</span>
<span
v-if=
"scope.row.statusMsg === '推送失败'"
style=
"color:red"
>
推送失败
</span>
...
@@ -106,10 +130,14 @@
...
@@ -106,10 +130,14 @@
</
template
>
</
template
>
</el-table-column>
</el-table-column>
</el-table>
</el-table>
<el-pagination
@
current-change=
"handleCurrentChange"
:current-page=
"pageNo"
:page-size=
"10"
:total=
"total"
layout=
"total, prev, pager, next, jumper"
>
<el-pagination
</el-pagination>
@
current-change=
"handleCurrentChange"
:current-page=
"pageNo"
:page-size=
"10"
:total=
"total"
layout=
"total, prev, pager, next, jumper"
></el-pagination>
</div>
</div>
</template>
</template>
<
script
>
<
script
>
export
default
{
export
default
{
...
@@ -150,12 +178,13 @@ export default {
...
@@ -150,12 +178,13 @@ export default {
const
paramsSearch
=
{
const
paramsSearch
=
{
pageNo
:
1
,
pageNo
:
1
,
pageSize
:
10
,
pageSize
:
10
,
title
:
''
,
type
:
2
queryDateStart
:
''
,
// title: '',
queryDateEnd
:
''
,
// queryDateStart: '',
pushCountStart
:
''
,
// queryDateEnd: '',
pushCountEnd
:
''
,
// pushCountStart: '',
clerkId
:
''
,
// pushCountEnd: '',
// clerkId: '',
}
}
this
.
$emit
(
'reset'
,
paramsSearch
)
this
.
$emit
(
'reset'
,
paramsSearch
)
this
.
title
=
''
this
.
title
=
''
...
@@ -169,13 +198,26 @@ export default {
...
@@ -169,13 +198,26 @@ export default {
const
paramsSearch
=
{
const
paramsSearch
=
{
pageNo
:
this
.
pageNo
,
pageNo
:
this
.
pageNo
,
pageSize
:
this
.
pageSize
,
pageSize
:
this
.
pageSize
,
title
:
this
.
title
,
type
:
2
queryDateStart
:
this
.
queryDateStart
,
// title: this.title,
queryDateEnd
:
this
.
queryDateEnd
,
// queryDateStart: this.queryDateStart,
pushCountStart
:
this
.
pushCountStart
,
// queryDateEnd: this.queryDateEnd,
pushCountEnd
:
this
.
pushCountEnd
,
// pushCountStart: this.pushCountStart,
clerkId
:
this
.
clerkId
,
// pushCountEnd: this.pushCountEnd,
// clerkId: this.clerkId,
}
}
if
(
this
.
title
)
paramsSearch
.
title
=
this
.
title
;
if
(
this
.
queryDateStart
)
paramsSearch
.
queryDateStart
=
this
.
queryDateStart
;
if
(
this
.
queryDateEnd
)
paramsSearch
.
queryDateEnd
=
this
.
queryDateEnd
;
if
(
this
.
pushCountStart
)
paramsSearch
.
pushCountStart
=
this
.
pushCountStart
;
if
(
this
.
pushCountEnd
)
paramsSearch
.
pushCountEnd
=
this
.
pushCountEnd
;
this
.
$emit
(
'search'
,
paramsSearch
)
this
.
$emit
(
'search'
,
paramsSearch
)
},
},
},
},
...
...
src/pages/marketingCenter/components/MarketingTab/TempList.vue
View file @
d2056904
...
@@ -7,7 +7,12 @@
...
@@ -7,7 +7,12 @@
</div>
</div>
</el-row>
</el-row>
<el-form
:inline=
"true"
:model=
"form"
class=
"demo-form-inline"
style=
"min-width:980px;padding:0 25px;"
>
<el-form
:inline=
"true"
:model=
"form"
class=
"demo-form-inline"
style=
"min-width:980px;padding:0 25px;"
>
<el-row
class=
"temp-input"
>
<el-row
class=
"temp-input"
>
<el-col
:span=
"10"
>
<el-col
:span=
"10"
>
<el-form-item
label=
"推送名称:"
>
<el-form-item
label=
"推送名称:"
>
...
@@ -16,9 +21,21 @@
...
@@ -16,9 +21,21 @@
</el-col>
</el-col>
<el-col
:span=
"14"
>
<el-col
:span=
"14"
>
<el-form-item
label=
"活动时间:"
>
<el-form-item
label=
"活动时间:"
>
<el-date-picker
type=
"date"
placeholder=
"推送时间"
v-model=
"queryDateStart"
format=
"yyyy-MM-dd"
value-format=
"yyyy-MM-dd"
></el-date-picker>
<el-date-picker
type=
"date"
placeholder=
"推送时间"
v-model=
"queryDateStart"
format=
"yyyy-MM-dd"
value-format=
"yyyy-MM-dd"
></el-date-picker>
<span
class=
"line time-line"
:span=
"2"
>
-
</span>
<span
class=
"line time-line"
:span=
"2"
>
-
</span>
<el-date-picker
type=
"date"
placeholder=
"推送时间"
v-model=
"queryDateEnd"
format=
"yyyy-MM-dd"
value-format=
"yyyy-MM-dd"
></el-date-picker>
<el-date-picker
type=
"date"
placeholder=
"推送时间"
v-model=
"queryDateEnd"
format=
"yyyy-MM-dd"
value-format=
"yyyy-MM-dd"
></el-date-picker>
</el-form-item>
</el-form-item>
</el-col>
</el-col>
</el-row>
</el-row>
...
@@ -34,17 +51,24 @@
...
@@ -34,17 +51,24 @@
<el-col
:span=
"10"
>
<el-col
:span=
"10"
>
<el-form-item
label=
"创建推送节点:"
>
<el-form-item
label=
"创建推送节点:"
>
<el-select
v-model=
"clerkId"
placeholder=
"--全部--"
>
<el-select
v-model=
"clerkId"
placeholder=
"--全部--"
>
<el-option
v-for=
"(item,index) in dataList"
:key=
"index"
:label=
"item.clerkName"
:value=
"item.clerkId"
>
<el-option
</el-option>
v-for=
"(item,index) in dataList"
:key=
"index"
:label=
"item.clerkName"
:value=
"item.clerkId"
></el-option>
</el-select>
</el-select>
</el-form-item>
</el-form-item>
</el-col>
</el-col>
</el-row>
</el-row>
</el-form>
</el-form>
<el-table
:data=
"dataList"
style=
"width: 100%"
:header-cell-style=
"
{background:'#374a5e', color:'#fff'}">
<el-table
<el-table-column
prop=
"title"
label=
"推送名称"
min-width=
"100"
align=
"center"
>
:data=
"dataList"
</el-table-column>
style=
"width: 100%"
:header-cell-style=
"
{background:'#374a5e', color:'#fff'}"
>
<el-table-column
prop=
"title"
label=
"推送名称"
min-width=
"100"
align=
"center"
></el-table-column>
<el-table-column
prop=
"type"
label=
"推送类型"
min-width=
"76"
align=
"center"
>
<el-table-column
prop=
"type"
label=
"推送类型"
min-width=
"76"
align=
"center"
>
<template
slot-scope=
"scope"
>
<template
slot-scope=
"scope"
>
<span
v-if=
"scope.row.type === 1"
>
微信素材
</span>
<span
v-if=
"scope.row.type === 1"
>
微信素材
</span>
...
@@ -53,23 +77,26 @@
...
@@ -53,23 +77,26 @@
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
label=
"推送时间"
min-width=
"150"
align=
"center"
>
<el-table-column
label=
"推送时间"
min-width=
"150"
align=
"center"
>
<
template
slot-scope=
"scope"
>
<
template
slot-scope=
"scope"
>
{{
scope
.
row
.
pushTime
|
formatedDate
}}
</
template
>
{{
scope
.
row
.
pushTime
|
formatedDate
}}
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
prop=
"scope"
label=
"推送范围"
min-width=
"260"
align=
"center"
>
<el-table-column
prop=
"scope"
label=
"推送范围"
min-width=
"260"
align=
"center"
>
<
template
slot-scope=
"scope"
>
<
template
slot-scope=
"scope"
>
<span
v-if=
"scope.row.scope === 0"
>
全体推送
</span>
<span
v-if=
"scope.row.scope === 0"
>
全体推送
</span>
<template
v-if=
"scope.row.scope === 1 && scope.row.tagList "
>
<template
v-if=
"scope.row.scope === 1 && scope.row.tagList "
>
<span
class=
"temp-tablespan"
>
<span
class=
"temp-tablespan"
>
{{
scope
.
row
.
tagList
&&
scope
.
row
.
tagList
[
0
]
}}
</span>
{{
scope
.
row
.
tagList
&&
scope
.
row
.
tagList
[
0
]
}}
<span
class=
"temp-tablespan"
>
{{
scope
.
row
.
tagList
&&
scope
.
row
.
tagList
[
1
]
}}
</span>
</span>
<el-popover
<span
class=
"temp-tablespan"
>
v-if=
"scope.row.tagList"
{{
scope
.
row
.
tagList
&&
scope
.
row
.
tagList
[
1
]
}}
placement=
"bottom"
</span>
title=
"标签"
<el-popover
v-if=
"scope.row.tagList"
placement=
"bottom"
title=
"标签"
width=
"200"
trigger=
"click"
>
width=
"200"
trigger=
"click"
>
<div>
<div>
<span
v-for=
"(item,index) in scope.row.tagList"
:key=
"index"
style=
"
<span
v-for=
"(item,index) in scope.row.tagList"
:key=
"index"
style=
"
display: inline-block;
display: inline-block;
width: 90px;
width: 90px;
border: 1px solid transparent;
border: 1px solid transparent;
...
@@ -83,21 +110,17 @@
...
@@ -83,21 +110,17 @@
vertical-align: top;
vertical-align: top;
margin: 0 5px 5px 0;
margin: 0 5px 5px 0;
font-size: 13px;
font-size: 13px;
line-height: 28px;"
>
line-height: 28px;"
{{
item
}}
>
{{
item
}}
</span>
</span>
</div>
</div>
<el-button
class=
"fr temp-tablesmore"
slot=
"reference"
>
更多
</el-button>
<el-button
class=
"fr temp-tablesmore"
slot=
"reference"
>
更多
</el-button>
</el-popover>
</el-popover>
</
template
>
</
template
>
</template>
</template>
</el-table-column>
</el-table-column>
<el-table-column
prop=
"pushCount"
label=
"推送人数"
align=
"center"
>
<el-table-column
prop=
"pushCount"
label=
"推送人数"
align=
"center"
></el-table-column>
</el-table-column>
<el-table-column
prop=
"sentCount"
label=
"推送成功人数"
align=
"center"
></el-table-column>
<el-table-column
prop=
"sentCount"
label=
"推送成功人数"
align=
"center"
>
<el-table-column
prop=
"clerkName"
label=
"创建消息节点"
align=
"center"
></el-table-column>
</el-table-column>
<el-table-column
prop=
"clerkName"
label=
"创建消息节点"
align=
"center"
>
</el-table-column>
<el-table-column
prop=
"statusMsg"
label=
"推送进度"
align=
"center"
>
<el-table-column
prop=
"statusMsg"
label=
"推送进度"
align=
"center"
>
<
template
slot-scope=
"scope"
>
<
template
slot-scope=
"scope"
>
<span
v-if=
"scope.row.statusMsg === '推送失败'"
style=
"color:red"
>
推送失败
</span>
<span
v-if=
"scope.row.statusMsg === '推送失败'"
style=
"color:red"
>
推送失败
</span>
...
@@ -106,10 +129,14 @@
...
@@ -106,10 +129,14 @@
</
template
>
</
template
>
</el-table-column>
</el-table-column>
</el-table>
</el-table>
<el-pagination
@
current-change=
"handleCurrentChange"
:current-page=
"pageNo"
:page-size=
"10"
:total=
"total"
layout=
"total, prev, pager, next, jumper"
>
<el-pagination
</el-pagination>
@
current-change=
"handleCurrentChange"
:current-page=
"pageNo"
:page-size=
"10"
:total=
"total"
layout=
"total, prev, pager, next, jumper"
></el-pagination>
</div>
</div>
</template>
</template>
<
script
>
<
script
>
export
default
{
export
default
{
...
@@ -150,12 +177,7 @@ export default {
...
@@ -150,12 +177,7 @@ export default {
const
paramsSearch
=
{
const
paramsSearch
=
{
pageNo
:
1
,
pageNo
:
1
,
pageSize
:
10
,
pageSize
:
10
,
title
:
''
,
type
:
1
queryDateStart
:
''
,
queryDateEnd
:
''
,
pushCountStart
:
''
,
pushCountEnd
:
''
,
clerkId
:
''
,
}
}
this
.
$emit
(
'reset'
,
paramsSearch
)
this
.
$emit
(
'reset'
,
paramsSearch
)
this
.
title
=
''
this
.
title
=
''
...
@@ -168,14 +190,25 @@ export default {
...
@@ -168,14 +190,25 @@ export default {
search
()
{
search
()
{
const
paramsSearch
=
{
const
paramsSearch
=
{
pageNo
:
this
.
pageNo
,
pageNo
:
this
.
pageNo
,
type
:
1
,
pageSize
:
this
.
pageSize
,
pageSize
:
this
.
pageSize
,
title
:
this
.
title
,
//
title: this.title,
queryDateStart
:
this
.
queryDateStart
,
//
queryDateStart: this.queryDateStart,
queryDateEnd
:
this
.
queryDateEnd
,
//
queryDateEnd: this.queryDateEnd,
pushCountStart
:
this
.
pushCountStart
,
//
pushCountStart: this.pushCountStart,
pushCountEnd
:
this
.
pushCountEnd
,
//
pushCountEnd: this.pushCountEnd,
clerkId
:
this
.
clerkId
,
//
clerkId: this.clerkId,
}
}
if
(
this
.
title
)
paramsSearch
.
title
=
this
.
title
;
if
(
this
.
queryDateStart
)
paramsSearch
.
queryDateStart
=
this
.
queryDateStart
;
if
(
this
.
queryDateEnd
)
paramsSearch
.
queryDateEnd
=
this
.
queryDateEnd
;
if
(
this
.
pushCountStart
)
paramsSearch
.
pushCountStart
=
this
.
pushCountStart
;
if
(
this
.
pushCountEnd
)
paramsSearch
.
pushCountEnd
=
this
.
pushCountEnd
;
this
.
$emit
(
'search'
,
paramsSearch
)
this
.
$emit
(
'search'
,
paramsSearch
)
},
},
},
},
...
...
src/pages/marketingCenter/components/MarketingTab/index.vue
View file @
d2056904
...
@@ -3,14 +3,31 @@
...
@@ -3,14 +3,31 @@
<el-tab-pane
label=
"图文素材消息"
name=
"first"
>
<el-tab-pane
label=
"图文素材消息"
name=
"first"
>
<materia-list
:imgList=
"imgList"
@
sendid=
"handleId"
></materia-list>
<materia-list
:imgList=
"imgList"
@
sendid=
"handleId"
></materia-list>
<push-detail
v-loading=
"loading"
v-if=
"pushlist"
:mediaId=
"mediaId"
:pushlist=
"pushlist"
></push-detail>
<push-detail
v-loading=
"loading"
v-if=
"pushlist"
:mediaId=
"mediaId"
:pushlist=
"pushlist"
></push-detail>
<material-details
v-if=
"materialChartList&&materialChartList.length"
:MediaList=
"MediaList"
:materialChartList=
"materialChartList"
></material-details>
<material-details
<article-details
v-if=
"GetarticleList&&GetarticleList.length"
:GetarticleList=
"GetarticleList"
></article-details>
v-if=
"materialChartList&&materialChartList.length"
:MediaList=
"MediaList"
:materialChartList=
"materialChartList"
></material-details>
<article-details
v-if=
"GetarticleList&&GetarticleList.length"
:GetarticleList=
"GetarticleList"
></article-details>
</el-tab-pane>
</el-tab-pane>
<el-tab-pane
label=
"营销模版消息"
name=
"second"
>
<el-tab-pane
label=
"营销模版消息"
name=
"second"
>
<temp-list
:templist=
"templist"
@
search=
"handleSearch"
@
reset=
"handleReset"
@
pageChange=
"pageChange"
></temp-list>
<temp-list
:templist=
"templist"
@
search=
"handleSearch"
@
reset=
"handleReset"
@
pageChange=
"pageChange"
></temp-list>
</el-tab-pane>
</el-tab-pane>
<el-tab-pane
label=
"短信营销消息"
name=
"third"
>
<el-tab-pane
label=
"短信营销消息"
name=
"third"
>
<message-list
:msgList=
"msgList"
@
search=
"handleMsgSearch"
@
reset=
"handleMsgReset"
@
pageChange=
"msgPageChange"
></message-list>
<message-list
:msgList=
"msgList"
@
search=
"handleMsgSearch"
@
reset=
"handleMsgReset"
@
pageChange=
"msgPageChange"
></message-list>
</el-tab-pane>
</el-tab-pane>
</el-tabs>
</el-tabs>
</
template
>
</
template
>
...
@@ -77,6 +94,7 @@ export default {
...
@@ -77,6 +94,7 @@ export default {
},
},
async
handleGetSearchData
(
params
)
{
async
handleGetSearchData
(
params
)
{
await
this
.
axios
.
post
(
api
.
getTempList
,
params
).
then
(
res
=>
{
await
this
.
axios
.
post
(
api
.
getTempList
,
params
).
then
(
res
=>
{
console
.
log
(
res
);
this
.
templist
=
res
.
data
.
result
this
.
templist
=
res
.
data
.
result
this
.
msgList
=
res
.
data
.
result
this
.
msgList
=
res
.
data
.
result
})
})
...
@@ -109,6 +127,7 @@ export default {
...
@@ -109,6 +127,7 @@ export default {
let
getPushRes
=
await
this
.
axios
.
post
(
api
.
getPushList
,
params
)
let
getPushRes
=
await
this
.
axios
.
post
(
api
.
getPushList
,
params
)
if
(
getPushRes
.
data
.
code
===
0
)
{
if
(
getPushRes
.
data
.
code
===
0
)
{
console
.
log
(
getPushRes
.
data
.
result
)
this
.
loading
=
false
this
.
loading
=
false
this
.
pushlist
=
getPushRes
.
data
.
result
this
.
pushlist
=
getPushRes
.
data
.
result
...
@@ -116,12 +135,58 @@ export default {
...
@@ -116,12 +135,58 @@ export default {
mediaId
:
imgId
,
mediaId
:
imgId
,
}
}
let
getArticleRes
=
await
this
.
axios
.
post
(
api
.
getarticlesummary
,
params
)
let
getArticleRes
=
await
this
.
axios
.
post
(
api
.
getarticlesummary
,
params
)
console
.
log
(
getArticleRes
)
if
(
getArticleRes
.
data
.
code
===
0
)
{
if
(
getArticleRes
.
data
.
code
===
0
)
{
// 素材总流量分析
// 素材总流量分析
this
.
MediaList
=
getArticleRes
.
data
.
result
.
wechatMediaSummary
this
.
MediaList
=
getArticleRes
.
data
.
result
.
wechatMediaSummary
// 素材单日流量分析
// 素材单日流量分析
this
.
materialChartList
=
getArticleRes
.
data
.
result
.
wechatMediaSummary
.
mediaGetarticles
.
reverse
()
this
.
materialChartList
=
getArticleRes
.
data
.
result
.
wechatMediaSummary
.
mediaGetarticles
.
reverse
()
// this.materialChartList = [
// {
// "refDate": "2018-11-01",
// "intPageReadUser": 10,
// "intPageReadCount": 0,
// "oriPageReadUser": 0,
// "oriPageReadCount": 0,
// "shareUser": 0,
// "shareCount": 0,
// "addToFavUser": 0,
// "addToFavCount": 0
// },
// {
// "refDate": "2018-11-01",
// "intPageReadUser": 100,
// "intPageReadCount": 0,
// "oriPageReadUser": 0,
// "oriPageReadCount": 0,
// "shareUser": 0,
// "shareCount": 0,
// "addToFavUser": 0,
// "addToFavCount": 0
// },
// {
// "refDate": "2018-11-01",
// "intPageReadUser":300,
// "intPageReadCount": 0,
// "oriPageReadUser": 0,
// "oriPageReadCount": 0,
// "shareUser": 0,
// "shareCount": 0,
// "addToFavUser": 0,
// "addToFavCount": 0
// },
// {
// "refDate": "2018-11-01",
// "intPageReadUser": 400,
// "intPageReadCount": 0,
// "oriPageReadUser": 0,
// "oriPageReadCount": 0,
// "shareUser": 0,
// "shareCount": 0,
// "addToFavUser": 0,
// "addToFavCount": 0
// }
// ]
// 文章流量分析
// 文章流量分析
this
.
GetarticleList
=
getArticleRes
.
data
.
result
.
mediaGetarticle
this
.
GetarticleList
=
getArticleRes
.
data
.
result
.
mediaGetarticle
}
}
...
@@ -207,6 +272,7 @@ export default {
...
@@ -207,6 +272,7 @@ export default {
mediaId
:
imgId
,
mediaId
:
imgId
,
})
})
.
then
(
res
=>
{
.
then
(
res
=>
{
console
.
log
(
res
);
if
(
res
&&
res
.
data
&&
res
.
data
.
code
===
0
)
{
if
(
res
&&
res
.
data
&&
res
.
data
.
code
===
0
)
{
this
.
msgList
=
res
.
data
.
result
this
.
msgList
=
res
.
data
.
result
}
}
...
...
src/tool/api.js
View file @
d2056904
import
config
from
'@/config'
import
config
from
"@/config"
;
export
default
{
export
default
{
getMenu
:
`
${
config
.
host
}
/crm/back/menu/getMenu`
,
getMenu
:
`
${
config
.
host
}
/crm/back/menu/getMenu`
,
...
@@ -10,11 +10,12 @@ export default {
...
@@ -10,11 +10,12 @@ export default {
getMaterialsList
:
`
${
config
.
host
}
/back/marketing/push/materials-list`
,
getMaterialsList
:
`
${
config
.
host
}
/back/marketing/push/materials-list`
,
getPushList
:
`
${
config
.
host
}
/back/wechat/msg-tmpl/list`
,
getPushList
:
`
${
config
.
host
}
/back/wechat/msg-tmpl/list`
,
getarticlesummary
:
`
${
config
.
host
}
/back/marketing/push/graphic-analysis`
,
getarticlesummary
:
`
${
config
.
host
}
/back/marketing/push/graphic-analysis`
,
getTempList
:
'http://testcenter.bigaka.net/crm/back/wechat/msg-mass/list-data'
,
// 营销模板列表
getTempList
:
`
${
config
.
host
}
/back/marketing/push/msg-list`
,
// 营销模板列表
add
:
{
add
:
{
save
:
'http://testcenter.bigaka.net/crm/back/wechat/msg-mass/save'
,
// 确认推送
save
:
`
${
config
.
host
}
/back/marketing/push/saveWechatMsgMass`
,
// 确认推送
tagCount
:
'http://testcenter.bigaka.net/crm/back/wechat/msg-mass/tag-count'
,
// 标签数量
tagCount
:
`
${
config
.
host
}
/back/wechat/msg-mass/tag-count`
,
// 标签数量
customerCacheList
:
'http://testcenter.bigaka.net/crm/back/tag/customer-cache-list'
,
// 标签列表
customerCacheList
:
`
${
config
.
host
}
/back/tag/customer-cache-list`
,
// 标签列表
getPreViewCount
:
'http://testcenter.bigaka.net/crm/back/wechat/msg-mass/pre_view_count'
,
// 图文推送预览人数
getPreViewCount
:
`
${
config
.
host
}
/back/marketing/push/preview-count`
,
// 图文推送预览人数
},
getMaterial
:
`
${
config
.
host
}
/back/marketing/push/materials-list`
}
}
};
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