151 lines
3.3 KiB
Vue
Raw Normal View History

<template>
<!-- 出勤统计 -->
<Card :title="title">
<div class="contents">
<div>
<div class="point"></div>
<span class="smallTit">工种出勤统计</span>
<div class="box">
<div class="outBox" v-for="(item,index) in workerTypeList" :key="index">
<span class="name">{{item.typeName}}</span>
<p class="num">{{item.workerNum}}</p>
</div>
</div>
</div>
<div class="point botBox"></div>
<span class="smallTit">企业出勤排名</span>
<div class="topTit">
<div class="blue"></div>
<span>在场</span>
<div class="purple"></div>
<span>总人数</span>
</div>
</div>
<div class="mychart">
<JBarChart :xData="xData" :series="series" :color="color" :grid="grid" />
</div>
</Card>
</template>
<script>
import Card from "../components/Card.vue";
import JBarChart from '../jChart/bar/JBarChart.vue'
import { selectProjectWorkerTypeTotalListApi,} from "@/assets/js/api/dataBoard.js";
export default {
components: { Card,JBarChart },
props: {
title: {
type: String,
default: "default title"
}
},
data() {
return {
workerTypeList: [],
xData: ['中建一局', '中建一局', '中建一局', '中建一局','中建一局', '中建一局', '中建一局', '中建一局'],
series: [{ data: [170, 180,90,70,60,50,50,50,] }, { data: [220,280,190,180,300,200,200,200,] }],
color: ['#5be2f6', '#5281f7'],
grid: ['10%', '5%', '15%', '5%']
};
},
created(){
this.getWokerType();
},
methods:{
//获取工种出勤统计
getWokerType() {
selectProjectWorkerTypeTotalListApi({
projectSn: this.$store.state.projectSn,
}).then((res) => {
console.log(res);
this.workerTypeList = res.result;
});
},
}
};
</script>
<style lang="less" scoped>
.contents {
margin: 20px 0px 20px 30px;
.point {
width: 8px;
height: 8px;
border-radius: 50%;
background-color: #5be1f5;
display: inline-block;
}
.smallTit {
color: #51cadd;
font-size: 12px;
margin-left: 15px;
}
.box {
display: flex;
flex-flow: wrap;
justify-content: left;
align-items: center;
width: 95%;
height: 170px;
margin-left: 3%;
margin-top: 2%;
overflow: auto;
.outBox {
width: 33%;
height: 33%;
margin-bottom: 10px;
.name {
display: inline-block;
height: 50px;
width: 35%;
line-height: 40px;
margin-right: 35px;
text-align: right;
}
.num {
display: inline-block;
width: 30%;
height: 40px;
line-height: 40px;
text-align: center;
color: #4fc5d9;
background-image: url(~@/assets/images/projectImg/numBgc.png);
background-size: 100%;
background-repeat: no-repeat;
}
}
}
.botBox {
margin-top: 20px;
}
.topTit {
margin-top: 20px;
font-size: 12px;
color: #5d6674;
.blue,
.purple {
display: inline-block;
width: 15px;
height: 5px;
border-radius: 10px;
margin-left: 30px;
margin-right: 5px;
background-color: #5be2f6;
}
.purple {
background-color: #5181f7;
}
}
}
::-webkit-scrollbar {
width:3px;
}
.mychart {
width: 100%;
height: 40%;
}
</style>