项目背景:为一些有层级关系的数据管理做一套后台管理系统,例如一个小区,里面是有许多楼,楼里有许多层,每一层有许多不同的房······,现在就是要实现对这些数据进行增删改查操作。

1.Tree(树形组件)

Sublime Text 3左侧的项目目录,就是有一定层级关系的“数据”被组织成Tree,然后单击各子树,会呈现不一样的内容,因此可借用这个设计思想来设计这一套系统的导航功能。为什么要做这个导航功能,因为若要简单实现,直接用一个选择器组件,放入所有可选项让用户进行选择即可,然而这样做的友好度不够。

例如,一哥们想进入小区内的A楼,13层找到1304房,而选择器实现无非2种方式:

第一种,级联选择器,我利用E UI里的级联选择器组件,未找到很好的动态追加选项的方法。

第二种,选择器备选项进行分组显示,这样首先是导致备选项数量冗长;其次需要一次性加载所有的数据,通常很多数据是用不上的,因此浪费服务器资源。

我的方式是,利用 Tree树形组件进行懒加载,未利用的数据不加载,单击箭头图标进行加载,单击树节点名称进行内容导航。以下是部分代码展示:

handleNodeClick(obj,node,data) {

            if (node.level === 1) {                

              this.$router.push('/ldTable');

            }else if (node.level === 2) {

              this.$router.push('/lcTable/'+node.data.lcId+'/'+node.data.name);

            }else if (node.level === 3) {

            }else if (node.level === 4) {

            }else if (node.level === 5) {

            }

        }

懒加载部分:

loadNode(node, resolve) {  

            if (node.level === 0) {  //level是树的层级
return resolve([{ name: '列表' }]); //初始树节点
}
if (node.level === 1) { //层级为1的数据,层级2 3 4 5类同 this.$axios.get('http:// ?', {
params: {
pageNo: 1
}
})
.then(function (response) { //拼装数据,[object] let params=[]
for(let i=0;i<response.data.data.length;i++){ let param={leaf:false,name:'',ldId:''}
param.leaf=false;
param.name=response.data.data[i].ldName;
param.ldId=response.data.data[i].id; //存储楼的id
params.push(param); } return resolve(params);
})
.catch(function (error) {
console.log(error);
}); }
}

2.router

在Demo里,已经有两层路由的嵌套,而我们现在要利用树导航,则需要第三层路由嵌套,需要弄清以下问题:

① 上一层路由是什么,也就是第二层路由是什么,设置好router配置文件的Children

② 相应的也要嵌套,第一层在App.vue,第二层在外部导航菜单Home.vue里,第三层必须在显示树节点的文件里,因为要求同一页面上内容,左侧导航右侧显示,所以第三层路由显示内容的位置是在Home.vue的router-view显示内容里的router-view

其他,例如考虑到兼容问题,用 mode:'hash' ,设置参数用以传递id和层级传递信息(注意:非层际)

<template>
<div class="wrapper">
<v-head></v-head> <!--应注意到,这里的v-head是import进来并且注册可用的组件-->
<v-sidebar></v-sidebar>
<div class="content-box" :class="{'content-collapse':collapse}">
<!-- <v-tags></v-tags> --> <!-- 实现标签效果,这里由于业务逻辑不适用,所以不用 -->
<div class="content">
<transition name="move" mode="out-in">
<keep-alive>
<router-view></router-view>
</keep-alive>
</transition>
</div>
</div>
</div>
</template>

存在的问题:当我们已显示第三层内容时,单击左侧导航菜单(第二层),会无法切换,必须先点击树的任意节点,再点击导航菜单才可正常切换。

3.关于table的格式化显示

例如,我想当变量flag为1时,显示在家,为0时,显示离家。则需要用到格式化显示,具体实现如下:

 <el-table-column prop="flag" :formatter="formatter1"label="状态"  sortable width="150"></el-table-column>
formatter1(row, column) {

              if(row.flag==='1'){  //身份

                return '房主'

              }else{

                return '房客'

              }

       }

本文学习自:https://www.cnblogs.com/ww01/p/9060212.html

vue层级关系的数据管理的更多相关文章

  1. Vue 使用Spread.js没有层级关系(隐藏与显示)

    Vue 使用Spread.js没有层级关系(隐藏与显示) 1.vue会给元素加一个监控属性.去掉 spread.js没有层级关系过半是column中值的问题

  2. NGUI 层级关系控制

    NGUI元素的遮挡情况是不依赖空间关系,所以在NGUI上添加特效有时候特别蛋疼,特别是美术同学还要依赖空间关系来控制特效效果,那先看看看NGUI的层级是怎么处理的,不过下面的描述都是针对单个相机下的P ...

  3. 树状结构Java模型、层级关系Java模型、上下级关系Java模型与html页面展示

    树状结构Java模型.层级关系Java模型.上下级关系Java模型与html页面展示 一.业务原型:公司的组织结构.传销关系网 二.数据库模型 很简单,创建 id 与 pid 关系即可.(pid:pa ...

  4. 【吐血分享】SQL Server With As 递归获取层级关系数据

    纯洁的一周又开始了,今天看到一则新闻,笑尿了,和袁友们一起娱乐下 最近两月在做基于Saas模式的人力资源管理产品,平常数据库设计我经常会遇到如下需求场景: 以前商城类网站在设计类型表的时候,设计成单表 ...

  5. CTE计算层级关系

    推广渠道表有ParentID字段,代表上下层级关系.现要统计每个推广员,推广了多少人? --创建表结构,插入测试数据 USE DBA_Monitor GO CREATE TABLE [dbo].[TG ...

  6. Unity NGUI和UGUI与模型、特效的层级关系

    目录 1.介绍两大UI插件NGUI和UGUI 2.unity渲染顺序控制方式 3.NGUI的控制 4.UGUI的控制 5.模型深度的控制 6.粒子特效深度控制 7.NGUI与模型和粒子特效穿插层级管理 ...

  7. MFC窗口的父子关系和层级关系

    一直对窗口之间的关系有些混乱,遇到需要指定父窗口的函数时常常要考虑很久,究竟父窗口是哪个窗口,遂上网查资料,略有所悟,简记如下: 对话框中的所有控件(比如Button等)都是其子窗口.        ...

  8. NGUI与特效的层级关系

    通过调整特效的 render queue 来解决特效与NGUI界面之间的层级关系问题,用以下脚本解决: using System.Collections.Generic; using UnityEng ...

  9. php解析出带层级关系的mpp文件

    本来要使用DHX gantt插件自带的API做导入,可是做完后,又发现不稳定,不能访问了 可能是屏蔽掉了 所以又想起可以使用javaBridge,借用java的MPXJ php解析mpp的 上一篇介绍 ...

随机推荐

  1. liunx 运维知识四部分

    一. 权限介绍及文件权限测试 二. 目录权限测试 三. 默认控制权限umask 四. chown修改属性和属组 五. 网站安全权限介绍 六. 隐藏属性介绍 七. 特殊权限s 八. 特殊权限t 九. 用 ...

  2. java中级——集合框架【2】-二叉树

    二叉树 二叉树概念 首先我们要明确,二叉树由各种节点组成:还有就是二叉树特点:(1)每个节点都可以有左子节点,右子节点(2)每一个节点都有一个值 如图所示: 代码所示: package cn.jse. ...

  3. mysql定时任务event——清理过期数据

    需要删除数据的表名:t_req_log 建表sql CREATE TABLE `t_req_log` ( `id` ) NOT NULL AUTO_INCREMENT, `host` ) DEFAUL ...

  4. python数学第一天【极限存在定理】

    1.基本回忆 2.两边夹定理 推论1. 基本三角函数的极限 2.极限存在定理 单调有界数列必有极限 (1)单调递增有上界数列必有极限 (2)单调递减有下界数列必有极限 推论1: (1+1/n)^n有极 ...

  5. jmeter元素

    1 test plan functional test mode 选择项:如果勾选 jmeter 会记录从服务器返回的响应数据,如果监视器-选择了文件-则会保存到对应文件 测试jmeter是否配置正确 ...

  6. SpringBoot之通过yaml绑定注入数据

    依赖包: <!--配置文件注解提示包--> <dependency> <groupId>org.springframework.boot</groupId&g ...

  7. 将数组Arrays转成集合List

    String[] split = pids.split("-"); //将数组split转成集合 List<String> asList = Arrays.asList ...

  8. Codevs1541[USACO]围墙涂色

    离散加差分有点涨姿势啊 对我这种菜鸡而言还是第一次看到啊qwq 题面 大意 :n次,每次覆盖一个区间,求覆盖过m次的节点个数 sol:大概是差分的思想加上离散,就可以解决普通差分无法解决的问题了,比如 ...

  9. BZOJ3435[Wc2014]紫荆花之恋——动态点分治(替罪羊式点分树套替罪羊树)

    题目描述 强强和萌萌是一对好朋友.有一天他们在外面闲逛,突然看到前方有一棵紫荆树.这已经是紫荆花飞舞的季节了,无数的花瓣以肉眼可见的速度从紫荆树上长了出来.仔细看看的话,这个大树实际上是一个带权树.每 ...

  10. [踩过的坑]Elasticsearch.Net 官网示例的坑

    经过昨天的ElasticSearch 安装,服务以及可以启动了,接下来就可以开发了,找到了官网提供的API以及示例,Es 官方提供的.net 客户端有两个版本一个低级版本: [Elasticsearc ...