ElementUI之动态树+数据表格+分页->动态树,动态表格

这篇具有很好参考价值的文章主要介绍了ElementUI之动态树+数据表格+分页->动态树,动态表格。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

  • 动态树
  • 动态表格

1.动态树

//src/components/LeftNav.vue
<template>
  <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>
        <span></span>
      </el-menu-item>
    </el-submenu>
    <!-- <el-submenu index="1">
      <template slot="title">
        <i class="el-icon-location"></i>
        <span>导航一</span>
      </template>
      <el-menu-item-group>
        <template slot="title">分组一</template>
        <el-menu-item index="1-1">选项1</el-menu-item>
        <el-menu-item index="1-2">选项2</el-menu-item>
      </el-menu-item-group>
      <el-menu-item-group title="分组2">
        <el-menu-item index="1-3">选项3</el-menu-item>
      </el-menu-item-group>
      <el-submenu index="1-4">
        <template slot="title">选项4</template>
        <el-menu-item index="1-4-1">选项1</el-menu-item>
      </el-submenu>
    </el-submenu>
    <el-menu-item index="2">
      <i class="el-icon-menu"></i>
      <span slot="title">导航二</span>
    </el-menu-item>
    <el-menu-item index="3" disabled>
      <i class="el-icon-document"></i>
      <span slot="title">导航三</span>
    </el-menu-item>
    <el-menu-item index="4">
      <i class="el-icon-setting"></i>
      <span slot="title">导航四</span>
    </el-menu-item>-->
  </el-menu>
</template>
<script>
  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 => {

      })
    }
  }
</script>
<style>
  .el-menu-vertical-demo:not(.el-menu--collapse) {
    width: 240px;
    min-height: 400px;
  }

  .el-menu-vertical-demo:not(.el-menu--collapse) {
    border: none;
    text-align: left;
  }

  .el-menu-item-group__title {
    padding: 0px;
  }

  .el-menu-bg {
    background-color: #1f2d3d !important;
  }

  .el-menu {
    border: none;
  }

  .logobox {
    height: 40px;
    line-height: 40px;
    color: #9d9d9d;
    font-size: 20px;
    text-align: center;
    padding: 20px 0px;
  }

  .logoimg {
    height: 40px;
  }
</style>
//src/router/index.js
import Vue from 'vue'
import Router from 'vue-router'
import HelloWorld from '@/components/HelloWorld'
import AppMain from '@/components/AppMain'
import LeftNav from '@/components/LeftNav'
import TopNav from '@/components/TopNav'
import Login from '@/views/Login'
import Register from '@/views/Register'
import AddBook from '@/views/book/AddBook'
import BookList from '@/views/book/BookList'
Vue.use(Router)

export default new Router({
  routes: [{
      path: '/',
      name: 'Login',
      component: Login
    },
    {
      path: '/Register',
      name: 'Register',
      component: Register
    },
    {
      path: '/AppMain',
      name: 'AppMain',
      component: AppMain,
      children: [{
          path: '/LeftNav',
          name: 'LeftNav',
          component: LeftNav
        },
        {
          path: '/TopNav',
          name: 'TopNav',
          component: TopNav
        },
        {
          path: '/book/AddBook',
          name: 'AddBook',
          component: AddBook
        },
        {
          path: '/book/BookList',
          name: 'BookList',
          component: BookList
        }]
    }
  ]

})
//src/src/view/book/AddBook
<template>
  <h1>书籍新增</h1>
</template>

<script>
</script>

<style>
</style>
//src/src/view/book/BookList
<template>
  <h1>书籍管理</h1>
</template>

<script>
</script>

<style>
</style>

ElementUI之动态树+数据表格+分页->动态树,动态表格,elementui,vue.js,javascript

2.动态表格

 

//src/view/book/BookList.vue
<template>
  <div class="books" style="padding: 20px;">
    <!-- 1.搜索框 -->
    <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>
    <!-- 2.数据表格 -->
    <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="type" label="书记类别">
      </el-table-column>
    </el-table>
    <!-- 3.分页条 -->
    <div class="block">
      <span class="demonstration">完整功能</span>
      <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="400">
      </el-pagination>
    </div>
  </div>
</template>

<script>
  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) {
        //当页大小变化
        console.log("当前页大小为:"+r);
        let params = {
          bookname: this.bookname,
          rows:r,
          page:this.page
        }
        this.query(params);
      },
      handleCurrentChange(p) {
        //当前页码变化
        console.log("当前页码为:"+p);
        let params = {
          bookname: this.bookname,
          rows:p,
          page:this.page
        }
        this.query(params);
      },
    },
    created() {
      this.query({});
    }
  }
</script>

<style>
</style>
//src/componants/AppMain.vue
<template>
  <el-container class="main-container">
    <el-aside v-bind:class="asideClass">
      <LeftNav></LeftNav>
    </el-aside>
    <el-container>
      <el-header class="main-header">
        <TopNav></TopNav>
      </el-header>
      <el-main class="main-center">
        <router-view></router-view>
      </el-main>
    </el-container>
  </el-container>
</template>

<script>
  // 导入组件
  import TopNav from '@/components/TopNav.vue'
  import LeftNav from '@/components/LeftNav.vue'

  // 导出模块
  export default {
    components: {
      TopNav,
      LeftNav
    },
    data() {
      return {
        asideClass: 'main-aside'
      }
    },
    created() {
      this.$root.Bus.$on('aaa', v => {
        this.asideClass = v ? 'main-aside-collapsed' : 'main-aside';
      })
    }
  };
</script>
<style scoped>
  .main-container {
    height: 100%;
    width: 100%;
    box-sizing: border-box;
  }

  .main-aside-collapsed {
    /* 在CSS中,通过对某一样式声明! important ,可以更改默认的CSS样式优先级规则,使该条样式属性声明具有最高优先级 */
    width: 64px !important;
    height: 100%;
    background-color: #334157;
    margin: 0px;
  }

  .main-aside {
    width: 240px !important;
    height: 100%;
    background-color: #334157;
    margin: 0px;
  }

  .main-header,
  .main-center {
    padding: 0px;
    border-left: 2px solid #333;
  }
</style>

ElementUI之动态树+数据表格+分页->动态树,动态表格,elementui,vue.js,javascript文章来源地址https://www.toymoban.com/news/detail-730247.html

到了这里,关于ElementUI之动态树+数据表格+分页->动态树,动态表格的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • elementui el-table表格实现翻页和搜索均保持勾选状态(后端分页)

    需求: 不管是页面切换还是通过搜索获取数据,都要保持已选中的行保持勾选状态,同时将选中行的内容以标签的形式显示出来,当点击关闭标签时可以对应取消选中状态,点击行中的任意位置也可以切换选中状态,单独勾选复选框一样可以达到要求。 由于需求相对还是蛮

    2024年02月10日
    浏览(52)
  • VUE+ElementUI Table表格实现“指定行“展开并且其他行收起,“指定行”数据重复实现“合并行”

    遇到甲方爸爸一个需求,在原本的table表格中需要每一行具有下拉列表的功能,实现“指定行”展开,下拉菜单中并且含有数据属性重复的,则还需合并行。 展开行有两种方式: 方法一是利用table组件中 default-expand-all 属性,将 “内容是否存在” 作为判断条件,实现默认展开

    2024年01月23日
    浏览(40)
  • vue实现elementUI table表格树形结构-使用懒加载时-解决子节点增删改后,不刷新子节点数据问题

    在使用element-ui的table组件时,使用树形结构,并使用了懒加载,可出现了一个问题,在对当前节点添加一个子节点数据,或删除一个子节点数据时,当前节点的子节点数据并不自动刷新出来。element-ui官方没有提供实时刷新子节点数据的方法。 可以使用window.location.reload();但每

    2024年02月09日
    浏览(40)
  • Vue + ElementUI 实现可编辑表格及校验

    完整代码见文末 使用两个表单分别用于实现修改和新增处理。 通过一个 editIndex 变量判断是否是编辑状态来决定是否展示输入框,当点击指定行的修改后进行设置即可: 通过隐藏表头实现新增表格和修改表格的合并,同时表格数据只有 addRow : 当无数据时只展示新增行: 通

    2024年02月14日
    浏览(29)
  • vue+elementUI 分页切换时保存勾选框为选中状态

    1、el-table指定 row-key 属性为row.id 确保唯一性 2、el-table-column设置 reserve-selection 属性为true 会在数据更新之后保留之前选中的数据( reserve-selection   仅对 type=selection 的列有效 )

    2024年01月19日
    浏览(32)
  • Vue+ElementUI技巧分享:结合Sortablejs实现表格行拖拽

    在很多动态网页应用中,用户界面的交互性是提高用户体验的关键。在 Vue.js 中,结合 Element UI 和 sortablejs ,我们可以轻松实现表格的行拖拽功能。本文将演示如何在 Vue 项目中使用这些工具,并在拖拽后将数据更新到后端服务系统。 确保你的项目中已经安装了 Element UI 和

    2024年02月04日
    浏览(49)
  • vue2 ElementUI 表单标签、表格表头添加问号图标提示

    使用element-ui有时候需要对表格的 表头 、表单的 标签 进行自定义,添加问号的悬浮提示。 要达到的效果,如图所示: https://element.eleme.cn/#/zh-CN/component/tooltip 定义问号图标,图标上方显示tooltip提示内容 代码: 实现效果: 为什么不写content属性和里面的提示内容也能显示?

    2024年01月25日
    浏览(39)
  • elementui表格数据加载即勾选

    搜索: elementui 表格数据加载即勾选|elementui表格勾选   1 、关键点: 需要使用watch和nextTick,直接参考官方案例,在数据返回时候设置勾选不好使。 2 、表格定义             el-table : height =\\\" 570 \\\" : data =\\\"roleTableData\\\" style = \\\"width: 100%\\\" border stripe ref = \\\"msTable\\\"             3

    2024年02月13日
    浏览(26)
  • vue3+ts+elementui-plus二次封装树形表格

    复制粘贴即可: 一、定义table组件

    2024年02月15日
    浏览(31)
  • ElementUI--数据表格增删改查与表单验证

    1.1 后台CRUD编写 1.2 配置访问路径 src/api/action.js : 1.3 前端编写(及窗口) 注1:隐藏显示设置,通过Vue实例对象中的dialogFormVisible=\\\"true|false\\\"来控制dialog显示隐藏        :visible.sync=\\\"dialogFormVisible\\\"      注2:通过close或closed事件,在关闭dialog弹出框时清空form表单数据和验证信息

    2024年02月07日
    浏览(25)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包