From 95c53f98bc1754d4a2277263802dac420bb22035 Mon Sep 17 00:00:00 2001
From: lkk <364857242@qq.com>
Date: 星期一, 14 四月 2025 13:36:39 +0800
Subject: [PATCH] 1

---
 src/views/hosp/advicerules/index.vue |  279 +++++++++++++++++++++++++++++++++++++++----------------
 1 files changed, 199 insertions(+), 80 deletions(-)

diff --git a/src/views/hosp/advicerules/index.vue b/src/views/hosp/advicerules/index.vue
index 3f305a6..c95e6fa 100644
--- a/src/views/hosp/advicerules/index.vue
+++ b/src/views/hosp/advicerules/index.vue
@@ -109,91 +109,124 @@
       ></right-toolbar>
     </el-row>
 
-    <el-table
-      v-loading="loading"
-      :data="advicerulesList"
-      @selection-change="handleSelectionChange"
-    >
-      <el-table-column type="selection" width="55" align="center" />
-      <el-table-column label="搴忓彿" width="50" align="center">
-        <template slot-scope="scope">
-          {{ scope.$index + 1 }}
-          <!-- 浣跨敤 $index 鏉ユ樉绀哄簭鍙凤紝浠�1寮�濮� -->
-        </template>
-      </el-table-column>
-      <el-table-column label="缂栫爜" align="center" prop="bm" />
-      <el-table-column label="绉戝" align="center" prop="ks" />
-      <el-table-column label="妫�鏌ラ」鐩�" align="center" prop="jcxm" />
-      <el-table-column
-        label="涓昏璇婃柇"
-        align="center"
-        :show-overflow-tooltip="true"
-        width="120"
-        prop="zyzd"
-      />
-      <el-table-column
-        label="寤鸿鍚嶇О"
-        align="center"
-        :show-overflow-tooltip="true"
-        width="150"
-        prop="jymc"
-      />
-      <el-table-column
-        label="寤鸿鍐呭"
-        align="center"
-        :show-overflow-tooltip="true"
-        width="200"
-        prop="jynr"
-      />
-      <el-table-column label="鎬у埆" align="center" prop="xb"  :formatter="formatSex" />
-      <el-table-column label="鑼冨洿" align="center" prop="fwz" />
-      <el-table-column label="鑼冨洿鏈�灏忓��" align="center" prop="fwzxz" />
-      <el-table-column label="鑼冨洿鏈�澶у��" align="center" prop="fwzdz" />
-      <el-table-column label="寮傚父鏍囧織" align="center" prop="ycbz" />
-      <el-table-column label="鏄惁鐤剧梾" align="center" prop="sfjb">
-      </el-table-column>
-      <el-table-column label="鏄惁甯歌鐥�" align="center" prop="sfcjb">
-      </el-table-column>
-      <el-table-column label="鏄惁鎱㈡�х梾" align="center" prop="sfmxb">
-      </el-table-column>
-      <el-table-column
-        label="鏄惁閲嶅ぇ鐤剧梾"
-        align="center"
-        width="120"
-        prop="sfzdjb"
-      ></el-table-column>
-      <el-table-column
-        label="鎿嶄綔"
-        align="center"
-        class-name="small-padding fixed-width"
+    <el-row :gutter="20" style="display: flex">
+      <el-col :span="4" :xs="24">
+        <div class="head-container">
+          <el-input
+            v-model="xmmc"
+            placeholder="璇疯緭鍏ラ」鐩悕"
+            clearable
+            size="small"
+            prefix-icon="el-icon-search"
+            style="margin-bottom: 20px"
+          />
+        </div>
+        <div class="scrollable-container">
+          <div class="content">
+            <el-tree
+              :data="deptOptions"
+              :props="defaultProps"
+              :expand-on-click-node="false"
+              :filter-node-method="filterNode"
+              ref="tree"
+              node-key="id"
+              :default-expanded-keys="treeId"
+              highlight-current
+              @node-click="handleNodeClick"
+            />
+          </div>
+        </div>
+      </el-col>
+      <el-table
+        v-loading="loading"
+        :data="advicerulesList"
+        @selection-change="handleSelectionChange"
       >
-        <template slot-scope="scope">
-          <el-button
-            size="mini"
-            type="text"
-            icon="el-icon-edit"
-            @click="handleUpdate(scope.row)"
-            v-hasPermi="['hosp:advicerules:edit']"
-          >
-          </el-button>
-          <el-button
-            size="mini"
-            type="text"
-            icon="el-icon-delete"
-            @click="handleDelete(scope.row)"
-            v-hasPermi="['hosp:advicerules:remove']"
-          >
-          </el-button>
-        </template>
-      </el-table-column>
-    </el-table>
-
+        <el-table-column type="selection" width="55" align="center" />
+        <el-table-column label="搴忓彿" width="50" align="center">
+          <template slot-scope="scope">
+            {{ scope.$index + 1 }}
+            <!-- 浣跨敤 $index 鏉ユ樉绀哄簭鍙凤紝浠�1寮�濮� -->
+          </template>
+        </el-table-column>
+        <el-table-column label="缂栫爜" align="center" prop="bm" />
+        <el-table-column label="绉戝" align="center" prop="ks" />
+        <el-table-column label="妫�鏌ラ」鐩�" align="center" prop="jcxm" />
+        <el-table-column
+          label="涓昏璇婃柇"
+          align="center"
+          :show-overflow-tooltip="true"
+          width="120"
+          prop="zyzd"
+        />
+        <el-table-column
+          label="寤鸿鍚嶇О"
+          align="center"
+          :show-overflow-tooltip="true"
+          width="150"
+          prop="jymc"
+        />
+        <el-table-column
+          label="寤鸿鍐呭"
+          align="center"
+          :show-overflow-tooltip="true"
+          width="200"
+          prop="jynr"
+        />
+        <el-table-column
+          label="鎬у埆"
+          align="center"
+          prop="xb"
+          :formatter="formatSex"
+        />
+        <el-table-column label="鑼冨洿" align="center" prop="fwz" />
+        <el-table-column label="鑼冨洿鏈�灏忓��" align="center" prop="fwzxz" />
+        <el-table-column label="鑼冨洿鏈�澶у��" align="center" prop="fwzdz" />
+        <el-table-column label="寮傚父鏍囧織" align="center" prop="ycbz" />
+        <el-table-column label="鏄惁鐤剧梾" align="center" prop="sfjb">
+        </el-table-column>
+        <el-table-column label="鏄惁甯歌鐥�" align="center" prop="sfcjb">
+        </el-table-column>
+        <el-table-column label="鏄惁鎱㈡�х梾" align="center" prop="sfmxb">
+        </el-table-column>
+        <el-table-column
+          label="鏄惁閲嶅ぇ鐤剧梾"
+          align="center"
+          width="120"
+          prop="sfzdjb"
+        ></el-table-column>
+        <el-table-column
+          label="鎿嶄綔"
+          align="center"
+          class-name="small-padding fixed-width"
+        >
+          <template slot-scope="scope">
+            <el-button
+              size="mini"
+              type="text"
+              icon="el-icon-edit"
+              @click="handleUpdate(scope.row)"
+              v-hasPermi="['hosp:advicerules:edit']"
+            >
+            </el-button>
+            <el-button
+              size="mini"
+              type="text"
+              icon="el-icon-delete"
+              @click="handleDelete(scope.row)"
+              v-hasPermi="['hosp:advicerules:remove']"
+            >
+            </el-button>
+          </template>
+        </el-table-column>
+      </el-table>
+    </el-row>
     <pagination
       v-show="total > 0"
       :total="total"
       :page.sync="queryParams.pageNum"
       :limit.sync="queryParams.pageSize"
-      @pagination="getList"
+      @pagination="getListByXmId"
     />
 
     <!-- 娣诲姞鎴栦慨鏀逛綋妫�椤圭洰寤鸿瑙勫垯鏂拌〃瀵硅瘽妗� -->
@@ -486,6 +519,7 @@
   delAdvicerules,
   addAdvicerules,
   updateAdvicerules,
+  getTjProAdvicerulesKsList,
 } from "@/api/hosp/advicerules";
 import { listAdvice } from "@/api/advice/advice";
 import { getToken } from "@/utils/auth";
@@ -512,8 +546,11 @@
       // 浣撴椤圭洰寤鸿瑙勫垯鏂拌〃琛ㄦ牸鏁版嵁
       advicerulesList: [],
       adviceList: [],
+      deptOptions: [],
+      treeId: [],
       // 寮瑰嚭灞傛爣棰�
       title: "",
+      xmmc: "",
       // 鏄惁鏄剧ず寮瑰嚭灞�
       open: false,
       key: "",
@@ -521,6 +558,10 @@
       businessName: "exampleBusiness", // 绀轰緥涓氬姟鍚�
       objs: {},
       departmentOptions: [],
+      defaultProps: {
+        children: "children",
+        label: "label",
+      },
       // 鏌ヨ鍙傛暟
       queryParams: {
         pageNum: 1,
@@ -573,15 +614,73 @@
   created() {
     this.getList();
   },
+  watch: {
+    // 鏍规嵁鍚嶇О绛涢�夐儴闂ㄦ爲
+    xmmc(val) {
+      this.$refs.tree.filter(val);
+    },
+    treeId(newVal, oldVal) {
+      if (newVal) {
+        this.$nextTick(() => {
+          document
+            .querySelector(".el-tree-node__children .el-tree-node__content")
+            .click();
+        });
+      }
+    },
+  },
   methods: {
     /** 鏌ヨ浣撴椤圭洰寤鸿瑙勫垯鏂拌〃鍒楄〃 */
     getList() {
-      this.loading = true;
+      /* this.loading = true;
       listAdvicerules(this.queryParams).then((response) => {
         this.advicerulesList = response.rows;
         this.total = response.total;
         this.loading = false;
+      }); */
+      getTjProAdvicerulesKsList().then((response) => {
+        this.deptOptions = response.data.map((name, index) => {
+          return {
+            id: index + 1, // 鍙嚜瀹氫箟鍞竴 ID
+            label: name, // el-tree 榛樿鐨勬樉绀哄瓧娈�
+          };
+        });
+
+        // 璁剧疆榛樿灞曞紑椤�
+        this.treeId = [this.deptOptions[0]?.id];
+        this.queryParams.proId = this.deptOptions[0]?.id;
+        this.getListByXmId();
       });
+    },
+    getListByXmId() {
+      this.loading = true;
+      listAdvicerules(this.queryParams).then((response) => {
+        response.rows.forEach((item, index) => {
+          item.newID =
+            (this.queryParams.pageNum - 1) * this.queryParams.pageSize +
+            index +
+            1;
+        });
+        this.advicerulesList = response.rows;
+        this.total = response.total;
+        this.loading = false;
+      });
+    },
+    handleNodeClick(data) {
+      this.formIn = data;
+      this.queryParams.ks = data.label;
+      this.getListByXmId();
+    },
+
+    // 绛涢�夎妭鐐�
+    filterNode(value, data) {
+      if (!value) return true;
+      // return data.label.indexOf(value) !== -1;
+      return (
+        data.label &&
+        typeof data.label === "string" &&
+        data.label.indexOf(value) !== -1
+      );
     },
 
     idFn(value) {
@@ -820,4 +919,24 @@
   },
 };
 </script>
+<style scoped>
+.scrollable-container {
+  width: 260px;
+  /* 璁剧疆瀹瑰櫒鐨勫搴� */
+  height: 629px;
+  /* 璁剧疆瀹瑰櫒鐨勯珮搴� */
+  overflow: auto;
+  /* 鍏佽鍐呭婧㈠嚭鏃舵樉绀烘粴鍔ㄦ潯 */
+  border: 1px solid #ccc;
+  /* 鍙�夛細娣诲姞杈规浠ユ洿濂藉湴鏄剧ず瀹瑰櫒 */
+  position: relative;
+  /* 鍙�夛細浣垮鍣ㄥ唴鐨勭粷瀵瑰畾浣嶅厓绱犺兘澶熸纭樉绀� */
+}
 
+.content {
+  width: 1000px;
+  /* 璁剧疆鍐呭鐨勫搴︼紝浠ヨЕ鍙戞按骞虫粴鍔ㄦ潯 */
+  height: 1000px;
+  /* 璁剧疆鍐呭鐨勯珮搴︼紝浠ヨЕ鍙戝瀭鐩存粴鍔ㄦ潯 */
+}
+</style>

--
Gitblit v1.8.0