1+ <template >
2+ <div class =" test-tree" >
3+ <!-- <div class="edit-container" style="border: 1px solid #ddd; border-radius: 3px ">
4+ <div ref="edit-box" contenteditable="true" style="padding: 4px; user-modify: read-only;">
5+ <Tag v-for="(item, index) in checkedValues"
6+ :key="item.key"
7+ contenteditable="false"
8+ type="success"
9+ @on-close="removeChecked(item, index)"
10+ :clearable="!item.disabled">{{item.name}}</Tag>
11+ </div>
12+ <Icon v-if="visibleClose" class="close-btn" @click="clearChecked" type="icon-close-bg" />
13+ </div> -->
14+
15+ <VueTree
16+ ref =" tree3"
17+ draggable
18+ showCheckbox
19+ checkStrictly
20+ :treeData =" treeData"
21+ @on-checked-change =" handleCheckedChange" />
22+ </div >
23+ </template >
24+ <script >
25+ import { treeData } from ' ../../assets/treeData'
26+ export default {
27+ name: ' CheckStrict' ,
28+ data () {
29+ return {
30+ checkedValues: [],
31+ treeData,
32+ }
33+ },
34+ computed: {
35+ visibleClose : function () {
36+ return this .checkedValues .filter (item => ! item .disabled ).length > 0
37+ }
38+ },
39+ mounted () {
40+ this .checkedValues = this .$refs .tree3 .getCheckedNodes ()
41+ },
42+ methods: {
43+ handleCheckedChange ({ node, selectedData }) {
44+ console .log (' clickCheckbox' , node, selectedData)
45+ this .checkedValues = selectedData
46+ },
47+ clearChecked () {
48+ this .$refs .tree3 .clear ()
49+ this .checkedValues = this .$refs .tree3 .getCheckedNodes ()
50+ },
51+ removeChecked (node , index ) {
52+ this .$refs .tree3 .removeCheckedNode (node, index)
53+ },
54+ }
55+
56+ }
57+
58+ </script >
59+ <style lang="less" scoped>
60+ .test-tree {
61+ width : 400px ;
62+ }
63+ .edit-container {
64+ position : relative ;
65+ min-height : 36px ;
66+ }
67+ .close-btn {
68+ position : absolute ;
69+ top : 50% ;
70+ right : 6px ;
71+ transform : translateY (-50% );
72+ color : #999 ;
73+ cursor : pointer ;
74+ }
75+ </style >
0 commit comments