diff --git a/src/api/data/aduit.ts b/src/api/data/aduit.ts index db0034d..c7c1e40 100644 --- a/src/api/data/aduit.ts +++ b/src/api/data/aduit.ts @@ -14,3 +14,13 @@ export function getAuditNegativeVo(times){ } +/** + * 获取一级审计督察地图数据 + * @param times + */ +export function getAuditMap(body){ + return request.post({ + url: `/datav/audit/getAuditMap`, + body + }) +} \ No newline at end of file diff --git a/src/views/datav/AuditSuper.vue b/src/views/datav/AuditSuper.vue index c961679..543b86b 100644 --- a/src/views/datav/AuditSuper.vue +++ b/src/views/datav/AuditSuper.vue @@ -133,10 +133,11 @@ import vCharts from "vue-echarts"; import changshaMap from "@/assets/data/changsha.json"; import * as echarts from "echarts/core"; import moment from "moment/moment.js"; -import { getWorkDynamics,getAuditNegativeVo } from "@/api/data/aduit.ts"; +import {getWorkDynamics, getAuditNegativeVo, getAuditMap} from "@/api/data/aduit.ts"; import { workDynamicColorMapping } from "@/enums/workDynamicColorMapping.js"; import { getAuditOverview, getAuditProblems } from '@/api/datav' import { onMounted } from "vue"; +import {mapOrgNameMapping} from "@/enums/orgMapping.js"; const messages = ref([]); const time = ref([ moment().startOf("year").format("YYYY-MM-DD"), @@ -188,7 +189,9 @@ function getData() { problemOptions.value.series[0].data = data }); getWorkDynamicsData(); - getAuditNegativeVoFun(); + getAuditNegativeVoFun(); + getAuditMapData(); + } const fxData =ref([]) @@ -203,71 +206,82 @@ const getAuditNegativeVoFun =async ()=>{ } } const auditSuperRankTab = ref('1'); -let gobalTempMapVoList = [ - { - name: "天心分局", - reviewOrg: 0, - checkPro: 0, - rushPro: 0, - changed: 0, - }, - { - name: "开福分局", - reviewOrg: 0, - checkPro: 186, - rushPro: 0, - changed: 137, - }, - { - name: "湘江新区", - reviewOrg: 0, - checkPro: 11, - rushPro: 0, - changed: 0, - }, - { - name: "望城分局", - reviewOrg: 0, - checkPro: 0, - rushPro: 0, - changed: 0, - }, - { - name: "浏阳市局", - reviewOrg: 0, - checkPro: 0, - rushPro: 0, - changed: 0, - }, - { - name: "长沙县局", - reviewOrg: 0, - checkPro: 0, - rushPro: 0, - changed: 0, - }, - { - name: "芙蓉分局", - reviewOrg: 0, - checkPro: 1, - rushPro: 0, - changed: 1, - }, - { - name: "雨花分局", - reviewOrg: 0, - checkPro: 240, - rushPro: 0, - changed: 220, - }, - { - name: "宁乡市局", - reviewOrg: 0, - checkPro: 232, - rushPro: 194, - changed: 194, - }, -]; +// let auditMapData = [ +// { +// name: "天心分局", +// reviewOrg: 0, +// checkPro: 0, +// rushPro: 0, +// changed: 0, +// }, +// { +// name: "开福分局", +// reviewOrg: 0, +// checkPro: 186, +// rushPro: 0, +// changed: 137, +// }, +// { +// name: "湘江新区", +// reviewOrg: 0, +// checkPro: 11, +// rushPro: 0, +// changed: 0, +// }, +// { +// name: "望城分局", +// reviewOrg: 0, +// checkPro: 0, +// rushPro: 0, +// changed: 0, +// }, +// { +// name: "浏阳市局", +// reviewOrg: 0, +// checkPro: 0, +// rushPro: 0, +// changed: 0, +// }, +// { +// name: "长沙县局", +// reviewOrg: 0, +// checkPro: 0, +// rushPro: 0, +// changed: 0, +// }, +// { +// name: "芙蓉分局", +// reviewOrg: 0, +// checkPro: 1, +// rushPro: 0, +// changed: 1, +// }, +// { +// name: "雨花分局", +// reviewOrg: 0, +// checkPro: 240, +// rushPro: 0, +// changed: 220, +// }, +// { +// name: "宁乡市局", +// reviewOrg: 0, +// checkPro: 232, +// rushPro: 194, +// changed: 194, +// }, +// ]; +const auditMapData = ref([ + { + originalName: "浏阳市局", + name: "浏阳市", + reportProjectNumber: 135, + checkProNumber: 135, + rushProNumber: 89, + rectifyNumber: 152, + }, +]); + echarts.registerMap("changsha", changshaMap); const option = ref({ geo: { @@ -276,8 +290,7 @@ const option = ref({ tooltip: { trigger: "item", formatter: function (params) { - console.log(params); - const dataItem = gobalTempMapVoList.find((item) => + const dataItem = auditMapData.value.find((item) => item.name.includes(params.name.substring(0, 2)) ); if (dataItem) { @@ -286,21 +299,22 @@ const option = ref({
${dataItem.name}
`; } else { return `
-
${dataItem.name}
+
${params.name}
`; @@ -529,6 +543,44 @@ function handlePerviewFile(msg) { files.value = JSON.parse(msg.files) } } + + +const getAuditMapData = async ()=>{ + const body = { + beginTime: time.value[0], + endTime: time.value[1] + } + const res = await getAuditMap(body); + const mappedData = mapOrgNameMapping(res.auditSuperviseMapIconVoList,"checkProNumber"); + // 总数 + const maxItem = mappedData.reduce( + (max, item) => (Number(item.value) > Number(max.value) ? item : max), + mappedData[0] + ); + const range60Percent = maxItem.value * 0.6; // 不用取整,小数也可以 + const range80Percent = maxItem.value * 0.8; // 不用取整,小数也可以 + console.log("============================") + console.log(mappedData) + auditMapData.value = mappedData; + option.value.series[0].data = mappedData; + option.value.visualMap.pieces = [ + { + gte: 0, + lte: range60Percent, + label: "低于最大问题数的60%", + color: "#4987F6", + }, + { + gte: range60Percent, + lte: range80Percent, + label: "介于最大问题数的60%~80%", + color: "#F6A149", + }, + { gte: range80Percent, label: "高于最大问题数的80%", color: "#D34343" }, + ]; + +} +