From 4255f2bf1ec50a39fb968a4f729c1d7f0cec4b6f Mon Sep 17 00:00:00 2001
From: 孔祥富 <kongxf@daryun.com>
Date: 星期日, 14 三月 2021 14:27:20 +0800
Subject: [PATCH] ..

---
 src/views/febs/system/user/Edit.vue |   36 ++++++++++++++++++++++++++++++++++--
 1 files changed, 34 insertions(+), 2 deletions(-)

diff --git a/src/views/febs/system/user/Edit.vue b/src/views/febs/system/user/Edit.vue
index c255ced..e82aa75 100644
--- a/src/views/febs/system/user/Edit.vue
+++ b/src/views/febs/system/user/Edit.vue
@@ -11,7 +11,7 @@
       <el-form-item :label="$t('table.user.username')" prop="username">
         <el-input v-model="user.username" :readonly="user.userId === '' ? false : 'readonly'" />
       </el-form-item>
-      <el-form-item label="员工姓名" prop="nickName">
+      <el-form-item label="姓名" prop="nickName">
         <el-select v-model="user.nickName" filterable placeholder="" style="width:100%" @change="nickName">
           <el-option
             v-for="item in baseinfo"
@@ -66,13 +66,14 @@
         <el-tree
           ref="deptTree"
           :data="deptTree"
-          :check-strictly="true"
+          :check-strictly="false"
           :default-checked-keys="user.deptIdsArr"
           show-checkbox
           accordion
           node-key="id"
           highlight-current
           style="border: 1px solid #DCDFE6;border-radius: 3px;padding: 6px;"
+          @check="checkeTree"
         />
       </el-form-item>
       <el-form-item :label="$t('table.user.status')" prop="status">
@@ -180,6 +181,8 @@
       for (let i = 0; i < this.baseinfo.length; i++) {
         if (this.baseinfo[i].certificateNumb === data) {
           this.user.nickName = this.baseinfo[i].empName
+          this.user.deptId = this.baseinfo[i].deptId
+          this.user.mobile = this.baseinfo[i].telePhone
         }
       }
     },
@@ -254,6 +257,35 @@
     close() {
       this.$emit('close')
     },
+    // 选中子节点,默认选中父节点
+    checkeTree(data) {
+      let thisNode = this.$refs.deptTree.getNode(data.id) // 获取当前节点
+      const keys = this.$refs.deptTree.getCheckedKeys() // 获取已勾选节点的key值
+      if (thisNode.checked) { // 当前节点若被选中
+        // if (thisNode.data.id !== '1') {
+        //   this.checkAllChild(thisNode, keys)
+        // }
+        for (let i = thisNode.level; i > 1; i--) { // 判断是否有父级节点
+          if (!thisNode.parent.checked) { // 父级节点未被选中,则将父节点替换成当前节点,往上继续查询,并将此节点key存入keys数组
+            thisNode = thisNode.parent
+            keys.push(thisNode.data.id)
+          }
+        }
+      }
+      this.$refs.deptTree.setCheckedKeys(keys) // 将所有keys数组的节点全选中
+    },
+    checkAllChild(data, keys) {
+      if (data.childNodes.length === 0) {
+        return
+      } else {
+        for (let i = 0; i < data.childNodes.length; i++) {
+          if (!data.childNodes[i].checked) {
+            keys.push(data.childNodes[i].data.id)
+          }
+          this.checkAllChild(data.childNodes[i], keys)
+        }
+      }
+    },
     submitForm() {
       this.$refs.form.validate((valid) => {
         if (valid) {

--
Gitblit v1.8.0