
官方文档
官方文档
npm配置
npm install --save @riophae/vue-treeselect
具体使用
- 需要注意的地方是normailzer规范化,后端返回的数据结构未知,但是树形选择器需要结构为id,label,children三个属性,因此需要出来规范。
<template>
<div class="content-part">
<el-form ref="form" :model="formData">
<el-form-item label="资产目录">
<treeselect v-model="formData.id"
:options="assetOptions"
:normalizer="normalizer"
:show-count="true"
placeholder="资产目录"/>
</el-form-item>
</el-form>
</div>
</template>
<script>
//引用
import Treeselect from "@riophae/vue-treeselect"
import "@riophae/vue-treeselect/dist/vue-treeselect.css"
export default {
data() {
return {
formData:{
id:undefined
},
// 资产目录树选项
assetOptions: [],
}
},
created() {
this.getTreeselect()
},
methods: {
/** 查询菜单下拉树结构 */
getTreeselect() {
getTreeWeb().then(response => {
this.assetOptions = response.data.data
});
},
/** 转换菜单数据结构 */
normalizer(node) {
if (node.children && !node.children.length) {
delete node.children;
}
return {
id: node.id,
label: node.name,
children: node.children
};
},
}
}
</script>