|
@@ -1,247 +1,258 @@
|
|
|
<template>
|
|
|
- <div id="populationStructure">
|
|
|
- <img src="../../assets/png/renkoutuli.png" id="renkou">
|
|
|
- <div id="pop"></div>
|
|
|
- </div>
|
|
|
- </template>
|
|
|
-
|
|
|
- <script>
|
|
|
- import echarts from 'echarts'
|
|
|
- export default {
|
|
|
- props: ["data1"],
|
|
|
- name: 'populationStructure',
|
|
|
- components: {
|
|
|
- },
|
|
|
- data() {
|
|
|
- return {
|
|
|
-
|
|
|
+ <div id="populationStructure">
|
|
|
+ <img src="../../assets/png/renkoutuli.png" id="renkou">
|
|
|
+ <div id="pop"></div>
|
|
|
+ </div>
|
|
|
+</template>
|
|
|
+
|
|
|
+<script>
|
|
|
+ import echarts from 'echarts'
|
|
|
+ export default {
|
|
|
+ props: ["psdata"],
|
|
|
+ name: 'populationStructure',
|
|
|
+ components: {},
|
|
|
+ data() {
|
|
|
+ return {
|
|
|
+
|
|
|
+ }
|
|
|
+ },
|
|
|
+ mounted() {
|
|
|
+ let clear = setInterval(() => {
|
|
|
+ console.log("this.data", this.psdata)
|
|
|
+ if (this.psdata) {
|
|
|
+ this.init()
|
|
|
+ clearInterval(clear)
|
|
|
}
|
|
|
- },
|
|
|
- mounted() {
|
|
|
- setInterval(() => {
|
|
|
- console.log("this.data1",this.data1)
|
|
|
- }, 500);
|
|
|
-
|
|
|
- if(this.data1){
|
|
|
- this.init()
|
|
|
- }
|
|
|
- },
|
|
|
- watch:{
|
|
|
+ }, 500);
|
|
|
+ },
|
|
|
+ watch: {
|
|
|
+
|
|
|
+ },
|
|
|
+ methods: {
|
|
|
+ init() {
|
|
|
+ var myChart = echarts.init(document.getElementById('pop'));
|
|
|
+ var xData = ["18以下", "18-60", "60-80", "80以上"];
|
|
|
+ var yData = [];
|
|
|
+ var shadowYData = [];
|
|
|
|
|
|
- },
|
|
|
- methods: {
|
|
|
- init(){
|
|
|
- var myChart = echarts.init(document.getElementById('pop'));
|
|
|
- var xData = ["18以下", "18-60","60-80","80以上"];
|
|
|
- var yData = [];
|
|
|
- var shadowYData=[];
|
|
|
-
|
|
|
- this.data.map(c=>{
|
|
|
- this.yData[0]=this.data.filter(d=>d.name=="18岁以下")[0].male;
|
|
|
- this.yData[1]=this.data.filter(d=>d.name=="18-60岁")[0].male;
|
|
|
- this.yData[2]=this.data.filter(d=>d.name=="60-80岁")[0].male;
|
|
|
- this.yData[3]=this.data.filter(d=>d.name=="80岁以上")[0].male;
|
|
|
+ yData.push(this.psdata.filter(d => d.name == "18岁以下")[0].male);
|
|
|
+ yData.push(this.psdata.filter(d => d.name == "18-60岁")[0].male);
|
|
|
+ yData.push(this.psdata.filter(d => d.name == "60-80岁")[0].male);
|
|
|
+ yData.push(this.psdata.filter(d => d.name == "80岁以上")[0].male);
|
|
|
+
|
|
|
+ shadowYData.push(this.psdata.filter(d => d.name == "18岁以下")[0].total);
|
|
|
+ shadowYData.push(this.psdata.filter(d => d.name == "18-60岁")[0].total);
|
|
|
+ shadowYData.push(this.psdata.filter(d => d.name == "60-80岁")[0].total);
|
|
|
+ shadowYData.push(this.psdata.filter(d => d.name == "80岁以上")[0].total);
|
|
|
+
|
|
|
+ console.log("this.yData", this.yData)
|
|
|
+ console.log(this.shadowYData)
|
|
|
|
|
|
- this.shadowYData[0]=this.data.filter(d=>d.name=="18岁以下")[0].total;
|
|
|
- this.shadowYData[1]=this.data.filter(d=>d.name=="18-60岁")[0].total;
|
|
|
- this.shadowYData[2]=this.data.filter(d=>d.name=="60-80岁")[0].total;
|
|
|
- this.shadowYData[3]=this.data.filter(d=>d.name=="80岁以上")[0].total;
|
|
|
- });
|
|
|
- console.log("this.yData",this.yData)
|
|
|
- console.log(this.shadowYData)
|
|
|
-
|
|
|
//#0D53CC
|
|
|
- var color="#19dfdd";
|
|
|
- var shadowColor="#0b5767";
|
|
|
- var barWidth=15;
|
|
|
- var option = {
|
|
|
- // backgroundColor: '#05233b',
|
|
|
- "grid": {
|
|
|
- "top": "25%",
|
|
|
- "left": "-5%",
|
|
|
- "bottom": "5%",
|
|
|
- "right": "5%",
|
|
|
- "containLabel": true
|
|
|
- },
|
|
|
- animation: false,
|
|
|
- "xAxis": [{
|
|
|
- "type": "category",
|
|
|
- "data": xData,
|
|
|
- "axisTick": {
|
|
|
- "alignWithLabel": true
|
|
|
- },
|
|
|
- "nameTextStyle": {
|
|
|
- "color": "#82b0ec"
|
|
|
- },
|
|
|
- "axisLine": {
|
|
|
- show: false,
|
|
|
- "lineStyle": {
|
|
|
- "color": "#82b0ec"
|
|
|
- }
|
|
|
- },
|
|
|
- "axisLabel": {
|
|
|
- "textStyle": {
|
|
|
- "color": color
|
|
|
- },
|
|
|
- margin: 30
|
|
|
- }
|
|
|
- }],
|
|
|
- "yAxis": [{
|
|
|
- show: false,
|
|
|
- "type": "value",
|
|
|
- "axisLabel": {
|
|
|
- "textStyle": {
|
|
|
- "color": "#fff"
|
|
|
- },
|
|
|
- },
|
|
|
- "splitLine": {
|
|
|
- "lineStyle": {
|
|
|
- "color": "#0c2c5a"
|
|
|
- }
|
|
|
- },
|
|
|
- "axisLine": {
|
|
|
- "show": false
|
|
|
- }
|
|
|
- }],
|
|
|
- "series": [
|
|
|
- {
|
|
|
- "name": "数据上椭圆",
|
|
|
- type: 'pictorialBar',
|
|
|
- symbolSize: [barWidth, 10],
|
|
|
- symbolOffset: [0, -6],
|
|
|
- symbolPosition: 'end',
|
|
|
- z: 12,
|
|
|
- // "label": {
|
|
|
- // "normal": {
|
|
|
- // "show": true,
|
|
|
- // "position": "top",
|
|
|
- // fontSize: 14,
|
|
|
- // color: color,
|
|
|
- // formatter:function(params,index){
|
|
|
- // return params.value+"%";
|
|
|
- // }
|
|
|
- // }
|
|
|
- // },
|
|
|
- color: "#2DB1EF",
|
|
|
- data: yData
|
|
|
- },
|
|
|
- {
|
|
|
- name: '',
|
|
|
- type: 'pictorialBar',
|
|
|
- symbolSize: [barWidth, 10],
|
|
|
- symbolOffset: [0, 7],
|
|
|
- z: 12,
|
|
|
- "color": color,
|
|
|
- "data": yData
|
|
|
- },
|
|
|
- // {
|
|
|
- // name: '',
|
|
|
- // type: 'pictorialBar',
|
|
|
- // symbolSize: [barWidth+5, 15],
|
|
|
- // symbolOffset: [0, 12],
|
|
|
- // z: 10,
|
|
|
- // itemStyle: {
|
|
|
- // normal: {
|
|
|
- // color: 'transparent',
|
|
|
- // borderColor: color,
|
|
|
- // borderType: 'solid',
|
|
|
- // borderWidth: 1
|
|
|
- // }
|
|
|
- // },
|
|
|
- // data: yData
|
|
|
- // },
|
|
|
- // {
|
|
|
- // name: '',
|
|
|
- // type: 'pictorialBar',
|
|
|
- // symbolSize: [barWidth+10, 20],
|
|
|
- // symbolOffset: [0, 18],
|
|
|
- // z: 10,
|
|
|
- // itemStyle: {
|
|
|
- // normal: {
|
|
|
- // color: 'transparent',
|
|
|
- // borderColor: color,
|
|
|
- // borderType: 'solid',
|
|
|
- // borderWidth: 2
|
|
|
- // }
|
|
|
- // },
|
|
|
- // data: yData
|
|
|
- // },
|
|
|
- {
|
|
|
- type: 'bar',
|
|
|
- "barWidth": barWidth,
|
|
|
- barGap: '10%', // Make series be overlap
|
|
|
- barCateGoryGap: '10%',
|
|
|
- itemStyle: {
|
|
|
- normal: {
|
|
|
- color: new echarts.graphic.LinearGradient(0, 0, 0, 0.7, [{
|
|
|
- offset: 0,
|
|
|
- color: "rgba(13,83,204,.7)"
|
|
|
- },
|
|
|
- {
|
|
|
- offset: 1,
|
|
|
- color: "rgba(13,83,204,.2)"
|
|
|
- }
|
|
|
- ]),
|
|
|
- },
|
|
|
- },
|
|
|
- data: yData
|
|
|
- },
|
|
|
- {
|
|
|
- "name": "阴影椭圆",
|
|
|
- type: 'pictorialBar',
|
|
|
- symbolSize: [barWidth, 10],
|
|
|
- symbolOffset: [0, -6],
|
|
|
- symbolPosition: 'end',
|
|
|
- z: 12,
|
|
|
- "label": {
|
|
|
- "show": false,
|
|
|
- },
|
|
|
- color: shadowColor,
|
|
|
- data: shadowYData
|
|
|
- },
|
|
|
- {
|
|
|
- name:"阴影柱体",
|
|
|
- type: 'bar',
|
|
|
- "barWidth": barWidth,
|
|
|
- barCateGoryGap: '10%',
|
|
|
- "zlevel": -1,
|
|
|
- "barGap": "-100%",
|
|
|
- itemStyle: {
|
|
|
- color: shadowColor
|
|
|
- },
|
|
|
- data: shadowYData
|
|
|
- },
|
|
|
- ]
|
|
|
- };
|
|
|
+ var color = "#19dfdd";
|
|
|
+ var shadowColor = "#0b5767";
|
|
|
+ var barWidth = 15;
|
|
|
+ var option = {
|
|
|
+ // backgroundColor: '#05233b',
|
|
|
+ "grid": {
|
|
|
+ "top": "25%",
|
|
|
+ "left": "-5%",
|
|
|
+ "bottom": "5%",
|
|
|
+ "right": "5%",
|
|
|
+ "containLabel": true
|
|
|
+ },
|
|
|
+ animation: false,
|
|
|
+ "xAxis": [{
|
|
|
+ "type": "category",
|
|
|
+ "data": xData,
|
|
|
+ "axisTick": {
|
|
|
+ "alignWithLabel": true
|
|
|
+ },
|
|
|
+ "nameTextStyle": {
|
|
|
+ "color": "#82b0ec"
|
|
|
+ },
|
|
|
+ "axisLine": {
|
|
|
+ show: false,
|
|
|
+ "lineStyle": {
|
|
|
+ "color": "#82b0ec"
|
|
|
+ }
|
|
|
+ },
|
|
|
+ "axisLabel": {
|
|
|
+ "textStyle": {
|
|
|
+ "color": color
|
|
|
+ },
|
|
|
+ margin: 30
|
|
|
+ }
|
|
|
+ }],
|
|
|
+ "yAxis": [{
|
|
|
+ show: false,
|
|
|
+ "type": "value",
|
|
|
+ "axisLabel": {
|
|
|
+ "textStyle": {
|
|
|
+ "color": "#fff"
|
|
|
+ },
|
|
|
+ },
|
|
|
+ "splitLine": {
|
|
|
+ "lineStyle": {
|
|
|
+ "color": "#0c2c5a"
|
|
|
+ }
|
|
|
+ },
|
|
|
+ "axisLine": {
|
|
|
+ "show": false
|
|
|
+ }
|
|
|
+ }],
|
|
|
+ "series": [{
|
|
|
+ "name": "数据上椭圆",
|
|
|
+ type: 'pictorialBar',
|
|
|
+ symbolSize: [barWidth, 10],
|
|
|
+ symbolOffset: [0, -6],
|
|
|
+ symbolPosition: 'end',
|
|
|
+ z: 12,
|
|
|
+ // "label": {
|
|
|
+ // "normal": {
|
|
|
+ // "show": true,
|
|
|
+ // "position": "top",
|
|
|
+ // fontSize: 12,
|
|
|
+ // color: color,
|
|
|
+ // formatter:function(params,index){
|
|
|
+ // return params.value;
|
|
|
+ // }
|
|
|
+ // }
|
|
|
+ // },
|
|
|
+ color: "#2DB1EF",
|
|
|
+ data: yData
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: '',
|
|
|
+ type: 'pictorialBar',
|
|
|
+ symbolSize: [barWidth, 10],
|
|
|
+ symbolOffset: [0, 7],
|
|
|
+ z: 12,
|
|
|
+ "color": color,
|
|
|
+ "data": yData
|
|
|
+ },
|
|
|
+ // {
|
|
|
+ // name: '',
|
|
|
+ // type: 'pictorialBar',
|
|
|
+ // symbolSize: [barWidth+5, 15],
|
|
|
+ // symbolOffset: [0, 12],
|
|
|
+ // z: 10,
|
|
|
+ // itemStyle: {
|
|
|
+ // normal: {
|
|
|
+ // color: 'transparent',
|
|
|
+ // borderColor: color,
|
|
|
+ // borderType: 'solid',
|
|
|
+ // borderWidth: 1
|
|
|
+ // }
|
|
|
+ // },
|
|
|
+ // data: yData
|
|
|
+ // },
|
|
|
+ // {
|
|
|
+ // name: '',
|
|
|
+ // type: 'pictorialBar',
|
|
|
+ // symbolSize: [barWidth+10, 20],
|
|
|
+ // symbolOffset: [0, 18],
|
|
|
+ // z: 10,
|
|
|
+ // itemStyle: {
|
|
|
+ // normal: {
|
|
|
+ // color: 'transparent',
|
|
|
+ // borderColor: color,
|
|
|
+ // borderType: 'solid',
|
|
|
+ // borderWidth: 2
|
|
|
+ // }
|
|
|
+ // },
|
|
|
+ // data: yData
|
|
|
+ // },
|
|
|
+ {
|
|
|
+ type: 'bar',
|
|
|
+ "barWidth": barWidth,
|
|
|
+ barGap: '10%', // Make series be overlap
|
|
|
+ barCateGoryGap: '10%',
|
|
|
+ itemStyle: {
|
|
|
+ normal: {
|
|
|
+ color: new echarts.graphic.LinearGradient(0, 0, 0, 0.7, [{
|
|
|
+ offset: 0,
|
|
|
+ color: "rgba(13,83,204,.7)"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ offset: 1,
|
|
|
+ color: "rgba(13,83,204,.2)"
|
|
|
+ }
|
|
|
+ ]),
|
|
|
+ },
|
|
|
+ },
|
|
|
+ data: yData
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "name": "阴影椭圆",
|
|
|
+ type: 'pictorialBar',
|
|
|
+ symbolSize: [barWidth, 10],
|
|
|
+ symbolOffset: [0, -6],
|
|
|
+ symbolPosition: 'end',
|
|
|
+ z: 12,
|
|
|
+ "label": {
|
|
|
+ "show": false,
|
|
|
+ },
|
|
|
+ color: shadowColor,
|
|
|
+ data: shadowYData
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: "阴影柱体",
|
|
|
+ type: 'bar',
|
|
|
+ "barWidth": barWidth,
|
|
|
+ barCateGoryGap: '10%',
|
|
|
+ "zlevel": -1,
|
|
|
+ "barGap": "-100%",
|
|
|
+ itemStyle: {
|
|
|
+ color: shadowColor
|
|
|
+ },
|
|
|
+ // "label": {
|
|
|
+ // "normal": {
|
|
|
+ // "show": true,
|
|
|
+ // "position": "bottom",
|
|
|
+ // fontSize: 12,
|
|
|
+ // color: color,
|
|
|
+ // formatter:function(params,index){
|
|
|
+
|
|
|
+ // return params.value;
|
|
|
+ // }
|
|
|
+ // }
|
|
|
+ // },
|
|
|
+ data: shadowYData
|
|
|
+ },
|
|
|
+ ]
|
|
|
+ };
|
|
|
// 使用刚指定的配置项和数据显示图表。
|
|
|
myChart.setOption(option);
|
|
|
|
|
|
- }
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
- </script>
|
|
|
-
|
|
|
-
|
|
|
- <style scoped>
|
|
|
- #renkou{
|
|
|
+ }
|
|
|
+
|
|
|
+</script>
|
|
|
+
|
|
|
+
|
|
|
+<style scoped>
|
|
|
+ #renkou {
|
|
|
position: absolute;
|
|
|
width: 25%;
|
|
|
right: 10%;
|
|
|
- }
|
|
|
- #populationStructure{
|
|
|
- position: absolute;
|
|
|
- width: 100%;
|
|
|
- height: 25%;
|
|
|
- z-index: 2;
|
|
|
- top:75%;
|
|
|
-
|
|
|
}
|
|
|
- #pop{
|
|
|
+
|
|
|
+ #populationStructure {
|
|
|
+ position: absolute;
|
|
|
+ width: 100%;
|
|
|
+ height: 25%;
|
|
|
+ z-index: 2;
|
|
|
+ top: 75%;
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ #pop {
|
|
|
position: absolute;
|
|
|
width: 100%;
|
|
|
height: 100%;
|
|
|
/* background-color: rgb(0, 0, 255,0.4); */
|
|
|
}
|
|
|
- </style>
|
|
|
-
|
|
|
+
|
|
|
+</style>
|