Browse Source

首页简报数据穿透

newStyle
douzhuo 2 years ago
parent
commit
801088909e
4 changed files with 156 additions and 40 deletions
  1. +57
    -8
      src/page/wel.vue
  2. +92
    -30
      src/views/ReceivingRecords/index.vue
  3. +6
    -1
      src/views/Statistics/ConsultantBrand.vue
  4. +1
    -1
      vue.config.js

+ 57
- 8
src/page/wel.vue View File

@@ -33,11 +33,11 @@
<img src="../../public/img/indexIcon/indexCardIcon14.png" alt=""> <img src="../../public/img/indexIcon/indexCardIcon14.png" alt="">
</div> </div>
</div> </div>
<div class="pagechen" @click="toDetail('/ReceivingRecords/index', '', '接待记录')">
<div class="pagechen" @click="toDetail('/ReceivingRecords/index', nowSelectTime(1), '接待记录')">
<div style="width:100%"> <div style="width:100%">
<div class="pageboxtitle1 projectCardItem"> <div class="pageboxtitle1 projectCardItem">
<div class="sum">接待量 (次) <div class="sum">接待量 (次)
<el-tooltip effect="light" content="筛选时间内,已经结束的接待条数,不包含待接单;" placement="bottom-end">
<el-tooltip effect="light" content="筛选时间内,已经结束的接待条数,不包含待接单;////" placement="bottom-end">
<i style=" <i style="
border: 1px solid #afa8a8; border: 1px solid #afa8a8;
color: #9e9e9e; color: #9e9e9e;
@@ -83,7 +83,7 @@
</div> </div>
</div> </div>
<div class="pagechen" @click=" <div class="pagechen" @click="
toDetail('/ReceivingRecords/index', 'validInvalid,0', '接待记录')
toDetail('/ReceivingRecords/index', nowSelectTime(2), '接待记录')
"> ">
<div style="width:100%"> <div style="width:100%">
<div class="pageboxtitle1 projectCardItem"> <div class="pageboxtitle1 projectCardItem">
@@ -133,7 +133,7 @@
</div> </div>
</div> </div>
</div> </div>
<div class="pagechen projectCardItem" @click="toDetail('/Statistics/ConsultantBrand', '', '顾问排名')">
<div class="pagechen projectCardItem" @click="toDetail('/Statistics/ConsultantBrand', nowSelectTime(3), '顾问排名')">
<div> <div>
<div class="pageboxtitle1">顾问(人)</div> <div class="pageboxtitle1">顾问(人)</div>
<div class="pageboxtitle2 projectColumn"> <div class="pageboxtitle2 projectColumn">
@@ -156,7 +156,7 @@
<img src="../../public/img/indexIcon/indexCardIcon21.png" alt="" /> <img src="../../public/img/indexIcon/indexCardIcon21.png" alt="" />
</div> </div>
</div> </div>
<div class="pagechen" @click="toDetail('/ReceivingRecords/index', '', '接待记录')">
<div class="pagechen" @click="toDetail('/ReceivingRecords/index', nowSelectTime(2), '接待记录')">
<div style="width:100%"> <div style="width:100%">
<div class="pageboxtitle1 projectCardItem"> <div class="pageboxtitle1 projectCardItem">
<div class="sum">平均执行率 <div class="sum">平均执行率
@@ -205,7 +205,7 @@
</div> </div>
</div> </div>
</div> </div>
<div class="pagechen" @click="toDetail('/ReceivingRecords/index', '', '接待记录')">
<div class="pagechen" @click="toDetail('/ReceivingRecords/index', nowSelectTime(2), '接待记录')">
<div style="width:100%"> <div style="width:100%">
<div class="pageboxtitle1 projectCardItem"> <div class="pageboxtitle1 projectCardItem">
<div class="sum">平均接待时长(分钟) <div class="sum">平均接待时长(分钟)
@@ -258,7 +258,7 @@






<div class="pagechen" @click="toDetail('/ReceivingRecords/index', 'taboo,1', '接待记录')">
<div class="pagechen" @click="toDetail('/ReceivingRecords/index', nowSelectTime(4), '接待记录')">
<div style="width:100%"> <div style="width:100%">
<div class="pageboxtitle1 projectCardItem"> <div class="pageboxtitle1 projectCardItem">
<div class="sum">违禁接待次数(次) <div class="sum">违禁接待次数(次)
@@ -307,7 +307,7 @@
</div> </div>
</div> </div>
</div> </div>
<div class="pagechen" @click="toDetail('/ReceivingRecords/index', '', '接待记录')">
<div class="pagechen" @click="toDetail('/ReceivingRecords/index', nowSelectTime(4), '接待记录')">
<div style="width:100%"> <div style="width:100%">
<div class="pageboxtitle1 projectCardItem"> <div class="pageboxtitle1 projectCardItem">
<div class="sum">违禁接待占比 <div class="sum">违禁接待占比
@@ -1786,6 +1786,55 @@ export default {
} }
}, },
methods: { methods: {
// 当前选中时间类型之接待记录
/**
* 1、接待量跳转
* 2、有效接待、平均执行率、平均接待时长:打开接待页面,筛选条件:日期+有效接待
* 3、顾问:打开顾问排名,筛选条件:时间;
* 4、违禁接待次数、违禁接待占比:打开接待记录,筛选条件:日期+违禁是+有效接待;
* */
nowSelectTime(type) {
let str = ''
switch(type) {
case 1:
if (this.TimetoAhoose == 0) {
str = `dateType,${this.TimetoAhoose}`
} else if(this.TimetoAhoose == 1) {
str = `dateType,${2}`
} else {
str = ''
}
break;
case 2:
if (this.TimetoAhoose == 0) {
str = `dateType,${this.TimetoAhoose}&validInvalid,0`
} else if(this.TimetoAhoose == 1) {
str = `dateType,${2}&validInvalid,0`
} else {
str = 'validInvalid,0'
}
break;
case 3:
if (this.TimetoAhoose == 1) {
str = `dateType,4`
} else {
str = ''
}
break;
case 4:
if (this.TimetoAhoose == 0) {
str = `dateType,${this.TimetoAhoose}&taboo,1&validInvalid,0`
} else if(this.TimetoAhoose == 1) {
str = `dateType,${2}&taboo,1&validInvalid,0`
} else {
str = 'taboo,1&validInvalid,0'
}
break;
}

return str
},

// 跳转详情 // 跳转详情
toDetail(path, params2 = "", name) { toDetail(path, params2 = "", name) {
if (path == "") return; if (path == "") return;


+ 92
- 30
src/views/ReceivingRecords/index.vue View File

@@ -290,8 +290,14 @@
</div> </div>
<div style="margin-left: 20px"> <div style="margin-left: 20px">
<el-button @click="clearScreen" type="text">清空筛选条件</el-button> <el-button @click="clearScreen" type="text">清空筛选条件</el-button>
</div>
<el-button style="margin-left:10px;" @click="isSystoleForm" type="text">{{isOpen?'收起':'展开'}}<i style="margin-left:5px;" :class="isOpen?'el-icon-arrow-up':'el-icon-arrow-down'"></i></el-button>
</div>
<el-button style="margin-left: 10px" @click="isSystoleForm" type="text"
>{{ isOpen ? "收起" : "展开"
}}<i
style="margin-left: 5px"
:class="isOpen ? 'el-icon-arrow-up' : 'el-icon-arrow-down'"
></i
></el-button>


<div <div
style="margin-left: auto; margin-right: 10px" style="margin-left: auto; margin-right: 10px"
@@ -306,12 +312,12 @@
<div class="cen-tab"> <div class="cen-tab">
<el-table :data="tableData" stripe style="width: 100%" height="390"> <el-table :data="tableData" stripe style="width: 100%" height="390">
<el-table-column <el-table-column
prop="staTimeOfCN"
prop="staTime"
label="接待开始时间" label="接待开始时间"
align="center" align="center"
width="200" width="200"
sortable sortable
height="390"
height="390"
> >
</el-table-column> </el-table-column>
<el-table-column prop="agentName" label="顾问" align="center"> <el-table-column prop="agentName" label="顾问" align="center">
@@ -321,7 +327,13 @@
<el-table-column prop="visitRecordName" label="到访次数" align="center"> <el-table-column prop="visitRecordName" label="到访次数" align="center">
</el-table-column> </el-table-column>


<el-table-column prop="mm" label="录音时长" align="center" width="100" sortable>
<el-table-column
prop="mm"
label="录音时长"
align="center"
width="100"
sortable
>
</el-table-column> </el-table-column>
<el-table-column prop="recording" label="录音类型" align="center"> <el-table-column prop="recording" label="录音类型" align="center">
<template slot-scope="{ row }"> <template slot-scope="{ row }">
@@ -340,12 +352,18 @@
</template> </template>
</el-table-column> </el-table-column>


<el-table-column prop="total" label="画像标签触达次数" align="center" width="150" sortable>
<el-table-column
prop="total"
label="画像标签触达次数"
align="center"
width="150"
sortable
>
</el-table-column> </el-table-column>
<el-table-column prop="fraction" label="执行率" align="center" sortable> <el-table-column prop="fraction" label="执行率" align="center" sortable>
<template slot-scope="{ row }"> {{ row.fraction || "0" }}% </template> <template slot-scope="{ row }"> {{ row.fraction || "0" }}% </template>
</el-table-column> </el-table-column>
<!-- <el-table-column prop="address" label="禁忌执行率" align="center"> <!-- <el-table-column prop="address" label="禁忌执行率" align="center">
</el-table-column> --> </el-table-column> -->
<!-- scope --> <!-- scope -->
@@ -359,8 +377,16 @@
{{ row.zfal == 0 ? "已加精" : "未加精" }} {{ row.zfal == 0 ? "已加精" : "未加精" }}
</template> </template>
</el-table-column> --> </el-table-column> -->
<el-table-column prop="validInvalidName" label="接待标识" align="center"></el-table-column>
<el-table-column prop="zfalName" label="推荐案例" align="center"></el-table-column>
<el-table-column
prop="validInvalidName"
label="接待标识"
align="center"
></el-table-column>
<el-table-column
prop="zfalName"
label="推荐案例"
align="center"
></el-table-column>
<el-table-column label="操作" align="center" width="80" fixed="right"> <el-table-column label="操作" align="center" width="80" fixed="right">
<template slot-scope="{ row }"> <template slot-scope="{ row }">
<el-button <el-button
@@ -398,7 +424,7 @@ import { exportMethodPost } from "@/util/util";
export default { export default {
data() { data() {
return { return {
isOpen:false,
isOpen: false,
TimetoAhoose: 2, TimetoAhoose: 2,
time: [], time: [],
houseList: [], houseList: [],
@@ -500,7 +526,7 @@ export default {
label: "全部", label: "全部",
value: "", value: "",
}, },
{ {
label: "有效接待", label: "有效接待",
value: "0", value: "0",
@@ -511,7 +537,8 @@ export default {
}, },
], ],


options14: [ // 正反案例
options14: [
// 正反案例
{ {
label: "全部", label: "全部",
value: "", value: "",
@@ -547,7 +574,7 @@ export default {
dateType: null, dateType: null,
projectId: "", projectId: "",
taboo: "", taboo: "",
zfal: "", // 正反案例 0:正面案例 1:反面案例
zfal: "", // 正反案例 0:正面案例 1:反面案例
validInvalid: "", // 是否为有效接待 0:有效 1:无效 validInvalid: "", // 是否为有效接待 0:有效 1:无效
}, },
rec_index_show: false, // 按钮权限 rec_index_show: false, // 按钮权限
@@ -559,11 +586,46 @@ export default {
computed: { computed: {
...mapGetters(["permissions"]), ...mapGetters(["permissions"]),
}, },

activated() {
if (this.$route.query.types) {
if (this.$route.query.types.indexOf("&") != -1) {
let arr = this.$route.query.types.split("&");
arr.forEach((item) => {
let as = item.split(",");
this.searchForm[as[0]] = as[1];
});
} else {
let arr = this.$route.query.types.split(",");
this.searchForm[arr[0]] = arr[1];
}
}

if (this.$route.query.date) {
this.time = this.$route.query.date.split(",");
this.searchForm.staDate = this.time[0];
this.searchForm.endDate = this.time[1];
console.log("时间");
}

// 获取项目列表
this.zkhousePage();
},

created() { created() {
if (this.$route.query.types) { if (this.$route.query.types) {
let arr = this.$route.query.types.split(",");
this.searchForm[arr[0]] = arr[1];
console.log(arr);
if (this.$route.query.types.indexOf("&") != -1) {
let arr = this.$route.query.types.split("&");
arr.forEach((item) => {
let as = item.split(",");
this.searchForm[as[0]] = as[1];
});
} else {
let arr = this.$route.query.types.split(",");
this.searchForm[arr[0]] = arr[1];
}
} }


if (this.$route.query.date) { if (this.$route.query.date) {
@@ -584,16 +646,16 @@ export default {
}, },


methods: { methods: {
isSystoleForm(){
this.isOpen = !this.isOpen
isSystoleForm() {
this.isOpen = !this.isOpen;
}, },
// 清除上次进入遗留的数据 // 清除上次进入遗留的数据
resetParams() { resetParams() {
this.searchForm.taboo = ''
this.searchForm.validInvalid = ''
this.searchForm.endDate = ''
this.searchForm.staDate = ''
this.time = ''
this.searchForm.taboo = "";
this.searchForm.validInvalid = "";
this.searchForm.endDate = "";
this.searchForm.staDate = "";
this.time = "";
}, },


downLoad() { downLoad() {
@@ -745,7 +807,7 @@ export default {
this.searchForm.endDate = ""; this.searchForm.endDate = "";
// this.$set(this, "time", null); // this.$set(this, "time", null);
this.searchForm.dateType = idx; this.searchForm.dateType = idx;
this.time = []
this.time = [];
this.houseChange(); this.houseChange();
}, },
timestampToTime(timestamp) { timestampToTime(timestamp) {
@@ -768,7 +830,7 @@ export default {


watch: { watch: {
$route(to, from) { $route(to, from) {
this.resetParams()
this.resetParams();
//监听路由是否变化 //监听路由是否变化
if (to.query.types != from.query.types && to.query.types != null) { if (to.query.types != from.query.types && to.query.types != null) {
let arr = this.$route.query.types.split(","); let arr = this.$route.query.types.split(",");
@@ -858,11 +920,11 @@ export default {
.div-inp { .div-inp {
width: 250px; width: 250px;
} }
/deep/ .el-table__header-wrapper{
thead{
tr{
th{
background: #F5F7FA;
/deep/ .el-table__header-wrapper {
thead {
tr {
th {
background: #f5f7fa;
color: #333333; color: #333333;
} }
} }


+ 6
- 1
src/views/Statistics/ConsultantBrand.vue View File

@@ -478,7 +478,7 @@
<div class="hejisan"> <div class="hejisan">
<div class="sanbox1" style="width: 50%;text-align: center;"> <div class="sanbox1" style="width: 50%;text-align: center;">
<div class="text1-1">未标记合计</div> <div class="text1-1">未标记合计</div>
<div class="text1-2">{{ num5 }}个</div>
<div class="text1-2">{{ sum5 }}个</div>
</div> </div>
<div class="sanbox1" style="width: 50%;text-align: center;"> <div class="sanbox1" style="width: 50%;text-align: center;">
<div class="text1-1">均值</div> <div class="text1-1">均值</div>
@@ -668,6 +668,11 @@ export default {
...mapGetters(["permissions"]), ...mapGetters(["permissions"]),
}, },
created() { created() {
if (this.$route.query.types) {
let arr = this.$route.query.types.split(",");
this[arr[0]] = arr[1];
console.log(arr);
}
this.sta_men_downLoad = this.permissions["sta_men_downLoad"]; this.sta_men_downLoad = this.permissions["sta_men_downLoad"];
}, },
mounted() { mounted() {


+ 1
- 1
vue.config.js View File

@@ -2,7 +2,7 @@
* 配置参考: * 配置参考:
* https://cli.vuejs.org/zh/config/ * https://cli.vuejs.org/zh/config/
*/ */
// const url = 'http://192.168.31.167:9999' //长龙
// const url = 'http://192.168.31.161:9999' //长龙
// const url = 'http://192.168.31.211:9999' // 泽明 // const url = 'http://192.168.31.211:9999' // 泽明
// const url = 'http://192.168.31.100:9999' //王笑 // const url = 'http://192.168.31.100:9999' //王笑
// const url = 'http://62.234.122.43:9999' //正式 // const url = 'http://62.234.122.43:9999' //正式


Loading…
Cancel
Save