2024-06-12 17:31:54 +08:00
|
|
|
|
<template>
|
|
|
|
|
|
<div class="leftTop">
|
2024-06-13 16:53:31 +08:00
|
|
|
|
<Card title="安全质量隐患报告">
|
|
|
|
|
|
<div class="box-content">
|
2024-06-14 16:22:42 +08:00
|
|
|
|
<el-scrollbar class="list-box" ref="refScrollbar">
|
2024-06-18 15:53:02 +08:00
|
|
|
|
<div v-for="item in list" class="listStyle" :key="item.id">
|
2024-06-14 16:22:42 +08:00
|
|
|
|
<div>{{ item.dangerItemContent }}</div>
|
2024-06-13 16:53:31 +08:00
|
|
|
|
<div>
|
|
|
|
|
|
<span>整改结果:</span>
|
2024-06-14 16:22:42 +08:00
|
|
|
|
<span v-if="item.overTime" style="color: #e25f64">已逾期</span>
|
|
|
|
|
|
<span v-else :style="{ color: item.status ? statusNameFilter(item.status).color : '' }">{{
|
|
|
|
|
|
item.status ? statusNameFilter(item.status).name : ""
|
|
|
|
|
|
}}</span>
|
2024-06-13 16:53:31 +08:00
|
|
|
|
</div>
|
|
|
|
|
|
<div>
|
|
|
|
|
|
<div>
|
2024-06-14 16:22:42 +08:00
|
|
|
|
<span>整改人:</span>
|
|
|
|
|
|
<span>{{ item.changeName || "" }}</span>
|
2024-06-13 16:53:31 +08:00
|
|
|
|
</div>
|
|
|
|
|
|
<div>
|
2024-06-14 16:22:42 +08:00
|
|
|
|
<span>检查人:</span>
|
|
|
|
|
|
<span>{{ item.inspectManName || "" }}</span>
|
2024-06-13 16:53:31 +08:00
|
|
|
|
</div>
|
|
|
|
|
|
<div>
|
2024-06-14 16:22:42 +08:00
|
|
|
|
<span>检查日期:</span>
|
2024-06-18 15:53:02 +08:00
|
|
|
|
<span>{{ item.inspectTime || "" }}</span>
|
2024-06-13 16:53:31 +08:00
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
2024-06-12 17:31:54 +08:00
|
|
|
|
</div>
|
2024-06-13 16:53:31 +08:00
|
|
|
|
</el-scrollbar>
|
2024-06-12 17:31:54 +08:00
|
|
|
|
</div>
|
|
|
|
|
|
</Card>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</template>
|
|
|
|
|
|
|
|
|
|
|
|
<script lang="ts" setup>
|
|
|
|
|
|
import { GlobalStore } from "@/stores";
|
2024-06-14 16:22:42 +08:00
|
|
|
|
import { getXzSecurityQualitylnspectionRecordlistApi } from "@/api/modules/projectOverview";
|
2024-06-12 17:31:54 +08:00
|
|
|
|
import { ref, onMounted, reactive } from "vue";
|
|
|
|
|
|
import * as echarts from "echarts";
|
|
|
|
|
|
import Card from "@/components/card.vue";
|
2024-06-14 16:22:42 +08:00
|
|
|
|
const refScrollbar = ref(null as any); // 绑定到滚动的盒子上
|
2024-06-12 17:31:54 +08:00
|
|
|
|
const store = GlobalStore();
|
2024-06-14 16:22:42 +08:00
|
|
|
|
const rectification = ref([
|
|
|
|
|
|
{ id: 1, name: "无需整改", color: "#a1accb" },
|
|
|
|
|
|
{ id: 2, name: "待整改", color: "#698ed2" },
|
|
|
|
|
|
{ id: 3, name: "待复查", color: "#EEA959" },
|
|
|
|
|
|
{ id: 4, name: "待核验", color: "#a1accb" },
|
|
|
|
|
|
{ id: 5, name: "合格", color: "#82FBEA" }
|
|
|
|
|
|
]);
|
|
|
|
|
|
// 名称筛选
|
|
|
|
|
|
const statusNameFilter = (status: any): any => {
|
|
|
|
|
|
let findItem = rectification.value.find((item: any) => {
|
|
|
|
|
|
return item.id == status;
|
|
|
|
|
|
});
|
|
|
|
|
|
return findItem;
|
|
|
|
|
|
};
|
|
|
|
|
|
const list = ref([]) as any;
|
|
|
|
|
|
const pageNo = ref(1 as any);
|
|
|
|
|
|
const moreScroll = ref(true as any);
|
|
|
|
|
|
const getXzSecurityQualitylnspectionRecordlist = async (tip: any) => {
|
|
|
|
|
|
const res: any = await getXzSecurityQualitylnspectionRecordlistApi({
|
|
|
|
|
|
pageNo: tip == "search" ? 1 : pageNo.value,
|
|
|
|
|
|
pageSize: 10,
|
2024-06-18 15:53:02 +08:00
|
|
|
|
projectSn: store.sn,
|
|
|
|
|
|
status: 60
|
2024-06-14 16:22:42 +08:00
|
|
|
|
});
|
|
|
|
|
|
if (tip == "more") {
|
|
|
|
|
|
const newResult = res.result.page.records.map((item: any) => {
|
|
|
|
|
|
return {
|
|
|
|
|
|
...item,
|
|
|
|
|
|
whiteSpace: false
|
|
|
|
|
|
};
|
|
|
|
|
|
});
|
|
|
|
|
|
list.value = list.value.concat(newResult);
|
|
|
|
|
|
} else {
|
|
|
|
|
|
list.value = res.result.page.records;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (res.result.page.pages == pageNo.value) {
|
|
|
|
|
|
moreScroll.value = false;
|
|
|
|
|
|
} else {
|
|
|
|
|
|
pageNo.value = pageNo.value + 1;
|
|
|
|
|
|
}
|
|
|
|
|
|
};
|
|
|
|
|
|
onMounted(async () => {
|
|
|
|
|
|
await getXzSecurityQualitylnspectionRecordlist("search");
|
|
|
|
|
|
refScrollbar.value.wrapRef.addEventListener("scroll", (e: any) => {
|
|
|
|
|
|
const scrollTop = e.target.scrollTop;
|
|
|
|
|
|
const scrollHeight = e.target.scrollHeight;
|
|
|
|
|
|
const clientHeight = e.target.clientHeight;
|
|
|
|
|
|
// 向上加载更多
|
|
|
|
|
|
if (scrollTop >= scrollHeight - clientHeight - 1) {
|
|
|
|
|
|
if (moreScroll.value) {
|
|
|
|
|
|
getXzSecurityQualitylnspectionRecordlist("more");
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
});
|
|
|
|
|
|
});
|
2024-06-13 16:53:31 +08:00
|
|
|
|
</script>
|
2024-06-12 17:31:54 +08:00
|
|
|
|
|
2024-06-13 16:53:31 +08:00
|
|
|
|
<style lang="scss" scoped>
|
|
|
|
|
|
.leftTop {
|
|
|
|
|
|
width: 100%;
|
|
|
|
|
|
height: 100%;
|
|
|
|
|
|
.box-content {
|
|
|
|
|
|
width: 100%;
|
|
|
|
|
|
height: 100%;
|
|
|
|
|
|
padding-top: 1%;
|
|
|
|
|
|
.list-box {
|
|
|
|
|
|
height: 94%;
|
|
|
|
|
|
padding: 5px 24px;
|
|
|
|
|
|
.listStyle {
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
flex-direction: column;
|
|
|
|
|
|
background: rgba(9, 30, 62, 0.5);
|
|
|
|
|
|
box-shadow: 0px 3px 4px 0px rgba(17, 141, 255, 0.5), inset 0px 0px 10px 0px #118dff;
|
|
|
|
|
|
border-radius: 0px 0px 0px 0px;
|
|
|
|
|
|
border: 1px solid;
|
|
|
|
|
|
opacity: 0.7;
|
|
|
|
|
|
border-image: linear-gradient(359deg, rgba(17, 141, 255, 1), rgba(17, 141, 255, 0)) 1 1;
|
|
|
|
|
|
padding: 9px 13px;
|
|
|
|
|
|
margin-bottom: 10px;
|
|
|
|
|
|
> div:nth-child(1) {
|
|
|
|
|
|
font-family: ABeeZee, ABeeZee;
|
|
|
|
|
|
font-weight: 400;
|
|
|
|
|
|
font-size: 16px;
|
|
|
|
|
|
color: #ffffff;
|
|
|
|
|
|
line-height: 16px;
|
|
|
|
|
|
font-style: normal;
|
|
|
|
|
|
text-transform: none;
|
|
|
|
|
|
margin-bottom: 5px;
|
2024-06-12 17:31:54 +08:00
|
|
|
|
}
|
2024-06-13 16:53:31 +08:00
|
|
|
|
> div:nth-child(2) {
|
|
|
|
|
|
font-family: ABeeZee, ABeeZee;
|
|
|
|
|
|
font-weight: 400;
|
|
|
|
|
|
font-size: 13px;
|
|
|
|
|
|
color: #ffffff;
|
|
|
|
|
|
font-style: normal;
|
|
|
|
|
|
text-transform: none;
|
|
|
|
|
|
margin-bottom: 5px;
|
2024-06-12 17:31:54 +08:00
|
|
|
|
}
|
2024-06-13 16:53:31 +08:00
|
|
|
|
> div:nth-child(3) {
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
justify-content: space-between;
|
|
|
|
|
|
margin-bottom: 2px;
|
|
|
|
|
|
> div:nth-child(1) {
|
|
|
|
|
|
font-family: ABeeZee, ABeeZee;
|
|
|
|
|
|
font-weight: 400;
|
|
|
|
|
|
font-size: 13px;
|
|
|
|
|
|
color: #ffffff;
|
|
|
|
|
|
font-style: normal;
|
|
|
|
|
|
text-transform: none;
|
|
|
|
|
|
> span:nth-child(2) {
|
|
|
|
|
|
color: #01e1ff;
|
2024-06-12 17:31:54 +08:00
|
|
|
|
}
|
|
|
|
|
|
}
|
2024-06-13 16:53:31 +08:00
|
|
|
|
> div:not(:nth-child(1)) {
|
|
|
|
|
|
font-family: ABeeZee, ABeeZee;
|
|
|
|
|
|
font-weight: 400;
|
|
|
|
|
|
font-size: 13px;
|
|
|
|
|
|
color: #8893a1;
|
|
|
|
|
|
font-style: normal;
|
|
|
|
|
|
text-transform: none;
|
2024-06-12 17:31:54 +08:00
|
|
|
|
}
|
2024-06-13 16:53:31 +08:00
|
|
|
|
}
|
2024-06-12 17:31:54 +08:00
|
|
|
|
}
|
|
|
|
|
|
}
|
2024-06-13 16:53:31 +08:00
|
|
|
|
.not-data {
|
|
|
|
|
|
top: 40%;
|
|
|
|
|
|
width: 30%;
|
|
|
|
|
|
left: 35%;
|
|
|
|
|
|
position: absolute;
|
|
|
|
|
|
text-align: center;
|
|
|
|
|
|
img {
|
|
|
|
|
|
width: 50%;
|
|
|
|
|
|
}
|
|
|
|
|
|
p {
|
|
|
|
|
|
color: #fff;
|
|
|
|
|
|
font-size: 14px;
|
|
|
|
|
|
}
|
2024-06-12 17:31:54 +08:00
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
2024-06-13 16:53:31 +08:00
|
|
|
|
|
2024-06-12 17:31:54 +08:00
|
|
|
|
::v-deep .h-card .content {
|
|
|
|
|
|
height: 80%;
|
|
|
|
|
|
}
|
|
|
|
|
|
</style>
|