diff --git a/src/api/screen/jwpy.ts b/src/api/screen/jwpy.ts index f318d8b..e3c0f9d 100644 --- a/src/api/screen/jwpy.ts +++ b/src/api/screen/jwpy.ts @@ -29,9 +29,9 @@ export function GetZHMYLPM(PeriodId, PeriodSonID, OrgId, TaskID, TaskClass) { let formData = new FormData(); formData.append("PeriodId", PeriodId); formData.append("PeriodSonID", PeriodSonID); - formData.append("OrgId", OrgId); - formData.append("TaskID", TaskID); - formData.append("TaskClass", TaskClass); + OrgId && formData.append("OrgId", OrgId); + TaskID && formData.append("TaskID", TaskID); + TaskClass && formData.append("TaskClass", TaskClass); return outrequest.post({ url: `/out-police-service/api/DSJ/GetZHMYLPM`, body: formData diff --git a/src/views/datav/CaseVerif.vue b/src/views/datav/CaseVerif.vue index 8e79315..5480ea5 100644 --- a/src/views/datav/CaseVerif.vue +++ b/src/views/datav/CaseVerif.vue @@ -193,6 +193,7 @@ import { getCaseVerificationCount } from "@/api/screen/caseVerif.ts"; import {circularChart} from "@/views/datav/simulateData/AnimationTestData.js"; +import {mapOrgNameMapping} from "@/enums/orgMapping.js"; const currentYear = new Date().getFullYear(); const years = ref([currentYear.toString(), (currentYear - 1).toString(), (currentYear - 2).toString()]); // 年份列表 @@ -544,50 +545,7 @@ const getCaseVerificationCountData = async (timeValue) => { } const getCaseVerificationMapData = 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, - }; - }); + const mappedData = mapOrgNameMapping(res.caseVerificationMapList, "total"); 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 // 不用取整,小数也可以 diff --git a/src/views/datav/Jwpy.vue b/src/views/datav/Jwpy.vue index 87284fb..6c5f932 100644 --- a/src/views/datav/Jwpy.vue +++ b/src/views/datav/Jwpy.vue @@ -423,15 +423,15 @@ const handleChartClick = async (params) => { } await getData(); // 覆盖 综合滿意度排名 右下角 - discovery(); + let tempId = setTimeout(discovery, 300); }; // endregion // 覆盖满意度排名右下角 -const discovery = () => { +const discovery = async () => { // 综合满意度排名 - GetZHMYLPM(selectYear.value, selectMonth.value, selectOrg.value, task.value, 2).then((res) => { + await GetZHMYLPM(selectYear.value, selectMonth.value, selectOrg.value, task.value, 2).then((res) => { tableData1.value = res[0].lstCity let temp = res[0].lstSheng; // 返回数据数组是连着的 这里需要分组 diff --git a/src/views/datav/MailVisits.vue b/src/views/datav/MailVisits.vue index 3c921c8..f06dfe3 100644 --- a/src/views/datav/MailVisits.vue +++ b/src/views/datav/MailVisits.vue @@ -363,6 +363,7 @@ import { getMailMapIcon, getMailTrend } from "@/api/screen/mail.ts"; +import {mapOrgNameMapping} from "@/enums/orgMapping.js"; //region 所有变量 @@ -453,6 +454,7 @@ const leaderViewColors = [ const fxsjFirstAndRepeatTab = ref("1"); const firstAndRepeat = ref(null) const mailMap = ref(null); +const mailMapIconList = ref([]); const mailTrendTabs = ref("1"); const mailTrendCard = ref(null) const fxsjEntanglementTab = ref("1"); @@ -860,7 +862,7 @@ const option3 = { // region 所有函数 -const getFirstAndRepeatMailRank = async (timeValue = time.value) => { +const getFirstAndRepeatMailData = async (timeValue = time.value) => { const res = await getFirstAndRepeatMail(timeValue) fxjsFirstAndRepeatOverview.value = res.fxjsFirstAndRepeatOverview; bwzdFirstAndRepeatOverview.value = res.bwzdFirstAndRepeatOverview @@ -873,11 +875,28 @@ const getFirstAndRepeatMailRank = async (timeValue = time.value) => { bwzdLeaderViewMailList.value = res.bwzdLeaderViewRankList; } -const getOverview = async (timeValue = time.value) => { +const getAllMailCountData = async (timeValue = time.value) => { const res = await getAllMailCount(timeValue) overview.value = res.overview; } -const getTrend = async (year = selectedYear.value) => { + + +const getMailMapIconData = async (timeValue = time.value) => { + const res = await getMailMapIcon(timeValue); + const mappedData = mapOrgNameMapping(res.mailMapIconList, "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 getMailTrendData = async (year = selectedYear.value) => { const res = await getMailTrend(year); const policeList = res.policeList; const commissionerList = res.commissionerList; @@ -901,7 +920,7 @@ const getTrend = async (year = selectedYear.value) => { countryTrend.value.xAxis.data = countrycategories; countryTrend.value.series[0].data = countryvalues; } -const getEntangleMassRank = async (timeValue = time.value) => { +const getEntanglementAndMassMailData = async (timeValue = time.value) => { const res = await getEntanglementAndMassMail(timeValue) fxsjMailEntanglementMassOverview.value = res.fxsjMailEntanglementMassOverview; bwzdMailEntanglementMassOverview.value = res.bwzdMailEntanglementMassOverview; @@ -914,71 +933,12 @@ const getEntangleMassRank = async (timeValue = time.value) => { bwzdMassMailList.value = res.bwzdMassList; } -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(); + getFirstAndRepeatMailData(); + getAllMailCountData(); + getMailMapIconData() + getMailTrendData(); + getEntanglementAndMassMailData(); } const currentLeftOverview = computed(() => { @@ -1066,7 +1026,7 @@ onMounted(() => { }); const handleCommand = (year) => { selectedYear.value = year; - getTrend() + getMailTrendData() }; const handleClick = (params) => { const departId = params.data.departId; diff --git a/src/views/datav/SceneInsp.vue b/src/views/datav/SceneInsp.vue index debf84e..305e776 100644 --- a/src/views/datav/SceneInsp.vue +++ b/src/views/datav/SceneInsp.vue @@ -805,6 +805,7 @@ import { import router from "@/router/index.ts"; import {circularChart, workDynamics} from "@/views/datav/simulateData/AnimationTestData.js"; import {workDynamicColorMapping} from "@/enums/workDynamicColorMapping.js"; +import {mapOrgNameMapping} from "@/enums/orgMapping.js"; // region 所有变量 const time = ref([ @@ -1148,50 +1149,7 @@ const getSupervisionNotifyCountData = async () => { } const getSupervisionNotifyMapData = async () => { const res = await getSupervisionNotifyMap(time.value); - const mappedData = res.superviseTempMapVoList.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.totalPro, - }; - }); + const mappedData = mapOrgNameMapping(res.superviseTempMapVoList, "totalPro"); const total = mappedData.reduce((sum, item) => sum + Number(item.value), 0); const avg = total / mappedData.length; // 计算平均值 const range30Percent = avg * 0.3 // 不用取整,小数也可以 diff --git a/src/views/datav/subonedatav/SubOneCaseVerif.vue b/src/views/datav/subonedatav/SubOneCaseVerif.vue index aed26d3..37ccd76 100644 --- a/src/views/datav/subonedatav/SubOneCaseVerif.vue +++ b/src/views/datav/subonedatav/SubOneCaseVerif.vue @@ -612,7 +612,7 @@ const subOneCaseVerifMapAnimation = () => { if (!mapTemp) return; // 取后端传过来的有地图数据的长度,有些街道没有数据,没有意义 const mapLength = gobalTempMapVoList.value.length; - const randomNum = Math.floor(mapLength); + const randomNum = Math.floor(Math.random() * mapLength); console.log(randomNum); mapTemp.dispatchAction({ type: "downplay", //downplay 取消高亮 @@ -683,7 +683,7 @@ const handleClick = (params) => { const departId = params.data.departId; showDialog.value = true; tempDepartId.value = departId - clearInterval(subOneGlobalMapIntervalId); + clearInterval(subOneCaseVerifMapIntervalId); } const setupEventListeners = () => { caseVerifRankAnimationStop(); @@ -728,9 +728,9 @@ const subOneCaseVerifMapAnimationStop = () => { }); // 鼠标移出 mapTemp.on('mouseout', () => { - if ( showDialog ){ + if (showDialog.value) { clearInterval(subOneCaseVerifMapIntervalId); // 确保没有多个定时器同时运行 - }else { + } else { clearInterval(subOneCaseVerifMapIntervalId); // 确保没有多个定时器同时运行 subOneCaseVerifMapIntervalId = setInterval(subOneCaseVerifMapAnimation, 2000); } @@ -774,8 +774,6 @@ const subOneCaseVerifJbclSituationAnimationStop = () => { } // endregion - -