xy 2 years ago
parent dbaca2d03a
commit 2b2cf1bc4b

@ -1,448 +1,448 @@
<template> <template>
<div> <div>
<div class="boxlist"> <div class="boxlist">
<div class="box box1"> <div class="box box1">
<div class="boxtitle"> <div class="boxtitle">
<span>营业统计</span> <span>营业统计</span>
<i class="el-icon-data-line statIcon"></i> <i class="el-icon-data-line statIcon"></i>
</div> </div>
<div class="bline"></div> <div class="bline"></div>
<div class="boxcontentsubtitle">服务金额</div> <div class="boxcontentsubtitle">服务金额</div>
<div class="boxcontent"> <div class="boxcontent">
<div class="boxcontentitem"> <div class="boxcontentitem">
<div class="boxcontentitem-big"> <div class="boxcontentitem-big">
{{totaldata.business.server_money_total}} {{totaldata.business.server_money_total}}
</div> </div>
<div style="display: flex;justify-content: space-around;"> <div style="display: flex;justify-content: space-around;">
<div class="boxcontentitem-small"> <div class="boxcontentitem-small">
<span>{{totaldata.business.nurse_money_total}}</span> <span>{{totaldata.business.nurse_money_total}}</span>
<span>护工金额</span> <span>护工金额</span>
</div> </div>
<div class="boxcontentitem-small"> <div class="boxcontentitem-small">
<span>{{totaldata.business.remain_money_total}}</span> <span>{{totaldata.business.remain_money_total}}</span>
<span>留存金额</span> <span>留存金额</span>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
<div class="box box2"> <div class="box box2">
<div class="boxtitle"> <div class="boxtitle">
<span>人效统计</span> <span>人效统计</span>
<i class="el-icon-user statIcon"></i> <i class="el-icon-user statIcon"></i>
</div> </div>
<div class="bline"></div> <div class="bline"></div>
<div class="boxcontentsubtitle">总服务时长</div> <div class="boxcontentsubtitle">总服务时长</div>
<div class="boxcontent"> <div class="boxcontent">
<div class="boxcontentitem"> <div class="boxcontentitem">
<div class="boxcontentitem-big"> <div class="boxcontentitem-big">
{{totaldata.person_efficiency.server_time_total}} {{totaldata.person_efficiency.server_time_total}}
分钟 分钟
</div> </div>
<div style="display: flex;justify-content: space-around;"> <div style="display: flex;justify-content: space-around;">
<div class="boxcontentitem-small"> <div class="boxcontentitem-small">
<span>{{totaldata.person_efficiency.expect}}</span> <span>{{totaldata.person_efficiency.expect}}</span>
<span> 照护人员数</span> <span> 照护人员数</span>
</div> </div>
<div class="boxcontentitem-small"> <div class="boxcontentitem-small">
<span>{{totaldata.person_efficiency.act}} </span> <span>{{totaldata.person_efficiency.act}} </span>
<span>天数</span> <span>天数</span>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
<div class="box box3"> <div class="box box3">
<div class="boxtitle"> <div class="boxtitle">
<span>客户统计</span> <span>客户统计</span>
<i class="el-icon-s-custom statIcon"></i> <i class="el-icon-s-custom statIcon"></i>
</div> </div>
<div class="bline"></div> <div class="bline"></div>
<div class="boxcontentsubtitle">活跃客户</div> <div class="boxcontentsubtitle">活跃客户</div>
<div class="boxcontent"> <div class="boxcontent">
<div class="boxcontentitem"> <div class="boxcontentitem">
<div class="boxcontentitem-big"> <div class="boxcontentitem-big">
{{totaldata.customer.active}} {{totaldata.customer.active}}
</div> </div>
<div style="display: flex;justify-content: space-around;"> <div style="display: flex;justify-content: space-around;">
<div class="boxcontentitem-small"> <div class="boxcontentitem-small">
<span>{{totaldata.customer.add}}</span> <span>{{totaldata.customer.add}}</span>
<span>新增</span> <span>新增</span>
</div> </div>
<div class="boxcontentitem-small"> <div class="boxcontentitem-small">
<span>{{totaldata.customer.wash}}</span> <span>{{totaldata.customer.wash}}</span>
<span>流失</span> <span>流失</span>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
<div class="box box4"> <div class="box box4">
<div class="boxtitle"> <div class="boxtitle">
<span>订单统计</span> <span>订单统计</span>
<i class="el-icon-document statIcon"></i> <i class="el-icon-document statIcon"></i>
</div> </div>
<div class="bline"></div> <div class="bline"></div>
<div class="boxcontentsubtitle">服务订单</div> <div class="boxcontentsubtitle">服务订单</div>
<div class="boxcontent"> <div class="boxcontent">
<div class="boxcontentitem"> <div class="boxcontentitem">
<div class="boxcontentitem-big">{{totaldata.order.server_total}} <div class="boxcontentitem-big">{{totaldata.order.server_total}}
</div> </div>
<div style="display: flex;justify-content: space-around;"> <div style="display: flex;justify-content: space-around;">
<div class="boxcontentitem-small"> <div class="boxcontentitem-small">
<span>{{totaldata.order.cycle_total}}</span> <span>{{totaldata.order.cycle_total}}</span>
<span>周期性订单</span> <span>周期性订单</span>
</div> </div>
<div class="boxcontentitem-small"> <div class="boxcontentitem-small">
<span>{{totaldata.order.unit_total}}</span> <span>{{totaldata.order.unit_total}}</span>
<span>单次订单</span> <span>单次订单</span>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
</template> </template>
<script> <script>
import CountTo from 'vue-count-to' import CountTo from 'vue-count-to'
export default { export default {
props: { props: {
countsData: { countsData: {
type: Object type: Object
}, },
totaldata: { totaldata: {
type: Object, type: Object,
default: { default: {
"business": { "business": {
"server_money_total": 0, "server_money_total": 0,
"nurse_money_total": 0, "nurse_money_total": 0,
"remain_money_total": 0 "remain_money_total": 0
}, },
"person_efficiency": { "person_efficiency": {
"server_time_total": "0", "server_time_total": "0",
"expect": 0, "expect": 0,
"act": 0 "act": 0
}, },
"customer": { "customer": {
"active": 0, "active": 0,
"add": 0, "add": 0,
"wash": 0 "wash": 0
}, },
"order": { "order": {
"server_total": 0, "server_total": 0,
"cycle_total": 0, "cycle_total": 0,
"unit_total": 0 "unit_total": 0
}, },
} }
} }
}, },
components: { components: {
CountTo CountTo
}, },
methods: { methods: {
handleRoute(type) { handleRoute(type) {
this.$emit('handleRoute', type) this.$emit('handleRoute', type)
}, },
toCaculateper(f1, f2) { toCaculateper(f1, f2) {
return ((f1 / (f2 == 0 ? 1 : f2)) * 100).toFixed(2) + "%" return ((f1 / (f2 == 0 ? 1 : f2)) * 100).toFixed(2) + "%"
} }
} }
} }
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.boxlist { .boxlist {
display: flex; display: flex;
} }
.statIcon { .statIcon {
font-size: 24px; font-size: 24px;
} }
.index_icon { .index_icon {
position: absolute; position: absolute;
top: 1.25rem; top: 1.25rem;
right: 1.25rem; right: 1.25rem;
width: 3.5625rem; width: 3.5625rem;
} }
.index_bg { .index_bg {
position: absolute; position: absolute;
bottom: 0; bottom: 0;
left: 0; left: 0;
width: 100%; width: 100%;
} }
.boxcontentitem-small { .boxcontentitem-small {
font-size: 16px; font-size: 16px;
display: flex; display: flex;
flex-direction: column; flex-direction: column;
} }
.box { .box {
position: relative; position: relative;
width: 33%; width: 33%;
margin-left: 0.5%; margin-left: 0.5%;
margin-right: 0.5%; margin-right: 0.5%;
margin-bottom: 2.375rem; margin-bottom: 2.375rem;
box-shadow: 0px 8px 15px 0px rgba(212, 84, 32, 0.3100); box-shadow: 0px 8px 15px 0px rgba(212, 84, 32, 0.3100);
border-radius: 8px; border-radius: 8px;
box-sizing: border-box; box-sizing: border-box;
opacity: 0.8; opacity: 0.8;
padding: 1.25rem 0; padding: 1.25rem 0;
.boxcontentsubtitle { .boxcontentsubtitle {
color: #FFFFFF; color: #FFFFFF;
text-align: center; text-align: center;
display: flex; display: flex;
justify-content: center; justify-content: center;
font-size: 1.0625rem; font-size: 1.0625rem;
margin-top: 1.25rem; margin-top: 1.25rem;
} }
.boxfooter { .boxfooter {
font-size: 1.0625rem; font-size: 1.0625rem;
font-family: Source Han Sans CN; font-family: Source Han Sans CN;
font-weight: 400; font-weight: 400;
color: #FFFFFF; color: #FFFFFF;
display: flex; display: flex;
justify-content: center; justify-content: center;
} }
.boxtitle { .boxtitle {
font-size: 20px; font-size: 20px;
font-family: Source Han Sans CN; font-family: Source Han Sans CN;
font-weight: 400; font-weight: 400;
color: #FFFFFF; color: #FFFFFF;
padding: 0 1.25rem; padding: 0 1.25rem;
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
align-items: center; align-items: center;
} }
.boxcontent { .boxcontent {
display: flex; display: flex;
//justify-content: space-around; //justify-content: space-around;
align-items: center; align-items: center;
.boxline { .boxline {
width: 1px; width: 1px;
height: 4.0625rem; height: 4.0625rem;
background: #FFFFFF00; background: #FFFFFF00;
opacity: 0.3; opacity: 0.3;
margin-left: 2.0625rem; margin-left: 2.0625rem;
margin-right: 2.0625rem; margin-right: 2.0625rem;
} }
.boxcontentitem { .boxcontentitem {
display: flex; display: flex;
flex-direction: column; flex-direction: column;
font-size: 19px; font-size: 19px;
font-family: Source Han Sans CN; font-family: Source Han Sans CN;
font-weight: 400; font-weight: 400;
color: #FFFFFF; color: #FFFFFF;
text-align: center; text-align: center;
min-width: 100%; min-width: 100%;
.boxcontentitem-big { .boxcontentitem-big {
font-size: 2.625rem; font-size: 2.625rem;
font-family: Arial; font-family: Arial;
font-weight: 400; font-weight: 400;
color: #FFFFFF; color: #FFFFFF;
} }
} }
} }
} }
.box1 { .box1 {
background: linear-gradient(134deg, #D1AC7B, #DFC69C); background: linear-gradient(134deg, #D1AC7B, #DFC69C);
.boxcline { .boxcline {
width: 100%; width: 100%;
background: #DFC69C; background: #DFC69C;
height: 0.125rem; height: 0.125rem;
margin-top: 1.25rem; margin-top: 1.25rem;
margin-bottom: 1.25rem; margin-bottom: 1.25rem;
} }
} }
.bline { .bline {
background: linear-gradient(to right, rgba(255, 255, 255, 0.3), rgba(255, 255, 255, 0) 60%); background: linear-gradient(to right, rgba(255, 255, 255, 0.3), rgba(255, 255, 255, 0) 60%);
height: 0.25rem; height: 0.25rem;
width: 100%; width: 100%;
margin-top: 1.25rem; margin-top: 1.25rem;
} }
.box2 { .box2 {
background: linear-gradient(134deg, #9193BC, #B7B9D4); background: linear-gradient(134deg, #9193BC, #B7B9D4);
.boxcline { .boxcline {
width: 100%; width: 100%;
background: #B7B9D4; background: #B7B9D4;
height: 0.125rem; height: 0.125rem;
margin-top: 1.25rem; margin-top: 1.25rem;
margin-bottom: 1.25rem; margin-bottom: 1.25rem;
} }
} }
.box3 { .box3 {
background: linear-gradient(-55deg, #F6A868, #F4C59E); background: linear-gradient(-55deg, #F6A868, #F4C59E);
.boxcline { .boxcline {
width: 100%; width: 100%;
background: #F4C59E; background: #F4C59E;
height: 0.125rem; height: 0.125rem;
margin-top: 1.25rem; margin-top: 1.25rem;
margin-bottom: 1.25rem; margin-bottom: 1.25rem;
} }
} }
.box4 { .box4 {
background: linear-gradient(-55deg, #64A48E, #9ECABB); background: linear-gradient(-55deg, #64A48E, #9ECABB);
.boxcline { .boxcline {
width: 100%; width: 100%;
background: #9ECABB; background: #9ECABB;
height: 0.125rem; height: 0.125rem;
margin-top: 1.25rem; margin-top: 1.25rem;
margin-bottom: 1.25rem; margin-bottom: 1.25rem;
} }
} }
.panel-group { .panel-group {
// margin-top: 18px; // margin-top: 18px;
margin-left: -2% !important; margin-left: -2% !important;
margin-right: -3% !important; margin-right: -3% !important;
.card-panel-col { .card-panel-col {
margin: 0 2%; margin: 0 2%;
margin-bottom: 32px; margin-bottom: 32px;
} }
.card-panel { .card-panel {
height: 130px; height: 130px;
cursor: pointer; cursor: pointer;
font-size: 12px; font-size: 12px;
position: relative; position: relative;
overflow: hidden; overflow: hidden;
color: #666; color: #666;
text-align: center; text-align: center;
// background: #fff; // background: #fff;
// box-shadow: 4px 4px 40px rgba(0, 0, 0, .05); // box-shadow: 4px 4px 40px rgba(0, 0, 0, .05);
// border-color: rgba(0, 0, 0, .05); // border-color: rgba(0, 0, 0, .05);
&:hover { &:hover {
.card-panel-icon-wrapper { .card-panel-icon-wrapper {
color: #fff; color: #fff;
} }
// .icon-people { // .icon-people {
// background: #40c9c6; // background: #40c9c6;
// } // }
// .icon-message { // .icon-message {
// background: #36a3f7; // background: #36a3f7;
// } // }
// .icon-money { // .icon-money {
// background: #f4516c; // background: #f4516c;
// } // }
// .icon-shopping { // .icon-shopping {
// background: #34bfa3 // background: #34bfa3
// } // }
} }
.icon-people { .icon-people {
color: #fff; color: #fff;
} }
.icon-message { .icon-message {
color: #fff; color: #fff;
} }
.icon-money { .icon-money {
color: #fff; color: #fff;
} }
.icon-shopping { .icon-shopping {
color: #fff color: #fff
} }
.card-panel-icon-wrapper { .card-panel-icon-wrapper {
float: right; float: right;
margin: 22px 0 0 14px; margin: 22px 0 0 14px;
padding: 16px; padding: 16px;
transition: all 0.38s ease-out; transition: all 0.38s ease-out;
border-radius: 6px; border-radius: 6px;
} }
.card-panel-icon { .card-panel-icon {
float: left; float: left;
font-size: 42px; font-size: 42px;
} }
.card-panel-description { .card-panel-description {
// float: right; // float: right;
font-weight: bold; font-weight: bold;
margin: 16px 12px; margin: 16px 12px;
.card-panel-text { .card-panel-text {
line-height: 25px; line-height: 25px;
color: rgb(255, 255, 255); color: rgb(255, 255, 255);
font-size: 26px; font-size: 26px;
margin-bottom: 20px; margin-bottom: 20px;
width: 70%; width: 70%;
text-align: left; text-align: left;
} }
p { p {
text-align: left; text-align: left;
font-size: 19px; font-size: 19px;
} }
.card-panel-num { .card-panel-num {
font-size: 20px; font-size: 20px;
} }
} }
} }
} }
@media (max-width:550px) { @media (max-width:550px) {
.card-panel-description { .card-panel-description {
display: none; display: none;
} }
.card-panel-icon-wrapper { .card-panel-icon-wrapper {
float: none !important; float: none !important;
width: 100%; width: 100%;
height: 100%; height: 100%;
margin: 0 !important; margin: 0 !important;
.svg-icon { .svg-icon {
display: block; display: block;
margin: 14px auto !important; margin: 14px auto !important;
float: none !important; float: none !important;
} }
} }
} }
</style> </style>

Loading…
Cancel
Save