diff --git a/frontend/src/components/ElTreeSelect/index.vue b/frontend/src/components/ElTreeSelect/index.vue
index df60a28571..c135597b03 100644
--- a/frontend/src/components/ElTreeSelect/index.vue
+++ b/frontend/src/components/ElTreeSelect/index.vue
@@ -470,15 +470,26 @@ export default {
_treeCheckFun(data, node, vm) {
this.ids = []
const { propsValue } = this
- node.checkedNodes.forEach(item => {
+ const checkKeys = this.$refs.tree.getCheckedKeys()
+ checkKeys.forEach((i, n) => {
+ const node = this.$refs.tree.getNode(i)
+ if (!node.visible && node.checked) {
+ this.$refs.tree.setChecked(i, false)
+ }
+ })
+
+ const checkedNodes = this.$refs.tree.getCheckedNodes()
+
+ checkedNodes.forEach(item => {
this.ids.push(item[propsValue])
})
/*
- 点击复选框,对外抛出 `data, node, vm`
- `data:` 当前点击的节点数据
- `node:` 当前点击的node
- `vm:` 当前组件的vm
- */
+ 点击复选框,对外抛出 `data, node, vm`
+ `data:` 当前点击的节点数据
+ `node:` 当前点击的node
+ `vm:` 当前组件的vm
+ */
+ node.checkedKeys = checkedNodes.map(node => node.id)
this.$emit('check', data, node, vm)
this._emitFun()
},