|
|
@ -14,6 +14,156 @@ |
|
|
|
</el-form-item> |
|
|
|
</template> |
|
|
|
<template #info_tips> |
|
|
|
<ElDivider style="margin: 0 0 10px;" /> |
|
|
|
<el-table :data="countData" :border="true"> |
|
|
|
<el-table-column align="center" prop="countTime" label="--" width="80" /> |
|
|
|
<el-table-column align="center" prop="day1" label="登录" width="100" /> |
|
|
|
<el-table-column align="center" label="2日留存" width="100"> |
|
|
|
<template #default="item"> |
|
|
|
<span style="text-decoration: underline;">{{item.row.day2}}</span> <span style="font-size: 12px;color:blue">{{item.row.day2Rate}}%</span> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
<el-table-column align="center" label="3日留存" width="100"> |
|
|
|
<template #default="item"> |
|
|
|
<span style="text-decoration: underline;">{{item.row.day3}}</span> <span style="font-size: 12px;color:blue">{{item.row.day3Rate}}%</span> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
<el-table-column align="center" label="4日留存" width="100"> |
|
|
|
<template #default="item"> |
|
|
|
<span style="text-decoration: underline;">{{item.row.day4}}</span> <span style="font-size: 12px;color:blue">{{item.row.day4Rate}}%</span> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
<el-table-column align="center" label="5日留存" width="100"> |
|
|
|
<template #default="item"> |
|
|
|
<span style="text-decoration: underline;">{{item.row.day5}}</span> <span style="font-size: 12px;color:blue">{{item.row.day5Rate}}%</span> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
<el-table-column align="center" label="6日留存" width="100"> |
|
|
|
<template #default="item"> |
|
|
|
<span style="text-decoration: underline;">{{item.row.day6}}</span> <span style="font-size: 12px;color:blue">{{item.row.day6Rate}}%</span> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
<el-table-column align="center" label="7日留存" width="100"> |
|
|
|
<template #default="item"> |
|
|
|
<span style="text-decoration: underline;">{{item.row.day7}}</span> <span style="font-size: 12px;color:blue">{{item.row.day7Rate}}%</span> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
<el-table-column align="center" label="8日留存" width="100"> |
|
|
|
<template #default="item"> |
|
|
|
<span style="text-decoration: underline;">{{item.row.day8}}</span> <span style="font-size: 12px;color:blue">{{item.row.day8Rate}}%</span> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
<el-table-column align="center" label="9日留存" width="100"> |
|
|
|
<template #default="item"> |
|
|
|
<span style="text-decoration: underline;">{{item.row.day9}}</span> <span style="font-size: 12px;color:blue">{{item.row.day9Rate}}%</span> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
<el-table-column align="center" label="10日留存" width="100"> |
|
|
|
<template #default="item"> |
|
|
|
<span style="text-decoration: underline;">{{item.row.day10}}</span> <span style="font-size: 12px;color:blue">{{item.row.day10Rate}}%</span> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
<el-table-column align="center" label="11日留存" width="100"> |
|
|
|
<template #default="item"> |
|
|
|
<span style="text-decoration: underline;">{{item.row.day11}}</span> <span style="font-size: 12px;color:blue">{{item.row.day11Rate}}%</span> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
<el-table-column align="center" label="12日留存" width="100"> |
|
|
|
<template #default="item"> |
|
|
|
<span style="text-decoration: underline;">{{item.row.day12}}</span> <span style="font-size: 12px;color:blue">{{item.row.day12Rate}}%</span> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
<el-table-column align="center" label="13日留存" width="100"> |
|
|
|
<template #default="item"> |
|
|
|
<span style="text-decoration: underline;">{{item.row.day13}}</span> <span style="font-size: 12px;color:blue">{{item.row.day13Rate}}%</span> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
<el-table-column align="center" label="14日留存" width="100"> |
|
|
|
<template #default="item"> |
|
|
|
<span style="text-decoration: underline;">{{item.row.day14}}</span> <span style="font-size: 12px;color:blue">{{item.row.day14Rate}}%</span> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
<el-table-column align="center" label="15日留存" width="100"> |
|
|
|
<template #default="item"> |
|
|
|
<span style="text-decoration: underline;">{{item.row.day15}}</span> <span style="font-size: 12px;color:blue">{{item.row.day15Rate}}%</span> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
<el-table-column align="center" label="16日留存" width="100"> |
|
|
|
<template #default="item"> |
|
|
|
<span style="text-decoration: underline;">{{item.row.day16}}</span> <span style="font-size: 12px;color:blue">{{item.row.day16Rate}}%</span> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
<el-table-column align="center" label="17日留存" width="100"> |
|
|
|
<template #default="item"> |
|
|
|
<span style="text-decoration: underline;">{{item.row.day17}}</span> <span style="font-size: 12px;color:blue">{{item.row.day17Rate}}%</span> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
<el-table-column align="center" label="18日留存" width="100"> |
|
|
|
<template #default="item"> |
|
|
|
<span style="text-decoration: underline;">{{item.row.day18}}</span> <span style="font-size: 12px;color:blue">{{item.row.day18Rate}}%</span> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
<el-table-column align="center" label="19日留存" width="100"> |
|
|
|
<template #default="item"> |
|
|
|
<span style="text-decoration: underline;">{{item.row.day19}}</span> <span style="font-size: 12px;color:blue">{{item.row.day19Rate}}%</span> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
<el-table-column align="center" label="20日留存" width="100"> |
|
|
|
<template #default="item"> |
|
|
|
<span style="text-decoration: underline;">{{item.row.day20}}</span> <span style="font-size: 12px;color:blue">{{item.row.day20Rate}}%</span> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
<el-table-column align="center" label="21日留存" width="100"> |
|
|
|
<template #default="item"> |
|
|
|
<span style="text-decoration: underline;">{{item.row.day21}}</span> <span style="font-size: 12px;color:blue">{{item.row.day21Rate}}%</span> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
<el-table-column align="center" label="22日留存" width="100"> |
|
|
|
<template #default="item"> |
|
|
|
<span style="text-decoration: underline;">{{item.row.day22}}</span> <span style="font-size: 12px;color:blue">{{item.row.day22Rate}}%</span> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
<el-table-column align="center" label="23日留存" width="100"> |
|
|
|
<template #default="item"> |
|
|
|
<span style="text-decoration: underline;">{{item.row.day23}}</span> <span style="font-size: 12px;color:blue">{{item.row.day23Rate}}%</span> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
<el-table-column align="center" label="24日留存" width="100"> |
|
|
|
<template #default="item"> |
|
|
|
<span style="text-decoration: underline;">{{item.row.day24}}</span> <span style="font-size: 12px;color:blue">{{item.row.day24Rate}}%</span> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
<el-table-column align="center" label="25日留存" width="100"> |
|
|
|
<template #default="item"> |
|
|
|
<span style="text-decoration: underline;">{{item.row.day25}}</span> <span style="font-size: 12px;color:blue">{{item.row.day25Rate}}%</span> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
<el-table-column align="center" label="26日留存" width="100"> |
|
|
|
<template #default="item"> |
|
|
|
<span style="text-decoration: underline;">{{item.row.day26}}</span> <span style="font-size: 12px;color:blue">{{item.row.day26Rate}}%</span> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
<el-table-column align="center" label="27日留存" width="100"> |
|
|
|
<template #default="item"> |
|
|
|
<span style="text-decoration: underline;">{{item.row.day27}}</span> <span style="font-size: 12px;color:blue">{{item.row.day27Rate}}%</span> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
<el-table-column align="center" label="28日留存" width="100"> |
|
|
|
<template #default="item"> |
|
|
|
<span style="text-decoration: underline;">{{item.row.day28}}</span> <span style="font-size: 12px;color:blue">{{item.row.day28Rate}}%</span> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
<el-table-column align="center" label="29日留存" width="100"> |
|
|
|
<template #default="item"> |
|
|
|
<span style="text-decoration: underline;">{{item.row.day29}}</span> <span style="font-size: 12px;color:blue">{{item.row.day29Rate}}%</span> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
<el-table-column align="center" label="30日留存" width="100"> |
|
|
|
<template #default="item"> |
|
|
|
<span style="text-decoration: underline;">{{item.row.day30}}</span> <span style="font-size: 12px;color:blue">{{item.row.day30Rate}}%</span> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
</el-table> |
|
|
|
<ElDivider style="margin: 0 0 10px;" /> |
|
|
|
<div id="main" :style="{ width: '100%', height: '600px', }"></div> |
|
|
|
</template> |
|
|
@ -40,6 +190,7 @@ import { DEFAULT_TIME_FORMATTER, DEFAULT_TIME_FORMATTER_DATA } from "@/enum/form |
|
|
|
import { fetchChannelPromotions, fetchChannelPromotionsPToken } from "@/api/module/channel_promotion"; |
|
|
|
|
|
|
|
const $router = useRouter(); |
|
|
|
let countData: any[] = []; |
|
|
|
|
|
|
|
// 推广渠道下拉 |
|
|
|
const getChannelPromotionOptions= async () => { |
|
|
@ -106,8 +257,10 @@ const table_config: TableType<IStatisticsKeep> = { |
|
|
|
const handleGetData = async (data: any) => { |
|
|
|
let htData:any = []; |
|
|
|
let zcData:any = []; |
|
|
|
if (isArray(data.list)) { |
|
|
|
let dataKeep = data.list[0] |
|
|
|
if (isArray(data.countList)) { |
|
|
|
let dataKeep = data.countList[0] |
|
|
|
data.countList[0].countTime = "合计" |
|
|
|
countData = data.countList; |
|
|
|
// htData.push("1日留存"), |
|
|
|
// zcData.push(dataKeep.day1) |
|
|
|
htData.push("2日留存"), |
|
|
@ -307,6 +460,7 @@ const columns: TableColumnType<IStatisticsKeep>[] = [ |
|
|
|
</ElRow> |
|
|
|
); |
|
|
|
}, |
|
|
|
width: "100" |
|
|
|
}, |
|
|
|
{ |
|
|
|
label: "11日留存", |
|
|
@ -319,6 +473,7 @@ const columns: TableColumnType<IStatisticsKeep>[] = [ |
|
|
|
</ElRow> |
|
|
|
); |
|
|
|
}, |
|
|
|
width: "100" |
|
|
|
}, |
|
|
|
{ |
|
|
|
label: "12日留存", |
|
|
@ -331,6 +486,7 @@ const columns: TableColumnType<IStatisticsKeep>[] = [ |
|
|
|
</ElRow> |
|
|
|
); |
|
|
|
}, |
|
|
|
width: "100" |
|
|
|
}, |
|
|
|
{ |
|
|
|
label: "13日留存", |
|
|
@ -343,6 +499,7 @@ const columns: TableColumnType<IStatisticsKeep>[] = [ |
|
|
|
</ElRow> |
|
|
|
); |
|
|
|
}, |
|
|
|
width: "100" |
|
|
|
}, |
|
|
|
{ |
|
|
|
label: "14日留存", |
|
|
@ -355,6 +512,7 @@ const columns: TableColumnType<IStatisticsKeep>[] = [ |
|
|
|
</ElRow> |
|
|
|
); |
|
|
|
}, |
|
|
|
width: "100" |
|
|
|
}, |
|
|
|
{ |
|
|
|
label: "15日留存", |
|
|
@ -367,6 +525,7 @@ const columns: TableColumnType<IStatisticsKeep>[] = [ |
|
|
|
</ElRow> |
|
|
|
); |
|
|
|
}, |
|
|
|
width: "100" |
|
|
|
}, |
|
|
|
{ |
|
|
|
label: "16日留存", |
|
|
@ -379,6 +538,7 @@ const columns: TableColumnType<IStatisticsKeep>[] = [ |
|
|
|
</ElRow> |
|
|
|
); |
|
|
|
}, |
|
|
|
width: "100" |
|
|
|
}, |
|
|
|
{ |
|
|
|
label: "17日留存", |
|
|
@ -391,6 +551,7 @@ const columns: TableColumnType<IStatisticsKeep>[] = [ |
|
|
|
</ElRow> |
|
|
|
); |
|
|
|
}, |
|
|
|
width: "100" |
|
|
|
}, |
|
|
|
{ |
|
|
|
label: "18日留存", |
|
|
@ -403,6 +564,7 @@ const columns: TableColumnType<IStatisticsKeep>[] = [ |
|
|
|
</ElRow> |
|
|
|
); |
|
|
|
}, |
|
|
|
width: "100" |
|
|
|
}, |
|
|
|
{ |
|
|
|
label: "19日留存", |
|
|
@ -415,6 +577,7 @@ const columns: TableColumnType<IStatisticsKeep>[] = [ |
|
|
|
</ElRow> |
|
|
|
); |
|
|
|
}, |
|
|
|
width: "100" |
|
|
|
}, |
|
|
|
{ |
|
|
|
label: "20日留存", |
|
|
@ -427,6 +590,7 @@ const columns: TableColumnType<IStatisticsKeep>[] = [ |
|
|
|
</ElRow> |
|
|
|
); |
|
|
|
}, |
|
|
|
width: "100" |
|
|
|
}, |
|
|
|
{ |
|
|
|
label: "21日留存", |
|
|
@ -439,6 +603,7 @@ const columns: TableColumnType<IStatisticsKeep>[] = [ |
|
|
|
</ElRow> |
|
|
|
); |
|
|
|
}, |
|
|
|
width: "100" |
|
|
|
}, |
|
|
|
{ |
|
|
|
label: "22日留存", |
|
|
@ -451,6 +616,7 @@ const columns: TableColumnType<IStatisticsKeep>[] = [ |
|
|
|
</ElRow> |
|
|
|
); |
|
|
|
}, |
|
|
|
width: "100" |
|
|
|
}, |
|
|
|
{ |
|
|
|
label: "23日留存", |
|
|
@ -463,6 +629,7 @@ const columns: TableColumnType<IStatisticsKeep>[] = [ |
|
|
|
</ElRow> |
|
|
|
); |
|
|
|
}, |
|
|
|
width: "100" |
|
|
|
}, |
|
|
|
{ |
|
|
|
label: "24日留存", |
|
|
@ -475,6 +642,7 @@ const columns: TableColumnType<IStatisticsKeep>[] = [ |
|
|
|
</ElRow> |
|
|
|
); |
|
|
|
}, |
|
|
|
width: "100" |
|
|
|
}, |
|
|
|
{ |
|
|
|
label: "25日留存", |
|
|
@ -487,6 +655,7 @@ const columns: TableColumnType<IStatisticsKeep>[] = [ |
|
|
|
</ElRow> |
|
|
|
); |
|
|
|
}, |
|
|
|
width: "100" |
|
|
|
}, |
|
|
|
{ |
|
|
|
label: "26日留存", |
|
|
@ -499,6 +668,7 @@ const columns: TableColumnType<IStatisticsKeep>[] = [ |
|
|
|
</ElRow> |
|
|
|
); |
|
|
|
}, |
|
|
|
width: "100" |
|
|
|
}, |
|
|
|
{ |
|
|
|
label: "27日留存", |
|
|
@ -511,6 +681,7 @@ const columns: TableColumnType<IStatisticsKeep>[] = [ |
|
|
|
</ElRow> |
|
|
|
); |
|
|
|
}, |
|
|
|
width: "100" |
|
|
|
}, |
|
|
|
{ |
|
|
|
label: "28日留存", |
|
|
@ -523,6 +694,7 @@ const columns: TableColumnType<IStatisticsKeep>[] = [ |
|
|
|
</ElRow> |
|
|
|
); |
|
|
|
}, |
|
|
|
width: "100" |
|
|
|
}, |
|
|
|
{ |
|
|
|
label: "29日留存", |
|
|
@ -535,6 +707,7 @@ const columns: TableColumnType<IStatisticsKeep>[] = [ |
|
|
|
</ElRow> |
|
|
|
); |
|
|
|
}, |
|
|
|
width: "100" |
|
|
|
}, |
|
|
|
{ |
|
|
|
label: "30日留存", |
|
|
@ -547,6 +720,7 @@ const columns: TableColumnType<IStatisticsKeep>[] = [ |
|
|
|
</ElRow> |
|
|
|
); |
|
|
|
}, |
|
|
|
width: "100" |
|
|
|
}, |
|
|
|
]; |
|
|
|
|
|
|
|