|
|
|
@ -184,38 +184,34 @@ |
|
|
|
|
|
|
|
|
|
|
|
<el-col :span="12"> |
|
|
|
<el-col :span="12"> |
|
|
|
<datav-date-picker v-model="time" /> |
|
|
|
<datav-date-picker v-model="time" /> |
|
|
|
<div class="flex gap-42"> |
|
|
|
<div class="flex gap-42 overview-stat-row"> |
|
|
|
<datav-statistic |
|
|
|
<el-tooltip |
|
|
|
:value="overview.problemNumber" |
|
|
|
v-for="item in overviewCards" |
|
|
|
title="通报问题数" |
|
|
|
:key="item.title" |
|
|
|
style="width: 16.66%" |
|
|
|
placement="top" |
|
|
|
/> |
|
|
|
:show-after="120" |
|
|
|
<datav-statistic |
|
|
|
:offset="18" |
|
|
|
:value="overview.reportNumber" |
|
|
|
popper-class="scene-overview-tooltip" |
|
|
|
title="通报期数" |
|
|
|
> |
|
|
|
style="width: 16.66%" |
|
|
|
<template #content> |
|
|
|
@click="handleShow" |
|
|
|
<div class="overview-tip-card"> |
|
|
|
/> |
|
|
|
<div class="overview-tip-title">{{ item.title }}</div> |
|
|
|
<datav-statistic |
|
|
|
<div class="overview-tip-desc">{{ item.desc }}</div> |
|
|
|
:value="overview.processingNumber" |
|
|
|
<div class="overview-tip-formula">{{ item.formula }}</div> |
|
|
|
title="办理中" |
|
|
|
</div> |
|
|
|
style="width: 16.66%" |
|
|
|
</template> |
|
|
|
/> |
|
|
|
<div |
|
|
|
<datav-statistic |
|
|
|
class="overview-tip-trigger" |
|
|
|
:value="overview.completedNumber" |
|
|
|
style="width: 16.66%" |
|
|
|
title="已办结" |
|
|
|
:class="{ 'is-clickable': item.clickable }" |
|
|
|
style="width: 16.66%" |
|
|
|
@click="item.onClick && item.onClick()" |
|
|
|
/> |
|
|
|
> |
|
|
|
<datav-statistic |
|
|
|
<datav-statistic |
|
|
|
:value="overview.departNumber" |
|
|
|
:value="item.value" |
|
|
|
title="问责单位数" |
|
|
|
:title="item.title" |
|
|
|
style="width: 16.66%" |
|
|
|
/> |
|
|
|
/> |
|
|
|
</div> |
|
|
|
<datav-statistic |
|
|
|
</el-tooltip> |
|
|
|
:value="overview.personNumber" |
|
|
|
|
|
|
|
title="问责人次" |
|
|
|
|
|
|
|
style="width: 16.66%" |
|
|
|
|
|
|
|
/> |
|
|
|
|
|
|
|
</div> |
|
|
|
</div> |
|
|
|
<v-charts |
|
|
|
<v-charts |
|
|
|
style="height: 450px" |
|
|
|
style="height: 450px" |
|
|
|
@ -660,7 +656,7 @@ import { workDynamicColorMapping } from "@/enums/workDynamicColorMapping.js"; |
|
|
|
import { mapOrgNameMapping } from "@/enums/orgMapping.js"; |
|
|
|
import { mapOrgNameMapping } from "@/enums/orgMapping.js"; |
|
|
|
|
|
|
|
|
|
|
|
import useCatchStore from "@/stores/modules/catch"; |
|
|
|
import useCatchStore from "@/stores/modules/catch"; |
|
|
|
import { onMounted } from "vue"; |
|
|
|
import { computed, onMounted } from "vue"; |
|
|
|
import {getListData,getNegativePageByQuery} from "@/api/superviseReport/superviseReport"; |
|
|
|
import {getListData,getNegativePageByQuery} from "@/api/superviseReport/superviseReport"; |
|
|
|
import {timeFormat,formatTimeText, getDictLable, getInvolveProblem} from "@/utils/util"; |
|
|
|
import {timeFormat,formatTimeText, getDictLable, getInvolveProblem} from "@/utils/util"; |
|
|
|
import {ProcessingStatus} from "@/enums/flowEnums"; |
|
|
|
import {ProcessingStatus} from "@/enums/flowEnums"; |
|
|
|
@ -697,6 +693,46 @@ const overview = ref({ |
|
|
|
personNumber: 0, |
|
|
|
personNumber: 0, |
|
|
|
completedRate: 0, |
|
|
|
completedRate: 0, |
|
|
|
}); // 中央数据总览 |
|
|
|
}); // 中央数据总览 |
|
|
|
|
|
|
|
const overviewCards = computed(() => [ |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
title: "通报问题数", |
|
|
|
|
|
|
|
value: overview.value.problemNumber, |
|
|
|
|
|
|
|
desc: "统计时间范围内纳入现场专项的问题总数(现场督察、专项督察、灵敏感知)。", |
|
|
|
|
|
|
|
formula: "统计方式:时间范围内所有查处问题数量汇总", |
|
|
|
|
|
|
|
}, |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
title: "通报期数", |
|
|
|
|
|
|
|
value: overview.value.reportNumber, |
|
|
|
|
|
|
|
desc: "统计时间范围内形成的现场专项通报期数。", |
|
|
|
|
|
|
|
formula: "统计方式:时间范围内通报报告数量汇总", |
|
|
|
|
|
|
|
clickable: true, |
|
|
|
|
|
|
|
onClick: handleShow, |
|
|
|
|
|
|
|
}, |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
title: "办理中", |
|
|
|
|
|
|
|
value: overview.value.processingNumber, |
|
|
|
|
|
|
|
desc: "统计当前仍处于办理中的问题数量。", |
|
|
|
|
|
|
|
formula: "统计方式:时间范围内办理状态为办理中的问题数量", |
|
|
|
|
|
|
|
}, |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
title: "已办结", |
|
|
|
|
|
|
|
value: overview.value.completedNumber, |
|
|
|
|
|
|
|
desc: "统计当前已经完成办理的问题数量。", |
|
|
|
|
|
|
|
formula: "统计方式:时间范围内办理状态为已办结的问题数量", |
|
|
|
|
|
|
|
}, |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
title: "问责单位数", |
|
|
|
|
|
|
|
value: overview.value.departNumber, |
|
|
|
|
|
|
|
desc: "统计已形成有效问责结果的单位数量。", |
|
|
|
|
|
|
|
formula: "统计方式:对已查实问题中的被问责单位去重后汇总", |
|
|
|
|
|
|
|
}, |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
title: "问责人次", |
|
|
|
|
|
|
|
value: overview.value.personNumber, |
|
|
|
|
|
|
|
desc: "统计个人问责和领导问责累计形成的人次。", |
|
|
|
|
|
|
|
formula: "统计方式:对已查实问题中的个人和领导问责汇总后形成人次", |
|
|
|
|
|
|
|
}, |
|
|
|
|
|
|
|
]); |
|
|
|
const leftOverview = ref({}); |
|
|
|
const leftOverview = ref({}); |
|
|
|
const fxsjRankOverview = ref({}); // 日常督察总览分县市局 |
|
|
|
const fxsjRankOverview = ref({}); // 日常督察总览分县市局 |
|
|
|
const jsdwRankOverview = ref({}); // 日常督察总览局属单位 |
|
|
|
const jsdwRankOverview = ref({}); // 日常督察总览局属单位 |
|
|
|
@ -1407,6 +1443,39 @@ const getNegativePageFun = async ()=>{ |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.overview-stat-row { |
|
|
|
|
|
|
|
margin-bottom: 8px; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.overview-tip-trigger { |
|
|
|
|
|
|
|
cursor: help; |
|
|
|
|
|
|
|
transition: transform 0.22s ease, filter 0.22s ease; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.overview-tip-trigger:hover { |
|
|
|
|
|
|
|
transform: translateY(-3px); |
|
|
|
|
|
|
|
filter: drop-shadow(0 8px 18px rgba(28, 217, 255, 0.18)); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.overview-tip-trigger.is-clickable { |
|
|
|
|
|
|
|
cursor: pointer; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
:global(.scene-overview-tooltip) { |
|
|
|
|
|
|
|
border: none !important; |
|
|
|
|
|
|
|
background: transparent !important; |
|
|
|
|
|
|
|
box-shadow: none !important; |
|
|
|
|
|
|
|
padding: 0 !important; |
|
|
|
|
|
|
|
color: inherit !important; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
:global(.scene-overview-tooltip .el-popper__arrow), |
|
|
|
|
|
|
|
:global(.scene-overview-tooltip .el-popper__arrow::before) { |
|
|
|
|
|
|
|
display: none !important; |
|
|
|
|
|
|
|
background: transparent !important; |
|
|
|
|
|
|
|
border: none !important; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
:deep() { |
|
|
|
:deep() { |
|
|
|
// 弹框整体 |
|
|
|
// 弹框整体 |
|
|
|
.tooltip { |
|
|
|
.tooltip { |
|
|
|
@ -1466,6 +1535,70 @@ const getNegativePageFun = async ()=>{ |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.overview-tip-card { |
|
|
|
|
|
|
|
position: relative; |
|
|
|
|
|
|
|
width: 260px; |
|
|
|
|
|
|
|
padding: 14px 16px; |
|
|
|
|
|
|
|
border: 1px solid rgba(77, 145, 255, 0.72); |
|
|
|
|
|
|
|
border-radius: 14px; |
|
|
|
|
|
|
|
background: |
|
|
|
|
|
|
|
radial-gradient(circle at top right, rgba(41, 126, 255, 0.25), transparent 38%), |
|
|
|
|
|
|
|
linear-gradient(180deg, rgba(3, 13, 74, 0.96) 0%, rgba(2, 26, 112, 0.96) 100%); |
|
|
|
|
|
|
|
box-shadow: |
|
|
|
|
|
|
|
0 16px 40px rgba(0, 10, 48, 0.45), |
|
|
|
|
|
|
|
inset 0 1px 0 rgba(132, 201, 255, 0.24); |
|
|
|
|
|
|
|
backdrop-filter: blur(8px); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.overview-tip-card::before { |
|
|
|
|
|
|
|
content: ""; |
|
|
|
|
|
|
|
position: absolute; |
|
|
|
|
|
|
|
left: 50%; |
|
|
|
|
|
|
|
top: -12px; |
|
|
|
|
|
|
|
transform: translateX(-50%); |
|
|
|
|
|
|
|
width: 0; |
|
|
|
|
|
|
|
height: 0; |
|
|
|
|
|
|
|
border-left: 11px solid transparent; |
|
|
|
|
|
|
|
border-right: 11px solid transparent; |
|
|
|
|
|
|
|
border-bottom: 12px solid rgba(77, 145, 255, 0.72); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.overview-tip-card::after { |
|
|
|
|
|
|
|
content: ""; |
|
|
|
|
|
|
|
position: absolute; |
|
|
|
|
|
|
|
left: 50%; |
|
|
|
|
|
|
|
top: -10px; |
|
|
|
|
|
|
|
transform: translateX(-50%); |
|
|
|
|
|
|
|
width: 0; |
|
|
|
|
|
|
|
height: 0; |
|
|
|
|
|
|
|
border-left: 10px solid transparent; |
|
|
|
|
|
|
|
border-right: 10px solid transparent; |
|
|
|
|
|
|
|
border-bottom: 11px solid rgba(2, 26, 112, 0.98); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.overview-tip-title { |
|
|
|
|
|
|
|
font-size: 15px; |
|
|
|
|
|
|
|
font-weight: 700; |
|
|
|
|
|
|
|
color: #f3fbff; |
|
|
|
|
|
|
|
margin-bottom: 8px; |
|
|
|
|
|
|
|
letter-spacing: 0.5px; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.overview-tip-desc { |
|
|
|
|
|
|
|
font-size: 13px; |
|
|
|
|
|
|
|
line-height: 1.6; |
|
|
|
|
|
|
|
color: #9fc2ff; |
|
|
|
|
|
|
|
margin-bottom: 10px; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.overview-tip-formula { |
|
|
|
|
|
|
|
padding-top: 10px; |
|
|
|
|
|
|
|
border-top: 1px solid rgba(111, 164, 255, 0.24); |
|
|
|
|
|
|
|
font-size: 12px; |
|
|
|
|
|
|
|
line-height: 1.5; |
|
|
|
|
|
|
|
color: #e7f6ff; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
.test { |
|
|
|
.test { |
|
|
|
width: 95px; |
|
|
|
width: 95px; |
|
|
|
height: 25px; |
|
|
|
height: 25px; |
|
|
|
|