element tree grid
1.0.0
tree grid extends element ui with vue
having problems with <el-table-column type="selection" fixed></el-table-column>
if you have any idea , welcome !!!
demos
start
clone to your project
git clone https://github.com/foolishchow/element-tree-grid.git
cd element-tree-grid
npm install #or yarn
npm run devuse with node
npm install element-tree-grid --save//common
var ElTreeGrid = require('element-tree-grid');
Vue.component(ElTreeGrid.name,ElTreeGrid);useage
common useage
<el-table :data="model.menus" border max-height="250">
<el-table-tree-column
file-icon="icon icon-file"
folder-icon="icon icon-folder"
prop="label" label="labelname" width="220"></el-table-tree-column>
<el-table-column prop="description" label="description" width="180"></el-table-column>
</el-table>get children from remote
<div id="app" style="padding: 30px;">
<el-table :data="model.menus" border max-height="400">
<el-table-tree-column
:remote="remote"
file-icon="icon icon-file"
folder-icon="icon icon-folder"
prop="label" label="MenuName" width="320"></el-table-tree-column>
<el-table-column prop="id" label="id" width="180"></el-table-column>
<el-table-column prop="description" label="Description" :show-overflow-tooltip="true" width="180"></el-table-column>
</el-table>
</div>new Vue({
el: "#app",
data: {
model: {
menus: trees
}
},
methods:{
remote(row,callback){
// async or sync are both supported
setTimeout(function() {
callback(row.children)
},500)
}
}
})attributes
all props of
el-table-columnare supported;
| name | description | values |
|---|---|---|
| prop | same as el-table-column |
|
| label | same as el-table-column |
|
| width | same as el-table-column |
|
| fixed | same as el-table-column |
|
| resizable | same as el-table-column |
|
| formatter | same as el-table-column |
|
| className | same as el-table-column |
|
| treeKey | the key for neasted parse | type:String,default: 'id' |
| childNumKey | the key of childNum | type:String,default: 'child_num' |
| parentKey | the key of parent_id | type:String, default: 'parent_id' |
| levelKey | the key of node's depth | type:String,default: 'depth' |
| childKey | the key of node's children been placed | type:String, default: 'children' |
| fileIcon | file icon className | type:String, default: 'el-icon-file' |
| folderIcon | folder icon className ,when opend use: folderIcon-open |
type:String,default: 'el-icon-folder' |
| remote | remote method to get children | type:Function,default: null |
| allRemote | request all data from remote ,you have to config prop remote first,default use request cache |
type:Boolean,default: false |
| expandAll | expand all nodes when loaded | type:Boolean,default: false |
| expandKey | key tells if the line is opened at inited ( just expended once ) | type:String,default: expanded |
| indentSize | indent number ,united in px |
type:Number,default: 14 |
examples
<el-table-tree-column
file-icon="icon icon-file"
folder-icon="icon icon-folder"
prop="label"
label="labelname"
width="220"></el-table-tree-column><el-table-tree-column
file-icon="icon icon-file"
folder-icon="icon icon-folder"
prop="label"
label="labelname"
:formatter="formatter"
width="220"></el-table-tree-column><el-table-tree-column
file-icon="icon icon-file"
folder-icon="icon icon-folder"
prop="label"
label="labelname"
width="220">
<template slot-scope="scope">
<span>prefix =></span>
<span>{{scope.row.label}} -- {{scope.row.id}}</span>
<span><= suffix</span>
</template>
</el-table-tree-column>