电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

vue+element UI實現樹形表格

瀏覽:64日期:2022-10-14 16:49:51

本文實例為大家分享了vue+element UI實現樹形表格的具體代碼,供大家參考,具體內容如下

一、在component文件夾下新建如下treeTable文件夾,里面有2個文件:

vue+element UI實現樹形表格

eval.js:將數據轉換成樹形數據

/*** @Author: jianglei* @Date: 2017-10-12 12:06:49*/’use strict’import Vue from ’vue’export default function treeToArray(data, expandAll, parent = null, level = null) { let tmp = [] Array.from(data).forEach(function(record) { if (record._expanded === undefined) { Vue.set(record, ’_expanded’, expandAll) } let _level = 1 if (level !== undefined && level !== null) { _level = level + 1 } Vue.set(record, ’_level’, _level) // 如果有父元素 if (parent) { Vue.set(record, ’parent’, parent) } tmp.push(record) if (record.children && record.children.length > 0) { const children = treeToArray(record.children, expandAll, record, _level) tmp = tmp.concat(children) } }) return tmp}

index.vue:樹形表格組件

<template> <el-table :data='formatData' :row- v-bind='$attrs'> <el-table-column v-if='columns.length===0' width='150'> <template slot-scope='scope'> <span v-for='space in scope.row._level' :key='space' /> <span v-if='iconShow(0,scope.row)' @click='toggleExpanded(scope.$index)'> <i v-if='!scope.row._expanded' /> <i v-else /> </span> {{ scope.$index }} </template> </el-table-column> <el-table-column v-for='(column, index) in columns' v-else :key='column.value' :label='column.text' :width='column.width'> <template slot-scope='scope'> <!-- Todo --> <!-- eslint-disable-next-line vue/no-confusing-v-for-v-if --> <span v-for='space in scope.row._level' v-if='index === 0' :key='space' /> <span v-if='iconShow(index,scope.row)' @click='toggleExpanded(scope.$index)'> <i v-if='!scope.row._expanded' /> <i v-else /> </span> {{ scope.row[column.value] }} </template> </el-table-column> <slot/> </el-table></template> <script>/** Auth: Lei.j1ang Created: 2018/1/19-13:59*/import treeToArray from './eval';export default { name: 'TreeTable', props: { /* eslint-disable */ data: { type: [Array, Object], required: true }, columns: { type: Array, default: () => [] }, evalFunc: Function, evalArgs: Array, expandAll: { type: Boolean, default: false } }, computed: { // 格式化數據源 formatData: function() { let tmp; if (!Array.isArray(this.data)) { tmp = [this.data]; } else { tmp = this.data; } const func = this.evalFunc || treeToArray; const args = this.evalArgs ? Array.concat([tmp, this.expandAll], this.evalArgs) : [tmp, this.expandAll]; return func.apply(null, args); } }, methods: { showRow: function(row) { const show = row.row.parent ? row.row.parent._expanded && row.row.parent._show : true; row.row._show = show; return show ? 'animation:treeTableShow 1s;-webkit-animation:treeTableShow 1s;' : 'display:none;'; }, // 切換下級是否展開 toggleExpanded: function(trIndex) { const record = this.formatData[trIndex]; record._expanded = !record._expanded; }, // 圖標顯示 iconShow(index, record) { return index === 0 && record.children && record.children.length > 0; } }};</script><style rel='stylesheet/css'>@keyframes treeTableShow { from { opacity: 0; } to { opacity: 1; }}@-webkit-keyframes treeTableShow { from { opacity: 0; } to { opacity: 1; }}</style> <style scoped>.ms-tree-space { position: relative; top: 1px; display: inline-block; font-style: normal; font-weight: 400; line-height: 1; width: 18px; height: 14px;}.ms-tree-space::before { content: '';}.processContainer { width: 100%; height: 100%;}table td { line-height: 26px;}.tree-ctrl { position: relative; cursor: pointer; color: #2196f3; margin-left: -18px;}</style>

二、在需要的地方引入該組件

例如:在component文件夾下新建a.vue:

<tree-table :data='data' :columns='columns' border/>import treeTable from './TreeTable';components: { treeTable },data() { return { columns: [ { text: '事件', value: 'event', width: 200 }, { text: 'ID', value: 'id' }, { text: '時間線', value: 'timeLine' }, { text: '備注', value: 'comment' } ], data: [ { id: 0, event: '事件1', timeLine: 50, comment: '無' }, { id: 1, event: '事件1', timeLine: 100, comment: '無', children: [ { id: 2, event: '事件2', timeLine: 10, comment: '無' }, { id: 3, event: '事件3', timeLine: 90, comment: '無', children: [{ id: 4, event: '事件4', timeLine: 5, comment: '無'},{ id: 5, event: '事件5', timeLine: 10, comment: '無'},{ id: 6, event: '事件6', timeLine: 75, comment: '無', children: [ { id: 7, event: '事件7', timeLine: 50, comment: '無', children: [ { id: 71, event: '事件71', timeLine: 25, comment: 'xx' }, { id: 72, event: '事件72', timeLine: 5, comment: 'xx' }, { id: 73, event: '事件73', timeLine: 20, comment: 'xx' } ] }, { id: 8, event: '事件8', timeLine: 25, comment: '無' } ]} ] } ] } ] }; },

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。

標簽: Vue
相關文章:
主站蜘蛛池模板: 天津散热器_天津暖气片_天津安尼威尔散热器制造有限公司 | pbootcms网站模板|织梦模板|网站源码|jquery建站特效-html5模板网 | 高清视频编码器,4K音视频编解码器,直播编码器,流媒体服务器,深圳海威视讯技术有限公司 | 国标白水泥,高标号白水泥,白水泥厂家-淄博华雪建材有限公司 | 天津拓展_天津团建_天津趣味运动会_天津活动策划公司-天津华天拓展培训中心 | 智成电子深圳tdk一级代理-提供TDK电容电感贴片蜂鸣器磁芯lambda电源代理经销,TDK代理商有哪些TDK一级代理商排名查询。-深圳tdk一级代理 | 鼓风干燥箱_真空烘箱_高温干燥箱_恒温培养箱-上海笃特科学仪器 | 展厅装修公司|企业展厅设计|展厅制作|展厅搭建—广州展厅装饰公司 | 防爆鼓风机-全风-宏丰鼓风机-上海梁瑾机电设备有限公司 | 贝朗斯动力商城(BRCPOWER.COM) - 买叉车蓄电池上贝朗斯商城,价格更超值,品质有保障! | 首页|光催化反应器_平行反应仪_光化学反应仪-北京普林塞斯科技有限公司 | 环氧乙烷灭菌器_压力蒸汽灭菌器_低温等离子过氧化氢灭菌器 _低温蒸汽甲醛灭菌器_清洗工作站_医用干燥柜_灭菌耗材-环氧乙烷灭菌器_脉动真空压力蒸汽灭菌器_低温等离子灭菌设备_河南省三强医疗器械有限责任公司 | 动库网动库商城-体育用品专卖店:羽毛球,乒乓球拍,网球,户外装备,运动鞋,运动包,运动服饰专卖店-正品运动品网上商城动库商城网 - 动库商城 | 异噻唑啉酮-均三嗪-三丹油-1227-中北杀菌剂厂家 | 山东活动策划|济南活动公司|济南公关活动策划-济南锐嘉广告有限公司 | 云南成考网_云南成人高考报名网 粤丰硕水性环氧地坪漆-防静电自流平厂家-环保地坪涂料代理 | 江苏密集柜_电动_手动_移动_盛隆柜业江苏档案密集柜厂家 | 带锯机|木工带锯机圆木推台锯|跑车带锯机|河北茂业机械制造有限公司| | vr安全体验馆|交通安全|工地安全|禁毒|消防|安全教育体验馆|安全体验教室-贝森德(深圳)科技 | 不锈钢法兰-碳钢法兰-法兰盘生产加工厂家-[鼎捷峰]-不锈钢法兰-碳钢法兰-法兰盘生产加工厂家-[鼎捷峰] | 扬尘在线监测系统_工地噪声扬尘检测仪_扬尘监测系统_贝塔射线扬尘监测设备「风途物联网科技」 | 陕西华春网络科技股份有限公司| 蜘蛛车-登高车-高空作业平台-高空作业车-曲臂剪叉式升降机租赁-重庆海克斯公司 | 高效节能电机_伺服主轴电机_铜转子电机_交流感应伺服电机_图片_型号_江苏智马科技有限公司 | 智能垃圾箱|垃圾房|垃圾分类亭|垃圾分类箱专业生产厂家定做-宿迁市传宇环保设备有限公司 | RTO换向阀_VOC高温阀门_加热炉切断阀_双偏心软密封蝶阀_煤气蝶阀_提升阀-湖北霍科德阀门有限公司 | 企典软件一站式企业管理平台,可私有、本地化部署!在线CRM客户关系管理系统|移动办公OA管理系统|HR人事管理系统|人力 | 大连海岛旅游网>>大连旅游,大连海岛游,旅游景点攻略,海岛旅游官网 | 地源热泵一体机,地源热泵厂家-淄博汇能环保设备有限公司 | 新能源汽车电池软连接,铜铝复合膜柔性连接,电力母排-容发智能科技(无锡)有限公司 | 耐火浇注料-喷涂料-浇注料生产厂家_郑州市元领耐火材料有限公司 耐力板-PC阳光板-PC板-PC耐力板 - 嘉兴赢创实业有限公司 | 铝镁锰板_铝镁锰合金板_铝镁锰板厂家_铝镁锰金属屋面板_安徽建科 | 手机存放柜,超市储物柜,电子储物柜,自动寄存柜,行李寄存柜,自动存包柜,条码存包柜-上海天琪实业有限公司 | 模具硅橡胶,人体硅胶,移印硅胶浆厂家-宏图硅胶科技 | 雨水收集系统厂家-雨水收集利用-模块雨水收集池-徐州博智环保科技有限公司 | 翰墨AI智能写作助手官网_人工智能问答在线AI写作免费一键生成 | 悬浮拼装地板_篮球场木地板翻新_运动木地板价格-上海越禾运动地板厂家 | 台式恒温摇床价格_大容量恒温摇床厂家-上海量壹科学仪器有限公司 | 拉力测试机|材料拉伸试验机|电子拉力机价格|万能试验机厂家|苏州皖仪实验仪器有限公司 | 贴板式电磁阀-不锈钢-气动上展式放料阀-上海弗雷西阀门有限公司 工业机械三维动画制作 环保设备原理三维演示动画 自动化装配产线三维动画制作公司-南京燃动数字 | 球磨机,节能球磨机价格,水泥球磨机厂家,粉煤灰球磨机-吉宏机械制造有限公司 |