
- <template>
- <view>
- <view :prop="option1" :change:prop="echarts.updateEcharts1" id="echarts1"
- class="echarts">view>
- <view :prop="option2" :change:prop="echarts.updateEcharts2" id="echarts2"
- class="echarts">view>
- view>
-
- template>
-
- <script>
- export default {
- data() {
- return {
- option1: '',
- option2: '',
- }
- },
- mounted() {
- this.getData(); // 在组件挂载后调用获取数据的方法
- },
- methods: {
- getData() {
- uni.request({
- url: getApp().globalData.position + 'Other/select_sale_ekanbaninfo',
- data: {},
- header: {
- "Content-Type": "application/x-www-form-urlencoded"
- },
- method: 'POST',
- dataType: 'json',
- success: res => {
- //行1:年月日总额统计
- this.line1_info = res.data;
- //行2:周统计
- var weekinfo = res.data.week_info;
- this.weekinfo = weekinfo;
- //行2:月统计
- var monthinfo = res.data.month_info;
- this.monthinfo = monthinfo;
- //行2:年统计
- var yearinfo = res.data.year_info;
- this.yearinfo = yearinfo;
- console.log(this.yearinfo)
- //显示图表
- this.echart();
- },
- fail(res) {
- console.log("查询失败")
- }
- });
- },
- echart() {
- //月统计
- // 提取日期和对应的值
- var dates1 = this.monthinfo.date;
- var values1 = this.monthinfo.total_amount;
- var months1 = ["01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12"];
- var months1_chinese = ["1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月"];
- this.option1 = {
- //配置网格组件,用于定义图表的位置和大小
- grid: {
- top: '15%', // 增加top的值来创建间距
- left: '2%',
- right: '2%',
- bottom: '2%', // 增加bottom的值来创建间距
- containLabel: true, //自动计算并包含坐标轴标签、刻度和标题等内容在内。
- },
- color: ['#5588d4'],
- tooltip: {
- trigger: 'item',
- axisPointer: {
- type: 'line'
- },
- formatter: function(params) {
- var value = values1[params.dataIndex];
- var date = dates1[params.dataIndex];
- var month = months1_chinese[params.dataIndex];
- var marker = params.marker; // 添加marker(小圆点)
- return marker + ' ' + date + '
' + month + ' : ' + value + '万元'; - }
- },
- xAxis: {
- // name: '日期',
- data: months1,
- axisLine: {
- show: false // 隐藏纵坐标轴的横线
- },
- //隐藏小刻度短线
- axisTick: { // x轴刻度相关配置
- show: false, // 是否显示x轴刻度线
- },
- nameTextStyle: {
- fontSize: 12 // 设置横轴名称字体大小为12
- }
- },
- yAxis: {
- name: '金额(万元)',
- splitLine: {
- show: false // 隐藏纵坐标轴的背景横线
- },
- axisLine: {
- show: false // 隐藏纵坐标轴的竖线
- },
- //隐藏小刻度短线
- axisTick: { // x轴刻度相关配置
- show: false, // 是否显示x轴刻度线
- },
- axisLabel: {
- fontSize: 12 // 设置横轴标签字体大小为12
- },
- nameTextStyle: {
- fontSize: 12 // 设置横轴名称字体大小为12
- }
- },
- series: [{
- barWidth: '6',
- name: '销量',
- type: 'bar',
- data: values1,
- itemStyle: {
- show: true,
- position: 'top',
- textStyle: {
- // color: '#515dc3',
- fontSize: 12
- }
- }
- }]
- }
- //近五年年统计
- // 提取日期和对应的值
- var dates2 = this.yearinfo.date;
- var values2 = this.yearinfo.total_amount;
- // 进行图表的配置和数据处理
- this.option2 = {
- //配置网格组件,用于定义图表的位置和大小
- grid: {
- top: '15%', // 增加top的值来创建间距
- left: '2%',
- right: '2%',
- bottom: '2%', // 增加bottom的值来创建间距
- containLabel: true, //自动计算并包含坐标轴标签、刻度和标题等内容在内。
- },
- color: ['#71aa77'],
- tooltip: {
- trigger: 'item',
- axisPointer: {
- type: 'line'
- },
- formatter: function(params) {
- var value = values2[params.dataIndex];
- var date = dates2[params.dataIndex];
- var marker = params.marker; // 添加marker(小圆点)
- return marker + ' ' + date + '年' + '
' + value + '万元'; - }
- },
- xAxis: {
- // name: '日期',
- data: dates2,
- axisLine: {
- show: false // 隐藏纵坐标轴的横线
- },
- //隐藏小刻度短线
- axisTick: { // x轴刻度相关配置
- show: false, // 是否显示x轴刻度线
- },
- nameTextStyle: {
- fontSize: 12 // 设置横轴名称字体大小为12
- }
- },
- yAxis: {
- name: '金额(万元)',
- splitLine: {
- show: false // 隐藏纵坐标轴的背景横线
- },
- axisLine: {
- show: false // 隐藏纵坐标轴的竖线
- },
- //隐藏小刻度短线
- axisTick: { // x轴刻度相关配置
- show: false, // 是否显示x轴刻度线
- },
- axisLabel: {
- fontSize: 12 // 设置横轴标签字体大小为12
- },
- nameTextStyle: {
- fontSize: 12 // 设置横轴名称字体大小为12
- }
- },
- series: [{
- barWidth: '8',
- name: '销量',
- type: 'bar',
- data: values2,
- itemStyle: {
- normal: {
- label: {
- show: true,
- position: 'top',
- textStyle: {
- // color: '#515dc3',
- fontSize: 12
- }
- }
- }
- }
- }]
- }
-
-
- }
- }
- }
- script>
- <script module="echarts" lang="renderjs">
- let myChart1
- let myChart2
- export default {
- mounted() {
- // 首先判断window.echarts是否存在,如果存在则调用initEcharts1方法进行初始化。
- if (typeof window.echarts === 'function') {
- this.initEcharts1()
- this.initEcharts2()
- } else {
- // 如果不存在,则动态创建一个