日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術(shù)文章
文章詳情頁

vue+element UI實(shí)現(xiàn)樹形表格

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

本文實(shí)例為大家分享了vue+element UI實(shí)現(xiàn)樹形表格的具體代碼,供大家參考,具體內(nèi)容如下

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

vue+element UI實(shí)現(xiàn)樹形表格

eval.js:將數(shù)據(jù)轉(zhuǎn)換成樹形數(shù)據(jù)

/*** @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: { // 格式化數(shù)據(jù)源 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; }, // 圖標(biāo)顯示 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: '無' } ]} ] } ] } ] }; },

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Vue
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
亚洲精品福利| 日韩在线麻豆| 久久狠狠久久| 欧美日韩一区二区三区四区在线观看 | 91精品国产乱码久久久久久久| 福利片在线一区二区| 国产一区丝袜| 日韩国产激情| 亚洲香蕉网站| 亚洲欧美激情诱惑| 亚洲欧美网站在线观看| 日本成人在线一区| 久久激情五月婷婷| 精品国产18久久久久久二百| 国产成人精品亚洲线观看| 精品久久国产一区| sm久久捆绑调教精品一区| 综合欧美亚洲| 高清久久精品| 国产精品久久观看| 欧美成人a交片免费看| 久久国产精品成人免费观看的软件| 久久精品九色| 成人欧美一区二区三区的电影| 日本精品黄色| 欧美成人久久| 午夜在线精品| 亚州欧美在线| 91精品国产自产精品男人的天堂| 国产精品久久久久av蜜臀 | 男女激情视频一区| 亚洲电影在线一区二区三区| 每日更新成人在线视频| 国产精品自在| 91看片一区| 国产免费成人| 91成人在线精品视频| 91综合网人人| 免费看日韩精品| 免费在线日韩av| 精品一区毛片| 69堂免费精品视频在线播放| 中文字幕高清在线播放| 国产农村妇女精品一二区| 欧美一区自拍| 日韩中文影院| 亚洲一区亚洲| 国产精品一区二区中文字幕| 日韩另类视频| 日本a级不卡| 激情欧美国产欧美| 国产欧美视频在线| 蜜臀av免费一区二区三区| 欧美日韩一视频区二区| 久久国产欧美| 国产欧美一区二区精品久久久| 国产一区二区中文| 国产精品亚洲产品| 一区在线视频观看| 欧美黑人做爰爽爽爽| 亚洲精品网址| 麻豆精品久久| 欧美成人亚洲| 欧美91在线| 在线免费观看亚洲| 日本欧美不卡| 欧美日韩一区自拍| 国产精品毛片一区二区三区| 精品免费av| 日韩中文av| 欧美~级网站不卡| 欧美1区二区| 亚洲精品美女91| 国产91精品对白在线播放| 国产精品永久| 中文字幕一区二区三区日韩精品 | 激情久久99| 中文字幕一区二区av| 色爱av综合网| 美女在线视频一区| 亚洲精品伊人| 午夜精品一区二区三区国产| 国产精品白丝av嫩草影院| 亚洲综合精品| 久久一区二区三区喷水| 激情久久99| 国产日韩欧美一区| 美国三级日本三级久久99 | 亚洲视频国产精品| 色综合www| 国产在线观看91一区二区三区 | 蜜臀av一区二区在线免费观看| 久久久久久婷| 国产乱子精品一区二区在线观看 | 国产精品一级| 亚洲精品一二| 国产精品美女久久久| 久久久久亚洲| 午夜久久免费观看| 99久久婷婷| 亚洲综合中文| 啪啪国产精品| 精品91福利视频| 欧美在线不卡| 综合激情五月婷婷| 欧美在线影院| 91亚洲国产高清| 风间由美中文字幕在线看视频国产欧美| 水蜜桃久久夜色精品一区的特点| 黑森林国产精品av| 国产精品久久久久久久久妇女| 国产精品午夜一区二区三区| 日韩一区二区三区在线看| 久久av一区| 红桃视频欧美| 亚洲女同中文字幕| 91久久黄色| 西西人体一区二区| 欧美在线资源| 狠狠爱www人成狠狠爱综合网| 欧美美女一区| а√天堂8资源在线| 国产精品久久久久久久久久白浆 | 久久中文在线| 91九色综合| 国产亚洲人成a在线v网站| 日本免费在线视频不卡一不卡二| 午夜a一级毛片亚洲欧洲| 日产欧产美韩系列久久99| 婷婷久久免费视频| 日韩国产在线观看一区| 欧美偷窥清纯综合图区| 午夜在线播放视频欧美| 玖玖精品视频| 91视频一区| 久久三级福利| 久久国产66| 婷婷成人av| 国产+成+人+亚洲欧洲在线| 日韩黄色大片网站| 日韩中文字幕亚洲一区二区va在线| 婷婷五月色综合香五月| 欧美激情久久久久久久久久久| 国产91在线精品| 亚洲欧美日韩精品一区二区| 亚洲男人在线| 中文字幕色婷婷在线视频| 日韩精品一区二区三区免费观看| 亚洲精品乱码| 日韩va欧美va亚洲va久久| 国产一卡不卡| 日韩一区二区三区免费| 国产精品亚洲人成在99www | 欧美亚洲日本精品| 国产精品久久久久久久免费观看| 91麻豆精品激情在线观看最新 | 日韩欧美在线中字| 激情久久久久久久| 亚洲精品日韩久久| 精品资源在线| 国产精品99一区二区| 中文字幕视频精品一区二区三区| 成人羞羞在线观看网站| 欧美在线看片| 久久精品青草| 国产欧美日韩在线一区二区| 国产精品原创| 9国产精品视频| 国产探花在线精品| 国产精品3区| 国产精品中文| 国产精品va视频| 日韩成人亚洲| 日韩免费精品| 国产精品久久久久蜜臀| japanese国产精品| 国产美女久久| 久久精品青草| 日韩高清电影免费| 日韩毛片视频| 日日夜夜免费精品| 亚洲一级少妇| 综合干狼人综合首页| 久久伊人国产| 国产色综合网| 精品九九在线| 亚洲神马久久| 成人国产综合| 日本在线视频一区二区| 日韩不卡一区| 亚洲精品福利| 久久婷婷一区| 久久国产欧美日韩精品| 九色精品91| 精品久久国产一区| 日韩久久99| 欧美jjzz| 国产福利电影在线播放| 日韩一区二区三免费高清在线观看| 中文字幕在线看片|