|
@@ -12,7 +12,7 @@
|
|
|
class="popoverConten"
|
|
class="popoverConten"
|
|
|
v-for="(item, index) in visitCollapse.tipsPopoverlabel"
|
|
v-for="(item, index) in visitCollapse.tipsPopoverlabel"
|
|
|
:key="index">
|
|
:key="index">
|
|
|
- {{ item.label }}:{{ item.prop }}
|
|
|
|
|
|
|
+ {{ item }}
|
|
|
</div>
|
|
</div>
|
|
|
<div slot="reference" class="hintIconBox">
|
|
<div slot="reference" class="hintIconBox">
|
|
|
<img class="hintIcon" :src="hintIcon" />
|
|
<img class="hintIcon" :src="hintIcon" />
|
|
@@ -20,7 +20,10 @@
|
|
|
</el-popover>
|
|
</el-popover>
|
|
|
</div>
|
|
</div>
|
|
|
</template>
|
|
</template>
|
|
|
- <visitPage :contentData="visitCollapse.contentData"></visitPage>
|
|
|
|
|
|
|
+ <visitPage
|
|
|
|
|
+ :contentData="visitCollapse.contentData"
|
|
|
|
|
+ :maskShow="visitCollapse.collapseLosding"
|
|
|
|
|
+ :resData="visitCollapse.resData"></visitPage>
|
|
|
</van-collapse-item>
|
|
</van-collapse-item>
|
|
|
<!-- 建店 -->
|
|
<!-- 建店 -->
|
|
|
<van-collapse-item :name="createStore.name">
|
|
<van-collapse-item :name="createStore.name">
|
|
@@ -40,19 +43,18 @@
|
|
|
</el-popover>
|
|
</el-popover>
|
|
|
</div>
|
|
</div>
|
|
|
</template>
|
|
</template>
|
|
|
- <visitPage :contentData="createStore.contentData"></visitPage>
|
|
|
|
|
|
|
+ <!-- <visitPage
|
|
|
|
|
+ :contentData="createStore.contentData"
|
|
|
|
|
+ :maskShow="createStore.collapseLosding"></visitPage> -->
|
|
|
</van-collapse-item>
|
|
</van-collapse-item>
|
|
|
<!-- 日报、周报、半月报 -->
|
|
<!-- 日报、周报、半月报 -->
|
|
|
- <van-collapse-item name="3">
|
|
|
|
|
|
|
+ <van-collapse-item name="3" v-if="empLevel != 4">
|
|
|
<template #title>
|
|
<template #title>
|
|
|
<div class="itemHeader" @click.stop>
|
|
<div class="itemHeader" @click.stop>
|
|
|
<span class="itemTitle">{{ report.title }}</span>
|
|
<span class="itemTitle">{{ report.title }}</span>
|
|
|
<el-popover placement="right" trigger="click" popper-class="hintPopover">
|
|
<el-popover placement="right" trigger="click" popper-class="hintPopover">
|
|
|
- <div
|
|
|
|
|
- class="popoverConten"
|
|
|
|
|
- v-for="(item, index) in report.tipsPopoverlabel"
|
|
|
|
|
- :key="index">
|
|
|
|
|
- {{ item.label }}:{{ item.prop }}
|
|
|
|
|
|
|
+ <div class="popoverConten">
|
|
|
|
|
+ {{ report.reportData.tip }}
|
|
|
</div>
|
|
</div>
|
|
|
<div slot="reference" class="hintIconBox">
|
|
<div slot="reference" class="hintIconBox">
|
|
|
<img class="hintIcon" :src="hintIcon" />
|
|
<img class="hintIcon" :src="hintIcon" />
|
|
@@ -63,34 +65,29 @@
|
|
|
<div class="reportContent">
|
|
<div class="reportContent">
|
|
|
<div class="reportItem">
|
|
<div class="reportItem">
|
|
|
<div class="label">填写率:</div>
|
|
<div class="label">填写率:</div>
|
|
|
- <div class="value">本月{{}}%</div>
|
|
|
|
|
- <div class="itemDetail">下属详情</div>
|
|
|
|
|
|
|
+ <div class="value">本月{{ report.reportData.fillingRate }}</div>
|
|
|
|
|
+ <div class="itemDetail" v-if="empLevel != 3" @click="reportClick('fillingRate')">
|
|
|
|
|
+ 下属详情
|
|
|
|
|
+ </div>
|
|
|
</div>
|
|
</div>
|
|
|
- <div class="reportItem">
|
|
|
|
|
|
|
+ <div class="reportItem" v-show="empLevel != 3">
|
|
|
<div class="label">审批率:</div>
|
|
<div class="label">审批率:</div>
|
|
|
- <div class="value">本月{{}}%</div>
|
|
|
|
|
- <div class="itemDetail">下属详情</div>
|
|
|
|
|
|
|
+ <div class="value">本月{{ report.reportData.approvalRate }}</div>
|
|
|
</div>
|
|
</div>
|
|
|
- <div class="">本周点评业务员</div>
|
|
|
|
|
- <div class="reportItem">
|
|
|
|
|
|
|
+ <div class="" v-show="empLevel == 1">本周点评业务员</div>
|
|
|
|
|
+ <div class="reportItem" v-show="empLevel == 1">
|
|
|
<div class="label">日报数(目标数):</div>
|
|
<div class="label">日报数(目标数):</div>
|
|
|
- <div class="value">{{}}</div>
|
|
|
|
|
- <div class="itemDetail">下属详情</div>
|
|
|
|
|
|
|
+ <div class="value">{{ report.reportData.commentNum }}个(5个)</div>
|
|
|
|
|
+ <div class="itemDetail" @click="reportClick('commentNum')">进入点评</div>
|
|
|
</div>
|
|
</div>
|
|
|
</div>
|
|
</div>
|
|
|
</van-collapse-item>
|
|
</van-collapse-item>
|
|
|
<!-- 色卡 -->
|
|
<!-- 色卡 -->
|
|
|
- <van-collapse-item name="4">
|
|
|
|
|
|
|
+ <van-collapse-item name="4" v-if="empLevel == 2 || empLevel == 3">
|
|
|
<template #title>
|
|
<template #title>
|
|
|
<div class="itemHeader" @click.stop>
|
|
<div class="itemHeader" @click.stop>
|
|
|
<span class="itemTitle">{{ report.title }}</span>
|
|
<span class="itemTitle">{{ report.title }}</span>
|
|
|
<el-popover placement="right" trigger="click" popper-class="hintPopover">
|
|
<el-popover placement="right" trigger="click" popper-class="hintPopover">
|
|
|
- <div
|
|
|
|
|
- class="popoverConten"
|
|
|
|
|
- v-for="(item, index) in report.tipsPopoverlabel"
|
|
|
|
|
- :key="index">
|
|
|
|
|
- {{ item.label }}:{{ item.prop }}
|
|
|
|
|
- </div>
|
|
|
|
|
<div slot="reference" class="hintIconBox">
|
|
<div slot="reference" class="hintIconBox">
|
|
|
<img class="hintIcon" :src="hintIcon" />
|
|
<img class="hintIcon" :src="hintIcon" />
|
|
|
</div>
|
|
</div>
|
|
@@ -103,55 +100,41 @@
|
|
|
</div>
|
|
</div>
|
|
|
</template>
|
|
</template>
|
|
|
<script>
|
|
<script>
|
|
|
|
|
+import { getReportTarget } from '@/api/index';
|
|
|
import hintIcon from '@/assets/hintIcon.png';
|
|
import hintIcon from '@/assets/hintIcon.png';
|
|
|
import visitPage from './visitPage.vue';
|
|
import visitPage from './visitPage.vue';
|
|
|
|
|
+import { mapState } from 'vuex';
|
|
|
export default {
|
|
export default {
|
|
|
components: { visitPage },
|
|
components: { visitPage },
|
|
|
|
|
+ computed: {
|
|
|
|
|
+ ...mapState({
|
|
|
|
|
+ userInfo: (state) => state.user.userInfo,
|
|
|
|
|
+ }),
|
|
|
|
|
+ },
|
|
|
data() {
|
|
data() {
|
|
|
return {
|
|
return {
|
|
|
|
|
+ empLevel: 1, //员工级别,1大区主管2销售部主管3业务员4其他 ***其他级别4,不显示日报、周报、半月报和色卡
|
|
|
hintIcon: hintIcon,
|
|
hintIcon: hintIcon,
|
|
|
- activeNames: [1, 2],
|
|
|
|
|
|
|
+ activeNames: ['1', '2', '3', '4', '5'],
|
|
|
visitCollapse: {
|
|
visitCollapse: {
|
|
|
- name: 1,
|
|
|
|
|
|
|
+ name: '1',
|
|
|
title: '拜访(实时)',
|
|
title: '拜访(实时)',
|
|
|
- showPopover: false,
|
|
|
|
|
- tipsPopoverlabel: [
|
|
|
|
|
- {
|
|
|
|
|
- label: '本月拜访率',
|
|
|
|
|
- prop: '',
|
|
|
|
|
- },
|
|
|
|
|
- {
|
|
|
|
|
- label: '进2个月拜访率',
|
|
|
|
|
- prop: '',
|
|
|
|
|
- },
|
|
|
|
|
- {
|
|
|
|
|
- label: '进3个月拜访率',
|
|
|
|
|
- prop: '',
|
|
|
|
|
- },
|
|
|
|
|
- ],
|
|
|
|
|
|
|
+ collapseLosding: true,
|
|
|
|
|
+ tipsPopoverlabel: [],
|
|
|
tipsPopoverValue: null,
|
|
tipsPopoverValue: null,
|
|
|
contentData: [
|
|
contentData: [
|
|
|
{
|
|
{
|
|
|
title: '可控店',
|
|
title: '可控店',
|
|
|
|
|
+ titleProp: 'keKong',
|
|
|
bagColor: '#eb6877',
|
|
bagColor: '#eb6877',
|
|
|
visitDetail: [
|
|
visitDetail: [
|
|
|
{
|
|
{
|
|
|
leftTable: '本月拜访率:',
|
|
leftTable: '本月拜访率:',
|
|
|
- leftValue: '',
|
|
|
|
|
|
|
+ leftProp: 'visitRateThisMonth',
|
|
|
leftUnit: '%',
|
|
leftUnit: '%',
|
|
|
leftIsClick: false,
|
|
leftIsClick: false,
|
|
|
rightTable: '未拜访:',
|
|
rightTable: '未拜访:',
|
|
|
- rightValue: '',
|
|
|
|
|
- rightUnit: '家',
|
|
|
|
|
- rightIsClick: true,
|
|
|
|
|
- },
|
|
|
|
|
- {
|
|
|
|
|
- leftTable: '本月拜访率:',
|
|
|
|
|
- leftValue: '',
|
|
|
|
|
- leftUnit: '%',
|
|
|
|
|
- leftIsClick: false,
|
|
|
|
|
- rightTable: '未拜访:',
|
|
|
|
|
- rightValue: '',
|
|
|
|
|
|
|
+ rightProp: 'notVisited',
|
|
|
rightUnit: '家',
|
|
rightUnit: '家',
|
|
|
rightIsClick: true,
|
|
rightIsClick: true,
|
|
|
},
|
|
},
|
|
@@ -159,15 +142,16 @@ export default {
|
|
|
},
|
|
},
|
|
|
{
|
|
{
|
|
|
title: '金牌店',
|
|
title: '金牌店',
|
|
|
|
|
+ titleProp: 'jinPai',
|
|
|
bagColor: '#f1b789',
|
|
bagColor: '#f1b789',
|
|
|
visitDetail: [
|
|
visitDetail: [
|
|
|
{
|
|
{
|
|
|
leftTable: '本月拜访率:',
|
|
leftTable: '本月拜访率:',
|
|
|
- leftValue: '',
|
|
|
|
|
|
|
+ leftProp: 'visitRateThisMonth',
|
|
|
leftUnit: '%',
|
|
leftUnit: '%',
|
|
|
leftIsClick: false,
|
|
leftIsClick: false,
|
|
|
rightTable: '未拜访:',
|
|
rightTable: '未拜访:',
|
|
|
- rightValue: '',
|
|
|
|
|
|
|
+ rightProp: 'notVisited',
|
|
|
rightUnit: '家',
|
|
rightUnit: '家',
|
|
|
rightIsClick: true,
|
|
rightIsClick: true,
|
|
|
},
|
|
},
|
|
@@ -175,15 +159,16 @@ export default {
|
|
|
},
|
|
},
|
|
|
{
|
|
{
|
|
|
title: '同A店',
|
|
title: '同A店',
|
|
|
|
|
+ titleProp: 'tongA',
|
|
|
bagColor: '#88abda',
|
|
bagColor: '#88abda',
|
|
|
visitDetail: [
|
|
visitDetail: [
|
|
|
{
|
|
{
|
|
|
leftTable: '进2个月拜访率:',
|
|
leftTable: '进2个月拜访率:',
|
|
|
- leftValue: '',
|
|
|
|
|
|
|
+ leftProp: 'visitRateInThePastTwoMonths',
|
|
|
leftUnit: '%',
|
|
leftUnit: '%',
|
|
|
leftIsClick: false,
|
|
leftIsClick: false,
|
|
|
rightTable: '未拜访:',
|
|
rightTable: '未拜访:',
|
|
|
- rightValue: '',
|
|
|
|
|
|
|
+ rightProp: 'notVisited',
|
|
|
rightUnit: '家',
|
|
rightUnit: '家',
|
|
|
rightIsClick: true,
|
|
rightIsClick: true,
|
|
|
},
|
|
},
|
|
@@ -191,15 +176,16 @@ export default {
|
|
|
},
|
|
},
|
|
|
{
|
|
{
|
|
|
title: '同B店',
|
|
title: '同B店',
|
|
|
|
|
+ titleProp: 'tongB',
|
|
|
bagColor: '#8f82bc',
|
|
bagColor: '#8f82bc',
|
|
|
visitDetail: [
|
|
visitDetail: [
|
|
|
{
|
|
{
|
|
|
leftTable: '进3个月拜访率:',
|
|
leftTable: '进3个月拜访率:',
|
|
|
- leftValue: '',
|
|
|
|
|
|
|
+ leftProp: 'visitRateInThePastThreeMonths',
|
|
|
leftUnit: '%',
|
|
leftUnit: '%',
|
|
|
leftIsClick: false,
|
|
leftIsClick: false,
|
|
|
rightTable: '未拜访:',
|
|
rightTable: '未拜访:',
|
|
|
- rightValue: '',
|
|
|
|
|
|
|
+ rightProp: 'notVisited',
|
|
|
rightUnit: '家',
|
|
rightUnit: '家',
|
|
|
rightIsClick: true,
|
|
rightIsClick: true,
|
|
|
},
|
|
},
|
|
@@ -208,9 +194,9 @@ export default {
|
|
|
],
|
|
],
|
|
|
},
|
|
},
|
|
|
createStore: {
|
|
createStore: {
|
|
|
- name: 2,
|
|
|
|
|
|
|
+ name: '2',
|
|
|
title: '建店',
|
|
title: '建店',
|
|
|
- showPopover: false,
|
|
|
|
|
|
|
+ collapseLosding: true,
|
|
|
tipsPopoverlabel: [
|
|
tipsPopoverlabel: [
|
|
|
{
|
|
{
|
|
|
label: '未完工',
|
|
label: '未完工',
|
|
@@ -316,29 +302,115 @@ export default {
|
|
|
],
|
|
],
|
|
|
},
|
|
},
|
|
|
],
|
|
],
|
|
|
|
|
+ resData: {},
|
|
|
},
|
|
},
|
|
|
report: {
|
|
report: {
|
|
|
- title: '日报',
|
|
|
|
|
- tipsPopoverlabel: [
|
|
|
|
|
- {
|
|
|
|
|
- label: '下述指标',
|
|
|
|
|
- prop: '本人填写/审批情况',
|
|
|
|
|
- },
|
|
|
|
|
- ],
|
|
|
|
|
|
|
+ title: '',
|
|
|
|
|
+ reportData: {},
|
|
|
},
|
|
},
|
|
|
pantone: [
|
|
pantone: [
|
|
|
|
|
+ // 业务员
|
|
|
{
|
|
{
|
|
|
- title: '1988',
|
|
|
|
|
|
|
+ firstRowLLabel: '已领用',
|
|
|
|
|
+ firstRowLProp: 'firstRowLProp',
|
|
|
|
|
+ firstRowRLabel: '已发放门店',
|
|
|
|
|
+ firstRowRProp: 'firstRowRProp',
|
|
|
|
|
+ secondRowLLabel: '门店未签收',
|
|
|
|
|
+ secondRowLProp: 'secondRowLProp',
|
|
|
|
|
+ secondRowRLabel: '门店未签收',
|
|
|
|
|
+ secondRowRProp: 'secondRowRProp',
|
|
|
|
|
+ },
|
|
|
|
|
+ // 销售部主管
|
|
|
|
|
+ {
|
|
|
|
|
+ firstRowLLabel: '直发销售部数',
|
|
|
|
|
+ firstRowLProp: 'firstRowLProp',
|
|
|
|
|
+ firstRowRLabel: '业务员已领用',
|
|
|
|
|
+ firstRowRProp: 'firstRowRProp',
|
|
|
|
|
+ secondRowLLabel: '业务员已发放',
|
|
|
|
|
+ secondRowLProp: 'secondRowLProp',
|
|
|
|
|
+ secondRowRLabel: '门店未签收',
|
|
|
|
|
+ secondRowRProp: 'secondRowRProp',
|
|
|
},
|
|
},
|
|
|
],
|
|
],
|
|
|
|
|
+ pantoneData: null,
|
|
|
};
|
|
};
|
|
|
},
|
|
},
|
|
|
created() {
|
|
created() {
|
|
|
|
|
+ // this.empLevel = this.userInfo.empLevel || 2;
|
|
|
|
|
+ // 获取拜访数据
|
|
|
|
|
+ this.getVisitCollapseData();
|
|
|
// 获取汇报数据 日报、周报、半月报
|
|
// 获取汇报数据 日报、周报、半月报
|
|
|
this.getReportData();
|
|
this.getReportData();
|
|
|
|
|
+ // 获取色卡数据
|
|
|
|
|
+ this.getPantoneData();
|
|
|
},
|
|
},
|
|
|
methods: {
|
|
methods: {
|
|
|
- getReportData() {},
|
|
|
|
|
|
|
+ getVisitCollapseData() {
|
|
|
|
|
+ let resData = {
|
|
|
|
|
+ reminderContent: [
|
|
|
|
|
+ '1.本月拜访率:2024-10-01~2024-10-31',
|
|
|
|
|
+ '2.近2月拜访率:2024-08-01~2024-10-31',
|
|
|
|
|
+ '3.近3月拜访率:2024-07-01~2024-10-31',
|
|
|
|
|
+ ],
|
|
|
|
|
+ jinPai: {
|
|
|
|
|
+ notVisited: 2007,
|
|
|
|
|
+ visitRateThisMonth: '0.5%',
|
|
|
|
|
+ },
|
|
|
|
|
+ tongB: {
|
|
|
|
|
+ notVisited: 838,
|
|
|
|
|
+ visitRateInThePastThreeMonths: '6.2%',
|
|
|
|
|
+ },
|
|
|
|
|
+ tongA: {
|
|
|
|
|
+ visitRateInThePastTwoMonths: '8.8%',
|
|
|
|
|
+ notVisited: 384,
|
|
|
|
|
+ },
|
|
|
|
|
+ keKong: {
|
|
|
|
|
+ notVisited: 73,
|
|
|
|
|
+ visitRateThisMonth: '27.0%',
|
|
|
|
|
+ },
|
|
|
|
|
+ };
|
|
|
|
|
+ this.visitCollapse.collapseLosding = false;
|
|
|
|
|
+ this.visitCollapse.tipsPopoverlabel = resData.reminderContent;
|
|
|
|
|
+ this.visitCollapse.resData = resData;
|
|
|
|
|
+ },
|
|
|
|
|
+ getReportData() {
|
|
|
|
|
+ if (this.empLevel == 1) {
|
|
|
|
|
+ this.report.title = '半月报';
|
|
|
|
|
+ } else if (this.empLevel == 2) {
|
|
|
|
|
+ this.report.title = '周报';
|
|
|
|
|
+ } else if (this.empLevel == 3) {
|
|
|
|
|
+ this.report.title = '日报';
|
|
|
|
|
+ }
|
|
|
|
|
+ let resData = {
|
|
|
|
|
+ commentNum: '',
|
|
|
|
|
+ empLevel: '2',
|
|
|
|
|
+ tip: '下述指标:本人填写/审批情况',
|
|
|
|
|
+ approvalRate: '0.00%',
|
|
|
|
|
+ fillingRate: '0.00%',
|
|
|
|
|
+ };
|
|
|
|
|
+ this.report.reportData = resData || {};
|
|
|
|
|
+ // getReportTarget().then((res) => {
|
|
|
|
|
+ // this.report.reportData = res.data || {};
|
|
|
|
|
+ // if (this.empLevel == 1) {
|
|
|
|
|
+ // this.report.title = '半月报';
|
|
|
|
|
+ // } else if (this.empLevel == 2) {
|
|
|
|
|
+ // this.report.title = '周报';
|
|
|
|
|
+ // } else if (this.empLevel == 3) {
|
|
|
|
|
+ // this.report.title = '日报';
|
|
|
|
|
+ // }
|
|
|
|
|
+ // });
|
|
|
|
|
+ },
|
|
|
|
|
+ getPantoneData() {},
|
|
|
|
|
+ // 汇报下属详情-点击
|
|
|
|
|
+ reportClick(type) {
|
|
|
|
|
+ if (type == 'fillingRate') {
|
|
|
|
|
+ // 下属汇报率审批率统计
|
|
|
|
|
+ this.$router.push({ path: 'reportingRate' });
|
|
|
|
|
+ } else if (type == 'commentNum') {
|
|
|
|
|
+ // 下属业务员历史日报
|
|
|
|
|
+ this.$router.push({ path: 'subordinateHistoricalDaily' });
|
|
|
|
|
+ }
|
|
|
|
|
+ },
|
|
|
},
|
|
},
|
|
|
};
|
|
};
|
|
|
</script>
|
|
</script>
|