|
@@ -3,34 +3,15 @@
|
|
|
</template>
|
|
|
|
|
|
<script>
|
|
|
+ import { visitDept, visitPerson } from '../../api'
|
|
|
import echarts from 'echarts'
|
|
|
|
|
|
export default {
|
|
|
name: "Mz_tx_charts",
|
|
|
data() {
|
|
|
return {
|
|
|
- dataArr: [
|
|
|
- {
|
|
|
- label: '南关区',
|
|
|
- value: 3000
|
|
|
- },
|
|
|
- {
|
|
|
- label: '朝阳区',
|
|
|
- value: 2000
|
|
|
- },
|
|
|
- {
|
|
|
- label: '二道区',
|
|
|
- value: 1000
|
|
|
- },
|
|
|
- {
|
|
|
- label: '绿园区',
|
|
|
- value: 500
|
|
|
- },
|
|
|
- {
|
|
|
- label: '高薪区',
|
|
|
- value: 300
|
|
|
- }
|
|
|
- ]
|
|
|
+ dataArr: [],
|
|
|
+ myChart: null
|
|
|
}
|
|
|
},
|
|
|
methods: {
|
|
@@ -43,126 +24,274 @@
|
|
|
});
|
|
|
}
|
|
|
return res;
|
|
|
- }
|
|
|
- },
|
|
|
- mounted() {
|
|
|
- const seriesArr = [];
|
|
|
- for(let i = 0; i < this.dataArr.length; i++) {
|
|
|
- const kkArr = new Array(length).fill({});
|
|
|
- kkArr[i] = { value: 100, symbolPosition: 'start' };
|
|
|
- let symbolImage = `image://${require('../../assets/index/y-text-4.png')}`;
|
|
|
- if(i < 4) {
|
|
|
- symbolImage = `image://${require('../../assets/index/y-text-' + (i + 1) + '.png')}`
|
|
|
+ },
|
|
|
+ getMaxValueOfArray(data) {
|
|
|
+ if(data == null || data.length == 0) {
|
|
|
+ return 0;
|
|
|
}
|
|
|
- seriesArr.push({
|
|
|
- type: 'pictorialBar',
|
|
|
- symbol: symbolImage,
|
|
|
- symbolSize: [24, 24],
|
|
|
- symbolOffset: [-40, -8],
|
|
|
- data: kkArr,
|
|
|
- label: {
|
|
|
- show: true,
|
|
|
- position: 'left',
|
|
|
- offset: [-19, -6],
|
|
|
- color: '#fff',
|
|
|
- fontSize: 14,
|
|
|
- formatter: `${ i + 1 }`
|
|
|
- },
|
|
|
- z: 2
|
|
|
- });
|
|
|
- }
|
|
|
+ let maxValue = data[0].value;
|
|
|
+ for(let i = 1; i < data.length; i++) {
|
|
|
+ if(maxValue < data[i].value) {
|
|
|
+ maxValue = data[i].value;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return maxValue;
|
|
|
+ },
|
|
|
+ async draw1(){
|
|
|
+ const result = await visitDept({}, 'POST');
|
|
|
+ this.dataArr = result;
|
|
|
|
|
|
- let myChart = this.$echarts.init(document.getElementById('myChartindex4'));
|
|
|
- myChart.setOption({
|
|
|
- grid: {
|
|
|
- top: '19%',
|
|
|
- bottom: '-8%',
|
|
|
- right: '0%',
|
|
|
- left: '15%',
|
|
|
- containLabel: true
|
|
|
- },
|
|
|
- xAxis: {
|
|
|
- show: false,
|
|
|
- max: 10000
|
|
|
- },
|
|
|
- yAxis: [{
|
|
|
- triggerEvent: true,
|
|
|
- show: true,
|
|
|
- inverse: true,
|
|
|
- data: this.getArrByKey(this.dataArr, 'label'),
|
|
|
- axisLine: {
|
|
|
- show: false
|
|
|
- },
|
|
|
- splitLine: {
|
|
|
- show: false
|
|
|
- },
|
|
|
- axisTick: {
|
|
|
- show: false
|
|
|
- },
|
|
|
- axisLabel: {
|
|
|
- show: false
|
|
|
+ const seriesArr = [];
|
|
|
+ for(let i = 0; i < this.dataArr.length; i++) {
|
|
|
+ const kkArr = new Array(length).fill({});
|
|
|
+ kkArr[i] = { value: 100, symbolPosition: 'start' };
|
|
|
+ let symbolImage = `image://${require('../../assets/index/y-text-4.png')}`;
|
|
|
+ if(i < 4) {
|
|
|
+ symbolImage = `image://${require('../../assets/index/y-text-' + (i + 1) + '.png')}`
|
|
|
+ }
|
|
|
+ seriesArr.push({
|
|
|
+ type: 'pictorialBar',
|
|
|
+ symbol: symbolImage,
|
|
|
+ symbolSize: [24, 24],
|
|
|
+ symbolOffset: [-40, -8],
|
|
|
+ data: kkArr,
|
|
|
+ label: {
|
|
|
+ show: true,
|
|
|
+ position: 'left',
|
|
|
+ offset: [-19, -6],
|
|
|
+ color: '#fff',
|
|
|
+ fontSize: 14,
|
|
|
+ formatter: `${ i + 1 }`
|
|
|
+ },
|
|
|
+ z: 2
|
|
|
+ });
|
|
|
}
|
|
|
- }, {
|
|
|
- triggerEvent: true,
|
|
|
- show: true,
|
|
|
- inverse: true,
|
|
|
- data: this.getArrByKey(this.dataArr, 'label'),
|
|
|
- axisLine: {
|
|
|
- show: false
|
|
|
- },
|
|
|
- splitLine: {
|
|
|
- show: false
|
|
|
- },
|
|
|
- axisTick: {
|
|
|
- show: false
|
|
|
- },
|
|
|
- axisLabel: {
|
|
|
- interval: 0,
|
|
|
- shadowOffsetX: '-20px',
|
|
|
- align: 'right',
|
|
|
- verticalAlign: 'bottom',
|
|
|
- lineHeight: 30,
|
|
|
- fontSize: 16,
|
|
|
- color: '#fff',
|
|
|
- formatter: (value, index) => {
|
|
|
- return this.dataArr[index].value + ' ';
|
|
|
- },
|
|
|
+
|
|
|
+ if(this.myChart != null) {
|
|
|
+ this.myChart.clear();
|
|
|
}
|
|
|
- }],
|
|
|
- series: [{
|
|
|
- type: 'bar',
|
|
|
- showBackground: true,
|
|
|
- barBorderRadius: 30,
|
|
|
- yAxisIndex: 0,
|
|
|
- data: this.dataArr,
|
|
|
- barWidth: 6,
|
|
|
- itemStyle: {
|
|
|
- color: () => {
|
|
|
- return new echarts.graphic.LinearGradient(0, 0, 1, 0, [{
|
|
|
- offset: 0,
|
|
|
- color: '#0023ff'
|
|
|
- }, {
|
|
|
- offset: 1,
|
|
|
- color: '#75c6ff'
|
|
|
- }]);
|
|
|
- },
|
|
|
- barBorderRadius: 30,
|
|
|
- },
|
|
|
- label: {
|
|
|
- normal: {
|
|
|
- color: '#00b8ff',
|
|
|
- show: true,
|
|
|
- position: [0, '-20px'],
|
|
|
- textStyle: {
|
|
|
- fontSize: 15
|
|
|
+
|
|
|
+ this.myChart = this.$echarts.init(document.getElementById('myChartindex4'));
|
|
|
+ this.myChart.setOption({
|
|
|
+ grid: {
|
|
|
+ top: '19%',
|
|
|
+ bottom: '-8%',
|
|
|
+ right: '0%',
|
|
|
+ left: '15%',
|
|
|
+ containLabel: true
|
|
|
+ },
|
|
|
+ xAxis: {
|
|
|
+ show: false,
|
|
|
+ max: this.getMaxValueOfArray(this.dataArr)
|
|
|
},
|
|
|
- formatter: function(a,) {
|
|
|
- return a.name;
|
|
|
+ yAxis: [{
|
|
|
+ triggerEvent: true,
|
|
|
+ show: true,
|
|
|
+ inverse: true,
|
|
|
+ data: this.getArrByKey(this.dataArr, 'label'),
|
|
|
+ axisLine: {
|
|
|
+ show: false
|
|
|
+ },
|
|
|
+ splitLine: {
|
|
|
+ show: false
|
|
|
+ },
|
|
|
+ axisTick: {
|
|
|
+ show: false
|
|
|
+ },
|
|
|
+ axisLabel: {
|
|
|
+ show: false
|
|
|
+ }
|
|
|
+ }, {
|
|
|
+ triggerEvent: true,
|
|
|
+ show: true,
|
|
|
+ inverse: true,
|
|
|
+ data: this.getArrByKey(this.dataArr, 'label'),
|
|
|
+ axisLine: {
|
|
|
+ show: false
|
|
|
+ },
|
|
|
+ splitLine: {
|
|
|
+ show: false
|
|
|
+ },
|
|
|
+ axisTick: {
|
|
|
+ show: false
|
|
|
+ },
|
|
|
+ axisLabel: {
|
|
|
+ interval: 0,
|
|
|
+ shadowOffsetX: '-20px',
|
|
|
+ align: 'right',
|
|
|
+ verticalAlign: 'bottom',
|
|
|
+ lineHeight: 30,
|
|
|
+ fontSize: 16,
|
|
|
+ color: '#fff',
|
|
|
+ formatter: (value, index) => {
|
|
|
+ return this.dataArr[index].value + ' ';
|
|
|
+ },
|
|
|
+ }
|
|
|
+ }],
|
|
|
+ series: [{
|
|
|
+ type: 'bar',
|
|
|
+ showBackground: true,
|
|
|
+ barBorderRadius: 30,
|
|
|
+ yAxisIndex: 0,
|
|
|
+ data: this.dataArr,
|
|
|
+ barWidth: 6,
|
|
|
+ itemStyle: {
|
|
|
+ color: () => {
|
|
|
+ return new echarts.graphic.LinearGradient(0, 0, 1, 0, [{
|
|
|
+ offset: 0,
|
|
|
+ color: '#0023ff'
|
|
|
+ }, {
|
|
|
+ offset: 1,
|
|
|
+ color: '#75c6ff'
|
|
|
+ }]);
|
|
|
+ },
|
|
|
+ barBorderRadius: 30,
|
|
|
+ },
|
|
|
+ label: {
|
|
|
+ normal: {
|
|
|
+ color: '#00b8ff',
|
|
|
+ show: true,
|
|
|
+ position: [0, '-20px'],
|
|
|
+ textStyle: {
|
|
|
+ fontSize: 15
|
|
|
+ },
|
|
|
+ formatter: function(a,) {
|
|
|
+ return a.name;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }, ...seriesArr]
|
|
|
+ });
|
|
|
+ },
|
|
|
+ async draw2(){
|
|
|
+ const result = await visitPerson({}, 'POST');
|
|
|
+ this.dataArr = result;
|
|
|
+
|
|
|
+ const seriesArr = [];
|
|
|
+ for(let i = 0; i < this.dataArr.length; i++) {
|
|
|
+ const kkArr = new Array(length).fill({});
|
|
|
+ kkArr[i] = { value: 100, symbolPosition: 'start' };
|
|
|
+ let symbolImage = `image://${require('../../assets/index/y-text-4.png')}`;
|
|
|
+ if(i < 4) {
|
|
|
+ symbolImage = `image://${require('../../assets/index/y-text-' + (i + 1) + '.png')}`
|
|
|
}
|
|
|
- }
|
|
|
+ seriesArr.push({
|
|
|
+ type: 'pictorialBar',
|
|
|
+ symbol: symbolImage,
|
|
|
+ symbolSize: [24, 24],
|
|
|
+ symbolOffset: [-40, -8],
|
|
|
+ data: kkArr,
|
|
|
+ label: {
|
|
|
+ show: true,
|
|
|
+ position: 'left',
|
|
|
+ offset: [-19, -6],
|
|
|
+ color: '#fff',
|
|
|
+ fontSize: 14,
|
|
|
+ formatter: `${ i + 1 }`
|
|
|
+ },
|
|
|
+ z: 2
|
|
|
+ });
|
|
|
}
|
|
|
- }, ...seriesArr]
|
|
|
- });
|
|
|
+
|
|
|
+ if(this.myChart != null) {
|
|
|
+ this.myChart.clear();
|
|
|
+ }
|
|
|
+
|
|
|
+ this.myChart = this.$echarts.init(document.getElementById('myChartindex4'));
|
|
|
+ this.myChart.setOption({
|
|
|
+ grid: {
|
|
|
+ top: '19%',
|
|
|
+ bottom: '-8%',
|
|
|
+ right: '0%',
|
|
|
+ left: '15%',
|
|
|
+ containLabel: true
|
|
|
+ },
|
|
|
+ xAxis: {
|
|
|
+ show: false,
|
|
|
+ max: this.getMaxValueOfArray(this.dataArr)
|
|
|
+ },
|
|
|
+ yAxis: [{
|
|
|
+ triggerEvent: true,
|
|
|
+ show: true,
|
|
|
+ inverse: true,
|
|
|
+ data: this.getArrByKey(this.dataArr, 'label'),
|
|
|
+ axisLine: {
|
|
|
+ show: false
|
|
|
+ },
|
|
|
+ splitLine: {
|
|
|
+ show: false
|
|
|
+ },
|
|
|
+ axisTick: {
|
|
|
+ show: false
|
|
|
+ },
|
|
|
+ axisLabel: {
|
|
|
+ show: false
|
|
|
+ }
|
|
|
+ }, {
|
|
|
+ triggerEvent: true,
|
|
|
+ show: true,
|
|
|
+ inverse: true,
|
|
|
+ data: this.getArrByKey(this.dataArr, 'label'),
|
|
|
+ axisLine: {
|
|
|
+ show: false
|
|
|
+ },
|
|
|
+ splitLine: {
|
|
|
+ show: false
|
|
|
+ },
|
|
|
+ axisTick: {
|
|
|
+ show: false
|
|
|
+ },
|
|
|
+ axisLabel: {
|
|
|
+ interval: 0,
|
|
|
+ shadowOffsetX: '-20px',
|
|
|
+ align: 'right',
|
|
|
+ verticalAlign: 'bottom',
|
|
|
+ lineHeight: 30,
|
|
|
+ fontSize: 16,
|
|
|
+ color: '#fff',
|
|
|
+ formatter: (value, index) => {
|
|
|
+ return this.dataArr[index].value + ' ';
|
|
|
+ },
|
|
|
+ }
|
|
|
+ }],
|
|
|
+ series: [{
|
|
|
+ type: 'bar',
|
|
|
+ showBackground: true,
|
|
|
+ barBorderRadius: 30,
|
|
|
+ yAxisIndex: 0,
|
|
|
+ data: this.dataArr,
|
|
|
+ barWidth: 6,
|
|
|
+ itemStyle: {
|
|
|
+ color: () => {
|
|
|
+ return new echarts.graphic.LinearGradient(0, 0, 1, 0, [{
|
|
|
+ offset: 0,
|
|
|
+ color: '#0023ff'
|
|
|
+ }, {
|
|
|
+ offset: 1,
|
|
|
+ color: '#75c6ff'
|
|
|
+ }]);
|
|
|
+ },
|
|
|
+ barBorderRadius: 30,
|
|
|
+ },
|
|
|
+ label: {
|
|
|
+ normal: {
|
|
|
+ color: '#00b8ff',
|
|
|
+ show: true,
|
|
|
+ position: [0, '-20px'],
|
|
|
+ textStyle: {
|
|
|
+ fontSize: 15
|
|
|
+ },
|
|
|
+ formatter: function(a,) {
|
|
|
+ return a.name;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }, ...seriesArr]
|
|
|
+ });
|
|
|
+ }
|
|
|
+ },
|
|
|
+ mounted() {
|
|
|
+ this.draw1();
|
|
|
}
|
|
|
}
|
|
|
</script>
|