From ac4076878f0af151daa3777c8b177aa085b6ad7f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=8D=E7=88=B1=E5=AD=A6=E4=B9=A0=E7=9A=84=E7=9F=B3?= =?UTF-8?q?=E5=90=8C=E5=AD=A6?= <2936013465@qq.com> Date: Mon, 16 Dec 2024 18:36:59 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A7=86=E9=A2=91=E7=9D=A3=E5=AF=9F=E4=BA=8C?= =?UTF-8?q?=E7=BA=A7=E5=A4=A7=E5=B1=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/screen/mail.ts | 5 + src/api/screen/sub1.ts | 16 +- src/api/screen/subScreen/videoSupervise.ts | 21 + src/router/routes.ts | 4 + src/views/datav/MailVisits.vue | 85 +- src/views/datav/SceneInsp.vue | 3 +- src/views/datav/Sub1.vue | 164 ++-- src/views/datav/VideoInsp.vue | 12 + .../datav/subonedatav/SubOneVideoInsp.vue | 723 ++++++++++++++++++ 9 files changed, 958 insertions(+), 75 deletions(-) create mode 100644 src/api/screen/subScreen/videoSupervise.ts create mode 100644 src/views/datav/subonedatav/SubOneVideoInsp.vue diff --git a/src/api/screen/mail.ts b/src/api/screen/mail.ts index 6366b88..8905683 100644 --- a/src/api/screen/mail.ts +++ b/src/api/screen/mail.ts @@ -16,6 +16,11 @@ export function getAllMailCount(times) { }); } +export function getMailMapIcon(times) { + return request.get({ + url: `/datav/mailVisits/getMailMapIcon?beginTime=${times[0]}&endTime=${times[1]}` + }); +} export function getMailTrend(year) { return request.get({ diff --git a/src/api/screen/sub1.ts b/src/api/screen/sub1.ts index 73ea95f..c6fd5b1 100644 --- a/src/api/screen/sub1.ts +++ b/src/api/screen/sub1.ts @@ -7,6 +7,18 @@ export function getSubOneStreetMap(departPId) { } +export function getSubOneSupervisionRank(departPId, times) { + return request.get({ + url: `/datav/sub1/getSubOneSupervisionRank?departPId=${departPId}&beginTime=${times[0]}&endTime=${times[1]}` + }); +} + +export function getSubOneOverView(departPId, times) { + return request.get({ + url: `/datav/sub1/getSubOneOverView?departPId=${departPId}&beginTime=${times[0]}&endTime=${times[1]}` + }); +} + export function getSubOneTrend(departPId, year) { return request.get({ @@ -15,8 +27,8 @@ export function getSubOneTrend(departPId, year) { } -export function getCaseVerifyRank(departPId, times) { +export function getSubOneCaseVerifyRank(departPId, times) { return request.get({ - url: `/datav/sub1/getCaseVerifyRank?departPId=${departPId}&beginTime=${times[0]}&endTime=${times[1]}` + url: `/datav/sub1/getSubOneCaseVerifyRank?departPId=${departPId}&beginTime=${times[0]}&endTime=${times[1]}` }); } diff --git a/src/api/screen/subScreen/videoSupervise.ts b/src/api/screen/subScreen/videoSupervise.ts new file mode 100644 index 0000000..4c90e85 --- /dev/null +++ b/src/api/screen/subScreen/videoSupervise.ts @@ -0,0 +1,21 @@ +import request from "@/api/request"; + + +export function getSubOneAllVideoSuperviseCount(departId,times) { + return request.get({ + url: `/datav/sub1/videoSupervise/getSubOneAllVideoSuperviseCount?departId=${departId}&beginTime=${times[0]}&endTime=${times[1]}` + }); +} + + +export function getSubOneVideoSuperviseProblemRank(departId,times) { + return request.get({ + url: `/datav/sub1/videoSupervise/getSubOneVideoSuperviseProblemRank?departId=${departId}&beginTime=${times[0]}&endTime=${times[1]}` + }); +} + +export function getSubOneVideoSuperviseTrend(departId,year) { + return request.get({ + url: `/datav/sub1/videoSupervise/getSubOneVideoSuperviseTrend?departId=${departId}&year=${year}` + }); +} \ No newline at end of file diff --git a/src/router/routes.ts b/src/router/routes.ts index c75c2ab..90bacd0 100644 --- a/src/router/routes.ts +++ b/src/router/routes.ts @@ -70,6 +70,10 @@ export const routes = [ path: '/datav/sub2', component: () => import('@/views/datav/Sub2.vue'), }, + { + path: '/datav/subOneVideoInsp', + component: () => import('@/views/datav/subonedatav/SubOneVideoInsp.vue'), + }, ]; diff --git a/src/views/datav/MailVisits.vue b/src/views/datav/MailVisits.vue index 4ee1078..fa110d7 100644 --- a/src/views/datav/MailVisits.vue +++ b/src/views/datav/MailVisits.vue @@ -345,7 +345,13 @@ 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 {getAllMailCount, getEntanglementAndMassMail, getFirstAndRepeatMail, getMailTrend} from "@/api/screen/mail.ts"; +import { + getAllMailCount, + getEntanglementAndMassMail, + getFirstAndRepeatMail, + getMailMapIcon, + getMailTrend +} from "@/api/screen/mail.ts"; //region 所有变量 @@ -452,11 +458,72 @@ const getEntangleMassRank = async (timeValue = time.value) => { bwzdEntanglementMailList.value = res.bwzdEntanglementList; bwzdMassMailList.value = res.bwzdMassList; } -const getData = () => { - getFirstAndRepeatMailRank(); - getOverview(); - getTrend(); - getEntangleMassRank(); + +const mailMapIconList = ref([]); +const getMailMapIconList = async (timeValue = time.value) => { + const res = await getMailMapIcon(timeValue); + const mappedData = res.mailMapIconList.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, + }; + }); + mailMapIconList.value = mappedData; + console.log(mailMapIconList) + const total = mappedData.reduce((sum, item) => sum + Number(item.value), 0); + const avg = total / mappedData.length; // 计算平均值 + const range30Percent = avg*0.3 // 不用取整,小数也可以 + option.value.series[0].data = mappedData; + option.value.visualMap.pieces = [ + {gte: 0, lte: avg - range30Percent, label: "低于平均问题30%", color: "#4987F6"}, + {gte: avg - range30Percent, lte: avg + range30Percent+0.1, label: `平均问题上下浮动30%内`, color: "#F6A149"}, + {gte: avg + range30Percent, label: "高于平均问题30%", color: "#D34343"}, + ]; +} +const getData = () => { + getFirstAndRepeatMailRank(); + getOverview(); + getMailMapIconList() + getTrend(); + getEntangleMassRank(); } // endregion @@ -520,6 +587,7 @@ const gobalTempMapVoList = [ "numTotal": 44, } ]; + // const gobalTempMapVoList=[] const option = ref({ geo: { @@ -530,7 +598,7 @@ const option = ref({ trigger: 'item', formatter: function (params) { console.log(params) - const dataItem = gobalTempMapVoList.find(item => item.name.includes(params.name.substring(0, 2))); + const dataItem = mailMapIconList.value.find(item => item.name.includes(params.name.substring(0, 2))); if (dataItem) { return `
@@ -540,7 +608,7 @@ const option = ref({
  • 信访总件数 ${dataItem.total}
  • 国家信访 ${dataItem.countryTotal}
  • 公安部信访 ${dataItem.policeTotal}
  • -
  • 局长信箱 ${dataItem.policeTotal}
  • +
  • 局长信箱 ${dataItem.commissionerTotal}
  • 12337信访 ${dataItem.numTotal}
  • @@ -560,7 +628,6 @@ const option = ref({ `; } }, - }, visualMap: { diff --git a/src/views/datav/SceneInsp.vue b/src/views/datav/SceneInsp.vue index 36b55da..d6d959d 100644 --- a/src/views/datav/SceneInsp.vue +++ b/src/views/datav/SceneInsp.vue @@ -1125,8 +1125,7 @@ const getData = async () => { jsdwRankOverview.value = res.jsdwRankOverview; fxsjChangedRankList.value = res.fxsjChangedRankList; jsdwChangedRankList.value = res.jsdwChangedRankList; - // rankOverview.value = res.rankOverview; - // data1.value = res.changedRankList; + // console.log(fxsjChangedRankList.value); }); getSupervisionTrend(new Date().getFullYear()).then((res) => { diff --git a/src/views/datav/Sub1.vue b/src/views/datav/Sub1.vue index 59eb507..5b152d4 100644 --- a/src/views/datav/Sub1.vue +++ b/src/views/datav/Sub1.vue @@ -16,7 +16,7 @@
    - 22 + {{ supervisionPrecinctOverView.one }}
    问题数 @@ -26,7 +26,7 @@
    - 22 + {{ supervisionPrecinctOverView.two }}
    整改中 @@ -36,7 +36,7 @@
    - 22 + {{ supervisionPrecinctOverView.three }}
    已整改 @@ -46,7 +46,7 @@
    - 22% + {{ supervisionPrecinctOverView.four }}
    整改率 @@ -54,13 +54,15 @@
    - + @@ -69,7 +71,7 @@
    - 22 + {{ supervisionTeamOverView.one }}
    问题数 @@ -79,7 +81,7 @@
    - 22 + {{ supervisionTeamOverView.two }}
    整改中 @@ -89,7 +91,7 @@
    - 22 + {{ supervisionTeamOverView.three }}
    已整改 @@ -99,7 +101,7 @@
    - 22% + {{ supervisionTeamOverView.four }}
    整改率 @@ -107,7 +109,7 @@
    - + - + - +
    @@ -352,7 +354,7 @@
    - + - + - + - - -
    -
    - {{ caseVerifyTeamOverView.one }} -
    -
    - 案件数 -
    -
    -
    - -
    -
    - {{ caseVerifyTeamOverView.two }} -
    -
    - 查实数 -
    -
    -
    - -
    -
    - {{ caseVerifyTeamOverView.three }} -
    -
    - 查实率 -
    -
    -
    -
    - + + +
    +
    + {{ caseVerifyTeamOverView.one }} +
    +
    + 案件数 +
    +
    +
    + +
    +
    + {{ caseVerifyTeamOverView.two }} +
    +
    + 查实数 +
    +
    +
    + +
    +
    + {{ caseVerifyTeamOverView.three }} +
    +
    + 查实率 +
    +
    +
    +
    + { const res = await getSubOneStreetMap(departId); currentMapData.value = res; @@ -918,20 +942,36 @@ const getTrendData = async (currentDepartId, currentYear) => { mailTrend.value.series[0].data = mailValues; } -const getCaseVerifyRankList = async (currentDepartId, times) => { - const res = await getCaseVerifyRank(currentDepartId, times); - console.log(res) +const getSubOneCaseVerifyRankList = async (currentDepartId, times) => { + const res = await getSubOneCaseVerifyRank(currentDepartId, times); + // console.log(res) caseVerifyPrecinctRank.value = res.caseVerifyPrecinctList; caseVerifyTeamRank.value = res.caseVerifyTeamList; caseVerifyPrecinctOverView.value = res.caseVerifyPrecinctOverView; - caseVerifyTeamOverView.value= res.caseVerifyTeamOverView; + caseVerifyTeamOverView.value = res.caseVerifyTeamOverView; } +const getSubOneSupervisionRankList = async (currentDepartId, times) => { + const res = await getSubOneSupervisionRank(currentDepartId, times); + // console.log(res) + supervisionPrecinctRank.value = res.supervisionPrecinctList; + supervisionTeamRank.value = res.supervisionTeamList; + supervisionPrecinctOverView.value = res.supervisionPrecinctOverView; + supervisionTeamOverView.value = res.supervisionTeamOverView; + // console.log(supervisionPrecinctOverView.value) +} +const getSubOneOverViewData = async (currentDepartId, times) => { + const res = await getSubOneOverView(currentDepartId, times); + overview.value = res.subOneOverViewVo; + // console.log(overview.value) +} onMounted(() => { getMapJSON(currentDepartId); + getSubOneSupervisionRankList(currentDepartId, time.value); + getSubOneOverViewData(currentDepartId, time.value); getTrendData(currentDepartId, currentYear); - getCaseVerifyRankList(currentDepartId, time.value); + getSubOneCaseVerifyRankList(currentDepartId, time.value); }) function go() { diff --git a/src/views/datav/VideoInsp.vue b/src/views/datav/VideoInsp.vue index 939b8c6..4f5b4b0 100644 --- a/src/views/datav/VideoInsp.vue +++ b/src/views/datav/VideoInsp.vue @@ -103,6 +103,7 @@ style="height: 420px" :option="option" autoresize + @click="handleClick" /> { + const departId = params.data.departId; + const url = router.resolve({ + path: "/datav/subOneVideoInsp", + query: {departId: departId}, + }).href; + window.open(url, "_blank"); +} + const colors = [ { diff --git a/src/views/datav/subonedatav/SubOneVideoInsp.vue b/src/views/datav/subonedatav/SubOneVideoInsp.vue new file mode 100644 index 0000000..40d7451 --- /dev/null +++ b/src/views/datav/subonedatav/SubOneVideoInsp.vue @@ -0,0 +1,723 @@ + + + + + + \ No newline at end of file