This commit is contained in:
X_Rian 2024-06-03 18:47:58 +08:00
parent 9b873862fa
commit 8edff95f9b
3 changed files with 77 additions and 64 deletions

View File

@ -20,7 +20,7 @@
<p>暂无数据</p> <p>暂无数据</p>
</div> </div>
</div> </div>
<div style="width: 50%"> <div style="width: 50%; position: relative">
<div id="eacherMessCount" style="width: 100%; height: 100%"></div> <div id="eacherMessCount" style="width: 100%; height: 100%"></div>
<div class="notoDta" v-if="messCountType.data.length == 0"> <div class="notoDta" v-if="messCountType.data.length == 0">
<img src="@/assets/images/noData.png" alt="" /> <img src="@/assets/images/noData.png" alt="" />
@ -42,11 +42,11 @@
<div class="item" v-for="(item, index) in listData" :key="index"> <div class="item" v-for="(item, index) in listData" :key="index">
<div class="itemHead"> <div class="itemHead">
<div> <div>
<div class="itemHeadInner1" style="margin-right:10px" v-if="JSON.parse(item.payload).status === 2">未整改</div> <div class="itemHeadInner1" style="margin-right: 10px" v-if="JSON.parse(item.payload).status === 2">未整改</div>
<div class="itemHeadInner4" style="margin-right:10px" v-if="JSON.parse(item.payload).status === 3">未复查</div> <div class="itemHeadInner4" style="margin-right: 10px" v-if="JSON.parse(item.payload).status === 3">未复查</div>
<div class="itemHeadInner5" style="margin-right:10px" v-if="JSON.parse(item.payload).status === 4">未核验</div> <div class="itemHeadInner5" style="margin-right: 10px" v-if="JSON.parse(item.payload).status === 4">未核验</div>
<div class="itemHeadInner6" style="margin-right:10px" v-if="JSON.parse(item.payload).status === 5">合格</div> <div class="itemHeadInner6" style="margin-right: 10px" v-if="JSON.parse(item.payload).status === 5">合格</div>
<div class="itemHeadInner3" style="margin-right:10px" v-if="JSON.parse(item.payload).status === 6">已撤回</div> <div class="itemHeadInner3" style="margin-right: 10px" v-if="JSON.parse(item.payload).status === 6">已撤回</div>
</div> </div>
<div v-if="JSON.parse(item.payload).level"> <div v-if="JSON.parse(item.payload).level">
<div class="itemHeadInner1" v-if="JSON.parse(item.payload).level === 1">重大风险</div> <div class="itemHeadInner1" v-if="JSON.parse(item.payload).level === 1">重大风险</div>
@ -88,11 +88,11 @@
<div class="item" v-for="(item, index) in listData" :key="index"> <div class="item" v-for="(item, index) in listData" :key="index">
<div class="itemHead"> <div class="itemHead">
<div> <div>
<div class="itemHeadInner1" style="margin-right:10px" v-if="JSON.parse(item.payload).status === 2">未整改</div> <div class="itemHeadInner1" style="margin-right: 10px" v-if="JSON.parse(item.payload).status === 2">未整改</div>
<div class="itemHeadInner4" style="margin-right:10px" v-if="JSON.parse(item.payload).status === 3">未复查</div> <div class="itemHeadInner4" style="margin-right: 10px" v-if="JSON.parse(item.payload).status === 3">未复查</div>
<div class="itemHeadInner5" style="margin-right:10px" v-if="JSON.parse(item.payload).status === 4">未核验</div> <div class="itemHeadInner5" style="margin-right: 10px" v-if="JSON.parse(item.payload).status === 4">未核验</div>
<div class="itemHeadInner6" style="margin-right:10px" v-if="JSON.parse(item.payload).status === 5">合格</div> <div class="itemHeadInner6" style="margin-right: 10px" v-if="JSON.parse(item.payload).status === 5">合格</div>
<div class="itemHeadInner3" style="margin-right:10px" v-if="JSON.parse(item.payload).status === 6">已撤回</div> <div class="itemHeadInner3" style="margin-right: 10px" v-if="JSON.parse(item.payload).status === 6">已撤回</div>
</div> </div>
<div v-if="JSON.parse(item.payload).level"> <div v-if="JSON.parse(item.payload).level">
<div class="itemHeadInner1" v-if="JSON.parse(item.payload).level === 1">重大风险</div> <div class="itemHeadInner1" v-if="JSON.parse(item.payload).level === 1">重大风险</div>
@ -499,12 +499,19 @@ function getMessCountEchart() {
}), }),
formatter: function (params: any) { formatter: function (params: any) {
console.log("333333", messCountType.value.data); console.log("333333", messCountType.value.data);
let val = ""; // let val = "";
if (params.length > 4) { // if (params.length > 4) {
val = params.substr(0, 5) + "..."; // val = params.substr(0, 5) + "...";
return val; // return val;
} else { // } else {
return params; // return params;
// }
if (messCountType.value.data && messCountType.value.data.length) {
for (let i = 0; i < messCountType.value.data.length; i++) {
if (params === messCountType.value.data[i].name) {
return messCountType.value.data[i].name + "\t" + messCountType.value.data[i].count;
}
}
} }
} }
}, },

View File

@ -641,9 +641,12 @@ function getRiskEchart() {
const echartsTest = echarts.init(document.getElementById("eacherRisk")); const echartsTest = echarts.init(document.getElementById("eacherRisk"));
let option = { let option = {
tooltip: { tooltip: {
trigger: "axis" trigger: "axis",
confine: true
}, },
legend: { legend: {
trigger: "item",
position: "inside",
x: "right", x: "right",
textStyle: { textStyle: {
color: "#fff" color: "#fff"
@ -1448,7 +1451,7 @@ onMounted(async () => {
} }
.notoDta { .notoDta {
top: 35%; top: 25%;
width: 50%; width: 50%;
// left: 40%; // left: 40%;
position: absolute; position: absolute;

View File

@ -8,17 +8,17 @@
<span>月度安全综合评分表</span> <span>月度安全综合评分表</span>
</div> </div>
<div class="all-subTitle"> <div class="all-subTitle">
<span>工程名称{{projectData.projectName || ""}}</span> <span>工程名称{{ projectData.projectName || "" }}</span>
<span>表格日期{{currentDate}}</span> <span>表格日期{{ currentDate }}</span>
</div> </div>
<div class="table-one"> <div class="table-one">
<div class="tabList"> <div class="tabList">
<div style="width:15%;margin:0 0 0 0">考核分类</div> <div style="width: 15%; margin: 0 0 0 0">考核分类</div>
<div style="width:7%;margin:0 0 0 7%">考核指标</div> <div style="width: 7%; margin: 0 0 0 7%">考核指标</div>
<div style="width:7%;margin:0 0 0 18%">指标说明</div> <div style="width: 7%; margin: 0 0 0 18%">指标说明</div>
<div style="width:7%;margin:0 0 0 18.5%">单模块权重</div> <div style="width: 7%; margin: 0 0 0 18.5%">单模块权重</div>
<div style="width:7%;margin:0 0 0 4%">模块权重</div> <div style="width: 7%; margin: 0 0 0 4%">模块权重</div>
<div style="width:7%;margin:0 0 0 1.5%">模块得分</div> <div style="width: 7%; margin: 0 0 0 1.5%">模块得分</div>
</div> </div>
<el-scrollbar class="listBox" ref="refScrollbar"> <el-scrollbar class="listBox" ref="refScrollbar">
<div class="table-head-nine"> <div class="table-head-nine">
@ -26,22 +26,22 @@
<div class="category-title"> <div class="category-title">
<span>{{ key2 }}</span> <span>{{ key2 }}</span>
</div> </div>
<div class="category-content" style="width:80%"> <div class="category-content" style="width: 80%">
<div v-for="(item, index3) in value2" :key="index3"> <div v-for="(item, index3) in value2" :key="index3">
<div> <div>
<span>{{ index3 }}</span> <span>{{ index3 }}</span>
</div> </div>
<div style="width:50%">{{item.name}}</div> <div style="width: 50%">{{ item.name }}</div>
<div style="width:20%"> <div style="width: 20%">
<span>{{item.value}}</span> <span>{{ item.value }}</span>
</div> </div>
</div> </div>
</div> </div>
<div class="category-other" style="width: 10%"> <div class="category-other" style="width: 10%">
<span v-if="key2 == '隐患治理排查'">25%</span> <span v-if="key2 == '隐患治理排查'">35%</span>
<span v-else-if="key2 == '危大工程'">15%</span> <span v-else-if="key2 == '危大工程'">15%</span>
<span v-else-if="key2 == '风险管理'">15%</span> <span v-else-if="key2 == '风险管理'">0%</span>
<span v-else-if="key2 == '安全教育'">25%</span> <span v-else-if="key2 == '安全教育'">30%</span>
</div> </div>
<div class="category-other" style="width: 10%"> <div class="category-other" style="width: 10%">
<span v-if="key2 == '隐患治理排查'">{{ countData.hiddenDangerScore || 0 }}</span> <span v-if="key2 == '隐患治理排查'">{{ countData.hiddenDangerScore || 0 }}</span>
@ -54,13 +54,13 @@
<div class="category-title"> <div class="category-title">
<span>AI报警</span> <span>AI报警</span>
</div> </div>
<div class="category-content" style="width:80%"> <div class="category-content" style="width: 80%">
<div> <div>
<div> <div>
<span>AI违章抓拍</span> <span>AI违章抓拍</span>
</div> </div>
<div style="width:50%">告警数量月度环比对比</div> <div style="width: 50%">告警数量月度环比对比</div>
<div style="width:20%"> <div style="width: 20%">
<span>100%</span> <span>100%</span>
</div> </div>
</div> </div>
@ -131,25 +131,28 @@ let moreScroll = ref(true as any);
const refScrollbar = ref(null as any); // const refScrollbar = ref(null as any); //
const partyMemberList = ref({} as any); const partyMemberList = ref({} as any);
const value = ref({ const value = ref({
"隐患治理排查": { 隐患治理排查: {
"隐患整改率": {name: "隐患整改率=已整改(除了待整改和已撤回)/隐患总数(不包含排查记录)/隐患总数x100%",value: "30%"}, 隐患整改率: { name: "隐患整改率=已整改(除了待整改和已撤回)/隐患总数(不包含排查记录)/隐患总数x100%", value: "40%" },
"隐患及时整改率": {name: "及时整改率=状态是已整改(除了待整改和已撤回)的未超期整改的隐患记录数/状态是已整改除了待整改和已撤回的隐患总数x100%",value: "30%"}, 隐患及时整改率: {
"隐患闭合率": {name: "隐患闭合率=状态是合格的隐患记录/隐患总数x100%",value: "20%"}, name: "及时整改率=状态是已整改(除了待整改和已撤回)的未超期整改的隐患记录数/状态是已整改除了待整改和已撤回的隐患总数x100%",
"隐患自检数量": {name: "每周完成项目自检次数",value: "20%"}, value: "30%"
}, },
"危大工程": { 隐患闭合率: { name: "隐患闭合率=状态是合格的隐患记录/隐患总数x100%", value: "30%" },
"危大工程排查覆盖率": {name: "危大工程排查覆盖率=实际排查天数/应排查天数x100%(在施危大工程应每天排查)",value: "60%"}, 隐患自检数量: { name: "每周完成项目自检次数", value: "0%" }
"旁站记录更新": {name: "每周至少针对在施危大工程完成旁站记录次数",value: "40%"},
}, },
"风险管理": { 危大工程: {
"风险排查执行率": {name: "有排查记录的风险/生成待办任务的风险x100%",value: "99%"}, 危大工程排查覆盖率: { name: "危大工程排查覆盖率=实际排查天数/应排查天数x100%(在施危大工程应每天排查)", value: "60%" },
"风险辨识数量": {name: "至少识别3个风险",value: "1%"}, 旁站记录更新: { name: "每周至少针对在施危大工程完成旁站记录次数", value: "40%" }
}, },
"安全教育": { 风险管理: {
"三级入场教育完成率": {name: "三级入场教育完成率=三级教育完成人数/所有在岗人数",value: "100%"} 风险排查执行率: { name: "有排查记录的风险/生成待办任务的风险x100%", value: "99%" },
风险辨识数量: { name: "至少识别3个风险", value: "1%" }
},
安全教育: {
三级入场教育完成率: { name: "三级入场教育完成率=三级教育完成人数/所有在岗人数", value: "100%" }
} }
}); });
const countData = ref({} as any) const countData = ref({} as any);
const projectData = ref({} as any); const projectData = ref({} as any);
// //
const getProjectInfo = async () => { const getProjectInfo = async () => {
@ -194,7 +197,7 @@ const getMemberCountList = async (tip: any) => {
}; };
onMounted(async () => { onMounted(async () => {
currentDate.value = moment(new Date()).format("YYYY-MM-DD") currentDate.value = moment(new Date()).format("YYYY-MM-DD");
await getProjectInfo(); await getProjectInfo();
await getMemberCountList("search"); await getMemberCountList("search");
await getStatScoreFn(); await getStatScoreFn();
@ -337,28 +340,28 @@ onMounted(async () => {
align-items: center; align-items: center;
flex-direction: column; flex-direction: column;
justify-content: center; justify-content: center;
background-color: #041E51; background-color: #041e51;
} }
.category-content { .category-content {
width: 49%; width: 49%;
>div:nth-child(2n - 1){ > div:nth-child(2n - 1) {
background-color: #041E51; background-color: #041e51;
} }
>div:nth-child(2n){ > div:nth-child(2n) {
background-color: #102959; background-color: #102959;
} }
> div { > div {
width: 100%; width: 100%;
height: auto; height: auto;
display: flex; display: flex;
>div{ > div {
width: 33.3%; width: 33.3%;
height: auto; height: auto;
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: center; justify-content: center;
} }
>div:nth-child(2){ > div:nth-child(2) {
line-height: 20px; line-height: 20px;
text-align: left; text-align: left;
justify-content: flex-start; justify-content: flex-start;
@ -372,7 +375,7 @@ onMounted(async () => {
color: white; color: white;
font-size: 14px; font-size: 14px;
margin-bottom: 5px; margin-bottom: 5px;
>div{ > div {
height: 30px; height: 30px;
line-height: 30px; line-height: 30px;
} }
@ -383,8 +386,8 @@ onMounted(async () => {
white-space: nowrap; white-space: nowrap;
background-color: #102959; background-color: #102959;
} }
>div:not(:first-child){ > div:not(:first-child) {
background-color: #041E51; background-color: #041e51;
} }
> div:nth-child(2) { > div:nth-child(2) {
width: 17%; width: 17%;
@ -417,7 +420,7 @@ onMounted(async () => {
text-align: center; text-align: center;
color: white; color: white;
font-size: 14px; font-size: 14px;
>div{ > div {
height: 30px; height: 30px;
line-height: 30px; line-height: 30px;
} }
@ -436,7 +439,7 @@ onMounted(async () => {
display: flex; display: flex;
flex-direction: column; flex-direction: column;
white-space: nowrap; white-space: nowrap;
background-color: #041E51; background-color: #041e51;
} }
} }
} }