IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> Vue项目后台部分5,ECharts,Home首页的制作,权限管理的菜单权限的相关逻辑 -> 正文阅读

[JavaScript知识库]Vue项目后台部分5,ECharts,Home首页的制作,权限管理的菜单权限的相关逻辑

ECharts

基本使用

1、安装:cnpm install --save echarts
2、引入ECharts

import echarts from "echarts";

3、准备一个容器:容器就是显示图标的区域
4、基于准备好的DOM初始化echarts实例

this.mycharts = echarts.init(this.$refs.charts);

5、指定图标的配置项与数据

dataset(字符集)

  • source数据源
  • encode定义使用data哪个索引值的数据

内置组件

  • 提示组件tooltip
  • 系列切换组件legend,给两个图形分别起名
  • 工具栏组件toobox
  • 观看某一区域区域dataZoom
  • 调整图标布局grid

坐标系

  • 散点图scatter
  • 双坐标,y轴写成数组形式,给单个图标设置yAxisIndex属性,0代表左边的y轴,1代表右边的y轴
  • 多坐标

Home首页

静态组件

顶部

(1)封装一个子组件
(2)父组件引入子组件并使用
(3)利用props和作用域插槽设置每个小组件的样式

如何画一个圆润的折线图?
设置折现拐点样式透明度为0,itemStyle:{opacity:0}
series中加上smooth:true

如何让折线图在布局中完全显示?
grid中的left,top,right,bottom都设为0

如何给折线图填充?
areaStyle直接设置颜色,即为同色,

如何画一个进度条?
先画一个柱状图,让它在y轴均分,type:category
给x轴设置一个最小值为0,最大值100,min:0,max:100
然后再series中设置data的值即为它的百分比。data:[78]
设置宽度,barWidth:10
设置背景颜色,showBackground:truebackground:{color:"#eee"}
在进度条中设置文本:label:{show:true,formatter:'|',position:"right"}

中部

1、动态样式
点击不同tab栏标题发生变化,可以用计算属性实现。

  computed: {
    //计算属性-标题
    title() {
      //重新设置配置项
      return this.activeName == "sale" ? "销售额" : "访问量";
      }

柱状图的标题发生变化利用监听属性实现,当tab栏发生变化时,重新修改图标的配置数据。
2、日历
安装dayjs: cnpm install --save dayjs
引入:import dayjs from "dayjs";
使用:

    //本天
    setDay() {
      const day = dayjs().format("YYYY-MM-DD");
      this.date = [day, day];
    },
    //本周
    setWeek() {
      const start = dayjs().day(1).format("YYYY-MM-DD");
      const end = dayjs().day(7).format("YYYY-MM-DD");
      this.date = [start, end];
    },
    //本月
    setMonth() {
      const start = dayjs().startOf("month").format("YYYY-MM-DD");
      const end = dayjs().endOf("month").format("YYYY-MM-DD");
      this.date = [start, end];
    },
    //本年
    setYear() {
      const start = dayjs().startOf("year").format("YYYY-MM-DD");
      const end = dayjs().endOf("year").format("YYYY-MM-DD");
      this.date = [start, end];
    },
  },

底部

静态展示两个折线图已经一个饼图

3、动态展示
利用mock模拟数据,mock数据之后引入,在vue.config.js中开启mock数据。proxy中添加after: require('./mock/mock-server.js')

权限管理

静态组件

大量使用了elementUI,与之前的静态组件都十分相似

发送请求

携带添加角色的信息等等向服务器发送请求

菜单权限

逻辑1:
除去超级管理员可以访问所有菜单,其他用户是被超级管理员分配的菜单。当登录时,向服务器发送登录用户的信息,服务器会返回一个数组routes,数组由该用户需要访问的路由名称字符串组成。

逻辑2:
将所有路由进行分组,常量路由(任何角色都可以访问的菜单),异步路由(需要管理员分配的菜单),任意路由(不确定会出现,当满足条件时才出,如404)。此时需要书写一个方法,可以筛选出应该被展现的异步路由。使用数组的filiter方法过滤出异步路由的路由名与服务器返回数组内一样的字符串,此时返回true,得到了新的数组,然后将新的数组与常量路由和任意路由利用concat方法拼接成最终路由。然后将这个最终路由用addRoutes添加给路由器。

concat:
concat() 方法用于连接两个或多个数组。该方法不会改变现有的数组,而仅仅会返回被连接数组的一个副本。
语法:array1.concat(array2,array3,...,arrayX)

注意:
在过滤时,判断路由是否还存在子路由,有的话需要用到递归。判断之后,在该方法的内部,让子路由携带参数(item.children, routes)再次调用该方法。

注意:
在element-ui中的tree树形控件,无法获取父节点的id,此时需要修改element-ui的源码。

vue elementUI tree树形控件获取父节点ID的实例
修改源码:
情况1: element-ui没有实现按需引入打包
  node_modules\element-ui\lib\element-ui.common.js    25382行修改源码  去掉 'includeHalfChecked &&'
  // if ((child.checked || includeHalfChecked && child.indeterminate) && (!leafOnly || leafOnly && child.isLeaf)) {
  if ((child.checked || child.indeterminate) && (!leafOnly || leafOnly && child.isLeaf)) {
情况2: element-ui实现了按需引入打包
  node_modules\element-ui\lib\tree.js    1051行修改源码  去掉 'includeHalfChecked &&'
  // if ((child.checked || includeHalfChecked && child.indeterminate) && (!leafOnly || leafOnly && child.isLeaf)) {
  if ((child.checked || child.indeterminate) && (!leafOnly || leafOnly && child.isLeaf)) {
  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2022-09-24 20:47:38  更:2022-09-24 20:51:03 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 10:30:04-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码