From 55e7c3fb1fb2037c11f0d616cc1cb19443b03473 Mon Sep 17 00:00:00 2001 From: dai <851733175@qq.com> Date: Fri, 10 Feb 2023 17:23:58 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9A=82=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/assets/scss/dataBoard/renfang/index.scss | 1 + src/views/components/blackSearch.vue | 2 +- src/views/components/deathSearch copy.vue | 2 +- src/views/components/deathSearch.vue | 2 +- src/views/components/foldText.vue | 2 +- src/views/components/resiSearch copy.vue | 2 +- src/views/dataBoard/cpts/bread.vue | 207 ++- src/views/dataBoard/cpts/map/index.vue | 1617 +++++++++-------- src/views/dataBoard/cpts/map/popup.vue | 404 ++++ src/views/dataBoard/renfang/cpts/fwgl.vue | 843 +++++---- src/views/dataBoard/renfang/cpts/jmgl.vue | 770 ++++---- src/views/dataBoard/renfang/cpts/rkfx.vue | 603 +++--- .../dataBoard/renfang/cpts/rkfxPieOption.js | 82 +- src/views/dataBoard/renfang/cpts/szsq.vue | 284 +-- src/views/dataBoard/renfang/index.vue | 790 ++++---- .../modules/customer/feedback/DetailForm.vue | 2 +- .../autoTest/autoTestList copy.vue | 2 +- .../productConfig/subscribe/TempDetail.vue | 2 +- .../productConfig/subscribe/TempEdit.vue | 2 +- 19 files changed, 3371 insertions(+), 2248 deletions(-) create mode 100644 src/views/dataBoard/cpts/map/popup.vue diff --git a/src/assets/scss/dataBoard/renfang/index.scss b/src/assets/scss/dataBoard/renfang/index.scss index aee1b1183..ab4abc8ab 100644 --- a/src/assets/scss/dataBoard/renfang/index.scss +++ b/src/assets/scss/dataBoard/renfang/index.scss @@ -32,6 +32,7 @@ top: 560px; left: 0; width: 100%; + background-color: transparent; .btn { position: relative; width: 213px; diff --git a/src/views/components/blackSearch.vue b/src/views/components/blackSearch.vue index 0a71a31ed..4f3deaf0f 100644 --- a/src/views/components/blackSearch.vue +++ b/src/views/components/blackSearch.vue @@ -568,7 +568,7 @@ export default { } - - diff --git a/src/views/dataBoard/cpts/map/index.vue b/src/views/dataBoard/cpts/map/index.vue index e74e119ee..8697a4046 100644 --- a/src/views/dataBoard/cpts/map/index.vue +++ b/src/views/dataBoard/cpts/map/index.vue @@ -1,35 +1,44 @@ diff --git a/src/views/dataBoard/cpts/map/popup.vue b/src/views/dataBoard/cpts/map/popup.vue new file mode 100644 index 000000000..632aec969 --- /dev/null +++ b/src/views/dataBoard/cpts/map/popup.vue @@ -0,0 +1,404 @@ + + + + + diff --git a/src/views/dataBoard/renfang/cpts/fwgl.vue b/src/views/dataBoard/renfang/cpts/fwgl.vue index 7ce6c16d9..bb7b61586 100644 --- a/src/views/dataBoard/renfang/cpts/fwgl.vue +++ b/src/views/dataBoard/renfang/cpts/fwgl.vue @@ -1,404 +1,503 @@ diff --git a/src/views/dataBoard/renfang/cpts/jmgl.vue b/src/views/dataBoard/renfang/cpts/jmgl.vue index 530ef723e..34d898b65 100644 --- a/src/views/dataBoard/renfang/cpts/jmgl.vue +++ b/src/views/dataBoard/renfang/cpts/jmgl.vue @@ -1,387 +1,447 @@ diff --git a/src/views/dataBoard/renfang/cpts/rkfx.vue b/src/views/dataBoard/renfang/cpts/rkfx.vue index cd67cb530..179aa2453 100644 --- a/src/views/dataBoard/renfang/cpts/rkfx.vue +++ b/src/views/dataBoard/renfang/cpts/rkfx.vue @@ -1,263 +1,366 @@ diff --git a/src/views/dataBoard/renfang/cpts/rkfxPieOption.js b/src/views/dataBoard/renfang/cpts/rkfxPieOption.js index 02d08cd24..c266dc44e 100644 --- a/src/views/dataBoard/renfang/cpts/rkfxPieOption.js +++ b/src/views/dataBoard/renfang/cpts/rkfxPieOption.js @@ -1,32 +1,54 @@ -import * as echarts from 'echarts' +import * as echarts from "echarts"; export function pieOption() { - const center = ["50%", "170px"]; - return { - color: ['#1A95FF', '#FF6138'], - series: [ - { - name: 'Nightingale Chart', - type: 'pie', - radius: [40, 130], - center: ['50%', '50%'], - roseType: 'area', - itemStyle: { - borderRadius: 1 - }, - label:{ - normal:{ - position:'inner', - show:true, - formatter:'{d}%', - fontSize:24, - color: "#FFFFFF", - } - }, - data: [ - - - ] - } - ] - }; + const center = ["50%", "170px"]; + return { + color: [ + "#1A95FF", + "#FF6138", + "#2adcea", + "#2cc4ad", + "#7377f5", + "#32de66", + "#8155d4", + "#c7ea48", + "#ef47c2", + "d43349", + ], + tooltip: { + trigger: "item", + }, + series: [ + { + name: "", + type: "pie", + radius: [40, 130], + center: ["50%", "50%"], + roseType: "area", + itemStyle: { + borderRadius: 1, + }, + avoidLabelOverlap: false, + labelLine: { + show: false, + }, + label: { + normal: { + position: "inner", + show: true, + formatter: "{d}%", + fontSize: 24, + color: "#FFFFFF", + }, + }, + emphasis: { + label: { + show: true, + fontSize: 36, + fontWeight: "bold", + }, + }, + data: [], + }, + ], + }; } diff --git a/src/views/dataBoard/renfang/cpts/szsq.vue b/src/views/dataBoard/renfang/cpts/szsq.vue index e71084ae8..b2a767e4a 100644 --- a/src/views/dataBoard/renfang/cpts/szsq.vue +++ b/src/views/dataBoard/renfang/cpts/szsq.vue @@ -1,115 +1,195 @@ diff --git a/src/views/dataBoard/renfang/index.vue b/src/views/dataBoard/renfang/index.vue index 195962cbd..4f1ca5149 100644 --- a/src/views/dataBoard/renfang/index.vue +++ b/src/views/dataBoard/renfang/index.vue @@ -1,332 +1,339 @@ @@ -338,94 +345,172 @@ import jmgl from "@/views/dataBoard/renfang/cpts/jmgl"; import rkfx from "@/views/dataBoard/renfang/cpts/rkfx"; import rkyj from "@/views/dataBoard/renfang/cpts/rkyj"; import szsq from "@/views/dataBoard/renfang/cpts/szsq"; +import cptLoading from "@/views/dataBoard/cpts/loading"; +import cptBread from "@/views/dataBoard/cpts/bread"; import { requestPostBi } from "@/js/dai/request-bipass"; import { requestPost } from "@/js/dai/request"; import getQueryPara from "dai-js/modules/getQueryPara"; export default { - components: { gridMap, fwgl, jmgl, rkfx, rkyj, szsq }, + components: { gridMap, fwgl, jmgl, rkfx, rkyj, szsq, cptLoading, cptBread }, data() { return { + loading: false, + orgData: {}, //当前组织对象 orgId: "", orgLevel: "", - subAgencyArray: [], - warningData: [], + breadList: [ + { + orgId: "", + orgLevel: "", + meta: { title: "人防总览" }, + }, + ], + + resiCategoryData: [], searchModule: { displayedCard: false, keyword: "", - resultTab: "all", // all resi + resultTab: "0", // 0所有 1,居民;2,小区;3,楼栋;4,房屋 result: [ - { - id: 1, - title: "四季景园", - }, - { - id: 11, - title: "四季景园-四号楼", - }, - { - id: 1111, - title: "四季景园-四号楼-1单元", - }, - { - id: 111111, - title: "四季景园-四号楼-1单元-101", - }, - { - id: 12342, - title: "四季景园-2单元", - }, - { - id: 133, - title: "四季景园-2单元-2号楼-201", - }, - { - id: 122, - title: "四季景园2", - }, - { - id: 1312, - title: "四季景园4", - }, + // { + // id: 1, + // title: "四季景园", + // }, ], }, perInfo: { - unused_count: 10, - lease_count: 10, - house_count: 100, - org_id: "10001", - self_dwelling_count: 10, + unemployed_ratio: "--", + crowd_ratio: "--", + volunteer_ratio: "--", + month_update_ratio: "--", + aged_ratio: "--", + teenagers_ratio: "--", }, }; }, - async mounted() { - const queryOrgId = getQueryPara("orgId"); - const queryOrgLevel = getQueryPara("orgLevel"); - console.log("orgId", queryOrgId); - if (queryOrgId) { - this.orgId = queryOrgId; - this.orgLevel = queryOrgLevel || "agency"; - } - //加载组织数据 - await this.loadOrgData(); - this.getWarningList(); - this.getPerInfo(); + mounted() { + this.init(); + }, + + watch: { + $route() { + this.init(); + }, }, + methods: { - clickAgencyItem() {}, + async init() { + const queryOrgId = getQueryPara("orgId"); + const queryOrgLevel = getQueryPara("orgLevel"); + console.log("orgId", queryOrgId); + if (queryOrgId) { + this.orgId = queryOrgId; + this.orgLevel = queryOrgLevel || "agency"; + } else { + this.orgId = this.$store.state.user.agencyId; + this.orgLevel = "agency"; + } + + //加载组织数据 + this.loading = false; + await this.loadOrgData(); + this.getResiCategoryData(); + this.getPerInfo(); + + this.loading = true; + }, - handleSearch() { + clickBreadItem(item, index) { + console.log(item); + const { breadList } = this; + if (index + 1 == breadList.length) return; + breadList = breadList.slice(0, index); + this.breadList = breadList; + }, + + clickAgencyItem(item) { + console.log(item); + this.$router.push({ + path: "/dataBoard/renfang/index", + query: { orgId: item.id, orgLevel: item.level }, + }); + // this.init(); + }, + + // 点击搜索结果条目,在地图上显示点和详情弹窗 + handleClickSearchItem(item) { + console.log("handleClickSearchItem", item); + if (!item.longitude) { + return this.$message.error("请先设置坐标"); + } + this.$refs.map.setDotMarker(item, [ + parseFloat(item.longitude), + parseFloat(item.latitude), + ]); + }, + + // 根据类别搜索 + async handleSearch() { + this.searchModule.result = []; console.log(this.searchModule); + const { searchModule } = this; + + const url = [ + "search_all", + "search_resident", + "search_village", + "search_building", + "search_house", + ][searchModule.resultTab]; + + const { data, code, msg } = await requestPostBi( + url, + { + queryParam: { + org_id: this.orgData.id, + name: this.searchModule.keyword, + }, + }, + { + mockId: 60048078, + } + ); + + if (code === 0) { + this.searchModule.result = data.map((item) => { + let type = item.type || searchModule.resultTab; + let title = ""; + if (type == "1") { + title = item.user_name; + } else if (type == "2") { + title = item.village_name; + } else if (type == "3") { + title = item.village_name + "-" + item.building_name; + } else if (type == "4") { + title = + item.building + "-" + item.unit + "-" + item.door; + } + return { + title, + type, + ...item, + }; + }); + } else { + this.$message.error(msg); + } }, + //地图上居民分类百分比数据 ps:感觉有点重复显示 async getPerInfo() { - console.log('=========================getPerInfo') + console.log("=========================getPerInfo"); const url = "house_view"; const { data, code, msg } = await requestPostBi( @@ -436,7 +521,7 @@ export default { }, }, { - mockId: 60810589, + mockId: 61167746, } ); @@ -447,23 +532,32 @@ export default { } }, - //加载组织数据 - async getWarningList() { - const url = "/epmetuser/statsresiwarn/list"; - let params = { - id: this.orgData.id, - level: "agency", - }; + //居民分类分析数据 + async getResiCategoryData() { + console.log("=========================getResiCategoryData"); + const url = "resident_class_statics"; - const { data, code, msg } = await requestPost(url, params); + const { data, code, msg } = await requestPostBi( + url, + { + queryParam: { + org_id: this.orgData.id, + }, + }, + { + mockId: 60031937, + } + ); if (code === 0) { - this.warningData = data.map((item) => { + this.resiCategoryData = data.map((item) => { return { - code: item.columnName, + code: item.label, name: item.label, count: item.count, - const: "const", + ratio: item.ratio, + growth: item.growth, + growthAbs: Math.abs(item.growth), }; }); } else { @@ -471,6 +565,31 @@ export default { } }, + //获取地图上显示的组织数据 + async getMapData() { + console.log("=========================getMapData"); + const url = "org_map"; + + const { data, code, msg } = await requestPostBi( + url, + { + queryParam: { + org_id: this.orgData.id, + }, + }, + { + mockId: 60810589, + } + ); + + if (code === 0) { + let info = data[0]; + this.orgData = info; + } else { + this.$message.error(msg); + } + }, + //加载组织数据 async loadOrgData() { const url = "/gov/org/agency/maporg"; @@ -485,11 +604,6 @@ export default { this.orgData = data; this.orgId = this.orgData.id; this.orgLevel = this.orgData.level; - if (data.children && data.children.length > 0) { - this.subAgencyArray = data.children; - } else { - this.subAgencyArray = []; - } } else { this.$message.error(msg); } diff --git a/src/views/modules/customer/feedback/DetailForm.vue b/src/views/modules/customer/feedback/DetailForm.vue index 8c76efdc2..3ac48322d 100644 --- a/src/views/modules/customer/feedback/DetailForm.vue +++ b/src/views/modules/customer/feedback/DetailForm.vue @@ -520,7 +520,7 @@ export default { } -