Vue+abp树形表格
项目中需要用到树形表格,其他同学找了一个ZkTable,我也就跟着用了,不太好用,有更好的记得联系我。先说下缺点,如果这些不能满足你,后面也没必要看了。
缺点如下(也可能我不会用,如果你会一定记得告诉我):
- 第一列不能使用模板数据,必须是简单的属性字段,也就不能使用自定义html标签了,如果你用了,不好意思,整个数据显示不出来
- 单选没有高亮(根本没有单选?),反正我用的多选框代替单选
- 模板使用的插槽而不是render函数,模板复选框绑定的数据只能单向绑定,即在界面点选可以修改属性值,但是修改属性值不会更新页面选中状态
- 没有分页
- 绑定数据不能直接使用属性套vuex中的数据,更新了数据不会刷新页面
使用方法
首先安装插件
yarn add vue-table-with-tree-grid
在页面中引用
<template>
<zk-table
ref="table"
sum-text="sum"
index-text="#"
:data="listdata"
:columns="columns"
:stripe="props.stripe"
:border="props.border"
:show-header="props.showHeader"
:show-summary="props.showSummary"
:show-row-hover="props.showRowHover"
:show-index="props.showIndex"
:tree-type="props.treeType"
:is-fold="props.isFold"
:expand-type="props.expandType"
:selection-type="props.selectionType"
>
<template slot="selectChk" scope="scope">
<Checkbox v-model="chkmodel(scope.row).isChecked"></Checkbox>
</template>
</zk-table>
</template>
<script lang="ts">
import { Component, Vue, Inject, Prop, Watch } from "vue-property-decorator";
import util from "@/lib/util";
import PageRequest from "@/store/entities/page-request";
import AbpBase from "@/lib/abpbase";
import ZkTable from "vue-table-with-tree-grid";
Vue.use(ZkTable);
export default class xxx extends AbpBase{
props: any = {
stripe: true, //是否显示间隔斑马纹
border: true, //是否显示纵向边框
showHeader: true, //是否显示表头
showSummary: false, //是否显示表尾合计行
showRowHover: true, //鼠标悬停时,是否高亮当前行
showIndex: false, //是否显示数据索引
treeType: true, //是否为树形表格
isFold: false, //树形表格中父级是否默认折叠
expandType: false, //是否为展开行类型表格(为 True 时,需要添加作用域插槽, 它可以获取到 row, rowIndex)
selectionType: false //是否为多选类型表格
};
listdata: any = [];
get list() {
return this.listdata;
//********这里不能直接用vuex的数据做属性,更新了数据界面不会跟新********
//return this.$store.state.xxx.List;
}
async search() {
request={};
console.log(this.request)
await this.$store.dispatch({
type: "xxx/getList",
data: request
});
this.listdata = this.$store.state.xxx.List;
}
chkmodel(row) {
return this.getChkModel(row.id, this.listdata);
}
getChkModel(id, ls: Array<any>) {
for (let index = 0; index < ls.length; index++) {
const element = ls[index];
if (element.id == id) {
return element;
}
if (!!element.children) {
let c = this.getChkModel(id, element.children);
if (!!c) {
return c;
}
}
}
}
columns = [
// {
// label: "名称",
// type: "template",
// width: "100px",
// template: "namede"
// },
{
label: "名称",
prop: "name",
resizable: true
},
{
label: "类型",
prop: "typeName"
},
{
label: "选中",
type: "template",
width: "100px",
template: "selectChk"
}
];
}
</script>
嗯,就这样

参考资料
Vue+abp树形表格的更多相关文章
- 手把手教你实现一个Vue无限级联树形表格(增删改)
前言平时我们可能在做项目时,会遇到一个业务逻辑.实现一个无限级联树形表格,什么叫做无限级联树形表格呢?就是下图所展示的内容,有一个祖元素,然后下面可能有很多子孙元素,你可以实现添加.编辑.删除这样几个 ...
- ELement-UI之树形表格(treeTable&&treeGrid)
先上图来一波 支持无限层级,支持新增子级时自动打开父级,支持编辑时自动打开父级,执行操作时自带动画效果,支持初始化时设置全部打开或者关闭,支持一键展开与关闭丝滑般的无延迟 由于基于el-table扩展 ...
- easyUI中treegrid组件构造树形表格(简单数据类型)+ssm后台
这几天做的项目要求用树形表格的形式展示一部分数据,于是就想到了使用easyUI的treegrid组件,但几经翻查各种资料,发现数据类型大多采取标准数据类型,即包含children元素的数据类型,小编查 ...
- ExtJS4.2学习(15)树形表格(转)
鸣谢:http://www.shuyangyang.com.cn/jishuliangongfang/qianduanjishu/2013-11-27/185.html --------------- ...
- easyui源码翻译1.32--TreeGrid(树形表格)
前言 扩展自$.fn.datagrid.defaults.使用$.fn.treegrid.defaults重写默认值对象.下载该插件翻译源码 树形表格用于显示分层数据表格.它是基于数据表格.组合树控件 ...
- TreeGrid( 树形表格)
本节课重点了解 EasyUI 中 TreeGrid(树形表格)组件的使用方法,这个组件依赖于DataGrid(数据表格)组件 一. 加载方式//建立一个 JSON 文件[{"id" ...
- 第二百二十八节,jQuery EasyUI,TreeGrid(树形表格)组件
jQuery EasyUI,TreeGrid(树形表格)组件 学习要点: 1.加载方式 2.属性列表 3.事件列表 4.方法列表 本节课重点了解 EasyUI 中 TreeGrid(树形表格)组件的使 ...
- jQuery EasyUI/TopJUI创建树形表格下拉框
jQuery EasyUI/TopJUI创建树形表格下拉框 第一种方法(纯HTML创建) <div class="topjui-row"> <div class= ...
- 【整理】treeGrid 树形表格
treeGrid 树形表格 https://fly.layui.com/extend/treeGrid/
随机推荐
- Nuxt项目支持import写法的最新解决方案
最近在看Nuxt开发vue项目的视频,视频中讲到Nuxt项目不支持es6的import写法.并提供了解决方案: 1.在package.json中添加我标红的部分: "scripts" ...
- springcloud_Hystrix(熔断器)
为什么需要 Hystrix? 在微服务架构中,我们将业务拆分成一个个的服务,服务与服务之间可以相互调用(RPC).为了保证其高可用,单个服务又必须集群部署.由于网络原因或者自身的原因,服务并不能保证服 ...
- Good Article Good sentence HDU - 4416 (后缀数组)
Good Article Good sentence \[ Time Limit: 3000 ms\quad Memory Limit: 32768 kB \] 题意 给出一个 \(S\) 串,在给出 ...
- LeetCode 505. The Maze II
原题链接在这里:https://leetcode.com/problems/the-maze-ii/ 题目: There is a ball in a maze with empty spaces a ...
- XSS Challenges 练习(1-10)
这几天对XSS Challenges平台进行了练习,网上也有一些相应的解答博客,但是写得都差不多,我觉得可以试一下从怎么做这种题的角度出发去思考问题. 第一题:http://xss-quiz.int2 ...
- Ubuntu虚拟机下忘记密码的解决方法
由于好久没有用虚拟机里的ubuntu系统,导致忘记了密码.试了好多遍,密码都是错的,内心感到崩溃呀.选择只有两个:一个是重装系统,另一个是找回密码.自己不想重装系统只能找回密码了,在网上百度了好多,都 ...
- VxLAN原理
VxLAN 背景介绍: 从上个世纪虚拟化技术就被提出,但由于硬件技术达不到,而没能被重视,自本世纪初硬件制造技术越来越来强,导致很多单台物理机只跑一个应用或几个应用根本无法完全使用硬件的全部性能,导致 ...
- Spring整合MyBatis整合
1.导入所需要的jar依赖 !--MyBatis和Spring的整合包 由MyBatis提供--> <dependency> <groupId>org.mybatis&l ...
- uni-app 实现分享生成图片
<template> <view> <view class="personal_li" @click="shareClick"&g ...
- javaweb利用filter拦截未授权请求
项目上有个小需求,要限制访问者的IP,屏蔽未授权的请求.该场景使用过滤器来做再合适不过了. SecurityFilter.java: public class SecurityFilter imple ...