From 891f1591f759a9dfa333fcea4707d41bad9fe436 Mon Sep 17 00:00:00 2001
From: WXL <1785969728@qq.com>
Date: 星期一, 24 二月 2025 10:32:28 +0800
Subject: [PATCH] 测试完成

---
 src/views/system/user/index.vue |  226 +++++++++++++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 196 insertions(+), 30 deletions(-)

diff --git a/src/views/system/user/index.vue b/src/views/system/user/index.vue
index 6f1d6d2..407eff0 100644
--- a/src/views/system/user/index.vue
+++ b/src/views/system/user/index.vue
@@ -37,10 +37,19 @@
           v-show="showSearch"
           label-width="68px"
         >
-          <el-form-item label="鐢ㄦ埛鍚嶇О" prop="userName">
+          <el-form-item label="鐢ㄦ埛宸ュ彿" prop="userName">
             <el-input
               v-model="queryParams.userName"
-              placeholder="璇疯緭鍏ョ敤鎴峰悕绉�"
+              placeholder="璇疯緭鍏ョ敤鎴峰伐鍙�"
+              clearable
+              style="width: 240px"
+              @keyup.enter.native="handleQuery"
+            />
+          </el-form-item>
+          <el-form-item label="鐢ㄦ埛鏄电О" prop="nickName">
+            <el-input
+              v-model="queryParams.nickName"
+              placeholder="璇疯緭鍏ョ敤鎴锋樀绉�"
               clearable
               style="width: 240px"
               @keyup.enter.native="handleQuery"
@@ -70,7 +79,8 @@
               />
             </el-select>
           </el-form-item>
-          <el-form-item label="鍒涘缓鏃堕棿">
+
+          <!-- <el-form-item label="鍒涘缓鏃堕棿">
             <el-date-picker
               v-model="dateRange"
               style="width: 240px"
@@ -80,7 +90,7 @@
               start-placeholder="寮�濮嬫棩鏈�"
               end-placeholder="缁撴潫鏃ユ湡"
             ></el-date-picker>
-          </el-form-item>
+          </el-form-item> -->
           <el-form-item>
             <el-button
               type="primary"
@@ -174,7 +184,7 @@
             v-if="columns[0].visible"
           />
           <el-table-column
-            label="鐢ㄦ埛鍚嶇О"
+            label="鐢ㄦ埛宸ュ彿"
             align="center"
             key="userName"
             prop="userName"
@@ -189,14 +199,14 @@
             v-if="columns[2].visible"
             :show-overflow-tooltip="true"
           />
-          <el-table-column
+          <!-- <el-table-column
             label="閮ㄩ棬"
             align="center"
             key="deptName"
             prop="dept.deptName"
             v-if="columns[3].visible"
             :show-overflow-tooltip="true"
-          />
+          /> -->
           <el-table-column
             label="鎵嬫満鍙风爜"
             align="center"
@@ -228,7 +238,7 @@
             width="160"
           >
             <template slot-scope="scope">
-              <span>{{ parseTime(scope.row.createTime) }}</span>
+              <span>{{ formatTime(scope.row.createTime) }}</span>
             </template>
           </el-table-column>
           <el-table-column
@@ -305,16 +315,56 @@
             </el-form-item>
           </el-col>
           <el-col :span="12">
-            <el-form-item label="褰掑睘閮ㄩ棬" prop="deptId">
-              <treeselect
-                v-model="form.deptId"
-                :options="deptOptions"
-                :show-count="true"
-                placeholder="璇烽�夋嫨褰掑睘閮ㄩ棬"
-              />
+            <el-form-item label="鎮h�呰寖鍥�" prop="status">
+              <el-select
+                v-model="form.searchscope"
+                placeholder="鎮h�呰寖鍥�"
+                clearable
+              >
+                <el-option
+                  v-for="dict in searchscopelist"
+                  :key="dict.value"
+                  :label="dict.label"
+                  :value="dict.value"
+                />
+              </el-select>
             </el-form-item>
           </el-col>
         </el-row>
+        <el-form-item label="閫傜敤绉戝" prop="region">
+          <el-cascader
+            style="width: 478px"
+            v-model="form.deptCodes"
+            @remove-tag="removehpsp"
+            :options="deptOptions"
+            :props="props"
+            filterable
+            :show-all-levels="false"
+            clearable
+          >
+            <template slot-scope="{ node, data }">
+              <span>{{ data.label }}</span>
+              <span v-if="!node.isLeaf"> ({{ data.children.length }}) </span>
+            </template>
+          </el-cascader>
+        </el-form-item>
+        <el-form-item label="閫傜敤鐥呭尯" prop="region">
+          <el-cascader
+            style="width: 478px"
+            @remove-tag="removehpsp"
+            v-model="form.wardCodes"
+            :options="deptOptions"
+            :props="props"
+            filterable
+            :show-all-levels="false"
+            clearable
+          >
+            <template slot-scope="{ node, data }">
+              <span>{{ data.label }}</span>
+              <span v-if="!node.isLeaf"> ({{ data.children.length }}) </span>
+            </template>
+          </el-cascader>
+        </el-form-item>
         <el-row>
           <el-col :span="12">
             <el-form-item label="鎵嬫満鍙风爜" prop="phonenumber">
@@ -339,12 +389,12 @@
           <el-col :span="12">
             <el-form-item
               v-if="form.userId == undefined"
-              label="鐢ㄦ埛鍚嶇О"
+              label="鐢ㄦ埛宸ュ彿"
               prop="userName"
             >
               <el-input
                 v-model="form.userName"
-                placeholder="璇疯緭鍏ョ敤鎴峰悕绉�"
+                placeholder="璇疯緭鍏ョ敤鎴峰伐鍙�"
                 maxlength="30"
               />
             </el-form-item>
@@ -391,6 +441,7 @@
             </el-form-item>
           </el-col>
         </el-row>
+
         <el-row>
           <el-col :span="12">
             <el-form-item label="宀椾綅">
@@ -497,12 +548,15 @@
   addUser,
   updateUser,
   resetUserPwd,
+  adduserdept,
+  removeusertd,
   changeUserStatus,
   deptTreeSelect,
 } from "@/api/system/user";
 import { getToken } from "@/utils/auth";
 import Treeselect from "@riophae/vue-treeselect";
 import "@riophae/vue-treeselect/dist/vue-treeselect.css";
+import { type } from "jquery";
 
 export default {
   name: "User",
@@ -536,6 +590,7 @@
       initPassword: undefined,
       // 鏃ユ湡鑼冨洿
       dateRange: [],
+      deptIds: [],
       // 宀椾綅閫夐」
       postOptions: [],
       // 瑙掕壊閫夐」
@@ -546,6 +601,7 @@
         children: "children",
         label: "label",
       },
+      props: { multiple: true, value: "deptCode", label: "label" },
       // 鐢ㄦ埛瀵煎叆鍙傛暟
       upload: {
         // 鏄惁鏄剧ず寮瑰嚭灞傦紙鐢ㄦ埛瀵煎叆锛�
@@ -570,24 +626,31 @@
         status: undefined,
         deptId: undefined,
       },
+      searchscopelist: [
+        { value: "1", label: "绉戝" },
+        { value: "2", label: "鐥呭尯" },
+        { value: "0", label: "鍏ㄩ儴" },
+        { value: "9", label: "鏃�" },
+      ],
       // 鍒椾俊鎭�
       columns: [
         { key: 0, label: `鐢ㄦ埛缂栧彿`, visible: true },
-        { key: 1, label: `鐢ㄦ埛鍚嶇О`, visible: true },
+        { key: 1, label: `鐢ㄦ埛宸ュ彿`, visible: true },
         { key: 2, label: `鐢ㄦ埛鏄电О`, visible: true },
         { key: 3, label: `閮ㄩ棬`, visible: true },
         { key: 4, label: `鎵嬫満鍙风爜`, visible: true },
         { key: 5, label: `鐘舵�乣, visible: true },
         { key: 6, label: `鍒涘缓鏃堕棿`, visible: true },
       ],
+
       // 琛ㄥ崟鏍¢獙
       rules: {
         userName: [
-          { required: true, message: "鐢ㄦ埛鍚嶇О涓嶈兘涓虹┖", trigger: "blur" },
+          { required: true, message: "鐢ㄦ埛宸ュ彿涓嶈兘涓虹┖", trigger: "blur" },
           {
             min: 2,
             max: 20,
-            message: "鐢ㄦ埛鍚嶇О闀垮害蹇呴』浠嬩簬 2 鍜� 20 涔嬮棿",
+            message: "鐢ㄦ埛宸ュ彿闀垮害蹇呴』浠嬩簬 2 鍜� 20 涔嬮棿",
             trigger: "blur",
           },
         ],
@@ -648,9 +711,14 @@
     },
     /** 鏌ヨ閮ㄩ棬涓嬫媺鏍戠粨鏋� */
     getDeptTree() {
+      // 绉戝鍒楄〃
       deptTreeSelect().then((response) => {
         this.deptOptions = response.data;
       });
+      // 闄㈠尯鍒楄〃
+      //  deptTreeSelect().then((response) => {
+      //   this.deptOptions = response.data;
+      // });
     },
     // 绛涢�夎妭鐐�
     filterNode(value, data) {
@@ -697,6 +765,8 @@
         remark: undefined,
         postIds: [],
         roleIds: [],
+        deptCodes: [],
+        wardCodes: [],
       };
       this.resetForm("form");
     },
@@ -735,20 +805,38 @@
     /** 鏂板鎸夐挳鎿嶄綔 */
     handleAdd() {
       this.reset();
-      getUser().then((response) => {
-        this.postOptions = response.posts;
-        this.roleOptions = response.roles;
-        this.open = true;
-        this.title = "娣诲姞鐢ㄦ埛";
-        this.form.password = this.initPassword;
-      });
+      this.open = true;
+      this.title = "娣诲姞鐢ㄦ埛";
+      this.form.password = this.initPassword;
+      this.form.depts = [];
+      // getUser().then((response) => {
+      //   this.postOptions = response.posts;
+      //   this.roleOptions = response.roles;
+
+      // });
     },
     /** 淇敼鎸夐挳鎿嶄綔 */
     handleUpdate(row) {
       this.reset();
+      this.deptIds = [];
       const userId = row.userId || this.ids;
       getUser(userId).then((response) => {
         this.form = response.data;
+        this.belongDepts = response.belongDepts;
+        this.belongWards = response.belongWards;
+        if (this.form.hospInfo) {
+          this.form.deptCodes = JSON.parse(this.form.hospInfo);
+        } else {
+          this.form.deptCodes = [];
+        }
+        if (this.form.deptInfo) {
+          this.form.wardCodes = JSON.parse(this.form.deptInfo);
+        } else {
+          this.form.wardCodes = [];
+        }
+        console.log(this.form.wardCodes, "wardCodes");
+        console.log(this.form.deptCodes, "deptCodes");
+
         this.postOptions = response.posts;
         this.roleOptions = response.roles;
         this.$set(this.form, "postIds", response.postIds);
@@ -756,6 +844,16 @@
         this.open = true;
         this.title = "淇敼鐢ㄦ埛";
         this.form.password = "";
+      });
+    },
+    // 鍒犻櫎绉戝
+    removehpsp(valueArray) {
+      console.log(valueArray, "鍒犻櫎绉戝");
+      console.log(this.form.userId, "鍒犻櫎");
+      let code = valueArray[valueArray.length - 1];
+      removeusertd(this.form.userId, code).then((res) => {
+        if (res.code) {
+        }
       });
     },
     /** 閲嶇疆瀵嗙爜鎸夐挳鎿嶄綔 */
@@ -781,23 +879,83 @@
     },
     /** 鎻愪氦鎸夐挳 */
     submitForm: function () {
+      this.form.hospInfo = JSON.stringify(this.form.deptCodes);
+      this.form.deptInfo = JSON.stringify(this.form.wardCodes);
+      if (this.form.deptCodes.length)
+        this.form.deptCodes = this.form.deptCodes.map(
+          (subArr) => subArr[subArr.length - 1]
+        );
+      if (this.form.wardCodes.length)
+        this.form.wardCodes = this.form.wardCodes.map(
+          (subArr) => subArr[subArr.length - 1]
+        );
+      console.log(this.form.wardCodes, "wardCodes");
+      console.log(this.form.deptCodes, "deptCodes");
+
       this.$refs["form"].validate((valid) => {
         if (valid) {
           if (this.form.userId != undefined) {
             updateUser(this.form).then((response) => {
               this.$modal.msgSuccess("淇敼鎴愬姛");
               this.open = false;
-              this.getList();
+              this.adduserdept();
             });
           } else {
             addUser(this.form).then((response) => {
               this.$modal.msgSuccess("鏂板鎴愬姛");
               this.open = false;
-              this.getList();
+              this.form.userId = response.data;
+              console.log("寮�濮嬪姞閮ㄩ棬");
+
+              this.adduserdept();
             });
           }
         }
       });
+    },
+    // 鏂板鏁版嵁
+    adduserdept() {
+      if (this.form.wardCodes[0]) {
+        this.form.wardCodes.forEach((dept) => {
+          const containsId8 = null;
+          if (this.belongWards) {
+            containsId8 = this.belongWards.some(
+              (item) => item.deptCode == dept
+            );
+          }
+
+          if (!containsId8) {
+            adduserdept({
+              deptCode: dept,
+              deptType: 2,
+              userId: this.form.userId,
+            }).then((response) => {
+              this.open = false;
+              this.getList();
+            });
+          }
+        });
+      }
+      if (this.form.deptCodes[0]) {
+        this.form.deptCodes.forEach((dept) => {
+          const containsId8 = null;
+          if (this.belongDepts) {
+            containsId8 = this.belongDepts.some(
+              (item) => item.deptCode == dept
+            );
+          }
+          if (!containsId8) {
+            adduserdept({
+              deptCode: dept,
+              deptType: 1,
+              userId: this.form.userId,
+            }).then((response) => {
+              this.open = false;
+              this.getList();
+            });
+          }
+        });
+      }
     },
     /** 鍒犻櫎鎸夐挳鎿嶄綔 */
     handleDelete(row) {
@@ -831,7 +989,7 @@
     /** 涓嬭浇妯℃澘鎿嶄綔 */
     importTemplate() {
       this.download(
-        "system/user/importTemplate",
+        "smartor/import/getImportPatTemplate",
         {},
         `user_template_${new Date().getTime()}.xlsx`
       );
@@ -861,3 +1019,11 @@
   },
 };
 </script>
+<style lang="scss" scoped>
+::v-deep .el-cascader-panel .el-cascader-menu__wrap {
+  height: 404px!important;
+}
+// .el-cascader-menu__wrap {
+//   height: 404px;
+// }
+</style>

--
Gitblit v1.9.3