element-ui tree树形组件自定义实现可展开选择表格



<div class="invoice-list">
<!-- 表头的值,自己单独写的 -->
<ul class="invoice-header">
<li class="invoice-item">发票号</li>
<li class="invoice-item">订单号</li>
<li class="invoice-item">发票金额</li>
<li class="invoice-item">开票日期</li>
<li class="invoice-item">收款方式</li>
<li class="invoice-item">状态</li>
<li class="invoice-item">发票收款日期</li>
<li class="invoice-item">操作</li>
</ul>
<el-tree
:props="props"
:data="tableData"
show-checkbox
default-expand-all
ref="treeData"
@check-change="handleCheckChange">
<!-- 使用自定义,需要加slot-scope,返回两个值,node是当前节点指定的对象
data是当前节点的数据 -->
<div class="custom-tree-node" slot-scope="{ node, data }">
<div class="total_info_box clearfix" v-if="data.span">
<span><i>对账单号:</i> {{data.accountNo | isEmptyVal}}</span>
<span><i>对账金额:</i> {{data.totalReconciledAmount | formatUSD}}</span>
<span><i>对账日期:</i> {{data.confirmAccountDate | formatYMD}}</span>
</div>
<span v-else class="table_info_node">
<span class="table_info_item">{{data.invoiceNo}}</span>
<span class="table_info_item">{{data.orderNo}}</span>
<span class="table_info_item">{{data.totalAmountTax}}</span>
<span class="table_info_item">{{data.billingDate}}</span>
<span class="table_info_item">{{data.forCollection}}</span>
<span class="table_info_item">{{data.requestStatus}}</span>
<span class="table_info_item">{{data.receiptDate}}</span>
<span class="table_info_item"><el-button @click="toInvoiceDetail(data)">详情</el-button></span>
</span>
</div>
</el-tree>
</div>
js部分
data () {
return {
props: {
label: 'accountNo', // 需要指定的节点渲染对象属性
children: 'orderInvoiceAssemblyList' // 指定的子级
},
tableData: [] // tree组件渲染的数据
}
}, // 方法集合
methods: {
// tree组件渲染的数据列表
getSupplierPayInvoice () {
this.tableData = [{
accountId: 13,
accountNo: `66`,
orderNo: '444',
totalReconciledAmount: 1000,
confirmAccountDate: 1548482834000,
span: true,
orderInvoiceAssemblyList: [{
invoiceNo: '67448',
orderNo: '444',
totalAmountTax: 1999,
billingDate: 1548482834000,
forCollection: 999,
requestStatus: '未付款',
receiptDate: '2019-1-30',
accountInvoiceId: 11
}, {
orderNo: '55',
totalAmountTax: 2999,
billingDate: 1548482834000,
forCollection: 5555,
requestStatus: 1,
accountInvoiceId: 12
}]
}, {
accountId: 14,
accountNo: '789',
orderNo: '444',
totalReconciledAmount: 2000,
confirmAccountDate: 1548482834000,
span: true,
orderInvoiceAssemblyList: [{
orderNo: '888',
totalAmountTax: 3999,
billingDate: 1548482834000,
forCollection: 999,
requestStatus: 2,
accountInvoiceId: 13
}, {
orderNo: '999',
totalAmountTax: 4888,
billingDate: 1548482834000,
forCollection: 5555,
requestStatus: 1,
accountInvoiceId: 14
}, {
orderNo: '889',
totalAmountTax: 4888,
billingDate: 1548482834000,
forCollection: 5555,
requestStatus: 1,
accountInvoiceId: 15
}]
}] }, // tree组件选择改变事件
handleCheckChange (val) {
// console.log(val)
// 使用getCheckedNodes可以获取当前被选中的节点数据
let selected = this.$refs.treeData.getCheckedNodes()
console.log(33, selected)
}
}
sass样式
.invoice-list {
border: 1px solid #ebeef5;
margin-top: 10px;
.invoice-header {
background-color: #f8f8f9;
display: flex;
padding-left: 63px;
border-bottom: 1px solid #ebeef5;
.invoice-item {
padding: 10px;
padding-right: 0;
flex: 1;
border-left: 1px solid #ebeef5;
padding-left: 10px;
}
}
.el-tree-node__content {
background: #f2f2f2;
height: 40px;
}
.el-tree-node__children {
.el-tree-node__content {
background: #fff;
border-bottom: 1px solid #ebeef5;
}
}
.custom-tree-node {
width: 100%;
height: 100%;
.total_info_box {
background: #f2f2f2;
line-height: 40px;
span{
float: left;
font-size: 12px;
margin: 0 15px;
i{
display: inline-block;
margin-right: 3px;
}
}
}
.table_info_node {
display: flex;
height: 100%;
.table_info_item {
flex: 1;
height: 100%;
border-left: 1px solid #ebeef5;
padding-left: 10px;
line-height: 40px;
}
}
}
}
element-ui tree树形组件自定义实现可展开选择表格的更多相关文章
- Element ui tree树形控件获取当前节点id和父节点id
低版本Element ui tree树形控件获取当前节点id和父节点id的方法:点击查看 最新版本Element ui tree树形控件获取当前节点id和父节点id教程: 1.找到node_modul ...
- Element ui tree树形控件获取父节点id
Element-ui官网给的方法 getCheckedKeys() { console.log(this.$refs.tree.getCheckedKeys()); }, 这种只有在所有子级都被选中的 ...
- iview实战 : 树形组件自定义
Tree树形组件是 iview 中相对复杂的一个组件. 自定义节点内容 使用强大的 Render 函数可以自定义节点显示内容和交互,比如添加图标,按钮等. ——官方文档 但官方的 example 只有 ...
- vue问题三:element ui的upload组件上传图片成功和移除事件
element ui的upload组件上传图片成功和移除事件: 登录后获取到后台传的token存到中: sessionStorage.setItem("token",data.ob ...
- vue的$nextTick使用总结,this.$refs为undefined的解决办法,element Ui的树形控件setCheckedKeys方法无法使用
其实这3个讲的是一个问题,先说下问题,我在watch里设置一个监听,当弹窗打开时,自动添加树形的默认选中项, 但奇怪的是this.$refs为undefined,自然setCheckedKeys无法使 ...
- Element UI tree 回显问题
Part.1 问题 写项目时遇到一个棘手的问题,在做关于权限功能时,点击修改需要显示角色原本对应的权限.涉及到了 tree 组件回显,但是有一个很尴尬的问题:tree 组件只要父节点选中,那么子节点就 ...
- vue+Element实现tree树形数据展示
组件: Element(地址:http://element.eleme.io/#/zh-CN/component/tree):Tree树形控件 <el-tree ref="expand ...
- Element中Tree树结构组件中实现Ctrl和Shift多选
在Element中的树结构中, 实现多选功能,首先的是判断有没有按下键盘ctrl和shift按键.但是在Element中的tree组件的左键点击事件是没有提供$event鼠标属性判断的.所以就需要在函 ...
- 关于Element UI中select组件中遇到的问题
问题一:在使用select组件设置多选功能后,窗口抖动问题? 详细描述:在我使用select做多选的功能时出现了窗口抖动的问题,测试的时候发现,在有些人的电脑上抖动,有些人的电脑上不抖,找了很多文档, ...
随机推荐
- SQL2000中创建作业(定时查询,更新)(转)
出处:http://blog.csdn.net/xys_777/article/details/5683413 SQL2000中创建作业(定时查询,更新)企业管理器 --管理 --SQL Server ...
- linux常用Java程序员使用命令(二)
出品人:北极的大企鹅 1. pwd 显示当前路径 2. cd 切换目录 . .. ~ 例如: cd /root 3. ls 显示文件(夹) -l 显示详细信息 -a 显示全部,包括隐藏文件(夹)(这个 ...
- js基础巩固练习
---恢复内容开始--- 今天讲了js的基础知识 js的组成3部分1 ECMAscript 核心 2 DOM 文本对象模型 3BOM 浏览器模型 js 的引入方式三种 1 在body里作为标 ...
- ctx简介
啥也不说,直接上图:
- Linq集合操作之Intersect,Except,Union源码分析
Linq集合操作之Intersect,Except,Union源码分析 linq的集合运算 常见的集合运算有哪些? 这三个扩展方法在我们实际使用中用的还是非常多的,而且这里还涉及到了“复杂度” 无算法 ...
- 织梦CMS让channelartlist标签支持currentstyle【转】
打开include\taglib\channelartlist.lib.php找到 $pv->Fields['typeurl'] = GetOneTypeUrlA($typeids[$i]); ...
- Transaction And Lock--死锁错误号1205
在TSQL中,如果需要判断当前错误是否是因为死锁引起,可以使用ERROR_NUMBER()=1205来判断在C#中,使用SQLException来捕获 SQLException.Number=1205 ...
- 开源的 .Net Core MVC CMS 推荐
简介 ZKEACMS Core 是基于 ZKEACMS 的 Asp.Net Core 版本. 架设环境: .Net Core 跨平台 Microsoft Sql Serverl 2008 或以上 .N ...
- ML.NET 0.9 版本发布---.net下的机器学习引擎
欢迎来到 2019年!在过去的9个月里, 我们一直在为ML.NET添加新的特征和改进相关功能.在提交1.0版本之前,我们将专注于包的整体稳定性并对API进行不断优化, 扩大测试的覆盖面并对开发文档进行 ...
- vim 插入时间戳的方法
这里主要说明用内置函数 strftime 来插入,而不用 :r!date 或类似方法. 用命令 "=strftime('%c')<Ret>p ,或<C-r>=strf ...