2024-04-20 17:26:03 +08:00
|
|
|
<template>
|
|
|
|
|
<div class="leftTop">
|
2024-04-21 14:15:04 +08:00
|
|
|
<div class="header">
|
|
|
|
|
<div class="hLeft">
|
|
|
|
|
人员履职情况分析
|
2024-04-20 17:26:03 +08:00
|
|
|
</div>
|
2024-04-21 14:15:04 +08:00
|
|
|
<div class="hRight">
|
2024-04-27 09:47:16 +08:00
|
|
|
<el-date-picker style="width: 85%" v-model="dateRange" type="daterange" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" :size="size"/>
|
2024-04-21 14:15:04 +08:00
|
|
|
</div>
|
|
|
|
|
</div>
|
2024-04-22 23:02:06 +08:00
|
|
|
<div class="content">
|
|
|
|
|
<el-tabs v-model="activeName" class="demo-tabs" @tab-click="handleClick">
|
2024-04-27 13:41:13 +08:00
|
|
|
<el-tab-pane :label="'整改人'" name="first"></el-tab-pane>
|
|
|
|
|
<el-tab-pane :label="'检查人'" name="second"></el-tab-pane>
|
|
|
|
|
<el-tab-pane :label="'按分包单位分析'" name="third"></el-tab-pane>
|
2024-04-22 23:02:06 +08:00
|
|
|
</el-tabs>
|
|
|
|
|
<div class="tabList">
|
|
|
|
|
<div>排名</div>
|
2024-04-27 13:41:13 +08:00
|
|
|
<div v-if="activeIndex === '0' || activeIndex === '1'">姓名</div>
|
|
|
|
|
<div v-if="activeIndex === '2'">分组单位</div>
|
|
|
|
|
<div v-if="activeIndex === '0' || activeIndex === '2'">整改数量</div>
|
|
|
|
|
<div v-if="activeIndex === '1'">发起隐患处</div>
|
2024-04-22 23:02:06 +08:00
|
|
|
<div>整改率</div>
|
|
|
|
|
<div>及时整改率</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="listBox">
|
|
|
|
|
<el-scrollbar height="150">
|
|
|
|
|
<div v-for="(item, index) in tabList" :key="index" class="listStyle">
|
|
|
|
|
<div>{{ item.sortLine }}</div>
|
|
|
|
|
<div>{{ item.name }}</div>
|
|
|
|
|
<div>{{ item.count }}</div>
|
|
|
|
|
<div>{{ item.rate }}</div>
|
|
|
|
|
<div>{{ item.immediateRate }}</div>
|
|
|
|
|
</div>
|
|
|
|
|
</el-scrollbar>
|
|
|
|
|
<div class="notoDta" v-if="tabList.length == 0">
|
|
|
|
|
<img src="@/assets/images/noData.png" alt="" />
|
|
|
|
|
<p>暂无数据</p>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
2024-04-20 17:26:03 +08:00
|
|
|
</div>
|
|
|
|
|
</template>
|
|
|
|
|
|
|
|
|
|
<script setup lang="ts">
|
|
|
|
|
import { GlobalStore } from "@/stores";
|
|
|
|
|
import { ref, onMounted, watch } from "vue";
|
|
|
|
|
import { getStageOption } from "@/api/modules/projectOverview";
|
2024-04-22 23:02:06 +08:00
|
|
|
import type { TabsPaneContext } from 'element-plus'
|
2024-04-20 17:26:03 +08:00
|
|
|
|
2024-04-22 23:02:06 +08:00
|
|
|
const activeName = ref('first')
|
2024-04-27 13:41:13 +08:00
|
|
|
const activeIndex = ref('1' as any)
|
2024-04-27 09:47:16 +08:00
|
|
|
let dateRange = ref([] as any)
|
2024-04-20 17:26:03 +08:00
|
|
|
|
2024-04-22 23:02:06 +08:00
|
|
|
const handleClick = (tab: TabsPaneContext, event: Event) => {
|
2024-04-27 13:41:13 +08:00
|
|
|
// console.log(tab, event)
|
|
|
|
|
// console.log('tab',tab.index)
|
|
|
|
|
// console.log('activeName',activeName.value)
|
|
|
|
|
// if(activeName.value === 'first') console.log('1')
|
|
|
|
|
// if(activeName.value === 'second') console.log('2')
|
|
|
|
|
// if(activeName.value === 'third') console.log('3')
|
|
|
|
|
activeIndex.value = tab.index
|
|
|
|
|
console.log('activeIndex',activeIndex.value)
|
2024-04-22 23:02:06 +08:00
|
|
|
}
|
|
|
|
|
const tabList = [
|
|
|
|
|
{ sortLine: '1', name: 'Tom', count: '1', rate: '100%', immediateRate: '100%'},
|
|
|
|
|
{ sortLine: '2', name: 'Tom', count: '1', rate: '100%', immediateRate: '100%'},
|
|
|
|
|
{ sortLine: '3', name: 'Tom', count: '1', rate: '100%', immediateRate: '100%'},
|
|
|
|
|
{ sortLine: '4', name: 'Tom', count: '1', rate: '100%', immediateRate: '100%'},
|
|
|
|
|
{ sortLine: '5', name: 'Tom', count: '1', rate: '100%', immediateRate: '100%'},
|
|
|
|
|
{ sortLine: '5', name: 'Tom', count: '1', rate: '100%', immediateRate: '100%'},
|
|
|
|
|
{ sortLine: '5', name: 'Tom', count: '1', rate: '100%', immediateRate: '100%'},
|
|
|
|
|
{ sortLine: '5', name: 'Tom', count: '1', rate: '100%', immediateRate: '100%'},
|
|
|
|
|
{ sortLine: '5', name: 'Tom', count: '1', rate: '100%', immediateRate: '100%'},
|
|
|
|
|
{ sortLine: '5', name: 'Tom', count: '1', rate: '100%', immediateRate: '100%'},
|
|
|
|
|
{ sortLine: '5', name: 'Tom', count: '1', rate: '100%', immediateRate: '100%'},
|
|
|
|
|
{ sortLine: '5', name: 'Tom', count: '1', rate: '100%', immediateRate: '100%'},
|
|
|
|
|
{ sortLine: '5', name: 'Tom', count: '1', rate: '100%', immediateRate: '100%'},
|
|
|
|
|
{ sortLine: '5', name: 'Tom', count: '1', rate: '100%', immediateRate: '100%'},
|
|
|
|
|
{ sortLine: '5', name: 'Tom', count: '1', rate: '100%', immediateRate: '100%'},
|
|
|
|
|
{ sortLine: '5', name: 'Tom', count: '1', rate: '100%', immediateRate: '100%'},
|
|
|
|
|
{ sortLine: '5', name: 'Tom', count: '1', rate: '100%', immediateRate: '100%'},
|
|
|
|
|
{ sortLine: '5', name: 'Tom', count: '1', rate: '100%', immediateRate: '100%'},
|
|
|
|
|
{ sortLine: '5', name: 'Tom', count: '1', rate: '100%', immediateRate: '100%'},
|
|
|
|
|
]
|
2024-04-20 17:26:03 +08:00
|
|
|
onMounted( async () => {
|
2024-04-22 23:02:06 +08:00
|
|
|
|
2024-04-20 17:26:03 +08:00
|
|
|
})
|
2024-04-22 23:02:06 +08:00
|
|
|
// watch(
|
|
|
|
|
// () => props.projectData,
|
|
|
|
|
// newVal => {
|
|
|
|
|
// // console.log(newVal, "newVal");
|
|
|
|
|
// if (newVal) {
|
|
|
|
|
// // props.xData = newVal;
|
|
|
|
|
// projectData.value = newVal;
|
|
|
|
|
// projectLocal.value =
|
|
|
|
|
// projectData.value.provinceName +
|
|
|
|
|
// projectData.value.cityName +
|
|
|
|
|
// projectData.value.areaName +
|
|
|
|
|
// projectData.value.projectAddress;
|
|
|
|
|
// }
|
|
|
|
|
// }
|
|
|
|
|
// );
|
2024-04-20 17:26:03 +08:00
|
|
|
</script>
|
|
|
|
|
<style lang="scss" scoped>
|
2024-04-22 23:02:06 +08:00
|
|
|
|
2024-04-20 17:26:03 +08:00
|
|
|
.leftTop {
|
2024-04-21 14:15:04 +08:00
|
|
|
background: url("@/assets/images/commandScreen/card-left-top.png") no-repeat;
|
|
|
|
|
// background-color: #fff;
|
|
|
|
|
background-size: 100% 100%;
|
2024-04-20 17:26:03 +08:00
|
|
|
width: 100%;
|
|
|
|
|
height: 100%;
|
2024-04-21 14:15:04 +08:00
|
|
|
.header{
|
|
|
|
|
// width: 100%;
|
|
|
|
|
// height: 100%;
|
|
|
|
|
display: flex;
|
|
|
|
|
// align-items: center;
|
|
|
|
|
justify-content: space-between;
|
|
|
|
|
padding: 20px 20px;
|
2024-04-22 23:02:06 +08:00
|
|
|
border-bottom: 1px solid #0059ff;
|
2024-04-21 14:15:04 +08:00
|
|
|
.hLeft{
|
|
|
|
|
width: 50%;
|
|
|
|
|
color: white;
|
|
|
|
|
}
|
|
|
|
|
.hRight{
|
|
|
|
|
width: 50%;
|
2024-04-20 17:26:03 +08:00
|
|
|
}
|
|
|
|
|
}
|
2024-04-22 23:02:06 +08:00
|
|
|
.content{
|
|
|
|
|
padding: 0 20px;
|
|
|
|
|
::v-deep .el-tabs__item{
|
|
|
|
|
color: #fff;
|
|
|
|
|
}
|
|
|
|
|
::v-deep .el-tabs__nav-wrap::after{
|
|
|
|
|
background-color: rgba(255,0,0,0);
|
|
|
|
|
}
|
|
|
|
|
.tabList {
|
|
|
|
|
display: flex;
|
|
|
|
|
width: 100%;
|
|
|
|
|
height: 14%;
|
|
|
|
|
// background: url("@/assets/images/dustNoise/rightBottom.png") no-repeat;
|
|
|
|
|
background-color: #00224f;
|
|
|
|
|
background-size: 100% 100%;
|
|
|
|
|
left: 75.5%;
|
|
|
|
|
top: 75%;
|
|
|
|
|
color: #fff;
|
|
|
|
|
font-size: 14px;
|
|
|
|
|
line-height: 30px;
|
|
|
|
|
justify-content: space-around;
|
|
|
|
|
text-align: center;
|
|
|
|
|
|
|
|
|
|
div {
|
|
|
|
|
width: 100px;
|
|
|
|
|
white-space: nowrap;
|
|
|
|
|
overflow: hidden;
|
|
|
|
|
text-overflow: ellipsis;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
.listBox {
|
|
|
|
|
// height: 10%;
|
|
|
|
|
.listStyle {
|
|
|
|
|
display: flex;
|
|
|
|
|
justify-content: space-around;
|
|
|
|
|
color: #fff;
|
|
|
|
|
height: 12%;
|
|
|
|
|
line-height: 25px;
|
|
|
|
|
font-size: 12px;
|
|
|
|
|
text-align: center;
|
|
|
|
|
div {
|
|
|
|
|
width: 100px;
|
|
|
|
|
white-space: nowrap;
|
|
|
|
|
overflow: hidden;
|
|
|
|
|
text-overflow: ellipsis;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
.listStyle:hover {
|
|
|
|
|
background: #003c84;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
.notoDta {
|
|
|
|
|
top: 40%;
|
|
|
|
|
width: 30%;
|
|
|
|
|
left: 35%;
|
|
|
|
|
text-align: center;
|
|
|
|
|
position: absolute;
|
|
|
|
|
img {
|
|
|
|
|
width: 40%;
|
|
|
|
|
margin: 5% 30%;
|
|
|
|
|
}
|
|
|
|
|
p {
|
|
|
|
|
color: #fff;
|
|
|
|
|
font-size: 14px;
|
|
|
|
|
margin: -6% 37%;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
2024-04-20 17:26:03 +08:00
|
|
|
}
|
2024-04-27 09:47:16 +08:00
|
|
|
::v-deep .el-input__inner {
|
|
|
|
|
color: #fff;
|
|
|
|
|
}
|
|
|
|
|
::v-deep .el-select .el-input .el-select__caret {
|
|
|
|
|
color: #fff;
|
|
|
|
|
}
|
|
|
|
|
::v-deep .el-input__wrapper {
|
|
|
|
|
width: 85%;
|
|
|
|
|
height: 0%;
|
|
|
|
|
background: #0d2956;
|
|
|
|
|
}
|
|
|
|
|
::v-deep .el-range-separator {
|
|
|
|
|
color: #ccc;
|
|
|
|
|
font-size: 10px;
|
|
|
|
|
}
|
|
|
|
|
::v-deep .el-range-input {
|
|
|
|
|
color: #ccc;
|
|
|
|
|
font-size: 10px;
|
|
|
|
|
}
|
2024-04-20 17:26:03 +08:00
|
|
|
</style>
|