diff --git a/src/views/datav/CaseVerif.vue b/src/views/datav/CaseVerif.vue index 8cd8006..3377f37 100644 --- a/src/views/datav/CaseVerif.vue +++ b/src/views/datav/CaseVerif.vue @@ -196,17 +196,7 @@ const overview = ref({ punishOrg: 0, // 问责单位数、 Rate: 0, // 查实率 }); -let gobalTempMapVoList = ref([ - { - "name": "浏阳市局", - "total": 93, - "confirmed": 11, - "dealCasePro": 8, - "punishPre": 7, - "punishOrg": 9, - "rate": "12%" - } -]); +let gobalTempMapVoList = ref([]); const jjjgPieList = ref([]); @@ -287,8 +277,15 @@ const getMapIcon = async(timeValue)=> { }; }); gobalTempMapVoList.value = mappedData + 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 getProTrendList= async(year) => { const res = await getCaseVerificationTrend(year); @@ -381,7 +378,7 @@ const option = ref({ `; } else { return `
-
${dataItem.name}
+
${params.name}
@@ -1043,4 +1036,13 @@ const colors = [ } - \ No newline at end of file + + + diff --git a/src/views/datav/SceneInsp.vue b/src/views/datav/SceneInsp.vue index 5e2462a..e8ac085 100644 --- a/src/views/datav/SceneInsp.vue +++ b/src/views/datav/SceneInsp.vue @@ -887,34 +887,35 @@ const fxsjCheckBeerRankList = ref([]) // 工作日测酒排行分县市局 const jsdwCheckBeerRankList = ref([]) // 工作日测酒排行局属单位 const messages = ref([ - { - type: '', - title: '工作简报', - content: '为强化队伍纪律作风监督,给严打整治“雷霆行动”及即将到来的国庆节安保维稳工作提供强有力的纪律监督保障,9月25日20时至23时,市局警务督察支队安排6个现场督察组,对干部、民警共计119人开展集中酒精吹气测试。', - date: '2024-09-27 10:32' -}, { - type: 'warning', - title: '工作简报', - content: '为持续抓好“六项规定”贯彻执行,扎实做好中秋佳节前队伍纪律作风监督,9月3日20时至22时,市局警务督察支队联合机关党委以及来支队跟班学习的督察专干,组成6个督察组,对干部、民警、辅警共计112人开展集中酒精吹气测试。', - date: '2024-09-06 16:23' -}, + type: '', + title: '工作简报', + content: '为强化队伍纪律作风监督,给严打整治“雷霆行动”及即将到来的国庆节安保维稳工作提供强有力的纪律监督保障,9月25日20时至23时,市局警务督察支队安排6个现场督察组,对干部、民警共计119人开展集中酒精吹气测试。', + date: '2024-09-27 10:32' + }, { - type: 'warning', - title: '工作简报', - content: '为强化队伍纪律作风监督,给“夏季治安打击整治行动”及党的二十届三中全会安保维稳工作提供强有力地纪律监督保障,7月11日晚,市局警务督察支队联合机关党委,派出6个现场督察组,对干部、民警、辅警共计111人开展集中酒精吹气测试。', - date: '2024-07-15 14:39' -}, + type: 'warning', + title: '工作简报', + content: '为持续抓好“六项规定”贯彻执行,扎实做好中秋佳节前队伍纪律作风监督,9月3日20时至22时,市局警务督察支队联合机关党委以及来支队跟班学习的督察专干,组成6个督察组,对干部、民警、辅警共计112人开展集中酒精吹气测试。', + date: '2024-09-06 16:23' + }, { - type: 'warning', - title: '工作简报', - content: '为督促各参战警力切实履职,拧紧责任链条,保障周杰伦演唱会安全顺利进行,根据市局统一部署,2024年5月30日至6月2日,由警务督察支队牵头,统筹参战单位督察力量,对全市公安机关周杰伦演唱会安全保卫工作开展全方位督导检查。', - date: '2024-06-06 09:04' -} + type: 'warning', + title: '工作简报', + content: '为强化队伍纪律作风监督,给“夏季治安打击整治行动”及党的二十届三中全会安保维稳工作提供强有力地纪律监督保障,7月11日晚,市局警务督察支队联合机关党委,派出6个现场督察组,对干部、民警、辅警共计111人开展集中酒精吹气测试。', + date: '2024-07-15 14:39' + }, + { + type: 'warning', + title: '工作简报', + content: '为督促各参战警力切实履职,拧紧责任链条,保障周杰伦演唱会安全顺利进行,根据市局统一部署,2024年5月30日至6月2日,由警务督察支队牵头,统筹参战单位督察力量,对全市公安机关周杰伦演唱会安全保卫工作开展全方位督导检查。', + date: '2024-06-06 09:04' + } ]); const currentYear = new Date().getFullYear(); const years = ref([currentYear.toString(), (currentYear - 1).toString(), (currentYear - 2).toString()]); // 年份列表 const selectedYear = ref('2024'); // 当前选中的年份 +const avg = 1000 // endregion @@ -964,35 +965,38 @@ const option = ref({
`; } else { return `
-
未知
+
${params.name}
`; } }, - }, visualMap: { - min: 1, - max: 200, - text: ['最高问题数', '最低问题数'], - left: 'right', + type: "piecewise", + bottom: 10, + pieces: [ + {gte: 0, lte: 200, label: "低于平均问题30%", color: "#4987F6"}, + {gte: 200, lte: 400, label: "平均问题上下浮动30%内", color: "#F6A149"}, + {gte: 400, label: "高于平均问题30%", color: "#D34343"},], + right: 10, + realtime: false, + orient: "horizontal", textStyle: { - color: '#fff', + color: "#fff", }, - realtime: false, calculable: true, - inRange: { - color: ['#4987F6', '#F6A149', '#D34343'] - } + // inRange: { + // color: ['#4987F6', '#F6A149', '#D34343'] + // } }, series: [ { @@ -1084,8 +1088,6 @@ const proTrend = ref({ // endregion - - const handleCommand = (year) => { selectedYear.value = year; // 更新当前选中的年份 getSupervisionTrend(year).then(res => { @@ -1099,7 +1101,6 @@ const handleCommand = (year) => { }; - // region 初始化数据 const time = ref([ moment().startOf("year").format("YYYY-MM-DD"), @@ -1107,8 +1108,8 @@ const time = ref([ ]); // 地图临时测试数据 -const getData = async ()=> { - await getAllSupervisionNotifyCount(time.value).then((res) => { +const getData = async () => { + getAllSupervisionNotifyCount(time.value).then((res) => { Object.assign(overview.value, { correctionRate: Number(res.overview.correctionRate), supervisionNotifyPreTotal: Number(res.overview.supervisionNotifyPreTotal), @@ -1120,7 +1121,7 @@ const getData = async ()=> { }); }); - await getChangedRank(time.value, 3).then((res) => { + getChangedRank(time.value, 3).then((res) => { fxsjRankOverview.value = res.fxsjRankOverview; jsdwRankOverview.value = res.jsdwRankOverview; fxsjChangedRankList.value = res.fxsjChangedRankList; @@ -1129,7 +1130,7 @@ const getData = async ()=> { // data1.value = res.changedRankList; }); - await getSupervisionTrend(new Date().getFullYear()).then((res) => { + getSupervisionTrend(new Date().getFullYear()).then((res) => { const supervisionTrend = res.supervisionTrend; const categories = supervisionTrend.map(item => item.name); const values = supervisionTrend.map(item => item.value); @@ -1138,7 +1139,7 @@ const getData = async ()=> { proTrend.value.series[0].data = values; }); - await getMap(time.value).then((res) => { + getMap(time.value).then((res) => { // 对返回的数据映射处理 const mappedData = res.superviseTempMapVoList.map(item => { let name; @@ -1184,19 +1185,23 @@ const getData = async ()=> { value: item.totalPro, }; }); - const maxItem = mappedData.reduce((prev, current) => (prev.value > current.value) ? prev : current); - const minItem = mappedData.reduce((prev, current) => (prev.value < current.value) ? prev : current); + const total = mappedData.reduce((sum, item) => sum + Number(item.value), 0); + const avg = total / mappedData.length; // 计算平均值 + const range30Percent = avg*0.3 // 不用取整,小数也可以 + option.value.visualMap.pieces = [ + {gte: 0, lte: avg - range30Percent, label: "低于平均问题30%", color: "#4987F6"}, + {gte: avg - range30Percent, lte: avg + range30Percent, label: "平均问题上下浮动30%内", color: "#F6A149"}, + {gte: avg + range30Percent, label: "高于平均问题30%", color: "#D34343"}, + ]; superviseTempMapVoList.value = mappedData; option.value.series[0].data = mappedData; - option.value.visualMap.max = maxItem.value; - option.value.visualMap.min = minItem.value; }) - await getProblemTypeRate(time.value).then((res) => { + getProblemTypeRate(time.value).then((res) => { wtlxList.value = res.wtlxList }); - await getYellowBetDrug(time.value).then((res) => { + getYellowBetDrug(time.value).then((res) => { fxsjYellowBetOverview.value = res.fxsjYellowBetOverview jsdwYellowBetOverview.value = res.jsdwYellowBetOverview fxsjYellowBetRankList.value = res.fxsjYellowBetRankList @@ -1206,28 +1211,28 @@ const getData = async ()=> { // hddList.value = res.hddList }); - await getGunController(time.value).then((res) => { + getGunController(time.value).then((res) => { fxsjGunControllerOverview.value = res.fxsjGunControllerOverview jsdwGunControllerOverview.value = res.jsdwGunControllerOverview fxsjGunControllerRankList.value = res.fxsjGunControllerRankList jsdwGunControllerRankList.value = res.jsdwGunControllerRankList }) - await getCompanyProblem(time.value).then((res) => { + getCompanyProblem(time.value).then((res) => { fxsjCompanyProblemOverview.value = res.fxsjCompanyProblemOverview jsdwCompanyProblemOverview.value = res.jsdwCompanyProblemOverview fxsjCompanyProblemRankList.value = res.fxsjCompanyProblemRankList jsdwCompanyProblemRankList.value = res.jsdwCompanyProblemRankList }) - await getHandleCase(time.value).then((res) => { + getHandleCase(time.value).then((res) => { fxsjHandleCaseOverview.value = res.fxsjHandleCaseOverview jsdwHandleCaseOverview.value = res.jsdwHandleCaseOverview fxsjHandleCaseRankList.value = res.fxsjHandleCaseRankList jsdwHandleCaseRankList.value = res.jsdwHandleCaseRankList }) - await getCheckBeer(time.value).then((res) => { + getCheckBeer(time.value).then((res) => { fxsjCheckBeerOverview.value = res.fxsjCheckBeerOverview jsdwCheckBeerOverview.value = res.jsdwCheckBeerOverview fxsjCheckBeerRankList.value = res.fxsjCheckBeerRankList diff --git a/src/views/datav/VideoInsp.vue b/src/views/datav/VideoInsp.vue index 7735f52..74434b3 100644 --- a/src/views/datav/VideoInsp.vue +++ b/src/views/datav/VideoInsp.vue @@ -232,7 +232,7 @@ const getOverview = async (timeValue) => { } const getMap = async (timeValue) => { const res = await getVideoSuperviseMap(timeValue); - console.log(res.videoSuperviseMapIconVoList) + // console.log(res.videoSuperviseMapIconVoList) const mappedData = res.videoSuperviseMapIconVoList.map(item => { let name; switch (item.name) { @@ -277,13 +277,16 @@ const getMap = async (timeValue) => { value: item.discoverProblem, }; }); - const maxItem = mappedData.reduce((prev, current) => (prev.value > current.value) ? prev : current); - const minItem = mappedData.reduce((prev, current) => (prev.value < current.value) ? prev : current); + const total = mappedData.reduce((sum, item) => sum + Number(item.value), 0); + const avg = total / mappedData.length; // 计算平均值 + const range30Percent = avg*0.3 // 不用取整,小数也可以 mapIconList.value = mappedData option.value.series[0].data = mapIconList - option.value.visualMap.max = maxItem.value; - option.value.visualMap.min = minItem.value; - // console.log(mapIconList.value) + 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"}, + ]; } @@ -419,31 +422,35 @@ const option = ref({
${params.name}
`; } }, - }, visualMap: { - min: 1, - max: 200, - text: ['最高问题数', '最低问题数'], - left: 'right', + type: "piecewise", + bottom: 10, + pieces: [ + {gte: 0, lte: 200, label: "低于平均问题30%", color: "#4987F6"}, + {gte: 200, lte: 400, label: "平均问题上下浮动30%内", color: "#F6A149"}, + {gte: 400, label: "高于平均问题30%", color: "#D34343"},], + right: 10, + realtime: false, + orient: "horizontal", textStyle: { - color: '#fff', + color: "#fff", }, - realtime: false, + calculable: true, inRange: { - color: ['#4987F6', '#F6A149', '#D34343'] - } + color: ["#4987F6","#F6A149", "#D34343" ], + }, }, series: [ {