el-select组件包裹el-tree组件实现数据回显
el-select组件包裹el-tree组件实现数据回显
最近做项目要用到下拉框中存放树型结构的数据,在网上找到可以使用el-select包裹el-tree实现,但是总是不能实现数据的回显,用了一天时间,不断尝试,终于成功了,做个笔记,以防遗忘。
以下.json文件都是模拟数据
树型结构数据 student.json
[{ "id": 1, "name": "班干", "children": [{ "id": "a1", "name": "潘艺文" }, { "id": "a2", "name": "葛安国" }, { "id": "a3", "name": "曹苗苗" }] }, { "id": 2, "name": "学生", "children": [{ "id": "a4", "name": "刘翠翠" }, { "id": "a5", "name": "李婷婷" }, { "id": "a6", "name": "韩梦雪" }] }, { "id": 3, "name": "老师", "children": [{ "id": "a7", "name": "朱永忠" }, { "id": "a8", "name": "施璐" }, { "id": "a9", "name": "王伽珞" }, { "id": "a10", "name": "张琳" }] }, { "id": 4, "name": "辅导员", "children": [{ "id": "a7", "name": "刁莉莉" }] }, { "id": 5, "name": "其他", "children": [] } ]
index.vue
模拟数据回显
以上文件的关键点属性及方法
el-select
multiple 是否多选
collapse-tags 多选时是否按文字的形式展示
selectChange 选中的数据发生改变时触发
v-model="currentValue" 下拉框中被选中的值 (字符串类型)
el-option
style="height:auto" 设置下拉的高度被内容撑开(不然内容会被遮住)
:value="selectData" 下拉框中的数据 (数组类型)
el-tree
:data="studentTreeData" 属性结构要展现的数据
node-key="id" 规范节点的唯一性
:props="defaultProps" 规定树型结构要展示哪些内容
show-checkbox 树型结构可选
:check-strictly="true" 父子节点不关联 ,可以用到父节点禁止选中
@check-change="handleCheckChange" 节点选中状态发生变化时的回调
js代码 其中的echo.json表示要回显的数据
需要回显的数据 echo.json
[{ "id": "a1", "name": "潘艺文" }, { "id": "a2", "name": "葛安国" }, { "id": "a3", "name": "曹苗苗" }, { "id": "a4", "name": "刘翠翠" }, { "id": "a5", "name": "李婷婷" }, { "id": "a6", "name": "韩梦雪" }]