|
@@ -1,13 +1,18 @@ |
|
|
<template> |
|
|
<template> |
|
|
<div class="box-center"> |
|
|
<div class="box-center"> |
|
|
<!-- 头 --> |
|
|
<!-- 头 --> |
|
|
<div class="app-titel"> |
|
|
|
|
|
|
|
|
<div class="app-titel" v-if="orgType != 3"> |
|
|
<div class="titel-text"> |
|
|
<div class="titel-text"> |
|
|
楼盘选择: |
|
|
楼盘选择: |
|
|
<el-select v-model="houseId" placeholder="请选择"> |
|
|
|
|
|
|
|
|
<el-select |
|
|
|
|
|
v-model="houseId" |
|
|
|
|
|
@change="houseChange" |
|
|
|
|
|
filterable |
|
|
|
|
|
placeholder="请选择" |
|
|
|
|
|
> |
|
|
<el-option |
|
|
<el-option |
|
|
v-for="item in buildingoptions" |
|
|
|
|
|
:key="item.value" |
|
|
|
|
|
|
|
|
v-for="item in houseList" |
|
|
|
|
|
:key="item.id" |
|
|
:label="item.propertyName" |
|
|
:label="item.propertyName" |
|
|
:value="item.id" |
|
|
:value="item.id" |
|
|
> |
|
|
> |
|
@@ -17,14 +22,14 @@ |
|
|
</div> |
|
|
</div> |
|
|
<div class="app-titel"> |
|
|
<div class="app-titel"> |
|
|
<div class="toptimeqhuan"> |
|
|
<div class="toptimeqhuan"> |
|
|
<div :class="{ tophove: TimetoAhoose == 0 }" @click="tabtimetap(0)"> |
|
|
|
|
|
今日 |
|
|
|
|
|
|
|
|
<div :class="{ tophove: dateType == 4 }" @click="tabtimetap(4)"> |
|
|
|
|
|
近7天 |
|
|
</div> |
|
|
</div> |
|
|
<div :class="{ tophove: TimetoAhoose == 1 }" @click="tabtimetap(1)"> |
|
|
|
|
|
昨日 |
|
|
|
|
|
|
|
|
<div :class="{ tophove: dateType == 5 }" @click="tabtimetap(5)"> |
|
|
|
|
|
近15天 |
|
|
</div> |
|
|
</div> |
|
|
<div :class="{ tophove: TimetoAhoose == 2 }" @click="tabtimetap(2)"> |
|
|
|
|
|
近一周 |
|
|
|
|
|
|
|
|
<div :class="{ tophove: dateType == 6 }" @click="tabtimetap(6)"> |
|
|
|
|
|
近30天 |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
<div style="margin-left: 26px"> |
|
|
<div style="margin-left: 26px"> |
|
@@ -41,25 +46,19 @@ |
|
|
</el-date-picker> |
|
|
</el-date-picker> |
|
|
</div> |
|
|
</div> |
|
|
<div style="margin-left: 26px" class="div-lab"> |
|
|
<div style="margin-left: 26px" class="div-lab"> |
|
|
<div class="label">员工</div> |
|
|
|
|
|
<el-select v-model="value" placeholder="请选择" class="div-inp"> |
|
|
|
|
|
<el-option |
|
|
|
|
|
v-for="item in options" |
|
|
|
|
|
:key="item.value" |
|
|
|
|
|
:label="item.label" |
|
|
|
|
|
:value="item.value" |
|
|
|
|
|
> |
|
|
|
|
|
</el-option> |
|
|
|
|
|
</el-select> |
|
|
|
|
|
</div> |
|
|
|
|
|
<div style="margin-left: 26px" class="div-lab"> |
|
|
|
|
|
<div class="label">对比</div> |
|
|
|
|
|
<el-select v-model="value" placeholder="请选择" class="div-inp"> |
|
|
|
|
|
|
|
|
<div class="label">团队</div> |
|
|
|
|
|
<el-select |
|
|
|
|
|
v-model="deptId" |
|
|
|
|
|
filterable |
|
|
|
|
|
@change="deptChange" |
|
|
|
|
|
placeholder="请选择" |
|
|
|
|
|
class="div-inp" |
|
|
|
|
|
> |
|
|
<el-option |
|
|
<el-option |
|
|
v-for="item in options" |
|
|
v-for="item in options" |
|
|
:key="item.value" |
|
|
|
|
|
:label="item.label" |
|
|
|
|
|
:value="item.value" |
|
|
|
|
|
|
|
|
:key="item.deptId" |
|
|
|
|
|
:label="item.name" |
|
|
|
|
|
:value="item.deptId" |
|
|
> |
|
|
> |
|
|
</el-option> |
|
|
</el-option> |
|
|
</el-select> |
|
|
</el-select> |
|
@@ -78,33 +77,26 @@ |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
<el-table :data="tableData" stripe style="width: 100%"> |
|
|
|
|
|
|
|
|
<!-- <el-table :data="tableData" stripe style="width: 100%"> |
|
|
<el-table-column prop="batchId" label="序号" align="center"> |
|
|
<el-table-column prop="batchId" label="序号" align="center"> |
|
|
</el-table-column> |
|
|
</el-table-column> |
|
|
<el-table-column prop="name" label="顾问" align="center"> |
|
|
<el-table-column prop="name" label="顾问" align="center"> |
|
|
</el-table-column> |
|
|
</el-table-column> |
|
|
<el-table-column prop="name" label="归属团队" align="center"> |
|
|
<el-table-column prop="name" label="归属团队" align="center"> |
|
|
</el-table-column> |
|
|
</el-table-column> |
|
|
<el-table-column |
|
|
|
|
|
prop="name" |
|
|
|
|
|
v-if="tabFlag == 0" |
|
|
|
|
|
label="设备在线天数" |
|
|
|
|
|
align="center" |
|
|
|
|
|
> |
|
|
|
|
|
</el-table-column> |
|
|
|
|
|
<el-table-column prop="name" label="接待量" align="center"> |
|
|
<el-table-column prop="name" label="接待量" align="center"> |
|
|
</el-table-column> |
|
|
</el-table-column> |
|
|
<el-table-column |
|
|
<el-table-column |
|
|
v-if="tabFlag == 1" |
|
|
v-if="tabFlag == 1" |
|
|
prop="realityEquipmentCount" |
|
|
prop="realityEquipmentCount" |
|
|
label="违禁次数" |
|
|
|
|
|
|
|
|
label="违禁接待次数" |
|
|
align="center" |
|
|
align="center" |
|
|
> |
|
|
> |
|
|
</el-table-column> |
|
|
</el-table-column> |
|
|
<el-table-column |
|
|
<el-table-column |
|
|
v-if="tabFlag == 1" |
|
|
v-if="tabFlag == 1" |
|
|
prop="receivableEquipmentCount" |
|
|
prop="receivableEquipmentCount" |
|
|
label="违禁占比" |
|
|
|
|
|
|
|
|
label="违禁接待占比" |
|
|
align="center" |
|
|
align="center" |
|
|
> |
|
|
> |
|
|
</el-table-column> |
|
|
</el-table-column> |
|
@@ -118,14 +110,21 @@ |
|
|
<el-table-column |
|
|
<el-table-column |
|
|
v-if="tabFlag == 1" |
|
|
v-if="tabFlag == 1" |
|
|
prop="acceptanceNum" |
|
|
prop="acceptanceNum" |
|
|
label="返现执行率" |
|
|
|
|
|
|
|
|
label="返现次数" |
|
|
align="center" |
|
|
align="center" |
|
|
> |
|
|
> |
|
|
</el-table-column> |
|
|
</el-table-column> |
|
|
<el-table-column |
|
|
<el-table-column |
|
|
v-if="tabFlag == 1" |
|
|
v-if="tabFlag == 1" |
|
|
prop="acceptanceNum" |
|
|
prop="acceptanceNum" |
|
|
label="过度保证执行率" |
|
|
|
|
|
|
|
|
label="过度保证次数" |
|
|
|
|
|
align="center" |
|
|
|
|
|
> |
|
|
|
|
|
</el-table-column> |
|
|
|
|
|
<el-table-column |
|
|
|
|
|
v-if="tabFlag == 1" |
|
|
|
|
|
prop="acceptanceNum" |
|
|
|
|
|
label="次数" |
|
|
align="center" |
|
|
align="center" |
|
|
> |
|
|
> |
|
|
</el-table-column> |
|
|
</el-table-column> |
|
@@ -143,17 +142,79 @@ |
|
|
align="center" |
|
|
align="center" |
|
|
> |
|
|
> |
|
|
</el-table-column> |
|
|
</el-table-column> |
|
|
<el-table-column prop="remark" label="...执行性率" align="center"> |
|
|
|
|
|
|
|
|
<el-table-column prop="remark" label="执行性率" align="center"> |
|
|
|
|
|
</el-table-column> |
|
|
|
|
|
<el-table-column v-if="tabFlag == 0" label="销奖执行率" align="center"> |
|
|
|
|
|
</el-table-column> |
|
|
|
|
|
</el-table> --> |
|
|
|
|
|
<el-table max-height="300" :data="tableData" stripe style="width: 100%"> |
|
|
|
|
|
<el-table-column prop="batchId" label="序号" align="center"> |
|
|
|
|
|
<template slot-scope="scope"> |
|
|
|
|
|
{{ |
|
|
|
|
|
scope.$index == tableData.length - 1 |
|
|
|
|
|
? "合计/平均" |
|
|
|
|
|
: scope.$index + 1 |
|
|
|
|
|
}} |
|
|
|
|
|
</template> |
|
|
|
|
|
</el-table-column> |
|
|
|
|
|
<el-table-column prop="accountName" label="顾问" align="center"> |
|
|
|
|
|
</el-table-column> |
|
|
|
|
|
<el-table-column prop="deptName" label="归属团队" align="center"> |
|
|
|
|
|
</el-table-column> |
|
|
|
|
|
<!-- <el-table-column prop="statDate" label="日期" align="center"> |
|
|
|
|
|
<template slot-scope="scope"> |
|
|
|
|
|
{{scope.$index==tableData.length-1?'合计/平均':scope.row.statDate.substring(0,10)}} |
|
|
|
|
|
</template> |
|
|
|
|
|
</el-table-column> --> |
|
|
|
|
|
<el-table-column prop="activeCustomer" label="接待量" align="center"> |
|
|
|
|
|
</el-table-column> |
|
|
|
|
|
<el-table-column |
|
|
|
|
|
v-if="tabFlag == 1" |
|
|
|
|
|
prop="prohibitedCustomer" |
|
|
|
|
|
label="违禁接待次数" |
|
|
|
|
|
align="center" |
|
|
|
|
|
> |
|
|
|
|
|
</el-table-column> |
|
|
|
|
|
<el-table-column |
|
|
|
|
|
v-if="tabFlag == 1" |
|
|
|
|
|
prop="prohibitedZb" |
|
|
|
|
|
label="违禁接待占比" |
|
|
|
|
|
align="center" |
|
|
|
|
|
> |
|
|
|
|
|
</el-table-column> |
|
|
|
|
|
<el-table-column |
|
|
|
|
|
v-if="tabFlag == 0" |
|
|
|
|
|
prop="realityEquipmentCount" |
|
|
|
|
|
label="接待时长" |
|
|
|
|
|
align="center" |
|
|
|
|
|
> |
|
|
|
|
|
<template slot-scope="{ row }"> |
|
|
|
|
|
{{ Math.floor(row.sumDuration / 60) }} |
|
|
|
|
|
</template> |
|
|
|
|
|
</el-table-column> |
|
|
|
|
|
<el-table-column |
|
|
|
|
|
v-if="tabFlag == 0" |
|
|
|
|
|
prop="fraction" |
|
|
|
|
|
label="销奖执行率" |
|
|
|
|
|
align="center" |
|
|
|
|
|
> |
|
|
|
|
|
</el-table-column> |
|
|
|
|
|
<el-table-column |
|
|
|
|
|
v-for="(item, idx) in tablist" |
|
|
|
|
|
:key="idx" |
|
|
|
|
|
:prop="item.props" |
|
|
|
|
|
:label="item.label" |
|
|
|
|
|
align="center" |
|
|
|
|
|
> |
|
|
</el-table-column> |
|
|
</el-table-column> |
|
|
<el-table-column label="违禁执行率" align="center"> </el-table-column> |
|
|
|
|
|
</el-table> |
|
|
</el-table> |
|
|
<div style="display: flex; justify-content: flex-end; margin-top: 10px"> |
|
|
<div style="display: flex; justify-content: flex-end; margin-top: 10px"> |
|
|
<el-pagination |
|
|
<el-pagination |
|
|
@size-change="handleSizeChange" |
|
|
@size-change="handleSizeChange" |
|
|
@current-change="handleCurrentChange" |
|
|
@current-change="handleCurrentChange" |
|
|
:current-page="currentPage4" |
|
|
|
|
|
|
|
|
:current-page="current" |
|
|
:page-sizes="[8, 16, 24, 32]" |
|
|
:page-sizes="[8, 16, 24, 32]" |
|
|
:page-size="4" |
|
|
|
|
|
|
|
|
:page-size="size" |
|
|
layout="total, sizes, prev, pager, next, jumper" |
|
|
layout="total, sizes, prev, pager, next, jumper" |
|
|
:total="total" |
|
|
:total="total" |
|
|
> |
|
|
> |
|
@@ -164,41 +225,51 @@ |
|
|
<div class="app-box-san"> |
|
|
<div class="app-box-san"> |
|
|
<div class="zuo"> |
|
|
<div class="zuo"> |
|
|
<div class="title"> |
|
|
<div class="title"> |
|
|
<div class="text1">接待量(TOP10)</div> |
|
|
|
|
|
|
|
|
<div class="text1">接待量排名(TOP10)</div> |
|
|
</div> |
|
|
</div> |
|
|
<div class="hejisan"> |
|
|
<div class="hejisan"> |
|
|
<div class="sanbox1" style="width: 35%"> |
|
|
<div class="sanbox1" style="width: 35%"> |
|
|
<div class="text1-1">合计</div> |
|
|
<div class="text1-1">合计</div> |
|
|
<div class="text1-2">1</div> |
|
|
|
|
|
|
|
|
<div class="text1-2">{{sum1}}</div> |
|
|
</div> |
|
|
</div> |
|
|
<div class="sanbox1" style="width: 40%"> |
|
|
<div class="sanbox1" style="width: 40%"> |
|
|
<div class="text1-1">顾问</div> |
|
|
<div class="text1-1">顾问</div> |
|
|
<div class="text1-2">1</div> |
|
|
|
|
|
|
|
|
<div class="text1-2">{{num1}}</div> |
|
|
</div> |
|
|
</div> |
|
|
<div class="sanbox1" style="width: 25%"> |
|
|
<div class="sanbox1" style="width: 25%"> |
|
|
<div class="text1-1">人均接待量</div> |
|
|
<div class="text1-1">人均接待量</div> |
|
|
<div class="text1-2">1</div> |
|
|
|
|
|
|
|
|
<div class="text1-2">{{avg1}}</div> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
<div |
|
|
<div |
|
|
style="overflow-y: auto; height: 350px; width: 94%; margin: 0 auto" |
|
|
|
|
|
|
|
|
style="overflow-y: auto; height: 258px; width: 94%; margin: 0 auto" |
|
|
> |
|
|
> |
|
|
<div id="echar" style="height: 250px; width: 100%"></div> |
|
|
|
|
|
|
|
|
<div class="jinbox" v-for="(item, i) in echarlist" :key="i"> |
|
|
|
|
|
<div class="jinboxtit">{{ item.accountName }}</div> |
|
|
|
|
|
<div class="jinbox-box"> |
|
|
|
|
|
<div |
|
|
|
|
|
class="boxbaifenbi" |
|
|
|
|
|
:style="'width:' + item.activeCustomer + '%;'" |
|
|
|
|
|
></div> |
|
|
|
|
|
</div> |
|
|
|
|
|
<div class="jinboxbott">{{ item.activeCustomer }}</div> |
|
|
|
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
<div class="you"> |
|
|
<div class="you"> |
|
|
<div class="title"> |
|
|
<div class="title"> |
|
|
<div class="text1">销讲执行率(TOP10)</div> |
|
|
|
|
|
|
|
|
<div class="text1">销讲执行率排名(TOP10))</div> |
|
|
<div class="text2"> |
|
|
<div class="text2"> |
|
|
<el-select |
|
|
<el-select |
|
|
|
|
|
@change="teamAllLevelidtap()" |
|
|
style="width: 90%; margin: 0 auto" |
|
|
style="width: 90%; margin: 0 auto" |
|
|
v-model="value" |
|
|
|
|
|
|
|
|
v-model="teamAllLevelid" |
|
|
placeholder="请选择" |
|
|
placeholder="请选择" |
|
|
> |
|
|
> |
|
|
<el-option |
|
|
<el-option |
|
|
v-for="item in options" |
|
|
|
|
|
|
|
|
v-for="item in teamAllLevel" |
|
|
:key="item.value" |
|
|
:key="item.value" |
|
|
:label="item.label" |
|
|
|
|
|
|
|
|
:label="item.name" |
|
|
:value="item.value" |
|
|
:value="item.value" |
|
|
> |
|
|
> |
|
|
</el-option> |
|
|
</el-option> |
|
@@ -208,29 +279,114 @@ |
|
|
<div class="hejisan"> |
|
|
<div class="hejisan"> |
|
|
<div class="sanbox1" style="width: 35%"> |
|
|
<div class="sanbox1" style="width: 35%"> |
|
|
<div class="text1-1">合计</div> |
|
|
<div class="text1-1">合计</div> |
|
|
<div class="text1-2">1</div> |
|
|
|
|
|
|
|
|
<div class="text1-2">{{sum2}}</div> |
|
|
</div> |
|
|
</div> |
|
|
<div class="sanbox1" style="width: 40%"> |
|
|
<div class="sanbox1" style="width: 40%"> |
|
|
<div class="text1-1">顾问</div> |
|
|
<div class="text1-1">顾问</div> |
|
|
<div class="text1-2">1</div> |
|
|
|
|
|
|
|
|
<div class="text1-2">{{num2}}</div> |
|
|
</div> |
|
|
</div> |
|
|
<div class="sanbox1" style="width: 25%"> |
|
|
<div class="sanbox1" style="width: 25%"> |
|
|
<div class="text1-1">人均接待量</div> |
|
|
<div class="text1-1">人均接待量</div> |
|
|
<div class="text1-2">1</div> |
|
|
|
|
|
|
|
|
<div class="text1-2">{{avg2}}</div> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
<div |
|
|
<div |
|
|
style="overflow-y: auto; height: 350px; width: 94%; margin: 0 auto" |
|
|
|
|
|
|
|
|
style="overflow-y: auto; height: 258px; width: 94%; margin: 0 auto" |
|
|
> |
|
|
> |
|
|
<div class="jinbox" v-for="(item, i) in ceratelist" :key="i"> |
|
|
|
|
|
<div class="jinboxtit">{{ item.name }}</div> |
|
|
|
|
|
|
|
|
<div class="jinbox" v-for="(item, i) in echarlist1" :key="i"> |
|
|
|
|
|
<div class="jinboxtit">{{ item.accountName }}</div> |
|
|
<div class="jinbox-box"> |
|
|
<div class="jinbox-box"> |
|
|
<div |
|
|
<div |
|
|
class="boxbaifenbi" |
|
|
class="boxbaifenbi" |
|
|
:style="'width:' + item.avgZxl + '%;'" |
|
|
|
|
|
|
|
|
:style="'width:' + item.fraction + '%;'" |
|
|
></div> |
|
|
></div> |
|
|
</div> |
|
|
</div> |
|
|
<div class="jinboxbott">{{ item.avgZxl }}%</div> |
|
|
|
|
|
|
|
|
<div class="jinboxbott">{{ item.fraction }}%</div> |
|
|
|
|
|
</div> |
|
|
|
|
|
</div> |
|
|
|
|
|
</div> |
|
|
|
|
|
</div> |
|
|
|
|
|
|
|
|
|
|
|
<div class="app-box-san"> |
|
|
|
|
|
<div class="zuo"> |
|
|
|
|
|
<div class="title"> |
|
|
|
|
|
<div class="text1">接待时长排名(TOP10)</div> |
|
|
|
|
|
</div> |
|
|
|
|
|
<div class="hejisan"> |
|
|
|
|
|
<div class="sanbox1" style="width: 35%"> |
|
|
|
|
|
<div class="text1-1">合计</div> |
|
|
|
|
|
<div class="text1-2">{{sum3}}</div> |
|
|
|
|
|
</div> |
|
|
|
|
|
<div class="sanbox1" style="width: 40%"> |
|
|
|
|
|
<div class="text1-1">顾问</div> |
|
|
|
|
|
<div class="text1-2">{{num3}}</div> |
|
|
|
|
|
</div> |
|
|
|
|
|
<div class="sanbox1" style="width: 25%"> |
|
|
|
|
|
<div class="text1-1">人均接待量</div> |
|
|
|
|
|
<div class="text1-2">{{avg3}}</div> |
|
|
|
|
|
</div> |
|
|
|
|
|
</div> |
|
|
|
|
|
<div |
|
|
|
|
|
style="overflow-y: auto; height: 258px; width: 94%; margin: 0 auto" |
|
|
|
|
|
> |
|
|
|
|
|
<div class="jinbox" v-for="(item, i) in echarlist2" :key="i"> |
|
|
|
|
|
<div class="jinboxtit">{{ item.accountName }}</div> |
|
|
|
|
|
<div class="jinbox-box"> |
|
|
|
|
|
<div |
|
|
|
|
|
class="boxbaifenbi" |
|
|
|
|
|
:style="'width:' + item.sumDuration + '%;'" |
|
|
|
|
|
></div> |
|
|
|
|
|
</div> |
|
|
|
|
|
<div class="jinboxbott">{{ item.sumDuration }}</div> |
|
|
|
|
|
</div> |
|
|
|
|
|
</div> |
|
|
|
|
|
</div> |
|
|
|
|
|
<div class="you"> |
|
|
|
|
|
<div class="title"> |
|
|
|
|
|
<div class="text1">违禁接待次数排名(TOP10)</div> |
|
|
|
|
|
<div class="text2"> |
|
|
|
|
|
<el-select |
|
|
|
|
|
@change="teamAllLeve2tap()" |
|
|
|
|
|
style="width: 90%; margin: 0 auto" |
|
|
|
|
|
v-model="teamAllLeve2id" |
|
|
|
|
|
placeholder="请选择" |
|
|
|
|
|
> |
|
|
|
|
|
<el-option |
|
|
|
|
|
v-for="item in teamAllLeve2" |
|
|
|
|
|
:key="item.value" |
|
|
|
|
|
:label="item.name" |
|
|
|
|
|
:value="item.value" |
|
|
|
|
|
> |
|
|
|
|
|
</el-option> |
|
|
|
|
|
</el-select> |
|
|
|
|
|
</div> |
|
|
|
|
|
</div> |
|
|
|
|
|
<div class="hejisan"> |
|
|
|
|
|
<div class="sanbox1" style="width: 35%"> |
|
|
|
|
|
<div class="text1-1">合计</div> |
|
|
|
|
|
<div class="text1-2">{{sum4}}</div> |
|
|
|
|
|
</div> |
|
|
|
|
|
<div class="sanbox1" style="width: 40%"> |
|
|
|
|
|
<div class="text1-1">顾问</div> |
|
|
|
|
|
<div class="text1-2">{{num4}}</div> |
|
|
|
|
|
</div> |
|
|
|
|
|
<div class="sanbox1" style="width: 25%"> |
|
|
|
|
|
<div class="text1-1">人均接待量</div> |
|
|
|
|
|
<div class="text1-2">{{avg4}}</div> |
|
|
|
|
|
</div> |
|
|
|
|
|
</div> |
|
|
|
|
|
<div |
|
|
|
|
|
style="overflow-y: auto; height: 258px; width: 94%; margin: 0 auto" |
|
|
|
|
|
> |
|
|
|
|
|
<div class="jinbox" v-for="(item, i) in echarlist3" :key="i"> |
|
|
|
|
|
<div class="jinboxtit">{{ item.accountName }}</div> |
|
|
|
|
|
<div class="jinbox-box"> |
|
|
|
|
|
<div |
|
|
|
|
|
class="boxbaifenbi" |
|
|
|
|
|
:style="'width:' + item.prohibitedCustomer + '%;'" |
|
|
|
|
|
></div> |
|
|
|
|
|
</div> |
|
|
|
|
|
<div class="jinboxbott">{{ item.prohibitedCustomer }}</div> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
@@ -245,36 +401,220 @@ export default { |
|
|
return { |
|
|
return { |
|
|
houseId: "", |
|
|
houseId: "", |
|
|
buildingoptions: [], |
|
|
buildingoptions: [], |
|
|
TimetoAhoose: 2, |
|
|
|
|
|
tabFlag: 1, |
|
|
|
|
|
|
|
|
houseList: [], |
|
|
|
|
|
dateType: 2, |
|
|
|
|
|
tabFlag: 0, |
|
|
|
|
|
current: 1, |
|
|
|
|
|
size: 8, |
|
|
|
|
|
total: 20, |
|
|
customtime: [], |
|
|
customtime: [], |
|
|
|
|
|
tablist: [], |
|
|
|
|
|
deptId: "", |
|
|
tableData: [], |
|
|
tableData: [], |
|
|
currentPage4: 1, |
|
|
|
|
|
total: 20, |
|
|
|
|
|
options: [ |
|
|
|
|
|
{ |
|
|
|
|
|
value: "1", |
|
|
|
|
|
label: "排名", |
|
|
|
|
|
}, |
|
|
|
|
|
{ |
|
|
|
|
|
value: "2", |
|
|
|
|
|
label: "趋势", |
|
|
|
|
|
}, |
|
|
|
|
|
], |
|
|
|
|
|
|
|
|
orgType: localStorage.getItem("orgType"), |
|
|
|
|
|
options: [], |
|
|
value: "1", |
|
|
value: "1", |
|
|
ceratelist: [ |
|
|
|
|
|
{ name: "还是得", avgZxl: 80 }, |
|
|
|
|
|
{ name: "大大奥德赛", avgZxl: 90 }, |
|
|
|
|
|
{ name: "沙发和", avgZxl: 20 }, |
|
|
|
|
|
{ name: "还是得", avgZxl: 10 }, |
|
|
|
|
|
{ name: "还客户家客户是得", avgZxl: 80 }, |
|
|
|
|
|
], |
|
|
|
|
|
|
|
|
statDateStart: "", |
|
|
|
|
|
statDateEnd: "", |
|
|
|
|
|
echarlist: [], |
|
|
|
|
|
echarlist1: [], |
|
|
|
|
|
echarlist2: [], |
|
|
|
|
|
echarlist3: [], |
|
|
|
|
|
teamAllLevel: [], |
|
|
|
|
|
teamAllLevelid: "", |
|
|
|
|
|
teamAllLeve2id:"", |
|
|
|
|
|
teamAllLeve2: [], |
|
|
|
|
|
sum1:'', |
|
|
|
|
|
avg1:'', |
|
|
|
|
|
num1:'', |
|
|
|
|
|
sum2:'', |
|
|
|
|
|
avg2:'', |
|
|
|
|
|
num2:'', |
|
|
|
|
|
sum3:'', |
|
|
|
|
|
avg3:'', |
|
|
|
|
|
num3:'', |
|
|
|
|
|
sum4:'', |
|
|
|
|
|
avg4:'', |
|
|
|
|
|
num4:'', |
|
|
}; |
|
|
}; |
|
|
}, |
|
|
}, |
|
|
mounted() { |
|
|
mounted() { |
|
|
this.echarCreat(); |
|
|
|
|
|
|
|
|
this.tabtimetap(4); |
|
|
|
|
|
this.zkhousePage(); |
|
|
|
|
|
// this.echarCreat(); |
|
|
|
|
|
|
|
|
}, |
|
|
}, |
|
|
methods: { |
|
|
methods: { |
|
|
|
|
|
zkhousePage() { |
|
|
|
|
|
this.$api.api |
|
|
|
|
|
.findHouseByUser({ |
|
|
|
|
|
orgType: localStorage.getItem("orgType"), |
|
|
|
|
|
}) |
|
|
|
|
|
.then((res) => { |
|
|
|
|
|
this.houseList = res.data; |
|
|
|
|
|
if (localStorage.getItem("orgType") == 3) { |
|
|
|
|
|
this.houseId = localStorage.getItem("houseId"); |
|
|
|
|
|
} else { |
|
|
|
|
|
this.houseId = res.data[0].id; |
|
|
|
|
|
} |
|
|
|
|
|
// this.houseId = res.data[0].id; |
|
|
|
|
|
this.deptFindList(); |
|
|
|
|
|
this.teamAllLeve() |
|
|
|
|
|
}); |
|
|
|
|
|
}, |
|
|
|
|
|
deptChange() { |
|
|
|
|
|
this.init(); |
|
|
|
|
|
}, |
|
|
|
|
|
// 获取一级 |
|
|
|
|
|
teamAllLeve() { |
|
|
|
|
|
this.teamAllLevel = [{ name: "平均执行", value: "" }]; |
|
|
|
|
|
this.teamAllLeve2 = [{ name: "总次数", value: "" }]; |
|
|
|
|
|
let pamaet = { |
|
|
|
|
|
houseId: this.houseId, |
|
|
|
|
|
dateType: 0, |
|
|
|
|
|
statDateStart: this.statDateStart, |
|
|
|
|
|
statDateEnd: this.statDateEnd, |
|
|
|
|
|
}; |
|
|
|
|
|
if (this.dateType == 7) { |
|
|
|
|
|
pamaet.dateType = null; |
|
|
|
|
|
} else { |
|
|
|
|
|
pamaet.dateType = this.dateType; |
|
|
|
|
|
} |
|
|
|
|
|
this.$api.http.teamAllLevel(pamaet).then((res) => { |
|
|
|
|
|
let arr1 = res.data.resultsList || []; |
|
|
|
|
|
let arr2 = res.data.sensitiveWordsList || []; |
|
|
|
|
|
arr1.map((item) => { |
|
|
|
|
|
this.teamAllLevel.push({ |
|
|
|
|
|
name: item.name, |
|
|
|
|
|
value: item.marketingId, |
|
|
|
|
|
}); |
|
|
|
|
|
}); |
|
|
|
|
|
arr2.map((item) => { |
|
|
|
|
|
this.teamAllLeve2.push({ |
|
|
|
|
|
name: item.words, |
|
|
|
|
|
value: item.words, |
|
|
|
|
|
}); |
|
|
|
|
|
}); |
|
|
|
|
|
this.teamAllLevelid = ""; |
|
|
|
|
|
this.teamAllLeve2id = ""; |
|
|
|
|
|
}); |
|
|
|
|
|
}, |
|
|
|
|
|
deptFindList() { |
|
|
|
|
|
// 获取团队 |
|
|
|
|
|
this.$api.api |
|
|
|
|
|
.deptFindList({ |
|
|
|
|
|
houseId: this.houseId, |
|
|
|
|
|
}) |
|
|
|
|
|
.then((res) => { |
|
|
|
|
|
console.log(res); |
|
|
|
|
|
this.options = [ |
|
|
|
|
|
{ |
|
|
|
|
|
name: "全部", |
|
|
|
|
|
deptId: "", |
|
|
|
|
|
}, |
|
|
|
|
|
]; |
|
|
|
|
|
this.options.push(...res.data); |
|
|
|
|
|
this.accountRank(); |
|
|
|
|
|
}); |
|
|
|
|
|
}, |
|
|
|
|
|
async init() { |
|
|
|
|
|
this.accountRank(); |
|
|
|
|
|
this.echarlist=await this.accountRankTOP10(1); |
|
|
|
|
|
this.echarlist1=await this.accountRankTOP10(2,this.teamAllLevelid,''); |
|
|
|
|
|
this.echarlist2=await this.accountRankTOP10(3); |
|
|
|
|
|
this.echarlist3=await this.accountRankTOP10(4,'',this.teamAllLeve2id); |
|
|
|
|
|
console.log(this.echarlist); |
|
|
|
|
|
}, |
|
|
|
|
|
houseChange(e) { |
|
|
|
|
|
console.log(e); |
|
|
|
|
|
}, |
|
|
|
|
|
// 获取图标 |
|
|
|
|
|
async accountRankTOP10(type,marketingId='',words='') { |
|
|
|
|
|
let res = await this.$api.api.accountRankTOP10({ |
|
|
|
|
|
houseId: this.houseId, |
|
|
|
|
|
statDateStart: this.statDateStart, |
|
|
|
|
|
statDateEnd: this.statDateEnd, |
|
|
|
|
|
current: this.current, |
|
|
|
|
|
size: this.size, |
|
|
|
|
|
deptId: this.deptId, |
|
|
|
|
|
dateType: this.dateType == 7 ? null : this.dateType, |
|
|
|
|
|
type, |
|
|
|
|
|
marketingId, |
|
|
|
|
|
words, |
|
|
|
|
|
}); |
|
|
|
|
|
this['sum'+type]=res.data.sum |
|
|
|
|
|
this['num'+type]=res.data.num |
|
|
|
|
|
this['avg'+type]=res.data.avg |
|
|
|
|
|
return res.data.list; |
|
|
|
|
|
}, |
|
|
|
|
|
accountRank() { |
|
|
|
|
|
this.$api.api |
|
|
|
|
|
.accountRank({ |
|
|
|
|
|
houseId: this.houseId, |
|
|
|
|
|
statDateStart: this.statDateStart, |
|
|
|
|
|
statDateEnd: this.statDateEnd, |
|
|
|
|
|
current: this.current, |
|
|
|
|
|
size: this.size, |
|
|
|
|
|
deptId: this.deptId, |
|
|
|
|
|
dateType: this.dateType == 7 ? null : this.dateType, |
|
|
|
|
|
}) |
|
|
|
|
|
.then((res) => { |
|
|
|
|
|
this.tableData = res.data.records; |
|
|
|
|
|
// 数据处理 |
|
|
|
|
|
// 需要两个数组,一个用来展示 |
|
|
|
|
|
this.deailDate(); |
|
|
|
|
|
this.total = res.data.total; |
|
|
|
|
|
}); |
|
|
|
|
|
}, |
|
|
|
|
|
confirmtime() { |
|
|
|
|
|
this.dateType = 7; |
|
|
|
|
|
this.statDateStart = this.customtime[0]; |
|
|
|
|
|
this.statDateEnd = this.customtime[1]; |
|
|
|
|
|
this.init(); |
|
|
|
|
|
}, |
|
|
|
|
|
deailDate() { |
|
|
|
|
|
this.tablist = []; |
|
|
|
|
|
// 当他是第一个 小将 |
|
|
|
|
|
if (this.tabFlag == 0) { |
|
|
|
|
|
// console.log("第一个"); |
|
|
|
|
|
this.tableData[0].resultsList.map((item, idx) => { |
|
|
|
|
|
let obj = {}; |
|
|
|
|
|
obj.label = item.name; |
|
|
|
|
|
obj.props = "str" + idx; |
|
|
|
|
|
this.tablist.push(obj); |
|
|
|
|
|
}); |
|
|
|
|
|
this.tableData.map((item) => { |
|
|
|
|
|
this.tablist.map((item1, idx) => { |
|
|
|
|
|
item[item1.props] = item.resultsList[idx].zxl; |
|
|
|
|
|
}); |
|
|
|
|
|
}); |
|
|
|
|
|
} else { |
|
|
|
|
|
// console.log("第二个"); |
|
|
|
|
|
this.tableData[0].sensitiveWordsList.map((item, idx) => { |
|
|
|
|
|
let obj = {}; |
|
|
|
|
|
obj.label = item.words; |
|
|
|
|
|
obj.props = "str" + idx; |
|
|
|
|
|
this.tablist.push(obj); |
|
|
|
|
|
}); |
|
|
|
|
|
this.tableData.map((item) => { |
|
|
|
|
|
this.tablist.map((item1, idx) => { |
|
|
|
|
|
item[item1.props] = item.sensitiveWordsList[idx].num; |
|
|
|
|
|
}); |
|
|
|
|
|
}); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// console.log(this.tableData); |
|
|
|
|
|
}, |
|
|
|
|
|
//销讲执行率切换一级 |
|
|
|
|
|
async teamAllLevelidtap() { |
|
|
|
|
|
// this.teamData3(); |
|
|
|
|
|
this.echarlist1=await this.accountRankTOP10(2,this.teamAllLevelid,''); |
|
|
|
|
|
}, |
|
|
|
|
|
//违禁接待次数一级切换 |
|
|
|
|
|
async teamAllLeve2tap() { |
|
|
|
|
|
// this.teamData5(); |
|
|
|
|
|
this.echarlist3=await this.accountRankTOP10(4,'',this.teamAllLeve2id); |
|
|
|
|
|
}, |
|
|
echarCreat() { |
|
|
echarCreat() { |
|
|
let myChart = echarts.init(document.getElementById("echar")); |
|
|
let myChart = echarts.init(document.getElementById("echar")); |
|
|
let option = { |
|
|
let option = { |
|
@@ -331,14 +671,68 @@ export default { |
|
|
}; |
|
|
}; |
|
|
myChart.setOption(option); |
|
|
myChart.setOption(option); |
|
|
}, |
|
|
}, |
|
|
handleCurrentChange() {}, |
|
|
|
|
|
handleSizeChange() {}, |
|
|
|
|
|
|
|
|
handleCurrentChange(e) { |
|
|
|
|
|
this.current = e; |
|
|
|
|
|
this.accountRank(); |
|
|
|
|
|
}, |
|
|
|
|
|
handleSizeChange(e) { |
|
|
|
|
|
this.size = e; |
|
|
|
|
|
this.accountRank(); |
|
|
|
|
|
}, |
|
|
//切换时间 |
|
|
//切换时间 |
|
|
tabtimetap(index) { |
|
|
tabtimetap(index) { |
|
|
this.TimetoAhoose = index; |
|
|
|
|
|
|
|
|
this.statDateStart = ""; |
|
|
|
|
|
this.statDateEnd = ""; |
|
|
|
|
|
//给时间选择器赋值 |
|
|
|
|
|
let num = 24 * 3600 * 1000; |
|
|
|
|
|
// 获取当前时间戳转换为日期格式 |
|
|
|
|
|
if (this.dateType == 4) { |
|
|
|
|
|
num = 24 * 3600 * 1000 * 6; |
|
|
|
|
|
} |
|
|
|
|
|
if (this.dateType == 5) { |
|
|
|
|
|
num = 24 * 3600 * 1000 * 14; |
|
|
|
|
|
} |
|
|
|
|
|
if (this.dateType == 6) { |
|
|
|
|
|
num = 24 * 3600 * 1000 * 29; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
this.customtime = [ |
|
|
|
|
|
this.timestampToTime(new Date().getTime() - num), |
|
|
|
|
|
this.timestampToTime(new Date().getTime()), |
|
|
|
|
|
]; |
|
|
|
|
|
this.dateType = index; |
|
|
|
|
|
this.init(); |
|
|
|
|
|
}, |
|
|
|
|
|
timestampToTime(timestamp) { |
|
|
|
|
|
var date = new Date(timestamp); //时间戳为10位需*1000,时间戳为13位的话不需乘1000 |
|
|
|
|
|
// var date = new Date(timestamp * 1000);//时间戳为10位需*1000,时间戳为13位的话不需乘1000 |
|
|
|
|
|
|
|
|
|
|
|
var yyyy = date.getFullYear() + "-"; |
|
|
|
|
|
|
|
|
|
|
|
var MM = |
|
|
|
|
|
(date.getMonth() + 1 < 10 |
|
|
|
|
|
? "0" + (date.getMonth() + 1) |
|
|
|
|
|
: date.getMonth() + 1) + "-"; |
|
|
|
|
|
|
|
|
|
|
|
// var dd = date.getDate() + ' '; |
|
|
|
|
|
var dd = |
|
|
|
|
|
(date.getDate() < 10 ? "0" + date.getDate() : date.getDate()) + " "; |
|
|
|
|
|
|
|
|
|
|
|
// var HH = date.getHours() + ':'; |
|
|
|
|
|
// var HH = (date.getHours() < 10 ? '0'+(date.getHours()) : date.getHours()) + ':'; |
|
|
|
|
|
// |
|
|
|
|
|
// // var mm = date.getMinutes() + ':'; |
|
|
|
|
|
// var mm = (date.getMinutes() < 10 ? '0'+(date.getMinutes()) : date.getMinutes()) + ':'; |
|
|
|
|
|
// |
|
|
|
|
|
// // var ss = date.getSeconds(); |
|
|
|
|
|
// var ss = (date.getSeconds() < 10 ? '0'+(date.getSeconds()) : date.getSeconds()); |
|
|
|
|
|
|
|
|
|
|
|
// return yyyy+MM+dd+HH+mm+ss; |
|
|
|
|
|
return yyyy + MM + dd; |
|
|
}, |
|
|
}, |
|
|
tabFlagChange(idx) { |
|
|
tabFlagChange(idx) { |
|
|
this.tabFlag = idx; |
|
|
this.tabFlag = idx; |
|
|
|
|
|
this.deailDate(); |
|
|
}, |
|
|
}, |
|
|
}, |
|
|
}, |
|
|
}; |
|
|
}; |
|
|