|
|
|
@ -69,22 +69,22 @@ |
|
|
|
style="width: 16.66%" |
|
|
|
style="width: 16.66%" |
|
|
|
/> |
|
|
|
/> |
|
|
|
<datav-statistic |
|
|
|
<datav-statistic |
|
|
|
:value="overview.investigateAndPunish" |
|
|
|
:value="overview.dealCasePro" |
|
|
|
title="查处问题(个)" |
|
|
|
title="查处问题(个)" |
|
|
|
style="width: 16.66%" |
|
|
|
style="width: 16.66%" |
|
|
|
/> |
|
|
|
/> |
|
|
|
<datav-statistic |
|
|
|
<datav-statistic |
|
|
|
:value="overview.accountablePeopleNumber" |
|
|
|
:value="overview.punishPre" |
|
|
|
title="问责人次" |
|
|
|
title="问责人次" |
|
|
|
style="width: 16.66%" |
|
|
|
style="width: 16.66%" |
|
|
|
/> |
|
|
|
/> |
|
|
|
<datav-statistic |
|
|
|
<datav-statistic |
|
|
|
:value="overview.accountableDepartNumber" |
|
|
|
:value="overview.punishOrg" |
|
|
|
title="问责单位数" |
|
|
|
title="问责单位数" |
|
|
|
style="width: 16.66%" |
|
|
|
style="width: 16.66%" |
|
|
|
/> |
|
|
|
/> |
|
|
|
<datav-statistic |
|
|
|
<datav-statistic |
|
|
|
:value="overview.confirmedRate" |
|
|
|
:value="overview.Rate" |
|
|
|
value-unit="%" |
|
|
|
value-unit="%" |
|
|
|
title="查实率" |
|
|
|
title="查实率" |
|
|
|
style="width: 16.66%" |
|
|
|
style="width: 16.66%" |
|
|
|
@ -98,7 +98,7 @@ |
|
|
|
<datav-card title="查处问题趋势"> |
|
|
|
<datav-card title="查处问题趋势"> |
|
|
|
<v-charts |
|
|
|
<v-charts |
|
|
|
style="height: 320px" |
|
|
|
style="height: 320px" |
|
|
|
:option="option1" |
|
|
|
:option="proTrend" |
|
|
|
autoresize |
|
|
|
autoresize |
|
|
|
/> |
|
|
|
/> |
|
|
|
<div class="gobal-dropdown-container"> |
|
|
|
<div class="gobal-dropdown-container"> |
|
|
|
@ -145,7 +145,7 @@ |
|
|
|
<div class="mb-40"> |
|
|
|
<div class="mb-40"> |
|
|
|
<v-charts |
|
|
|
<v-charts |
|
|
|
style="height: 340px" |
|
|
|
style="height: 340px" |
|
|
|
:option="option4" |
|
|
|
:option="jbcloption" |
|
|
|
autoresize |
|
|
|
autoresize |
|
|
|
/> |
|
|
|
/> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
@ -154,7 +154,7 @@ |
|
|
|
<div class="mb-40"> |
|
|
|
<div class="mb-40"> |
|
|
|
<v-charts |
|
|
|
<v-charts |
|
|
|
style="height: 340px" |
|
|
|
style="height: 340px" |
|
|
|
:option="option4" |
|
|
|
:option="tzcloption" |
|
|
|
autoresize |
|
|
|
autoresize |
|
|
|
/> |
|
|
|
/> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
@ -173,9 +173,7 @@ import vCharts from "vue-echarts"; |
|
|
|
import changshaMap from "@/assets/data/changsha.json"; |
|
|
|
import changshaMap from "@/assets/data/changsha.json"; |
|
|
|
import * as echarts from "echarts/core"; |
|
|
|
import * as echarts from "echarts/core"; |
|
|
|
import moment from "moment"; |
|
|
|
import moment from "moment"; |
|
|
|
import {getCaseVerifData, getCaseVerifTrend} from "@/api/datav"; |
|
|
|
import {getAllCaseVerificationCount, getCaseVerificationRank, getCaseVerificationTrend, getCaseSourceRateAndDealSituation, getCaseVerificationMap, getCaseProblemProperty, getConfinementAndPause} from "@/api/screen/CaseVerif.ts"; |
|
|
|
import {getGobalRecentlyTrendByMonth} from "@/api/data/basicScreen.ts"; |
|
|
|
|
|
|
|
import {getAllCaseVerifCount} from "@/api/screen/CaseVerif.ts"; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
const currentYear = new Date().getFullYear(); |
|
|
|
const currentYear = new Date().getFullYear(); |
|
|
|
const years = ref([currentYear.toString(), (currentYear - 1).toString(), (currentYear - 2).toString()]); // 年份列表 |
|
|
|
const years = ref([currentYear.toString(), (currentYear - 1).toString(), (currentYear - 2).toString()]); // 年份列表 |
|
|
|
@ -185,127 +183,38 @@ const time = ref([ |
|
|
|
moment().format("YYYY-MM-DD"), |
|
|
|
moment().format("YYYY-MM-DD"), |
|
|
|
]); |
|
|
|
]); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
const fxsjBarList = ref([]); |
|
|
|
|
|
|
|
const jsdwBarList = ref([]); |
|
|
|
|
|
|
|
|
|
|
|
const overview = ref({ |
|
|
|
const overview = ref({ |
|
|
|
total: 0, |
|
|
|
total: 0, |
|
|
|
confirmed: 0, // 查实案件数 |
|
|
|
confirmed: 0, // 查实案件数 |
|
|
|
investigateAndPunish: 0, // 查处问题(个) |
|
|
|
dealCasePro: 0, // 查处问题(个) |
|
|
|
accountablePeopleNumber: 0, // 问责人次 |
|
|
|
punishPre: 0, // 问责人次 |
|
|
|
accountableDepartNumber: 0, // 问责单位数、 |
|
|
|
punishOrg: 0, // 问责单位数、 |
|
|
|
confirmedRate: 0, // 查实率 |
|
|
|
Rate: 0, // 查实率 |
|
|
|
}); |
|
|
|
}); |
|
|
|
let gobalTempMapVoList = [ |
|
|
|
let gobalTempMapVoList = ref([ |
|
|
|
{ |
|
|
|
{ |
|
|
|
"name": "浏阳市局", |
|
|
|
"name": "浏阳市局", |
|
|
|
"totalPro": 93, |
|
|
|
"total": 93, |
|
|
|
"checkedPro": 11, |
|
|
|
"confirmed": 11, |
|
|
|
"dealPro": 8, |
|
|
|
"dealCasePro": 8, |
|
|
|
"dealPersonCount": 7, |
|
|
|
"punishPre": 7, |
|
|
|
"orgCount": 9, |
|
|
|
"punishOrg": 9, |
|
|
|
"rate": "12%" |
|
|
|
"rate": "12%" |
|
|
|
}, |
|
|
|
} |
|
|
|
{ |
|
|
|
]); |
|
|
|
"name": "长沙县局", |
|
|
|
|
|
|
|
"totalPro": 192, |
|
|
|
|
|
|
|
"checkedPro": 33, |
|
|
|
|
|
|
|
"dealPro": 33, |
|
|
|
|
|
|
|
"dealPersonCount": 22, |
|
|
|
|
|
|
|
"orgCount": 11, |
|
|
|
|
|
|
|
"rate": "17%" |
|
|
|
|
|
|
|
}, |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
"name": "开福分局", |
|
|
|
|
|
|
|
"totalPro": 174, |
|
|
|
|
|
|
|
"checkedPro": 63, |
|
|
|
|
|
|
|
"dealPro": 60, |
|
|
|
|
|
|
|
"dealPersonCount": 32, |
|
|
|
|
|
|
|
"orgCount": 13, |
|
|
|
|
|
|
|
"rate": "36%" |
|
|
|
|
|
|
|
}, |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
"name": "芙蓉分局", |
|
|
|
|
|
|
|
"totalPro": 175, |
|
|
|
|
|
|
|
"checkedPro": 30, |
|
|
|
|
|
|
|
"dealPro": 30, |
|
|
|
|
|
|
|
"dealPersonCount": 24, |
|
|
|
|
|
|
|
"orgCount": 17, |
|
|
|
|
|
|
|
"rate": "17%" |
|
|
|
|
|
|
|
}, |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
"name": "雨花分局", |
|
|
|
|
|
|
|
"totalPro": 214, |
|
|
|
|
|
|
|
"checkedPro": 32, |
|
|
|
|
|
|
|
"dealPro": 32, |
|
|
|
|
|
|
|
"dealPersonCount": 27, |
|
|
|
|
|
|
|
"orgCount": 12, |
|
|
|
|
|
|
|
"rate": "15%" |
|
|
|
|
|
|
|
}, |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
"name": "天心分局", |
|
|
|
|
|
|
|
"totalPro": 179, |
|
|
|
|
|
|
|
"checkedPro": 34, |
|
|
|
|
|
|
|
"dealPro": 21, |
|
|
|
|
|
|
|
"dealPersonCount": 16, |
|
|
|
|
|
|
|
"orgCount": 14, |
|
|
|
|
|
|
|
"rate": "19%" |
|
|
|
|
|
|
|
}, |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
"name": "岳麓分局", |
|
|
|
|
|
|
|
"totalPro": 234, |
|
|
|
|
|
|
|
"checkedPro": 25, |
|
|
|
|
|
|
|
"dealPro": 10, |
|
|
|
|
|
|
|
"dealPersonCount": 9, |
|
|
|
|
|
|
|
"orgCount": 10, |
|
|
|
|
|
|
|
"rate": "11%" |
|
|
|
|
|
|
|
}, |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
"name": "宁乡分局", |
|
|
|
|
|
|
|
"totalPro": 68, |
|
|
|
|
|
|
|
"checkedPro": 9, |
|
|
|
|
|
|
|
"dealPro": 9, |
|
|
|
|
|
|
|
"dealPersonCount": 11, |
|
|
|
|
|
|
|
"orgCount": 8, |
|
|
|
|
|
|
|
"rate": "13%" |
|
|
|
|
|
|
|
}, |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
"name": "望城分局", |
|
|
|
|
|
|
|
"totalPro": 78, |
|
|
|
|
|
|
|
"checkedPro": 21, |
|
|
|
|
|
|
|
"dealPro": 8, |
|
|
|
|
|
|
|
"dealPersonCount": 9, |
|
|
|
|
|
|
|
"orgCount": 5, |
|
|
|
|
|
|
|
"rate": "27%" |
|
|
|
|
|
|
|
}, |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
]; |
|
|
|
|
|
|
|
const fxsjBarList = ref([]); |
|
|
|
|
|
|
|
const jsdwBarList = ref([]); |
|
|
|
|
|
|
|
const zfbaPieList = ref([]); |
|
|
|
|
|
|
|
const fwglPieList = ref([]); |
|
|
|
|
|
|
|
const jjjgPieList = ref([]); |
|
|
|
const jjjgPieList = ref([]); |
|
|
|
const ajlyPieList = ref([]); |
|
|
|
|
|
|
|
const ajhcqxList = ref([]); |
|
|
|
|
|
|
|
const temp = ref({ |
|
|
|
|
|
|
|
tempCheckedCaseTotal: 0, |
|
|
|
|
|
|
|
tempDealPro: 0, |
|
|
|
|
|
|
|
tempDealPre: 0, |
|
|
|
|
|
|
|
tempDealOrg: 0, |
|
|
|
|
|
|
|
tempRate: 0, |
|
|
|
|
|
|
|
}) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// setTimeout(() => { |
|
|
|
|
|
|
|
// temp.value={ |
|
|
|
|
|
|
|
// tempCheckedCaseTotal: 292, |
|
|
|
|
|
|
|
// tempDealPro: 285, |
|
|
|
|
|
|
|
// tempDealPre: 223, |
|
|
|
|
|
|
|
// tempDealOrg: 93, |
|
|
|
|
|
|
|
// tempRate: 18, |
|
|
|
|
|
|
|
// } |
|
|
|
|
|
|
|
// }, 1000); |
|
|
|
|
|
|
|
// |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// region 事件||监听 |
|
|
|
// region 事件||监听 |
|
|
|
const handleCommand = (year) => { |
|
|
|
const handleCommand = (year) => { |
|
|
|
selectedYear.value = year; // 更新当前选中的年份 |
|
|
|
selectedYear.value = year; // 更新当前选中的年份 |
|
|
|
|
|
|
|
getProTrendList(selectedYear.value); |
|
|
|
}; |
|
|
|
}; |
|
|
|
watch(time, () => { |
|
|
|
watch(time, () => { |
|
|
|
getData(); |
|
|
|
getData(); |
|
|
|
@ -315,30 +224,102 @@ watch(time, () => { |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// region 所有函数 |
|
|
|
|
|
|
|
const getRankList = async(timeValue) => { |
|
|
|
|
|
|
|
const res = await getCaseVerificationRank(timeValue); |
|
|
|
|
|
|
|
fxsjBarList.value = res.fxsjRankList |
|
|
|
|
|
|
|
jsdwBarList.value = res.jsdwRankList |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
const getCaseProblemPropertyList = async(timeValue) => { |
|
|
|
function getData() { |
|
|
|
const res = await getCaseProblemProperty(timeValue); |
|
|
|
getCaseVerifData(time.value).then((data) => { |
|
|
|
zfbaPieOption.value.series[0].data = res.zfbaPieList; |
|
|
|
// overview.value = data.overview; |
|
|
|
fwglPieOption.value.series[0].data = res.fwglPieList; |
|
|
|
fxsjBarList.value = data.fxsjBarList; |
|
|
|
} |
|
|
|
jsdwBarList.value = data.jsdwBarList; |
|
|
|
const getOverview = async(timeValue)=>{ |
|
|
|
zfbaPieList.value = data.zfbaPieList; |
|
|
|
const res = await getAllCaseVerificationCount(timeValue) |
|
|
|
fwglPieList.value = data.fwglPieList; |
|
|
|
overview.value = res.overview |
|
|
|
jjjgPieList.value = data.jjjgPieList; |
|
|
|
} |
|
|
|
ajlyPieList.value = data.ajlyPieList; |
|
|
|
const getMapIcon = async(timeValue)=> { |
|
|
|
|
|
|
|
const res = await getCaseVerificationMap(timeValue); |
|
|
|
|
|
|
|
const mappedData = res.caseVerificationMapList.map(item => { |
|
|
|
|
|
|
|
let name; |
|
|
|
|
|
|
|
switch (item.name) { |
|
|
|
|
|
|
|
case '长沙县局': |
|
|
|
|
|
|
|
name = '长沙县'; |
|
|
|
|
|
|
|
break; |
|
|
|
|
|
|
|
case '芙蓉分局': |
|
|
|
|
|
|
|
name = '芙蓉区'; |
|
|
|
|
|
|
|
break; |
|
|
|
|
|
|
|
case '天心分局': |
|
|
|
|
|
|
|
name = '天心区'; |
|
|
|
|
|
|
|
break; |
|
|
|
|
|
|
|
case '岳麓分局': |
|
|
|
|
|
|
|
name = '岳麓区'; |
|
|
|
|
|
|
|
break; |
|
|
|
|
|
|
|
case '开福分局': |
|
|
|
|
|
|
|
name = '开福区'; |
|
|
|
|
|
|
|
break; |
|
|
|
|
|
|
|
case '雨花分局': |
|
|
|
|
|
|
|
name = '雨花区'; |
|
|
|
|
|
|
|
break; |
|
|
|
|
|
|
|
case '望城分局': |
|
|
|
|
|
|
|
name = '望城区'; |
|
|
|
|
|
|
|
break; |
|
|
|
|
|
|
|
case '宁乡市局': |
|
|
|
|
|
|
|
name = '宁乡市'; |
|
|
|
|
|
|
|
break; |
|
|
|
|
|
|
|
case '浏阳市局': |
|
|
|
|
|
|
|
name = '浏阳市'; |
|
|
|
|
|
|
|
break; |
|
|
|
|
|
|
|
case '高新分局': |
|
|
|
|
|
|
|
name = '高新区'; |
|
|
|
|
|
|
|
break; |
|
|
|
|
|
|
|
default: |
|
|
|
|
|
|
|
name = item.name; |
|
|
|
|
|
|
|
break; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
return { |
|
|
|
|
|
|
|
...item, |
|
|
|
|
|
|
|
originalName: item.name, // 添加原始名称 |
|
|
|
|
|
|
|
name: name, |
|
|
|
|
|
|
|
value: item.total, |
|
|
|
|
|
|
|
}; |
|
|
|
}); |
|
|
|
}); |
|
|
|
|
|
|
|
gobalTempMapVoList.value = mappedData |
|
|
|
|
|
|
|
option.value.series[0].data = mappedData; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
const getProTrendList= async(year) => { |
|
|
|
|
|
|
|
const res = await getCaseVerificationTrend(year); |
|
|
|
|
|
|
|
const temp = res.proTrendList; |
|
|
|
|
|
|
|
const categories = temp.map(item => item.name); |
|
|
|
|
|
|
|
const values = temp.map(item => item.value); |
|
|
|
|
|
|
|
proTrend.value.xAxis.data = categories; |
|
|
|
|
|
|
|
proTrend.value.series[0].data = values; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
const getCaseSourceAndDeal = async (timeValue)=>{ |
|
|
|
|
|
|
|
const res = await getCaseSourceRateAndDealSituation(timeValue); |
|
|
|
|
|
|
|
ajlyPieOption.value.series[0].data = res.caseSourceRateList |
|
|
|
|
|
|
|
wzclPieOption.value.series[0].data = res.dealSituationPieList |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
const getConfinementAndPauseList = async (timeValue)=>{ |
|
|
|
|
|
|
|
const res = await getConfinementAndPause(timeValue); |
|
|
|
|
|
|
|
jbcloption.value.series[0].data = res.jbclList; |
|
|
|
|
|
|
|
dzcloption.value.series[0].data = res.dzclList; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
// endregion |
|
|
|
|
|
|
|
|
|
|
|
getCaseVerifTrend(time.value, 12).then((data) => { |
|
|
|
|
|
|
|
ajhcqxList.value = data.ajhcqsList; |
|
|
|
|
|
|
|
// console.log(ajhcqxList.value) |
|
|
|
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
getAllCaseVerifCount(time.value).then((data) => { |
|
|
|
|
|
|
|
overview.value = data.overview; |
|
|
|
|
|
|
|
console.log(overview.value) |
|
|
|
|
|
|
|
}) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
function getData() { |
|
|
|
|
|
|
|
getRankList(time.value); |
|
|
|
|
|
|
|
getCaseProblemPropertyList(time.value) |
|
|
|
|
|
|
|
getOverview(time.value); |
|
|
|
|
|
|
|
getMapIcon(time.value); |
|
|
|
|
|
|
|
getProTrendList(selectedYear.value); |
|
|
|
|
|
|
|
getCaseSourceAndDeal(time.value); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
watch(time, () => { |
|
|
|
watch(time, () => { |
|
|
|
@ -348,46 +329,7 @@ onMounted(() => { |
|
|
|
getData(); |
|
|
|
getData(); |
|
|
|
}); |
|
|
|
}); |
|
|
|
|
|
|
|
|
|
|
|
const zfbaPieOption = computed(() => { |
|
|
|
|
|
|
|
return { |
|
|
|
|
|
|
|
tooltip: { |
|
|
|
|
|
|
|
trigger: "item", |
|
|
|
|
|
|
|
}, |
|
|
|
|
|
|
|
series: [ |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
type: "pie", |
|
|
|
|
|
|
|
radius: ["40%", "70%"], |
|
|
|
|
|
|
|
label: { |
|
|
|
|
|
|
|
color: "#fff", |
|
|
|
|
|
|
|
}, |
|
|
|
|
|
|
|
data: zfbaPieList.value, |
|
|
|
|
|
|
|
}, |
|
|
|
|
|
|
|
], |
|
|
|
|
|
|
|
}; |
|
|
|
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
const fwglPieOption = computed(() => { |
|
|
|
|
|
|
|
return { |
|
|
|
|
|
|
|
tooltip: { |
|
|
|
|
|
|
|
trigger: "item", |
|
|
|
|
|
|
|
}, |
|
|
|
|
|
|
|
series: [ |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
type: "pie", |
|
|
|
|
|
|
|
radius: ["40%", "70%"], |
|
|
|
|
|
|
|
label: { |
|
|
|
|
|
|
|
color: "#fff", |
|
|
|
|
|
|
|
}, |
|
|
|
|
|
|
|
data: [ |
|
|
|
|
|
|
|
{value: 4, name: "交警执法"}, |
|
|
|
|
|
|
|
{value: 3, name: "态度生硬"}, |
|
|
|
|
|
|
|
{value: 3, name: "户政业务"}, |
|
|
|
|
|
|
|
{value: 2, name: "监所管理"}, |
|
|
|
|
|
|
|
], |
|
|
|
|
|
|
|
}, |
|
|
|
|
|
|
|
], |
|
|
|
|
|
|
|
}; |
|
|
|
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
const jjjgPieOption = computed(() => { |
|
|
|
const jjjgPieOption = computed(() => { |
|
|
|
return { |
|
|
|
return { |
|
|
|
@ -407,61 +349,11 @@ const jjjgPieOption = computed(() => { |
|
|
|
}; |
|
|
|
}; |
|
|
|
}); |
|
|
|
}); |
|
|
|
|
|
|
|
|
|
|
|
const ajlyPieOption = computed(() => { |
|
|
|
|
|
|
|
return { |
|
|
|
|
|
|
|
tooltip: { |
|
|
|
|
|
|
|
trigger: "item", |
|
|
|
|
|
|
|
}, |
|
|
|
|
|
|
|
series: [ |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
type: "pie", |
|
|
|
|
|
|
|
radius: ["40%", "70%"], |
|
|
|
|
|
|
|
label: { |
|
|
|
|
|
|
|
color: "#fff", |
|
|
|
|
|
|
|
}, |
|
|
|
|
|
|
|
data: [ |
|
|
|
|
|
|
|
{name: "12389", value: 843}, |
|
|
|
|
|
|
|
{name: "网络投诉", value: 711}, |
|
|
|
|
|
|
|
{name: "信件投诉", value: 29}, |
|
|
|
|
|
|
|
{name: "其他投诉", value: 3}, |
|
|
|
|
|
|
|
{name: "值班来电", value: 3}, |
|
|
|
|
|
|
|
], |
|
|
|
|
|
|
|
}, |
|
|
|
|
|
|
|
], |
|
|
|
|
|
|
|
}; |
|
|
|
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
const wzclPieOption = computed(() => { |
|
|
|
|
|
|
|
return { |
|
|
|
|
|
|
|
tooltip: { |
|
|
|
|
|
|
|
trigger: "item", |
|
|
|
|
|
|
|
}, |
|
|
|
|
|
|
|
series: [ |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
type: "pie", |
|
|
|
|
|
|
|
radius: ["40%", "70%"], |
|
|
|
|
|
|
|
label: { |
|
|
|
|
|
|
|
color: "#fff", |
|
|
|
|
|
|
|
}, |
|
|
|
|
|
|
|
data: [ |
|
|
|
|
|
|
|
{name: "通报批评", value: 167}, |
|
|
|
|
|
|
|
{name: "未处置人", value: 54}, |
|
|
|
|
|
|
|
{name: "工作提醒", value: 17}, |
|
|
|
|
|
|
|
{name: "批评教育", value: 9}, |
|
|
|
|
|
|
|
{name: "提醒谈话", value: 21}, |
|
|
|
|
|
|
|
{name: "禁闭", value: 2}, |
|
|
|
|
|
|
|
{name: "责令检查", value: 2}, |
|
|
|
|
|
|
|
{name: "党纪处分", value: 1}, |
|
|
|
|
|
|
|
], |
|
|
|
|
|
|
|
}, |
|
|
|
|
|
|
|
], |
|
|
|
|
|
|
|
}; |
|
|
|
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
echarts.registerMap("changsha", changshaMap); |
|
|
|
echarts.registerMap("changsha", changshaMap); |
|
|
|
const option = { |
|
|
|
const option = ref({ |
|
|
|
geo: { |
|
|
|
geo: { |
|
|
|
// 是上面注册时的名字哦,registerMap('名字保持一致') |
|
|
|
// 是上面注册时的名字哦,registerMap('名字保持一致') |
|
|
|
map: "changsha", |
|
|
|
map: "changsha", |
|
|
|
@ -470,18 +362,18 @@ const option = { |
|
|
|
trigger: 'item', |
|
|
|
trigger: 'item', |
|
|
|
formatter: function (params) { |
|
|
|
formatter: function (params) { |
|
|
|
console.log(params) |
|
|
|
console.log(params) |
|
|
|
const dataItem = gobalTempMapVoList.find(item => item.name.includes(params.name.substring(0, 2))); |
|
|
|
const dataItem = gobalTempMapVoList.value.find(item => item.name.includes(params.name.substring(0, 2))); |
|
|
|
if (dataItem ) { |
|
|
|
if (dataItem ) { |
|
|
|
return ` |
|
|
|
return ` |
|
|
|
<div class="tooltip"> |
|
|
|
<div class="tooltip"> |
|
|
|
<div class="tooltip-title">${dataItem.name}</div> |
|
|
|
<div class="tooltip-title">${dataItem.originalName}</div> |
|
|
|
<div class="tooltip-content"> |
|
|
|
<div class="tooltip-content"> |
|
|
|
<ul class="tooltip-ul" > |
|
|
|
<ul class="tooltip-ul" > |
|
|
|
<li>案件总数(起)<span>${dataItem.totalPro}</span></li> |
|
|
|
<li>案件总数(起)<span>${dataItem.total}</span></li> |
|
|
|
<li>查实案件数 <span>${dataItem.checkedPro}</span></li> |
|
|
|
<li>查实案件数 <span>${dataItem.confirmed}</span></li> |
|
|
|
<li>查处问题(个) <span>${dataItem.dealPro}</span></li> |
|
|
|
<li>查处问题(个) <span>${dataItem.dealCasePro}</span></li> |
|
|
|
<li>问责人次 <span>${dataItem.dealPersonCount}</span></li> |
|
|
|
<li>问责人次 <span>${dataItem.punishPre}</span></li> |
|
|
|
<li>问责单位数 <span>${dataItem.orgCount}</span></li> |
|
|
|
<li>问责单位数 <span>${dataItem.punishOrg}</span></li> |
|
|
|
<li>查实率 <span>${dataItem.rate}</span></li> |
|
|
|
<li>查实率 <span>${dataItem.rate}</span></li> |
|
|
|
</ul> |
|
|
|
</ul> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
@ -491,12 +383,12 @@ const option = { |
|
|
|
<div class="tooltip-title">${dataItem.name}</div> |
|
|
|
<div class="tooltip-title">${dataItem.name}</div> |
|
|
|
<div class="tooltip-content"> |
|
|
|
<div class="tooltip-content"> |
|
|
|
<ul class="tooltip-ul""> |
|
|
|
<ul class="tooltip-ul""> |
|
|
|
<li>案件总数(起) <span>0</span></li> |
|
|
|
<li>案件总数(起) <span>-</span></li> |
|
|
|
<li>查实案件数 <span>0</span></li> |
|
|
|
<li>查实案件数 <span>-</span></li> |
|
|
|
<li>查处问题(个) <span>0</span></li> |
|
|
|
<li>查处问题(个) <span>-</span></li> |
|
|
|
<li>问责人次 <span>0</span></li> |
|
|
|
<li>问责人次 <span>-</span></li> |
|
|
|
<li>问责单位数 <span>0</span></li> |
|
|
|
<li>问责单位数 <span>-</span></li> |
|
|
|
<li>查实率 <span>0</span></li> |
|
|
|
<li>查实率 <span>-</span></li> |
|
|
|
</ul> |
|
|
|
</ul> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div>`; |
|
|
|
</div>`; |
|
|
|
@ -514,9 +406,9 @@ const option = { |
|
|
|
type: "piecewise", |
|
|
|
type: "piecewise", |
|
|
|
bottom: 10, |
|
|
|
bottom: 10, |
|
|
|
pieces: [ |
|
|
|
pieces: [ |
|
|
|
{gte: 85, lte: 100, label: "问题数低于500"}, |
|
|
|
{gte: 0, lte: 65, label: "问题数低于500"}, |
|
|
|
{gte: 65, lte: 85, label: "问题数低于1000"}, |
|
|
|
{gte: 65, lte: 85, label: "问题数介于500-1000"}, |
|
|
|
{gte: 0, lte: 65, label: "问题数低于1000"}, |
|
|
|
{gte: 85, lte: 100, label: "问题数高于1000"}, |
|
|
|
], |
|
|
|
], |
|
|
|
right: 10, // 右边距 |
|
|
|
right: 10, // 右边距 |
|
|
|
realtime: false, |
|
|
|
realtime: false, |
|
|
|
@ -526,7 +418,7 @@ const option = { |
|
|
|
}, |
|
|
|
}, |
|
|
|
calculable: true, |
|
|
|
calculable: true, |
|
|
|
inRange: { |
|
|
|
inRange: { |
|
|
|
color: ["#D34343", "#F6A149", "#4987F6"], |
|
|
|
color: ["#4987F6","#F6A149", "#D34343" ], |
|
|
|
}, |
|
|
|
}, |
|
|
|
}, |
|
|
|
}, |
|
|
|
series: [ |
|
|
|
series: [ |
|
|
|
@ -535,7 +427,6 @@ const option = { |
|
|
|
type: "map", |
|
|
|
type: "map", |
|
|
|
map: "changsha", |
|
|
|
map: "changsha", |
|
|
|
hoverAnimation: true, |
|
|
|
hoverAnimation: true, |
|
|
|
|
|
|
|
|
|
|
|
label: { |
|
|
|
label: { |
|
|
|
show: true, |
|
|
|
show: true, |
|
|
|
color: "white", |
|
|
|
color: "white", |
|
|
|
@ -543,11 +434,11 @@ const option = { |
|
|
|
itemStyle: { |
|
|
|
itemStyle: { |
|
|
|
areaColor: "#02215E", // 这里将地图区域的颜色修改为红色 |
|
|
|
areaColor: "#02215E", // 这里将地图区域的颜色修改为红色 |
|
|
|
}, |
|
|
|
}, |
|
|
|
|
|
|
|
data: gobalTempMapVoList.value, |
|
|
|
}, |
|
|
|
}, |
|
|
|
], |
|
|
|
], |
|
|
|
}; |
|
|
|
}); |
|
|
|
|
|
|
|
const proTrend = ref({ |
|
|
|
const option1 = ref({ |
|
|
|
|
|
|
|
grid: { |
|
|
|
grid: { |
|
|
|
left: '5%', // 图表距离容器左边的距离 |
|
|
|
left: '5%', // 图表距离容器左边的距离 |
|
|
|
right: '2%', // 图表距离容器右边的距离 |
|
|
|
right: '2%', // 图表距离容器右边的距离 |
|
|
|
@ -605,15 +496,27 @@ const option1 = ref({ |
|
|
|
}, |
|
|
|
}, |
|
|
|
]), |
|
|
|
]), |
|
|
|
}, |
|
|
|
}, |
|
|
|
data: [175, 101, 158, 141, 177, 162, 108, 166, 197, 104], |
|
|
|
data: [], |
|
|
|
}, |
|
|
|
}, |
|
|
|
], |
|
|
|
], |
|
|
|
}); |
|
|
|
}); |
|
|
|
|
|
|
|
|
|
|
|
const option4 = { |
|
|
|
const ajlyPieOption = ref({ |
|
|
|
|
|
|
|
series: [ |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
type: "pie", |
|
|
|
|
|
|
|
radius: ["40%", "70%"], |
|
|
|
|
|
|
|
label: { |
|
|
|
|
|
|
|
color: "#fff", |
|
|
|
|
|
|
|
}, |
|
|
|
|
|
|
|
data: [], |
|
|
|
|
|
|
|
}, |
|
|
|
|
|
|
|
], |
|
|
|
tooltip: { |
|
|
|
tooltip: { |
|
|
|
trigger: "item", |
|
|
|
trigger: "item", |
|
|
|
}, |
|
|
|
}, |
|
|
|
|
|
|
|
}); |
|
|
|
|
|
|
|
const wzclPieOption = ref({ |
|
|
|
series: [ |
|
|
|
series: [ |
|
|
|
{ |
|
|
|
{ |
|
|
|
type: "pie", |
|
|
|
type: "pie", |
|
|
|
@ -621,21 +524,94 @@ const option4 = { |
|
|
|
label: { |
|
|
|
label: { |
|
|
|
color: "#fff", |
|
|
|
color: "#fff", |
|
|
|
}, |
|
|
|
}, |
|
|
|
data: [ |
|
|
|
data: [], |
|
|
|
{value: 14, name: "工作饮酒"}, |
|
|
|
}, |
|
|
|
{value: 11, name: "违规办案"}, |
|
|
|
|
|
|
|
{value: 3, name: "涉嫌违纪"}, |
|
|
|
|
|
|
|
{value: 2, name: "违反“三个规定”"}, |
|
|
|
|
|
|
|
{value: 12, name: "违反生活纪律、工作纪律"}, |
|
|
|
|
|
|
|
{value: 8, name: "违规接受管理服务对象宴请"}, |
|
|
|
|
|
|
|
{value: 2, name: "酒后驾车、涉嫌违法"}, |
|
|
|
|
|
|
|
{value: 2, name: "执法乱作为"}, |
|
|
|
|
|
|
|
{value: 3, name: "为落实请示报告制度"}, |
|
|
|
|
|
|
|
], |
|
|
|
], |
|
|
|
|
|
|
|
tooltip: { |
|
|
|
|
|
|
|
trigger: "item", |
|
|
|
|
|
|
|
}, |
|
|
|
|
|
|
|
}); |
|
|
|
|
|
|
|
const zfbaPieOption = ref({ |
|
|
|
|
|
|
|
series: [ |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
type: "pie", |
|
|
|
|
|
|
|
radius: ["40%", "70%"], |
|
|
|
|
|
|
|
label: { |
|
|
|
|
|
|
|
color: "#fff", |
|
|
|
|
|
|
|
}, |
|
|
|
|
|
|
|
data: [], |
|
|
|
}, |
|
|
|
}, |
|
|
|
], |
|
|
|
], |
|
|
|
}; |
|
|
|
tooltip: { |
|
|
|
|
|
|
|
trigger: "item", |
|
|
|
|
|
|
|
}, |
|
|
|
|
|
|
|
}); |
|
|
|
|
|
|
|
const fwglPieOption = ref({ |
|
|
|
|
|
|
|
series: [ |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
type: "pie", |
|
|
|
|
|
|
|
radius: ["40%", "70%"], |
|
|
|
|
|
|
|
label: { |
|
|
|
|
|
|
|
color: "#fff", |
|
|
|
|
|
|
|
}, |
|
|
|
|
|
|
|
data: [], |
|
|
|
|
|
|
|
}, |
|
|
|
|
|
|
|
], |
|
|
|
|
|
|
|
tooltip: { |
|
|
|
|
|
|
|
trigger: "item", |
|
|
|
|
|
|
|
}, |
|
|
|
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
const jbcloption = ref({ |
|
|
|
|
|
|
|
tooltip: { |
|
|
|
|
|
|
|
trigger: "item", |
|
|
|
|
|
|
|
}, |
|
|
|
|
|
|
|
series: [ |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
type: "pie", |
|
|
|
|
|
|
|
radius: ["40%", "70%"], |
|
|
|
|
|
|
|
label: { |
|
|
|
|
|
|
|
color: "#fff", |
|
|
|
|
|
|
|
}, |
|
|
|
|
|
|
|
data: [ |
|
|
|
|
|
|
|
// {value: 14, name: "工作饮酒"}, |
|
|
|
|
|
|
|
// {value: 11, name: "违规办案"}, |
|
|
|
|
|
|
|
// {value: 3, name: "涉嫌违纪"}, |
|
|
|
|
|
|
|
// {value: 2, name: "违反“三个规定”"}, |
|
|
|
|
|
|
|
// {value: 12, name: "违反生活纪律、工作纪律"}, |
|
|
|
|
|
|
|
// {value: 8, name: "违规接受管理服务对象宴请"}, |
|
|
|
|
|
|
|
// {value: 2, name: "酒后驾车、涉嫌违法"}, |
|
|
|
|
|
|
|
// {value: 2, name: "执法乱作为"}, |
|
|
|
|
|
|
|
// {value: 3, name: "为落实请示报告制度"}, |
|
|
|
|
|
|
|
], |
|
|
|
|
|
|
|
}, |
|
|
|
|
|
|
|
], |
|
|
|
|
|
|
|
}); |
|
|
|
|
|
|
|
const tzcloption = ref({ |
|
|
|
|
|
|
|
tooltip: { |
|
|
|
|
|
|
|
trigger: "item", |
|
|
|
|
|
|
|
}, |
|
|
|
|
|
|
|
series: [ |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
type: "pie", |
|
|
|
|
|
|
|
radius: ["40%", "70%"], |
|
|
|
|
|
|
|
label: { |
|
|
|
|
|
|
|
color: "#fff", |
|
|
|
|
|
|
|
}, |
|
|
|
|
|
|
|
data: [ |
|
|
|
|
|
|
|
// {value: 14, name: "工作饮酒"}, |
|
|
|
|
|
|
|
// {value: 11, name: "违规办案"}, |
|
|
|
|
|
|
|
// {value: 3, name: "涉嫌违纪"}, |
|
|
|
|
|
|
|
// {value: 2, name: "违反“三个规定”"}, |
|
|
|
|
|
|
|
// {value: 12, name: "违反生活纪律、工作纪律"}, |
|
|
|
|
|
|
|
// {value: 8, name: "违规接受管理服务对象宴请"}, |
|
|
|
|
|
|
|
// {value: 2, name: "酒后驾车、涉嫌违法"}, |
|
|
|
|
|
|
|
// {value: 2, name: "执法乱作为"}, |
|
|
|
|
|
|
|
// {value: 3, name: "为落实请示报告制度"}, |
|
|
|
|
|
|
|
], |
|
|
|
|
|
|
|
}, |
|
|
|
|
|
|
|
], |
|
|
|
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
|
|
const colors = [ |
|
|
|
const colors = [ |
|
|
|
{ |
|
|
|
{ |
|
|
|
@ -651,6 +627,7 @@ const colors = [ |
|
|
|
percentage: 40, |
|
|
|
percentage: 40, |
|
|
|
}, |
|
|
|
}, |
|
|
|
]; |
|
|
|
]; |
|
|
|
|
|
|
|
|
|
|
|
</script> |
|
|
|
</script> |
|
|
|
|
|
|
|
|
|
|
|
<style lang="scss" scoped> |
|
|
|
<style lang="scss" scoped> |
|
|
|
@ -753,7 +730,6 @@ const colors = [ |
|
|
|
color: #fff; |
|
|
|
color: #fff; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
</style> |
|
|
|
</style> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|