From 95075418735842f54c116c2dc2d18199d4408e50 Mon Sep 17 00:00:00 2001
From: WXL <1785969728@qq.com>
Date: 星期四, 09 一月 2025 16:36:13 +0800
Subject: [PATCH] 无锡提交

---
 src/views/system/user/index.vue |  241 ++++++++++++++++++++++++++++++++++-------------
 1 files changed, 173 insertions(+), 68 deletions(-)

diff --git a/src/views/system/user/index.vue b/src/views/system/user/index.vue
index 23cce5e..6fb0d9f 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"
@@ -304,52 +314,55 @@
               />
             </el-form-item>
           </el-col>
-          <!-- <el-col :span="12">
-            <el-form-item label="褰掑睘閮ㄩ棬" prop="deptId">
-              <treeselect
-                v-model="form.depts"
-                :options="deptOptions"
-                :multiple="true"
-                :show-count="true"
-                placeholder="璇烽�夋嫨褰掑睘閮ㄩ棬"
-              />
+          <el-col :span="12">
+            <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-col>
         </el-row>
         <el-form-item label="閫傜敤绉戝" prop="region">
-                <el-cascader
-                style="width: 478px"
-                  v-model="form.leaveldeptcodes"
-                  :options="deptOptions"
-                  :props="props"
-                  :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"
-                  v-model="form.leavehospitaldistrictcodes"
-                  :options="deptOptions"
-                  :props="props"
-                  :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-cascader
+            style="width: 478px"
+            v-model="form.deptCodes"
+            @remove-tag="removehpsp"
+            :options="deptOptions"
+            :props="props"
+            :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"
+            :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">
@@ -374,12 +387,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>
@@ -426,6 +439,7 @@
             </el-form-item>
           </el-col>
         </el-row>
+
         <el-row>
           <el-col :span="12">
             <el-form-item label="宀椾綅">
@@ -532,12 +546,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",
@@ -582,7 +599,7 @@
         children: "children",
         label: "label",
       },
-      props: { multiple: true, value: "id", label: "label" },
+      props: { multiple: true, value: "deptCode", label: "label" },
       // 鐢ㄦ埛瀵煎叆鍙傛暟
       upload: {
         // 鏄惁鏄剧ず寮瑰嚭灞傦紙鐢ㄦ埛瀵煎叆锛�
@@ -607,24 +624,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",
           },
         ],
@@ -685,9 +709,14 @@
     },
     /** 鏌ヨ閮ㄩ棬涓嬫媺鏍戠粨鏋� */
     getDeptTree() {
+      // 绉戝鍒楄〃
       deptTreeSelect().then((response) => {
         this.deptOptions = response.data;
       });
+      // 闄㈠尯鍒楄〃
+      //  deptTreeSelect().then((response) => {
+      //   this.deptOptions = response.data;
+      // });
     },
     // 绛涢�夎妭鐐�
     filterNode(value, data) {
@@ -734,6 +763,8 @@
         remark: undefined,
         postIds: [],
         roleIds: [],
+        deptCodes:[],
+        wardCodes:[],
       };
       this.resetForm("form");
     },
@@ -773,9 +804,9 @@
     handleAdd() {
       this.reset();
       this.open = true;
-        this.title = "娣诲姞鐢ㄦ埛";
-        this.form.password = this.initPassword;
-        this.form.depts = [];
+      this.title = "娣诲姞鐢ㄦ埛";
+      this.form.password = this.initPassword;
+      this.form.depts = [];
       // getUser().then((response) => {
       //   this.postOptions = response.posts;
       //   this.roleOptions = response.roles;
@@ -789,8 +820,21 @@
       const userId = row.userId || this.ids;
       getUser(userId).then((response) => {
         this.form = response.data;
-        this.form.leaveldeptcodes = JSON.parse(this.form.hospInfo);
-        this.form.leavehospitaldistrictcodes = JSON.parse(this.form.deptInfo);
+        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);
@@ -798,6 +842,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) {
+        }
       });
     },
     /** 閲嶇疆瀵嗙爜鎸夐挳鎿嶄綔 */
@@ -823,14 +877,18 @@
     },
     /** 鎻愪氦鎸夐挳 */
     submitForm: function () {
-      this.form.hospInfo = JSON.stringify(this.form.leaveldeptcodes);
-      this.form.deptInfo = JSON.stringify(this.form.leavehospitaldistrictcodes);
-      this.form.leaveldeptcodes = this.form.leaveldeptcodes.map(
+      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]
       );
-      this.form.leavehospitaldistrictcodes = this.form.leavehospitaldistrictcodes.map(
+      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) {
@@ -838,17 +896,64 @@
             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) {
@@ -882,7 +987,7 @@
     /** 涓嬭浇妯℃澘鎿嶄綔 */
     importTemplate() {
       this.download(
-        "system/user/importTemplate",
+        "smartor/import/getImportPatTemplate",
         {},
         `user_template_${new Date().getTime()}.xlsx`
       );

--
Gitblit v1.9.3