用echarts写潮汐表,并处理后端传来的数据为潮汐表接口的数据

2023-05-16

 这是后端传来的接口类型:其中分别是今天,昨天,明天的数据,一天24个小时,分别为a0和a23表示;后端接口数据如下:

 

dom表单代码如下:

 <div class="tide">
      <div class="title">
        <div class="title_zh">潮汐表</div>
        <div class="title_en">TIDE TABLE</div>
      </div>
      <div class="wrap" v-loading="loading">
        <p class="echarts_title" v-html="echartsTitle"></p>
        <div class="tide_table" ref="tideEchartsElement"></div>
        <div class="btn_list clearfix">
          <div class="btn fl" :style="{ cursor: activeTime === 'yesterday' ? 'no-drop' : 'pointer' }" @click="handleChangeDay('yesterday')">前一天</div>
          <div class="btn time fl" @click="handleChangeDay('today')">{{ tideTime }}</div>
          <div class="btn fl" :style="{ cursor: activeTime === 'tomorrow' ? 'no-drop' : 'pointer' }" @click="handleChangeDay('tomorrow')">后一天</div>
        </div>
      </div>
    </div>
  </div>

 在公共数据区中定义:代码如下:

 在加载进入页面时在mounted方法中加载,this.getTideSearch()方法,在methods中调用getTideSearch方法,调用接口,用tideObj来接收对象数据,昨天的数据用yesterday: res.data[0].yesterday,来表示。


最后调用this.handleChangeDay('today')参数为'today'。在handleChangeDay(e)方法中传入参数e。用activeTime来接收,然后用data来接收tideObj对象,用arr来分别定义a0到a23,然后用arr.forEach((item, index) => {})来接收,最后用createTideEcharts方法来接收arr1, arr2, arr3。  

用echatrs来写的折线图:代码如下:

createTideEcharts(data) {
      const tideEchartsElement = this.$refs.tideEchartsElement, that = this;
      const xData = ['0:00', '1:00', '2:00', '3:00', '4:00', '5:00', '6:00', '7:00', '8:00', '9:00', '10:00', '11:00', '12:00', '13:00', '14:00', '15:00', '16:00', '17:00', '18:00', '19:00', '20:00', '21:00', '22:00', '23:00'];
      const color = ['#1f5b59', '#2a7d70', '#fa2424']
      const name = ['晚上潮水高度', '白天潮水高度']
      // const data = [
      //   [13.7, 3.4, 13.5, 16.1, 7.4, 15.2],
      //   [17.4, 13.7, 13.5, 3.4, 15.2, 13.5],
      //   [null, 7.4, 13.7, 13.5, 16.1]
      // ]
      const series = [];
      for (let i = 0; i < 6; i++) {
        series.push({
          name: name[i],
          type: 'line',
          smooth: true,
          showSymbol: false, // 是否显示 symbol, 如果 false 则只有在 tooltip hover 的时候显示
          itemStyle: {
            color: color[i],
            borderColor: color[i]
          },
          lineStyle: {
            width: 2,
            type: 'solid',
            opacity: 0.7
          },
          areaStyle: {
            // color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [{
            //   offset: 0,
            //   color: color[i]
            // }, {
            //   offset: 0.8,
            //   color: 'rgba(255,255,255,0)'
            // }], false),
            // shadowColor: 'rgba(255,255,255, 0.1)',
            shadowBlur: 10,
            opacity: 0.3
          },
          data: data[i]
        })
      }
      this.initCharts(tideEchartsElement, {
        legend: {
          bottom: 10,
          itemWidth: 43,
          itemHeight: 16,
          itemGap: 8,
          icon: 'roundRect',
          textStyle: {
            color: '#fff',
            fontSize: '10'
          },
          data: name
        },
        grid: {
          top: 10
        },
        tooltip: {
          trigger: 'axis',
          textStyle: {
            color: '#fff',
            fontSize: '20'
          },
          axisPointer: { // 坐标轴指示器,坐标轴触发有效
            type: 'line', // 默认为直线,可选为:'line' | 'shadow'
            lineStyle: {
              color: '#57617B'
            }
          },
          formatter: function (a) {
            let str = ''
            if (a[0].value === undefined) {
              str = `时间:${a[1].name}&nbsp&nbsp潮水高度:${a[1].value}米`;
            } else {
              str = `时间:${a[1].name}&nbsp&nbsp潮水高度:${a[0].value}米`;
            }
            that.echartsTitle = str;
          }
        },
        xAxis: [{
          type: 'category',
          axisLine: {
            lineStyle: {
              color: '#fff'
            }
          },
          splitLine: {
            show: false,
            lineStyle: {
              color: '#32346c '
            }
          },
          boundaryGap: false, // 坐标轴两边留白策略,类目轴和非类目轴的设置和表现不一样
          axisTick: {
            show: false
          },
          splitArea: {
            show: false
          },
          axisLabel: {
            inside: false,
            color: '#bac0c0',
            fontWeight: 'normal',
            fontSize: '12'
          },
          data: xData
        }],
        yAxis: {
          type: 'value',
          axisTick: {
            show: false
          },
          axisLine: {
            show: true,
            lineStyle: {
              color: '#fff'
            }
          },
          splitLine: {
            show: true,
            lineStyle: {
              color: '#fff',
              type: 'dashed'
            }
          },
          axisLabel: {
            color: '#bac0c0',
            fontWeight: 'normal',
            fontSize: '12',
            formatter: '{value}'
          }
        },
        series: series
      })
    },
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

用echarts写潮汐表,并处理后端传来的数据为潮汐表接口的数据 的相关文章

  • 常见优秀代码汇总

    汇总常见的编程习惯 1 语义简单明确 含义 xff1a 写代码时考虑读者 xff0c 优先采取易于读者理解的写法 define THROTL UNSET 2 define THROTL NO LIMIT 1 bool throttle is
  • 2021/7/20

    8 xff1a 30 9 xff1a 00 学习打卡 9 xff1a 30 13 xff1a 00 二招刷题 15 xff1a 00 19 xff1a 00 二招刷题 1 xff0c a题 给你一个长度为N的序列 xff0c 现在需要把他们
  • python可安装软件的制作

    一 生成可执行文件 xff08 exe 安装打包工具pyinstaller 第一种 xff1a 通过win 43 R打开cmd直接使用下面的命令安装即可 pip install pyinstaller 第二种 xff1a 下载pyinsta
  • 汇编常见指令

    文章目录 常见的运算类汇编指令add指令sub指令mul乘法指令div除法指令inc xff08 自增 xff09 xff08 即C语言 43 43 xff09 dec xff08 自减 xff09 xff08 即 xff09 push x
  • 使用阿里云服务器三分钟搭建网站

    目录 一 购买服务器 二 配置云服务器 三 下载XShell编辑器 四 使用XShell与服务器建立连接 五 安装宝塔 六 配置宝塔 七 配置多个站点 一 购买服务器 注意一定要购买CentOS内核的服务器 二 配置云服务器 购买云服务器之
  • STM32 ---寄存器点灯

    1 创建工程 处理器执行程序的时候怎么执行 处理器执行程序都是先执行汇编程序 xff0c 然后在汇编程序里面跳到主函数里面 xff0c 所以要先写好汇编程序 不过这个一般官方提供了 xff0c 只需把这个文件拷到我们的工程文件夹里面 接着将
  • QMessageBox 方法大全,各种弹窗的方法

    QMessageBox Ok xff1a 显示一个OK按钮 xff1b QMessageBox Open xff1a 显示一个打开文件的按钮 xff1b QMessageBox Save xff1a 显示一个保存文件的按钮 xff1b QM
  • 【Python实现视频转文字操作】

    一 安装moviepy模块 1 如果你用的PyCharm 导包的时候报错后 可以直接按Alt 43 Shift 43 Enter install moviepy 2 也可以在终端输入 pip install moviepy 前提是安装好了p
  • 谈论flutter和jetpack compose学习优先级的背后,Android开发有着怎样的一套进阶逻辑?

    前言 xff1a 在1982年的原版电影 银翼杀手 中 xff0c 人类已经发展出了一种人造的生命形式 xff0c 很难将它们与人类区分开来 这些 复制品 被用于危险的工作 xff0c 当它们开始反抗人类主人时 xff0c 一种被称为 刀锋
  • Android中的广播机制

    说明 xff1a 本文是郭霖 第一行代码 第3版 的读书笔记 6 1 广播机制简介 Android中的广播分为两种类型 xff1a 标准广播和有序广播 标准广播 xff1a 完全异步执行的广播 xff0c 在广播发出后 xff0c 所有的B
  • 各种常用默认的端口号

    端口号的范围是从1 xff5e 65535 其中1 xff5e 1024是被RFC 3232规定好了的 xff0c 被称作 众所周知的端口 Well Known Ports xff1b 从1025 xff5e 65535的端口被称为动态端口
  • 序号的结构层次顺序

    数字序号的级别顺序为 xff1a 第一层为汉字数字加顿号 xff0c 例如 xff1a 一 二 三 xff1b 第二层为括号中包含汉字数字 xff0c 例如 xff1a xff08 一 xff09 xff08 二 xff09 xff08 三
  • Abaqus双层混凝土梁三点抗弯(Explicit显式动力学)

    建模过程 1 part 部分 建立两层混凝土棱柱体和三个圆柱体 xff0c 并赋予材料属性 2 装配part xff0c 并在三个圆柱体圆心设立参考点 3 创建分析步 step中创建Dynamic Explicit Time period
  • Linux—生成随机密码

    Linux 小技巧 当我们需要设置十几位长度的密码时 xff0c 可能需要想半天 其实我们可以利用工具来直接生成随机的密码字符串 xff0c 这样又安全又方便 1 urandom 命令 span class token punctuatio
  • MySQL基础学习

    文章目录 MySQL基础学习1 数据库基本操作2 数据的查询2 2 1数据插入2 2 2 单表查询2 2 3 order by语句2 2 4 聚集函数 xff08 aggregate functions xff09 2 2 5 连接查询2
  • C++ 快速读入输出模板(竞赛专用)

    快输快读 xff0c 在算法竞赛中 xff0c 一定程度上可以减小程序的运行时间 xff1a 快读模板1 xff1a inline int read char c 61 getchar int x 61 0 f 61 1 for isdig
  • C#窗体应用实战项目——绩效考核管理系统

    笔者入门C xff0c 熟悉C 语法之后 xff0c 来做一个Winform项目巩固知识 xff0c 记录一下学习过程 一 什么是Winform WinForm 是 Windows Form 的简称 xff0c 是基于 NET Framew
  • Win10家庭版将中文用户名修改为英文用户名

    Win10家庭版将中文用户名修改为英文用户名 前言步骤 前言 由于同学重装系统把用户名设置成中文 win10系统在登陆时自动创建中文文件夹 xff0c 中文路径会影响一些软件的安装和使用 我总结了将中文名修改为英文名的办法 步骤 第一步 x
  • 【已解决】无法加载 DLL“xxx.dll”: 找不到指定的模块。 (异常来自 HRESULT:0x8007007E)。

    目录 异常背景及产生原因解决方法 异常 无法加载 DLL xxx dll 找不到指定的模块 异常来自 HRESULT 0x8007007E 背景及产生原因 C 中采用DLLImport静态调用同事用C 43 43 写的dll算法库时 xff
  • 简单几步实现Ubuntu22.04启用Nvidia显卡

    0 查看已存在的显卡 lspci span class token operator span span class token function grep span VGA 1 禁用之前的驱动 span class token funct

随机推荐