做360手机网站快速排名软件,免费模版网,网站宣传与推广,云主机网站面板目录 引言1. ElementUI树1.1 树的基本概念1.2 示例代码和效果展示 2. ElementUI实现动态表格2.1 表格的基本概念2.2 示例代码和效果展示 总结 引言
在前端开发中#xff0c;动态树和动态表格是常见的功能需求。ElementUI是一套基于Vue.js的组件库#xff0c;提供了丰富的UI组… 目录 引言1. ElementUI树1.1 树的基本概念1.2 示例代码和效果展示 2. ElementUI实现动态表格2.1 表格的基本概念2.2 示例代码和效果展示 总结 引言
在前端开发中动态树和动态表格是常见的功能需求。ElementUI是一套基于Vue.js的组件库提供了丰富的UI组件和交互功能方便开发者快速构建前端界面。本文将介绍如何使用ElementUI实现动态树和动态表格的综合应用以满足实际项目中的需求。
1. ElementUI树
1.1 树的基本概念
树是一种非线性的数据结构由节点和边组成。每个节点可以有多个子节点但只能有一个父节点除了根节点。树的层次结构使得它非常适合表示具有层次关系的数据。
1.2 示例代码和效果展示
以下是使用ElementUI实现动态树的示例代码
templateel-menu router :default-active$route.path default-active2 classel-menu-vertical-demo background-color#334157 text-color#fffactive-text-color#ffd04b :collapsecollapsed!-- el-menu default-active2 :collapsecollapsed collapse-transition router :default-active$route.path unique-opened classel-menu-vertical-demo background-color#334157 text-color#fff active-text-color#ffd04b --div classlogoboximg classlogoimg src../assets/img/logo.png alt/divel-submenu v-form in menus :indexi_m.id :keyk_m.idtemplate slottitlei :classm.icon/ispan{{m.text}}/span/templateel-menu-item v-forn in m.modules :indexn.url :keyk_n.idi :classn.icon/ispan{{n.text}}/span/el-menu-item/el-submenu/el-menu
/template
scriptexport default {data() {return {collapsed: false,menus:[]}},created() {this.$root.Bus.$on(a, v {this.collapsed v;});let url this.axios.urls.SYSTEM_MENUSthis.axios.get(url,{}).then(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
路径配置
/*** 对后台请求的地址的封装URL格式如下* 模块名_实体名_操作*/
export default {SERVER: http://localhost:8080, //服务器SYSTEM_USER_DOLOGIN: /user/userLogin, //登陆SYSTEM_USER_DOREG: /user/userRegister , //注册SYSTEM_MENUS: /module/queryRootNode , //左侧菜单树Book_List: /book/queryBookPager, //书籍列表getFullPath: k { //获得请求的完整地址用于mockjs测试时使用return this.SERVER this[k];}
}
路由配置
import Vue from vue
import Router from vue-router
import HelloWorld from /components/HelloWorld
import Login from /views/Login
import Register from /views/Register
import AppMain from /components/AppMain
import LeftNav from /components/LeftNav
import TopNav from /components/TopNav
import AddBook from /views/book/AddBook
import BookList from /views/book/BookListVue.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}]}]
})
AppMain
templateel-container classmain-containerel-aside v-bind:classasideClassLeftNav/LeftNav/el-asideel-containerel-header classmain-headerTopNav/TopNav/el-headerel-main classmain-centerrouter-view/router-view/el-main/el-container/el-container
/templatescript// 导入组件import TopNav from /components/TopNav.vueimport LeftNav from /components/LeftNav.vue// 导出模块export default {components:{TopNav,LeftNav},data(){return{asideClass:main-aside}},created(){this.$root.Bus.$on(a,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
后台方法映射 Autowiredprivate IModuleService moduleService;RequestMapping(/queryRootNode)ResponseBodypublic JsonResponseBodyListModule queryRootNode(){try {ListModule modules moduleService.queryRootNode(-1);return new JsonResponseBody(OK,true,0,modules);} catch (Exception e) {e.printStackTrace();return new JsonResponseBody(初始化首页菜单错误,false,0,null);}}2. ElementUI实现动态表格
2.1 表格的基本概念
表格是一种以行和列的形式组织数据的结构。在前端开发中表格常用于展示和编辑大量的数据提供了排序、筛选、分页等功能方便用户对数据进行操作。
2.2 示例代码和效果展示
以下是使用ElementUI实现动态表格的示例代码
templatediv classbooks stylepadding: 20px;el-form :inlinetrue classdemo-form-inlineel-form-item label书籍名称el-input v-modelbookname placeholder书籍名称/el-input/el-form-itemel-form-itemel-button typeprimary clickonSubmit查询/el-button/el-form-item/el-formel-table :datatableData stripe stylewidth: 100%el-table-column propid label书籍编号 width180/el-table-columnel-table-column propbookname label书籍名称 width180/el-table-columnel-table-column propprice label书籍价格/el-table-columnel-table-column propbooktype label书籍类别/el-table-column/el-tablediv classblockspan classdemonstration完整功能/spanel-paginationsize-changehandleSizeChangecurrent-changehandleCurrentChange:current-pagepage:page-sizes[10, 20, 30, 40]:page-sizerowslayouttotal, sizes, prev, pager, next, jumper:totaltotal/el-pagination/div/div
/templatescriptexport default {data() {return {bookname: ,tableData: [],page:1,rows:10,total:0}},methods: {onSubmit() {let params {bookname: this.bookname}this.query(params);},query(params) {let url this.axios.urls.Book_List;this.axios.get(url, {params: params}).then(r {this.tableData r.data.rows;this.total r.data.total}).catch(e {})},handleSizeChange(ydx){let params {bookname: this.bookname,rows:ydx,page:this.page}this.query(params);},handleCurrentChange(y){let params {bookname: this.bookname,rows : this.rows,page : y}this.query(params);}},created() {let params {bookname: this.bookname}this.query({});}}
/scriptstyle
/style
后台方法映射 RequestMapping(/queryBookPager)ResponseBodypublic JsonResponseBodyListBook queryBookPager(Book book, HttpServletRequest req){try {PageBean pageBeannew PageBean();pageBean.setRequest(req);ListBook books bookService.queryBookPager(book, pageBean);return new JsonResponseBody(OK,true,pageBean.getTotal(),books);} catch (Exception e) {e.printStackTrace();return new JsonResponseBody(分页查询书本失败,false,0,null);}}效果展示
总结
本文介绍了如何使用ElementUI实现动态树和动态表格的综合应用。通过Tree组件和Table组件我们可以方便地展示和交互树形数据和表格数据。同时通过动态加载数据的方式我们可以实现树节点和表格数据的动态更新提升用户体验。在实际项目中可以根据具体需求进行进一步的定制和扩展以满足项目的需求。