Vue自定义标签页,并且在其中渲染Echarts图表
一、需求说明
1、点击标签按钮切换不同的echarts图表,考虑用Ant Design Vue,但是其样式无法自定义
2、div的整体布局样式使用tailwindcss,标签页的来回切换样式使用自定义的css样式
3、实现方案:
1) 页面初始化时,一个 div 显示折线图,另一个div显示柱状图。默认显示折现图,隐藏柱状图
2) 通过点击按钮控制两个 div 的显示和隐藏,并且来回切换按钮的样式
3) 即使连续点击同一个按钮也不会发生变化
4) js 中 动态控制 css 样式
5) 加载渲染图表时,出现需要点击两次按钮才能显示图表的情况,是因为隐藏div并且显示另一个div时,不能同时渲染echarts图表。解决方法是 调用时用 setTimeout 延迟加载
二、标签页功能实现
- 1、代码部分
<template>
<div class="w-full h-full flex flex-col">
<div class="w-full h-full flex flex-row">
<!-- class用动态样式 -->
<button @click="showChartLine" :class="`${btnLine}`">折线图</button>
<button @click="showChartBar" :class="`${btnBar}`">柱状图</button>
</div>
<div class="w-full h-4/5 bg-blue bg-opacity-80 flex flex-col">
<!-- 页面初始化时,先默认显示折现图,隐藏柱状图 -->
<div v-if="showLine" class="w-full h-full" id="line"></div>
<div v-else-if="showBar" class="w-full h-full" id="line"></div>
</div>
</div>
</template>
<script setup>
import { computed, ref } from "vue";
let showLine = ref(true);
let showBar = ref(false);
let isDisabled = ref(true);
// 初始化按钮的css样式变量
let btnLine = computed(() => {
return isDisabled ? "btn-Bule" : "btn-Grey";
});
let btnBar = computed(() => {
return !isDisabled ? "btn-Bule" : "btn-Grey";
});
// 按钮的点击函数。
// 加载渲染图表时,出现需要点击两次按钮才能显示图表的情况,是因为隐藏div并且显示另一个div时,不能同时渲染echarts图表
// 解决方法是 调用时用 setTimeout 延迟加载
function showChartLine(){
// 点击折现图时,先让柱状图隐藏,再让折线图显示
showBar.value = false;
showLine.value = true;
// 并且交换两个按钮的样式
btnBar._value = "btn-Grey";
btnLine._value = "btn-Bule";
// 调用画图函数
// toDrawLine();
}
function showChartBar(){
showLine.value = false;
showBar.value = true;
btnLine._value = "btn-Grey";
btnBar._value = "btn-Bule";
// toDrawBar();
}
</script>
<style>
.btn-Bule {
height: 100%;
width: 50%;
color: #03f5c7;
background-color: #17326b;
opacity: 0.8;
font-size: 1rem;
line-height: 1.5rem;
}
.btn-Grey {
height: 100%;
width: 50%;
color: #7f88ad;
background-color: #14264e;
opacity: 0.8;
font-size: 1rem;
line-height: 1.5rem;
}
</style>
Vue自定义标签页,并且在其中渲染Echarts图表的更多相关文章
- 剖析html对标准标签和自定义标签闭合与不闭合渲染问题
昨天在修改去年写的系统的时候无意中看到了当时写的一个利用标准标签未闭合在单元格内把整个单元格颜色渲染成红色的效果,如下: 当时的问题是从后台返回来的是个int整数而%是写在页面上的如图 这 时候就出现 ...
- Vue自定义标签
<!DOCTYPE html><html> <head> <meta charset="utf-8" /> <title> ...
- WebStorm开发Vue自定义标签提示是未知标签解决办法
打开 File -> Settings -> File Types 在右侧的窗口中找到Vue.js Template 并选中,在下面的窗口中添加 *.vue 即可解决问题. 修改后
- mpvue——动态渲染echarts图表
前言 使用mpvue-echarts来写图表,那个F2再提醒自己下要踩坑不能忘记.遇到了一个问题就是数据不能动态的去渲染,这个其实官方给了我们对应的方法 懒加载 代码 修改了调用initChart() ...
- Android学习笔记_41_TabHost自定义标签和TraceView性能测试
一.tabhost第一种用法,通过在帧布局放入定义好的page页面来实现,这样导致在当前activity下代码量比较大. 1.页面布局: | | | | ...
- vue单页面条件下添加类似浏览器的标签页切换功能
在用vue开发的时候,单页面应用程序,而又有标签页这种需求,各种方式实现不了, 从这个 到这个,然后再返回上面那个 因为每个标签页的route不一样,导致组件重新渲染的问题,怎么都不知道如何实现... ...
- 代码走查25条疑问 C# 跳转新的标签页 C#线程处理 .Net 特性 attribute 学习 ----自定义特性 看懂 ,学会 .NET 事件的正确姿势-简单版
代码走查25条疑问 代码走查(Code Review) 是一个开发人员与架构师集中讨论代码的过程.通过代码走查可以提高代码的 质量,同时减少Bug出现的几率.但是在小公司中并没有代码走查的过程在这 ...
- 【vue】vue中实现标签页
前言 tab标签页实现很多, 纯css实现, js实现等, 外加一些特殊动画. vue中实现标签页实现 keep-alive标签和is特性 vue-router中嵌套路由 is特性实现(推荐) 优点: ...
- vue 标签页以及标签页赋值
背景: 使用vue增加了标签页,点击不同标签页传给后端的值不一样,用来做区分,如图: vue代码如下: 使用 form.PageA form.PageB ,后端接收到的值 first.second ...
随机推荐
- JDBC基础篇(MYSQL)——PreparedStatement执行DML、DQL等
注意:其中的JdbcUtil是我自定义的连接工具类:代码例子链接: package day03.prepare; import java.sql.Connection; import java.sql ...
- OVN架构
原文地址 OVN架构 1.简介 OVN,即Open Virtual Network,是一个支持虚拟网络抽象的系统. OVN补充了OVS的现有功能,增加了对虚拟网络抽象的原生(native)支持,比如虚 ...
- Mybatis笔记(1)
一.Mabits简介 1.1 原始JDBC的分析 问题 ①数据库连接创建.释放频繁造成系统资源浪费从而影响系统性能 ②sql 语句在代码中硬编码,造成代码不易维护,实际应用 sql 变化的可能较大,s ...
- VS Code 1.60 发布!竟然可以自动检测编程语言了!
北京时间 2021 年 9 月 3 日凌晨,微软正式发布 2021 年 8 月版的 Visual Studio Code.希望您会喜欢此版本中的许多更新与改进,以下是其中的一些亮点: * 自动语言检测 ...
- 通过WebGoat学习java反序列化漏洞
首发于freebuff. WebGoat-Insecure Deserialization Insecure Deserialization 01 概念 本课程描述了什么是序列化,以及如何操纵它来执行 ...
- Echarts中Option属性设置
目录 一.title--标题组件 二.legend--图例组件 三.tooltip--提示框组件 四.grid--可用于调整图例在整个容器中的占位 五.xAxis--x 轴 六.yAxis-y 轴 七 ...
- 快速模式第三包收尾之quick_inI2()
快速模式第三包收尾之quick_inI2() 文章目录 快速模式第三包收尾之quick_inI2() 1. 序言 2. quick_inI2()处理流程图 3. 报文格式 4. quick_inI2( ...
- PyCharm--帮助文档
PyCharm官方文档翻译 PyCharm快捷键
- linux主机安全加固-个人经验
说明:我并没有一个系统的网络安全知识体系,随笔里面提到的内容是个人在从事运维行业这几年中总结出来的一点经验,仅供大家参考. 说到linux主机安全加固,我可以想到的就是三个方向吧,基线整改.访问控制和 ...
- go build 与go install
相同点都能生成可执行文件 不同点go build 不能生成包文件, go install 可以生成包文件go build 生成可执行文件在当前目录下, go install 生成可执行文件在bin目录 ...