Update tree-node.vue

增加全局disabled 配置 默认false
pull/21786/head
roninTitans 2022-04-07 14:20:00 +08:00 committed by GitHub
parent 3f11c4a61e
commit d3f2861f3e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 16 additions and 5 deletions

View File

@ -38,6 +38,7 @@
v-if="showCheckbox" v-if="showCheckbox"
v-model="node.checked" v-model="node.checked"
:indeterminate="node.indeterminate" :indeterminate="node.indeterminate"
:editable="!disabled"
:disabled="!!node.disabled" :disabled="!!node.disabled"
@click.native.stop @click.native.stop
@change="handleCheckChange" @change="handleCheckChange"
@ -58,6 +59,7 @@
:aria-expanded="expanded" :aria-expanded="expanded"
> >
<el-tree-node <el-tree-node
:disabled="disabled"
:render-content="renderContent" :render-content="renderContent"
v-for="child in node.childNodes" v-for="child in node.childNodes"
:render-after-expand="renderAfterExpand" :render-after-expand="renderAfterExpand"
@ -73,7 +75,7 @@
<script type="text/jsx"> <script type="text/jsx">
import ElCollapseTransition from 'element-ui/src/transitions/collapse-transition'; import ElCollapseTransition from 'element-ui/src/transitions/collapse-transition';
import ElCheckbox from 'element-ui/packages/checkbox'; import ElCheckbox from '../../checkbox';
import emitter from 'element-ui/src/mixins/emitter'; import emitter from 'element-ui/src/mixins/emitter';
import { getNodeKey } from './model/util'; import { getNodeKey } from './model/util';
@ -85,6 +87,10 @@
mixins: [emitter], mixins: [emitter],
props: { props: {
disabled: {
type: Boolean,
default: false
},
node: { node: {
default() { default() {
return {}; return {};
@ -168,6 +174,9 @@
}, },
handleClick() { handleClick() {
if (this.disabled) {
return
}
const store = this.tree.store; const store = this.tree.store;
store.setCurrentNode(this.node); store.setCurrentNode(this.node);
this.tree.$emit('current-change', store.currentNode ? store.currentNode.data : null, store.currentNode); this.tree.$emit('current-change', store.currentNode ? store.currentNode.data : null, store.currentNode);
@ -203,6 +212,9 @@
}, },
handleCheckChange(value, ev) { handleCheckChange(value, ev) {
if (this.disabled) {
return
}
this.node.setChecked(ev.target.checked, !this.tree.checkStrictly); this.node.setChecked(ev.target.checked, !this.tree.checkStrictly);
this.$nextTick(() => { this.$nextTick(() => {
const store = this.tree.store; const store = this.tree.store;
@ -221,12 +233,12 @@
}, },
handleDragStart(event) { handleDragStart(event) {
if (!this.tree.draggable) return; if (!this.tree.draggable||this.disabled) return;
this.tree.$emit('tree-node-drag-start', event, this); this.tree.$emit('tree-node-drag-start', event, this);
}, },
handleDragOver(event) { handleDragOver(event) {
if (!this.tree.draggable) return; if (!this.tree.draggable||this.disabled) return;
this.tree.$emit('tree-node-drag-over', event, this); this.tree.$emit('tree-node-drag-over', event, this);
event.preventDefault(); event.preventDefault();
}, },
@ -234,9 +246,8 @@
handleDrop(event) { handleDrop(event) {
event.preventDefault(); event.preventDefault();
}, },
handleDragEnd(event) { handleDragEnd(event) {
if (!this.tree.draggable) return; if (!this.tree.draggable||this.disabled) return;
this.tree.$emit('tree-node-drag-end', event, this); this.tree.$emit('tree-node-drag-end', event, this);
} }
}, },