| | |
| | | </template> |
| | | |
| | | <script> |
| | | import 'echarts' |
| | | import echarts from'echarts' |
| | | import 'echarts/lib/chart/line' |
| | | import 'echarts/lib/chart/pie' |
| | | import 'echarts/lib/chart/bar' |
| | | import 'echarts/lib/component/tooltip' |
| | | import 'echarts/lib/component/title' |
| | | import 'echarts/lib/component/legend' |
| | | |
| | | export default { |
| | | name: "mixCart", |
| | | name: "stackedAreaChart", |
| | | props: { |
| | | mixData: { |
| | | type: Array, |
| | |
| | | data() { |
| | | return { |
| | | chartOptions: { |
| | | color: ['#84C9E5', '#F68686'], |
| | | title: { |
| | | text: "", |
| | | text: '', |
| | | }, |
| | | grid: { |
| | | left: "3%", |
| | |
| | | tooltip: { |
| | | trigger: "axis", |
| | | axisPointer: { |
| | | type: "shadow", |
| | | }, |
| | | type: "cross" |
| | | } |
| | | }, |
| | | legend: { |
| | | data: ["总量", "新增"], |
| | | left: "center", |
| | | textStyle: { |
| | | fontSize: 14 // 调整字体大小 |
| | | } |
| | | data: ['总量', '新增'] |
| | | }, |
| | | xAxis: { |
| | | type: "category", |
| | | boundaryGap: false, |
| | | data: [ |
| | | "一月", |
| | | "二月", |
| | |
| | | yAxis: { |
| | | type: "value", |
| | | }, |
| | | series: [], |
| | | }, |
| | | series: [ |
| | | |
| | | ] |
| | | } |
| | | }; |
| | | }, |
| | | watch: { |
| | |
| | | immediate: true, |
| | | handler(newval, oldval) { |
| | | if (newval) { |
| | | const colors = ["#2eadd6", "#db3c3c"]; |
| | | |
| | | const seriesData = newval.map((data, index) => ({ |
| | | name: index === 0 ? "总量" : "新增", |
| | | type: index === 0 ? "bar" : "line", |
| | | stack: index === 0 ? "总量" : null, |
| | | data: data.map(value => ({value})), |
| | | barWidth: 68, |
| | | label: { |
| | | show: true, |
| | | position: "top" |
| | | }, |
| | | itemStyle: { |
| | | color: colors[index] |
| | | const series = newval.map((data, index) => ({ |
| | | name: index === 0 ? '总量' : '新增', |
| | | type: 'line', |
| | | showSymbol: false,//是否显示折线上的标记点 |
| | | smooth: true,//平滑度 |
| | | areaStyle: { |
| | | opacity: 1, //透明度 |
| | | }, |
| | | emphasis: { |
| | | focus: "series" |
| | | } |
| | | focus: 'series' |
| | | }, |
| | | stack: index === 0 ? '总量' : '新增', // 根据 index 区分总量和新增的堆叠情况 |
| | | data: data.map(value => ({value})), |
| | | label: { |
| | | show: true, |
| | | position: 'top' |
| | | }, |
| | | })); |
| | | |
| | | this.chartOptions.series = seriesData; |
| | | this.chartOptions.series = series; |
| | | } |
| | | }, |
| | | } |
| | | }, |
| | | chartName:{ |
| | | handler(newval,oldval){ |
| | | if(newval){ |
| | | chartName: { |
| | | handler(newval, oldval) { |
| | | if (newval) { |
| | | this.chartOptions.title.text = newval + "数据统计" |
| | | } |
| | | }, |
| | | immediate:true, |
| | | deep:true |
| | | immediate: true, |
| | | deep: true |
| | | } |
| | | }, |
| | | } |
| | | }; |
| | | </script> |
| | | |