Commit 832c6eb6 authored by 罗超's avatar 罗超

新增统计数据

parent a71f2a7b
...@@ -140,7 +140,7 @@ export default new Router({ ...@@ -140,7 +140,7 @@ export default new Router({
path: "/old", path: "/old",
name: "old", name: "old",
component: () => component: () =>
import ('./components/statistics/old.vue'), import('./components/statistics/old.vue'),
meta: { meta: {
title: "客户年龄分布统计" title: "客户年龄分布统计"
} }
...@@ -149,7 +149,7 @@ export default new Router({ ...@@ -149,7 +149,7 @@ export default new Router({
path: "/marital", path: "/marital",
name: "marital", name: "marital",
component: () => component: () =>
import ('./components/statistics/marital.vue'), import('./components/statistics/marital.vue'),
meta: { meta: {
title: "客户婚姻状态统计" title: "客户婚姻状态统计"
} }
...@@ -158,7 +158,7 @@ export default new Router({ ...@@ -158,7 +158,7 @@ export default new Router({
path: "/sex", path: "/sex",
name: "sex", name: "sex",
component: () => component: () =>
import ('./components/statistics/sex.vue'), import('./components/statistics/sex.vue'),
meta: { meta: {
title: "客户性别统计" title: "客户性别统计"
} }
...@@ -167,7 +167,7 @@ export default new Router({ ...@@ -167,7 +167,7 @@ export default new Router({
path: "/tourType", path: "/tourType",
name: "tourType", name: "tourType",
component: () => component: () =>
import ('./components/statistics/tourType.vue'), import('./components/statistics/tourType.vue'),
meta: { meta: {
title: "出游类型统计" title: "出游类型统计"
} }
...@@ -176,7 +176,7 @@ export default new Router({ ...@@ -176,7 +176,7 @@ export default new Router({
path: "/festivalOrderList", path: "/festivalOrderList",
name: "festivalOrderList", name: "festivalOrderList",
component: () => component: () =>
import ('./components/statistics/festivalOrderList.vue'), import('./components/statistics/festivalOrderList.vue'),
meta: { meta: {
title: "特殊节假日统计" title: "特殊节假日统计"
} }
...@@ -185,7 +185,7 @@ export default new Router({ ...@@ -185,7 +185,7 @@ export default new Router({
path: "/marriage", path: "/marriage",
name: "marriage", name: "marriage",
component: () => component: () =>
import ('./components/statistics/marriage.vue'), import('./components/statistics/marriage.vue'),
meta: { meta: {
title: "婚姻统计" title: "婚姻统计"
} }
...@@ -194,7 +194,7 @@ export default new Router({ ...@@ -194,7 +194,7 @@ export default new Router({
path: "/sellevent", path: "/sellevent",
name: "sellevent", name: "sellevent",
component: () => component: () =>
import ('./components/sellevent/index.vue'), import('./components/sellevent/index.vue'),
meta: { meta: {
title: "营销事件" title: "营销事件"
} }
...@@ -203,7 +203,7 @@ export default new Router({ ...@@ -203,7 +203,7 @@ export default new Router({
path: "/birthdayEvent", path: "/birthdayEvent",
name: "birthdayEvent", name: "birthdayEvent",
component: () => component: () =>
import ('./components/sellevent/brithday.vue'), import('./components/sellevent/brithday.vue'),
meta: { meta: {
title: "生日事件" title: "生日事件"
} }
...@@ -212,7 +212,7 @@ export default new Router({ ...@@ -212,7 +212,7 @@ export default new Router({
path: "/graduationEvent", path: "/graduationEvent",
name: "graduationEvent", name: "graduationEvent",
component: () => component: () =>
import ('./components/sellevent/graduation.vue'), import('./components/sellevent/graduation.vue'),
meta: { meta: {
title: "毕业季事件" title: "毕业季事件"
} }
...@@ -220,7 +220,7 @@ export default new Router({ ...@@ -220,7 +220,7 @@ export default new Router({
{ {
path: "/festivalEvent", path: "/festivalEvent",
name: "festivalEvent", name: "festivalEvent",
component: ()=>import('./components/sellevent/festival.vue'), component: () => import('./components/sellevent/festival.vue'),
meta: { meta: {
title: "节日事件" title: "节日事件"
} }
...@@ -228,7 +228,7 @@ export default new Router({ ...@@ -228,7 +228,7 @@ export default new Router({
{ {
path: "/emergencyEvent", path: "/emergencyEvent",
name: "emergencyEvent", name: "emergencyEvent",
component: ()=>import('./components/sellevent/emergency.vue'), component: () => import('./components/sellevent/emergency.vue'),
meta: { meta: {
title: "突发事件" title: "突发事件"
} }
...@@ -236,7 +236,7 @@ export default new Router({ ...@@ -236,7 +236,7 @@ export default new Router({
{ {
path: "/feedbackEvent", path: "/feedbackEvent",
name: "feedbackEvent", name: "feedbackEvent",
component: ()=>import('./components/sellevent/feedback.vue'), component: () => import('./components/sellevent/feedback.vue'),
meta: { meta: {
title: "意见反馈事件" title: "意见反馈事件"
} }
...@@ -244,7 +244,7 @@ export default new Router({ ...@@ -244,7 +244,7 @@ export default new Router({
{ {
path: "/nexttimeEvent", path: "/nexttimeEvent",
name: "nexttimeEvent", name: "nexttimeEvent",
component: ()=>import('./components/sellevent/nexttime.vue'), component: () => import('./components/sellevent/nexttime.vue'),
meta: { meta: {
title: "下次出行事件" title: "下次出行事件"
} }
...@@ -252,7 +252,7 @@ export default new Router({ ...@@ -252,7 +252,7 @@ export default new Router({
{ {
path: "/newlineEvent", path: "/newlineEvent",
name: "newlineEvent", name: "newlineEvent",
component: ()=>import('./components/sellevent/newline.vue'), component: () => import('./components/sellevent/newline.vue'),
meta: { meta: {
title: "新线路推广事件" title: "新线路推广事件"
} }
...@@ -260,7 +260,7 @@ export default new Router({ ...@@ -260,7 +260,7 @@ export default new Router({
{ {
path: "/newseriesEvent", path: "/newseriesEvent",
name: "newseriesEvent", name: "newseriesEvent",
component: ()=>import('./components/sellevent/newseries.vue'), component: () => import('./components/sellevent/newseries.vue'),
meta: { meta: {
title: "新系列推广事件" title: "新系列推广事件"
} }
...@@ -268,7 +268,7 @@ export default new Router({ ...@@ -268,7 +268,7 @@ export default new Router({
{ {
path: "/happyPassbook", path: "/happyPassbook",
name: "happyPassbook", name: "happyPassbook",
component: ()=>import('./components/sellevent/happyPassbook.vue'), component: () => import('./components/sellevent/happyPassbook.vue'),
meta: { meta: {
title: "返佣、幸福存折通知事件" title: "返佣、幸福存折通知事件"
} }
...@@ -276,7 +276,7 @@ export default new Router({ ...@@ -276,7 +276,7 @@ export default new Router({
{ {
path: "/newfestivalEvent", path: "/newfestivalEvent",
name: "newfestivalEvent", name: "newfestivalEvent",
component: ()=>import('./components/sellevent/newfestival.vue'), component: () => import('./components/sellevent/newfestival.vue'),
meta: { meta: {
title: "节日事件" title: "节日事件"
} }
...@@ -287,7 +287,7 @@ export default new Router({ ...@@ -287,7 +287,7 @@ export default new Router({
path: "/gaoxiao", path: "/gaoxiao",
name: "gaoxiao", name: "gaoxiao",
component: () => component: () =>
import ('./components/statistics/gaoxiao.vue'), import('./components/statistics/gaoxiao.vue'),
meta: { meta: {
title: "高校在读/毕业统计" title: "高校在读/毕业统计"
} }
...@@ -296,7 +296,7 @@ export default new Router({ ...@@ -296,7 +296,7 @@ export default new Router({
path: "/job", path: "/job",
name: "job", name: "job",
component: () => component: () =>
import ('./components/statistics/job.vue'), import('./components/statistics/job.vue'),
meta: { meta: {
title: "职业类型统计" title: "职业类型统计"
} }
...@@ -305,7 +305,7 @@ export default new Router({ ...@@ -305,7 +305,7 @@ export default new Router({
path: "/assets", path: "/assets",
name: "assets", name: "assets",
component: () => component: () =>
import ('./components/statistics/assets.vue'), import('./components/statistics/assets.vue'),
meta: { meta: {
title: "资产" title: "资产"
} }
...@@ -314,7 +314,7 @@ export default new Router({ ...@@ -314,7 +314,7 @@ export default new Router({
path: "/deving", path: "/deving",
name: "deving", name: "deving",
component: () => component: () =>
import ('./components/dev/index.vue'), import('./components/dev/index.vue'),
meta: { meta: {
title: "开发中..." title: "开发中..."
} }
...@@ -323,7 +323,7 @@ export default new Router({ ...@@ -323,7 +323,7 @@ export default new Router({
path: "/deving1", path: "/deving1",
name: "deving1", name: "deving1",
component: () => component: () =>
import ('./components/dev/index.vue'), import('./components/dev/index.vue'),
meta: { meta: {
title: "开发中..." title: "开发中..."
} }
...@@ -332,7 +332,7 @@ export default new Router({ ...@@ -332,7 +332,7 @@ export default new Router({
path: "/deving2", path: "/deving2",
name: "deving2", name: "deving2",
component: () => component: () =>
import ('./components/dev/index.vue'), import('./components/dev/index.vue'),
meta: { meta: {
title: "开发中..." title: "开发中..."
} }
...@@ -341,7 +341,7 @@ export default new Router({ ...@@ -341,7 +341,7 @@ export default new Router({
path: "/deving3", path: "/deving3",
name: "deving3", name: "deving3",
component: () => component: () =>
import ('./components/dev/index.vue'), import('./components/dev/index.vue'),
meta: { meta: {
title: "开发中..." title: "开发中..."
} }
...@@ -350,7 +350,7 @@ export default new Router({ ...@@ -350,7 +350,7 @@ export default new Router({
path: "/deving4", path: "/deving4",
name: "deving4", name: "deving4",
component: () => component: () =>
import ('./components/dev/index.vue'), import('./components/dev/index.vue'),
meta: { meta: {
title: "开发中..." title: "开发中..."
} }
...@@ -359,16 +359,34 @@ export default new Router({ ...@@ -359,16 +359,34 @@ export default new Router({
path: "/deving5", path: "/deving5",
name: "deving5", name: "deving5",
component: () => component: () =>
import ('./components/dev/index.vue'), import('./components/dev/index.vue'),
meta: { meta: {
title: "开发中..." title: "开发中..."
} }
}, },
{
path: "/dayStatistics",
name: "dayStatistics",
component: () =>
import('./views/workstatistics/dayStatistics'),
meta: {
title: "每日引流统计"
}
},
{
path: "/monthStatistics",
name: "monthStatistics",
component: () =>
import('./views/workstatistics/monthStatistics'),
meta: {
title: "月度引流统计"
}
},
{ {
path: "/roomStatistical", path: "/roomStatistical",
name: "roomStatistical", name: "roomStatistical",
component: () => component: () =>
import ('./components/statistics/roomStatistical.vue'), import('./components/statistics/roomStatistical.vue'),
meta: { meta: {
title: "住房统计" title: "住房统计"
} }
...@@ -377,7 +395,7 @@ export default new Router({ ...@@ -377,7 +395,7 @@ export default new Router({
path: "/season", path: "/season",
name: "season", name: "season",
component: () => component: () =>
import ('./components/statistics/season.vue'), import('./components/statistics/season.vue'),
meta: { meta: {
title: "季节" title: "季节"
} }
...@@ -386,7 +404,7 @@ export default new Router({ ...@@ -386,7 +404,7 @@ export default new Router({
path: "/Opinionpolls", path: "/Opinionpolls",
name: "Opinionpolls", name: "Opinionpolls",
component: () => component: () =>
import ('./components/statistics/Opinionpolls.vue'), import('./components/statistics/Opinionpolls.vue'),
meta: { meta: {
title: "意见调查" title: "意见调查"
} }
...@@ -396,7 +414,7 @@ export default new Router({ ...@@ -396,7 +414,7 @@ export default new Router({
path: "/unit", path: "/unit",
name: "unit", name: "unit",
component: () => component: () =>
import ('./components/statistics/unit.vue'), import('./components/statistics/unit.vue'),
meta: { meta: {
title: "单位" title: "单位"
} }
...@@ -460,7 +478,7 @@ export default new Router({ ...@@ -460,7 +478,7 @@ export default new Router({
{ {
path: "/planeTicketOrder", path: "/planeTicketOrder",
name: "planeTicketOrder", name: "planeTicketOrder",
component:planeTicketOrder, component: planeTicketOrder,
meta: { meta: {
title: "订单核算统计" title: "订单核算统计"
} }
......
<template>
<div class="customerManage">
<div class="tools">
<div class="tools-item">
<h1>每日引流统计</h1>
</div>
<div style="width: 340px;">
<el-date-picker
v-model="msg.month"
type="month"
icon="el-icon-date"
slot="append"
class="input-with-select"
@change="changeMonthHandler"
placeholder="选择查询的月份">
</el-date-picker>
</div>
<div class="rightmenu">
<el-dropdown>
<el-button class="crm-btn crm-btn-more easy-btn margin-right0">
<i class="iconfont icongengduo"></i>
</el-button>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item><i class="iconfont icondaochu"></i> 导出</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
</div>
</div>
<div class="page-content" style="padding-bottom:20px;">
<el-table :data="tableData" tooltip-effect="dark" v-loading="loading" style="width: 100%;height:100%;" border :cell-class-name="tableCellClassName" :row-class-name="tableRowClassName">
<el-table-column prop="DateStr" label="">
</el-table-column>
<el-table-column prop="PushCount" label="引流总数">
</el-table-column>
<el-table-column prop="EffectiveCount" label="有效总数">
</el-table-column>
<el-table-column prop="InvalidCount" label="无效总数">
</el-table-column>
<el-table-column prop="RedBookCount" label="小红书总数">
</el-table-column>
<el-table-column prop="DouYinCount" label="抖音总数">
</el-table-column>
<el-table-column prop="FlyingPigCount" label="飞猪总数">
</el-table-column>
<el-table-column prop="GroupChatCount" label="社群聊天总数">
</el-table-column>
<el-table-column prop="OfflineVisitCount" label="线下拜访总数">
</el-table-column>
<el-table-column prop="StraightCustomerCount" label="直客介绍总数">
</el-table-column>
<el-table-column prop="PeerCount" label="同业介绍总数">
</el-table-column>
<el-table-column prop="OtherCount" label="其他介绍总数">
</el-table-column>
<el-table-column prop="OrderCount" label="订单总数">
</el-table-column>
<el-table-column prop="TicketOrderCount" label="机票订单总数">
</el-table-column>
<el-table-column prop="VisaOrderCount" label="签证订单总数">
</el-table-column>
<el-table-column prop="GroundOrderCount" label="地接订单总数">
</el-table-column>
<el-table-column prop="ComboOrderCount" label="套餐订单总数">
</el-table-column>
</el-table>
</div>
</div>
</template>
<script>
export default {
data() {
return {
msg: {
month: "",
YearStr: "",
MonthStr: "",
},
total: 0,
tableData: [],
loading: false,
};
},
created() {
let d = new Date();
this.msg.month = d;
this.msg.YearStr = d.getFullYear();
this.msg.MonthStr = d.getMonth() + 1;
},
mounted() {
this.init();
},
methods: {
init() {
if (this.loading) return;
this.loading = true;
this.apipost(
"/api/ClueStatic/GetClueDay",
this.msg,
(res) => {
console.log(res);
this.loading = false;
this.tableData = res.data.data;
},
(e) => {
this.loading = false;
}
);
},
tableRowClassName({ row }) {
let cname = "font-size-12";
if (
row.DateStr == "总数" ||
row.DateStr == "上期总数" ||
row.DateStr == "环比成长"
) {
cname += " xiaoji-row";
} else if (row.DateStr == "月总数") {
cname += " sum-row";
}
return cname;
},
tableCellClassName({ row, column }) {
if (
row[column.property].toString().indexOf("-") != -1 &&
column.property != "DateStr"
) {
return "warning-col";
} else if (column.property == "InvalidCount") {
if (
parseFloat(row[column.property]) / parseFloat(row.PushCount) >=
0.2
) {
return "warning-col";
}
}
},
changeMonthHandler(val) {
this.msg.YearStr = val.getFullYear();
this.msg.MonthStr = val.getMonth() + 1;
console.log(this.msg);
this.init();
},
},
};
</script>
<style>
@import "../../assets/css/customerManage.css";
.el-table__fixed-body-wrapper table {
padding-bottom: 8px !important;
}
.el-table .xiaoji-row {
background: #ffff00;
}
.el-table .sum-row {
background: #00b0f0;
}
.el-table .warning-col {
background: red;
}
</style>
<template>
<div class="customerManage" style="display:flex;height:calc(100% - 20px);flex-direction:column;">
<div class="tools" style="border:none;">
<div class="tools-item">
<h1>月度引流统计</h1>
</div>
<div style="width: 340px;">
<el-date-picker
v-model="msg.month"
type="year"
icon="el-icon-date"
slot="append"
class="input-with-select"
format="yyyy 年"
@change="changeMonthHandler"
placeholder="选择查询的月份">
</el-date-picker>
</div>
<div class="rightmenu">
<el-dropdown>
<el-button class="crm-btn crm-btn-more easy-btn margin-right0">
<i class="iconfont icongengduo"></i>
</el-button>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item><i class="iconfont icondaochu"></i> 导出</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
</div>
</div>
<el-tabs v-model="activeName" style="flex:1;height:100%;" class="diy-eltabs" tab-position="top">
<el-tab-pane label="月度数据" name="monthdata" style="background:#000">
<div class="data-box-item">
<el-table :data="tableData" tooltip-effect="dark" v-loading="loading" style="width: 100%;height:100%;overflow: auto;" border :cell-class-name="tableCellClassName" :row-class-name="tableRowClassName">
<el-table-column prop="DateStr" label="">
</el-table-column>
<el-table-column prop="PushCount" label="引流总数">
</el-table-column>
<el-table-column prop="EffectiveCount" label="有效总数">
</el-table-column>
<el-table-column prop="InvalidCount" label="无效总数">
</el-table-column>
<el-table-column prop="RedBookCount" label="小红书总数">
</el-table-column>
<el-table-column prop="DouYinCount" label="抖音总数">
</el-table-column>
<el-table-column prop="FlyingPigCount" label="飞猪总数">
</el-table-column>
<el-table-column prop="GroupChatCount" label="社群聊天总数">
</el-table-column>
<el-table-column prop="OfflineVisitCount" label="线下拜访总数">
</el-table-column>
<el-table-column prop="StraightCustomerCount" label="直客介绍总数">
</el-table-column>
<el-table-column prop="PeerCount" label="同业介绍总数">
</el-table-column>
<el-table-column prop="OtherCount" label="其他介绍总数">
</el-table-column>
<el-table-column prop="OrderCount" label="订单总数">
</el-table-column>
<el-table-column prop="TicketOrderCount" label="机票订单总数">
</el-table-column>
<el-table-column prop="VisaOrderCount" label="签证订单总数">
</el-table-column>
<el-table-column prop="GroundOrderCount" label="地接订单总数">
</el-table-column>
<el-table-column prop="ComboOrderCount" label="套餐订单总数">
</el-table-column>
</el-table>
</div>
</el-tab-pane>
<el-tab-pane label="月度成长率" name="monthrate">
<div class="data-box-item">
<el-table :data="rateData" :formatter="formatter" tooltip-effect="dark" v-loading="rateLoading" style="width: 100%;height:100%;overflow: auto;" border :cell-class-name="tableCellClassName" :row-class-name="tableRowClassName">
<el-table-column prop="ItemName" label="">
</el-table-column>
<el-table-column prop="JanuaryRate" label="1月" :formatter="formatter">
</el-table-column>
<el-table-column prop="FebruaryRate" label="2月" :formatter="formatter">
</el-table-column>
<el-table-column prop="MarchRate" label="3月" :formatter="formatter">
</el-table-column>
<el-table-column prop="AprilRate" label="4月" :formatter="formatter">
</el-table-column>
<el-table-column prop="MayRate" label="5月" :formatter="formatter">
</el-table-column>
<el-table-column prop="JuneRate" label="6月" :formatter="formatter">
</el-table-column>
<el-table-column prop="JulyRate" label="7月" :formatter="formatter">
</el-table-column>
<el-table-column prop="AugustRate" label="8月" :formatter="formatter">
</el-table-column>
<el-table-column prop="SeptemberRate" label="9月" :formatter="formatter">
</el-table-column>
<el-table-column prop="OctoberRate" label="10月" :formatter="formatter">
</el-table-column>
<el-table-column prop="NovemberRate" label="11月" :formatter="formatter">
</el-table-column>
<el-table-column prop="DecemberRate" label="12月" :formatter="formatter">
</el-table-column>
<el-table-column prop="AvgRate" label="平均" :formatter="formatter">
</el-table-column>
</el-table>
</div>
</el-tab-pane>
</el-tabs>
</div>
</template>
<script>
export default {
data() {
return {
msg: {
month: "",
YearStr: "",
},
total: 0,
tableData: [],
loading: false,
rateLoading: false,
activeName: "monthdata",
rateData: [],
};
},
created() {
let d = new Date();
this.msg.month = d;
this.msg.YearStr = d.getFullYear();
},
mounted() {
this.init();
this.initRate();
},
methods: {
init() {
if (this.loading) return;
this.loading = true;
this.apipost(
"/api/ClueStatic/GetClueMonth",
this.msg,
(res) => {
this.loading = false;
this.tableData = res.data.data;
},
(e) => {
this.loading = false;
}
);
},
initRate() {
if (this.rateLoading) return;
this.rateLoading = true;
this.apipost(
"/api/ClueStatic/GetClueMonthRate",
this.msg,
(res) => {
this.rateLoading = false;
this.rateData = res.data.data;
},
(e) => {
this.rateLoading = false;
}
);
},
tableRowClassName({ row }) {
let cname = "font-size-12";
if (row.DateStr == "平均") {
cname += " xiaoji-row";
} else if (row.DateStr == "总数") {
cname += " sum-row";
}
return cname;
},
tableCellClassName({ row, column }) {
if (
row[column.property].toString().indexOf("-") != -1 &&
column.property != "DateStr"
) {
return "warning-col";
} else if (column.property == "InvalidCount") {
if (
parseFloat(row[column.property]) / parseFloat(row.PushCount) >=
0.2
) {
return "warning-col";
}
}
},
changeMonthHandler(val) {
this.msg.YearStr = val.getFullYear();
this.init();
this.initRate();
},
formatter(row, column) {
return row[column.property] + "%";
},
},
};
</script>
<style>
@import "../../assets/css/customerManage.css";
.el-table__fixed-body-wrapper table {
padding-bottom: 8px !important;
}
.el-table .xiaoji-row {
background: #ffff00;
}
.el-table .sum-row {
background: #00b0f0;
}
.el-table .warning-col {
background: red;
}
.diy-eltabs .el-tabs__content {
height: calc(100% - 40px);
}
.diy-eltabs .data-box-item {
position: absolute;
top: 0;
bottom: 0;
left: 0;
right: 0;
}
</style>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment