|
|
@@ -0,0 +1,255 @@
|
|
|
+<template>
|
|
|
+ <div :class="className" :style="{height:height,width:width}"></div>
|
|
|
+</template>
|
|
|
+<script>
|
|
|
+import echarts from 'echarts'
|
|
|
+// require('echarts/theme/macarons') // echarts theme
|
|
|
+
|
|
|
+export default {
|
|
|
+ props: {
|
|
|
+ className: {
|
|
|
+ type: String,
|
|
|
+ default: 'chart'
|
|
|
+ },
|
|
|
+ width: {
|
|
|
+ type: String,
|
|
|
+ default: '100%'
|
|
|
+ },
|
|
|
+ height: {
|
|
|
+ type: String,
|
|
|
+ default: '240px'
|
|
|
+ },
|
|
|
+ chartData: {
|
|
|
+ type: Object
|
|
|
+ }
|
|
|
+ // autoResize: {
|
|
|
+ // type: Boolean,
|
|
|
+ // default: true
|
|
|
+ // }
|
|
|
+ },
|
|
|
+ data() {
|
|
|
+ return {
|
|
|
+ chart: null
|
|
|
+ }
|
|
|
+ },
|
|
|
+ watch: {
|
|
|
+ chartData: {
|
|
|
+ deep: true,
|
|
|
+ handler: function(val) {
|
|
|
+ if (!this.chart) {
|
|
|
+ return false
|
|
|
+ }
|
|
|
+ let chartData = JSON.parse(JSON.stringify(val))
|
|
|
+ this.setOptions(chartData)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ },
|
|
|
+ mounted() {
|
|
|
+ // this.initChart()
|
|
|
+ },
|
|
|
+ methods: {
|
|
|
+ initChart() {
|
|
|
+ let data = {
|
|
|
+ date: ['6.15', '6.16', '6.17', '6.18', '6.19', '6.20', '6.21'],
|
|
|
+ // accessNum: [10, 332, 301, 50, 390, 80, 320],
|
|
|
+ guestNum: [10, 332, 301, 50, 390, 80, 320]
|
|
|
+ }
|
|
|
+
|
|
|
+ // this.chart = echarts.init(this.$el, 'macarons')
|
|
|
+ this.chart = echarts.init(this.$el)
|
|
|
+ let chartData = JSON.parse(JSON.stringify(this.chartData))
|
|
|
+ // this.setOptions(chartData)
|
|
|
+ this.setOptions(data)
|
|
|
+ },
|
|
|
+ setOptions(chartData) {
|
|
|
+ this.chart.setOption({
|
|
|
+ // title: {
|
|
|
+ // text: '堆叠区域图'
|
|
|
+ // },
|
|
|
+ tooltip: {
|
|
|
+ trigger: 'axis',
|
|
|
+ axisPointer: {
|
|
|
+ type: 'cross',
|
|
|
+ label: {
|
|
|
+ backgroundColor: '#6a7985'
|
|
|
+ }
|
|
|
+ }
|
|
|
+ },
|
|
|
+ legend: {
|
|
|
+ x: 'right',
|
|
|
+ y: 'top',
|
|
|
+ data: ['获客数'],
|
|
|
+ textStyle: {
|
|
|
+ color: '#999'
|
|
|
+ }
|
|
|
+ },
|
|
|
+ grid: {
|
|
|
+ left: '3%',
|
|
|
+ right: '3%',
|
|
|
+ top: '30',
|
|
|
+ bottom: '0',
|
|
|
+ containLabel: true
|
|
|
+ },
|
|
|
+ xAxis: [
|
|
|
+ {
|
|
|
+ type: 'category',
|
|
|
+ boundaryGap: false,
|
|
|
+ axisLabel: {
|
|
|
+ show: true,
|
|
|
+ textStyle: {
|
|
|
+ color: 'rgba(153,153,153,1)' // 这里用参数代替了
|
|
|
+ }
|
|
|
+ },
|
|
|
+ axisLine: {
|
|
|
+ lineStyle: {
|
|
|
+ color: '#999' // 这里用参数代替了
|
|
|
+ }
|
|
|
+ },
|
|
|
+ axisTick: {
|
|
|
+ show: false
|
|
|
+ },
|
|
|
+ // 网格线
|
|
|
+ splitLine: {
|
|
|
+ show: true
|
|
|
+ },
|
|
|
+ data: chartData.date
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ yAxis: [
|
|
|
+ {
|
|
|
+ name: '金额(¥)',
|
|
|
+ type: 'value',
|
|
|
+ axisLabel: {
|
|
|
+ show: true,
|
|
|
+ textStyle: {
|
|
|
+ color: '#999' // 这里用参数代替了
|
|
|
+ }
|
|
|
+ },
|
|
|
+ axisLine: {
|
|
|
+ lineStyle: {
|
|
|
+ color: '#999' // 这里用参数代替了
|
|
|
+ }
|
|
|
+ },
|
|
|
+ axisTick: {
|
|
|
+ show: false
|
|
|
+ },
|
|
|
+ splitLine: {
|
|
|
+ show: true
|
|
|
+ }
|
|
|
+ }
|
|
|
+ // {
|
|
|
+ // name: '访问',
|
|
|
+ // type: 'value',
|
|
|
+ // axisLabel: {
|
|
|
+ // show: true,
|
|
|
+ // textStyle: {
|
|
|
+ // color: '#999' // 这里用参数代替了
|
|
|
+ // }
|
|
|
+ // },
|
|
|
+ // axisLine: {
|
|
|
+ // lineStyle: {
|
|
|
+ // color: '#999' // 这里用参数代替了
|
|
|
+ // }
|
|
|
+ // },
|
|
|
+ // axisTick: {
|
|
|
+ // show: false
|
|
|
+ // },
|
|
|
+ // splitLine: {
|
|
|
+ // show: false
|
|
|
+ // }
|
|
|
+ // }
|
|
|
+ ],
|
|
|
+ series: [
|
|
|
+ // 获客数
|
|
|
+ {
|
|
|
+ name: '获客数',
|
|
|
+ type: 'line',
|
|
|
+ smooth: true,
|
|
|
+ // stack: '总量',
|
|
|
+ yAxisIndex: 0,
|
|
|
+ itemStyle: {
|
|
|
+ normal: {
|
|
|
+ color: 'rgba(51, 133, 255, 1)' // 线颜色
|
|
|
+ }
|
|
|
+ },
|
|
|
+ lineStyle: {
|
|
|
+ normal: {
|
|
|
+ width: 2,
|
|
|
+ // color: {
|
|
|
+ // type: 'linear',
|
|
|
+
|
|
|
+ // colorStops: [
|
|
|
+ // {
|
|
|
+ // offset: 0,
|
|
|
+ // color: '#A9F387'
|
|
|
+ // },
|
|
|
+ // {
|
|
|
+ // offset: 1,
|
|
|
+ // color: '#48D8BF'
|
|
|
+ // }
|
|
|
+ // ],
|
|
|
+ // globalCoord: false
|
|
|
+ // },
|
|
|
+ shadowColor: 'rgba(0, 0, 0, 0.3)',
|
|
|
+ shadowBlur: 4,
|
|
|
+ shadowOffsetY: 4 }
|
|
|
+ },
|
|
|
+ // areaStyle: {
|
|
|
+ // normal: {
|
|
|
+ // color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
|
|
|
+ // {
|
|
|
+ // // 折线图颜色渐变
|
|
|
+ // offset: 0,
|
|
|
+ // color: 'rgba(76,116,229,0.6)'
|
|
|
+ // },
|
|
|
+ // {
|
|
|
+ // offset: 1,
|
|
|
+ // color: 'rgba(76,116,229,0.01)'
|
|
|
+ // }
|
|
|
+ // ])
|
|
|
+ // }
|
|
|
+ // },
|
|
|
+ data: chartData.guestNum
|
|
|
+ }
|
|
|
+ // 访问量
|
|
|
+ // {
|
|
|
+ // name: '访问量',
|
|
|
+ // type: 'line',
|
|
|
+ // // stack: '总量',
|
|
|
+ // yAxisIndex: 1,
|
|
|
+ // // label: {
|
|
|
+ // // normal: {
|
|
|
+ // // show: true,
|
|
|
+ // // position: 'top'
|
|
|
+ // // }
|
|
|
+ // // },
|
|
|
+ // itemStyle: {
|
|
|
+ // normal: {
|
|
|
+ // color: 'rgba(255,105,0,1)' // 线颜色
|
|
|
+ // }
|
|
|
+ // },
|
|
|
+ // areaStyle: {
|
|
|
+ // normal: {
|
|
|
+ // color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
|
|
|
+ // {
|
|
|
+ // // 折线图颜色渐变
|
|
|
+ // offset: 0,
|
|
|
+ // color: 'rgba(255,105,0,0.6)'
|
|
|
+ // },
|
|
|
+ // {
|
|
|
+ // offset: 1,
|
|
|
+ // color: 'rgba(255,105,0,0.01)'
|
|
|
+ // }
|
|
|
+ // ])
|
|
|
+ // }
|
|
|
+ // },
|
|
|
+ // data: chartData.accessNum
|
|
|
+ // }
|
|
|
+ ]
|
|
|
+ })
|
|
|
+ }
|
|
|
+ },
|
|
|
+
|
|
|
+ filters: {}
|
|
|
+}
|
|
|
+</script>
|