zhangjie 1 年間 前
コミット
8ccd9cc132
1 ファイル変更17 行追加2 行削除
  1. 17 2
      src/modules/base/components/SelectOrgs.vue

+ 17 - 2
src/modules/base/components/SelectOrgs.vue

@@ -16,6 +16,8 @@
       :check-strictly="checkStrictly"
       check-on-click-node
       :expand-on-click-node="false"
+      :default-expanded-keys="defaultExpandedKeys"
+      :key="treeKey"
       @check="checkClick"
       @check-change="checkChange"
     >
@@ -61,6 +63,8 @@ export default {
       defaultProps: {
         label: "name",
       },
+      treeKey: "",
+      defaultExpandedKeys: [],
     };
   },
   created() {
@@ -68,7 +72,7 @@ export default {
   },
   watch: {
     value(val, oldVal) {
-      if (val.join() !== oldVal.join()) this.setCheckedNode(val);
+      if (val.join() !== oldVal.join()) this.initCheckedNode(val);
     },
   },
   methods: {
@@ -100,7 +104,18 @@ export default {
       this.leafOrgIds = leafOrgIds;
 
       this.$nextTick(() => {
-        this.setCheckedNode(this.value);
+        this.initCheckedNode(this.value);
+      });
+    },
+    initCheckedNode(val) {
+      this.defaultExpandedKeys = [];
+      this.treeKey = this.$randomCode();
+      this.$nextTick(() => {
+        this.setCheckedNode(val);
+        const checkNodes = this.$refs.MenuTree.getCheckedNodes();
+        this.defaultExpandedKeys = checkNodes
+          .map((item) => item.parentId)
+          .filter((item) => !!item);
       });
     },
     setDisabledOrgs(disabledOrgIds) {