382 lines
10 KiB
Vue
382 lines
10 KiB
Vue
![]() |
<template>
|
|||
|
<div>
|
|||
|
<container4 title="总体经营情况">
|
|||
|
<el-date-picker slot="datePicker" v-model="dateRange" size="small" style="width: 240px" value-format="yyyy-MM-dd" type="daterange"
|
|||
|
range-separator="-" start-placeholder="开始日期" end-placeholder="结束日期"></el-date-picker>
|
|||
|
<div style="height:100%;width:100%;" ref="chart"></div>
|
|||
|
</container4>
|
|||
|
</div>
|
|||
|
|
|||
|
</template>
|
|||
|
|
|||
|
<script>
|
|||
|
import container4 from "../components/container4/index.vue";
|
|||
|
|
|||
|
import echarts from 'echarts'
|
|||
|
require('echarts/theme/macarons') // echarts theme
|
|||
|
import resize from '../../dashboard/mixins/resize'
|
|||
|
export default {
|
|||
|
mixins: [resize],
|
|||
|
name: 'bottom1',
|
|||
|
components: {
|
|||
|
container4,
|
|||
|
},
|
|||
|
data () {
|
|||
|
return {
|
|||
|
dateRange: [],
|
|||
|
chart: null,
|
|||
|
|
|||
|
option: {
|
|||
|
tooltip: {
|
|||
|
trigger: 'axis',
|
|||
|
axisPointer: { // 坐标轴指示器,坐标轴触发有效
|
|||
|
type: 'shadow' // 默认为直线,可选为:'line' | 'shadow'
|
|||
|
},
|
|||
|
formatter: function (params, ticket, callback) {
|
|||
|
console.log(params)
|
|||
|
var res = params[0].name;
|
|||
|
for (var i = 0, l = params.length; i < l; i++) {
|
|||
|
res += '<br/>' + params[i].seriesName + ' : ' + Math.abs(params[i].value);
|
|||
|
}
|
|||
|
return res;
|
|||
|
}
|
|||
|
},
|
|||
|
grid: {
|
|||
|
top: '5%',
|
|||
|
left: '3%',
|
|||
|
right: '40%',
|
|||
|
bottom: '3%',
|
|||
|
containLabel: true
|
|||
|
},
|
|||
|
legend: {
|
|||
|
right: 'center',
|
|||
|
data: ['收入', '利润', '目标完成'],
|
|||
|
textStyle: {
|
|||
|
color: '#fff'
|
|||
|
},
|
|||
|
},
|
|||
|
xAxis: {
|
|||
|
type: 'category',
|
|||
|
data: ['部门一', '部门二', '部门三', '部门四', '部门五', '部门六', '部门七'],
|
|||
|
splitLine: {
|
|||
|
show: false//不显示网格线
|
|||
|
},
|
|||
|
axisLine: {
|
|||
|
lineStyle: {
|
|||
|
color: 'rgb(255, 255, 255)'
|
|||
|
},
|
|||
|
}
|
|||
|
},
|
|||
|
yAxis: {
|
|||
|
type: 'value',
|
|||
|
splitLine: {
|
|||
|
show: false//不显示网格线
|
|||
|
},
|
|||
|
splitArea: {
|
|||
|
show: false//不显示网格区域
|
|||
|
},
|
|||
|
axisLine: {
|
|||
|
lineStyle: {
|
|||
|
color: 'rgb(255, 255, 255)'
|
|||
|
},
|
|||
|
}
|
|||
|
},
|
|||
|
series: [
|
|||
|
{
|
|||
|
name: '利润',
|
|||
|
type: 'bar',
|
|||
|
stack: 'total',
|
|||
|
data: [120, 132, 101, 134, 90, 230, 210],
|
|||
|
itemStyle: {
|
|||
|
color: 'rgb(116,212,184)',
|
|||
|
},
|
|||
|
// label: {
|
|||
|
// show : true,
|
|||
|
// position : 'top',
|
|||
|
// formatter : "{c}",
|
|||
|
// textStyle : {
|
|||
|
// color: '#fff'
|
|||
|
// }
|
|||
|
// }
|
|||
|
},
|
|||
|
{
|
|||
|
name: '收入',
|
|||
|
type: 'bar',
|
|||
|
stack: 'total',
|
|||
|
data: [320, 332, 301, 334, 390, 330, 320],
|
|||
|
barWidth: 30,
|
|||
|
itemStyle: {
|
|||
|
color: 'rgb(170,202,253)'
|
|||
|
},
|
|||
|
},
|
|||
|
{
|
|||
|
name: '目标完成',
|
|||
|
type: 'bar',
|
|||
|
stack: 'total',
|
|||
|
data: [220, 182, 191, 234, 290, 330, 310],
|
|||
|
itemStyle: {
|
|||
|
color: 'rgb(245,217,126)'
|
|||
|
},
|
|||
|
},
|
|||
|
|
|||
|
|
|||
|
// {
|
|||
|
// hoverAnimation: false,
|
|||
|
// type: 'pie',
|
|||
|
// radius: ['55%', '65%'],
|
|||
|
// center: ['75%', '50%'],
|
|||
|
// roseType: 'area',
|
|||
|
// itemStyle: {
|
|||
|
// borderRadius: 5,
|
|||
|
// color: 'rgb(245,217,126)',
|
|||
|
// },
|
|||
|
// data: [
|
|||
|
// { value: 30, name: '目标' },
|
|||
|
// ],
|
|||
|
// label: {
|
|||
|
// formatter: '{b}:{c}',
|
|||
|
// },
|
|||
|
// labelLine: {
|
|||
|
// showAbove: true,
|
|||
|
// length: -60,
|
|||
|
// length2: 145,
|
|||
|
// }
|
|||
|
// // label: {
|
|||
|
// // fontSize: 14,
|
|||
|
// // position: 'outer',
|
|||
|
// // alignTo: 'edge',
|
|||
|
// // margin: 10,
|
|||
|
// // },
|
|||
|
// // labelLine: {
|
|||
|
// // showAbove: true,
|
|||
|
// // }
|
|||
|
// },
|
|||
|
//进度线
|
|||
|
// {
|
|||
|
// type: "pie",
|
|||
|
// radius: ['55%', '65%'],
|
|||
|
// center: ['75%', '50%'],
|
|||
|
// itemStyle: {
|
|||
|
// borderRadius: 5,
|
|||
|
// color: 'rgb(245,217,126)',
|
|||
|
// },
|
|||
|
// hoverAnimation: false,
|
|||
|
// clockwise: false,
|
|||
|
// data: [
|
|||
|
// {
|
|||
|
// name: "",
|
|||
|
// value: 80, //进度
|
|||
|
// labelLine: {
|
|||
|
// show: false
|
|||
|
// },
|
|||
|
|
|||
|
// emphasis: {
|
|||
|
// labelLine: {
|
|||
|
// show: false
|
|||
|
// },
|
|||
|
// itemStyle: {
|
|||
|
// // color: "#5886f0"
|
|||
|
// }
|
|||
|
// }
|
|||
|
// },
|
|||
|
// {
|
|||
|
// //画剩余的刻度圆环
|
|||
|
// name: "",
|
|||
|
// value: 100 - 80,
|
|||
|
// clockwise: false,
|
|||
|
// itemStyle: {
|
|||
|
// color: "rgba(255,255,255,0)"
|
|||
|
// },
|
|||
|
// label: {
|
|||
|
// show: false
|
|||
|
// },
|
|||
|
// labelLine: {
|
|||
|
// show: false
|
|||
|
// },
|
|||
|
// emphasis: {
|
|||
|
// labelLine: {
|
|||
|
// show: false
|
|||
|
// },
|
|||
|
// itemStyle: {
|
|||
|
// color: "rgba(255,255,255,0)"
|
|||
|
// }
|
|||
|
// }
|
|||
|
// }
|
|||
|
// ],
|
|||
|
// label: {
|
|||
|
// formatter: '{b}:{c}',
|
|||
|
// },
|
|||
|
// labelLine: {
|
|||
|
// showAbove: true,
|
|||
|
// length: -60,
|
|||
|
// length2: 145,
|
|||
|
// }
|
|||
|
// },
|
|||
|
{
|
|||
|
name: '利润',
|
|||
|
type: 'pie',
|
|||
|
hoverAnimation: false,
|
|||
|
radius: ['55%', '65%'],
|
|||
|
center: ['75%', '50%'],
|
|||
|
labelLine: {
|
|||
|
length: 30
|
|||
|
},
|
|||
|
label: {
|
|||
|
formatter: '{b}:{c}',
|
|||
|
borderWidth: 1,
|
|||
|
borderRadius: 4,
|
|||
|
alignTo: 'edge',
|
|||
|
margin: '10'
|
|||
|
},
|
|||
|
itemStyle: {
|
|||
|
borderRadius: 5,
|
|||
|
color: 'rgb(116,212,184)'
|
|||
|
},
|
|||
|
data: [
|
|||
|
{ value: 10, name: '利润' },
|
|||
|
{
|
|||
|
//画剩余的刻度圆环
|
|||
|
name: "",
|
|||
|
value: 100 - 80,
|
|||
|
clockwise: false,
|
|||
|
itemStyle: {
|
|||
|
color: "rgba(255,255,255,0)"
|
|||
|
},
|
|||
|
label: {
|
|||
|
show: false
|
|||
|
},
|
|||
|
labelLine: {
|
|||
|
show: false
|
|||
|
},
|
|||
|
emphasis: {
|
|||
|
labelLine: {
|
|||
|
show: false
|
|||
|
},
|
|||
|
itemStyle: {
|
|||
|
color: "rgba(255,255,255,0)"
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
],
|
|||
|
},
|
|||
|
{
|
|||
|
name: '目标',
|
|||
|
type: 'pie',
|
|||
|
hoverAnimation: false,
|
|||
|
radius: ['40%', '50%'],
|
|||
|
center: ['75%', '50%'],
|
|||
|
labelLine: {
|
|||
|
length: 30
|
|||
|
},
|
|||
|
label: {
|
|||
|
formatter: '{b}:{c}',
|
|||
|
borderWidth: 1,
|
|||
|
borderRadius: 4,
|
|||
|
alignTo: 'edge',
|
|||
|
margin: '10'
|
|||
|
},
|
|||
|
itemStyle: {
|
|||
|
borderRadius: 5,
|
|||
|
color: 'rgb(245,217,126)'
|
|||
|
},
|
|||
|
data: [
|
|||
|
{ value: 80, name: '目标' },
|
|||
|
{
|
|||
|
//画剩余的刻度圆环
|
|||
|
name: "",
|
|||
|
value: 100 - 80,
|
|||
|
clockwise: false,
|
|||
|
itemStyle: {
|
|||
|
color: "rgba(255,255,255,0)"
|
|||
|
},
|
|||
|
label: {
|
|||
|
show: false
|
|||
|
},
|
|||
|
labelLine: {
|
|||
|
show: false
|
|||
|
},
|
|||
|
emphasis: {
|
|||
|
labelLine: {
|
|||
|
show: false
|
|||
|
},
|
|||
|
itemStyle: {
|
|||
|
color: "rgba(255,255,255,0)"
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
],
|
|||
|
},
|
|||
|
{
|
|||
|
name: '收入',
|
|||
|
type: 'pie',
|
|||
|
hoverAnimation: false,
|
|||
|
radius: ['70%', '80%'],
|
|||
|
center: ['75%', '50%'],
|
|||
|
labelLine: {
|
|||
|
length: 30
|
|||
|
},
|
|||
|
label: {
|
|||
|
formatter: '{b}:{c}',
|
|||
|
borderWidth: 1,
|
|||
|
borderRadius: 4,
|
|||
|
alignTo: 'edge',
|
|||
|
margin: '10'
|
|||
|
},
|
|||
|
itemStyle: {
|
|||
|
borderRadius: 5,
|
|||
|
color: 'rgb(170,202,253)'
|
|||
|
},
|
|||
|
data: [
|
|||
|
{ value: 60, name: '收入' },
|
|||
|
{
|
|||
|
//画剩余的刻度圆环
|
|||
|
name: "",
|
|||
|
value: 60,
|
|||
|
clockwise: false,
|
|||
|
itemStyle: {
|
|||
|
color: "rgba(255,255,255,0)"
|
|||
|
},
|
|||
|
label: {
|
|||
|
show: false
|
|||
|
},
|
|||
|
labelLine: {
|
|||
|
show: false
|
|||
|
},
|
|||
|
emphasis: {
|
|||
|
labelLine: {
|
|||
|
show: false
|
|||
|
},
|
|||
|
itemStyle: {
|
|||
|
color: "rgba(255,255,255,0)"
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
],
|
|||
|
}
|
|||
|
]
|
|||
|
}
|
|||
|
}
|
|||
|
},
|
|||
|
mounted () {
|
|||
|
this.$nextTick(() => {
|
|||
|
this.initChart()
|
|||
|
})
|
|||
|
},
|
|||
|
beforeDestroy () {
|
|||
|
if (!this.chart) {
|
|||
|
return
|
|||
|
}
|
|||
|
this.chart.dispose()
|
|||
|
this.chart = null
|
|||
|
},
|
|||
|
methods: {
|
|||
|
initChart () {
|
|||
|
this.chart = echarts.init(this.$refs.chart, 'macarons');
|
|||
|
this.chart.setOption(this.option);
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
</script>
|
|||
|
|
|||
|
<style lang="scss" scoped>
|
|||
|
</style>
|