From fb212223fdc2f692896da5483ba2b1a8aec22d5f Mon Sep 17 00:00:00 2001 From: TreeWish <1131093754@qq.com> Date: 星期一, 27 二月 2023 19:15:20 +0800 Subject: [PATCH] 修改基础数据 --- src/components/chart/CountryProvincePie.vue | 2 src/components/chart/VisitCount.vue | 187 ++++++++++++++ src/components/Screen/top.vue | 10 src/components/chart/ServiceGet.vue | 4 src/components/chart/FileFormat.vue | 256 ++++++++++++------- src/components/chart/BasePieChart .vue | 27 + src/components/chart/CountryDimensionPie.vue | 2 src/components/Screen/left.vue | 80 +++-- src/components/Screen/right.vue | 131 +++++++-- src/components/Screen/bottom.vue | 1 src/components/chart/ServiceType.vue | 7 src/components/chart/BaseBarChart.vue | 2 src/components/chart/BaseLineChart.vue | 7 src/views/Thematic/index.vue | 16 14 files changed, 534 insertions(+), 198 deletions(-) diff --git a/src/components/Screen/bottom.vue b/src/components/Screen/bottom.vue index 94e85d3..bcf1037 100644 --- a/src/components/Screen/bottom.vue +++ b/src/components/Screen/bottom.vue @@ -201,6 +201,7 @@ break case "椤圭洰灞曠ず": this.DisplayCurrentProject(child) + this.changeProject(child) break case "涓撻灞曠ず": this.changeProject(child) diff --git a/src/components/Screen/left.vue b/src/components/Screen/left.vue index 2863288..75d356e 100644 --- a/src/components/Screen/left.vue +++ b/src/components/Screen/left.vue @@ -3,7 +3,7 @@ <div class="leftarrow"> <img :src="leftImg" @click="ChangeLeft" /> </div> - <div class="leftContainer" v-if="ChartDisplay"> + <div class="leftContainer" v-if="currentDisplay == '澶у睆' && ChartDisplay"> <div class="current1" id="leftCurrent1"> <div class="aside-title">鏁版嵁鐢宠娆℃暟</div> <count-data-apply></count-data-apply> @@ -17,38 +17,51 @@ <data-storage></data-storage> </div> </div> - <!-- 鍏ㄧ悆缁熻娆℃暟 --> - <div class="leftContainer" v-if="GlobleChartDisplay"> + <!-- 鍏ㄧ悆銆佸叏鍥界粺璁℃鏁� --> + <div class="leftContainer" v-if="currentDisplay == '椤圭洰'"> <div class="current1" id="leftCurrent1"> - <div class="aside-title">椤硅嚜绫诲瀷</div> + <div class="aside-title">鍥藉唴銆佸浗澶�</div> + </div> + <div class="current1" id="leftCurrent2"> + <div class="aside-title">缁熻鍦扮伨銆佹礊搴撶瓑涓撲笟鏁版嵁瀛樺偍閲�</div> <base-line-chart :project="currProject"></base-line-chart> - + </div> + <div class="current1" id="leftCurrent3"> + <div class="aside-title">鏁版嵁瀛樺偍閲�</div> + <data-storage></data-storage> + </div> + </div> + <!-- 鍏ㄧ悆銆佸叏鍥界缃戝浘 --> + <div class="leftContainer" v-if="currentDisplay == '绠$綉'"> + <div class="current1" id="leftCurrent1"> + <div class="aside-title">绠$綉鍥藉唴銆佸浗澶�</div> <!-- <base-bar-chart :project="currProject"></base-bar-chart> --> <!-- <count-data-apply></count-data-apply> --> </div> <div class="current1" id="leftCurrent2"> - <div class="aside-title">鐢ㄦ埛璁块棶閲�</div> - <base-pie-chart :project="currProject"></base-pie-chart> + <div class="aside-title">杈撻�佷粙璐ㄧ被鍒粺璁¢暱搴�</div> + <base-line-chart :project="currProject"></base-line-chart> + <!-- <base-pie-chart :project="currProject"></base-pie-chart> --> <!-- <service-type></service-type> --> </div> <div class="current1" id="leftCurrent3"> - <div class="aside-title">椤圭洰瀛樺偍淇℃伅</div> + <div class="aside-title">鏁版嵁瀛樺偍閲�</div> <data-storage></data-storage> </div> </div> - <!-- 鍏ㄥ浗椤圭洰缁熻娆℃暟 --> - <div class="leftContainer" v-if="CountryChartDisplay"> - <div class="current1" id="leftCurrent1"> - <div class="aside-title">鏁版嵁鐢宠娆℃暟</div> - <count-data-apply></count-data-apply> + <!-- 鍗曚釜宸ョ▼灞曠ず --> + <div class="leftContainer" v-if="currentDisplay == '宸ョ▼'"> + <div class="current1" > + <div class="aside-title">宸ョ▼绠�浠�</div> + </div> - <div class="current1" id="leftCurrent2"> - <div class="aside-title">鐢ㄦ埛璁块棶閲�</div> - <service-type></service-type> + <div class="current1" > + <div class="aside-title">椤圭洰鐘舵��</div> + </div> - <div class="current1" id="leftCurrent3"> - <div class="aside-title">椤圭洰瀛樺偍淇℃伅</div> - <data-storage></data-storage> + <div class="current1"> + <div class="aside-title">寤鸿宸ユ湡</div> + </div> </div> <!-- <div class="leftContainer" v-if="ProjectreeDisplay"> @@ -72,7 +85,7 @@ DataStorage, BaseBarChart, BaseLineChart, - BasePieChart + BasePieChart, }, data() { return { @@ -83,24 +96,22 @@ CountryChartDisplay: false, leftImg: require("../../assets/img/Screen/rightArrow.png"), currProject: "鍏ㄧ悆椤圭洰", + currentDisplay: "澶у睆", } }, mounted() { this.OpenLeftInit() // this.OpenLeftInitChart(); + this.$bus.$on("changeProject", name => { - this.currProject = name - this.GlobleChartDisplay = true - this.ChartDisplay = false - // if (name == "鍏ㄧ悆椤圭洰") { - // this.GlobleChartDisplay = true - // this.ChartDisplay = false - - // } else { - // this.ChartDisplay = true - // this.GlobleChartDisplay = false - - // } + if (name.includes("鍏ㄧ悆绠$綉") || name.includes("鍏ㄥ浗绠$綉")) { + this.currentDisplay = "绠$綉" + } else if (name.includes("鍏ㄧ悆椤圭洰") || name.includes("鍏ㄥ浗椤圭洰")) { + this.currentDisplay = "椤圭洰" + } else { + this.currentDisplay = '宸ョ▼' + } + this.currentProject = name }) }, methods: { @@ -127,13 +138,14 @@ }, //鎵撳紑澶у睆宸︿晶鐣岄潰 OpenLeftInit() { + this.currentDisplay = "澶у睆" + this.ChartDisplay = true this.ProjectreeDisplay = false this.leftMessage = "init" // this.OpenLeftInitChart(); this.$parent.ChangeWidth("leftView") this.GlobleChartDisplay = false - }, //鎵撳紑宸ョ▼鏍� OpenLeftProjectTree() { @@ -600,7 +612,7 @@ .leftContainer { height: 100%; - width: calc(100% - 7px); + width: calc(100% - 45px); display: flex; flex-direction: column; align-items: center; diff --git a/src/components/Screen/right.vue b/src/components/Screen/right.vue index fef52f4..99d9bac 100644 --- a/src/components/Screen/right.vue +++ b/src/components/Screen/right.vue @@ -1,62 +1,88 @@ <template> <div class="current"> - <div class="rightContainer" v-if="ChartDisplay"> + <div class="rightContainer" v-if="currentDisplay == '澶у睆' && ChartDisplay"> <div class="current1"> <div class="aside-title">椤圭洰缁熻</div> <project-category></project-category> </div> <div class="current1"> <div class="aside-title">鏁版嵁缁熻</div> - <!-- <div class="content" style="height:30px"> - <div class="header"> - <div>鏍煎紡</div> - <div>鏁伴噺</div> - </div> - </div> --> - <file-format></file-format> + <visit-count></visit-count> </div> <div class="current1"> <div class="aside-title">鏈嶅姟璁块棶娆℃暟</div> <Service-Get></Service-Get> </div> </div> - - <div - class="rightContainer2" - v-if="CourtyDisplay && currentProject == '鍏ㄧ悆椤圭洰'" - > + <!-- 鍏ㄧ悆銆佸叏鍥介」鐩� --> + <div class="rightContainer" v-if="currentDisplay == '椤圭洰'"> <div class="current1"> - <div class="aside-title">椤圭洰鏁伴噺鏌辩姸鍥�</div> + <div class="aside-title">绔欏満搴ф暟</div> <!-- <country-dimension-bar ref="barRef"></country-dimension-bar> --> <base-bar-chart :project="currentProject"></base-bar-chart> </div> <div class="current1"> - <div class="aside-title">椤圭洰鏁伴噺楗肩姸鍥�</div> - <country-dimension-pie ref="pieRef"></country-dimension-pie> + <div class="aside-title">闃�瀹ゅ骇鏁�</div> + <!-- <base-pie-chart :project="currentProject"></base-pie-chart> --> + <country-dimension-pie + v-if="currentProject == '鍏ㄧ悆椤圭洰'" + ref="pieRef" + ></country-dimension-pie> + <province-dimension-pie v-else ref="pieRef"></province-dimension-pie> </div> <div class="current1"> - <div class="aside-title">椤圭洰鏁伴噺楗肩姸鍥�</div> - <dv-capsule-chart - :config="config" - style="width: 300px; height: 200px" - /> + <div class="aside-title">椤圭洰鏁版嵁浣跨敤鎯呭喌</div> + <dv-capsule-chart :config="config" style="width: 360px; height: 85%" /> </div> </div> - - <div - class="rightContainer2" - v-if="CourtyDisplay && currentProject == '鍏ㄥ浗椤圭洰'" - > + <!-- 鍏ㄥ浗銆佸叏鐞冪缃� --> + <div class="rightContainer" v-if="currentDisplay == '绠$綉'"> <div class="current1"> - <div class="aside-title">椤圭洰鏁伴噺鏌辩姸鍥�</div> - <!-- <province-dimension-bar ref="barRef"></province-dimension-bar> --> + <div class="aside-title">绔欏満搴ф暟</div> + <!-- <country-dimension-bar ref="barRef"></country-dimension-bar> --> <base-bar-chart :project="currentProject"></base-bar-chart> </div> <div class="current1"> - <div class="aside-title">椤圭洰鏁伴噺楗肩姸鍥�</div> - <province-dimension-pie ref="pieRef"></province-dimension-pie> + <div class="aside-title">闃�瀹ゅ骇鏁�</div> + <dv-active-ring-chart + :config="pieconfig" + style="width: 377px; height: 85%" + /> + </div> + <div class="current1"> + <div class="aside-title">涓嶅悓杈撻�佷粙璐ㄧ閬撴潯鏁�</div> + <dv-conical-column-chart + :config="config" + style="width: 377px; height: 85%" + /> </div> </div> + <!-- 鍗曚釜宸ョ▼ --> + <div class="rightContainer" v-if="currentDisplay == '宸ョ▼'"> + <div class="current1"> + <div class="aside-title">鏁版嵁瀛樺偍閲�</div> + <base-line-chart :project="currentProject"></base-line-chart> + </div> + <div class="current1"> + <div class="aside-title">鏁版嵁涓嬭浇娆℃暟</div> + <base-pie-chart height="90%" :project="currentProject"></base-pie-chart> + </div> + <div class="current1"> + <div class="aside-title">缁熻涓嶅悓杈撻�佷粙璐ㄧ閬撴潯鏁�</div> + <div class="content" style="height: 30px"> + <div class="header"> + <div>鏍煎紡</div> + <div>鏁伴噺</div> + </div> + </div> + <file-format></file-format> + <!-- <dv-conical-column-chart + :config="config" + style="width: 377px; height: 85" + /> --> + </div> + </div> + <div class="rightarrow"> <img :src="RightImg" @click="ChangeRight" /> </div> @@ -76,7 +102,7 @@ import BaseBarChart from "../chart/BaseBarChart.vue" import BaseLineChart from "../chart/BaseLineChart.vue" import BasePieChart from "../chart/BasePieChart .vue" - +import VisitCount from "../chart/VisitCount.vue" import { countCountryDimension, countProvinceDimension } from "@/api/screen.js" export default { @@ -94,14 +120,17 @@ BaseBarChart, BaseLineChart, BasePieChart, + VisitCount, }, data() { return { ChartDisplay: true, CourtyDisplay: false, + PipeDisPlay: false, RightImg: require("../../assets/img/Screen/leftArrow.png"), leftMessage: "init", currentProject: "鍏ㄧ悆椤圭洰", + currentDisplay: "澶у睆", countryData: [], provinceData: [], config: { @@ -127,17 +156,47 @@ value: 66, }, ], - unit: "鍗曚綅", showValue: true, + }, + pieconfig: { + data: [ + { + name: "鍛ㄥ彛", + value: 55, + }, + { + name: "鍗楅槼", + value: 120, + }, + { + name: "瑗垮场", + value: 78, + }, + { + name: "椹婚┈搴�", + value: 66, + }, + { + name: "鏂颁埂", + value: 80, + }, + ], + lineWidth: 10, }, } }, mounted() { + this.OpenLeftInit() this.$bus.$on("changeProject", name => { + if (name.includes("鍏ㄧ悆绠$綉") || name.includes("鍏ㄥ浗绠$綉")) { + this.currentDisplay = "绠$綉" + } else if (name.includes("鍏ㄧ悆椤圭洰") || name.includes("鍏ㄥ浗椤圭洰")) { + this.currentDisplay = "椤圭洰" + } else { + this.currentDisplay = "宸ョ▼" + } this.currentProject = name - this.CourtyDisplay = true - this.ChartDisplay = false }) }, methods: { @@ -165,6 +224,7 @@ }, //鎵撳紑澶у睆宸︿晶鐣岄潰 OpenLeftInit() { + this.currentDisplay = "澶у睆" this.ChartDisplay = true this.CourtyDisplay = false this.leftMessage = "init" @@ -182,7 +242,7 @@ }, } </script> -<style lang="less" sc> +<style lang="less"> .current { height: 100%; width: 100%; @@ -190,6 +250,7 @@ flex-direction: row; align-items: center; justify-content: center; + .rightarrow { width: 36px; height: 100%; diff --git a/src/components/Screen/top.vue b/src/components/Screen/top.vue index e10734b..8279555 100644 --- a/src/components/Screen/top.vue +++ b/src/components/Screen/top.vue @@ -42,11 +42,11 @@ } }, mounted() { - this.$bus.$on('changeProject', name => { - if (name == '鍏ㄥ浗椤圭洰' || name == '鍏ㄧ悆椤圭洰') { - // this.OpenProjectree() - } - }) + // this.$bus.$on('changeProject', name => { + // if (name == '鍏ㄥ浗椤圭洰' || name == '鍏ㄧ悆椤圭洰') { + // this.OpenProjectree() + // } + // }) }, methods: { ReturnLast() { diff --git a/src/components/chart/BaseBarChart.vue b/src/components/chart/BaseBarChart.vue index af16c00..ea195ce 100644 --- a/src/components/chart/BaseBarChart.vue +++ b/src/components/chart/BaseBarChart.vue @@ -265,7 +265,7 @@ default: break } - this.initData(requsetFn) + requsetFn && this.initData(requsetFn) this.setOptions(this.option) }, }, diff --git a/src/components/chart/BaseLineChart.vue b/src/components/chart/BaseLineChart.vue index e2f5995..f78d2e8 100644 --- a/src/components/chart/BaseLineChart.vue +++ b/src/components/chart/BaseLineChart.vue @@ -77,11 +77,13 @@ boundaryGap: true, axisLine: { lineStyle: { - color: "#fff", + color: "#fff" }, + show: false }, nameRotate: 45, axisTick: { + show: false, alignWithLabel: true, }, axisLabel: { @@ -154,7 +156,8 @@ default: break } - this.initData(requsetFn) + requsetFn && this.initData(requsetFn) + this.setOptions(this.option) }, }, diff --git a/src/components/chart/BasePieChart .vue b/src/components/chart/BasePieChart .vue index 764f592..29d58b9 100644 --- a/src/components/chart/BasePieChart .vue +++ b/src/components/chart/BasePieChart .vue @@ -69,7 +69,7 @@ let data = [] let xAxisData = [] let yAxisData = [] - let count = 0 + let count = 0 if (this.dataList) { data = this.dataList echartData = data.map(item => { @@ -90,7 +90,7 @@ yellow: { color: "#ffc72b", fontSize: 18 * scale, - padding: [5, 4], + padding: [4, 4], align: "center", }, total: { @@ -102,7 +102,7 @@ color: "#fff", align: "center", fontSize: 14 * scale, - padding: [5, 0], + padding: [4, 0], }, blue: { color: "#49dff0", @@ -122,9 +122,8 @@ left: "1%", // 涓庡鍣ㄥ乏渚х殑璺濈 right: "1%", // 涓庡鍣ㄥ彸渚х殑璺濈 top: "1%", // 涓庡鍣ㄩ《閮ㄧ殑璺濈 - bottom: "1%", // 涓庡鍣ㄥ簳閮ㄧ殑璺濈 + bottom: "10%", // 涓庡鍣ㄥ簳閮ㄧ殑璺濈 containLabel: true, - }, title: { text: "鎬绘暟", @@ -145,7 +144,7 @@ fontFamily: "YouSheBiaoTiHei", }, }, - + // legend: { // selectedMode: false, // formatter: function (name) { @@ -177,9 +176,15 @@ "#034079", "#6f81da", "#00ffb4", + "#3087d6", + "#f6ce54", + "#4be1ff", + "#b6e9ff", + "#18edc9", + "#6ac5fa", ], - minAngle: 30, //鏈�灏忚搴� - startAngle: 270, //璧峰瑙掑害 + // minAngle: 15, + // startAngle: 270, label: { normal: { formatter: function (params, ticket, callback) { @@ -194,7 +199,7 @@ params.name + "}\n{hr|}\n{yellow|" + params.value + - "}\n{blue|" + + "} {blue|" + percent + "%}" ) @@ -241,7 +246,7 @@ default: break } - this.initData(requsetFn) + requsetFn && this.initData(requsetFn) this.setOptions(this.option) }, }, @@ -304,6 +309,6 @@ <style lang="scss" scoped> .piechar { width: 100%; - height: 100%; + height: 85%; } </style> diff --git a/src/components/chart/CountryDimensionPie.vue b/src/components/chart/CountryDimensionPie.vue index 6bc8d69..d3750f7 100644 --- a/src/components/chart/CountryDimensionPie.vue +++ b/src/components/chart/CountryDimensionPie.vue @@ -287,6 +287,6 @@ <style lang="scss" scoped> .echart { width: 100%; - height: 100%; + height: 85%; } </style> diff --git a/src/components/chart/CountryProvincePie.vue b/src/components/chart/CountryProvincePie.vue index 7237e02..2f1780c 100644 --- a/src/components/chart/CountryProvincePie.vue +++ b/src/components/chart/CountryProvincePie.vue @@ -289,6 +289,6 @@ <style lang="scss" scoped> .echart { width: 100%; - height: 100%; + height: 85%; } </style> diff --git a/src/components/chart/FileFormat.vue b/src/components/chart/FileFormat.vue index 505499b..9418542 100644 --- a/src/components/chart/FileFormat.vue +++ b/src/components/chart/FileFormat.vue @@ -1,11 +1,10 @@ <template> - <div class="file-format" ref="chart"></div> + <div class="FileFormat" ref="chart"></div> </template> <script> -const fileTypeBar = require("@/assets/img/Screen/fileTypeBar.png") import * as echarts from "echarts" -import { GetTypeVisitsCount } from "@/api/screen.js" +import { countFileFormat } from "@/api/screen.js" export default { data() { return { @@ -59,112 +58,177 @@ value: 20, }, ] - const res = await GetTypeVisitsCount() - let xAxis = [] - let yAxis = [] + const res = await countFileFormat() if (res.code == 200) { data = res.result.map(item => { - xAxis.push(item.name) - yAxis.push(item.count) + return { + name: item.type, + value: item.number, + } }) } + data.sort((a, b) => b.value - a.value) + data = data.slice(0, 4) + let getArrByKey = (data, k) => { + let key = k || "value" + let res = [] + if (data) { + data.forEach(function (t) { + res.push(t[key]) + }) + } + return res + } + let getSymbolData = data => { + let arr = [] + for (var i = 0; i < data.length; i++) { + arr.push({ + value: data[i].value, + symbolPosition: "end", + }) + } + return arr + } + let opt = { + index: 0, + } + let color = ["#A71A2B"] + data = data.sort((a, b) => { + return b.value - a.value + }) let option = { + backgroundColor: "transparent", grid: { - // 璁╁浘琛ㄥ崰婊″鍣� - top: "12%", - left: "15%", - right: "10%", - bottom: "15%", - }, - tooltip: { - show: true + top: "10%", + bottom: "10%", + right: "5%", + left: "10%", + containLabel: true, }, xAxis: { - data: xAxis, - axisLabel: { - show: true, - color: "#ffff", - }, - axisTick: { - show: false, - }, - axisLine: { - show: true, - lineStyle: { - color: "rgba(95, 180, 237, 0.32)", - }, - }, + show: false, }, - yAxis: { - axisLine: { - show: false, - }, - axisTick: { - show: false, - }, - axisLabel: { - color: "#ffff", - }, - // 鍒嗗壊绾� - splitLine: { - lineStyle: { - color: "#5d7289", - width: 1, - type: "dashed", - }, - }, - }, - series: [ + yAxis: [ { - // 椤堕儴鍦嗙墖 - type: "pictorialBar", - animation: false, - itemStyle: { - color: "rgba(115, 240, 252, 1)", + triggerEvent: true, + show: true, + inverse: true, + data: getArrByKey(data, "name"), + axisLine: { + show: false, }, - symbolRepeat: false, - symbolSize: [15, 8], - symbolMargin: 1, - z: 10, - data: data, - symbolPosition: "end", - symbolOffset: [0, -4], - }, - { - // 搴曢儴鍦嗙墖 - type: "pictorialBar", - animation: false, - - itemStyle: { - color: "rgba(50, 96, 225, 0.8)", + splitLine: { + show: false, }, - symbolRepeat: false, - symbolSize: [15, 8], - symbolMargin: 1, - z: 10, - data: data, - symbolPosition: "start", - symbolOffset: [0, 3], - }, - { - barWidth: 15, - animation: false, - - type: "bar", - label: { - show: true, - position: "top", - textStyle: { - color: "#ffff", + axisTick: { + show: false, + }, + axisLabel: { + show: false, + interval: 0, + color: "#fff", + align: "left", + margin: 0, + fontSize: 13, + formatter: function (value, index) { + return "{title|" + value + "}" + }, + rich: { + title: { + width: 165, + }, }, }, - itemStyle: { - color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [ - { offset: 1, color: "rgba(82, 180, 249, 0.35)" }, - { offset: 0, color: "rgba(82, 180, 249, 1)" }, - ]), + }, + { + triggerEvent: true, + show: true, + inverse: true, + data: getArrByKey(data, "name"), + axisLine: { + show: false, }, - data: yAxis, + splitLine: { + show: false, + }, + axisTick: { + show: false, + }, + axisLabel: { + interval: 0, + shadowOffsetX: "-20px", + color: "#fff", + align: "right", + verticalAlign: "bottom", + lineHeight: 20, + fontSize: 13, + formatter: function (value, index) { + return data[index].value + }, + }, + }, + ], + series: [ + { + name: "XXX", + type: "pictorialBar", + symbol: + "image://data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADoAAAA6CAMAAADWZboaAAAAZlBMVEUAAABe3uVe3+Vf3uVf3+Zf3uVg3+Zg3+Zf3+Vi4OZh4OZg3+Z86/Bh3+Zi4Odj4Odi4OZ86/B76/B86/Bj4ed56+9x5+xn4umB7/N87PB36e+A7/N+7fF/7vJ/7vJ+7fGA7/OB7/PReX+lAAAAIXRSTlMABQkVDREmIhk3MR10LEFFPHh7cUprXE35h2XnqMLAp+mHAG9cAAAB5ElEQVRIx83WjU7CMBQFYIoiKMqU/XUboHv/l/Tce7t2XamDNSacETEmX86tlK2rx4py150o+MstMBLwWRfHKo6JCVxLnvmFGBjFQ58oF1//sUZhGy/ClSTWObgnL4O+bkeN4nY2okfNMbkRt9/vtxz8InoTsWplJSCzFxPmO8+GpSIByX3YQAuGDWtRKhKjCnxDXhF6Z4yxnZ20Wgko7BMRDmxtSGVaI4kdTIgb+zTYoJQlIMlDlmUFgrcDWWC201qSayqlTkiCddWWeV62VU0YlnpRi9VOKaSUsiyq/N0krwq2Ugt7lVpZl5BfHNiytjagMi+XYp0kCR45hMlivVQrE/uU5pXSrCB5bM6d1t2lOZItMqmliT3q5uVxqxzyW/ccfYLNKx7ZTeykMvNyac2yt2Fbc61MHLSC0rwoxbiNdlQ3GBm1NLHQsHUrtEXppR/ljNpW6DbSCoqlFiVoN6YdaFlgsSFVPs1BdT8OaB5QyQzVcaqWDows/zepxR8ObLglTrdtCRVuRNj4Rrxh+//0ke2f8KVL+Kon3GCSbmsJN9OUW3j6g0Ns+LgCij2u0h+Sghc8mlMPBMgdx5DFh59VmOVHrvmDnoNxCz3J7MFWsMuaLyR089xz/xhlfijvwutR8gv3zk6BLUUeCgAAAABJRU5ErkJggg==", + symbolSize: [35, 35], + symbolOffset: [20, 0], + z: 5, + data: getSymbolData(data), + }, + { + name: "鏉�", + type: "bar", + showBackground: true, + barBorderRadius: 10, + yAxisIndex: 0, + data: data, + barWidth: 8, + // align: left, + itemStyle: { + normal: { + color: new echarts.graphic.LinearGradient( + 0, + 0, + 1, + 0, + [ + { + offset: 0, + color: "#5A9DFF", + }, + { + offset: 0.7, + color: "#1878FF", + }, + { + offset: 1, + color: "#164182", + }, + ], + false + ), + barBorderRadius: 5, + }, + // color: '#A71A2B', + barBorderRadius: 2, + }, + label: { + normal: { + color: "#fff", + show: true, + position: ["0px", "-25px"], + textStyle: { + fontSize: 14, + }, + formatter: function (a, b) { + return a.name + }, + }, + }, }, ], } @@ -181,8 +245,8 @@ </script> <style lang="less" scoped> -.file-format { +.FileFormat { width: 100%; - height: calc(100% - 30px); + height: calc(100% - 40px); } </style> diff --git a/src/components/chart/ServiceGet.vue b/src/components/chart/ServiceGet.vue index b4d4fc8..c6d005f 100644 --- a/src/components/chart/ServiceGet.vue +++ b/src/components/chart/ServiceGet.vue @@ -56,10 +56,12 @@ axisLine: { lineStyle: { color: "#fff" - } + }, + show: false }, nameRotate: 45, axisTick: { + // show: false, alignWithLabel: true }, axisLabel: { diff --git a/src/components/chart/ServiceType.vue b/src/components/chart/ServiceType.vue index d84e8be..80ae7d2 100644 --- a/src/components/chart/ServiceType.vue +++ b/src/components/chart/ServiceType.vue @@ -140,9 +140,9 @@ data: dataPie, icon: "vertical", right: "1%", - top: "10%", + top: "2%", orient: "vertical", - itemGap: 7, + itemGap: 5, itemWidth: 12, itemHeight: 3, @@ -165,7 +165,8 @@ left: "1%", // 涓庡鍣ㄥ乏渚х殑璺濈 right: "1%", // 涓庡鍣ㄥ彸渚х殑璺濈 top: "1%", // 涓庡鍣ㄩ《閮ㄧ殑璺濈 - bottom: "1%", // 涓庡鍣ㄥ簳閮ㄧ殑璺濈 + bottom: "5%", // 涓庡鍣ㄥ簳閮ㄧ殑璺濈 + containLabel: true }, series: [ { diff --git a/src/components/chart/VisitCount.vue b/src/components/chart/VisitCount.vue new file mode 100644 index 0000000..3f1ad72 --- /dev/null +++ b/src/components/chart/VisitCount.vue @@ -0,0 +1,187 @@ +<template> + <div class="visit-count" ref="chart"></div> +</template> + +<script> +import * as echarts from "echarts" +import { GetTypeVisitsCount } from "@/api/screen.js" +export default { + data() { + return { + option: {}, + } + }, + mounted() { + this.initChart() + }, + methods: { + async initChart() { + let data = [ + { + name: "user1", + value: 10, + }, + { + name: "user2", + value: 20, + }, + { + name: "user3", + value: 23, + }, + { + name: "user4", + value: 44, + }, + { + name: "user1", + value: 10, + }, + { + name: "user2", + value: 20, + }, + { + name: "user3", + value: 53, + }, + { + name: "user4", + value: 24, + }, + { + name: "user1", + value: 10, + }, + { + name: "user2", + value: 20, + }, + ] + const res = await GetTypeVisitsCount() + let xAxis = [] + let yAxis = [] + if (res.code == 200) { + data = res.result.map(item => { + xAxis.push(item.name) + yAxis.push(item.count) + }) + } + let option = { + grid: { + // 璁╁浘琛ㄥ崰婊″鍣� + top: "12%", + left: "15%", + right: "10%", + bottom: "15%", + }, + tooltip: { + show: true + }, + xAxis: { + data: xAxis, + axisLabel: { + show: true, + color: "#ffff", + }, + axisTick: { + show: false, + }, + axisLine: { + show: true, + lineStyle: { + color: "rgba(95, 180, 237, 0.32)", + }, + }, + }, + yAxis: { + axisLine: { + show: false, + }, + axisTick: { + show: false, + }, + axisLabel: { + color: "#ffff", + }, + // 鍒嗗壊绾� + splitLine: { + lineStyle: { + color: "#5d7289", + width: 1, + type: "dashed", + }, + }, + }, + series: [ + { + // 椤堕儴鍦嗙墖 + type: "pictorialBar", + animation: false, + itemStyle: { + color: "rgba(115, 240, 252, 1)", + }, + symbolRepeat: false, + symbolSize: [15, 8], + symbolMargin: 1, + z: 10, + data: data, + symbolPosition: "end", + symbolOffset: [0, -4], + }, + { + // 搴曢儴鍦嗙墖 + type: "pictorialBar", + animation: false, + + itemStyle: { + color: "rgba(50, 96, 225, 0.8)", + }, + symbolRepeat: false, + symbolSize: [15, 8], + symbolMargin: 1, + z: 10, + data: data, + symbolPosition: "start", + symbolOffset: [0, 3], + }, + { + barWidth: 15, + animation: false, + + type: "bar", + label: { + show: true, + position: "top", + textStyle: { + color: "#ffff", + }, + }, + itemStyle: { + color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [ + { offset: 1, color: "rgba(82, 180, 249, 0.35)" }, + { offset: 0, color: "rgba(82, 180, 249, 1)" }, + ]), + }, + data: yAxis, + }, + ], + } + + const chart = echarts.init(this.$refs.chart) + + chart.setOption(option) + window.addEventListener("resize", function () { + chart.resize() + }) + }, + }, +} +</script> + +<style lang="less" scoped> +.visit-count{ + width: 100%; + height: calc(100% - 30px); +} +</style> diff --git a/src/views/Thematic/index.vue b/src/views/Thematic/index.vue index 9c1473c..175b16d 100644 --- a/src/views/Thematic/index.vue +++ b/src/views/Thematic/index.vue @@ -4,7 +4,7 @@ <top class="title" ref="title"></top> <left class="mapleft" - :style="{ width: leftWidth, left: leftTree && leftWidth == '20%' ? '-14px' : '0' }" + :style="{ width: leftWidth, left: leftWidth == '22%' ? '-19px' : '0' }" ref="mapleft" ></left> <right @@ -28,7 +28,7 @@ components: { mapsdk, top, left, right, bottom }, data() { return { - leftWidth: "20%", + leftWidth: "22%", rightWidth: "22%", leftTree: false, currTree: false @@ -40,17 +40,17 @@ //淇敼宸︿晶瀹藉害 ChangeWidth(parm) { if (parm == "left") { - if (this.leftWidth == "20%") { + if (this.leftWidth == "22%") { this.leftWidth = "8px" } else { - this.leftWidth = "20%" + this.leftWidth = "22%" } } - // if (parm == "leftView" || parm == "leftTree") { - // this.leftWidth = "20%" - // this.rightWidth = "22%" - // } + if (parm == "leftView" || parm == "leftTree") { + this.leftWidth = "22%" + this.rightWidth = "22%" + } // if (parm == "leftView") { // this.leftTree = false // } -- Gitblit v1.9.3