@@ -65,7 +65,7 @@ | |||||
</el-table-column> | </el-table-column> | ||||
<el-table-column prop="receptionCount" label="接待量" align="center" sortable> | <el-table-column prop="receptionCount" label="接待量" align="center" sortable> | ||||
</el-table-column> | </el-table-column> | ||||
<el-table-column prop="activeCustomer" label="有效接待" align="center" sortable> | |||||
<el-table-column prop="activeCustomer" label="有效接待" align="center" width="100" sortable> | |||||
</el-table-column> | </el-table-column> | ||||
<el-table-column | <el-table-column | ||||
prop="prohibitedCustomer" | prop="prohibitedCustomer" | ||||
@@ -86,7 +86,7 @@ | |||||
{{ Math.floor(scope.row.sumDuration / 60) || 0 }} | {{ Math.floor(scope.row.sumDuration / 60) || 0 }} | ||||
</template> | </template> | ||||
</el-table-column> | </el-table-column> | ||||
<el-table-column prop="fraction" label="平均执行率" align="center" sortable> | |||||
<el-table-column prop="fraction" label="平均执行率" align="center" width="110" sortable> | |||||
<template slot-scope="{ row }"> {{ row.fraction }}% </template> | <template slot-scope="{ row }"> {{ row.fraction }}% </template> | ||||
</el-table-column> | </el-table-column> | ||||
<el-table-column | <el-table-column | ||||
@@ -249,13 +249,146 @@ | |||||
</div> | </div> | ||||
</div> | </div> | ||||
<div class="container" v-if="echarValue == 0"> | <div class="container" v-if="echarValue == 0"> | ||||
<div class="grid-content" style="cursor: pointer;" @click="Overviewxlick('1')"> | |||||
<!-- <div class="grid-content" style="cursor: pointer;" @click="Overviewxlick('1')"> | |||||
<div class="text1" :class="{ tophovese: cardindex == 1 }"> | <div class="text1" :class="{ tophovese: cardindex == 1 }"> | ||||
购买服务项目数 | 购买服务项目数 | ||||
</div> | </div> | ||||
<div class="text2" :class="{ tophovese: cardindex == 1 }"> | <div class="text2" :class="{ tophovese: cardindex == 1 }"> | ||||
{{ thirdTab.houseQuantity || 0 }} | {{ thirdTab.houseQuantity || 0 }} | ||||
</div> | </div> | ||||
</div> --> | |||||
<div class="pagechen" style="cursor: pointer" @click="Overviewxlick('1')"> | |||||
<div class="text1" :class="{ tophovese: cardindex == 1 }">购买服务项目数</div> | |||||
<div class="pageboxtitle2"> | |||||
<div class="span1" :class="{ tophovese: cardindex == 1 }">{{ thirdTab.houseQuantity || 0 }}</div> | |||||
<div class="span2"> | |||||
<span class="span2-1" :class="{ tophovese: cardindex == 1 }"> | |||||
环比:{{ sysCompare.houseQuantity || 0 }}</span | |||||
> | |||||
<span class="span2-2" v-if="orderBy.houseQuantity > 0"> | |||||
<i class="el-icon-top" style="color: red"></i> | |||||
{{ orderBy.houseQuantity || 0 }} | |||||
</span> | |||||
<span class="span2-3" v-if="orderBy.houseQuantity < 0"> | |||||
<i class="el-icon-bottom" style="color: #25ceba"></i> | |||||
{{ orderBy.houseQuantity || 0 }} | |||||
</span> | |||||
</div> | |||||
</div> | |||||
</div> | |||||
<div class="pagechen" style="cursor: pointer" @click="Overviewxlick('4')"> | |||||
<div class="text1" :class="{ tophovese: cardindex == 4 }">活跃用户数</div> | |||||
<div class="pageboxtitle2"> | |||||
<div class="span1" :class="{ tophovese: cardindex == 4 }">{{ thirdTab.activeUserQuantity || 0 }}</div> | |||||
<div class="span2"> | |||||
<span class="span2-1" :class="{ tophovese: cardindex == 4 }"> | |||||
环比:{{ sysCompare.activeUserQuantity || 0 }}</span | |||||
> | |||||
<span class="span2-2" v-if="orderBy.activeUserQuantity > 0"> | |||||
<i class="el-icon-top" style="color: red"></i> | |||||
{{ orderBy.activeUserQuantity || 0 }} | |||||
</span> | |||||
<span class="span2-3" v-if="orderBy.activeUserQuantity < 0"> | |||||
<i class="el-icon-bottom" style="color: #25ceba"></i> | |||||
{{ orderBy.activeUserQuantity || 0 }} | |||||
</span> | |||||
</div> | |||||
</div> | |||||
</div> | |||||
<div class="pagechen" style="cursor: pointer" @click="Overviewxlick('5')"> | |||||
<div class="text1" :class="{ tophovese: cardindex == 5 }">新增用户数</div> | |||||
<div class="pageboxtitle2"> | |||||
<div class="span1" :class="{ tophovese: cardindex == 5 }">{{ thirdTab.userCountWithNewJoin || 0 }}</div> | |||||
<div class="span2"> | |||||
<span class="span2-1" :class="{ tophovese: cardindex == 5 }"> | |||||
环比:{{ sysCompare.userCountWithNewJoin || 0 }}</span | |||||
> | |||||
<span class="span2-2" v-if="orderBy.userCountWithNewJoin > 0"> | |||||
<i class="el-icon-top" style="color: red"></i> | |||||
{{ orderBy.userCountWithNewJoin || 0 }} | |||||
</span> | |||||
<span class="span2-3" v-if="orderBy.userCountWithNewJoin < 0"> | |||||
<i class="el-icon-bottom" style="color: #25ceba"></i> | |||||
{{ orderBy.userCountWithNewJoin || 0 }} | |||||
</span> | |||||
</div> | |||||
</div> | |||||
</div> | |||||
<div class="pagechen" style="cursor: pointer" @click="Overviewxlick('6')"> | |||||
<div class="text1" :class="{ tophovese: cardindex == 6 }">接待量</div> | |||||
<div class="pageboxtitle2"> | |||||
<div class="span1" :class="{ tophovese: cardindex == 6 }">{{ thirdTab.receptionQuantity || 0 }}</div> | |||||
<div class="span2"> | |||||
<span class="span2-1" :class="{ tophovese: cardindex == 6 }"> | |||||
环比:{{ sysCompare.receptionQuantity || 0 }}</span | |||||
> | |||||
<span class="span2-2" v-if="orderBy.receptionQuantity > 0"> | |||||
<i class="el-icon-top" style="color: red"></i> | |||||
{{ orderBy.receptionQuantity || 0 }} | |||||
</span> | |||||
<span class="span2-3" v-if="orderBy.receptionQuantity < 0"> | |||||
<i class="el-icon-bottom" style="color: #25ceba"></i> | |||||
{{ orderBy.receptionQuantity || 0 }} | |||||
</span> | |||||
</div> | |||||
</div> | |||||
</div> | |||||
<div class="pagechen" style="cursor: pointer" @click="Overviewxlick('7')"> | |||||
<div class="text1" :class="{ tophovese: cardindex == 7 }">平均接待时长</div> | |||||
<div class="pageboxtitle2"> | |||||
<div class="span1" :class="{ tophovese: cardindex == 7 }">{{ thirdTab.receptionTimeWithAvg || 0 }}</div> | |||||
<div class="span2"> | |||||
<span class="span2-1" :class="{ tophovese: cardindex == 7 }"> | |||||
环比:{{ sysCompare.receptionTimeWithAvg || 0 }}</span | |||||
> | |||||
<span class="span2-2" v-if="orderBy.receptionTimeWithAvg > 0"> | |||||
<i class="el-icon-top" style="color: red"></i> | |||||
{{ orderBy.receptionTimeWithAvg || 0 }} | |||||
</span> | |||||
<span class="span2-3" v-if="orderBy.receptionTimeWithAvg < 0"> | |||||
<i class="el-icon-bottom" style="color: #25ceba"></i> | |||||
{{ orderBy.receptionTimeWithAvg || 0 }} | |||||
</span> | |||||
</div> | |||||
</div> | |||||
</div> | |||||
<div class="pagechen" style="cursor: pointer" @click="Overviewxlick('8')"> | |||||
<div class="text1" :class="{ tophovese: cardindex == 8 }">活跃设备数</div> | |||||
<div class="pageboxtitle2"> | |||||
<div class="span1" :class="{ tophovese: cardindex == 8 }">{{ thirdTab.activeEquipmentQuantity || 0 }}</div> | |||||
<div class="span2"> | |||||
<span class="span2-1" :class="{ tophovese: cardindex == 8 }"> | |||||
环比:{{ sysCompare.activeEquipmentQuantity || 0 }}</span | |||||
> | |||||
<span class="span2-2" v-if="orderBy.activeEquipmentQuantity > 0"> | |||||
<i class="el-icon-top" style="color: red"></i> | |||||
{{ orderBy.activeEquipmentQuantity || 0 }} | |||||
</span> | |||||
<span class="span2-3" v-if="orderBy.activeEquipmentQuantity < 0"> | |||||
<i class="el-icon-bottom" style="color: #25ceba"></i> | |||||
{{ orderBy.activeEquipmentQuantity || 0 }} | |||||
</span> | |||||
</div> | |||||
</div> | |||||
</div> | |||||
<div class="pagechen" style="cursor: pointer" @click="Overviewxlick('9')"> | |||||
<div class="text1" :class="{ tophovese: cardindex == 9 }">销售设备数</div> | |||||
<div class="pageboxtitle2"> | |||||
<div class="span1" :class="{ tophovese: cardindex == 9 }">{{ thirdTab.buyEquipQuantity || 0 }}</div> | |||||
<div class="span2"> | |||||
<span class="span2-1" :class="{ tophovese: cardindex == 9 }"> | |||||
环比:{{ sysCompare.buyEquipQuantity || 0 }}</span | |||||
> | |||||
<span class="span2-2" v-if="orderBy.buyEquipQuantity > 0"> | |||||
<i class="el-icon-top" style="color: red"></i> | |||||
{{ orderBy.buyEquipQuantity || 0 }} | |||||
</span> | |||||
<span class="span2-3" v-if="orderBy.buyEquipQuantity < 0"> | |||||
<i class="el-icon-bottom" style="color: #25ceba"></i> | |||||
{{ orderBy.buyEquipQuantity || 0 }} | |||||
</span> | |||||
</div> | |||||
</div> | |||||
</div> | </div> | ||||
<!-- <div class="grid-content" style="cursor: pointer;" @click="Overviewxlick('2')"> | <!-- <div class="grid-content" style="cursor: pointer;" @click="Overviewxlick('2')"> | ||||
<div class="text1" :class="{ tophovese: cardindex == 2 }"> | <div class="text1" :class="{ tophovese: cardindex == 2 }"> | ||||
@@ -265,7 +398,7 @@ | |||||
{{ thirdTab.houseQofEnough || 0 }} | {{ thirdTab.houseQofEnough || 0 }} | ||||
</div> | </div> | ||||
</div> --> | </div> --> | ||||
<div class="grid-content" style="cursor: pointer;" @click="Overviewxlick('4')"> | |||||
<!-- <div class="grid-content" style="cursor: pointer;" @click="Overviewxlick('4')"> | |||||
<div class="text1" :class="{ tophovese: cardindex == 4 }"> | <div class="text1" :class="{ tophovese: cardindex == 4 }"> | ||||
活跃用户数 | 活跃用户数 | ||||
</div> | </div> | ||||
@@ -314,7 +447,7 @@ | |||||
<div class="text2" :class="{ tophovese: cardindex == 9 }"> | <div class="text2" :class="{ tophovese: cardindex == 9 }"> | ||||
{{ thirdTab.buyEquipQuantity || 0 }} | {{ thirdTab.buyEquipQuantity || 0 }} | ||||
</div> | </div> | ||||
</div> | |||||
</div> --> | |||||
</div> | </div> | ||||
<div id="echar2" v-if="echarValue == 0"></div> | <div id="echar2" v-if="echarValue == 0"></div> | ||||
@@ -506,6 +639,8 @@ export default { | |||||
firstTab: {}, | firstTab: {}, | ||||
secondTab: {}, | secondTab: {}, | ||||
thirdTab: {}, | thirdTab: {}, | ||||
sysCompare:{}, | |||||
orderBy:{}, | |||||
selValue: "1", | selValue: "1", | ||||
houseTypes:'0,1', | houseTypes:'0,1', | ||||
operaFlag: true, | operaFlag: true, | ||||
@@ -859,7 +994,9 @@ export default { | |||||
}) | }) | ||||
.then((res) => { | .then((res) => { | ||||
console.log(res); | console.log(res); | ||||
this.thirdTab = res.data; | |||||
this.thirdTab = res.data.resultA; | |||||
this.sysCompare = res.data.resultB; | |||||
this.orderBy = res.data.contrast; | |||||
this.getChars2(1); | this.getChars2(1); | ||||
}); | }); | ||||
}, | }, | ||||
@@ -1167,6 +1304,58 @@ export default { | |||||
grid-template-columns: repeat(6, 16%); | grid-template-columns: repeat(6, 16%); | ||||
grid-column-gap: 8px; | grid-column-gap: 8px; | ||||
grid-row-gap: 18px; | grid-row-gap: 18px; | ||||
.pagechen { | |||||
background: #ffffff; | |||||
border-radius: 4px; | |||||
padding: 15px; | |||||
border: 1px solid #e0e0e0; | |||||
.pageboxtitle1 { | |||||
width: 100%; | |||||
font-size: 16px; | |||||
font-weight: 400; | |||||
color: #666666; | |||||
line-height: 16px; | |||||
} | |||||
.pageboxtitle2 { | |||||
width: 100%; | |||||
margin-top: 14px; | |||||
display: flex; | |||||
flex-wrap: wrap; | |||||
.span1 { | |||||
width: 100px; | |||||
height: 30px; | |||||
font-size: 30px; | |||||
font-weight: normal; | |||||
color: #32363d; | |||||
line-height: 30px; | |||||
} | |||||
.span2 { | |||||
height: 30px; | |||||
font-size: 16px; | |||||
display: flex; | |||||
align-items: flex-end; | |||||
.span2-1 { | |||||
color: #424d64; | |||||
margin-right: 15px; | |||||
font-weight: 400; | |||||
} | |||||
.span2-2 { | |||||
font-weight: 600; | |||||
color: #e6273a; | |||||
} | |||||
.span2-3 { | |||||
font-weight: 600; | |||||
color: #25ceba; | |||||
} | |||||
} | |||||
} | |||||
.pageboxtitle3 { | |||||
text-align: center; | |||||
font-size: 30px; | |||||
line-height: 44px; | |||||
} | |||||
} | |||||
} | } | ||||
// 进度条 | // 进度条 | ||||
@@ -1328,7 +1517,7 @@ export default { | |||||
background: #2671e2; | background: #2671e2; | ||||
} | } | ||||
.tophovese { | .tophovese { | ||||
color: #2671e2; | |||||
color: #2671e2 !important; | |||||
} | } | ||||
.app-top { | .app-top { | ||||
width: 100%; | width: 100%; | ||||
@@ -366,7 +366,7 @@ | |||||
{{ thirdTab.userCountWithNewJoin || 0 }} | {{ thirdTab.userCountWithNewJoin || 0 }} | ||||
</div> | </div> | ||||
</div> --> | </div> --> | ||||
<div | |||||
<!-- <div | |||||
class="grid-content" | class="grid-content" | ||||
style="cursor: pointer" | style="cursor: pointer" | ||||
@click="Overviewxlick('6')" | @click="Overviewxlick('6')" | ||||
@@ -375,8 +375,65 @@ | |||||
<div class="text2" :class="{ tophovese: cardindex == 6 }"> | <div class="text2" :class="{ tophovese: cardindex == 6 }"> | ||||
{{ thirdTab.receptionQuantity || 0 }} | {{ thirdTab.receptionQuantity || 0 }} | ||||
</div> | </div> | ||||
</div> --> | |||||
<div class="pagechen" style="cursor: pointer" @click="Overviewxlick('6')"> | |||||
<div class="text1" :class="{ tophovese: cardindex == 6 }">接待量</div> | |||||
<div class="pageboxtitle2"> | |||||
<div class="span1" :class="{ tophovese: cardindex == 6 }">{{ thirdTab.receptionQuantity || 0 }}</div> | |||||
<div class="span2"> | |||||
<span class="span2-1" :class="{ tophovese: cardindex == 6 }"> | |||||
环比:{{ sysCompare.receptionQuantity || 0 }}</span | |||||
> | |||||
<span class="span2-2" v-if="orderBy.receptionQuantity > 0"> | |||||
<i class="el-icon-top" style="color: red"></i> | |||||
{{ orderBy.receptionQuantity || 0 }} | |||||
</span> | |||||
<span class="span2-3" v-if="orderBy.receptionQuantity < 0"> | |||||
<i class="el-icon-bottom" style="color: #25ceba"></i> | |||||
{{ orderBy.receptionQuantity || 0 }} | |||||
</span> | |||||
</div> | |||||
</div> | |||||
</div> | </div> | ||||
<div | |||||
<div class="pagechen" style="cursor: pointer" @click="Overviewxlick('7')"> | |||||
<div class="text1" :class="{ tophovese: cardindex == 7 }">平均接待时长</div> | |||||
<div class="pageboxtitle2"> | |||||
<div class="span1" :class="{ tophovese: cardindex == 7 }">{{ thirdTab.receptionTimeWithAvg || 0 }}</div> | |||||
<div class="span2"> | |||||
<span class="span2-1" :class="{ tophovese: cardindex == 7 }"> | |||||
环比:{{ sysCompare.receptionTimeWithAvg || 0 }}</span | |||||
> | |||||
<span class="span2-2" v-if="orderBy.receptionTimeWithAvg > 0"> | |||||
<i class="el-icon-top" style="color: red"></i> | |||||
{{ orderBy.receptionTimeWithAvg || 0 }} | |||||
</span> | |||||
<span class="span2-3" v-if="orderBy.receptionTimeWithAvg < 0"> | |||||
<i class="el-icon-bottom" style="color: #25ceba"></i> | |||||
{{ orderBy.receptionTimeWithAvg || 0 }} | |||||
</span> | |||||
</div> | |||||
</div> | |||||
</div> | |||||
<div class="pagechen" style="cursor: pointer" @click="Overviewxlick('8')"> | |||||
<div class="text1" :class="{ tophovese: cardindex == 8 }">活跃设备数</div> | |||||
<div class="pageboxtitle2"> | |||||
<div class="span1" :class="{ tophovese: cardindex == 8 }">{{ thirdTab.activeEquipmentQuantity || 0 }}</div> | |||||
<div class="span2"> | |||||
<span class="span2-1" :class="{ tophovese: cardindex == 8 }"> | |||||
环比:{{ sysCompare.activeEquipmentQuantity || 0 }}</span | |||||
> | |||||
<span class="span2-2" v-if="orderBy.activeEquipmentQuantity > 0"> | |||||
<i class="el-icon-top" style="color: red"></i> | |||||
{{ orderBy.activeEquipmentQuantity || 0 }} | |||||
</span> | |||||
<span class="span2-3" v-if="orderBy.activeEquipmentQuantity < 0"> | |||||
<i class="el-icon-bottom" style="color: #25ceba"></i> | |||||
{{ orderBy.activeEquipmentQuantity || 0 }} | |||||
</span> | |||||
</div> | |||||
</div> | |||||
</div> | |||||
<!-- <div | |||||
class="grid-content" | class="grid-content" | ||||
style="cursor: pointer" | style="cursor: pointer" | ||||
@click="Overviewxlick('7')" | @click="Overviewxlick('7')" | ||||
@@ -387,8 +444,8 @@ | |||||
<div class="text2" :class="{ tophovese: cardindex == 7 }"> | <div class="text2" :class="{ tophovese: cardindex == 7 }"> | ||||
{{ thirdTab.receptionTimeWithAvg || 0 }} | {{ thirdTab.receptionTimeWithAvg || 0 }} | ||||
</div> | </div> | ||||
</div> | |||||
<div | |||||
</div> --> | |||||
<!-- <div | |||||
class="grid-content" | class="grid-content" | ||||
style="cursor: pointer" | style="cursor: pointer" | ||||
@click="Overviewxlick('8')" | @click="Overviewxlick('8')" | ||||
@@ -399,7 +456,7 @@ | |||||
<div class="text2" :class="{ tophovese: cardindex == 8 }"> | <div class="text2" :class="{ tophovese: cardindex == 8 }"> | ||||
{{ thirdTab.activeEquipmentQuantity || 0 }} | {{ thirdTab.activeEquipmentQuantity || 0 }} | ||||
</div> | </div> | ||||
</div> | |||||
</div> --> | |||||
</div> | </div> | ||||
<div id="echar2" v-if="echarValue == 0"></div> | <div id="echar2" v-if="echarValue == 0"></div> | ||||
@@ -594,6 +651,8 @@ export default { | |||||
firstTab: {}, | firstTab: {}, | ||||
secondTab: {}, | secondTab: {}, | ||||
thirdTab: {}, | thirdTab: {}, | ||||
sysCompare:{}, | |||||
orderBy:{}, | |||||
selValue: "1", | selValue: "1", | ||||
choicValue: localStorage.getItem("orgCode"), | choicValue: localStorage.getItem("orgCode"), | ||||
houseList: [], | houseList: [], | ||||
@@ -943,7 +1002,9 @@ export default { | |||||
}) | }) | ||||
.then((res) => { | .then((res) => { | ||||
console.log(res); | console.log(res); | ||||
this.thirdTab = res.data; | |||||
this.thirdTab = res.data.resultA; | |||||
this.sysCompare = res.data.resultB; | |||||
this.orderBy = res.data.contrast; | |||||
this.getChars2(this.cardindex); | this.getChars2(this.cardindex); | ||||
}); | }); | ||||
}, | }, | ||||
@@ -1250,6 +1311,58 @@ export default { | |||||
grid-template-columns: repeat(6, 16%); | grid-template-columns: repeat(6, 16%); | ||||
grid-column-gap: 12px; | grid-column-gap: 12px; | ||||
grid-row-gap: 18px; | grid-row-gap: 18px; | ||||
.pagechen { | |||||
background: #ffffff; | |||||
border-radius: 4px; | |||||
padding: 15px; | |||||
border: 1px solid #e0e0e0; | |||||
.pageboxtitle1 { | |||||
width: 100%; | |||||
font-size: 16px; | |||||
font-weight: 400; | |||||
color: #666666; | |||||
line-height: 16px; | |||||
} | |||||
.pageboxtitle2 { | |||||
width: 100%; | |||||
margin-top: 14px; | |||||
display: flex; | |||||
flex-wrap: wrap; | |||||
.span1 { | |||||
width: 100px; | |||||
height: 30px; | |||||
font-size: 30px; | |||||
font-weight: normal; | |||||
color: #32363d; | |||||
line-height: 30px; | |||||
} | |||||
.span2 { | |||||
height: 30px; | |||||
font-size: 16px; | |||||
display: flex; | |||||
align-items: flex-end; | |||||
.span2-1 { | |||||
color: #424d64; | |||||
margin-right: 15px; | |||||
font-weight: 400; | |||||
} | |||||
.span2-2 { | |||||
font-weight: 600; | |||||
color: #e6273a; | |||||
} | |||||
.span2-3 { | |||||
font-weight: 600; | |||||
color: #25ceba; | |||||
} | |||||
} | |||||
} | |||||
.pageboxtitle3 { | |||||
text-align: center; | |||||
font-size: 30px; | |||||
line-height: 44px; | |||||
} | |||||
} | |||||
} | } | ||||
// 进度条 | // 进度条 | ||||
@@ -1411,7 +1524,7 @@ export default { | |||||
background: #2671e2; | background: #2671e2; | ||||
} | } | ||||
.tophovese { | .tophovese { | ||||
color: #2671e2; | |||||
color: #2671e2 !important; | |||||
} | } | ||||
.app-top { | .app-top { | ||||
width: 100%; | width: 100%; | ||||
@@ -336,8 +336,9 @@ | |||||
</div> | </div> | ||||
</div> | </div> | ||||
</div> | </div> | ||||
<div class="container" v-if="echarValue == 0"> | <div class="container" v-if="echarValue == 0"> | ||||
<div | |||||
<!-- <div | |||||
class="grid-content" | class="grid-content" | ||||
style="cursor: pointer" | style="cursor: pointer" | ||||
@click="Overviewxlick('1')" | @click="Overviewxlick('1')" | ||||
@@ -352,6 +353,140 @@ | |||||
> | > | ||||
{{ thirdTab.houseQuantity || 0 }} | {{ thirdTab.houseQuantity || 0 }} | ||||
</div> | </div> | ||||
</div> --> | |||||
<div class="pagechen" style="cursor: pointer" @click="Overviewxlick('1')"> | |||||
<div class="text1" :class="{ tophovese: cardindex == 1 }">购买服务项目数</div> | |||||
<div class="pageboxtitle2"> | |||||
<div class="span1" :class="{ tophovese: cardindex == 1 }">{{ thirdTab.houseQuantity || 0 }}</div> | |||||
<div class="span2"> | |||||
<span class="span2-1" :class="{ tophovese: cardindex == 1 }"> | |||||
环比:{{ sysCompare.houseQuantity || 0 }}</span | |||||
> | |||||
<span class="span2-2" v-if="orderBy.houseQuantity > 0"> | |||||
<i class="el-icon-top" style="color: red"></i> | |||||
{{ orderBy.houseQuantity || 0 }} | |||||
</span> | |||||
<span class="span2-3" v-if="orderBy.houseQuantity < 0"> | |||||
<i class="el-icon-bottom" style="color: #25ceba"></i> | |||||
{{ orderBy.houseQuantity || 0 }} | |||||
</span> | |||||
</div> | |||||
</div> | |||||
</div> | |||||
<div class="pagechen" style="cursor: pointer" @click="Overviewxlick('4')"> | |||||
<div class="text1" :class="{ tophovese: cardindex == 4 }">活跃用户数</div> | |||||
<div class="pageboxtitle2"> | |||||
<div class="span1" :class="{ tophovese: cardindex == 4 }">{{ thirdTab.activeUserQuantity || 0 }}</div> | |||||
<div class="span2"> | |||||
<span class="span2-1" :class="{ tophovese: cardindex == 4 }"> | |||||
环比:{{ sysCompare.activeUserQuantity || 0 }}</span | |||||
> | |||||
<span class="span2-2" v-if="orderBy.activeUserQuantity > 0"> | |||||
<i class="el-icon-top" style="color: red"></i> | |||||
{{ orderBy.activeUserQuantity || 0 }} | |||||
</span> | |||||
<span class="span2-3" v-if="orderBy.activeUserQuantity < 0"> | |||||
<i class="el-icon-bottom" style="color: #25ceba"></i> | |||||
{{ orderBy.activeUserQuantity || 0 }} | |||||
</span> | |||||
</div> | |||||
</div> | |||||
</div> | |||||
<div class="pagechen" style="cursor: pointer" @click="Overviewxlick('5')"> | |||||
<div class="text1" :class="{ tophovese: cardindex == 5 }">新增用户数</div> | |||||
<div class="pageboxtitle2"> | |||||
<div class="span1" :class="{ tophovese: cardindex == 5 }">{{ thirdTab.userCountWithNewJoin || 0 }}</div> | |||||
<div class="span2"> | |||||
<span class="span2-1" :class="{ tophovese: cardindex == 5 }"> | |||||
环比:{{ sysCompare.userCountWithNewJoin || 0 }}</span | |||||
> | |||||
<span class="span2-2" v-if="orderBy.userCountWithNewJoin > 0"> | |||||
<i class="el-icon-top" style="color: red"></i> | |||||
{{ orderBy.userCountWithNewJoin || 0 }} | |||||
</span> | |||||
<span class="span2-3" v-if="orderBy.userCountWithNewJoin < 0"> | |||||
<i class="el-icon-bottom" style="color: #25ceba"></i> | |||||
{{ orderBy.userCountWithNewJoin || 0 }} | |||||
</span> | |||||
</div> | |||||
</div> | |||||
</div> | |||||
<div class="pagechen" style="cursor: pointer" @click="Overviewxlick('6')"> | |||||
<div class="text1" :class="{ tophovese: cardindex == 6 }">接待量</div> | |||||
<div class="pageboxtitle2"> | |||||
<div class="span1" :class="{ tophovese: cardindex == 6 }">{{ thirdTab.receptionQuantity || 0 }}</div> | |||||
<div class="span2"> | |||||
<span class="span2-1" :class="{ tophovese: cardindex == 6 }"> | |||||
环比:{{ sysCompare.receptionQuantity || 0 }}</span | |||||
> | |||||
<span class="span2-2" v-if="orderBy.receptionQuantity > 0"> | |||||
<i class="el-icon-top" style="color: red"></i> | |||||
{{ orderBy.receptionQuantity || 0 }} | |||||
</span> | |||||
<span class="span2-3" v-if="orderBy.receptionQuantity < 0"> | |||||
<i class="el-icon-bottom" style="color: #25ceba"></i> | |||||
{{ orderBy.receptionQuantity || 0 }} | |||||
</span> | |||||
</div> | |||||
</div> | |||||
</div> | |||||
<div class="pagechen" style="cursor: pointer" @click="Overviewxlick('7')"> | |||||
<div class="text1" :class="{ tophovese: cardindex == 7 }">平均接待时长</div> | |||||
<div class="pageboxtitle2"> | |||||
<div class="span1" :class="{ tophovese: cardindex == 7 }">{{ thirdTab.receptionTimeWithAvg || 0 }}</div> | |||||
<div class="span2"> | |||||
<span class="span2-1" :class="{ tophovese: cardindex == 7 }"> | |||||
环比:{{ sysCompare.receptionTimeWithAvg || 0 }}</span | |||||
> | |||||
<span class="span2-2" v-if="orderBy.receptionTimeWithAvg > 0"> | |||||
<i class="el-icon-top" style="color: red"></i> | |||||
{{ orderBy.receptionTimeWithAvg || 0 }} | |||||
</span> | |||||
<span class="span2-3" v-if="orderBy.receptionTimeWithAvg < 0"> | |||||
<i class="el-icon-bottom" style="color: #25ceba"></i> | |||||
{{ orderBy.receptionTimeWithAvg || 0 }} | |||||
</span> | |||||
</div> | |||||
</div> | |||||
</div> | |||||
<div class="pagechen" style="cursor: pointer" @click="Overviewxlick('8')"> | |||||
<div class="text1" :class="{ tophovese: cardindex == 8 }">活跃设备数</div> | |||||
<div class="pageboxtitle2"> | |||||
<div class="span1" :class="{ tophovese: cardindex == 8 }">{{ thirdTab.activeEquipmentQuantity || 0 }}</div> | |||||
<div class="span2"> | |||||
<span class="span2-1" :class="{ tophovese: cardindex == 8 }"> | |||||
环比:{{ sysCompare.activeEquipmentQuantity || 0 }}</span | |||||
> | |||||
<span class="span2-2" v-if="orderBy.activeEquipmentQuantity > 0"> | |||||
<i class="el-icon-top" style="color: red"></i> | |||||
{{ orderBy.activeEquipmentQuantity || 0 }} | |||||
</span> | |||||
<span class="span2-3" v-if="orderBy.activeEquipmentQuantity < 0"> | |||||
<i class="el-icon-bottom" style="color: #25ceba"></i> | |||||
{{ orderBy.activeEquipmentQuantity || 0 }} | |||||
</span> | |||||
</div> | |||||
</div> | |||||
</div> | |||||
<div class="pagechen" style="cursor: pointer" @click="Overviewxlick('9')"> | |||||
<div class="text1" :class="{ tophovese: cardindex == 9 }">销售设备数</div> | |||||
<div class="pageboxtitle2"> | |||||
<div class="span1" :class="{ tophovese: cardindex == 9 }">{{ thirdTab.buyEquipQuantity || 0 }}</div> | |||||
<div class="span2"> | |||||
<span class="span2-1" :class="{ tophovese: cardindex == 9 }"> | |||||
环比:{{ sysCompare.buyEquipQuantity || 0 }}</span | |||||
> | |||||
<span class="span2-2" v-if="orderBy.buyEquipQuantity > 0"> | |||||
<i class="el-icon-top" style="color: red"></i> | |||||
{{ orderBy.buyEquipQuantity || 0 }} | |||||
</span> | |||||
<span class="span2-3" v-if="orderBy.buyEquipQuantity < 0"> | |||||
<i class="el-icon-bottom" style="color: #25ceba"></i> | |||||
{{ orderBy.buyEquipQuantity || 0 }} | |||||
</span> | |||||
</div> | |||||
</div> | |||||
</div> | </div> | ||||
<!-- <div class="grid-content" style="cursor: pointer;" @click="Overviewxlick('2')"> | <!-- <div class="grid-content" style="cursor: pointer;" @click="Overviewxlick('2')"> | ||||
<div class="text1" :class="{ tophovese: cardindex == 2 }"> | <div class="text1" :class="{ tophovese: cardindex == 2 }"> | ||||
@@ -369,7 +504,7 @@ | |||||
{{ thirdTab.avgDuration || 0 }} | {{ thirdTab.avgDuration || 0 }} | ||||
</div> | </div> | ||||
</div> --> | </div> --> | ||||
<div | |||||
<!-- <div | |||||
class="grid-content" | class="grid-content" | ||||
style="cursor: pointer" | style="cursor: pointer" | ||||
@click="Overviewxlick('4')" | @click="Overviewxlick('4')" | ||||
@@ -381,6 +516,7 @@ | |||||
{{ thirdTab.activeUserQuantity || 0 }} | {{ thirdTab.activeUserQuantity || 0 }} | ||||
</div> | </div> | ||||
</div> | </div> | ||||
<div | <div | ||||
class="grid-content" | class="grid-content" | ||||
style="cursor: pointer" | style="cursor: pointer" | ||||
@@ -393,6 +529,7 @@ | |||||
{{ thirdTab.userCountWithNewJoin || 0 }} | {{ thirdTab.userCountWithNewJoin || 0 }} | ||||
</div> | </div> | ||||
</div> | </div> | ||||
<div | <div | ||||
class="grid-content" | class="grid-content" | ||||
style="cursor: pointer" | style="cursor: pointer" | ||||
@@ -403,6 +540,7 @@ | |||||
{{ thirdTab.receptionQuantity || 0 }} | {{ thirdTab.receptionQuantity || 0 }} | ||||
</div> | </div> | ||||
</div> | </div> | ||||
<div | <div | ||||
class="grid-content" | class="grid-content" | ||||
style="cursor: pointer" | style="cursor: pointer" | ||||
@@ -415,6 +553,7 @@ | |||||
{{ thirdTab.receptionTimeWithAvg || 0 }} | {{ thirdTab.receptionTimeWithAvg || 0 }} | ||||
</div> | </div> | ||||
</div> | </div> | ||||
<div | <div | ||||
class="grid-content" | class="grid-content" | ||||
style="cursor: pointer" | style="cursor: pointer" | ||||
@@ -427,6 +566,7 @@ | |||||
{{ thirdTab.activeEquipmentQuantity || 0 }} | {{ thirdTab.activeEquipmentQuantity || 0 }} | ||||
</div> | </div> | ||||
</div> | </div> | ||||
<div | <div | ||||
class="grid-content" | class="grid-content" | ||||
style="cursor: pointer" | style="cursor: pointer" | ||||
@@ -438,7 +578,8 @@ | |||||
<div class="text2" :class="{ tophovese: cardindex == 9 }"> | <div class="text2" :class="{ tophovese: cardindex == 9 }"> | ||||
{{ thirdTab.buyEquipQuantity || 0 }} | {{ thirdTab.buyEquipQuantity || 0 }} | ||||
</div> | </div> | ||||
</div> | |||||
</div> --> | |||||
</div> | </div> | ||||
<div v-if="echarValue == 0" id="echar2"></div> | <div v-if="echarValue == 0" id="echar2"></div> | ||||
@@ -634,6 +775,8 @@ export default { | |||||
firstTab: {}, | firstTab: {}, | ||||
secondTab: {}, | secondTab: {}, | ||||
thirdTab: {}, | thirdTab: {}, | ||||
sysCompare:{}, | |||||
orderBy:{}, | |||||
selValue: "0", | selValue: "0", | ||||
houseTypes: "0,1", | houseTypes: "0,1", | ||||
operaFlag: true, | operaFlag: true, | ||||
@@ -1022,7 +1165,9 @@ export default { | |||||
}) | }) | ||||
.then((res) => { | .then((res) => { | ||||
// console.log(res); | // console.log(res); | ||||
this.thirdTab = res.data; | |||||
this.thirdTab = res.data.resultA; | |||||
this.sysCompare = res.data.resultB; | |||||
this.orderBy = res.data.contrast; | |||||
this.getChars2(this.cardindex); | this.getChars2(this.cardindex); | ||||
}); | }); | ||||
}, | }, | ||||
@@ -1324,6 +1469,62 @@ export default { | |||||
grid-template-columns: repeat(6, 16%); | grid-template-columns: repeat(6, 16%); | ||||
grid-column-gap: 12px; | grid-column-gap: 12px; | ||||
grid-row-gap: 18px; | grid-row-gap: 18px; | ||||
.pagechen { | |||||
background: #ffffff; | |||||
border-radius: 4px; | |||||
padding: 15px; | |||||
border: 1px solid #e0e0e0; | |||||
.pageboxtitle1 { | |||||
width: 100%; | |||||
font-size: 16px; | |||||
font-weight: 400; | |||||
color: #666666; | |||||
line-height: 16px; | |||||
} | |||||
.pageboxtitle2 { | |||||
width: 100%; | |||||
margin-top: 14px; | |||||
display: flex; | |||||
flex-wrap: wrap; | |||||
.span1 { | |||||
width: 100px; | |||||
height: 30px; | |||||
font-size: 30px; | |||||
font-weight: normal; | |||||
color: #32363d; | |||||
line-height: 30px; | |||||
} | |||||
.span2 { | |||||
height: 30px; | |||||
font-size: 16px; | |||||
display: flex; | |||||
align-items: flex-end; | |||||
justify-content: space-between; | |||||
width: 100%; | |||||
.span2-1 { | |||||
color: #424d64; | |||||
margin-right: 15px; | |||||
font-weight: 400; | |||||
} | |||||
.span2-2 { | |||||
font-weight: 600; | |||||
color: #e6273a; | |||||
} | |||||
.span2-3 { | |||||
font-weight: 600; | |||||
color: #25ceba; | |||||
} | |||||
} | |||||
} | |||||
.pageboxtitle3 { | |||||
text-align: center; | |||||
font-size: 30px; | |||||
line-height: 44px; | |||||
} | |||||
} | |||||
} | } | ||||
// 进度条 | // 进度条 | ||||
@@ -1485,7 +1686,7 @@ export default { | |||||
background: #2671e2; | background: #2671e2; | ||||
} | } | ||||
.tophovese { | .tophovese { | ||||
color: #2671e2; | |||||
color: #2671e2 !important; | |||||
} | } | ||||
.app-top { | .app-top { | ||||
width: 100%; | width: 100%; | ||||
@@ -7,9 +7,10 @@ | |||||
// const url = 'http://192.168.31.167:9999' //长龙 | // const url = 'http://192.168.31.167:9999' //长龙 | ||||
// const url = 'http://192.168.31.134:9999' //嘉豪 | // const url = 'http://192.168.31.134: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' //正式 | |||||
// const url = 'http://192.168.31.89:9999' //sh | // const url = 'http://192.168.31.89:9999' //sh | ||||
// const url = 'https://zanyong.hfju.com' // 正式域名 | // const url = 'https://zanyong.hfju.com' // 正式域名 | ||||
const url = 'http://81.70.55.170:9999' // 新测试 | |||||
const CompressionWebpackPlugin = require('compression-webpack-plugin') | const CompressionWebpackPlugin = require('compression-webpack-plugin') | ||||
const productionGzipExtensions = ['js', 'css'] | const productionGzipExtensions = ['js', 'css'] | ||||
module.exports = { | module.exports = { | ||||