由于element中没有树选择组件,但popover可以利用分发取代content属性,所以自己利用popover,tree,select等组件改造成为树选择组件,该组件支持单选,多选,清空和默认选中项。
<template>
<div>
<el-popover
placement="bottom-start"
:width="width"
@hide="popoverHide"
:append-to-body="false"
popper-class="myPopover"
>
<el-tree
class="common-tree"
:style="{ height: height + 'px' }"
ref="tree"
:data="data"
:props="defaultProps"
:show-checkbox="multiple"
:node-key="nodeKey"
:check-strictly="checkStrictly"
default-expand-all
:expand-on-click-node="false"
:default-checked-keys="defaultCheckKeys"
:highlight-current="true"
@node-click="handleNodeClick"
@check-change="handleCheckChange"
></el-tree>
<el-select
:style="{ width: width + 'px' }"
slot="reference"
v-model="selectedData"
:multiple="multiple"
clearable
collapse-tags
:popper-append-to-body="false"
popper-class="myPopper"
>
<el-option v-for="item in options" :key="item.value"