2023-07-02 12:56:43 +08:00

218 lines
5.7 KiB
Vue

<template>
<div class="table-box">
<div class="leftBox">
<div class="blockBox">
<div class="blockTitle">
<img src="@/assets/images/hzImg/xm/xmxx.png" alt="" class="title" />
</div>
<div class="blockContent" @click="showProjectDialog">
<projectInfo @projectData="getProjectData"></projectInfo>
</div>
</div>
<projectInfoDialog v-show="projectDialog" @close="closeProjectDialog"></projectInfoDialog>
<div class="blockBox">
<div class="blockTitle">
<img src="@/assets/images/hzImg/xm/zfgl.png" alt="" class="title" />
</div>
<div class="blockContent chartContent">
<div class="chartBox">
<pieChart :colorArr="['#EEA959', '#4CC4F8']" title="支付率" :chartData="payData" :total="payRatio"></pieChart>
</div>
<div class="detailBox">
<div class="item">
<i class="rect"></i>
<span class="name">请款金额</span>
<span>0</span>
</div>
<div class="item">
<i class="rect"></i>
<span class="name">变更金额</span>
<span>0</span>
</div>
<div class="item">
<i class="color1 rect"></i>
<span class="name">审批支付</span>
<span>0</span>
</div>
<div class="item">
<i class="color2 rect"></i>
<span class="name">实际支付</span>
<span>0</span>
</div>
</div>
</div>
</div>
<div class="blockBox">
<div class="blockTitle">
<img src="@/assets/images/hzImg/xm/gdxcsp.png" alt="" class="title" />
</div>
<div class="blockContent" style="height: 236px"></div>
</div>
</div>
<div class="centerBox">
<div class="mapBox">
<maps :projectData="projectData"></maps>
</div>
<div class="blockBox">
<div class="blockTitle blockTitle2">
<img src="@/assets/images/hzImg/xm/lcb.png" alt="" class="title" />
</div>
<div class="blockContent">
<milestone :projectData="projectData"></milestone>
</div>
</div>
</div>
<div class="rightBox">
<div class="blockBox">
<div class="blockTitle">
<img src="@/assets/images/hzImg/xm/aqgl.png" alt="" class="title" />
</div>
<div class="blockContent chartContent">
<div class="chartBox">
<pieChart
:colorArr="['#6375C7', '#EC6266']"
:chartData="saftyData"
title="安全问题总数"
:total="safetyTotal"
></pieChart>
</div>
<div class="detailBox">
<div class="item">
<i class="color3 rect"></i>
<span class="name">已整改安全问题</span>
<span>{{ saftyData[0].value }}</span>
</div>
<div class="item">
<i class="color4 rect"></i>
<span class="name">未整改安全问题</span>
<span>{{ saftyData[1].value }}</span>
</div>
</div>
</div>
</div>
<div class="blockBox">
<div class="blockTitle">
<img src="@/assets/images/hzImg/xm/zlgl.png" alt="" class="title" />
</div>
<div class="blockContent chartContent">
<div class="chartBox">
<pieChart
:colorArr="['#82FBEA', '#4CC4F8']"
:chartData="qualityData"
title="质量问题总数"
:total="qualityTotal"
></pieChart>
</div>
<div class="detailBox">
<div class="item">
<i class="color5 rect"></i>
<span class="name">已整改质量问题</span>
<span>{{ qualityData[0].value }}</span>
</div>
<div class="item">
<i class="color6 rect"></i>
<span class="name">未整改质量问题</span>
<span>{{ qualityData[1].value }}</span>
</div>
</div>
</div>
</div>
<div class="blockBox">
<div class="blockTitle">
<img src="@/assets/images/hzImg/xm/hjjc.png" alt="" class="title" />
</div>
<div class="blockContent">
<environment></environment>
</div>
</div>
</div>
</div>
</template>
<script setup lang="tsx" name="largeScreen">
import { ref, reactive, onMounted } from "vue";
import projectInfo from "./components/projectInfo.vue";
import pieChart from "./components/pieChart.vue";
import milestone from "./components/milestone.vue";
import maps from "./components/maps.vue";
import environment from "./components/environment.vue";
import projectInfoDialog from "./components/projectInfoDialog.vue";
import { getInspectInfo } from "@/api/modules/projectLargeSreen";
//获取项目信息
const projectData = ref({
latitude: "",
longitude: "",
totalDay: ""
});
const getProjectData = (data: any) => {
projectData.value = data;
};
// 视频弹框 --- start
const projectDialog = ref(false);
const showProjectDialog = () => {
projectDialog.value = true;
};
const closeProjectDialog = () => {
projectDialog.value = false;
};
// 视频弹框 --- end
// 支付管理 --- start
const payRatio = ref("0%");
let payData = ref([
{
name: "审批支付",
value: 0
},
{
name: "实际支付",
value: 0
}
]);
// 支付管理 --- end
// 安全质量 --- start
const safetyTotal = ref(0);
let saftyData = ref([
{
name: "已整改安全问题",
value: 0
},
{
name: "未整改安全问题",
value: 0
}
]);
const qualityTotal = ref(0);
let qualityData = ref([
{
name: "已整改质量问题",
value: 0
},
{
name: "未整改质量问题",
value: 0
}
]);
// 获取安全质量信息
const getInspect = async () => {
const res: any = await getInspectInfo();
safetyTotal.value = res.result.safetyTotal;
saftyData.value[0].value = res.result.safetyCompleted;
saftyData.value[1].value = res.result.safetyUnCompleted;
qualityTotal.value = res.result.qualityTotal;
qualityData.value[0].value = res.result.qualityCompleted;
qualityData.value[1].value = res.result.qualityUnCompleted;
};
// 安全质量 --- end
onMounted(async () => {
await getInspect();
});
</script>
<style scoped lang="scss">
@import url("./style.scss");
</style>