Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Sign in
Toggle navigation
A
admin-base
Project
Project
Details
Activity
Releases
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
new-sing
admin-base
Commits
3f11e567
Commit
3f11e567
authored
Jul 15, 2019
by
chenyishuai@singsingenglish.com
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
715
parent
add37019
Changes
10
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
10 additions
and
4 deletions
+10
-4
index.html
dev/index.html
+1
-1
42.7ccc06ac6bc3544091fe.js
dev/static/js/42.7ccc06ac6bc3544091fe.js
+1
-0
43.1c1a8ba503ee78eb7070.js
dev/static/js/43.1c1a8ba503ee78eb7070.js
+1
-0
manifest.34d6fa07e2f4949669ca.js
dev/static/js/manifest.34d6fa07e2f4949669ca.js
+1
-0
index.html
dist/index.html
+1
-1
42.84e8adf1f8af495598c5.js
dist/static/js/42.84e8adf1f8af495598c5.js
+1
-0
43.c3c8d6440aa033674fa6.js
dist/static/js/43.c3c8d6440aa033674fa6.js
+1
-0
manifest.00676b92d72e97be718b.js
dist/static/js/manifest.00676b92d72e97be718b.js
+1
-0
channelGoodsConversionList.vue
src/components/conversionList/channelGoodsConversionList.vue
+1
-1
tipArr2.js
src/util/tipArr2.js
+1
-1
No files found.
dev/index.html
View file @
3f11e567
<!DOCTYPE html>
<html><head><meta
charset=
utf-8
><meta
name=
viewport
content=
"width=device-width,initial-scale=1"
><meta
name=
referrer
content=
never
><link
rel=
stylesheet
href=
https:////at.alicdn.com/t/font_746649_x1rivf5f5.css
><link
rel=
stylesheet
href=
https://lib.baomitu.com/element-ui/2.7.2/theme-chalk/index.css
><title>
唱唱启蒙-后台
</title></head><body><script
src=
https://cdn.bootcss.com/vue/2.5.17/vue.min.js
></script><script
src=
https://unpkg.com/vuex@3.0.1
></script><script
src=
https://cdn.bootcss.com/axios/0.18.0/axios.min.js
></script><script
src=
https://lib.baomitu.com/element-ui/2.7.2/index.js
></script><div
id=
app
></div><script
type=
text/javascript
src=
/static/js/manifest.
dcca4c23354c2dd35cd1
.js
></script><script
type=
text/javascript
src=
/static/js/vendor.a8f02460e99f2b68b806.js
></script><script
type=
text/javascript
src=
/static/js/app.34d8ca2dfad5ff779e72.js
></script></body><script>
let
el
=
document
.
getElementsByTagName
(
"script"
);
<!DOCTYPE html>
<html><head><meta
charset=
utf-8
><meta
name=
viewport
content=
"width=device-width,initial-scale=1"
><meta
name=
referrer
content=
never
><link
rel=
stylesheet
href=
https:////at.alicdn.com/t/font_746649_x1rivf5f5.css
><link
rel=
stylesheet
href=
https://lib.baomitu.com/element-ui/2.7.2/theme-chalk/index.css
><title>
唱唱启蒙-后台
</title></head><body><script
src=
https://cdn.bootcss.com/vue/2.5.17/vue.min.js
></script><script
src=
https://unpkg.com/vuex@3.0.1
></script><script
src=
https://cdn.bootcss.com/axios/0.18.0/axios.min.js
></script><script
src=
https://lib.baomitu.com/element-ui/2.7.2/index.js
></script><div
id=
app
></div><script
type=
text/javascript
src=
/static/js/manifest.
34d6fa07e2f4949669ca
.js
></script><script
type=
text/javascript
src=
/static/js/vendor.a8f02460e99f2b68b806.js
></script><script
type=
text/javascript
src=
/static/js/app.34d8ca2dfad5ff779e72.js
></script></body><script>
let
el
=
document
.
getElementsByTagName
(
"script"
);
el
.
onerror
=
function
(
a
,
b
,
c
){
console
.
log
(
'error:'
,
a
,
b
,
c
);
};
...
...
dev/static/js/42.7ccc06ac6bc3544091fe.js
0 → 100644
View file @
3f11e567
webpackJsonp
([
42
],{
"04By"
:
function
(
e
,
t
,
n
){
var
r
=
n
(
"PtE0"
);
"string"
==
typeof
r
&&
(
r
=
[[
e
.
i
,
r
,
""
]]),
r
.
locals
&&
(
e
.
exports
=
r
.
locals
);
n
(
"rjj0"
)(
"4ba4820a"
,
r
,
!
1
,{})},
"21mC"
:
function
(
e
,
t
,
n
){
"use strict"
;
var
r
;
function
a
(
e
,
t
,
n
){
return
t
in
e
?
Object
.
defineProperty
(
e
,
t
,{
value
:
n
,
enumerable
:
!
0
,
configurable
:
!
0
,
writable
:
!
0
}):
e
[
t
]
=
n
,
e
}
n
.
d
(
t
,
"a"
,
function
(){
return
o
});
var
o
=
(
a
(
r
=
{
"订单数"
:
"支付成功且未全额退款的订单数量(*月课、季课全勤返现完成的订单也会排除)"
,
"到班数"
:
"进入系统课程期数班级的学员数量"
,
"到班率"
:
"到班数/订单数"
,
"好友数"
:
"班主任在系统内标注用已成为微信好友的户数量,包含老师主动添加数和用户主动添加数"
,
"到课数"
:
"浏览过一次及以上课包的人数"
,
"好友率"
:
"好友数/订单数"
},
"到课数"
,
"浏览过一次及以上课包的人数"
),
a
(
r
,
"到课率"
,
"到课数/订单数"
),
a
(
r
,
"转化人数"
,
"购买一年课、两年课且未全额退款的人数(*个别退课但未全额退款的学员包含在内)"
),
a
(
r
,
"转化率"
,
"转化人数/订单数"
),
a
(
r
,
"一年课购买人数"
,
"购买一年课且未全额退款的人数"
),
a
(
r
,
"两年课购买人数"
,
"购买两年课且未全额退款的人数"
),
a
(
r
,
"转化总额"
,
"一年课和两年课的转化金额合计"
),
a
(
r
,
"一年课转化金额"
,
"购买一年课且未全额退款的订单实付金额(云集订单为商品金额,不扣除优惠券、抵现)"
),
a
(
r
,
"两年课转化金额"
,
"购买两年课且未全额退款的订单实付金额(云集订单为商品金额,不扣除优惠券、抵现)"
),
r
)},
PtE0
:
function
(
e
,
t
,
n
){(
e
.
exports
=
n
(
"FZ+f"
)(
!
0
)).
push
([
e
.
i
,
"
\n
.channel-trans-list {
\n
padding: 20px 0;
\n
}
\n
.el-table .cell {
\n
text-align: center !important;
\n
}
\n
"
,
""
,{
version
:
3
,
sources
:[
"C:/Users/Administrator/Desktop/后台/admin/src/components/conversionList/channelConversionList.vue"
],
names
:[],
mappings
:
";AACA;EACE,gBAAgB;CACjB;AACD;EACE,8BAA8B;CAC/B"
,
file
:
"channelConversionList.vue"
,
sourcesContent
:[
"
\n
.channel-trans-list {
\n
padding: 20px 0;
\n
}
\n
.el-table .cell {
\n
text-align: center !important;
\n
}
\n
"
],
sourceRoot
:
""
}])},
h0PA
:
function
(
e
,
t
,
n
){
"use strict"
;
Object
.
defineProperty
(
t
,
"__esModule"
,{
value
:
!
0
});
var
r
=
n
(
"CCn6"
),
a
=
n
(
"+TkF"
),
o
=
n
(
"21mC"
);
n
(
"sf/l"
);
function
i
(
e
,
t
,
n
){
return
t
in
e
?
Object
.
defineProperty
(
e
,
t
,{
value
:
n
,
enumerable
:
!
0
,
configurable
:
!
0
,
writable
:
!
0
}):
e
[
t
]
=
n
,
e
}
var
s
=
{
name
:
"channelConversionList"
,
data
:
function
(){
var
e
,
t
=
this
;
return
i
(
e
=
{
width
:
0
,
nowPage
:
1
,
total
:
0
,
limit
:
20
,
list
:[],
goods_id
:
null
,
teacherList
:[],
goodsList
:[],
periodList
:[]},
"total"
,
0
),
i
(
e
,
"today"
,{
text
:
"今天"
,
onClick
:
function
(){
t
.
searchFrom
.
payTime
=
[
t
.
formatTime
(
new
Date
)
+
" 00:00:00"
,
t
.
formatTime
(
new
Date
)
+
" 23:59:59"
]}}),
i
(
e
,
"yesterday"
,{
text
:
"昨天"
,
onClick
:
function
(){
var
e
=
t
.
formatTime
(
new
Date
((
new
Date
).
getTime
()
-
864
e5
));
t
.
searchFrom
.
payTime
=
[
e
+
" 00:00:00"
,
e
+
" 23:59:59"
]}}),
i
(
e
,
"last30Day"
,{
text
:
"过去30天"
,
onClick
:
function
(){
var
e
=
t
.
formatTime
(
new
Date
((
new
Date
).
getTime
()
-
2592
e6
));
t
.
searchFrom
.
payTime
=
[
e
+
" 00:00:00"
,
t
.
formatTime
(
new
Date
)
+
" 23:59:59"
]}}),
i
(
e
,
"last7Day"
,{
text
:
"过去7天"
,
onClick
:
function
(){
var
e
=
t
.
formatTime
(
new
Date
((
new
Date
).
getTime
()
-
6048
e5
));
t
.
searchFrom
.
payTime
=
[
e
+
" 00:00:00"
,
t
.
formatTime
(
new
Date
)
+
" 23:59:59"
]}}),
i
(
e
,
"propertyList"
,[]),
i
(
e
,
"spanArr"
,[]),
i
(
e
,
"contentSpanArr"
,[]),
i
(
e
,
"searchFrom"
,{
payTime
:[],
start_at
:
""
,
end_at
:
""
,
invite_type
:
""
,
invite_name
:
""
,
watch_num
:
""
,
periods_id
:
""
,
squad
:
""
,
teacher_id
:
""
,
periods_title
:
""
}),
i
(
e
,
"propertyList"
,[]),
i
(
e
,
"watchList"
,[{
id
:
0
,
title
:
5
},{
id
:
1
,
title
:
6
},{
id
:
2
,
title
:
10
},{
id
:
3
,
title
:
20
}]),
i
(
e
,
"goodList"
,[]),
e
},
filters
:{
filterGoods
:
function
(
e
){
return
"["
+
e
.
id
+
"]["
+
a
.
h
[
e
.
goods_type
]
+
"]【"
+
e
.
current_price
/
100
+
"元】"
+
e
.
name
}},
components
:{
page
:
n
(
"kmJW"
).
a
},
methods
:{
rendertip
:
function
(
e
,
t
){
var
n
=
t
.
column
;
return
e
(
"span"
,[
e
(
"span"
,
n
.
label
),
e
(
"el-tooltip"
,{
props
:{
effect
:
"dark"
,
content
:
o
.
a
[
n
.
label
],
placement
:
"top"
}},[
e
(
"i"
,{
class
:
"el-icon-question"
,
style
:
"color:#409eff;display:block;"
})])])},
sortMethod
:
function
(
e
){
this
.
searchFrom
.
sort_key
=
e
.
prop
,
"ascending"
==
e
.
order
?
this
.
searchFrom
.
sort_value
=
"asc"
:
this
.
searchFrom
.
sort_value
=
"dasc"
,
this
.
getChannelTransList
()},
getGoodsOption
:
function
(){
var
e
=
this
;
Object
(
r
.
_59
)({
page
:
1
,
limit
:
100
,
goods_type
:
"1,2"
}).
then
(
function
(
t
){
e
.
goodList
=
t
.
list
,
console
.
log
(
e
.
goodList
,
176
)})},
seachData
:
function
(){
this
.
total
=
0
,
this
.
nowPage
=
1
,
this
.
getChannelTransList
()},
onPeriodChange
:
function
(
e
){
var
t
=
""
;
t
=
e
.
length
>
1
?
e
.
join
(
","
):
e
[
0
],
this
.
periods_id
=
t
,
console
.
log
(
t
)},
objectSpanMethod
:
function
(
e
){},
handleItemChange
:
function
(
e
){
var
t
=
this
;
getPeriodsApi
({
goods_id
:
e
[
0
],
limit
:
100
}).
then
(
function
(
n
){
n
.
list
.
forEach
(
function
(
e
){
e
.
name
=
e
.
title
}),
t
.
goodsList
.
find
(
function
(
t
){
return
t
.
id
===
e
[
0
]}).
children
=
n
.
list
})},
changePeriods
:
function
(
e
){
if
(
e
.
length
>
1
){
this
.
goods_id
=
e
[
0
];
var
t
=
this
.
goodsList
.
find
(
function
(
t
){
return
t
.
id
===
e
[
0
]});
this
.
periods
=
t
.
children
.
find
(
function
(
t
){
return
t
.
id
===
e
[
1
]}),
this
.
searchFrom
.
periods_id
=
this
.
periods
.
id
,
this
.
getChannelTransList
()}},
changeTeacher
:
function
(
e
){
this
.
searchFrom
.
teacher_id
=
e
,
this
.
getChannelTransList
()},
selectChange
:
function
(
e
){
this
.
searchFrom
.
watch_num
=
this
.
watchList
[
e
].
title
,
this
.
getChannelTransList
()},
formatTime
:
function
(
e
){
var
t
=
e
.
getFullYear
(),
n
=
e
.
getMonth
()
+
1
;
n
<
10
&&
(
n
=
"0"
+
n
);
var
r
=
e
.
getDate
();
return
r
<
10
&&
(
r
=
"0"
+
r
),
t
+
"-"
+
n
+
"-"
+
r
},
onPageChange
:
function
(
e
){
this
.
nowPage
=
e
,
this
.
getChannelTransList
()},
onSizeChange
:
function
(
e
){
this
.
nowPage
=
1
,
this
.
limit
=
e
,
this
.
getChannelTransList
()},
getPeriodsOtherList
:
function
(){
var
e
=
this
;
getPeriodsOtherListApi
({
limit
:
1
e3
,
page
:
1
,
max_watch_num
:
20
}).
then
(
function
(
t
){
e
.
periodList
=
t
.
list
})},
getChannelTransList
:
function
(){
var
e
=
this
,
t
=
{
limit
:
this
.
limit
,
page
:
this
.
nowPage
};
this
.
searchFrom
.
invite_type
&&
(
t
.
invite_type
=
this
.
searchFrom
.
invite_type
),
this
.
searchFrom
.
goods_id
&&
(
t
.
goods_id
=
this
.
searchFrom
.
goods_id
),
this
.
searchFrom
.
sort_value
&&
(
t
.
sort_value
=
this
.
searchFrom
.
sort_value
,
t
.
sort_key
=
this
.
searchFrom
.
sort_key
),
this
.
searchFrom
.
payTime
&&
this
.
searchFrom
.
payTime
.
length
>
0
&&
(
this
.
searchFrom
.
payTime
[
0
]
&&
this
.
searchFrom
.
payTime
[
0
].
length
>
0
&&
(
this
.
searchFrom
.
start_at
=
this
.
searchFrom
.
payTime
[
0
],
t
.
start_at
=
this
.
searchFrom
.
start_at
),
this
.
searchFrom
.
payTime
[
1
]
&&
this
.
searchFrom
.
payTime
[
1
].
length
>
0
&&
(
this
.
searchFrom
.
end_at
=
this
.
searchFrom
.
payTime
[
1
],
t
.
end_at
=
this
.
searchFrom
.
end_at
)),
Object
(
r
.
_42
)(
t
).
then
(
function
(
t
){
if
(
t
){
if
(
t
.
list
&&
t
.
list
.
length
>
0
){
for
(
var
n
in
e
.
total
=
t
.
total
,
e
.
list
=
t
.
list
.
map
(
function
(
n
,
r
){
n
.
index
=
r
,
0
==
r
?(
e
.
spanArr
.
push
(
1
),
e
.
pos
=
0
):
n
.
cur_date
==
t
.
list
[
r
-
1
].
cur_date
?(
e
.
spanArr
[
e
.
pos
]
+=
1
,
e
.
spanArr
.
push
(
0
)):(
e
.
spanArr
.
push
(
1
),
e
.
pos
=
r
);
var
a
=
n
.
invite_name
&&
n
.
invite_name
.
length
>
0
?
"("
+
n
.
invite_name
+
")"
:
""
,
o
=
n
.
goods_id
&&
n
.
goods_id
>
0
?
"【"
+
n
.
goods_id
+
"】"
:
""
,
i
=
n
.
watch_num
&&
n
.
watch_num
>
0
?
"【"
+
n
.
watch_num
+
"个课时】"
:
""
;
return
n
.
invite_type
=
""
+
n
.
invite_type
+
a
,
n
.
goods_name
=
""
+
o
+
n
.
goods_name
+
i
,
n
}),
e
.
list
[
0
])
e
.
propertyList
.
push
(
n
);
e
.
width
=
document
.
documentElement
.
clientWidth
-
200
}
t
.
list
&&
0
===
t
.
list
.
length
&&
(
e
.
list
=
[])}
else
e
.
list
=
[]})}},
mounted
:
function
(){
this
.
getChannelTransList
(),
this
.
getGoodsOption
()}},
l
=
function
(){
var
e
=
this
,
t
=
e
.
$createElement
,
n
=
e
.
_self
.
_c
||
t
;
return
n
(
"div"
,{
staticClass
:
"channel-trans-list"
},[
n
(
"el-form"
,{
ref
:
"searchFrom"
,
attrs
:{
model
:
e
.
searchFrom
,
"label-width"
:
"100px"
,
inline
:
""
}},[
n
(
"el-form-item"
,{
attrs
:{
label
:
"进量日期"
}},[
n
(
"el-date-picker"
,{
attrs
:{
type
:
"datetimerange"
,
"range-separator"
:
"至"
,
"value-format"
:
"yyyy-MM-dd HH:mm:ss"
,
"start-placeholder"
:
"开始日期"
,
"end-placeholder"
:
"结束日期"
,
"picker-options"
:{
shortcuts
:[
e
.
today
,
e
.
yesterday
,
e
.
last7Day
,
e
.
last30Day
]},
"default-time"
:[
"00:00:00"
,
"23:59:59"
]},
on
:{
change
:
e
.
getChannelTransList
},
model
:{
value
:
e
.
searchFrom
.
payTime
,
callback
:
function
(
t
){
e
.
$set
(
e
.
searchFrom
,
"payTime"
,
t
)},
expression
:
"searchFrom.payTime"
}})],
1
),
e
.
_v
(
" "
),
n
(
"el-form-item"
,{
attrs
:{
label
:
"渠道code"
}},[
n
(
"el-input"
,{
staticStyle
:{
width
:
"110px"
},
model
:{
value
:
e
.
searchFrom
.
invite_type
,
callback
:
function
(
t
){
e
.
$set
(
e
.
searchFrom
,
"invite_type"
,
t
)},
expression
:
"searchFrom.invite_type"
}})],
1
),
e
.
_v
(
" "
),
n
(
"el-form-item"
,{
attrs
:{
label
:
"商品名称"
}},[
n
(
"el-select"
,{
staticStyle
:{
width
:
"150px"
},
attrs
:{
filterable
:
""
,
placeholder
:
"请选择"
,
clearable
:
""
},
on
:{
change
:
e
.
getChannelTransList
},
model
:{
value
:
e
.
searchFrom
.
goods_id
,
callback
:
function
(
t
){
e
.
$set
(
e
.
searchFrom
,
"goods_id"
,
t
)},
expression
:
"searchFrom.goods_id"
}},
e
.
_l
(
e
.
goodList
,
function
(
t
,
r
){
return
n
(
"el-option"
,{
key
:
r
,
attrs
:{
label
:
e
.
_f
(
"filterGoods"
)(
t
),
value
:
t
.
id
}})}))],
1
),
e
.
_v
(
" "
),
n
(
"el-form-item"
,[
n
(
"div"
,{
staticClass
:
"flexRow"
},[
n
(
"el-button"
,{
attrs
:{
type
:
"primary"
,
plain
:
""
},
on
:{
click
:
e
.
seachData
}},[
e
.
_v
(
"搜索"
)])],
1
)])],
1
),
e
.
_v
(
" "
),
n
(
"el-table"
,{
style
:{
width
:
e
.
width
+
"px"
},
attrs
:{
border
:
""
,
"span-method"
:
e
.
objectSpanMethod
,
data
:
e
.
list
,
fixed
:
""
},
on
:{
"sort-change"
:
e
.
sortMethod
}},[
n
(
"el-table-column"
,{
attrs
:{
prop
:
"is_other"
,
label
:
"渠道来源"
},
scopedSlots
:
e
.
_u
([{
key
:
"default"
,
fn
:
function
(
t
){
return
[
e
.
_v
(
e
.
_s
(
0
==
t
.
row
.
is_other
?
"内部"
:
"外部"
))]}}])}),
e
.
_v
(
" "
),
n
(
"el-table-column"
,{
attrs
:{
prop
:
"invite_type_name"
,
label
:
"渠道类别"
}}),
e
.
_v
(
" "
),
n
(
"el-table-column"
,{
attrs
:{
prop
:
"invite_type"
,
label
:
"渠道类型"
}}),
e
.
_v
(
" "
),
n
(
"el-table-column"
,{
attrs
:{
prop
:
"sum_total_num"
,
label
:
"订单数"
,
"render-header"
:
e
.
rendertip
,
sortable
:
"custom"
}}),
e
.
_v
(
" "
),
n
(
"el-table-column"
,{
attrs
:{
prop
:
"sum_class_num"
,
label
:
"到班数"
,
"render-header"
:
e
.
rendertip
,
sortable
:
"custom"
}}),
e
.
_v
(
" "
),
n
(
"el-table-column"
,{
attrs
:{
prop
:
"class_num_except_total_num"
,
label
:
"到班率"
,
"render-header"
:
e
.
rendertip
,
sortable
:
"custom"
},
scopedSlots
:
e
.
_u
([{
key
:
"default"
,
fn
:
function
(
t
){
return
[
e
.
_v
(
e
.
_s
(
t
.
row
.
class_num_except_total_num
)
+
"%"
)]}}])}),
e
.
_v
(
" "
),
n
(
"el-table-column"
,{
attrs
:{
prop
:
"sum_friend_num"
,
label
:
"好友数"
,
"render-header"
:
e
.
rendertip
,
sortable
:
"custom"
}}),
e
.
_v
(
" "
),
n
(
"el-table-column"
,{
attrs
:{
prop
:
"friend_num_except_total_num"
,
label
:
"好友率"
,
"render-header"
:
e
.
rendertip
,
sortable
:
"custom"
},
scopedSlots
:
e
.
_u
([{
key
:
"default"
,
fn
:
function
(
t
){
return
[
e
.
_v
(
e
.
_s
(
t
.
row
.
friend_num_except_total_num
)
+
"%"
)]}}])}),
e
.
_v
(
" "
),
n
(
"el-table-column"
,{
attrs
:{
prop
:
"sum_come_num"
,
label
:
"到课数"
,
"render-header"
:
e
.
rendertip
,
sortable
:
"custom"
}}),
e
.
_v
(
" "
),
n
(
"el-table-column"
,{
attrs
:{
prop
:
"come_num_except_total_num"
,
label
:
"到课率"
,
"render-header"
:
e
.
rendertip
,
sortable
:
"custom"
},
scopedSlots
:
e
.
_u
([{
key
:
"default"
,
fn
:
function
(
t
){
return
[
e
.
_v
(
e
.
_s
(
t
.
row
.
come_num_except_total_num
)
+
"%"
)]}}])}),
e
.
_v
(
" "
),
n
(
"el-table-column"
,{
attrs
:{
prop
:
"sum_buy_num"
,
label
:
"转化人数"
,
"render-header"
:
e
.
rendertip
,
sortable
:
"custom"
}}),
e
.
_v
(
" "
),
n
(
"el-table-column"
,{
attrs
:{
prop
:
"sum_buy_num_except_total_num"
,
label
:
"转化率"
,
"render-header"
:
e
.
rendertip
,
sortable
:
"custom"
},
scopedSlots
:
e
.
_u
([{
key
:
"default"
,
fn
:
function
(
t
){
return
[
e
.
_v
(
e
.
_s
(
t
.
row
.
sum_buy_num_except_total_num
)
+
"%"
)]}}])}),
e
.
_v
(
" "
),
n
(
"el-table-column"
,{
attrs
:{
prop
:
"sum_one_buy_num"
,
width
:
"120"
,
label
:
"一年课购买人数"
,
"render-header"
:
e
.
rendertip
,
sortable
:
"custom"
}}),
e
.
_v
(
" "
),
n
(
"el-table-column"
,{
attrs
:{
prop
:
"sum_two_buy_num"
,
width
:
"120"
,
label
:
"两年课购买人数"
,
"render-header"
:
e
.
rendertip
,
sortable
:
"custom"
}}),
e
.
_v
(
" "
),
n
(
"el-table-column"
,{
attrs
:{
prop
:
"sum_one_buy_money"
,
label
:
"一年课转化金额"
,
"render-header"
:
e
.
rendertip
,
sortable
:
"custom"
}}),
e
.
_v
(
" "
),
n
(
"el-table-column"
,{
attrs
:{
prop
:
"sum_two_buy_money"
,
label
:
"两年课转化金额"
,
"render-header"
:
e
.
rendertip
,
sortable
:
"custom"
}})],
1
),
e
.
_v
(
" "
),
n
(
"page"
,{
attrs
:{
nowPage
:
e
.
nowPage
,
total
:
e
.
total
,
limit
:
e
.
limit
},
on
:{
pageChange
:
e
.
onPageChange
,
sizeChange
:
e
.
onSizeChange
}})],
1
)};
l
.
_withStripped
=!
0
;
var
c
=
{
render
:
l
,
staticRenderFns
:[]},
m
=
c
;
var
h
=!
1
;
var
u
=
n
(
"VU/8"
)(
s
,
m
,
!
1
,
function
(
e
){
h
||
n
(
"04By"
)},
null
,
null
);
u
.
options
.
__file
=
"src
\\
components
\\
conversionList
\\
channelConversionList.vue"
;
t
.
default
=
u
.
exports
}});
\ No newline at end of file
dev/static/js/43.1c1a8ba503ee78eb7070.js
0 → 100644
View file @
3f11e567
webpackJsonp
([
43
],{
"21mC"
:
function
(
e
,
t
,
n
){
"use strict"
;
var
r
;
function
a
(
e
,
t
,
n
){
return
t
in
e
?
Object
.
defineProperty
(
e
,
t
,{
value
:
n
,
enumerable
:
!
0
,
configurable
:
!
0
,
writable
:
!
0
}):
e
[
t
]
=
n
,
e
}
n
.
d
(
t
,
"a"
,
function
(){
return
o
});
var
o
=
(
a
(
r
=
{
"订单数"
:
"支付成功且未全额退款的订单数量(*月课、季课全勤返现完成的订单也会排除)"
,
"到班数"
:
"进入系统课程期数班级的学员数量"
,
"到班率"
:
"到班数/订单数"
,
"好友数"
:
"班主任在系统内标注用已成为微信好友的户数量,包含老师主动添加数和用户主动添加数"
,
"到课数"
:
"浏览过一次及以上课包的人数"
,
"好友率"
:
"好友数/订单数"
},
"到课数"
,
"浏览过一次及以上课包的人数"
),
a
(
r
,
"到课率"
,
"到课数/订单数"
),
a
(
r
,
"转化人数"
,
"购买一年课、两年课且未全额退款的人数(*个别退课但未全额退款的学员包含在内)"
),
a
(
r
,
"转化率"
,
"转化人数/订单数"
),
a
(
r
,
"一年课购买人数"
,
"购买一年课且未全额退款的人数"
),
a
(
r
,
"两年课购买人数"
,
"购买两年课且未全额退款的人数"
),
a
(
r
,
"转化总额"
,
"一年课和两年课的转化金额合计"
),
a
(
r
,
"一年课转化金额"
,
"购买一年课且未全额退款的订单实付金额(云集订单为商品金额,不扣除优惠券、抵现)"
),
a
(
r
,
"两年课转化金额"
,
"购买两年课且未全额退款的订单实付金额(云集订单为商品金额,不扣除优惠券、抵现)"
),
r
)},
"G/kT"
:
function
(
e
,
t
,
n
){
"use strict"
;
Object
.
defineProperty
(
t
,
"__esModule"
,{
value
:
!
0
});
var
r
=
n
(
"CCn6"
),
a
=
n
(
"kmJW"
),
o
=
n
(
"+TkF"
),
s
=
n
(
"21mC"
);
function
i
(
e
,
t
,
n
){
return
t
in
e
?
Object
.
defineProperty
(
e
,
t
,{
value
:
n
,
enumerable
:
!
0
,
configurable
:
!
0
,
writable
:
!
0
}):
e
[
t
]
=
n
,
e
}
var
l
=
{
name
:
"channelGoodsConversionList"
,
data
:
function
(){
var
e
,
t
=
this
;
return
i
(
e
=
{
width
:
0
,
nowPage
:
1
,
total
:
0
,
limit
:
20
,
list
:[],
goods_id
:
null
,
teacherList
:[],
periodList
:[]},
"total"
,
0
),
i
(
e
,
"today"
,{
text
:
"今天"
,
onClick
:
function
(){
t
.
searchFrom
.
payTime
=
[
t
.
formatTime
(
new
Date
)
+
" 00:00:00"
,
t
.
formatTime
(
new
Date
)
+
" 23:59:59"
]}}),
i
(
e
,
"yesterday"
,{
text
:
"昨天"
,
onClick
:
function
(){
var
e
=
t
.
formatTime
(
new
Date
((
new
Date
).
getTime
()
-
864
e5
));
t
.
searchFrom
.
payTime
=
[
e
+
" 00:00:00"
,
e
+
" 23:59:59"
]}}),
i
(
e
,
"last30Day"
,{
text
:
"过去30天"
,
onClick
:
function
(){
var
e
=
t
.
formatTime
(
new
Date
((
new
Date
).
getTime
()
-
2592
e6
));
t
.
searchFrom
.
payTime
=
[
e
+
" 00:00:00"
,
t
.
formatTime
(
new
Date
)
+
" 23:59:59"
]}}),
i
(
e
,
"last7Day"
,{
text
:
"过去7天"
,
onClick
:
function
(){
var
e
=
t
.
formatTime
(
new
Date
((
new
Date
).
getTime
()
-
6048
e5
));
t
.
searchFrom
.
payTime
=
[
e
+
" 00:00:00"
,
t
.
formatTime
(
new
Date
)
+
" 23:59:59"
]}}),
i
(
e
,
"propertyList"
,[]),
i
(
e
,
"spanArr"
,[]),
i
(
e
,
"contentSpanArr"
,[]),
i
(
e
,
"searchFrom"
,{
payTime
:[],
start_at
:
""
,
end_at
:
""
,
invite_type
:
""
,
invite_name
:
""
,
watch_num
:
""
,
periods_id
:
""
,
squad
:
""
,
teacher_id
:
""
,
periods_title
:
""
,
goods_id
:
""
}),
i
(
e
,
"propertyList"
,[]),
i
(
e
,
"watchList"
,[{
id
:
0
,
title
:
5
},{
id
:
1
,
title
:
6
},{
id
:
2
,
title
:
10
},{
id
:
3
,
title
:
20
}]),
i
(
e
,
"goodList"
,[]),
e
},
filters
:{
filterGoods
:
function
(
e
){
return
"["
+
e
.
id
+
"]["
+
o
.
h
[
e
.
goods_type
]
+
"]【"
+
e
.
current_price
/
100
+
"元】"
+
e
.
name
}},
components
:{
page
:
a
.
a
},
methods
:{
rendertip
:
function
(
e
,
t
){
var
n
=
t
.
column
;
return
e
(
"span"
,[
e
(
"span"
,
n
.
label
),
e
(
"el-tooltip"
,{
props
:{
effect
:
"dark"
,
content
:
s
.
a
[
n
.
label
],
placement
:
"top"
}},[
e
(
"i"
,{
class
:
"el-icon-question"
,
style
:
"color:#409eff;display:block;"
})])])},
sortMethod
:
function
(
e
){
this
.
searchFrom
.
sort_key
=
e
.
prop
,
"ascending"
==
e
.
order
?
this
.
searchFrom
.
sort_value
=
"asc"
:
this
.
searchFrom
.
sort_value
=
"dasc"
,
this
.
getChannelTransList
()},
getGoodsOption
:
function
(){
var
e
=
this
;
Object
(
r
.
_59
)({
page
:
1
,
limit
:
100
,
goods_type
:
"1,2"
}).
then
(
function
(
t
){
e
.
goodList
=
t
.
list
,
console
.
log
(
e
.
goodList
,
176
)})},
seachData
:
function
(){
this
.
total
=
0
,
this
.
nowPage
=
1
,
this
.
getChannelTransList
()},
onPeriodChange
:
function
(
e
){
var
t
=
""
;
t
=
e
.
length
>
1
?
e
.
join
(
","
):
e
[
0
],
this
.
periods_id
=
t
,
console
.
log
(
t
)},
objectSpanMethod
:
function
(
e
){},
handleItemChange
:
function
(
e
){
var
t
=
this
;
getPeriodsApi
({
goods_id
:
e
[
0
],
limit
:
100
}).
then
(
function
(
n
){
n
.
list
.
forEach
(
function
(
e
){
e
.
name
=
e
.
title
}),
t
.
goodsList
.
find
(
function
(
t
){
return
t
.
id
===
e
[
0
]}).
children
=
n
.
list
})},
changePeriods
:
function
(
e
){
if
(
e
.
length
>
1
){
this
.
goods_id
=
e
[
0
];
var
t
=
this
.
goodsList
.
find
(
function
(
t
){
return
t
.
id
===
e
[
0
]});
this
.
periods
=
t
.
children
.
find
(
function
(
t
){
return
t
.
id
===
e
[
1
]}),
this
.
searchFrom
.
periods_id
=
this
.
periods
.
id
,
this
.
getChannelTransList
()}},
changeTeacher
:
function
(
e
){
this
.
searchFrom
.
teacher_id
=
e
,
this
.
getChannelTransList
()},
selectChange
:
function
(
e
){
this
.
searchFrom
.
watch_num
=
this
.
watchList
[
e
].
title
,
this
.
getChannelTransList
()},
formatTime
:
function
(
e
){
var
t
=
e
.
getFullYear
(),
n
=
e
.
getMonth
()
+
1
;
n
<
10
&&
(
n
=
"0"
+
n
);
var
r
=
e
.
getDate
();
return
r
<
10
&&
(
r
=
"0"
+
r
),
t
+
"-"
+
n
+
"-"
+
r
},
onPageChange
:
function
(
e
){
this
.
nowPage
=
e
,
this
.
getChannelTransList
()},
onSizeChange
:
function
(
e
){
this
.
nowPage
=
1
,
this
.
limit
=
e
,
this
.
getChannelTransList
()},
getPeriodsOtherList
:
function
(){
var
e
=
this
;
getPeriodsOtherListApi
({
limit
:
1
e3
,
page
:
1
,
max_watch_num
:
20
}).
then
(
function
(
t
){
e
.
periodList
=
t
.
list
})},
getChannelTransList
:
function
(){
var
e
=
this
,
t
=
{
limit
:
this
.
limit
,
page
:
this
.
nowPage
};
this
.
searchFrom
.
sort_value
&&
(
t
.
sort_value
=
this
.
searchFrom
.
sort_value
,
t
.
sort_key
=
this
.
searchFrom
.
sort_key
),
this
.
searchFrom
.
invite_type
&&
(
t
.
invite_type
=
this
.
searchFrom
.
invite_type
),
this
.
searchFrom
.
watch_num
&&
(
t
.
watch_num
=
this
.
searchFrom
.
watch_num
),
this
.
searchFrom
.
goods_id
&&
(
t
.
goods_id
=
this
.
searchFrom
.
goods_id
),
this
.
searchFrom
.
payTime
&&
this
.
searchFrom
.
payTime
.
length
>
0
&&
(
this
.
searchFrom
.
payTime
[
0
]
&&
this
.
searchFrom
.
payTime
[
0
].
length
>
0
&&
(
this
.
searchFrom
.
start_at
=
this
.
searchFrom
.
payTime
[
0
],
t
.
start_at
=
this
.
searchFrom
.
start_at
),
this
.
searchFrom
.
payTime
[
1
]
&&
this
.
searchFrom
.
payTime
[
1
].
length
>
0
&&
(
this
.
searchFrom
.
end_at
=
this
.
searchFrom
.
payTime
[
1
],
t
.
end_at
=
this
.
searchFrom
.
end_at
)),
Object
(
r
.
_43
)(
t
).
then
(
function
(
t
){
if
(
t
){
if
(
t
.
list
&&
t
.
list
.
length
>
0
){
for
(
var
n
in
e
.
total
=
t
.
total
,
e
.
list
=
t
.
list
.
map
(
function
(
n
,
r
){
n
.
index
=
r
,
0
==
r
?(
e
.
spanArr
.
push
(
1
),
e
.
pos
=
0
):
n
.
cur_date
==
t
.
list
[
r
-
1
].
cur_date
?(
e
.
spanArr
[
e
.
pos
]
+=
1
,
e
.
spanArr
.
push
(
0
)):(
e
.
spanArr
.
push
(
1
),
e
.
pos
=
r
);
var
a
=
n
.
invite_name
&&
n
.
invite_name
.
length
>
0
?
"("
+
n
.
invite_name
+
")"
:
""
,
o
=
n
.
goods_id
&&
n
.
goods_id
>
0
?
"【"
+
n
.
goods_id
+
"】"
:
""
,
s
=
n
.
watch_num
&&
n
.
watch_num
>
0
?
"【"
+
n
.
watch_num
+
"个课时】"
:
""
;
return
n
.
invite_type
=
""
+
n
.
invite_type
+
a
,
n
.
goods_name
=
""
+
o
+
n
.
goods_name
+
s
,
n
}),
e
.
list
[
0
])
e
.
propertyList
.
push
(
n
);
e
.
width
=
document
.
documentElement
.
clientWidth
-
200
}
t
.
list
&&
0
===
t
.
list
.
length
&&
(
e
.
list
=
[])}
else
e
.
list
=
[]})}},
mounted
:
function
(){
this
.
getChannelTransList
(),
this
.
getGoodsOption
()}},
c
=
function
(){
var
e
=
this
,
t
=
e
.
$createElement
,
n
=
e
.
_self
.
_c
||
t
;
return
n
(
"div"
,{
staticClass
:
"channel-trans-list"
},[
n
(
"el-form"
,{
ref
:
"searchFrom"
,
attrs
:{
model
:
e
.
searchFrom
,
"label-width"
:
"100px"
,
inline
:
""
}},[
n
(
"el-form-item"
,{
attrs
:{
label
:
"进量日期"
}},[
n
(
"el-date-picker"
,{
attrs
:{
type
:
"datetimerange"
,
"range-separator"
:
"至"
,
"value-format"
:
"yyyy-MM-dd HH:mm:ss"
,
"start-placeholder"
:
"开始日期"
,
"end-placeholder"
:
"结束日期"
,
"picker-options"
:{
shortcuts
:[
e
.
today
,
e
.
yesterday
,
e
.
last7Day
,
e
.
last30Day
]},
"default-time"
:[
"00:00:00"
,
"23:59:59"
]},
on
:{
change
:
e
.
getChannelTransList
},
model
:{
value
:
e
.
searchFrom
.
payTime
,
callback
:
function
(
t
){
e
.
$set
(
e
.
searchFrom
,
"payTime"
,
t
)},
expression
:
"searchFrom.payTime"
}})],
1
),
e
.
_v
(
" "
),
n
(
"el-form-item"
,{
attrs
:{
label
:
"渠道code"
}},[
n
(
"el-input"
,{
staticStyle
:{
width
:
"110px"
},
model
:{
value
:
e
.
searchFrom
.
invite_type
,
callback
:
function
(
t
){
e
.
$set
(
e
.
searchFrom
,
"invite_type"
,
t
)},
expression
:
"searchFrom.invite_type"
}})],
1
),
e
.
_v
(
" "
),
n
(
"el-form-item"
,{
attrs
:{
label
:
"商品名称"
}},[
n
(
"el-select"
,{
staticStyle
:{
width
:
"150px"
},
attrs
:{
filterable
:
""
,
placeholder
:
"请选择"
,
clearable
:
""
},
on
:{
change
:
e
.
getChannelTransList
},
model
:{
value
:
e
.
searchFrom
.
goods_id
,
callback
:
function
(
t
){
e
.
$set
(
e
.
searchFrom
,
"goods_id"
,
t
)},
expression
:
"searchFrom.goods_id"
}},
e
.
_l
(
e
.
goodList
,
function
(
t
,
r
){
return
n
(
"el-option"
,{
key
:
r
,
attrs
:{
label
:
e
.
_f
(
"filterGoods"
)(
t
),
value
:
t
.
id
}})}))],
1
),
e
.
_v
(
" "
),
n
(
"el-form-item"
,{
attrs
:{
label
:
"商品课时数"
}},[
n
(
"el-select"
,{
staticStyle
:{
width
:
"150px"
},
attrs
:{
filterable
:
""
,
clearable
:
""
,
placeholder
:
"请选择"
},
on
:{
change
:
e
.
selectChange
},
model
:{
value
:
e
.
searchFrom
.
watch_num
,
callback
:
function
(
t
){
e
.
$set
(
e
.
searchFrom
,
"watch_num"
,
t
)},
expression
:
"searchFrom.watch_num"
}},[
n
(
"el-option"
,{
attrs
:{
value
:
""
,
label
:
"请选择"
}}),
e
.
_v
(
" "
),
e
.
_l
(
e
.
watchList
,
function
(
e
,
t
){
return
n
(
"el-option"
,{
key
:
t
,
attrs
:{
label
:
e
.
title
,
value
:
e
.
id
}})})],
2
)],
1
),
e
.
_v
(
" "
),
n
(
"el-form-item"
,[
n
(
"div"
,{
staticClass
:
"flexRow"
},[
n
(
"el-button"
,{
attrs
:{
type
:
"primary"
,
plain
:
""
},
on
:{
click
:
e
.
seachData
}},[
e
.
_v
(
"搜索"
)])],
1
)])],
1
),
e
.
_v
(
" "
),
n
(
"el-table"
,{
style
:{
width
:
e
.
width
+
"px"
},
attrs
:{
border
:
""
,
"span-method"
:
e
.
objectSpanMethod
,
data
:
e
.
list
,
fixed
:
""
},
on
:{
"sort-change"
:
e
.
sortMethod
}},[
n
(
"el-table-column"
,{
attrs
:{
prop
:
"is_other"
,
label
:
"渠道来源"
},
scopedSlots
:
e
.
_u
([{
key
:
"default"
,
fn
:
function
(
t
){
return
[
e
.
_v
(
"
\n
"
+
e
.
_s
(
0
==
t
.
row
.
is_other
?
"内部"
:
"外部"
)
+
"
\n
"
)]}}])}),
e
.
_v
(
" "
),
n
(
"el-table-column"
,{
attrs
:{
prop
:
"invite_type_name"
,
label
:
"渠道类别"
}}),
e
.
_v
(
" "
),
n
(
"el-table-column"
,{
attrs
:{
prop
:
"invite_type"
,
label
:
"渠道类型"
}}),
e
.
_v
(
" "
),
n
(
"el-table-column"
,{
attrs
:{
prop
:
"goods_name"
,
label
:
"商品名称"
,
width
:
"180"
}}),
e
.
_v
(
" "
),
n
(
"el-table-column"
,{
attrs
:{
prop
:
"sum_total_num"
,
label
:
"订单数"
,
"render-header"
:
e
.
rendertip
,
sortable
:
"custom"
}}),
e
.
_v
(
" "
),
n
(
"el-table-column"
,{
attrs
:{
prop
:
"sum_class_num"
,
label
:
"到班数"
,
"render-header"
:
e
.
rendertip
,
sortable
:
"custom"
}}),
e
.
_v
(
" "
),
n
(
"el-table-column"
,{
attrs
:{
prop
:
"class_num_except_total_num"
,
label
:
"到班率"
,
"render-header"
:
e
.
rendertip
,
sortable
:
"custom"
},
scopedSlots
:
e
.
_u
([{
key
:
"default"
,
fn
:
function
(
t
){
return
[
e
.
_v
(
"
\n
"
+
e
.
_s
(
t
.
row
.
class_num_except_total_num
)
+
"%
\n
"
)]}}])}),
e
.
_v
(
" "
),
n
(
"el-table-column"
,{
attrs
:{
prop
:
"sum_friend_num"
,
label
:
"好友数"
,
"render-header"
:
e
.
rendertip
,
sortable
:
"custom"
}}),
e
.
_v
(
" "
),
n
(
"el-table-column"
,{
attrs
:{
prop
:
"friend_num_except_total_num"
,
label
:
"好友率"
,
"render-header"
:
e
.
rendertip
,
sortable
:
"custom"
},
scopedSlots
:
e
.
_u
([{
key
:
"default"
,
fn
:
function
(
t
){
return
[
e
.
_v
(
"
\n
"
+
e
.
_s
(
t
.
row
.
friend_num_except_total_num
)
+
"%
\n
"
)]}}])}),
e
.
_v
(
" "
),
n
(
"el-table-column"
,{
attrs
:{
prop
:
"sum_come_num"
,
label
:
"到课数"
,
"render-header"
:
e
.
rendertip
,
sortable
:
"custom"
}}),
e
.
_v
(
" "
),
n
(
"el-table-column"
,{
attrs
:{
prop
:
"come_num_except_total_num"
,
label
:
"到课率"
,
"render-header"
:
e
.
rendertip
,
sortable
:
"custom"
},
scopedSlots
:
e
.
_u
([{
key
:
"default"
,
fn
:
function
(
t
){
return
[
e
.
_v
(
"
\n
"
+
e
.
_s
(
t
.
row
.
come_num_except_total_num
)
+
"%
\n
"
)]}}])}),
e
.
_v
(
" "
),
n
(
"el-table-column"
,{
attrs
:{
prop
:
"sum_buy_num"
,
label
:
"转化人数"
,
"render-header"
:
e
.
rendertip
,
sortable
:
"custom"
}}),
e
.
_v
(
" "
),
n
(
"el-table-column"
,{
attrs
:{
prop
:
"sum_buy_num_except_total_num"
,
label
:
"转化率"
,
"render-header"
:
e
.
rendertip
,
sortable
:
"custom"
},
scopedSlots
:
e
.
_u
([{
key
:
"default"
,
fn
:
function
(
t
){
return
[
e
.
_v
(
"
\n
"
+
e
.
_s
(
t
.
row
.
sum_buy_num_except_total_num
)
+
"%
\n
"
)]}}])}),
e
.
_v
(
" "
),
n
(
"el-table-column"
,{
attrs
:{
prop
:
"sum_one_buy_num"
,
label
:
"一年课购买人数"
,
"render-header"
:
e
.
rendertip
,
sortable
:
"custom"
}}),
e
.
_v
(
" "
),
n
(
"el-table-column"
,{
attrs
:{
prop
:
"sum_two_buy_num"
,
label
:
"两年课购买人数"
,
"render-header"
:
e
.
rendertip
,
sortable
:
"custom"
}}),
e
.
_v
(
" "
),
n
(
"el-table-column"
,{
attrs
:{
prop
:
"sum_buy_money"
,
label
:
"转化总额"
,
"render-header"
:
e
.
rendertip
,
sortable
:
"custom"
}}),
e
.
_v
(
" "
),
n
(
"el-table-column"
,{
attrs
:{
prop
:
"sum_one_buy_money"
,
label
:
"一年课转化金额"
,
"render-header"
:
e
.
rendertip
,
sortable
:
"custom"
}}),
e
.
_v
(
" "
),
n
(
"el-table-column"
,{
attrs
:{
prop
:
"sum_two_buy_money"
,
label
:
"两年课转化金额"
,
"render-header"
:
e
.
rendertip
,
sortable
:
"custom"
}})],
1
),
e
.
_v
(
" "
),
n
(
"page"
,{
attrs
:{
nowPage
:
e
.
nowPage
,
total
:
e
.
total
,
limit
:
e
.
limit
},
on
:{
pageChange
:
e
.
onPageChange
,
sizeChange
:
e
.
onSizeChange
}})],
1
)};
c
.
_withStripped
=!
0
;
var
m
=
{
render
:
c
,
staticRenderFns
:[]},
h
=
m
;
var
u
=!
1
;
var
d
=
n
(
"VU/8"
)(
l
,
h
,
!
1
,
function
(
e
){
u
||
n
(
"q8ot"
)},
null
,
null
);
d
.
options
.
__file
=
"src
\\
components
\\
conversionList
\\
channelGoodsConversionList.vue"
;
t
.
default
=
d
.
exports
},
QXie
:
function
(
e
,
t
,
n
){(
e
.
exports
=
n
(
"FZ+f"
)(
!
0
)).
push
([
e
.
i
,
"
\n
.channel-trans-list {
\n
padding: 20px 0;
\n
}
\n
.el-table .cell {
\n
text-align: center !important;
\n
}
\n
"
,
""
,{
version
:
3
,
sources
:[
"C:/Users/Administrator/Desktop/后台/admin/src/components/conversionList/channelGoodsConversionList.vue"
],
names
:[],
mappings
:
";AACA;EACE,gBAAgB;CACjB;AACD;EACE,8BAA8B;CAC/B"
,
file
:
"channelGoodsConversionList.vue"
,
sourcesContent
:[
"
\n
.channel-trans-list {
\n
padding: 20px 0;
\n
}
\n
.el-table .cell {
\n
text-align: center !important;
\n
}
\n
"
],
sourceRoot
:
""
}])},
q8ot
:
function
(
e
,
t
,
n
){
var
r
=
n
(
"QXie"
);
"string"
==
typeof
r
&&
(
r
=
[[
e
.
i
,
r
,
""
]]),
r
.
locals
&&
(
e
.
exports
=
r
.
locals
);
n
(
"rjj0"
)(
"51e43c94"
,
r
,
!
1
,{})}});
\ No newline at end of file
dev/static/js/manifest.34d6fa07e2f4949669ca.js
0 → 100644
View file @
3f11e567
!
function
(
e
){
var
a
=
window
.
webpackJsonp
;
window
.
webpackJsonp
=
function
(
c
,
d
,
n
){
for
(
var
r
,
t
,
o
,
i
=
0
,
u
=
[];
i
<
c
.
length
;
i
++
)
t
=
c
[
i
],
f
[
t
]
&&
u
.
push
(
f
[
t
][
0
]),
f
[
t
]
=
0
;
for
(
r
in
d
)
Object
.
prototype
.
hasOwnProperty
.
call
(
d
,
r
)
&&
(
e
[
r
]
=
d
[
r
]);
for
(
a
&&
a
(
c
,
d
,
n
);
u
.
length
;)
u
.
shift
()();
if
(
n
)
for
(
i
=
0
;
i
<
n
.
length
;
i
++
)
o
=
b
(
b
.
s
=
n
[
i
]);
return
o
};
var
c
=
{},
f
=
{
69
:
0
};
function
b
(
a
){
if
(
c
[
a
])
return
c
[
a
].
exports
;
var
f
=
c
[
a
]
=
{
i
:
a
,
l
:
!
1
,
exports
:{}};
return
e
[
a
].
call
(
f
.
exports
,
f
,
f
.
exports
,
b
),
f
.
l
=!
0
,
f
.
exports
}
b
.
e
=
function
(
e
){
var
a
=
f
[
e
];
if
(
0
===
a
)
return
new
Promise
(
function
(
e
){
e
()});
if
(
a
)
return
a
[
2
];
var
c
=
new
Promise
(
function
(
c
,
b
){
a
=
f
[
e
]
=
[
c
,
b
]});
a
[
2
]
=
c
;
var
d
=
document
.
getElementsByTagName
(
"head"
)[
0
],
n
=
document
.
createElement
(
"script"
);
n
.
type
=
"text/javascript"
,
n
.
charset
=
"utf-8"
,
n
.
async
=!
0
,
n
.
timeout
=
12
e4
,
b
.
nc
&&
n
.
setAttribute
(
"nonce"
,
b
.
nc
),
n
.
src
=
b
.
p
+
"static/js/"
+
e
+
"."
+
{
0
:
"3ade38c0aff2e24a655a"
,
1
:
"1315236348582fc8e5e8"
,
2
:
"b6893bfbe3576a294644"
,
3
:
"31bde1388de2eb7814ee"
,
4
:
"86f7fe9f691df70b93f2"
,
5
:
"1eba5068bcc603e52315"
,
6
:
"69b2a8d0d66777598a3c"
,
7
:
"e3e6701271ac1b30fec1"
,
8
:
"ba2c5eea4bae6edc6fe6"
,
9
:
"f0953e7fe4daf1cc8fe6"
,
10
:
"8117c105524d1651f917"
,
11
:
"e370493a193f31cda7b3"
,
12
:
"8b021688013e398ca3a5"
,
13
:
"d710c4b64be29ef4dd4d"
,
14
:
"1dca8d8838a11cee419e"
,
15
:
"12f4af77221b531640c4"
,
16
:
"1f657b60ba2423ae0e1e"
,
17
:
"01708e39956f921938aa"
,
18
:
"2d44f3008d84f45a496b"
,
19
:
"ac517c7ddf5acfea98ee"
,
20
:
"192ff0ce3b794223f8c7"
,
21
:
"1714423ee6a3922c7626"
,
22
:
"a593f774d6e7b59af71b"
,
23
:
"c1bc94beed54d1a529bf"
,
24
:
"625df4947d87d7baa720"
,
25
:
"d2e8e398b77de940bc75"
,
26
:
"247bd2a20100e4274032"
,
27
:
"ae37e657e804f4f39a65"
,
28
:
"ac5cd70d95dea5330e2a"
,
29
:
"5a0abeb6bc5ba700d9d4"
,
30
:
"2bbf2003e08e3c85b02e"
,
31
:
"cb73631f0fb35fc85b80"
,
32
:
"478de01c8671e9b736bb"
,
33
:
"89a886ca2edf08d1da99"
,
34
:
"bfae821267441bdfb843"
,
35
:
"1e266ee1931187505b81"
,
36
:
"4262dbd0f9927e1d6fad"
,
37
:
"2fe3ba985d82488115a2"
,
38
:
"f38f54b6e647b17b606f"
,
39
:
"25d541effc76fb664617"
,
40
:
"6ea54ea49958b17f2df7"
,
41
:
"f5cbc80a06389832a034"
,
42
:
"7ccc06ac6bc3544091fe"
,
43
:
"1c1a8ba503ee78eb7070"
,
44
:
"6fb04fae4bbaadddb191"
,
45
:
"2d962f4c25454cde2118"
,
46
:
"d638a050f13f0c1c27df"
,
47
:
"060f06dd35641d864baa"
,
48
:
"eb62245eade411969bc5"
,
49
:
"06dff50e19913af74396"
,
50
:
"b3552fcf9ef17524d077"
,
51
:
"ca887ceefef8a360c60b"
,
52
:
"02c211b7c1ac1588a572"
,
53
:
"c0eb0e2c9c0e1a6457ef"
,
54
:
"36ef1333b807491ca4b8"
,
55
:
"d7c4e1a31010c4beaabc"
,
56
:
"a9721b9a81ecdc4caeab"
,
57
:
"27d41f6ca34b33214ec6"
,
58
:
"2d598f68876b8c85c1f0"
,
59
:
"5e7f4d70dd4b8c88b266"
,
60
:
"c34f44f39d400fccd8c3"
,
61
:
"e4e45eb1f3339c498027"
,
62
:
"8629a0691fa9dbeaf441"
,
63
:
"02e62503ff40ec916f83"
,
64
:
"547953d6ffdf7688c754"
,
65
:
"63911b7c7ba57da3a4e2"
,
66
:
"1973d7e91c2414c33698"
}[
e
]
+
".js"
;
var
r
=
setTimeout
(
t
,
12
e4
);
function
t
(){
n
.
onerror
=
n
.
onload
=
null
,
clearTimeout
(
r
);
var
a
=
f
[
e
];
0
!==
a
&&
(
a
&&
a
[
1
](
new
Error
(
"Loading chunk "
+
e
+
" failed."
)),
f
[
e
]
=
void
0
)}
return
n
.
onerror
=
n
.
onload
=
t
,
d
.
appendChild
(
n
),
c
},
b
.
m
=
e
,
b
.
c
=
c
,
b
.
d
=
function
(
e
,
a
,
c
){
b
.
o
(
e
,
a
)
||
Object
.
defineProperty
(
e
,
a
,{
configurable
:
!
1
,
enumerable
:
!
0
,
get
:
c
})},
b
.
n
=
function
(
e
){
var
a
=
e
&&
e
.
__esModule
?
function
(){
return
e
.
default
}:
function
(){
return
e
};
return
b
.
d
(
a
,
"a"
,
a
),
a
},
b
.
o
=
function
(
e
,
a
){
return
Object
.
prototype
.
hasOwnProperty
.
call
(
e
,
a
)},
b
.
p
=
"/"
,
b
.
oe
=
function
(
e
){
throw
console
.
error
(
e
),
e
}}([]);
\ No newline at end of file
dist/index.html
View file @
3f11e567
<!DOCTYPE html>
<html><head><meta
charset=
utf-8
><meta
name=
viewport
content=
"width=device-width,initial-scale=1"
><meta
name=
referrer
content=
never
><link
rel=
stylesheet
href=
https:////at.alicdn.com/t/font_746649_x1rivf5f5.css
><link
rel=
stylesheet
href=
https://lib.baomitu.com/element-ui/2.7.2/theme-chalk/index.css
><title>
唱唱启蒙-后台
</title><link
href=
/static/css/app.1c962ee81dfde77478d68d73d55dd7e7.css
rel=
stylesheet
></head><body><script
src=
https://cdn.bootcss.com/vue/2.5.17/vue.min.js
></script><script
src=
https://unpkg.com/vuex@3.0.1
></script><script
src=
https://cdn.bootcss.com/axios/0.18.0/axios.min.js
></script><script
src=
https://lib.baomitu.com/element-ui/2.7.2/index.js
></script><div
id=
app
></div><script
type=
text/javascript
src=
/static/js/manifest.
2e53f1fa58f39d4d6ff2
.js
></script><script
type=
text/javascript
src=
/static/js/vendor.c51fd44cbf7149072a68.js
></script><script
type=
text/javascript
src=
/static/js/app.edb4749eb2f1706bf0b0.js
></script></body><script>
let
el
=
document
.
getElementsByTagName
(
"script"
);
<!DOCTYPE html>
<html><head><meta
charset=
utf-8
><meta
name=
viewport
content=
"width=device-width,initial-scale=1"
><meta
name=
referrer
content=
never
><link
rel=
stylesheet
href=
https:////at.alicdn.com/t/font_746649_x1rivf5f5.css
><link
rel=
stylesheet
href=
https://lib.baomitu.com/element-ui/2.7.2/theme-chalk/index.css
><title>
唱唱启蒙-后台
</title><link
href=
/static/css/app.1c962ee81dfde77478d68d73d55dd7e7.css
rel=
stylesheet
></head><body><script
src=
https://cdn.bootcss.com/vue/2.5.17/vue.min.js
></script><script
src=
https://unpkg.com/vuex@3.0.1
></script><script
src=
https://cdn.bootcss.com/axios/0.18.0/axios.min.js
></script><script
src=
https://lib.baomitu.com/element-ui/2.7.2/index.js
></script><div
id=
app
></div><script
type=
text/javascript
src=
/static/js/manifest.
00676b92d72e97be718b
.js
></script><script
type=
text/javascript
src=
/static/js/vendor.c51fd44cbf7149072a68.js
></script><script
type=
text/javascript
src=
/static/js/app.edb4749eb2f1706bf0b0.js
></script></body><script>
let
el
=
document
.
getElementsByTagName
(
"script"
);
el
.
onerror
=
function
(
a
,
b
,
c
){
console
.
log
(
'error:'
,
a
,
b
,
c
);
};
...
...
dist/static/js/42.84e8adf1f8af495598c5.js
0 → 100644
View file @
3f11e567
webpackJsonp
([
42
],{
"21mC"
:
function
(
e
,
t
,
a
){
"use strict"
;
var
r
;
function
n
(
e
,
t
,
a
){
return
t
in
e
?
Object
.
defineProperty
(
e
,
t
,{
value
:
a
,
enumerable
:
!
0
,
configurable
:
!
0
,
writable
:
!
0
}):
e
[
t
]
=
a
,
e
}
a
.
d
(
t
,
"a"
,
function
(){
return
o
});
var
o
=
(
n
(
r
=
{
"订单数"
:
"支付成功且未全额退款的订单数量(*月课、季课全勤返现完成的订单也会排除)"
,
"到班数"
:
"进入系统课程期数班级的学员数量"
,
"到班率"
:
"到班数/订单数"
,
"好友数"
:
"班主任在系统内标注用已成为微信好友的户数量,包含老师主动添加数和用户主动添加数"
,
"到课数"
:
"浏览过一次及以上课包的人数"
,
"好友率"
:
"好友数/订单数"
},
"到课数"
,
"浏览过一次及以上课包的人数"
),
n
(
r
,
"到课率"
,
"到课数/订单数"
),
n
(
r
,
"转化人数"
,
"购买一年课、两年课且未全额退款的人数(*个别退课但未全额退款的学员包含在内)"
),
n
(
r
,
"转化率"
,
"转化人数/订单数"
),
n
(
r
,
"一年课购买人数"
,
"购买一年课且未全额退款的人数"
),
n
(
r
,
"两年课购买人数"
,
"购买两年课且未全额退款的人数"
),
n
(
r
,
"转化总额"
,
"一年课和两年课的转化金额合计"
),
n
(
r
,
"一年课转化金额"
,
"购买一年课且未全额退款的订单实付金额(云集订单为商品金额,不扣除优惠券、抵现)"
),
n
(
r
,
"两年课转化金额"
,
"购买两年课且未全额退款的订单实付金额(云集订单为商品金额,不扣除优惠券、抵现)"
),
r
)},
"G/kT"
:
function
(
e
,
t
,
a
){
"use strict"
;
Object
.
defineProperty
(
t
,
"__esModule"
,{
value
:
!
0
});
var
r
=
a
(
"CCn6"
),
n
=
a
(
"kmJW"
),
o
=
a
(
"+TkF"
),
s
=
a
(
"21mC"
);
function
i
(
e
,
t
,
a
){
return
t
in
e
?
Object
.
defineProperty
(
e
,
t
,{
value
:
a
,
enumerable
:
!
0
,
configurable
:
!
0
,
writable
:
!
0
}):
e
[
t
]
=
a
,
e
}
var
l
=
{
name
:
"channelGoodsConversionList"
,
data
:
function
(){
var
e
,
t
=
this
;
return
i
(
e
=
{
width
:
0
,
nowPage
:
1
,
total
:
0
,
limit
:
20
,
list
:[],
goods_id
:
null
,
teacherList
:[],
periodList
:[]},
"total"
,
0
),
i
(
e
,
"today"
,{
text
:
"今天"
,
onClick
:
function
(){
t
.
searchFrom
.
payTime
=
[
t
.
formatTime
(
new
Date
)
+
" 00:00:00"
,
t
.
formatTime
(
new
Date
)
+
" 23:59:59"
]}}),
i
(
e
,
"yesterday"
,{
text
:
"昨天"
,
onClick
:
function
(){
var
e
=
t
.
formatTime
(
new
Date
((
new
Date
).
getTime
()
-
864
e5
));
t
.
searchFrom
.
payTime
=
[
e
+
" 00:00:00"
,
e
+
" 23:59:59"
]}}),
i
(
e
,
"last30Day"
,{
text
:
"过去30天"
,
onClick
:
function
(){
var
e
=
t
.
formatTime
(
new
Date
((
new
Date
).
getTime
()
-
2592
e6
));
t
.
searchFrom
.
payTime
=
[
e
+
" 00:00:00"
,
t
.
formatTime
(
new
Date
)
+
" 23:59:59"
]}}),
i
(
e
,
"last7Day"
,{
text
:
"过去7天"
,
onClick
:
function
(){
var
e
=
t
.
formatTime
(
new
Date
((
new
Date
).
getTime
()
-
6048
e5
));
t
.
searchFrom
.
payTime
=
[
e
+
" 00:00:00"
,
t
.
formatTime
(
new
Date
)
+
" 23:59:59"
]}}),
i
(
e
,
"propertyList"
,[]),
i
(
e
,
"spanArr"
,[]),
i
(
e
,
"contentSpanArr"
,[]),
i
(
e
,
"searchFrom"
,{
payTime
:[],
start_at
:
""
,
end_at
:
""
,
invite_type
:
""
,
invite_name
:
""
,
watch_num
:
""
,
periods_id
:
""
,
squad
:
""
,
teacher_id
:
""
,
periods_title
:
""
,
goods_id
:
""
}),
i
(
e
,
"propertyList"
,[]),
i
(
e
,
"watchList"
,[{
id
:
0
,
title
:
5
},{
id
:
1
,
title
:
6
},{
id
:
2
,
title
:
10
},{
id
:
3
,
title
:
20
}]),
i
(
e
,
"goodList"
,[]),
e
},
filters
:{
filterGoods
:
function
(
e
){
return
"["
+
e
.
id
+
"]["
+
o
.
h
[
e
.
goods_type
]
+
"]【"
+
e
.
current_price
/
100
+
"元】"
+
e
.
name
}},
components
:{
page
:
n
.
a
},
methods
:{
rendertip
:
function
(
e
,
t
){
var
a
=
t
.
column
;
return
e
(
"span"
,[
e
(
"span"
,
a
.
label
),
e
(
"el-tooltip"
,{
props
:{
effect
:
"dark"
,
content
:
s
.
a
[
a
.
label
],
placement
:
"top"
}},[
e
(
"i"
,{
class
:
"el-icon-question"
,
style
:
"color:#409eff;display:block;"
})])])},
sortMethod
:
function
(
e
){
this
.
searchFrom
.
sort_key
=
e
.
prop
,
"ascending"
==
e
.
order
?
this
.
searchFrom
.
sort_value
=
"asc"
:
this
.
searchFrom
.
sort_value
=
"dasc"
,
this
.
getChannelTransList
()},
getGoodsOption
:
function
(){
var
e
=
this
;
Object
(
r
.
_59
)({
page
:
1
,
limit
:
100
,
goods_type
:
"1,2"
}).
then
(
function
(
t
){
e
.
goodList
=
t
.
list
,
console
.
log
(
e
.
goodList
,
176
)})},
seachData
:
function
(){
this
.
total
=
0
,
this
.
nowPage
=
1
,
this
.
getChannelTransList
()},
onPeriodChange
:
function
(
e
){
var
t
=
""
;
t
=
e
.
length
>
1
?
e
.
join
(
","
):
e
[
0
],
this
.
periods_id
=
t
,
console
.
log
(
t
)},
objectSpanMethod
:
function
(
e
){},
handleItemChange
:
function
(
e
){
var
t
=
this
;
getPeriodsApi
({
goods_id
:
e
[
0
],
limit
:
100
}).
then
(
function
(
a
){
a
.
list
.
forEach
(
function
(
e
){
e
.
name
=
e
.
title
}),
t
.
goodsList
.
find
(
function
(
t
){
return
t
.
id
===
e
[
0
]}).
children
=
a
.
list
})},
changePeriods
:
function
(
e
){
if
(
e
.
length
>
1
){
this
.
goods_id
=
e
[
0
];
var
t
=
this
.
goodsList
.
find
(
function
(
t
){
return
t
.
id
===
e
[
0
]});
this
.
periods
=
t
.
children
.
find
(
function
(
t
){
return
t
.
id
===
e
[
1
]}),
this
.
searchFrom
.
periods_id
=
this
.
periods
.
id
,
this
.
getChannelTransList
()}},
changeTeacher
:
function
(
e
){
this
.
searchFrom
.
teacher_id
=
e
,
this
.
getChannelTransList
()},
selectChange
:
function
(
e
){
this
.
searchFrom
.
watch_num
=
this
.
watchList
[
e
].
title
,
this
.
getChannelTransList
()},
formatTime
:
function
(
e
){
var
t
=
e
.
getFullYear
(),
a
=
e
.
getMonth
()
+
1
;
a
<
10
&&
(
a
=
"0"
+
a
);
var
r
=
e
.
getDate
();
return
r
<
10
&&
(
r
=
"0"
+
r
),
t
+
"-"
+
a
+
"-"
+
r
},
onPageChange
:
function
(
e
){
this
.
nowPage
=
e
,
this
.
getChannelTransList
()},
onSizeChange
:
function
(
e
){
this
.
nowPage
=
1
,
this
.
limit
=
e
,
this
.
getChannelTransList
()},
getPeriodsOtherList
:
function
(){
var
e
=
this
;
getPeriodsOtherListApi
({
limit
:
1
e3
,
page
:
1
,
max_watch_num
:
20
}).
then
(
function
(
t
){
e
.
periodList
=
t
.
list
})},
getChannelTransList
:
function
(){
var
e
=
this
,
t
=
{
limit
:
this
.
limit
,
page
:
this
.
nowPage
};
this
.
searchFrom
.
sort_value
&&
(
t
.
sort_value
=
this
.
searchFrom
.
sort_value
,
t
.
sort_key
=
this
.
searchFrom
.
sort_key
),
this
.
searchFrom
.
invite_type
&&
(
t
.
invite_type
=
this
.
searchFrom
.
invite_type
),
this
.
searchFrom
.
watch_num
&&
(
t
.
watch_num
=
this
.
searchFrom
.
watch_num
),
this
.
searchFrom
.
goods_id
&&
(
t
.
goods_id
=
this
.
searchFrom
.
goods_id
),
this
.
searchFrom
.
payTime
&&
this
.
searchFrom
.
payTime
.
length
>
0
&&
(
this
.
searchFrom
.
payTime
[
0
]
&&
this
.
searchFrom
.
payTime
[
0
].
length
>
0
&&
(
this
.
searchFrom
.
start_at
=
this
.
searchFrom
.
payTime
[
0
],
t
.
start_at
=
this
.
searchFrom
.
start_at
),
this
.
searchFrom
.
payTime
[
1
]
&&
this
.
searchFrom
.
payTime
[
1
].
length
>
0
&&
(
this
.
searchFrom
.
end_at
=
this
.
searchFrom
.
payTime
[
1
],
t
.
end_at
=
this
.
searchFrom
.
end_at
)),
Object
(
r
.
_43
)(
t
).
then
(
function
(
t
){
if
(
t
){
if
(
t
.
list
&&
t
.
list
.
length
>
0
){
for
(
var
a
in
e
.
total
=
t
.
total
,
e
.
list
=
t
.
list
.
map
(
function
(
a
,
r
){
a
.
index
=
r
,
0
==
r
?(
e
.
spanArr
.
push
(
1
),
e
.
pos
=
0
):
a
.
cur_date
==
t
.
list
[
r
-
1
].
cur_date
?(
e
.
spanArr
[
e
.
pos
]
+=
1
,
e
.
spanArr
.
push
(
0
)):(
e
.
spanArr
.
push
(
1
),
e
.
pos
=
r
);
var
n
=
a
.
invite_name
&&
a
.
invite_name
.
length
>
0
?
"("
+
a
.
invite_name
+
")"
:
""
,
o
=
a
.
goods_id
&&
a
.
goods_id
>
0
?
"【"
+
a
.
goods_id
+
"】"
:
""
,
s
=
a
.
watch_num
&&
a
.
watch_num
>
0
?
"【"
+
a
.
watch_num
+
"个课时】"
:
""
;
return
a
.
invite_type
=
""
+
a
.
invite_type
+
n
,
a
.
goods_name
=
""
+
o
+
a
.
goods_name
+
s
,
a
}),
e
.
list
[
0
])
e
.
propertyList
.
push
(
a
);
e
.
width
=
document
.
documentElement
.
clientWidth
-
200
}
t
.
list
&&
0
===
t
.
list
.
length
&&
(
e
.
list
=
[])}
else
e
.
list
=
[]})}},
mounted
:
function
(){
this
.
getChannelTransList
(),
this
.
getGoodsOption
()}},
c
=
{
render
:
function
(){
var
e
=
this
,
t
=
e
.
$createElement
,
a
=
e
.
_self
.
_c
||
t
;
return
a
(
"div"
,{
staticClass
:
"channel-trans-list"
},[
a
(
"el-form"
,{
ref
:
"searchFrom"
,
attrs
:{
model
:
e
.
searchFrom
,
"label-width"
:
"100px"
,
inline
:
""
}},[
a
(
"el-form-item"
,{
attrs
:{
label
:
"进量日期"
}},[
a
(
"el-date-picker"
,{
attrs
:{
type
:
"datetimerange"
,
"range-separator"
:
"至"
,
"value-format"
:
"yyyy-MM-dd HH:mm:ss"
,
"start-placeholder"
:
"开始日期"
,
"end-placeholder"
:
"结束日期"
,
"picker-options"
:{
shortcuts
:[
e
.
today
,
e
.
yesterday
,
e
.
last7Day
,
e
.
last30Day
]},
"default-time"
:[
"00:00:00"
,
"23:59:59"
]},
on
:{
change
:
e
.
getChannelTransList
},
model
:{
value
:
e
.
searchFrom
.
payTime
,
callback
:
function
(
t
){
e
.
$set
(
e
.
searchFrom
,
"payTime"
,
t
)},
expression
:
"searchFrom.payTime"
}})],
1
),
e
.
_v
(
" "
),
a
(
"el-form-item"
,{
attrs
:{
label
:
"渠道code"
}},[
a
(
"el-input"
,{
staticStyle
:{
width
:
"110px"
},
model
:{
value
:
e
.
searchFrom
.
invite_type
,
callback
:
function
(
t
){
e
.
$set
(
e
.
searchFrom
,
"invite_type"
,
t
)},
expression
:
"searchFrom.invite_type"
}})],
1
),
e
.
_v
(
" "
),
a
(
"el-form-item"
,{
attrs
:{
label
:
"商品名称"
}},[
a
(
"el-select"
,{
staticStyle
:{
width
:
"150px"
},
attrs
:{
filterable
:
""
,
placeholder
:
"请选择"
,
clearable
:
""
},
on
:{
change
:
e
.
getChannelTransList
},
model
:{
value
:
e
.
searchFrom
.
goods_id
,
callback
:
function
(
t
){
e
.
$set
(
e
.
searchFrom
,
"goods_id"
,
t
)},
expression
:
"searchFrom.goods_id"
}},
e
.
_l
(
e
.
goodList
,
function
(
t
,
r
){
return
a
(
"el-option"
,{
key
:
r
,
attrs
:{
label
:
e
.
_f
(
"filterGoods"
)(
t
),
value
:
t
.
id
}})}))],
1
),
e
.
_v
(
" "
),
a
(
"el-form-item"
,{
attrs
:{
label
:
"商品课时数"
}},[
a
(
"el-select"
,{
staticStyle
:{
width
:
"150px"
},
attrs
:{
filterable
:
""
,
clearable
:
""
,
placeholder
:
"请选择"
},
on
:{
change
:
e
.
selectChange
},
model
:{
value
:
e
.
searchFrom
.
watch_num
,
callback
:
function
(
t
){
e
.
$set
(
e
.
searchFrom
,
"watch_num"
,
t
)},
expression
:
"searchFrom.watch_num"
}},[
a
(
"el-option"
,{
attrs
:{
value
:
""
,
label
:
"请选择"
}}),
e
.
_v
(
" "
),
e
.
_l
(
e
.
watchList
,
function
(
e
,
t
){
return
a
(
"el-option"
,{
key
:
t
,
attrs
:{
label
:
e
.
title
,
value
:
e
.
id
}})})],
2
)],
1
),
e
.
_v
(
" "
),
a
(
"el-form-item"
,[
a
(
"div"
,{
staticClass
:
"flexRow"
},[
a
(
"el-button"
,{
attrs
:{
type
:
"primary"
,
plain
:
""
},
on
:{
click
:
e
.
seachData
}},[
e
.
_v
(
"搜索"
)])],
1
)])],
1
),
e
.
_v
(
" "
),
a
(
"el-table"
,{
style
:{
width
:
e
.
width
+
"px"
},
attrs
:{
border
:
""
,
"span-method"
:
e
.
objectSpanMethod
,
data
:
e
.
list
,
fixed
:
""
},
on
:{
"sort-change"
:
e
.
sortMethod
}},[
a
(
"el-table-column"
,{
attrs
:{
prop
:
"is_other"
,
label
:
"渠道来源"
},
scopedSlots
:
e
.
_u
([{
key
:
"default"
,
fn
:
function
(
t
){
return
[
e
.
_v
(
"
\n
"
+
e
.
_s
(
0
==
t
.
row
.
is_other
?
"内部"
:
"外部"
)
+
"
\n
"
)]}}])}),
e
.
_v
(
" "
),
a
(
"el-table-column"
,{
attrs
:{
prop
:
"invite_type_name"
,
label
:
"渠道类别"
}}),
e
.
_v
(
" "
),
a
(
"el-table-column"
,{
attrs
:{
prop
:
"invite_type"
,
label
:
"渠道类型"
}}),
e
.
_v
(
" "
),
a
(
"el-table-column"
,{
attrs
:{
prop
:
"goods_name"
,
label
:
"商品名称"
,
width
:
"180"
}}),
e
.
_v
(
" "
),
a
(
"el-table-column"
,{
attrs
:{
prop
:
"sum_total_num"
,
label
:
"订单数"
,
"render-header"
:
e
.
rendertip
,
sortable
:
"custom"
}}),
e
.
_v
(
" "
),
a
(
"el-table-column"
,{
attrs
:{
prop
:
"sum_class_num"
,
label
:
"到班数"
,
"render-header"
:
e
.
rendertip
,
sortable
:
"custom"
}}),
e
.
_v
(
" "
),
a
(
"el-table-column"
,{
attrs
:{
prop
:
"class_num_except_total_num"
,
label
:
"到班率"
,
"render-header"
:
e
.
rendertip
,
sortable
:
"custom"
},
scopedSlots
:
e
.
_u
([{
key
:
"default"
,
fn
:
function
(
t
){
return
[
e
.
_v
(
"
\n
"
+
e
.
_s
(
t
.
row
.
class_num_except_total_num
)
+
"%
\n
"
)]}}])}),
e
.
_v
(
" "
),
a
(
"el-table-column"
,{
attrs
:{
prop
:
"sum_friend_num"
,
label
:
"好友数"
,
"render-header"
:
e
.
rendertip
,
sortable
:
"custom"
}}),
e
.
_v
(
" "
),
a
(
"el-table-column"
,{
attrs
:{
prop
:
"friend_num_except_total_num"
,
label
:
"好友率"
,
"render-header"
:
e
.
rendertip
,
sortable
:
"custom"
},
scopedSlots
:
e
.
_u
([{
key
:
"default"
,
fn
:
function
(
t
){
return
[
e
.
_v
(
"
\n
"
+
e
.
_s
(
t
.
row
.
friend_num_except_total_num
)
+
"%
\n
"
)]}}])}),
e
.
_v
(
" "
),
a
(
"el-table-column"
,{
attrs
:{
prop
:
"sum_come_num"
,
label
:
"到课数"
,
"render-header"
:
e
.
rendertip
,
sortable
:
"custom"
}}),
e
.
_v
(
" "
),
a
(
"el-table-column"
,{
attrs
:{
prop
:
"come_num_except_total_num"
,
label
:
"到课率"
,
"render-header"
:
e
.
rendertip
,
sortable
:
"custom"
},
scopedSlots
:
e
.
_u
([{
key
:
"default"
,
fn
:
function
(
t
){
return
[
e
.
_v
(
"
\n
"
+
e
.
_s
(
t
.
row
.
come_num_except_total_num
)
+
"%
\n
"
)]}}])}),
e
.
_v
(
" "
),
a
(
"el-table-column"
,{
attrs
:{
prop
:
"sum_buy_num"
,
label
:
"转化人数"
,
"render-header"
:
e
.
rendertip
,
sortable
:
"custom"
}}),
e
.
_v
(
" "
),
a
(
"el-table-column"
,{
attrs
:{
prop
:
"sum_buy_num_except_total_num"
,
label
:
"转化率"
,
"render-header"
:
e
.
rendertip
,
sortable
:
"custom"
},
scopedSlots
:
e
.
_u
([{
key
:
"default"
,
fn
:
function
(
t
){
return
[
e
.
_v
(
"
\n
"
+
e
.
_s
(
t
.
row
.
sum_buy_num_except_total_num
)
+
"%
\n
"
)]}}])}),
e
.
_v
(
" "
),
a
(
"el-table-column"
,{
attrs
:{
prop
:
"sum_one_buy_num"
,
label
:
"一年课购买人数"
,
"render-header"
:
e
.
rendertip
,
sortable
:
"custom"
}}),
e
.
_v
(
" "
),
a
(
"el-table-column"
,{
attrs
:{
prop
:
"sum_two_buy_num"
,
label
:
"两年课购买人数"
,
"render-header"
:
e
.
rendertip
,
sortable
:
"custom"
}}),
e
.
_v
(
" "
),
a
(
"el-table-column"
,{
attrs
:{
prop
:
"sum_buy_money"
,
label
:
"转化总额"
,
"render-header"
:
e
.
rendertip
,
sortable
:
"custom"
}}),
e
.
_v
(
" "
),
a
(
"el-table-column"
,{
attrs
:{
prop
:
"sum_one_buy_money"
,
label
:
"一年课转化金额"
,
"render-header"
:
e
.
rendertip
,
sortable
:
"custom"
}}),
e
.
_v
(
" "
),
a
(
"el-table-column"
,{
attrs
:{
prop
:
"sum_two_buy_money"
,
label
:
"两年课转化金额"
,
"render-header"
:
e
.
rendertip
,
sortable
:
"custom"
}})],
1
),
e
.
_v
(
" "
),
a
(
"page"
,{
attrs
:{
nowPage
:
e
.
nowPage
,
total
:
e
.
total
,
limit
:
e
.
limit
},
on
:{
pageChange
:
e
.
onPageChange
,
sizeChange
:
e
.
onSizeChange
}})],
1
)},
staticRenderFns
:[]};
var
m
=
a
(
"VU/8"
)(
l
,
c
,
!
1
,
function
(
e
){
a
(
"cS7T"
)},
null
,
null
);
t
.
default
=
m
.
exports
},
cS7T
:
function
(
e
,
t
){}});
\ No newline at end of file
dist/static/js/43.c3c8d6440aa033674fa6.js
0 → 100644
View file @
3f11e567
webpackJsonp
([
43
],{
"21mC"
:
function
(
e
,
t
,
r
){
"use strict"
;
var
a
;
function
n
(
e
,
t
,
r
){
return
t
in
e
?
Object
.
defineProperty
(
e
,
t
,{
value
:
r
,
enumerable
:
!
0
,
configurable
:
!
0
,
writable
:
!
0
}):
e
[
t
]
=
r
,
e
}
r
.
d
(
t
,
"a"
,
function
(){
return
o
});
var
o
=
(
n
(
a
=
{
"订单数"
:
"支付成功且未全额退款的订单数量(*月课、季课全勤返现完成的订单也会排除)"
,
"到班数"
:
"进入系统课程期数班级的学员数量"
,
"到班率"
:
"到班数/订单数"
,
"好友数"
:
"班主任在系统内标注用已成为微信好友的户数量,包含老师主动添加数和用户主动添加数"
,
"到课数"
:
"浏览过一次及以上课包的人数"
,
"好友率"
:
"好友数/订单数"
},
"到课数"
,
"浏览过一次及以上课包的人数"
),
n
(
a
,
"到课率"
,
"到课数/订单数"
),
n
(
a
,
"转化人数"
,
"购买一年课、两年课且未全额退款的人数(*个别退课但未全额退款的学员包含在内)"
),
n
(
a
,
"转化率"
,
"转化人数/订单数"
),
n
(
a
,
"一年课购买人数"
,
"购买一年课且未全额退款的人数"
),
n
(
a
,
"两年课购买人数"
,
"购买两年课且未全额退款的人数"
),
n
(
a
,
"转化总额"
,
"一年课和两年课的转化金额合计"
),
n
(
a
,
"一年课转化金额"
,
"购买一年课且未全额退款的订单实付金额(云集订单为商品金额,不扣除优惠券、抵现)"
),
n
(
a
,
"两年课转化金额"
,
"购买两年课且未全额退款的订单实付金额(云集订单为商品金额,不扣除优惠券、抵现)"
),
a
)},
"VSD/"
:
function
(
e
,
t
){},
h0PA
:
function
(
e
,
t
,
r
){
"use strict"
;
Object
.
defineProperty
(
t
,
"__esModule"
,{
value
:
!
0
});
var
a
=
r
(
"CCn6"
),
n
=
r
(
"+TkF"
),
o
=
r
(
"21mC"
);
r
(
"sf/l"
);
function
i
(
e
,
t
,
r
){
return
t
in
e
?
Object
.
defineProperty
(
e
,
t
,{
value
:
r
,
enumerable
:
!
0
,
configurable
:
!
0
,
writable
:
!
0
}):
e
[
t
]
=
r
,
e
}
var
s
=
{
name
:
"channelConversionList"
,
data
:
function
(){
var
e
,
t
=
this
;
return
i
(
e
=
{
width
:
0
,
nowPage
:
1
,
total
:
0
,
limit
:
20
,
list
:[],
goods_id
:
null
,
teacherList
:[],
goodsList
:[],
periodList
:[]},
"total"
,
0
),
i
(
e
,
"today"
,{
text
:
"今天"
,
onClick
:
function
(){
t
.
searchFrom
.
payTime
=
[
t
.
formatTime
(
new
Date
)
+
" 00:00:00"
,
t
.
formatTime
(
new
Date
)
+
" 23:59:59"
]}}),
i
(
e
,
"yesterday"
,{
text
:
"昨天"
,
onClick
:
function
(){
var
e
=
t
.
formatTime
(
new
Date
((
new
Date
).
getTime
()
-
864
e5
));
t
.
searchFrom
.
payTime
=
[
e
+
" 00:00:00"
,
e
+
" 23:59:59"
]}}),
i
(
e
,
"last30Day"
,{
text
:
"过去30天"
,
onClick
:
function
(){
var
e
=
t
.
formatTime
(
new
Date
((
new
Date
).
getTime
()
-
2592
e6
));
t
.
searchFrom
.
payTime
=
[
e
+
" 00:00:00"
,
t
.
formatTime
(
new
Date
)
+
" 23:59:59"
]}}),
i
(
e
,
"last7Day"
,{
text
:
"过去7天"
,
onClick
:
function
(){
var
e
=
t
.
formatTime
(
new
Date
((
new
Date
).
getTime
()
-
6048
e5
));
t
.
searchFrom
.
payTime
=
[
e
+
" 00:00:00"
,
t
.
formatTime
(
new
Date
)
+
" 23:59:59"
]}}),
i
(
e
,
"propertyList"
,[]),
i
(
e
,
"spanArr"
,[]),
i
(
e
,
"contentSpanArr"
,[]),
i
(
e
,
"searchFrom"
,{
payTime
:[],
start_at
:
""
,
end_at
:
""
,
invite_type
:
""
,
invite_name
:
""
,
watch_num
:
""
,
periods_id
:
""
,
squad
:
""
,
teacher_id
:
""
,
periods_title
:
""
}),
i
(
e
,
"propertyList"
,[]),
i
(
e
,
"watchList"
,[{
id
:
0
,
title
:
5
},{
id
:
1
,
title
:
6
},{
id
:
2
,
title
:
10
},{
id
:
3
,
title
:
20
}]),
i
(
e
,
"goodList"
,[]),
e
},
filters
:{
filterGoods
:
function
(
e
){
return
"["
+
e
.
id
+
"]["
+
n
.
h
[
e
.
goods_type
]
+
"]【"
+
e
.
current_price
/
100
+
"元】"
+
e
.
name
}},
components
:{
page
:
r
(
"kmJW"
).
a
},
methods
:{
rendertip
:
function
(
e
,
t
){
var
r
=
t
.
column
;
return
e
(
"span"
,[
e
(
"span"
,
r
.
label
),
e
(
"el-tooltip"
,{
props
:{
effect
:
"dark"
,
content
:
o
.
a
[
r
.
label
],
placement
:
"top"
}},[
e
(
"i"
,{
class
:
"el-icon-question"
,
style
:
"color:#409eff;display:block;"
})])])},
sortMethod
:
function
(
e
){
this
.
searchFrom
.
sort_key
=
e
.
prop
,
"ascending"
==
e
.
order
?
this
.
searchFrom
.
sort_value
=
"asc"
:
this
.
searchFrom
.
sort_value
=
"dasc"
,
this
.
getChannelTransList
()},
getGoodsOption
:
function
(){
var
e
=
this
;
Object
(
a
.
_59
)({
page
:
1
,
limit
:
100
,
goods_type
:
"1,2"
}).
then
(
function
(
t
){
e
.
goodList
=
t
.
list
,
console
.
log
(
e
.
goodList
,
176
)})},
seachData
:
function
(){
this
.
total
=
0
,
this
.
nowPage
=
1
,
this
.
getChannelTransList
()},
onPeriodChange
:
function
(
e
){
var
t
=
""
;
t
=
e
.
length
>
1
?
e
.
join
(
","
):
e
[
0
],
this
.
periods_id
=
t
,
console
.
log
(
t
)},
objectSpanMethod
:
function
(
e
){},
handleItemChange
:
function
(
e
){
var
t
=
this
;
getPeriodsApi
({
goods_id
:
e
[
0
],
limit
:
100
}).
then
(
function
(
r
){
r
.
list
.
forEach
(
function
(
e
){
e
.
name
=
e
.
title
}),
t
.
goodsList
.
find
(
function
(
t
){
return
t
.
id
===
e
[
0
]}).
children
=
r
.
list
})},
changePeriods
:
function
(
e
){
if
(
e
.
length
>
1
){
this
.
goods_id
=
e
[
0
];
var
t
=
this
.
goodsList
.
find
(
function
(
t
){
return
t
.
id
===
e
[
0
]});
this
.
periods
=
t
.
children
.
find
(
function
(
t
){
return
t
.
id
===
e
[
1
]}),
this
.
searchFrom
.
periods_id
=
this
.
periods
.
id
,
this
.
getChannelTransList
()}},
changeTeacher
:
function
(
e
){
this
.
searchFrom
.
teacher_id
=
e
,
this
.
getChannelTransList
()},
selectChange
:
function
(
e
){
this
.
searchFrom
.
watch_num
=
this
.
watchList
[
e
].
title
,
this
.
getChannelTransList
()},
formatTime
:
function
(
e
){
var
t
=
e
.
getFullYear
(),
r
=
e
.
getMonth
()
+
1
;
r
<
10
&&
(
r
=
"0"
+
r
);
var
a
=
e
.
getDate
();
return
a
<
10
&&
(
a
=
"0"
+
a
),
t
+
"-"
+
r
+
"-"
+
a
},
onPageChange
:
function
(
e
){
this
.
nowPage
=
e
,
this
.
getChannelTransList
()},
onSizeChange
:
function
(
e
){
this
.
nowPage
=
1
,
this
.
limit
=
e
,
this
.
getChannelTransList
()},
getPeriodsOtherList
:
function
(){
var
e
=
this
;
getPeriodsOtherListApi
({
limit
:
1
e3
,
page
:
1
,
max_watch_num
:
20
}).
then
(
function
(
t
){
e
.
periodList
=
t
.
list
})},
getChannelTransList
:
function
(){
var
e
=
this
,
t
=
{
limit
:
this
.
limit
,
page
:
this
.
nowPage
};
this
.
searchFrom
.
invite_type
&&
(
t
.
invite_type
=
this
.
searchFrom
.
invite_type
),
this
.
searchFrom
.
goods_id
&&
(
t
.
goods_id
=
this
.
searchFrom
.
goods_id
),
this
.
searchFrom
.
sort_value
&&
(
t
.
sort_value
=
this
.
searchFrom
.
sort_value
,
t
.
sort_key
=
this
.
searchFrom
.
sort_key
),
this
.
searchFrom
.
payTime
&&
this
.
searchFrom
.
payTime
.
length
>
0
&&
(
this
.
searchFrom
.
payTime
[
0
]
&&
this
.
searchFrom
.
payTime
[
0
].
length
>
0
&&
(
this
.
searchFrom
.
start_at
=
this
.
searchFrom
.
payTime
[
0
],
t
.
start_at
=
this
.
searchFrom
.
start_at
),
this
.
searchFrom
.
payTime
[
1
]
&&
this
.
searchFrom
.
payTime
[
1
].
length
>
0
&&
(
this
.
searchFrom
.
end_at
=
this
.
searchFrom
.
payTime
[
1
],
t
.
end_at
=
this
.
searchFrom
.
end_at
)),
Object
(
a
.
_42
)(
t
).
then
(
function
(
t
){
if
(
t
){
if
(
t
.
list
&&
t
.
list
.
length
>
0
){
for
(
var
r
in
e
.
total
=
t
.
total
,
e
.
list
=
t
.
list
.
map
(
function
(
r
,
a
){
r
.
index
=
a
,
0
==
a
?(
e
.
spanArr
.
push
(
1
),
e
.
pos
=
0
):
r
.
cur_date
==
t
.
list
[
a
-
1
].
cur_date
?(
e
.
spanArr
[
e
.
pos
]
+=
1
,
e
.
spanArr
.
push
(
0
)):(
e
.
spanArr
.
push
(
1
),
e
.
pos
=
a
);
var
n
=
r
.
invite_name
&&
r
.
invite_name
.
length
>
0
?
"("
+
r
.
invite_name
+
")"
:
""
,
o
=
r
.
goods_id
&&
r
.
goods_id
>
0
?
"【"
+
r
.
goods_id
+
"】"
:
""
,
i
=
r
.
watch_num
&&
r
.
watch_num
>
0
?
"【"
+
r
.
watch_num
+
"个课时】"
:
""
;
return
r
.
invite_type
=
""
+
r
.
invite_type
+
n
,
r
.
goods_name
=
""
+
o
+
r
.
goods_name
+
i
,
r
}),
e
.
list
[
0
])
e
.
propertyList
.
push
(
r
);
e
.
width
=
document
.
documentElement
.
clientWidth
-
200
}
t
.
list
&&
0
===
t
.
list
.
length
&&
(
e
.
list
=
[])}
else
e
.
list
=
[]})}},
mounted
:
function
(){
this
.
getChannelTransList
(),
this
.
getGoodsOption
()}},
l
=
{
render
:
function
(){
var
e
=
this
,
t
=
e
.
$createElement
,
r
=
e
.
_self
.
_c
||
t
;
return
r
(
"div"
,{
staticClass
:
"channel-trans-list"
},[
r
(
"el-form"
,{
ref
:
"searchFrom"
,
attrs
:{
model
:
e
.
searchFrom
,
"label-width"
:
"100px"
,
inline
:
""
}},[
r
(
"el-form-item"
,{
attrs
:{
label
:
"进量日期"
}},[
r
(
"el-date-picker"
,{
attrs
:{
type
:
"datetimerange"
,
"range-separator"
:
"至"
,
"value-format"
:
"yyyy-MM-dd HH:mm:ss"
,
"start-placeholder"
:
"开始日期"
,
"end-placeholder"
:
"结束日期"
,
"picker-options"
:{
shortcuts
:[
e
.
today
,
e
.
yesterday
,
e
.
last7Day
,
e
.
last30Day
]},
"default-time"
:[
"00:00:00"
,
"23:59:59"
]},
on
:{
change
:
e
.
getChannelTransList
},
model
:{
value
:
e
.
searchFrom
.
payTime
,
callback
:
function
(
t
){
e
.
$set
(
e
.
searchFrom
,
"payTime"
,
t
)},
expression
:
"searchFrom.payTime"
}})],
1
),
e
.
_v
(
" "
),
r
(
"el-form-item"
,{
attrs
:{
label
:
"渠道code"
}},[
r
(
"el-input"
,{
staticStyle
:{
width
:
"110px"
},
model
:{
value
:
e
.
searchFrom
.
invite_type
,
callback
:
function
(
t
){
e
.
$set
(
e
.
searchFrom
,
"invite_type"
,
t
)},
expression
:
"searchFrom.invite_type"
}})],
1
),
e
.
_v
(
" "
),
r
(
"el-form-item"
,{
attrs
:{
label
:
"商品名称"
}},[
r
(
"el-select"
,{
staticStyle
:{
width
:
"150px"
},
attrs
:{
filterable
:
""
,
placeholder
:
"请选择"
,
clearable
:
""
},
on
:{
change
:
e
.
getChannelTransList
},
model
:{
value
:
e
.
searchFrom
.
goods_id
,
callback
:
function
(
t
){
e
.
$set
(
e
.
searchFrom
,
"goods_id"
,
t
)},
expression
:
"searchFrom.goods_id"
}},
e
.
_l
(
e
.
goodList
,
function
(
t
,
a
){
return
r
(
"el-option"
,{
key
:
a
,
attrs
:{
label
:
e
.
_f
(
"filterGoods"
)(
t
),
value
:
t
.
id
}})}))],
1
),
e
.
_v
(
" "
),
r
(
"el-form-item"
,[
r
(
"div"
,{
staticClass
:
"flexRow"
},[
r
(
"el-button"
,{
attrs
:{
type
:
"primary"
,
plain
:
""
},
on
:{
click
:
e
.
seachData
}},[
e
.
_v
(
"搜索"
)])],
1
)])],
1
),
e
.
_v
(
" "
),
r
(
"el-table"
,{
style
:{
width
:
e
.
width
+
"px"
},
attrs
:{
border
:
""
,
"span-method"
:
e
.
objectSpanMethod
,
data
:
e
.
list
,
fixed
:
""
},
on
:{
"sort-change"
:
e
.
sortMethod
}},[
r
(
"el-table-column"
,{
attrs
:{
prop
:
"is_other"
,
label
:
"渠道来源"
},
scopedSlots
:
e
.
_u
([{
key
:
"default"
,
fn
:
function
(
t
){
return
[
e
.
_v
(
e
.
_s
(
0
==
t
.
row
.
is_other
?
"内部"
:
"外部"
))]}}])}),
e
.
_v
(
" "
),
r
(
"el-table-column"
,{
attrs
:{
prop
:
"invite_type_name"
,
label
:
"渠道类别"
}}),
e
.
_v
(
" "
),
r
(
"el-table-column"
,{
attrs
:{
prop
:
"invite_type"
,
label
:
"渠道类型"
}}),
e
.
_v
(
" "
),
r
(
"el-table-column"
,{
attrs
:{
prop
:
"sum_total_num"
,
label
:
"订单数"
,
"render-header"
:
e
.
rendertip
,
sortable
:
"custom"
}}),
e
.
_v
(
" "
),
r
(
"el-table-column"
,{
attrs
:{
prop
:
"sum_class_num"
,
label
:
"到班数"
,
"render-header"
:
e
.
rendertip
,
sortable
:
"custom"
}}),
e
.
_v
(
" "
),
r
(
"el-table-column"
,{
attrs
:{
prop
:
"class_num_except_total_num"
,
label
:
"到班率"
,
"render-header"
:
e
.
rendertip
,
sortable
:
"custom"
},
scopedSlots
:
e
.
_u
([{
key
:
"default"
,
fn
:
function
(
t
){
return
[
e
.
_v
(
e
.
_s
(
t
.
row
.
class_num_except_total_num
)
+
"%"
)]}}])}),
e
.
_v
(
" "
),
r
(
"el-table-column"
,{
attrs
:{
prop
:
"sum_friend_num"
,
label
:
"好友数"
,
"render-header"
:
e
.
rendertip
,
sortable
:
"custom"
}}),
e
.
_v
(
" "
),
r
(
"el-table-column"
,{
attrs
:{
prop
:
"friend_num_except_total_num"
,
label
:
"好友率"
,
"render-header"
:
e
.
rendertip
,
sortable
:
"custom"
},
scopedSlots
:
e
.
_u
([{
key
:
"default"
,
fn
:
function
(
t
){
return
[
e
.
_v
(
e
.
_s
(
t
.
row
.
friend_num_except_total_num
)
+
"%"
)]}}])}),
e
.
_v
(
" "
),
r
(
"el-table-column"
,{
attrs
:{
prop
:
"sum_come_num"
,
label
:
"到课数"
,
"render-header"
:
e
.
rendertip
,
sortable
:
"custom"
}}),
e
.
_v
(
" "
),
r
(
"el-table-column"
,{
attrs
:{
prop
:
"come_num_except_total_num"
,
label
:
"到课率"
,
"render-header"
:
e
.
rendertip
,
sortable
:
"custom"
},
scopedSlots
:
e
.
_u
([{
key
:
"default"
,
fn
:
function
(
t
){
return
[
e
.
_v
(
e
.
_s
(
t
.
row
.
come_num_except_total_num
)
+
"%"
)]}}])}),
e
.
_v
(
" "
),
r
(
"el-table-column"
,{
attrs
:{
prop
:
"sum_buy_num"
,
label
:
"转化人数"
,
"render-header"
:
e
.
rendertip
,
sortable
:
"custom"
}}),
e
.
_v
(
" "
),
r
(
"el-table-column"
,{
attrs
:{
prop
:
"sum_buy_num_except_total_num"
,
label
:
"转化率"
,
"render-header"
:
e
.
rendertip
,
sortable
:
"custom"
},
scopedSlots
:
e
.
_u
([{
key
:
"default"
,
fn
:
function
(
t
){
return
[
e
.
_v
(
e
.
_s
(
t
.
row
.
sum_buy_num_except_total_num
)
+
"%"
)]}}])}),
e
.
_v
(
" "
),
r
(
"el-table-column"
,{
attrs
:{
prop
:
"sum_one_buy_num"
,
width
:
"120"
,
label
:
"一年课购买人数"
,
"render-header"
:
e
.
rendertip
,
sortable
:
"custom"
}}),
e
.
_v
(
" "
),
r
(
"el-table-column"
,{
attrs
:{
prop
:
"sum_two_buy_num"
,
width
:
"120"
,
label
:
"两年课购买人数"
,
"render-header"
:
e
.
rendertip
,
sortable
:
"custom"
}}),
e
.
_v
(
" "
),
r
(
"el-table-column"
,{
attrs
:{
prop
:
"sum_one_buy_money"
,
label
:
"一年课转化金额"
,
"render-header"
:
e
.
rendertip
,
sortable
:
"custom"
}}),
e
.
_v
(
" "
),
r
(
"el-table-column"
,{
attrs
:{
prop
:
"sum_two_buy_money"
,
label
:
"两年课转化金额"
,
"render-header"
:
e
.
rendertip
,
sortable
:
"custom"
}})],
1
),
e
.
_v
(
" "
),
r
(
"page"
,{
attrs
:{
nowPage
:
e
.
nowPage
,
total
:
e
.
total
,
limit
:
e
.
limit
},
on
:{
pageChange
:
e
.
onPageChange
,
sizeChange
:
e
.
onSizeChange
}})],
1
)},
staticRenderFns
:[]};
var
c
=
r
(
"VU/8"
)(
s
,
l
,
!
1
,
function
(
e
){
r
(
"VSD/"
)},
null
,
null
);
t
.
default
=
c
.
exports
}});
\ No newline at end of file
dist/static/js/manifest.00676b92d72e97be718b.js
0 → 100644
View file @
3f11e567
!
function
(
e
){
var
c
=
window
.
webpackJsonp
;
window
.
webpackJsonp
=
function
(
a
,
d
,
n
){
for
(
var
r
,
t
,
o
,
i
=
0
,
u
=
[];
i
<
a
.
length
;
i
++
)
t
=
a
[
i
],
f
[
t
]
&&
u
.
push
(
f
[
t
][
0
]),
f
[
t
]
=
0
;
for
(
r
in
d
)
Object
.
prototype
.
hasOwnProperty
.
call
(
d
,
r
)
&&
(
e
[
r
]
=
d
[
r
]);
for
(
c
&&
c
(
a
,
d
,
n
);
u
.
length
;)
u
.
shift
()();
if
(
n
)
for
(
i
=
0
;
i
<
n
.
length
;
i
++
)
o
=
b
(
b
.
s
=
n
[
i
]);
return
o
};
var
a
=
{},
f
=
{
69
:
0
};
function
b
(
c
){
if
(
a
[
c
])
return
a
[
c
].
exports
;
var
f
=
a
[
c
]
=
{
i
:
c
,
l
:
!
1
,
exports
:{}};
return
e
[
c
].
call
(
f
.
exports
,
f
,
f
.
exports
,
b
),
f
.
l
=!
0
,
f
.
exports
}
b
.
e
=
function
(
e
){
var
c
=
f
[
e
];
if
(
0
===
c
)
return
new
Promise
(
function
(
e
){
e
()});
if
(
c
)
return
c
[
2
];
var
a
=
new
Promise
(
function
(
a
,
b
){
c
=
f
[
e
]
=
[
a
,
b
]});
c
[
2
]
=
a
;
var
d
=
document
.
getElementsByTagName
(
"head"
)[
0
],
n
=
document
.
createElement
(
"script"
);
n
.
type
=
"text/javascript"
,
n
.
charset
=
"utf-8"
,
n
.
async
=!
0
,
n
.
timeout
=
12
e4
,
b
.
nc
&&
n
.
setAttribute
(
"nonce"
,
b
.
nc
),
n
.
src
=
b
.
p
+
"static/js/"
+
e
+
"."
+
{
0
:
"e873fe1445eecfdd8b41"
,
1
:
"9ca15b2cd835acbf3996"
,
2
:
"6e1cb6232134de4052f1"
,
3
:
"af3d62cd45bd72d7307d"
,
4
:
"238867bab3a2bdc17f6c"
,
5
:
"852cb46fc629c79ddc4a"
,
6
:
"87cc5d3d74bf551e2118"
,
7
:
"e9ef802a955a636f31cf"
,
8
:
"48f38322a9460d5f8278"
,
9
:
"42e8ba54f322dc10e413"
,
10
:
"a238853b1fa6c77378ca"
,
11
:
"1b4817c499e9fa7de24c"
,
12
:
"d6f5911bee9929689e3b"
,
13
:
"17db775913681bdbc154"
,
14
:
"3992558942211f2fc0fe"
,
15
:
"85a81db8f6419820a428"
,
16
:
"97ac779edc0504eb6fb2"
,
17
:
"ba1377397ade15fe0eba"
,
18
:
"5d9ad60beaf0433331d4"
,
19
:
"a6518c4c60ba6dd4975f"
,
20
:
"e0e156cc76047c7ae7c4"
,
21
:
"3a86be592c00eba7e0a4"
,
22
:
"f0759a003a4ce170bba3"
,
23
:
"ef1b27caebc2df254db1"
,
24
:
"a54ed0d812d1b4a94fb0"
,
25
:
"14c2592d91ff7403723d"
,
26
:
"aeef8c99b6902baafa89"
,
27
:
"570fad63025264f72f4e"
,
28
:
"03b295eef2aaf7105561"
,
29
:
"b99b833ddc9b9402bb10"
,
30
:
"15037abbbdbc5b686059"
,
31
:
"1c3f1b652018be655519"
,
32
:
"41e8421af8fa0a679b5f"
,
33
:
"6fbbde3c7f739071c7b8"
,
34
:
"aa76273377d065618bbb"
,
35
:
"d39edd09c62a75409b8d"
,
36
:
"b7d01ad3dd58ba9ecb57"
,
37
:
"9416f3204220b4455acc"
,
38
:
"e36a5d7a23ebf978dc59"
,
39
:
"efd14ef621ca6c12f712"
,
40
:
"672bfec1ef4b9cf6d2d7"
,
41
:
"c13e1ce397130139919a"
,
42
:
"84e8adf1f8af495598c5"
,
43
:
"c3c8d6440aa033674fa6"
,
44
:
"693c7ea53bd903c67c2d"
,
45
:
"840f7455cd16a9240f98"
,
46
:
"16c019458f0dddf31b87"
,
47
:
"db37df37e9f27c7ea39d"
,
48
:
"a853b1b9a91fcc73f287"
,
49
:
"c625b30373d294eea57e"
,
50
:
"9baf5814b410298452db"
,
51
:
"8dabef03a7b89a2ee527"
,
52
:
"9f462ec14b124b6c88b0"
,
53
:
"7b6da8726b816b191f5f"
,
54
:
"e8a3ee47f6e07b633352"
,
55
:
"66f703c8472dc70e4cbc"
,
56
:
"94fbfdb5ec67a7f8e0d3"
,
57
:
"1085749382f7829b2dd7"
,
58
:
"17486c8f57622a61def1"
,
59
:
"5eb48cd47e72f50753bf"
,
60
:
"ec57c2df8d83599ebec2"
,
61
:
"a90df80c2107d86bccd1"
,
62
:
"b4bc78e1a33061fec48b"
,
63
:
"6afc14a102a04334b255"
,
64
:
"399f8679c64d6c518c88"
,
65
:
"6a74f4cbe19933a7a3cd"
,
66
:
"0e0d2f0d4fd4916a2f91"
}[
e
]
+
".js"
;
var
r
=
setTimeout
(
t
,
12
e4
);
function
t
(){
n
.
onerror
=
n
.
onload
=
null
,
clearTimeout
(
r
);
var
c
=
f
[
e
];
0
!==
c
&&
(
c
&&
c
[
1
](
new
Error
(
"Loading chunk "
+
e
+
" failed."
)),
f
[
e
]
=
void
0
)}
return
n
.
onerror
=
n
.
onload
=
t
,
d
.
appendChild
(
n
),
a
},
b
.
m
=
e
,
b
.
c
=
a
,
b
.
d
=
function
(
e
,
c
,
a
){
b
.
o
(
e
,
c
)
||
Object
.
defineProperty
(
e
,
c
,{
configurable
:
!
1
,
enumerable
:
!
0
,
get
:
a
})},
b
.
n
=
function
(
e
){
var
c
=
e
&&
e
.
__esModule
?
function
(){
return
e
.
default
}:
function
(){
return
e
};
return
b
.
d
(
c
,
"a"
,
c
),
c
},
b
.
o
=
function
(
e
,
c
){
return
Object
.
prototype
.
hasOwnProperty
.
call
(
e
,
c
)},
b
.
p
=
"/"
,
b
.
oe
=
function
(
e
){
throw
console
.
error
(
e
),
e
}}([]);
\ No newline at end of file
src/components/conversionList/channelGoodsConversionList.vue
View file @
3f11e567
...
...
@@ -104,9 +104,9 @@
{{
scope
.
row
.
sum_buy_num_except_total_num
}}
%
</
template
>
</el-table-column>
<el-table-column
prop=
"sum_buy_money"
label=
"转化总额"
:render-header=
"rendertip"
sortable=
'custom'
></el-table-column>
<el-table-column
prop=
"sum_one_buy_num"
label=
"一年课购买人数"
:render-header=
"rendertip"
sortable=
'custom'
></el-table-column>
<el-table-column
prop=
"sum_two_buy_num"
label=
"两年课购买人数"
:render-header=
"rendertip"
sortable=
'custom'
></el-table-column>
<el-table-column
prop=
"sum_buy_money"
label=
"转化总额"
:render-header=
"rendertip"
sortable=
'custom'
></el-table-column>
<el-table-column
prop=
"sum_one_buy_money"
label=
"一年课转化金额"
:render-header=
"rendertip"
sortable=
'custom'
></el-table-column>
<el-table-column
prop=
"sum_two_buy_money"
label=
"两年课转化金额"
:render-header=
"rendertip"
sortable=
'custom'
></el-table-column>
</el-table>
...
...
src/util/tipArr2.js
View file @
3f11e567
...
...
@@ -11,7 +11,7 @@ export const tipArr2 = {
'转化率'
:
'转化人数/订单数'
,
'一年课购买人数'
:
'购买一年课且未全额退款的人数'
,
'两年课购买人数'
:
'购买两年课且未全额退款的人数'
,
'转化
金
额'
:
'一年课和两年课的转化金额合计'
,
'转化
总
额'
:
'一年课和两年课的转化金额合计'
,
'一年课转化金额'
:
'购买一年课且未全额退款的订单实付金额(云集订单为商品金额,不扣除优惠券、抵现)'
,
'两年课转化金额'
:
'购买两年课且未全额退款的订单实付金额(云集订单为商品金额,不扣除优惠券、抵现)'
,
};
\ No newline at end of file
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