From 2703859a75294db7df0a54b028f73ff2c1e61544 Mon Sep 17 00:00:00 2001
From: wwl <xchao828@163.com>
Date: 星期五, 13 十二月 2024 18:05:47 +0800
Subject: [PATCH] 123

---
 src/views/advice/advice/index.vue |  307 ++++++++++++++++++++++++++++++++------------------
 1 files changed, 196 insertions(+), 111 deletions(-)

diff --git a/src/views/advice/advice/index.vue b/src/views/advice/advice/index.vue
index d739abe..7aa54f3 100644
--- a/src/views/advice/advice/index.vue
+++ b/src/views/advice/advice/index.vue
@@ -73,75 +73,95 @@
           >瀵煎嚭</el-button
         >
       </el-col>
-      <right-toolbar
-        :showSearch.sync="showSearch"
-        @queryTable="getList"
-      ></right-toolbar>
     </el-row>
+    <el-row :gutter="20">
+      <el-col :span="3" :xs="24">
+        <div class="head-container">
+          <el-tree
+            :data="deptOptions"
+            :props="defaultProps"
+            :expand-on-click-node="false"
+            :filter-node-method="filterNode"
+            ref="tree"
+            node-key="id"
+            default-expand-all
+            :default-expanded-keys="treeId"
+            highlight-current
+            @node-click="handleNodeClick"
+          />
+        </div>
+      </el-col>
 
-    <el-table
-      v-loading="loading"
-      :data="adviceList"
-      @selection-change="handleSelectionChange"
-      border
-    >
-      <el-table-column type="selection" width="55" align="center" fixed />
-      <el-table-column
-        label="搴忓彿"
-        align="center"
-        prop="newID"
-        width="55px"
-      />
-      <el-table-column
-        label="鎵�閫夐」鐩�"
-        align="center"
-        prop="proName"
-        width="120px"
-        :show-overflow-tooltip="true"
-      />
-      <el-table-column
-        label="鏍囬"
-        align="center"
-        prop="title"
-        width="120px"
-        :show-overflow-tooltip="true"
-      />
-      <el-table-column
-        label="寤鸿"
-        align="center"
-        prop="advice"
-        width="1249px"
-        :show-overflow-tooltip="true"
-      />
-      <el-table-column
-        label="鎿嶄綔"
-        align="center"
-        fixed="right"
-        class-name="small-padding fixed-width"
-        width="80px"
-      >
-        <template slot-scope="scope">
-          <el-button
-            size="mini"
-            type="text"
-            icon="el-icon-edit"
-            @click="handleUpdate(scope.row)"
-            v-hasPermi="['advice:advice:edit']"
-            title="淇敼"
-          ></el-button>
-          <el-button
-            size="mini"
-            type="text"
-            icon="el-icon-delete"
-            @click="handleDelete(scope.row)"
-            v-hasPermi="['advice:advice:remove']"
-            title="鍒犻櫎"
-          ></el-button>
-        </template>
-      </el-table-column>
-    </el-table>
-
-    <div class="pag">
+      <el-col :span="20" :xs="24">
+        <el-table
+          v-loading="loading"
+          :data="adviceList"
+          @selection-change="handleSelectionChange"
+          border
+        >
+          <el-table-column type="selection" width="55" align="center" fixed />
+          <el-table-column
+            label="搴忓彿"
+            align="center"
+            prop="newID"
+            width="55px"
+          />
+          <el-table-column
+            label="鎵�灞炵瀹�"
+            align="center"
+            prop="deptName"
+            width="120px"
+            :show-overflow-tooltip="true"
+          />
+          <el-table-column
+            label="浣撴椤圭洰"
+            align="center"
+            prop="proName"
+            width="120px"
+            :show-overflow-tooltip="true"
+          />
+          <el-table-column
+            label="鏍囬"
+            align="center"
+            prop="title"
+            width="120px"
+            :show-overflow-tooltip="true"
+          />
+          <el-table-column
+            label="寤鸿"
+            align="center"
+            prop="advice"
+            width="1249px"
+            :show-overflow-tooltip="true"
+          />
+          <el-table-column
+            label="鎿嶄綔"
+            align="center"
+            fixed="right"
+            class-name="small-padding fixed-width"
+            width="80px"
+          >
+            <template slot-scope="scope">
+              <el-button
+                size="mini"
+                type="text"
+                icon="el-icon-edit"
+                @click="handleUpdate(scope.row)"
+                v-hasPermi="['advice:advice:edit']"
+                title="淇敼"
+              ></el-button>
+              <el-button
+                size="mini"
+                type="text"
+                icon="el-icon-delete"
+                @click="handleDelete(scope.row)"
+                v-hasPermi="['advice:advice:remove']"
+                title="鍒犻櫎"
+              ></el-button>
+            </template>
+          </el-table-column>
+        </el-table>
+        <div class="pag">
       <div class="pag1">
         <pagination
           v-show="total > 0"
@@ -152,10 +172,38 @@
         />
       </div>
     </div>
+      </el-col>
+    </el-row>
+
+
 
     <!-- 娣诲姞鎴栦慨鏀筧dvice瀵硅瘽妗� -->
-    <el-dialog :title="title" :visible.sync="open" width="1000px" append-to-body>
+    <el-dialog
+      :title="title"
+      :visible.sync="open"
+      width="1000px"
+      append-to-body
+    >
       <el-form ref="form" :model="form" :rules="rules" label-width="80px">
+        <el-form-item label="褰掑睘绉戝" prop="deptId">
+            <!-- <treeselect v-model="form.deptId" :options="deptOptions" :show-count="true" placeholder="璇烽�夋嫨褰掑睘绉戝"
+              style="width: 200px" /> -->
+            <el-select
+            v-if="DepartmentList.length > 0" 
+              v-model="form.deptId"
+              placeholder="璇烽�夋嫨褰掑睘绉戝"
+              clearable
+              style="width: 200px"
+              filterable
+            >
+              <el-option
+                v-for="dict in DepartmentList"
+                :key="dict.deptId"
+                :label="dict.deptName || ''"
+                :value="dict.deptId"
+              />
+            </el-select>
+          </el-form-item>
         <el-form-item label="妫�鏌ラ」鐩�" prop="proName">
           <el-select
             v-model="form.proId"
@@ -165,29 +213,14 @@
             clearable
           >
             <el-option
-              v-for="(dict,index) in projectList"
+              v-for="(dict, index) in projectList"
               :key="index"
               :label="dict.proName"
               :value="dict.proId"
             />
           </el-select>
         </el-form-item>
-        <el-form-item label="閫夋嫨绉戝">
-          <el-select
-            v-model="form.proId"
-            placeholder="璇烽�夋嫨绉戝"
-            filterable
-            style="width: 240px"
-            clearable
-          >
-            <el-option
-              v-for="(dict,index) in projectList"
-              :key="index"
-              :label="dict.proName"
-              :value="dict.proId"
-            />
-          </el-select>
-        </el-form-item>
+        
         <el-form-item label="寤鸿鏍囬" prop="title">
           <el-input v-model="form.title" placeholder="璇疯緭鍏ュ悕绉版爣棰�" />
         </el-form-item>
@@ -199,9 +232,9 @@
           >
             蹇嵎鏍囩
           </span>
-          <el-checkbox-group v-model="kjbq"   @change="handleCheckedCitiesChange">
+          <el-checkbox-group v-model="kjbq" @change="handleCheckedCitiesChange">
             <el-checkbox
-              v-for="(item,index) in dataList"
+              v-for="(item, index) in dataList"
               :key="index"
               :label="item.id"
               >{{ item.kjbq }}</el-checkbox
@@ -222,8 +255,13 @@
         <el-button @click="cancel">鍙� 娑�</el-button>
       </div>
     </el-dialog>
-    <el-dialog title="娣诲姞蹇嵎鏍囩" :visible.sync="kjbqopen" width="500px" append-to-body>
-      <el-form ref="form" :model="form"  label-width="80px">
+    <el-dialog
+      title="娣诲姞蹇嵎鏍囩"
+      :visible.sync="kjbqopen"
+      width="500px"
+      append-to-body
+    >
+      <el-form ref="form" :model="form" label-width="80px">
         <el-form-item label="鍚嶇О" prop="kjbq">
           <el-input v-model="formss.kjbq" placeholder="璇疯緭鍏ュ悕绉�" />
         </el-form-item>
@@ -237,6 +275,7 @@
 </template>
 
 <script>
+import { deptTreeSelect ,getDeptListByDictHospId} from "@/api/system/user";
 import {
   listAdvice,
   getAdvice,
@@ -245,7 +284,10 @@
   updateAdvice,
 } from "@/api/advice/advice";
 import { listProject } from "@/api/hosp/project";
-import { getTjAdviceKjbqByFl,addTjAdviceKjbq } from "@/api/system/biaoqianzidian";
+import {
+  getTjAdviceKjbqByFl,
+  addTjAdviceKjbq,
+} from "@/api/system/biaoqianzidian";
 import { getInfo } from "@/api/login";
 
 export default {
@@ -263,6 +305,9 @@
       }
     };
     return {
+      DepartmentList: [],
+
+      deptOptions: undefined,
       projectList: [],
       // 閬僵灞�
       loading: true,
@@ -279,7 +324,7 @@
       // advice琛ㄦ牸鏁版嵁
       adviceList: [],
       dataList: [],
-      kjbq:[],
+      kjbq: [],
       // 寮瑰嚭灞傛爣棰�
       title: "",
       // 鏄惁鏄剧ず寮瑰嚭灞�
@@ -292,11 +337,14 @@
         proName: null,
       },
       // 琛ㄥ崟鍙傛暟
-      form: {
+      form: {},
+      formss: {},
+      defaultProps: {
+        children: "children",
+        label: "label",
       },
-      formss:{
-        
-      },
+      treeId: [],
+
       // 琛ㄥ崟鏍¢獙
       rules: {
         proId: [{ required: true, validator: checkPhoneNum, trigger: "blur" }],
@@ -304,18 +352,54 @@
     };
   },
   created() {
-    this.getList();
-   
+    this.sendhospName()
+    this.getDeptTree();
+  },
+  watch: {
+    // 鏍规嵁鍚嶇О绛涢�夐儴闂ㄦ爲
+
+    treeId(newVal, oldVal) {
+      if (newVal) {
+        this.$nextTick(() => {
+          document
+            .querySelector(".el-tree-node__children .el-tree-node__content")
+            .click();
+        });
+      }
+    },
   },
   methods: {
+    sendhospName() {
+   
+      getDeptListByDictHospId({
+        id: 2000
+      }).then((res) => {
+        this.DepartmentList = res.data;
+        this.form.deptId = String(this.form.deptId);
+      });
+    },
+    // 鑺傜偣鍗曞嚮浜嬩欢
+    handleNodeClick(data) {
+      this.queryParams.deptId = data.id;
+      this.handleQuery();
+    },
+
+    // 绛涢�夎妭鐐�
+    filterNode(value, data) {
+      if (!value) return true;
+      return data.label.indexOf(value) !== -1;
+    },
+    getDeptTree() {
+      deptTreeSelect().then((response) => {
+
+        this.deptOptions = response.data;
+        this.treeId.push(this.deptOptions[0].id);
+        this.queryParams.deptId = this.deptOptions[0].id;
+      });
+    },
     /** 鏌ヨadvice鍒楄〃 */
     getList() {
       this.loading = true;
-      // let data ={
-      //   proName:this.queryParams.proName,
-      //   page:this.queryParams.page,
-      //   pageSize:this.queryParams.pageSize,
-      // }
       listAdvice(this.queryParams).then((response) => {
         response.data.list.forEach((item, index) => {
           item.newID =
@@ -328,7 +412,7 @@
     },
     getlistProject() {
       listProject(this.queryParams).then((response) => {
-        if(response.data){
+        if (response.data) {
           this.projectList = response.data;
         }
       });
@@ -389,21 +473,22 @@
       this.reset();
       this.title = "浣撴寤鸿淇℃伅缁存姢";
       this.getlistProject();
-            this.open = true;
-           
+      this.form.deptId = this.queryParams.deptId
+      this.open = true;
     },
     /** 淇敼鎸夐挳鎿嶄綔 */
     handleUpdate(row) {
       this.reset();
       const id = row.id || this.ids;
-      this.kjbq = []
+      this.kjbq = [];
       getAdvice(id).then((response) => {
         this.form = response.data;
-        if(response.data.kjbqz != null){
-          this.kjbq = response.data.kjbqz.map(Number)
+        if (response.data.kjbqz != null) {
+          this.kjbq = response.data.kjbqz.map(Number);
         }
         this.getlistProject();
         this.open = true;
+        this.form.deptId = this.queryParams.deptId
         this.title = "浣撴寤鸿淇℃伅缁存姢";
       });
     },
@@ -432,14 +517,14 @@
       this.$refs["form"].validate((valid) => {
         if (valid) {
           if (this.form.id != null) {
-            this.form.kjbq	=  this.kjbq.toString()
+            this.form.kjbq = this.kjbq.toString();
             updateAdvice(this.form).then((response) => {
               this.$modal.msgSuccess("淇敼鎴愬姛");
               this.open = false;
               this.getList();
             });
           } else {
-            this.form.kjbq	=  this.kjbq.toString()
+            this.form.kjbq = this.kjbq.toString();
             addAdvice(this.form).then((response) => {
               this.$modal.msgSuccess("鏂板鎴愬姛");
               this.open = false;
@@ -449,7 +534,7 @@
         }
       });
     },
-    handlekjbq(){
+    handlekjbq() {
       this.kjbqopen = true;
     },
 

--
Gitblit v1.8.0