{"remainingRequest":"D:\\jenkins\\workspace\\reform-fvue\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!D:\\jenkins\\workspace\\reform-fvue\\src\\views\\BigScreen\\components\\subComponents\\mapTarget7.vue?vue&type=script&lang=js&","dependencies":[{"path":"D:\\jenkins\\workspace\\reform-fvue\\src\\views\\BigScreen\\components\\subComponents\\mapTarget7.vue","mtime":1718334479967},{"path":"D:\\jenkins\\workspace\\reform-fvue\\node_modules\\babel-loader\\lib\\index.js","mtime":315532800000},{"path":"D:\\jenkins\\workspace\\reform-fvue\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\jenkins\\workspace\\reform-fvue\\node_modules\\vue-loader\\lib\\index.js","mtime":499162500000}],"contextDependencies":[],"result":["//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\r\nimport * as echarts from 'echarts'\r\nimport cq from '@/assets/js/cq.js'\r\nimport main9 from '@/assets/js/main9.js'\r\nimport fakeData from '@/views/BigScreen/js/fakeData_district.js'\r\nimport apiList from '@/api/bigScreen/districView.js'\r\nimport airTable from './airTable.vue'\r\nconst emphasisColor = {\r\n A: '#2ce5c4',\r\n B: '#4CA9FF',\r\n C: '#F9F953',\r\n D: '#EFB569',\r\n E: '#E42020',\r\n N: '#aaf15e',\r\n}\r\nexport default {\r\n components: {\r\n airTable,\r\n },\r\n props: {\r\n options: {\r\n type: Object,\r\n default: () => {\r\n return {}\r\n },\r\n },\r\n CQId: {\r\n type: String,\r\n default: 'cq-contianer_7',\r\n },\r\n main9Id: {\r\n type: String,\r\n default: 'main9-contianer_7',\r\n },\r\n isClick: {\r\n type: Boolean,\r\n default: true,\r\n },\r\n },\r\n data() {\r\n return {\r\n loadingColor: 'rgba(6, 46, 106, 0.4)',\r\n loading: false,\r\n myChartCQ: null,\r\n optionCQ: null,\r\n myChartMain: null,\r\n optionMain: null,\r\n levelTitle: ['区县', '央媒报道(次)'],\r\n levelDataA: [],\r\n levelDataB: [],\r\n levelDataC: [],\r\n levelDataD: [],\r\n levelDataE: [],\r\n tableData: [],\r\n tableColumn: [\r\n {label: '区县', prop: 'unitName'},\r\n {label: '央媒报道\\n(次)', prop: 'mediaNum'},\r\n ],\r\n ljxqGrade: '',\r\n gxqGrade: '',\r\n }\r\n },\r\n beforeDestroy() {\r\n this.$bus.$off('changeDate')\r\n },\r\n mounted() {\r\n this.initData()\r\n this.$bus.$on('changeDate', () => {\r\n this.initData()\r\n })\r\n this.$nextTick(() => {\r\n this.initMapMain()\r\n this.initMapCQ()\r\n })\r\n this.$root.$on('resize', () => {\r\n this.resize(500)\r\n })\r\n },\r\n methods: {\r\n handleDetail(comp, code, type, title) {\r\n this.$router.push({\r\n path: '/DetailComponent',\r\n name: 'DetailComponent',\r\n query: {\r\n comp,\r\n code,\r\n type,\r\n title: '品牌创建·' + title,\r\n },\r\n })\r\n },\r\n initData() {\r\n this.loading = true\r\n let searchDate = sessionStorage.getItem('searchDate')\r\n searchDate = JSON.parse(searchDate)\r\n let data = this.qs.stringify({\r\n year: searchDate.year,\r\n quarter: searchDate.quarter,\r\n })\r\n this.levelDataA = []\r\n this.levelDataB = []\r\n this.levelDataC = []\r\n this.levelDataD = []\r\n this.levelDataE = []\r\n apiList.statementDetail(data, (res) => {\r\n if (res) {\r\n this.$bus.$emit('exportExcel', res)\r\n this.formatSortData(res)\r\n }\r\n })\r\n },\r\n formatSortData(data) {\r\n data.sort((a, b) => {\r\n return a.mediaNum - b.mediaNum\r\n })\r\n\r\n data.forEach((item) => {\r\n if (item.mediaGrade == 'A') {\r\n this.levelDataA.unshift(item)\r\n }\r\n if (item.mediaGrade == 'B') {\r\n this.levelDataB.unshift(item)\r\n }\r\n if (item.mediaGrade == 'C') {\r\n this.levelDataC.unshift(item)\r\n }\r\n if (item.mediaGrade == 'D') {\r\n this.levelDataD.unshift(item)\r\n }\r\n if (item.mediaGrade == 'E') {\r\n this.levelDataE.unshift(item)\r\n }\r\n })\r\n this.handleMapArea(data, 'composite')\r\n let ljxqGrade = data.filter(\r\n (item) => item.unitCode === '500191000000'\r\n )\r\n let gxqGrade = data.filter(\r\n (item) => item.unitCode === '500193000000'\r\n )\r\n this.ljxqGrade = ljxqGrade[0].mediaGrade\r\n this.gxqGrade = gxqGrade[0].mediaGrade\r\n // this.tableData = [this.levelDataA, this.levelDataB, this.levelDataC, this.levelDataD, this.levelDataE]\r\n\r\n // 根据区县排序\r\n let Aarr = this.levelDataA.sort((a, b) => a.orderNo - b.orderNo)\r\n let Barr = this.levelDataB.sort((a, b) => a.orderNo - b.orderNo)\r\n let Carr = this.levelDataC.sort((a, b) => a.orderNo - b.orderNo)\r\n let Darr = this.levelDataD.sort((a, b) => a.orderNo - b.orderNo)\r\n let Earr = this.levelDataE.sort((a, b) => a.orderNo - b.orderNo)\r\n // 根据项目个数排序\r\n let Aarr1 = Aarr.sort((a, b) => b.mediaNum - a.mediaNum)\r\n let Barr1 = Barr.sort((a, b) => b.mediaNum - a.mediaNum)\r\n let Carr1 = Carr.sort((a, b) => b.mediaNum - a.mediaNum)\r\n let Darr1 = Darr.sort((a, b) => b.mediaNum - a.mediaNum)\r\n let Earr1 = Earr.sort((a, b) => b.mediaNum - a.mediaNum)\r\n this.tableData = [Aarr1, Barr1, Carr1, Darr1, Earr1]\r\n console.log(this.tableData)\r\n },\r\n handleMapArea(markData, key) {\r\n this.optionCQ.series[0].data = this.convertData(\r\n cq.features,\r\n markData,\r\n key\r\n )\r\n this.optionMain.series[0].data = this.convertData(\r\n main9.features,\r\n markData,\r\n key,\r\n true\r\n )\r\n\r\n this.myChartCQ.setOption(this.optionCQ)\r\n this.myChartMain.setOption(this.optionMain)\r\n this.loading = false\r\n },\r\n convertData(data, mapData, key, showTitle) {\r\n let res = []\r\n for (let i = 0; i < data.length; i++) {\r\n let obj = data[i].properties\r\n let color = '#081c47'\r\n let find = mapData.find((item) => item.unitCode == obj.code)\r\n\r\n let regionSnKey = 'allSn'\r\n if (key == 'composite') {\r\n regionSnKey = 'mediaGrade'\r\n }\r\n if (key == 'workable') {\r\n regionSnKey = 'workableAllSn'\r\n }\r\n if (key == 'brand') {\r\n regionSnKey = 'brandAllSn'\r\n }\r\n if (key == 'satisfaction') {\r\n regionSnKey = 'satisfiedAllSn'\r\n }\r\n if (find && key !== 'risk') {\r\n // 绿色:#20A367 蓝色:#3877B2 黄色:#E3C428 橙色:#E49317 红色:#B04332\r\n if (find[regionSnKey] == 'A') {\r\n // color = '#398C8F'\r\n color = '#20A367'\r\n } else if (find[regionSnKey] == 'B') {\r\n // color = '#1970C1'\r\n color = '#3877B2'\r\n } else if (find[regionSnKey] == 'C') {\r\n // color = '#A3A355'\r\n color = '#E3C428'\r\n } else if (find[regionSnKey] == 'D') {\r\n // color = '#B0825C'\r\n color = '#E49317'\r\n } else if (find[regionSnKey] == 'E') {\r\n // color = '#9B4E55'\r\n color = '#B04332'\r\n }\r\n }\r\n let show = true\r\n let offset = [0, 0]\r\n if (\r\n [\r\n '渝中区',\r\n '大渡口区',\r\n '江北区',\r\n '沙坪坝区',\r\n '九龙坡区',\r\n '南岸区',\r\n '北碚区',\r\n '渝北区',\r\n '巴南区',\r\n '两江新区',\r\n '高新区',\r\n ].includes(obj.name)\r\n ) {\r\n show = false\r\n }\r\n if (['沙坪坝区'].includes(obj.name)) {\r\n offset = [-10, 0]\r\n }\r\n if (['九龙坡区'].includes(obj.name)) {\r\n offset = [-10, -10]\r\n }\r\n if (['大渡口区'].includes(obj.name)) {\r\n offset = [0, 5]\r\n }\r\n if (['江北区'].includes(obj.name)) {\r\n offset = [10, 0]\r\n }\r\n if (['南岸区'].includes(obj.name)) {\r\n offset = [10, 6]\r\n }\r\n if (['綦江区'].includes(obj.name)) {\r\n offset = [0, 20]\r\n }\r\n if (showTitle != undefined) {\r\n show = showTitle\r\n }\r\n if (obj.name == '两江新区' || obj.name == '高新区') {\r\n show = false\r\n }\r\n res.push({\r\n name: obj.name,\r\n value: find ? find['unitCode'] : 0,\r\n itemStyle: {\r\n color: color,\r\n areaColor: color,\r\n label: {\r\n show,\r\n },\r\n },\r\n label: {\r\n normal: {\r\n show,\r\n offset, //是否对文字进行偏移。默认不偏移。例如:[30, 40] 表示文字在横向上偏移 30,纵向上偏移 40。\r\n position: 'inside', //标签的位置。// 绝对的像素值[10, 10]\r\n color: '#fff',\r\n fontSize: 12,\r\n },\r\n },\r\n emphasis: {\r\n // disabled: true,\r\n itemStyle: {\r\n areaColor:\r\n emphasisColor[find ? find[regionSnKey] : 'N'],\r\n },\r\n label: {\r\n color: '#ffffff',\r\n },\r\n },\r\n })\r\n }\r\n return res\r\n },\r\n initMapCQ() {\r\n let dom = document.getElementById(this.CQId)\r\n let width = getComputedStyle(dom)\r\n .getPropertyValue('width')\r\n .replace('px', '')\r\n let height = getComputedStyle(dom)\r\n .getPropertyValue('height')\r\n .replace('px', '')\r\n width = parseInt(width, 10)\r\n height = parseInt(height, 10)\r\n this.myChartCQ = echarts.init(dom, null, {\r\n renderer: 'svg',\r\n width,\r\n height,\r\n })\r\n // 注册 echarts 地图\r\n\r\n echarts.registerMap('cq', cq)\r\n var markPointData = []\r\n let map = 'cq',\r\n top = '40%',\r\n left = '-15%',\r\n zoom = 1.2,\r\n aspectScale = 1,\r\n center = [106.5049, 29], // 地图中心位置, 此处的纬度与下面的center相差1度是形成阴影的距离,可自己随意调整\r\n layoutCenter = ['50%', '50%']\r\n this.optionCQ = {\r\n series: [\r\n {\r\n name: '重庆',\r\n type: 'map', //配置显示方式为用户自定义\r\n map,\r\n zoom, // 地图比例\r\n zlevel: 100,\r\n center, // 地图中心位置, 此处的纬度与下面的center相差1度是形成阴影的距离,可自己随意调整\r\n aspectScale,\r\n // roam: true,\r\n scaleLimit: {\r\n min: 0.6,\r\n max: 4,\r\n },\r\n itemStyle: {\r\n normal: {\r\n borderWidth: 1, //设置外层边框\r\n borderColor: '#2ddcfd',\r\n },\r\n },\r\n emphasis: {\r\n itemStyle: {\r\n areaColor: 'yellow',\r\n },\r\n },\r\n top,\r\n left,\r\n data: this.convertData(\r\n cq.features,\r\n fakeData.btnkey1,\r\n 'risk'\r\n ),\r\n },\r\n ],\r\n }\r\n this.myChartCQ.setOption(this.optionCQ)\r\n if (this.isClick) {\r\n this.myChartCQ.on('click', (params) => {\r\n let code = params.value\r\n if (!code) {\r\n code = this.getAreaCode(params.name, cq)\r\n }\r\n this.$router.push({\r\n path: '/DistrictReformSubView',\r\n query: {\r\n name: params.name,\r\n code: code,\r\n },\r\n })\r\n let tooltip =\r\n document.getElementsByClassName('data-tooltip')\r\n Array.from(tooltip).forEach((item) => {\r\n item.remove()\r\n })\r\n })\r\n }\r\n },\r\n initMapMain() {\r\n this.myChartMain = echarts.init(\r\n document.getElementById(this.main9Id),\r\n null,\r\n {\r\n renderer: 'svg',\r\n }\r\n )\r\n // 注册 echarts 地图\r\n echarts.registerMap('main9', main9)\r\n var markPointData = []\r\n let top = 28, //\r\n left = 20,\r\n zoom = 1.2,\r\n map = 'main9',\r\n aspectScale = 1,\r\n layoutCenter = ['50%', '50%'],\r\n center = [106.204962, 29.533155] // 地图中心位置, 此处的纬度与下面的center相差1度是形成阴影的距离,可自己随意调整\r\n this.optionMain = {\r\n geo: [\r\n {\r\n map,\r\n zoom,\r\n zlevel: 0,\r\n aspectScale,\r\n itemStyle: {\r\n normal: {\r\n borderWidth: 0,\r\n },\r\n },\r\n emphasis: {\r\n itemStyle: {\r\n areaColor: 'yellow',\r\n },\r\n },\r\n tooltip: {\r\n show: false,\r\n },\r\n top,\r\n left,\r\n layoutCenter,\r\n },\r\n ],\r\n series: [\r\n {\r\n name: '重庆主城',\r\n type: 'map',\r\n map,\r\n zoom, // 地图比例\r\n zlevel: 100,\r\n // center, // 地图中心位置, 此处的纬度与下面的center相差1度是形成阴影的距离,可自己随意调整\r\n aspectScale,\r\n itemStyle: {\r\n normal: {\r\n borderWidth: 1, //设置外层边框\r\n borderColor: 'white',\r\n },\r\n },\r\n emphasis: {\r\n // disabled: true,\r\n itemStyle: {\r\n areaColor: 'yellow',\r\n },\r\n },\r\n top,\r\n left,\r\n data: this.convertData(\r\n main9.features,\r\n fakeData.btnkey1,\r\n 'risk',\r\n true\r\n ),\r\n },\r\n ],\r\n }\r\n this.myChartMain.setOption(this.optionMain)\r\n if (this.isClick) {\r\n this.myChartMain.on('click', (params) => {\r\n let code = params.value\r\n if (!code) {\r\n code = this.getAreaCode(params.name, main9)\r\n }\r\n this.$router.push({\r\n path: '/DistrictReformSubView',\r\n query: {\r\n name: params.name,\r\n code: code,\r\n },\r\n })\r\n let tooltip = document.querySelectorAll('.data-tooltip')\r\n Array.from(tooltip).forEach((item) => {\r\n item.remove()\r\n })\r\n })\r\n }\r\n },\r\n resize(delay) {\r\n // 动态计算表格的高度,自适应当前容器\r\n setTimeout(() => {\r\n let dom = document.getElementById(this.CQId)\r\n if (!dom) return\r\n let width = getComputedStyle(dom)\r\n .getPropertyValue('width')\r\n .replace('px', '')\r\n let height = getComputedStyle(dom)\r\n .getPropertyValue('height')\r\n .replace('px', '')\r\n width = parseInt(width, 10)\r\n height = parseInt(height, 10)\r\n this.myChartCQ.resize({\r\n width: width,\r\n height: height,\r\n })\r\n this.myChartMain.resize()\r\n }, delay || 0)\r\n },\r\n goToSub(type) {\r\n let data = {\r\n ljxq: {\r\n name: '两江新区',\r\n code: '500191000000',\r\n },\r\n gxq: {\r\n name: '高新区',\r\n code: '500193000000',\r\n },\r\n }\r\n this.$router.push({\r\n path: '/DistrictReformSubView',\r\n query: {\r\n name: data[type].name,\r\n code: data[type].code,\r\n },\r\n })\r\n },\r\n },\r\n}\r\n",null]}