导航栏,封装Api接口,数据处理 过滤器,Echarts使用(二)

news2024/9/28 21:19:24

文章目录

  • 一、左侧导航栏
    • El的元素颜色重写
    • 导航开启router模式
    • 导航栏折叠(兄弟页面传数据 借助父亲)
  • 二、封装请求的Api接口
    • 接口地址管理
    • 配置跨域
  • 三、数据处理 过滤器
  • 四、使用Echarts
    • Demo: 使用 ECharts
    • 项目中使用Echarts

接上篇(一),简单的知识直接过滤了,所以记录并不是那么全,适合当做个人笔记参考哈,如果想学基础,还是要系统性的学习。

这篇之后都是一些简单的控件的使用了,就不多记录啦。想看项目源码的可以私信我哈。

一、左侧导航栏

刚开始菜单是写死的,等到后期会将菜单与权限相结合,通过权限获取自定义的菜单,
直接Element复制喜欢的菜单到menu下index页面
在这里插入图片描述

在这里插入图片描述

El的元素颜色重写

颜色可以自己搭配。对于el的元素颜色进行重写,使用选择器选中
在这里插入图片描述
找到要修改元素的样式,在css中重写即可
在这里插入图片描述
这样border-right就为你新修改的值。

导航开启router模式

在这里插入图片描述
el-menu中添加router
在这里插入图片描述
default-active为默认打开并高亮的页面路由,将default-active改为:default-active="$route.path"为动态高亮,点击哪个菜单哪个菜单高亮,并且刷新的时候仍会停留在这个页面。
在这里插入图片描述

导航栏折叠(兄弟页面传数据 借助父亲)

先看下页面折叠的事件,通过collaspe属性控制,并且由样式决定宽度:
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
如果菜单属性中没有collapse属性的话(不折叠),宽度为200px,否则为默认(注意在刚开始有定义过菜单宽度,要去掉)

通过content中的按钮点击事件控制左侧导航栏中的状态
因为他们没有在同一个页面:
在这里插入图片描述

在这里插入图片描述
所以可以通过父页面进行传参,来控制状态,可以直接在父元素定义参数:
在这里插入图片描述
子页面:在这里插入图片描述
定义content中的点击事件:
content调用父页面的事件,将值isCollapse进行取反

父页面:
在这里插入图片描述

在这里插入图片描述

content页面:
在这里插入图片描述

拓展:
this.$emit(‘事件’,参数)
用于当子组件需要调用父组件的方法的场景下使用。
与之相对的当父组件需要调用子组件时则使用this.$refs的方法
this.$refs.子组件的ref.子组件的方法

content动态宽度
在这里插入图片描述

在content进行动态样式绑定
父页面:
在这里插入图片描述
content页面样式在这里插入图片描述isCollapse为true时激活content中的small样式。这样动画效果就完成了。

二、封装请求的Api接口

接口地址管理

src下新建api文件夹并且新建base.js和index.js
在这里插入图片描述
base.js:
配置接口地址并导出
在这里插入图片描述
index.js
在这里插入图片描述
axios为封装好的方法,可直接复制:
request.js:

/* 
    对axios网络请求方法 进行二次封装 

    简单封装:
        不改变本身的功能 继续扩展新的功能

    企业封装好了:
        项目已经创建完毕 
        
    
*/
//先导入需要的axios模块
import axios from 'axios'
import qs from 'querystring'
//可以使用自定义配置新建一个 axios 实例  axios.create([config])
const instance = axios.create({
    //发送请求的公共的基础路径接口位置 
    // baseURL: 'http://iwenwiki.com',//配置请求的基础路径
    //如果是打包的项目 请求的接口的基本的网络地址就是 配置在环境变量的了  VUE_APP_BASE_API
    baseURL:process.env.NODE_ENV=='production'?process.env.VUE_APP_BASE_API:'',
    timeout: 5000,//请求设置超时时间 单位毫秒 5s超时 接口请求5s没有响应数据 停止请求
})

// 添加请求拦截器
instance.interceptors.request.use(function (config) {//config发送请求的配置参数信息
    //config可以判断请求的方式get/post 请求url参数地址 headers请求头配置 参数data发送的数据等信息
    // console.log('config-请求拦截器',config);
    //对post请求处理参数
    if(config.method =='post'){
        config.data = qs.stringify(config.data)
    }
    // 在发送请求之前做些什么--对post请求参数 处理字符串拼接
    return config;
  }, function (error) {
    // 对请求错误做些什么
    return Promise.reject(error);
});


// 添加响应拦截器 -- 对错误的数据处理参数
//网络请求常见错误信息 
// 404 地址接口错误  500 505 服务器错误 200 成功  300 重定向 
instance.interceptors.response.use(function (response) {
    // 对响应数据做点什么
    return response;
  }, function (error) {
    console.log('error',error);
    // 对响应错误做点什么
    const { response } = error;
    //response.status 错误状态   500 服务器错误  response.info 信息提示
    errorHandle(response.status,response.info)
    // return Promise.reject(error);
});

//错误响应处理提示信息
function errorHandle(status,info){
    switch(status){
        case 400:
            console.log("400-表示请求报文中存在语法错误");
            break;
        case 401:
            console.log("401-未经许可,需要通过HTTP认证");
            break;
        case 403:
            console.log("403-服务器拒绝该次访问(访问权限出现问题)");
            break;
        case 404:
            console.log("404-表示服务器上无法找到请求的资源");
            break;
        case 500:
            console.log("500-表示服务器在执行请求时发生了错误");
            break;
        case 503:
            console.log("503-表示服务器暂时处于超负载或正在进行停机维护");
            break;
        case 504:
            console.log("504-(网关超时)  服务器作为网关或代理,但是没有及时从上游服务器收到请求");
            break;
        default:
            console.log(info);
            break;
    }
}



//导出请求
export default instance

将封装好的Api挂到全局:
main.js中加入
在这里插入图片描述

配置跨域

在vue.config.js中进行配置
在这里插入图片描述
接口调用:
可以在页面直接调用api
在这里插入图片描述

拓展:
async异步调用,async和await,比起星号和yield,语义更清楚了。async表示函数里有异步操作,await表示紧跟在后面的表达式需要等待结果。

结果:

在这里插入图片描述

三、数据处理 过滤器

新建过滤器
在这里插入图片描述
过滤器为num方法,将数据格式进行转换。
使用管道符调用:
在这里插入图片描述
效果:
在这里插入图片描述

四、使用Echarts

参照Echarts官网:https://echarts.apache.org/handbook/zh/get-started/

你可以使用如下命令通过 npm 安装 ECharts

npm install echarts --save

Demo: 使用 ECharts

import * as echarts from 'echarts';

// 基于准备好的dom,初始化echarts实例
var myChart = echarts.init(document.getElementById('main'));
// 绘制图表
myChart.setOption({
  title: {
    text: 'ECharts 入门示例'
  },
  tooltip: {},
  xAxis: {
    data: ['衬衫', '羊毛衫', '雪纺衫', '裤子', '高跟鞋', '袜子']
  },
  yAxis: {},
  series: [
    {
      name: '销量',
      type: 'bar',
      data: [5, 20, 36, 10, 10, 20]
    }
  ]
});

项目中使用Echarts

你可以使用如下命令通过 npm 安装 ECharts

npm install echarts --save

在全局引入或者在使用的页面引入
全局main.js:
在这里插入图片描述

或者页面引入:
在这里插入图片描述
准备dom元素
在这里插入图片描述
绘制
在这里插入图片描述

在这里插入图片描述

效果
在这里插入图片描述
更多参数参考官网的配置项手册:
https://echarts.apache.org/zh/option.html#title
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/711894.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

时序预测 | MATLAB实现BO-NARX贝叶斯优化非线性自回归外生模型股票价格预测

时序预测 | MATLAB实现BO-NARX贝叶斯优化非线性自回归外生模型股票价格预测 目录 时序预测 | MATLAB实现BO-NARX贝叶斯优化非线性自回归外生模型股票价格预测效果一览基本介绍研究过程程序设计参考资料效果一览

好视力、南卡、欧普护眼台灯哪个护眼效果更出色?看完这篇测评你就明白了

现在的孩子,学习任务都非常繁重,想想我们小时候基本上没什么作业,但是现在的孩子感觉每天都有做不完的功课和试卷,除此之外,还有家长给报的各种学习班、技艺班,为了一个更好的前途,这也是没办法…

office 2003 default regedit

office版本这么多,感觉还是2003简单,唉 "D:\Microsoft-Office-2003\OFFICE11\EXCEL.EXE" /regserver "D:\Microsoft-Office-2003\OFFICE11\WINPROJ.EXE" /regserver "D:\Microsoft-Office-2003\OFFICE11\POWERPNT.exe" /r…

IDEA恢复误删除的文件

idea将删除的文件放在idea文件缓存中,文件的更改等信息都放在这个缓存中,所以短时间内删除的文件可以尝试恢复。

每日一面系列-spring中@Autowired 和 @Resource 区别?

Autowired注解是由Spring提供的,它可以用来对构造方法、成员变量及方法参数进行标注,它能够根据对象类型完成自动注入,代码如下。 public class Service {// 构造方法注入 Autowired public Service(Service service) { this.s…

0122 绪论

目录 1.绪论 1.1数据结构的基本概念 1.1部分习题 1.2算法和算法评价 1.2部分习题 1.绪论 1.1数据结构的基本概念 数据:信息的载体 数据元素:数据的基本单位,由若干数据项组成 数据项:构成数据元素的不可分割的最小单位 数…

leetcode-060-排列序列

题目及测试 package pid060; /* 60. 排列序列 给出集合 [1,2,3,...,n],其所有元素共有 n! 种排列。按大小顺序列出所有排列情况,并一一标记,当 n 3 时, 所有排列如下:"123" "132" "213" "23…

银行数字化转型导师坚鹏:银行数字化营销面临的5大痛点

银行数字化营销在助力银行业实现转型与发展的同时,也面临一些痛点问题。以下是银行数字化营销必须解决的五大痛点: 1) 数据质量和完整性:银行在数字化营销中需要利用大数据技术,但数据质量和完整性仍然是一个关键问题。银行需要确…

最强的″矛″ 验关键的″盾″|赛宁数字孪生靶场验证湖南工业互联网安全

​​为深入推动“智赋万企”数字安全屏障工程,由工业和信息化部网络安全管理局指导,湖南省工信厅和湖南省通管局主办的“铸网—2023”湖南省工业互联网企业网络安全实战攻防演练,于近日圆满收官。赛宁网安以数字孪生靶场为基础,构…

SpringMVC (八) 拦截器+文件上传下载

学习回顾:SpringMVC (七) Ajax研究 概述 SpringMVC的处理器拦截器类似于Servlet开发中的过滤器Filter,用于对处理器进行预处理和后处理。开发者可以自己定义一些拦截器来实现特定的功能。 过滤器与拦截器的区别:拦截器是AOP思想的…

实现窗户特效的Unity Shader解析

本文将详细介绍一种使用Unity Shader实现窗户特效的方法。通过分析代码,我们将解释每个关键部分的作用,以及如何将其组合在一起以实现逼真的窗户效果。希望本文能为Shader编程初学者和Unity开发者提供一些有用的指导。 引言: 在游戏和虚拟现实…

taro 小程序自定义地图选点功能

效果: 1、添加中心点 icon, 保证icon 处于地图中间 .map-box {width: 100vw;height: 36vh;position: relative;// 中心icon.center-icon-box {position: absolute;top: calc(50% - 30rpx); // 保证icon 处于地图中心点left: 50%;transform: translate(-50%, -50%)…

JavaScript内存管理和闭包

1 JavaScript内存管理 2 垃圾回收机制算法 3 闭包的概念理解 4 闭包的形成过程 5 闭包的内存泄漏 一个函数只有调用了外部的变量&#xff0c;才算是闭包。函数内和函数外会写成闭包。 深入JS闭包-闭包的访问过程 <!DOCTYPE html> <html lang"en"> &l…

Jenkins用户权限设置和运行节点配置实战

这里写目录标题 一、Jenkins用户权限设置实战1、用户权限配置2、用户权限分配 二、Jenkins运行节点配置实战1、增加运行节点的好处2、实战B-1:添加Jenkins运行节点实战1、相关字段说明&#xff1a;2、SSH连接方式 实战B-2:配置不同类型的节点-Python 节点实战B-3:配置不同类型的…

STM32F4 读/写 EEPROM【EEPROM、串口显示】

将姓名&#xff08;拼音&#xff09;学号写入EEPROM并在启动时通过串口显示 本篇博客将介绍如何使用STM32F4开发板将姓名&#xff08;拼音&#xff09;学号写入EEPROM&#xff0c;并在启动时通过串口显示。我们将使用核心实现函数EEPROM_WR_Test来完成这个功能。 准备工作 在…

Dubbo【Dubbo实战(用户更新业务消费者实现、用户删除业务消费者实现、复习内容) 】(六)-全面详解(学习总结---从入门到深化)

目录 Dubbo实战_用户更新业务消费者实现 Dubbo实战_用户删除业务消费者实现 复习内容&#xff1a; Dubbo实战_用户更新业务消费者实现 在Consumer中调用更新用户业务 /*** 根据用户id修改用户名字* param users* return*/Integer updateUsers(User users);/*** 根据用户id查…

Apollo分布式配置中心(二)

上一篇&#xff1a; 上一篇已经知道Apollo是什么东西了&#xff0c;接下来实践一下 目录 一、创建应用 1、 新增配置 2、创建Namespace ​3、同步配置 4、灰度发布 添加灰度配置项 ​编辑 配置灰度规则 二、删除应用、集群、appNamespace 三、springBoot整合Apollo …

JAVA设计模式介绍

一、什么是设计模式 设计模式&#xff08;Design pattern&#xff09;是一套被反复使用、多数人知晓的、经过分类编目的、代码设计…

前端Vue自定义手机号文本格式化组件手机号码文本转星号

前端Vue自定义手机号文本格式化组件, 下载完整代码请访问uni-app插件市场地址&#xff1a;https://ext.dcloud.net.cn/plugin?id13231 效果图如下: # cc-format-phone #### 使用方法 使用方法 <!-- phone:手机号 isStar: 是否转星号 --> <cc-format-phone :phon…

2023.7.2

#include <iostream>using namespace std;class Complex { private:int age;int num; public://无参构造Complex(){}//有参构造Complex(int age,int num){this->age age;this->num num;}void show(){cout << "age" << age << "…