Эх сурвалжийг харах

fix tree accordion bug when click on icon (#2440)

baiyaaaaa 8 жил өмнө
parent
commit
e6b89257ed

+ 5 - 4
packages/tree/src/tree-node.vue

@@ -36,7 +36,7 @@
           v-for="child in node.childNodes"
           :key="getNodeKey(child)"
           :node="child"
-          @click.native="handleChildNodeClick(child)">
+          @node-expand="handleChildNodeExpand(child)">
         </el-tree-node>
       </div>
     </collapse-transition>
@@ -149,6 +149,7 @@
           this.node.collapse();
         } else {
           this.node.expand();
+          this.$emit('node-expand', this.node.data, this.node, this);
         }
       },
 
@@ -164,8 +165,8 @@
         }
       },
 
-      handleChildNodeClick(node) {
-        this.broadcast('ElTreeNode', 'tree-node-click', node);
+      handleChildNodeExpand(node) {
+        this.broadcast('ElTreeNode', 'tree-node-expand', node);
       }
     },
 
@@ -198,7 +199,7 @@
       }
 
       if(this.tree.accordion) {
-        this.$on('tree-node-click', node => {
+        this.$on('tree-node-expand', node => {
           if(this.node !== node) {
             this.node.collapse();
           }

+ 3 - 3
packages/tree/src/tree.vue

@@ -6,7 +6,7 @@
       :props="props"
       :key="getNodeKey(child)"
       :render-content="renderContent"
-      @click.native="handleChildNodeClick(child)">
+      @node-expand="handleNodeExpand">
     </el-tree-node>
     <div class="el-tree__empty-block" v-if="!root.childNodes || root.childNodes.length === 0">
       <span class="el-tree__empty-text">{{ emptyText }}</span>
@@ -141,8 +141,8 @@
       setChecked(data, checked, deep) {
         this.store.setChecked(data, checked, deep);
       },
-      handleChildNodeClick(node) {
-        this.broadcast('ElTreeNode', 'tree-node-click', node);
+      handleNodeExpand(nodeData, node, instance) {
+        this.broadcast('ElTreeNode', 'tree-node-expand', node);
       }
     },