232 lines
5.4 KiB
Vue

<template>
<Card title="质量管理">
<div class="container">
<div class="left">
<div class="woriaTwo">
<JRingChart
:title="{
text: '质量巡检',
subTitle: `${safetyPatrolInspection.allTotal || 0}条`,
fontSize: 16,
}"
:color="['#6EE4F0', '#E7622A']"
:data="[
{
value: safetyPatrolInspection.allClose,
name: '已巡检',
},
{
value: safetyPatrolInspection.allNoClose,
name: '未巡检',
},
]"
:radius="['43%', '60%']"
:legend="false"
/>
</div>
</div>
<div class="right">
<div class="legend">
<div class="row">
<span
>已闭合<span style="color: #6ee4f0; margin-left: 5px">{{
safetyPatrolInspection.allClose || 0
}}</span></span
>
<span
>占比<span style="color: #6ee4f0; margin-left: 2px"
>{{ safetyPatrolInspection.allCloseRatio || 0 }}%</span
></span
>
</div>
</div>
<div class="legend">
<div class="row">
<span
>未闭合<span style="color: #e7622a; margin-left: 5px">{{
safetyPatrolInspection.allNoClose || 0
}}</span></span
>
<span
>占比<span style="color: #e7622a; margin-left: 2px"
>{{ safetyPatrolInspection.allNoCloseRatio || 0 }}%</span
></span
>
</div>
</div>
</div>
<div class="count1">
总次数<span>83</span
>
<!-- 总次数<span>{{ allTotal2||0 }}</span
> -->
</div>
<div class="count2">
本周次数<span>{{ safetyPatrolInspection.weekTotal || 0 }}</span
>
</div>
</div>
</Card>
</template>
<script>
import Card from "../components/Card";
import JRingChart from "../../common/jChart/pie/JRingChart.vue";
import { getAllAndWeekDataApi } from "@/assets/js/api/zhongjianFourth";
import { mapState } from "vuex";
import { resourceManagement } from '@/assets/js/api/zhongjianFourth'
export default {
components: { Card, JRingChart },
data() {
return {
safetyPatrolInspection: {
allClose: 0, //所有已闭合
allCloseRatio: 0, //所有已闭合占比
allNoClose: 0, //所有未闭合
allNoCloseRatio: 0, //所有未闭合占比
allTotal: 0, //检查总数
weekTotal: 0, //本周巡检总数
},
allTotal2: 0, //检查总数
};
},
created() {
this.getList()
this.getAllTodayDataHdir();
},
computed: {
...mapState(["projectSn"]),
},
methods: {
getAllTodayDataHdir() {
getAllAndWeekDataApi({ projectSn: this.projectSn }).then((res) => {
this.safetyPatrolInspection = res.result;
console.log(this.safetyPatrolInspection, "getAllTodayDataHdir质量");
});
},
getList() {
resourceManagement({ projectSn: this.projectSn }).then(res => {
console.log( "安全管理getAllTodayDataHdir------------111",res);
this.allTotal2 = Number(res.result.constructionDay) + Number(this.safetyPatrolInspection.allTotal)
})
},
},
};
</script>
<style lang="less" scoped>
.container {
display: flex;
width: 100%;
height: 100%;
padding: 8px 15px;
.left {
width: 100%;
height: 100%;
margin: -30px 0px 0px -77px;
}
.woriaTwo {
width: 100%;
height: 100%;
}
.right {
width: 300px;
height: 130px;
background: url("~@/assets/images/zjsj/spliting.png");
background-size: 100% 100%;
margin-right: 23px;
margin-top: 15px;
.legend {
position: relative;
width: 160px;
margin: 37px 0 -20px 25px;
&::before {
content: "";
position: absolute;
top: 1px;
left: -10px;
width: 6px;
height: 6px;
}
&:nth-child(1)::before {
width: 12px;
height: 12px;
background-color: #6ee4ef;
}
&:nth-child(2)::before {
width: 12px;
height: 12px;
background-color: #e7622a;
}
.row {
display: flex;
span {
text-align: center;
&:first-child {
width: 60%;
margin-top: -8px;
}
&:last-child {
width: 40%;
margin-top: -8px;
}
}
&:first-child {
font-size: 14px;
}
&:last-child {
height: 30px;
line-height: 30px;
font-size: 12px;
// color: #6ae3eb;
}
}
}
}
.count1,
.count2 {
width: 300px;
padding-top: 170px;
font-size: 16px;
color: rgba(110, 228, 240, 0.85);
display: flex;
align-items: center;
position: absolute;
// margin-left: -300px;
// margin: 0 322px 0 -413px;
span {
width: 90px;
height: 40px;
line-height: 40px;
text-align: center;
font-size: 20px;
color: #fff;
background: url(../assets/images/sourse/bg-car-count.png) no-repeat;
background-size: 100% 100%;
margin-right: 10px;
margin-left: 10px;
}
}
.count1 {
margin: 20px 0 0 -13px;
}
.count2 {
margin: 20px 0 0 210px;
}
}
</style>