返回顶部
首页 > 资讯 > 前端开发 > JavaScript >Vue树表格分页的实现方法详解
  • 744
分享到

Vue树表格分页的实现方法详解

Vue树表格Vue树表格分页Vue表格分页 2022-11-13 18:11:37 744人浏览 独家记忆
摘要

目录1. 准备工作2. 动态树2.1 在配置请求路径2.2 使用动态数据构建导航菜单2.2.1 通过接口获取数据2.2.2 通过后台获取的数据构建菜单导航2.3 点击菜单实现路由跳转

1. 准备工作

  • 创建测试数据库
  • 准备好后台服务接口,Moudel查询,和Book查询(支持分页)
  • 后台单元测试
  • 修改Vue配置,使用真实环境

2. 动态树

2.1 在配置请求路径

在src/api/action.js中配置获取动态树数据的请求路径

export default {
	//服务器
	'SERVER': 'Http://localhost:8080/WEBserver',
	//登陆请求
	'SYSTEM_USER_DOLOGIN': '/userMsg/userAction!login.action', //登陆
	//获取动态树数据请求
	'SYSTEM_MODULE_REQ': '/sysMsg/sysMsgAction!getModules.action',
	//获取完整的请求地址
	'getFullPath': k => { //获得请求的完整地址,用于mockjs测试时使用
		return this.SERVER + this[k];
	}
}

2.2 使用动态数据构建导航菜单

2.2.1 通过接口获取数据

LeftAside.vue:

    //声明周期钩子函数,此时的Vue实例已经创建,且data和methods已经创建,但没有开始编译模板
    //利用该钩子函数获取动态树数据
    created: function() {
      let url = this.axiOS.urls.SYSTEM_MODULE_REQ;
      this.axios.get(url, {}).then(resp => {
        //在data中声明moduleDatas数组,接收返回的数据,以便于在template中使用数据双向绑定
        this.moduleDatas = resp.data;
        console.log(resp.data);
      }).catch(resp => {});
      //登录成功后默认显示系统首页
      this.$router.push("/Home");
    }

测试,通过控制台查看数据是否正常获取:

2.2.2 通过后台获取的数据构建菜单导航

先构建一级导航菜单

LeftAside.vue:

    <el-submenu v-for="(m1) in moduleDatas" :key="m1.id" :index="'index_'+m1.id">
      <template slot="title">
        <i :class="m1.icon"></i>
        <span slot="title">{{m1.text}}</span>
      </template>
   </el-submenu>

页面效果:

构建二级导航菜单

LeftAside.vue:

      <!--
      使用v-for生成二级导航菜单,index为功能url值,二级菜单为叶子节点,为具体功能的功能菜单,
      所以url一定有值(一级菜单的url为空)。
      测试数据二级菜单没有分组,所以不用el-menu-item-group,只要生成el-menu-item即可。
      -->
      <el-menu-item v-for="m2 in m1.childrens" :key="m2.id" :index="m2.url">
        <span>{{m2.text}}</span>
      </el-menu-item>

页面效果:

2.3 点击菜单实现路由跳转

2.3.1 创建书本管理组件

t_module_vue表中已经配置了功能url,为方便,将书本管理组件定义为BookList。如果使用其他名字则需要修改功能url配置,保持一致。

2.3.2 配置路由

2.3.3 修改LeftAside组件

2.3.4 修改Main组件

3. 系统首页配置

首先创建一个首页组件

在Main组件中指定的<router-view/>是用于显示各功能组件的。

配置路由:

配置首页菜单:

菜单图标可以到官网去查找。

设置登录成功后默认显示系统首页:

    <!--设置首页菜单及其图标,index设置的是Home组件的path-->
    <el-menu-item key="home" index="/Home">
      <i class="el-icon-s-home"></i>
      <span>首页</span>
    </el-menu-item>

4. 表格数据显示

4.1 页面布局

页面上使用的面包屑,查询条件,表格,分页等空间,可以查看element-ui官网。该步骤主要关注页面布局,并没有绑定数据,编写完成后,观察页面效果。

BookList.vue:

<template>
  <div style="margin-left: 15px; margin-right: 15px;">
    <!--面包屑-->
    <el-breadcrumb style="margin-top:15px;" separator="/">
      <el-breadcrumb-item :to="{path: '/Home'}">首页</el-breadcrumb-item>
      <el-breadcrumb-item>书本管理</el-breadcrumb-item>
    </el-breadcrumb>
    <!--查询条件-->
    <el-fORM style="margin-top: 15px;" :inline="true" class="demo-form-inline">
      <el-form-item label="书名">
        <el-input placeholder="书名"></el-input>
      </el-form-item>
      <el-form-item>
        <el-button type="primary">查询</el-button>
        <el-button type="primary">新增</el-button>
      </el-form-item>
    </el-form>
    <!--表格-->
    <el-table style="width: 100%;" :border="true" max-height="550">
      <el-table-column prop="id" label="编号" min-width="40" align="center"></el-table-column>
      <el-table-column prop="bookname" label="名称" min-width="100" align="center"></el-table-column>
      <el-table-column prop="price" label="价格" min-width="70" align="center"></el-table-column>
      <el-table-column prop="booktype" label="类型" min-width="70" align="center"></el-table-column>
    </el-table>
    <!--分页-->
    <div class="block" style="text-align:right;margin-top:10px;">
      <el-pagination
        :page-sizes="[10, 20, 30, 40]"
        :page-size="100"
        layout="total, sizes, prev, pager, next, jumper"
        :total="400">
      </el-pagination>
    </div>
  </div>
</template>

4.2 查询并在表格中显示数据

先不考虑分页,从后台接口获取数据并绑定到表格显示。

将查询书本信息的接口配置到api/action.js中

//获取书本信息
'BOOKMSG_BOOKINFO_REQ':'/bookMsg/bookAction!getBooks.action',

BookList.vue组件

图一: template部分:

图二: script部分

  export default {
    name: 'BookList',
    data: function() {
      return {
        bookname: '',
        books: []
      }
    },
    methods: {
      qry: function() {
        let url = this.axios.urls.BOOKMSG_BOOKINFO_REQ;
        this.axios.post(url, {
          bookname: this.bookname
        }).then(resp => {
          console.log(resp);
          this.books = resp.data.data;
        }).catch(error => {
          console.log(error);
        });
      }
    }
  }

4.3 实现分页

template部分:

    <!--分页-->
    <div class="block" style="text-align:right;margin-top:10px;">
      <!--
      @size-chang: 定义在每页显示的记录数变化时的处理函数
      @current-change:当前页码发生变化时的处理函数,如点击页码或输入一个特定页码。
      :current-page:指定当前页,
      :page-size:每页显示的记录数
      layout: 布局,可以通过调整该项来调整显示内容
      :total: 总记录数
      -->
      <el-pagination background
        @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>

script部分,图一

      qry: function() {
        let url = this.axios.urls.BOOKMSG_BOOKINFO_REQ;
        this.axios.post(url, {
          bookname: this.bookname,
          //分页参数
          page: this.page,
          rows: this.rows
        }).then(resp => {
          console.log(resp);
          this.books = resp.data.data;
          //获取总页数
          this.total = resp.data.total;
        }).catch(error => {
          console.log(error);
        });
      }

script部分,图二:

      //当每页显示的记录数发生变化时,设置当前页码为1,执行查询。
      handleSizeChange: function(rows) {
        this.rows = rows;
        this.page = 1;
        this.qry();
      },
      //当前页码发生变化时,执行查询
      handleCurrentChange: function(page) {
        this.page = page;
        this.qry();
      }

到此这篇关于Vue树表格分页的实现方法详解的文章就介绍到这了,更多相关Vue树表格分页内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Vue树表格分页的实现方法详解

本文链接: https://lsjlt.com/news/169657.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Vue树表格分页的实现方法详解
    目录1. 准备工作2. 动态树2.1 在配置请求路径2.2 使用动态数据构建导航菜单2.2.1 通过接口获取数据2.2.2 通过后台获取的数据构建菜单导航2.3 点击菜单实现路由跳转...
    99+
    2022-11-13
    Vue树表格 Vue树表格分页 Vue表格分页
  • vue实现树形表格
    本文实例为大家分享了vue实现树形表格的具体代码,,供大家参考,具体内容如下 效果如下: 居中的图片: 代码如下: <template> <div cla...
    99+
    2024-04-02
  • vue实现表格分页功能
    本文实例为大家分享了vue实现表格分页功能的具体代码,供大家参考,具体内容如下 直接上代码: 这里是这里是template部分,主要由一个需要分页的表格和一个分页器组成。重点在于表格...
    99+
    2024-04-02
  • vue如何实现表格分页
    Vue可以通过以下步骤来实现表格分页:1. 在Vue组件中定义一个表格数据数组,例如`tableData`,用于存储所有的表格数据。...
    99+
    2023-08-09
    vue
  • Android提高之SQLite分页表格实现方法
    继前一篇文章讲到Android上的SQLite分页读取,其功能只是用文本框显示数据而已。本文就讲得更加深入些,实现并封装一个SQL分页表格控件,不仅支持分页还是以表格的形式展示...
    99+
    2022-06-06
    页表 表格 方法 SQLite Android
  • vue通过element树形控件实现树形表格
    目录实现效果图安装依赖自定义树形控件其他实现总结在vue中通过element树形控件来实现树形表格的效果 通过缩进来实现近似树形表格的效果 实现效果图 安装依赖 $ npm ins...
    99+
    2024-04-02
  • vue如何实现树形结构表格
    这篇文章主要讲解了“vue如何实现树形结构表格”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“vue如何实现树形结构表格”吧!在el-table中,支持树类型的数据的显示。当 row 中包含&...
    99+
    2023-07-04
  • JavaScript实现动态表格的方法详解
    目录JavaScript实现动态表格基本效果如下代码如下:第一种方式(较简单,建议使用)方式二改进版代码如下:总结JavaScript实现动态表格 (改建版,代码见最下面) 基本效...
    99+
    2024-04-02
  • 利用jQuerytreetable实现树形表格拖拽详解
    这里记录一下使用jquery treetable时遇到的坑。 我这里的需求是做一个树形表格,并且可拖拽。 最后要实现的效果大概是这样的: 首先,我们去jquery treetabl...
    99+
    2024-04-02
  • Vue组件库ElementUI实现表格列表分页效果
    ElementUI实现表格列表分页效果教程,供大家参考,具体内容如下 Element UI 是一套采用 Vue 2.0 作为基础框架实现的组件库,一套为开发者、设计师和产品经理准备的...
    99+
    2024-04-02
  • vue中Element-ui表格怎么实现树形结构表格
    这篇文章主要为大家展示了“vue中Element-ui表格怎么实现树形结构表格”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“vue中Element-ui表格怎么实现树形结构表格”这篇文章吧。本文...
    99+
    2023-06-15
  • vue实现一个懒加载的树状表格实例
    目录一个懒加载的树状表格实例安装模板js代码 使用el-table懒加载树形表格时的注意点1、版本问题2、数据显示3、滚动条4、数据结构5、el-table的fixed导致...
    99+
    2024-04-02
  • vue实现纯前端表格滚动分页加载
    本文实例为大家分享了vue实现表格滚动分页加载的具体代码,供大家参考,具体内容如下 实现效果 实现过程 <div     style="width: 100%; overfl...
    99+
    2024-04-02
  • python实现读取excel表格详解方法
    目录一、python读取excel表格数据1、读取excel表格数据常用操作2、xlrd模块主要操作3、读取单元格内容为日期时间的方式4、读取合并单元格的数据二、python写入ex...
    99+
    2024-04-02
  • MyBatis-Plus实现分页的方法使用详解
    目录简介建库建表依赖配置代码EntityMapperServiceController测试简介 本文介绍MyBatis-Plus的分页的方法。 包括: 不传参数时的默认结果查询不存在...
    99+
    2024-04-02
  • MyBatisPlus+Lombok实现分页功能的方法详解
    目录一、Lombok1、添加Lombok依赖2、安装Lombok插件3、模型类上添加注解二、分页功能1、调用方法传入参数获取返回值2、设置分页拦截器3、运行测试程序一、Lombok ...
    99+
    2024-04-02
  • vue实现导入json解析成动态el-table树表格
    目录一、需求描述二、界面展示三、代码实现一、需求描述 前段时间接到一个需求是做一个类似接口文档的显示功能,将一段json数据贴到里面就可以自动解析出json数据的每个字段的类型和层级...
    99+
    2023-02-01
    vue json解析成动态el-table树 vue 动态el-table树
  • Vue分页组件实现过程详解
    目录组件的一些规定和条件创建分页数组切换页码CSS HTML代码 <template> <div class="paging" v-if="count"...
    99+
    2022-12-09
    Vue分页组件封装 Vue分页组件原理
  • vue如何实现一个懒加载的树状表格
    这篇文章主要介绍“vue如何实现一个懒加载的树状表格”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“vue如何实现一个懒加载的树状表格”文章能帮助大家解决问题。一个懒加载的树状表格实例实现一个树状表格...
    99+
    2023-06-30
  • 利用Vue3实现可复制表格的方法详解
    目录前言最基础的表格封装实现复制功能处理表格中的不可复制元素测试前言 表格是前端非常常用的一个控件,但是每次都使用v-for指令手动绘制tr/th/td这些元素是非常麻烦的。同时,基...
    99+
    2022-12-12
    Vue3实现可复制表格 Vue 可复制表格 Vue3 表格
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作