Vue中动态树形菜单,以及

news2024/11/25 11:43:37

 🏅我是默,一个在CSDN分享笔记的博主。📚📚

🌟在这里,我要推荐给大家我的专栏《Vue》。🎯🎯

🚀无论你是编程小白,还是有一定基础的程序员,这个专栏都能满足你的需求。我会用最简单易懂的语言,带你走进Vue的世界,让你从零开始,一步步成为JAVA大师。🚀🏆

🌈让我们在Vue的世界里畅游吧!🌈

🎁如果感觉还不错的话请记得给我点赞哦!🎁🎁

💖期待你的加入,一起学习,一起进步!💖💖 

一.动态树形菜单

绑定数据

	export default {
		data(){
		  return{
		    collapsed:false,
        menus:[]
		  };
		},
      created() {
        this.$root.Bus.$on('aaa',v=>{
          this.collapsed=v;
        });

        //获得动态数据
       let  url=this.axios.urls.SYSTEM_MENUS;
        this.axios.get(url,{}).then(r=>{
          console.log(r);
          this.menus=r.data.rows;
        }).catch(e=>{

        })

      }
	}

.前端导航菜单绑定

菜单结构

<el-menu   router :default-active="$route.path"     default-active="2" class="el-menu-vertical-demo" background-color="#334157"
	 text-color="#fff" active-text-color="#ffd04b" :collapse="collapsed">
		<!-- <el-menu default-active="2" :collapse="collapsed" collapse-transition router :default-active="$route.path" unique-opened class="el-menu-vertical-demo" background-color="#334157" text-color="#fff" active-text-color="#ffd04b"> -->
		<div class="logobox">
			<img class="logoimg" src="../assets/img/logo.png" alt="">
		</div>
        	<el-submenu  v-for="m  in  menus"  :index="'idx_'+m.id"  :key="'key_'+m.id">
                <template slot="title">
                    <i :class="m.icon"></i>
                    <span>{{m.text}}</span>
                </template>
        		<el-menu-item v-for="m2  in  m.modules"  :index="m2.url"  :key="'key_'+m2.id">
                    <i :class="m2.icon"></i>
                    <span>{{m2.text}}</span>
                </el-menu-item>
        	</el-submenu>
	</el-menu>

第一级节点el-submenu中key属性唯一,index属性唯一,而index属性用于控制菜单折叠; 第二级节点el-menu-item中key属性唯一,index属性唯一,而index属性用于控制页面跳转;

vue+element的el-menu组件实现路由跳转及当前项的设置

注1:要实现路由跳转,先要在el-menu标签上添加router属性,然后只要在每个el-menu-item标签内的index属性设置一下url即可实现点击el-menu-item实现路由跳转。

注2:导航当前项,在el-menu标签中绑定 :default-active="$route.path",注意是绑定属性,不要忘了加“:”,当$route.path等于el-menu-item标签中的index属性值时则该item为当前项。

注3:el-submenu标签中的url属性不能为空,且不能相同,否则会导致多个节点收缩/折叠效果相同的问题。

配置路由关系

/**
 * 对后台请求的地址的封装,URL格式如下:
 * 模块名_实体名_操作
 */
export default {
	'SERVER': 'http://localhost:8080/ssm', //服务器
	'SYSTEM_USER_DOLOGIN': '/user/userLogin', //登陆
	'SYSTEM_USER_DOREG': '/user/userRegister', //注册
  'SYSTEM_MENUS': '/module/queryRootNode', //菜单树
	'getFullPath': k => { //获得请求的完整地址,用于mockjs测试时使用
		return this.SERVER + this[k];
	}
}

配置跳转以及包 

 

 

效果展示

 

二.数据表格的绑定 

1.配置路由关系

   'BOOK_LIST': '/book/queryBookPager', //绑定书籍

2.编写输入框

  <el-form :inline="true" class="demo-form-inline">
       <el-form-item label="书籍名字">
         <el-input v-model="bookname" placeholder="书籍名字"></el-input>
       </el-form-item>
       <el-form-item>
         <el-button type="primary" @click="onSubmit">查询</el-button>
       </el-form-item>
     </el-form>

3.编写表格

 <!-- 数据表格-->
      <el-table :data="tableData"  stripe  style="width: 100%">
      <el-table-column prop="id" label="书籍编号" width="180">
    </el-table-column>
    <el-table-column   prop="bookname" label="书籍名字" width="180">
    </el-table-column>
    <el-table-column    prop="price" label="书籍价格">
    </el-table-column>
    <el-table-column    prop="booktype" label="书籍类型">
    </el-table-column>
  </el-table>

    

4.编写分页条

 <!-- 分页-->
       <div class="block">
          <el-pagination
            @size-change="handleSizeChange"
            @current-change="handleCurrentChange"
            :current-page="page"
            :page-sizes="[10, 20, 30, 40]"
            :page-size="rows"
            layout="total, sizes, prev, pager, next, jumper"
            :total="total">
          </el-pagination>
        </div>

5.编写方法

  export  default{
        data(){
           return  {
              bookname:'',
              tableData:[],
              rows:10,
              page:1,
              total:0

     }
     },methods:{
       query(params){
         //获得动态数据
         let  url=this.axios.urls.BOOK_LIST;
          this.axios.get(url,{params:params}).then(r=>{
            console.log(r);
            this.tableData=r.data.rows;
            this.total=r.data.total;
          }).catch(e=>{

          })
       },
       onSubmit(){
         let params ={
           bookname:this.bookname
         }
         this. query(params);
       },
       handleSizeChange(r){
        let params ={
          bookname:this.bookname,
          rows:r,
          page:this.page
        }
        this. query(params);
       },
       handleCurrentChange(p){
        let params ={
          bookname:this.bookname,
          rows:this.rows,
          page:p
        }
        this. query(params);
       }
     },
      created() {
             this.query({});
      }
    }

6.效果展示

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

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

相关文章

根据文章段落内容自动插入图片php版

每篇内容根据段落判断插入图片代码附上&#xff1a; $chatd"<table>";if(stripos($content,$chatd)0){//随机输出三张图功能if($moduleid!37 &&$thumb){//判断是否存在图$idrand(1,999999);$midrand(1,9999999);$getimg"http://www.nongpin88.co…

进程管理--进程创建

标记进程 PID: 进程/线程ID 一个唯一的进程标识符&#xff08;PID&#xff09;来标识进程&#xff0c;PID存放在进程描述符的pid字段中。PID顺序编号&#xff0c;新创建进程的PID通常是上一个进程PID1 TGID&#xff1a;进程ID/线程组ID 一个进程中的所有线程共享相同的tgid…

【漏洞复现】Jeecg-Boot SQL注入漏洞(CVE-2023-34659)

漏洞描述 jeecgBoot是一款基于BPM的低代码平台!前后端分离架构 SpringBoot 2.x,SpringCloud,Ant Design&Vue,Mybatis-plus,Shiro,JWT,支持微服务。强大的代码生成器让前后端代码一键生成,实现低代码开发!JeecgBoot引领新低代码开发模式 OnlineCoding-> 代码生…

c语言练习66:模拟实现offsetof

模拟实现offsetof #define offsetof(StructType, MemberName) (size_t)&(((StructType *)0)->MemberName) StructType是结构体类型名&#xff0c;MemberName是成员名。具体操作方法是&#xff1a; 1、先将0转换为一个结构体类型的指针&#xff0c;相当于某个结构体的首…

「康达新材」借力CRM掀起业务升级、组织数字化转型新篇章

近日&#xff0c;康达新材料&#xff08;集团&#xff09;股份有限公司&#xff08;下文简称&#xff1a;康达新材&#xff09;与纷享销客举行CRM平台项目启动仪式。 启动会上&#xff0c;康达新材董事长王建祥表达了对信息化、数据化建设的需求&#xff0c;并期待以此次合作为…

雷柏mv20鼠标使用体验

用了1年多&#xff0c;第一次用竖着的鼠标&#xff0c;现在已经很习惯了&#xff0c;感觉还不错。说说使用感受&#xff1a; 1、 仍然是长时间使用鼠标&#xff0c;但是很少出现手腕痛的情况&#xff0c;确实是有一定效果的。 2、使用场景是有限制的&#xff0c;我是配合笔记…

关于 自定义的RabbitMQ的RabbitMessageContainer注解-实现原理

概述 RabbitMessageContainer注解 的主要作用就是 替换掉Configuration配置类中的各种Bean配置&#xff1b; 采用注解的方式可以让我们 固化配置&#xff0c;降低代码编写复杂度、减少配置错误情况的发生&#xff0c;提升编码调试的效率、提高业务的可用性。 为什么说“降低…

[补题记录] Atcoder Beginner Contest 299(E)

URL&#xff1a;https://atcoder.jp/contests/abc299 目录 E Problem/题意 Thought/思路 Code/代码 E Problem/题意 给出 N&#xff08;1 < N < 2000&#xff09;个点和 M 条边的一个无向图&#xff0c;要求用白色和黑色对这个图染色。 满足下面两个条件&#xff…

怎么加密U盘文件?U盘文件加密软件哪个好?

当U盘中储存重要数据时&#xff0c;我们需要保护U盘文件安全&#xff0c;避免数据泄露。那么&#xff0c;怎么加密U盘文件呢&#xff1f;U盘文件加密软件哪个好呢&#xff1f; ​U盘数据怎么避免泄露&#xff1f; 想要避免U盘数据泄露&#xff0c;最佳的方法就是对U盘文件进行…

C#解析JSON详解

C#解析Json详解 文章目录 C#解析Json详解什么是Json&#xff1f;Json的特点 常用的Json库Json.NET (Newtonsoft.Json)System.Text.Json 实例序列化反序列化 总结 什么是Json&#xff1f; JSON的全称是JavaScript Object Notation&#xff0c;是一种轻量级的数据交换格式&#…

作为一名独立开发者,如何获取客户?

很多程序员想成为一名独立开发者&#xff0c;从事自由职业&#xff0c;最大的困难在于如何赚钱&#xff0c;进一步来说&#xff0c;就是如何找到自己的客户&#xff0c;有很多开发者拥有丰富的经验&#xff0c;优秀的能力&#xff0c;但无法吸引客户。这篇文章的灵感正是为此而…

Qt扩展-QCustomPlot 简介及配置

QCustomPlot 简介及配置 一、概述二、安装教程三、帮助文档的集成 一、概述 QCustomPlot是一个用于绘图和数据可视化的Qt 控件。它没有进一步的依赖关系&#xff0c;并且有良好的文档记录。这个绘图库专注于制作好看的、发布质量的2D绘图、图形和图表&#xff0c;以及为实时可…

【面试题】Promise只会概念远远不够,还需这17道题目巩固!

前端面试题库 &#xff08;面试必备&#xff09; 推荐&#xff1a;★★★★★ 地址&#xff1a;前端面试题库 表妹一键制作自己的五星红旗国庆头像&#xff0c;超好看 在学习Promise相关题目之前&#xff0c;我们先做一些知识的回顾&#xff1a;JavaScript 是一门单…

自动化测试面试经历

一家做户外的外企 面试问题 1、自我介绍&#xff1a;大概介绍了自己的工作经历 2、数据库问题&#xff1a;学生表中包含id、姓名、成绩、班级&#xff0c;求平均成绩 回答&#xff1a;group by 班级&#xff0c;求平均&#xff08;不够完美&#xff09; 3、java的访问修饰符…

MQ - 32 基础功能:消息查询的设计

文章目录 导图概述什么时候会用到消息查询消息队列支持查询的理论基础消息数据存储结构关于索引的一些知识点内核支持简单查询根据 Offset 查询数据根据时间戳查询数据根据消息 ID 查询数据借助第三方工具实现复杂查询第三方引擎支持查询工具化简单查询总结导图 概述 从功能上…

Error:java: 错误: 不支持发行版本 5

当创建maven项目之后&#xff0c;编译一个简单的helloworld,发生以下报错 : Error:java: 错误: 不支持发行版本 5 解决方案 : File -> Settings -> BUIld,Execution,Deployment -> Compiler -> Java Compiler 将Module表格中的Target bytecode version的1.5换…

【优测云服务平台】打造承载百倍级增长后台背后的力量-性能优化

项目介绍&#xff1a; 腾讯课堂是腾讯推出的专业在线教育平台&#xff0c;凭借技术优势&#xff0c;实现在线即时互动教学&#xff0c;打破地域的限制&#xff0c;让每个人都能接受优秀老师的指导和教学。 一、背景 2020年初&#xff0c;新冠病毒肆虐&#xff0c;疫情大面积爆…

基于SSM的办公用品管理系统设计与实现

末尾获取源码 开发语言&#xff1a;Java Java开发工具&#xff1a;JDK1.8 后端框架&#xff1a;SSM 前端&#xff1a;采用JSP技术开发 数据库&#xff1a;MySQL5.7和Navicat管理工具结合 服务器&#xff1a;Tomcat8.5 开发软件&#xff1a;IDEA / Eclipse 是否Maven项目&#x…

cocoscreator3.X 强更 游戏内下载APK和安装APK

本文环境3.6.0&#xff0c;目测3.7, 3.8都可以用 强制更新是强制用户下载整包并覆盖安装&#xff0c;因为android部分代码不方便热更&#xff0c;所以游戏内采用服务器推送下载通知&#xff0c;游戏执行下载后再安装的形式. 下载完全可在ts层完成&#xff0c;可采用cocoscrea…

继苹果、联发科后,传高通下一代5G芯片将由台积电以3纳米代工

台积电3纳米又有重量级客户加入。市场传出&#xff0c;继苹果、联发科之后&#xff0c;手机芯片大厂高通下一代5G旗舰芯片也将交由台积电以3纳米生产&#xff0c;最快将于10月下旬发表&#xff0c;成为台积电3纳米第三家客户。 针对相关传闻&#xff0c;至昨日&#xff08;25日…