From a5cba9ab040f6f97558046885dce3017f9bab7e9 Mon Sep 17 00:00:00 2001
From: WXL (wul) <wl_5969728@163.com>
Date: 星期二, 11 八月 2026 14:12:29 +0800
Subject: [PATCH] 提交

---
 src/views/followvisit/discharge/index.vue |  931 +++++++++++++++++++++++++++++++++++++++++----------------
 1 files changed, 662 insertions(+), 269 deletions(-)

diff --git a/src/views/followvisit/discharge/index.vue b/src/views/followvisit/discharge/index.vue
index e14bc4f..15b77d9 100644
--- a/src/views/followvisit/discharge/index.vue
+++ b/src/views/followvisit/discharge/index.vue
@@ -1,86 +1,11 @@
 <template>
   <div class="app-container">
-    <div class="leftvlue" style="margin-bottom: 20px">
-      <el-row :gutter="10">
-        <el-col :span="2.5" v-for="(item, index) in cardlist" :key="index">
-          <el-card
-            shadow="hover"
-            :body-style="item.router ? ' cursor: pointer' : 'cursor: default'"
-          >
-            <div style="padding: 8px" @click="$router.push(item.router)">
-              <span>{{ item.name }}</span>
-              <div
-                style="
-                  text-align: center;
-                  font-size: 18px;
-                  margin-top: 10px;
-                  font-weight: 600;
-                "
-              >
-                {{ item.value ? item.value : 0 }}
-              </div>
-            </div>
-          </el-card>
-        </el-col>
-        <el-col :span="2.5">
-          <div class="ysfleftvlue">
-            <el-card shadow="hover">
-              <div style="padding: 8px">
-                <span>琛ㄥ崟宸插彂閫�</span>
-                <div
-                  style="
-                    text-align: center;
-                    font-size: 18px;
-                    margin-top: 10px;
-                    font-weight: 600;
-                  "
-                >
-                  {{ yfsvalue }}
-                </div>
-              </div>
-            </el-card>
-          </div>
-        </el-col>
-        <el-col :span="2.5">
-          <div class="errleftvlue">
-            <el-card shadow="hover">
-              <div style="padding: 8px">
-                <span>寮傚父</span>
-                <div
-                  style="
-                    text-align: center;
-                    font-size: 18px;
-                    margin-top: 10px;
-                    font-weight: 600;
-                  "
-                >
-                  {{ ycvalue }}
-                </div>
-              </div>
-            </el-card>
-          </div>
-        </el-col>
-        <el-col :span="2.5" v-if="orgname == '鐪佺珛鍚屽痉缈犺嫅闄㈠尯'">
-          <div class="jgleftvlue">
-            <el-card shadow="hover ">
-              <div style="padding: 8px">
-                <span>璀﹀憡</span>
-                <div
-                  style="
-                    text-align: center;
-                    font-size: 18px;
-                    margin-top: 10px;
-                    font-weight: 600;
-                  "
-                >
-                  {{ jgvalue }}
-                </div>
-              </div>
-            </el-card>
-          </div>
-        </el-col>
-      </el-row>
-    </div>
+    <statistics-cards
+      :cardlist="cardlist"
+      :ycvalue="ycvalue"
+      :jgvalue="jgvalue"
+      :show-warning-condition="orgname == '鐪佺珛鍚屽痉缈犺嫅闄㈠尯'"
+    />
     <el-row :gutter="20">
       <!--鐢ㄦ埛鏁版嵁-->
       <el-form
@@ -169,19 +94,20 @@
             :options="sourcetype"
             :props="{ expandTrigger: 'hover' }"
             @change="handleChange"
+            filterable
+            clearable
           ></el-cascader>
         </el-form-item>
 
-        <el-form-item label="鏈嶅姟鐘舵��" prop="status">
-          <el-select v-model="topqueryParams.sendstateView" placeholder="璇烽�夋嫨">
-            <el-option
-              v-for="item in topicoptions"
-              :key="item.value"
-              :label="item.label"
-              :value="item.value"
-            >
-            </el-option>
-          </el-select>
+        <el-form-item label="闅忚鐘舵��" prop="status">
+          <el-cascader
+            v-model="serviceStatusValue"
+            placeholder="璇烽�夋嫨"
+            :options="serviceStatusOptions"
+            :props="cascaderProps"
+            @change="handleServiceStatusChange"
+            clearable
+          ></el-cascader>
         </el-form-item>
 
         <el-form-item label="鎺掑簭鏂瑰紡" prop="status">
@@ -225,7 +151,7 @@
             </div>
           </div>
         </el-col>
-        <el-col :span="1.5">
+        <!-- <el-col :span="1.5">
           <el-button
             type="primary"
             icon="el-icon-plus"
@@ -233,7 +159,7 @@
             @click="handleAdd"
             >鏂板</el-button
           >
-        </el-col>
+        </el-col> -->
 
         <el-col :span="1.5">
           <div class="documentf">
@@ -243,7 +169,7 @@
                 plain
                 icon="el-icon-warning-outline"
                 size="medium"
-                @click="toleadExport(1)"
+                @click="toleadExport(1, 1)"
                 >鎵ц澶辫触</el-button
               >
             </div>
@@ -257,7 +183,7 @@
                 plain
                 icon="el-icon-warning"
                 size="medium"
-                @click="toleadExport(2)"
+                @click="toleadExport(2, 1)"
                 >缁撴灉寮傚父</el-button
               >
             </div>
@@ -317,12 +243,27 @@
           </div>
         </el-col>
       </el-row>
+      <div class="selected-info">
+        宸查�変腑
+        <span style="color: #409eff; font-weight: bold">{{
+          getSelectedCount()
+        }}</span>
+        鏉℃暟鎹�
+        <el-button
+          v-if="getSelectedCount() > 0"
+          type="text"
+          @click="clearAllSelection"
+        >
+          娓呴櫎閫変腑
+        </el-button>
+      </div>
       <el-table
         v-loading="loading"
         ref="userform"
         :data="userList"
         :row-class-name="tableRowClassName"
         @selection-change="handleSelectionChange"
+        @select-all="handleSelectAll"
       >
         <el-table-column type="selection" width="50" align="center" />
         <el-table-column
@@ -383,6 +324,7 @@
               effect="dark"
               :content="scope.row.remark"
               placement="top-start"
+              popper-class="statistics-tooltip"
             >
               <div v-if="scope.row.sendstateView == 1">
                 <el-tag type="primary" :disable-transitions="false"
@@ -390,22 +332,12 @@
                 >
               </div>
               <div v-if="scope.row.sendstateView == 2">
-                <el-tag type="primary" :disable-transitions="false"
-                  >闅忚涓�</el-tag
-                >
-              </div>
-              <div v-if="scope.row.sendstateView == 3">
-                <el-tag type="warning" :disable-transitions="false"
-                  >鏈畬鎴�</el-tag
-                >
-              </div>
-              <div v-if="scope.row.sendstateView == 4">
                 <el-tag type="success" :disable-transitions="false"
                   >宸插畬鎴�</el-tag
                 >
               </div>
-              <div v-if="scope.row.sendstateView == 5">
-                <el-tag type="danger" :disable-transitions="false"
+              <div v-if="scope.row.sendstateView == 3">
+                <el-tag type="warning" :disable-transitions="false"
                   >鏃犻渶闅忚</el-tag
                 >
               </div>
@@ -427,6 +359,7 @@
             />
           </template>
         </el-table-column>
+
         <el-table-column
           label="浠诲姟鎵ц鏂瑰紡"
           align="center"
@@ -438,6 +371,15 @@
           <template slot-scope="scope">
             <span v-for="item in scope.row.preachform">{{ item }}銆� </span>
           </template>
+        </el-table-column>
+        <el-table-column
+          label="褰撳墠鎵ц鏂瑰紡"
+          align="center"
+          key="currentPreachform"
+          prop="currentPreachform"
+          width="160"
+          :show-overflow-tooltip="true"
+        >
         </el-table-column>
         <el-table-column
           label="闅忚瀹屾垚鏃堕棿"
@@ -452,7 +394,7 @@
         </el-table-column>
         <el-table-column
           label="鍑洪櫌鏃ユ湡"
-          width="200"
+          width="146"
           align="center"
           key="endtime"
           prop="endtime"
@@ -462,16 +404,30 @@
           </template></el-table-column
         >
         <el-table-column
+          label="寮�濮嬮殢璁挎椂闂�"
+          width="146"
+          align="center"
+          key="longSendTime"
+          prop="longSendTime"
+          :render-header="Tooltipks"
+        >
+          <template slot-scope="scope">
+            <span>{{ formatTime(scope.row.longSendTime) }}</span>
+          </template></el-table-column
+        >
+        <el-table-column
           label="搴旈殢璁挎棩鏈�"
-          width="200"
+          width="146"
           align="center"
           key="visitTime"
           prop="visitTime"
+          :render-header="Tooltipy"
         >
           <template slot-scope="scope">
             <span>{{ formatTime(scope.row.visitTime) }}</span>
           </template></el-table-column
         >
+
         <!-- 鍘� -->
         <el-table-column
           label="涓绘不鍖荤敓"
@@ -479,6 +435,20 @@
           align="center"
           key="drname"
           prop="drname"
+        />
+        <el-table-column
+          label="璐d换鎶ゅ+"
+          width="120"
+          align="center"
+          key="nurseName"
+          prop="nurseName"
+        />
+        <el-table-column
+          label="缁忕鍖荤敓"
+          align="center"
+          key="managementDoctor"
+          prop="managementDoctor"
+          width="120"
         />
         <el-table-column
           v-if="orgname != '涓芥按甯備腑鍖婚櫌'"
@@ -489,13 +459,53 @@
           width="120"
         />
         <el-table-column
-          v-if="orgname != '涓芥按甯備腑鍖婚櫌'"
-          label="缁忕鍖荤敓"
+          label="浠诲姟鐘舵��"
           align="center"
-          key="managementDoctor"
-          prop="managementDoctor"
+          key="sendstate"
+          prop="sendstate"
           width="120"
-        />
+        >
+          <template slot-scope="scope">
+            <el-tooltip
+              class="item"
+              effect="dark"
+              :content="scope.row.remark"
+              placement="top-start"
+            >
+              <div v-if="scope.row.sendstate == 1">
+                <el-tag type="primary" :disable-transitions="false"
+                  >琛ㄥ崟宸查鍙�</el-tag
+                >
+              </div>
+              <div v-if="scope.row.sendstate == 2">
+                <el-tag type="primary" :disable-transitions="false"
+                  >寰呴殢璁�</el-tag
+                >
+              </div>
+              <div v-if="scope.row.sendstate == 3">
+                <el-tag type="success" :disable-transitions="false"
+                  >琛ㄥ崟宸插彂閫�</el-tag
+                >
+              </div>
+              <div v-if="scope.row.sendstate == 4">
+                <el-tag type="info" :disable-transitions="false">涓嶆墽琛�</el-tag>
+              </div>
+              <div v-if="scope.row.sendstate == 5">
+                <el-tag type="danger" :disable-transitions="false"
+                  >鍙戦�佸け璐�</el-tag
+                >
+              </div>
+              <div v-if="scope.row.sendstate == 6">
+                <el-tag type="success" :disable-transitions="false"
+                  >宸插畬鎴�</el-tag
+                >
+              </div>
+              <div v-if="scope.row.sendstate == 7">
+                <el-tag type="danger" :disable-transitions="false">瓒呮椂</el-tag>
+              </div>
+            </el-tooltip>
+          </template>
+        </el-table-column>
         <el-table-column
           label="鍑洪櫌澶╂暟"
           width="120"
@@ -508,13 +518,6 @@
           </template>
         </el-table-column>
         <el-table-column
-          label="韬唤璇佸彿鐮�"
-          width="200"
-          align="center"
-          key="sfzh"
-          prop="sfzh"
-        />
-        <el-table-column
           label="鑱旂郴鐢佃瘽"
           width="200"
           align="center"
@@ -522,11 +525,11 @@
           prop="phone"
         />
         <el-table-column
-          label="璐d换鎶ゅ+"
-          width="120"
+          label="韬唤璇佸彿鐮�"
+          width="200"
           align="center"
-          key="nurseName"
-          prop="nurseName"
+          key="sfzh"
+          prop="sfzh"
         />
 
         <!-- <el-table-column
@@ -580,6 +583,7 @@
             </span>
           </template>
         </el-table-column> -->
+
         <el-table-column
           label="浠诲姟缁撴灉璇存槑"
           width="220"
@@ -654,6 +658,15 @@
               @click="handleUpdate(scope.row)"
               ><span class="button-textxga"
                 ><i class="el-icon-edit"></i>鎮h�呰繃婊�</span
+              ></el-button
+            >
+            <el-button
+              size="medium"
+              type="text"
+              v-if="orgname == '鍗楀崕澶у闄勫睘绗竴鍖婚櫌'"
+              @click="handleTransferOpen(scope.row)"
+              ><span class="button-textxgc"
+                ><i class="el-icon-sort"></i>鍙樻洿绉�/鍖�</span
               ></el-button
             >
           </template>
@@ -901,6 +914,11 @@
                 type="textarea"
                 placeholder="璇疯緭鍏ヨ繃婊ゅ師鍥�"
               ></el-input>
+              <!-- 鎻愰啋鏂囧瓧 -->
+              <div class="filter-warning">
+                <i class="el-icon-warning-outline"></i>
+                璇ュ姛鑳介�傜敤浜庢浜°�佸垪鍏ュ尰闄㈤粦鍚嶅崟銆佹槑纭嫆缁濋殢璁跨瓑鎮h�呯殑杩囨护鎺掗櫎锛岃繃婊ゅ悗璇ユ偅鑰呮墍鏈夎繘琛屼腑浠诲姟鍏ㄩ儴鍋滄涓旀棤娉曞尮閰嶆柊鐨勯殢璁夸换鍔★紝璇疯皑鎱庢搷浣滐紒
+              </div>
             </el-form-item>
           </el-col>
         </el-row>
@@ -910,81 +928,7 @@
         <el-button @click="cancel">鍙� 娑�</el-button>
       </div>
     </el-dialog>
-    <!-- 淇敼鍙戦�佹椂闂村璇濇 -->
-    <el-dialog
-      title="鍙戦�佹椂闂磋缃�"
-      :visible.sync="modificationVisible"
-      width="45%"
-    >
-      <div style="margin-bottom: 20px; color: red">
-        缁熶竴淇敼褰撳ぉ鏈彂閫佺殑浠诲姟鏃堕棿
-      </div>
 
-      <el-form
-        :model="ruleForm"
-        :rules="rules"
-        ref="ruleForm"
-        label-width="120px"
-        class="demo-ruleForm"
-      >
-        <el-form-item label="鍙戦�佹棩鏈�">
-          <el-date-picker
-            v-model="ruleForm.value1"
-            type="date"
-            placeholder="閫夋嫨鏃ユ湡"
-          >
-          </el-date-picker>
-        </el-form-item>
-
-        <el-form-item label="鏃堕棿娈�" prop="type">
-          <el-checkbox-group v-model="ruleForm.type">
-            <el-checkbox label="涓婂崍" name="type"></el-checkbox>
-            <el-checkbox label="涓嬪崍" name="type"></el-checkbox>
-            <el-checkbox label="鏅氫笂" name="type"></el-checkbox>
-          </el-checkbox-group>
-        </el-form-item>
-        <el-form-item label="涓婂崍鏃堕棿鍖洪棿" required>
-          <el-time-picker
-            is-range
-            v-model="ruleForm.value2"
-            range-separator="鑷�"
-            start-placeholder="寮�濮嬫椂闂�"
-            end-placeholder="缁撴潫鏃堕棿"
-            placeholder="閫夋嫨鏃堕棿鑼冨洿"
-          >
-          </el-time-picker>
-        </el-form-item>
-        <el-form-item label="涓嬪崍鏃堕棿鍖洪棿" required>
-          <el-time-picker
-            is-range
-            v-model="ruleForm.value3"
-            range-separator="鑷�"
-            start-placeholder="寮�濮嬫椂闂�"
-            end-placeholder="缁撴潫鏃堕棿"
-            placeholder="閫夋嫨鏃堕棿鑼冨洿"
-          >
-          </el-time-picker>
-        </el-form-item>
-        <el-form-item label="鏅氫笂鏃堕棿鍖洪棿" required>
-          <el-time-picker
-            is-range
-            v-model="ruleForm.value4"
-            range-separator="鑷�"
-            start-placeholder="寮�濮嬫椂闂�"
-            end-placeholder="缁撴潫鏃堕棿"
-            placeholder="閫夋嫨鏃堕棿鑼冨洿"
-          >
-          </el-time-picker>
-        </el-form-item>
-      </el-form>
-
-      <span slot="footer" class="dialog-footer">
-        <el-button @click="modificationVisible = false">鍙� 娑�</el-button>
-        <el-button type="primary" @click="modificationVisible = false"
-          >纭� 瀹�</el-button
-        >
-      </span>
-    </el-dialog>
     <!-- 鍐嶆闅忚 -->
     <el-dialog title="鎮h�呭啀娆¢殢璁�" :visible.sync="dialogFormVisible">
       <el-form ref="zcform" :rules="zcrules" :model="zcform" label-width="80px">
@@ -1057,6 +1001,57 @@
         <el-button type="primary" @click="setupsubtask">纭鍒涘缓鏈嶅姟</el-button>
       </div>
     </el-dialog>
+
+    <!-- 鍙樻洿绉戝/鐥呭尯寮圭獥 -->
+    <el-dialog
+      title="鍙樻洿绉戝/鐥呭尯"
+      :visible.sync="transferDialogVisible"
+      width="480px"
+      :close-on-click-modal="false"
+    >
+      <el-form :model="transferForm" label-width="100px">
+        <el-form-item label="褰撳墠绉戝">
+          <span>{{ transferForm.currentDeptName || "-" }}</span>
+        </el-form-item>
+        <el-form-item label="褰撳墠鐥呭尯">
+          <span>{{ transferForm.currentWardName || "-" }}</span>
+        </el-form-item>
+        <el-form-item label="鐩爣绉戝">
+          <el-cascader
+            v-model="transferDeptValue"
+            :options="deptOptionsks"
+            :props="cascaderPropsa"
+            placeholder="璇烽�夋嫨鐩爣绉戝"
+            filterable
+            clearable
+            style="width: 100%"
+            @change="handleDeptCascaderChange"
+          />
+        </el-form-item>
+        <el-form-item label="鐩爣鐥呭尯">
+          <el-cascader
+            v-model="transferWardValue"
+            :options="deptOptionsbq"
+            :props="cascaderPropsa"
+            placeholder="璇烽�夋嫨鐩爣鐥呭尯"
+            filterable
+            clearable
+            style="width: 100%"
+            @change="handleWardCascaderChange"
+          />
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button @click="transferDialogVisible = false">鍙� 娑�</el-button>
+        <el-button
+          type="primary"
+          :loading="transferLoading"
+          @click="handleTransferSubmit"
+        >
+          纭鍙樻洿
+        </el-button>
+      </div>
+    </el-dialog>
   </div>
 </template>
 
@@ -1067,6 +1062,7 @@
   updateUser,
   resetUserPwd,
   changeUserStatus,
+  deptTreeSelect,
 } from "@/api/system/user";
 import {
   getTaskservelist,
@@ -1074,17 +1070,20 @@
   addserviceSubtask,
   query360PatInfo,
   addsatisfaction,
+  transferDept,
   query360PatInfonh,
 } from "@/api/AiCentre/index";
 import { alterpatient, particularpatient } from "@/api/patient/homepage";
 import Treeselect from "@riophae/vue-treeselect";
+import StatisticsCards from "@/components/StatisticsCards";
+
 import store from "@/store";
 import "@riophae/vue-treeselect/dist/vue-treeselect.css";
 
 export default {
   name: "Discharge",
   dicts: ["sys_normal_disable", "sys_user_sex", "sys_yujing", "sys_suggest"],
-  components: { Treeselect },
+  components: { Treeselect, StatisticsCards },
   data() {
     return {
       // 閬僵灞�
@@ -1106,8 +1105,7 @@
       title: "鏂板褰卞儚闅忚",
       // 鏄惁鏄剧ず淇敼銆佹坊鍔犲脊鍑哄眰
       addalteropen: false,
-      // 淇敼鍙戦�佹椂闂村璇濇
-      modificationVisible: false,
+
       // 閮ㄩ棬鍚嶇О
       deptName: undefined,
       // 榛樿瀵嗙爜
@@ -1124,12 +1122,13 @@
       dynamicTags: ["閫夐」涓�", "閫夐」浜�", "閫夐」涓�"], //閫夐」
       inputVisible: false,
       Labelchange: false,
-      ycvalue: "",
+      ycvalue: 0,
       jgvalue: "",
       yfsvalue: "",
       inputValue: "",
       preachform: "",
       previewVisible: false, //褰卞儚闅忚棰勮寮规
+      isRestoring: false,
       radio: "",
       radios: [],
       previewtype: 2, //棰勮褰卞儚闅忚绫诲瀷
@@ -1137,7 +1136,43 @@
       // 婊℃剰搴﹁皟鏌ユ暟鎹�
       scoreDialogVisible: false,
       selectedRows: [],
+      selectedRowMap: new Map(), // key: row.id, value: row 鏁版嵁
 
+      // 绾ц仈閫夋嫨鍣ㄧ粦瀹氬��
+      serviceStatusValue: 10,
+      cascaderProps: {
+        expandTrigger: "hover", // 鎮仠灞曞紑
+        checkStrictly: true, // 鉁� 鍏抽敭锛氬厑璁搁�変腑浠绘剰涓�绾�
+        emitPath: false, // 鉁� 鍙繑鍥為�変腑鐨勫�硷紝涓嶈繑鍥炶矾寰勬暟缁�
+      },
+      // 鏈嶅姟鐘舵�侀�夐」锛堜竴绾у拰浜岀骇鍊间笉鍐茬獊锛�
+      serviceStatusOptions: [
+        {
+          value: null,
+          label: "鍏ㄩ儴",
+        },
+        {
+          value: 10, // 涓�绾э細寰呴殢璁�
+          label: "寰呴殢璁�",
+          children: [
+            { value: 1, label: "琚鍙�" },
+            { value: 2, label: "寰呭彂閫�" },
+            { value: 3, label: "宸插彂閫�" },
+            { value: 5, label: "鍙戦�佸け璐�" },
+            { value: 7, label: "瓒呮椂" },
+          ],
+        },
+        {
+          value: 20, // 涓�绾э細宸插畬鎴�
+          label: "宸插畬鎴�",
+          children: [{ value: 6, label: "宸插畬鎴�" }],
+        },
+        {
+          value: 30, // 涓�绾э細鏃犻渶闅忚
+          label: "鏃犻渶闅忚",
+          children: [{ value: 4, label: "涓嶆墽琛�" }],
+        },
+      ],
       value: [],
       list: [],
 
@@ -1160,34 +1195,26 @@
       loading: false,
       cardlist: [
         {
-          name: "鍑洪櫌鏈嶅姟鎬婚噺",
+          name: "鎮h�呮湇鍔℃�婚噺",
           value: 0,
         },
-        // {
-        //   name: "鎮h�呰繃婊�",
-        //   value: 0,
-        // },
+
+        {
+          name: "鏃犻渶闅忚",
+          value: 0,
+        },
         {
           name: "闇�闅忚",
-          value: 0,
-        },
-        {
-          name: "鍙戦�佸け璐�",
           value: 0,
         },
         {
           name: "寰呴殢璁�",
           value: 0,
         },
-        // {
-        //   name: "宸插彂閫�",
-        //   value: 0,
-        // },
-
-        // {
-        //   name: "琛ㄥ崟宸插彂閫�",
-        //   value: 0,
-        // },
+        {
+          name: "宸插畬鎴�",
+          value: 0,
+        },
       ],
       zcrules: {
         date1: [
@@ -1207,7 +1234,8 @@
         btstatus: "",
       },
       // endOut: 1,
-      endOut: localStorage.getItem("orgname") == "涓芥按甯備腑鍖婚櫌" ? 0 : 1, //0 鍑洪櫌鏃堕棿(姝e簭)    1 鍑洪櫌鏃堕棿(鍊掑簭)   2 鍙戦�佹椂闂�(姝e簭)    3 鍙戦�佹椂闂�(鍊掑簭)  7搴旈殢璁挎棩鏈�(鍊掑簭) 搴旈殢璁挎棩鏈�(姝e簭)
+      endOut:
+        localStorage.getItem("orgname") == "鏅畞鐣叉棌鑷不鍘夸汉姘戝尰闄�" ? 0 : 1, //0 鍑洪櫌鏃堕棿(姝e簭)    1 鍑洪櫌鏃堕棿(鍊掑簭)   2 鍙戦�佹椂闂�(姝e簭)    3 鍙戦�佹椂闂�(鍊掑簭)  7搴旈殢璁挎棩鏈�(鍊掑簭) 搴旈殢璁挎棩鏈�(姝e簭)
       endOuts: [
         {
           value: 0,
@@ -1252,13 +1280,22 @@
       topqueryParams: {
         pageNum: 1,
         pageSize: 10,
-        sendstateView:
-          localStorage.getItem("orgname") == "鐪佺珛鍚屽痉缈犺嫅闄㈠尯" ? null : 1,
-        sort: localStorage.getItem("orgname") == "涓芥按甯備腑鍖婚櫌" ? 8 : 2, //0 鍑洪櫌鏃堕棿(姝e簭)    1 鍑洪櫌鏃堕棿(鍊掑簭)   2 鍙戦�佹椂闂�(姝e簭)    3 鍙戦�佹椂闂�(鍊掑簭)  7搴旈殢璁挎棩鏈�(鍊掑簭) 搴旈殢璁挎棩鏈�(姝e簭)
+        sendstateView: 1,
+        sort:
+          localStorage.getItem("orgname") == "涓芥按甯備腑鍖婚櫌"
+            ? 8
+            : localStorage.getItem("orgname") == "鏅畞鐣叉棌鑷不鍘夸汉姘戝尰闄�"
+            ? 2
+            : 1, //0 鍑洪櫌鏃堕棿(姝e簭)    1 鍑洪櫌鏃堕棿(鍊掑簭)   2 鍙戦�佹椂闂�(姝e簭)    3 鍙戦�佹椂闂�(鍊掑簭)  7搴旈殢璁挎棩鏈�(鍊掑簭) 搴旈殢璁挎棩鏈�(姝e簭)
         serviceType: 2,
+        sendstate: null,
         searchscope: 3,
         visitCount: 1,
         scopetype: [],
+        managementDoctor:
+          localStorage.getItem("orgname") == "缂欎簯鍘夸汉姘戝尰闄�"
+            ? store.getters.nickName
+            : "",
         leaveldeptcodes: [],
         leavehospitaldistrictcodes: [],
       },
@@ -1356,6 +1393,25 @@
       leavehospitaldistrictcode: "",
       serviceState: [],
       checkboxlist: [],
+      // 鍙樻洿绉戝/鐥呭尯
+      transferDialogVisible: false,
+      transferForm: {
+        subId: null,
+        leavelDeptCode: "",
+        leavelDeptName: "",
+        leavehospitaldistrictcode: "",
+        leavehospitaldistrictname: "",
+      },
+      deptOptionsks: [],
+      deptOptionsbq: [],
+      transferDeptValue: [],
+      transferWardValue: [],
+      cascaderPropsa: {
+        value: "deptCode",
+        label: "label",
+        checkStrictly: true,
+      },
+      transferLoading: false,
       // 琛ㄥ崟鏍¢獙
       rules: {},
     };
@@ -1364,10 +1420,9 @@
     // 鐩戝惉璺敱鍙傛暟鍙樺寲
     "$route.query": {
       handler(newQuery, oldQuery) {
-        if (newQuery.errtype !== oldQuery.errtype) {
+        if (newQuery?.errtype !== oldQuery?.errtype) {
           console.log(22);
-
-          this.loadData(); // 閲嶆柊鍔犺浇鏁版嵁
+          this.loadData();
         }
       },
       immediate: true,
@@ -1436,7 +1491,7 @@
   },
   methods: {
     /** 鏌ヨ闅忚鏈嶅姟鍒楄〃 */
-    getList(refresh) {
+    async getList(refresh) {
       // 榛樿鍏ㄩ儴
       if (this.topqueryParams.searchscope == 3) {
         this.topqueryParams.leaveldeptcodes = store.getters.belongDepts.map(
@@ -1449,16 +1504,17 @@
         this.topqueryParams.endSendDateTime = this.formatDateToYYYYMMDDHHMMSS(
           this.getEndOfDay()
         );
-      } else {
-        // this.topqueryParams.endSendDateTime = null;
       }
+
       // 鎺ュ彈寮傚父璺宠浆
       if (this.errtype) {
         this.topqueryParams.leavehospitaldistrictcodes.push(
           this.leavehospitaldistrictcode
         );
       }
+
       this.loading = true;
+
       if (
         this.topqueryParams.leavehospitaldistrictcodes[0] &&
         this.topqueryParams.leaveldeptcodes[0]
@@ -1467,29 +1523,43 @@
       } else {
         this.topqueryParams.deptOrDistrict = 1;
       }
+
       if (!this.followupAuthority()) {
         this.$message.warning("鏈厤缃瀹�/鐥呭尯鐩稿叧鏉冮檺涓嶅彲鏌ヨ");
+        this.loading = false;
         return Promise.reject(new Error("鏃犳潈闄愭煡璇�"));
       }
 
-      getTaskservelist(this.topqueryParams).then((response) => {
+      try {
+        const response = await getTaskservelist(this.topqueryParams);
+
+        // 鉁� 绗竴姝ワ細鍏堥攣瀹氭仮澶嶇姸鎬�
+        this.isRestoring = true;
+
+        // 鉁� 绗簩姝ワ細鍐嶆洿鏂版暟鎹紙杩欎細瑙﹀彂 selection-change锛屼絾琚攣浣忎簡锛�
         this.userList = response.rows[0].serviceSubtaskList;
         this.total = response.total;
+
+        // 鉁� 绗笁姝ワ細鎭㈠閫変腑鐘舵��
+        // this.restoreSelection();
+        this.$nextTick(() => {
+          this.restoreSelection();
+        });
+
+        // 鉁� 绗洓姝ワ細澶勭悊鍏朵粬鏁版嵁
         if (refresh) {
           this.cardlist[0].value =
-            Number(response.rows[0].wzx) +
-            Number(response.rows[0].ysf) +
-            Number(response.rows[0].fssb);
-          // this.cardlist[1].value = response.rows[0].wzx;
-          this.cardlist[1].value = response.rows[0].ysf;
-          this.ycvalue = response.rows[0].yc;
+            Number(response.rows[0].wxsf) + Number(response.rows[0].xsf) || 0;
+          this.cardlist[1].value = response.rows[0].wxsf || 0;
+          this.ycvalue = Number(response.rows[0].yc) || 0;
           this.jgvalue = response.rows[0].jg;
-          this.cardlist[2].value = response.rows[0].fssb;
-          this.cardlist[3].value = response.rows[0].dsf;
-          // this.cardlist[4].value = response.rows[0].yfs2;
+          this.cardlist[2].value = response.rows[0].xsf || 0;
+          this.cardlist[3].value = response.rows[0].dsf || 0;
+          this.cardlist[4].value = response.rows[0].ywc || 0;
           this.yfsvalue = response.rows[0].yfs;
         }
-        this.loading = false;
+
+        // 鉁� 绗簲姝ワ細澶勭悊 preachform 绛夊叾浠栨暟鎹�
         this.userList.forEach((item) => {
           let idArray = null;
           if (item.endtime) {
@@ -1497,23 +1567,36 @@
           }
 
           if (item.preachform) {
-            if (item.endtime) {
-              item.preachformson = item.preachform;
-              idArray = item.preachform.split(",");
-            }
+            item.preachformson = item.preachform;
+            idArray = item.preachform.split(",");
 
             item.preachform = idArray.map((value) => {
-              // 鏌ユ壘id瀵瑰簲鐨勫璞�
               const item = this.checkboxlist.find(
                 (item) => item.value == value
               );
-              // 濡傛灉鎵惧埌瀵瑰簲鐨刬d锛岃繑鍥瀕abel鍊硷紝鍚﹀垯杩斿洖null
               return item ? item.label : null;
             });
           }
+          if (item.currentPreachform) {
+            item.currentPreachform = this.checkboxlist.find(
+              (item) => item.value == item.currentPreachform
+            )?.value;
+            console.log(item.currentPreachform, "mi");
+          }
         });
+
         this.total = response.total;
-      });
+        this.loading = false;
+
+        // 鉁� 绗叚姝ワ細瑙i攣
+        this.$nextTick(() => {
+          this.isRestoring = false;
+        });
+      } catch (error) {
+        console.error("鑾峰彇鍒楄〃澶辫触:", error);
+        this.loading = false;
+        this.isRestoring = false;
+      }
     },
     loadData() {
       this.errtype = this.$route.query.errtype;
@@ -1535,6 +1618,32 @@
         this.getList(1);
       }
     },
+    Tooltipy(h, { column }) {
+      return h(
+        "el-tooltip",
+        {
+          props: {
+            content: "浠诲姟閰嶇疆澶氱琛ュ伩绫诲瀷鏃讹紝鏈�鏂版墽琛岀被鍨嬬殑搴旈殢璁挎椂闂�",
+            placement: "top",
+            effect: "dark",
+          },
+        },
+        [h("span", column.label)]
+      );
+    },
+    Tooltipks(h, { column }) {
+      return h(
+        "el-tooltip",
+        {
+          props: {
+            content: "浠诲姟瀛樺湪澶氱琛ュ伩绫诲瀷鏃剁殑棣栨搴旈殢璁挎椂闂�",
+            placement: "top",
+            effect: "dark",
+          },
+        },
+        [h("span", column.label)]
+      );
+    },
     // 鏃堕棿
     getEndOfDay() {
       const date = new Date(); // 鍒涘缓涓�涓〃绀哄綋鍓嶆椂闂寸殑Date瀵硅薄
@@ -1552,10 +1661,13 @@
       return `${year}-${month}-${day}`;
     },
     affiliation() {
+      this.resetQuerykj();
       this.topqueryParams.managementDoctorCode = store.getters.hisUserId;
       this.getList(1);
     },
     onthatday() {
+      this.resetQuerykj();
+
       this.topqueryParams.startSendDateTime = this.getCurrentDate();
       this.topqueryParams.endSendDateTime = this.getCurrentDate();
       this.getList(1);
@@ -1564,7 +1676,11 @@
       const now = new Date();
       return now.toISOString().slice(0, 10); // 鎴彇鍓�10涓瓧绗︼紝鍗� YYYY-MM-DD
     },
+
     buidegetTasklist(type) {
+      if (type) {
+        this.resetQuerykj();
+      }
       if (this.topqueryParams.searchscope == 3) {
         this.topqueryParams.leaveldeptcodes = store.getters.belongDepts.map(
           (obj) => obj.deptCode
@@ -1590,10 +1706,10 @@
         this.userList = response.rows[0].serviceSubtaskList;
         this.total = response.total;
         this.cardlist[0].value =
-          Number(response.rows[0].wzx) + Number(response.rows[0].ysf);
+          Number(response.rows[0].wxsf) + Number(response.rows[0].xsf) || 0;
         this.cardlist[1].value = response.rows[0].wzx;
         this.cardlist[2].value = response.rows[0].ysf;
-        this.ycvalue = response.rows[0].yc;
+        this.ycvalue = Number(response.rows[0].yc) || 0;
         this.jgvalue = response.rows[0].jg;
         this.cardlist[3].value = response.rows[0].fssb;
         this.cardlist[4].value = response.rows[0].dsf;
@@ -1698,10 +1814,20 @@
     },
     // 鎮h�呰寖鍥村鐞�
     handleChange(value) {
-      let type = value[0];
-      let code = value.slice(-1)[0];
+      console.log("閫夋嫨鐨勬偅鑰呰寖鍥�:", value);
+
+      // 娓呯┖涔嬪墠鐨勬煡璇㈠弬鏁�
       this.topqueryParams.leavehospitaldistrictcodes = [];
       this.topqueryParams.leaveldeptcodes = [];
+      this.topqueryParams.searchscope = null;
+
+      if (!value || value.length === 0) {
+        return;
+      }
+
+      let type = value[0];
+      let code = value.slice(-1)[0];
+
       if (type == 1) {
         this.topqueryParams.leaveldeptcodes.push(code);
         this.topqueryParams.leavehospitaldistrictcodes = [];
@@ -1714,10 +1840,42 @@
         this.topqueryParams.searchscope = 3;
       }
     },
+    // 鏈嶅姟鐘舵�佸彉鏇村鐞�
+    handleServiceStatusChange(value) {
+      // 娓呯┖閫夋嫨
+      if (value === null || value === undefined || value === "") {
+        this.topqueryParams.sendstateView = null;
+        this.topqueryParams.sendstate = null;
+        return;
+      }
+      console.log(value, "value");
+
+      // 涓�绾ц妭鐐圭殑鍊硷紙澶т簬绛変簬10锛�
+      if (value >= 10) {
+        // 閫変腑浜嗕竴绾�
+        switch (value) {
+          case 10:
+            this.topqueryParams.sendstateView = 1; // 寰呴殢璁�
+            break;
+          case 20:
+            this.topqueryParams.sendstateView = 2; // 宸插畬鎴�
+            break;
+          case 30:
+            this.topqueryParams.sendstateView = 3; // 鏃犻渶闅忚
+            break;
+        }
+        this.topqueryParams.sendstate = null;
+      } else {
+        // 閫変腑浜嗕簩绾э紙鍏蜂綋鐘舵�侊級
+        this.topqueryParams.sendstateView = null;
+        this.topqueryParams.sendstate = value;
+      }
+    },
     /** 閲嶇疆鎸夐挳鎿嶄綔 */
     resetQuery() {
       this.dateRange = [];
       this.dateRangefs = [];
+      this.serviceStatusValue = 10;
       this.topqueryParams = {
         pageNum: 1,
         pageSize: 10,
@@ -1732,10 +1890,36 @@
       };
       this.handleQuery(1);
     },
+    /** 閲嶇疆鎸夐挳鎿嶄綔 */
+    resetQuerykj() {
+      this.dateRange = [];
+      this.dateRangefs = [];
+      this.serviceStatusValue = null;
+      this.topqueryParams = {
+        pageNum: 1,
+        pageSize: 10,
+        sendstateView: null,
+        sort: 2, //0 鍑洪櫌鏃堕棿(姝e簭)    1 鍑洪櫌鏃堕棿(鍊掑簭)   2 鍙戦�佹椂闂�(姝e簭)    3 鍙戦�佹椂闂�(鍊掑簭)
+        serviceType: 2,
+        searchscope: 3,
+        visitCount: 1,
+        scopetype: [],
+        leaveldeptcodes: [],
+        leavehospitaldistrictcodes: [],
+      };
+    },
     handleSelectionChange(rows) {
-      this.selectedRows = rows.map((row) => {
-        // 鍒濆鍖栬瘎鍒嗗瓧娈�
-        return {
+      // 鉁� 濡傛灉鏄仮澶嶉�変腑鐘舵�佽Е鍙戠殑锛岀洿鎺ヨ繑鍥�
+      if (this.isRestoring) {
+        console.log("姝e湪鎭㈠閫変腑鐘舵�侊紝璺宠繃 handleSelectionChange");
+        return;
+      }
+
+      console.log("handleSelectionChange 琚Е鍙戯紝閫変腑琛屾暟:", rows.length);
+
+      // 鍙仛娣诲姞鎿嶄綔
+      rows.forEach((row) => {
+        this.selectedRowMap.set(row.id, {
           ...row,
           authenticity: row.authenticity || 0,
           weekFinish: row.weekFinish || 0,
@@ -1745,14 +1929,11 @@
           environment: row.environment || 0,
           doctorSatisfaction: row.doctorSatisfaction || 0,
           nurseSatisfaction: row.nurseSatisfaction || 0,
-        };
+        });
       });
 
-      if (this.selectedRows.length > 0) {
-        this.multiple = false;
-      } else {
-        this.multiple = true;
-      }
+      this.selectedRows = Array.from(this.selectedRowMap.values());
+      this.multiple = this.selectedRows.length === 0;
     },
 
     // 璁$畻鎬诲垎
@@ -1948,10 +2129,7 @@
         })
         .catch(() => {});
     },
-    // 璁剧疆鍙戦�佹椂闂�
-    Sendtimesetting() {
-      this.modificationVisible = true;
-    },
+
     // 璺宠浆璇︽儏椤�
     Seedetails(row) {
       let type = "";
@@ -2017,8 +2195,10 @@
       this.Labelchange = true;
     },
     // 渚挎嵎鎸夐挳
-    toleadExport(too) {
-      console.log(too, "too");
+    toleadExport(too, type) {
+      if (type) {
+        this.resetQuerykj();
+      }
 
       if (too == 1) {
         this.topqueryParams.sendstate = 4;
@@ -2030,7 +2210,6 @@
         this.topqueryParams.endSendDateTime = this.formatDateToYYYYMMDDHHMMSS(
           this.getEndOfDay()
         );
-        console.log(1111, this.topqueryParams.endSendDateTime);
 
         this.topqueryParams.excep = null;
         this.topqueryParams.sendstate = 2;
@@ -2052,6 +2231,7 @@
       const originalPageSize = this.topqueryParams.pageSize;
       this.topqueryParams.pageNum = null;
       this.topqueryParams.pageSize = null;
+      this.topqueryParams.subIdList = this.selectedRows.map((item) => item.id);
       this.download(
         "smartor/serviceSubtask/patItemExport",
         {
@@ -2073,6 +2253,76 @@
         return "remind-row";
       }
       return "";
+    },
+    restoreSelection() {
+      if (!this.$refs.userform) {
+        console.log("琛ㄦ牸寮曠敤涓嶅瓨鍦�");
+        return;
+      }
+
+      console.log("鎵ц restoreSelection");
+
+      // 娓呴櫎褰撳墠椤电殑鎵�鏈夐�変腑鐘舵��
+      this.$refs.userform.clearSelection();
+
+      // 鎵惧嚭褰撳墠椤典腑鍝簺琛屾槸琚�変腑鐨�
+      const toBeSelected = this.userList.filter((row) =>
+        this.selectedRowMap.has(row.id)
+      );
+
+      console.log("闇�瑕佹仮澶嶇殑琛屾暟:", toBeSelected.length);
+
+      // 閲嶆柊閫変腑杩欎簺琛�
+      toBeSelected.forEach((row) => {
+        this.$refs.userform.toggleRowSelection(row, true);
+      });
+    },
+    // 鉁� 澶勭悊琛ㄥご鍏ㄩ�変簨浠�
+    handleSelectAll(selection) {
+      console.log("鍏ㄩ�変簨浠惰Е鍙戯紝閫変腑琛屾暟:", selection.length);
+
+      // 濡傛灉 selection 闀垮害绛変簬褰撳墠椤佃鏁帮紝璇存槑鏄叏閫�
+      if (selection.length === this.userList.length) {
+        // 鍏ㄩ�夊綋鍓嶉〉
+        this.userList.forEach((row) => {
+          this.selectedRowMap.set(row.id, {
+            ...row,
+            authenticity: row.authenticity || 0,
+            weekFinish: row.weekFinish || 0,
+            standard: row.standard || 0,
+            timeliness: row.timeliness || 0,
+            library: row.library || 0,
+            environment: row.environment || 0,
+            doctorSatisfaction: row.doctorSatisfaction || 0,
+            nurseSatisfaction: row.nurseSatisfaction || 0,
+          });
+        });
+      } else {
+        // 鍙栨秷鍏ㄩ�夛細娓呴櫎褰撳墠椤电殑閫変腑鐘舵��
+        this.userList.forEach((row) => {
+          this.selectedRowMap.delete(row.id);
+        });
+      }
+
+      // 鏇存柊 selectedRows
+      this.selectedRows = Array.from(this.selectedRowMap.values());
+      this.multiple = this.selectedRows.length === 0;
+    },
+
+    // 娓呴櫎鎵�鏈夐�変腑
+    clearAllSelection() {
+      this.selectedRowMap.clear();
+      this.selectedRows = [];
+      this.multiple = true;
+
+      if (this.$refs.userform) {
+        this.$refs.userform.clearSelection();
+      }
+    },
+
+    // 鑾峰彇閫変腑鏁伴噺
+    getSelectedCount() {
+      return this.selectedRowMap.size;
     },
     // 鍒涘缓鍐嶆闅忚鏈嶅姟
     setupsubtask() {
@@ -2115,6 +2365,98 @@
       const seconds = String(now.getSeconds()).padStart(2, "0");
 
       return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
+    },
+
+    // ---------- 鍙樻洿绉戝/鐥呭尯 ----------
+    handleTransferOpen(row) {
+      if (!this.deptOptionsks.length) {
+        deptTreeSelect(1).then((res) => {
+          this.deptOptionsks = res.data || [];
+        });
+        deptTreeSelect(2).then((res) => {
+          this.deptOptionsbq = res.data || [];
+        });
+      }
+      this.transferForm = {
+        subId: row.id || row.subtaskid,
+        leavelDeptCode: "",
+        leavelDeptName: "",
+        leavehospitaldistrictcode: "",
+        leavehospitaldistrictname: "",
+        currentDeptName: row.deptname || row.deptName || "",
+        currentWardName:
+          row.leavehospitaldistrictname || row.leavehospitaldistrictName || "",
+      };
+      this.transferDeptValue = [];
+      this.transferWardValue = [];
+      this.transferDialogVisible = true;
+    },
+    handleDeptCascaderChange(val) {
+      if (val && val.length) {
+        this.transferForm.leavelDeptCode = val[val.length - 1];
+        // 浠庨�夐」鏍戜腑鏌ユ壘瀵瑰簲鍚嶇О
+        const node = this.findCascaderNode(this.deptOptionsks, this.transferForm.leavelDeptCode);
+        this.transferForm.leavelDeptName = node ? node.label : '';
+      } else {
+        this.transferForm.leavelDeptCode = '';
+        this.transferForm.leavelDeptName = '';
+      }
+    },
+    handleWardCascaderChange(val) {
+      if (val && val.length) {
+        this.transferForm.leavehospitaldistrictcode = val[val.length - 1];
+        const node = this.findCascaderNode(this.deptOptionsbq, this.transferForm.leavehospitaldistrictcode);
+        this.transferForm.leavehospitaldistrictname = node ? node.label : '';
+      } else {
+        this.transferForm.leavehospitaldistrictcode = '';
+        this.transferForm.leavehospitaldistrictname = '';
+      }
+    },
+    findCascaderNode(options, code) {
+      for (const item of options) {
+        if (item.deptCode === code || item.value === code) return item;
+        if (item.children) {
+          const found = this.findCascaderNode(item.children, code);
+          if (found) return found;
+        }
+      }
+      return null;
+    },
+    handleTransferSubmit() {
+      const hasDept = !!this.transferForm.leavelDeptCode;
+      const hasWard = !!this.transferForm.leavehospitaldistrictcode;
+      if (!hasDept && !hasWard) {
+        this.$modal.msgError("璇疯嚦灏戦�夋嫨鐩爣绉戝鎴栫洰鏍囩梾鍖�");
+        return;
+      }
+      console.log(this.transferForm);
+
+      // 缁勮鍙樻洿鎻愮ず鏂囨湰
+      const deptName = this.transferForm.leavelDeptName || "涓嶅彉";
+      const wardName = this.transferForm.leavehospitaldistrictname || "涓嶅彉";
+      const tip = `纭灏嗙瀹ゅ彉鏇翠负"${deptName}"銆佺梾鍖哄彉鏇翠负"${wardName}"锛焋;
+      this.$modal
+        .confirm(tip, "鍙樻洿纭")
+        .then(() => {
+          this.transferLoading = true;
+          transferDept(this.transferForm)
+            .then((res) => {
+              if (res.code === 200) {
+                this.$modal.msgSuccess("绉戝/鐥呭尯鍙樻洿鎴愬姛");
+                this.transferDialogVisible = false;
+                this.getList();
+              } else {
+                this.$modal.msgError(res.msg || "鍙樻洿澶辫触");
+              }
+            })
+            .catch(() => {
+              this.$modal.msgError("鍙樻洿澶辫触锛岃閲嶈瘯");
+            })
+            .finally(() => {
+              this.transferLoading = false;
+            });
+        })
+        .catch(() => {});
     },
   },
 };
@@ -2295,10 +2637,30 @@
 .button-textxga {
   color: #de7897;
 }
+.button-textxgc {
+  color: #9054e4;
+}
 .purple-button.is-disabled {
   background-color: #d8b4fe;
   border-color: #d8b4fe;
   opacity: 1; /* 淇濇寔绂佺敤鐘舵�侀�忔槑搴� */
+}
+.statistics-tooltip {
+  background: #ffffff !important;
+  color: #1976d2 !important;
+  border: 1px solid #bbdefb !important;
+  border-radius: 8px !important;
+  padding: 10px 14px !important;
+  font-size: 13px !important;
+  line-height: 1.6 !important;
+  box-shadow: 0 4px 12px rgba(25, 118, 210, 0.15) !important;
+}
+.statistics-tooltip .popper__arrow {
+  border-bottom-color: #bbdefb !important;
+}
+
+.statistics-tooltip .popper__arrow::after {
+  border-bottom-color: #ffffff !important;
 }
 // 閫夐」瀛椾綋鏀惧ぇ
 // ::v-deep.el-checkbox-group {
@@ -2306,4 +2668,35 @@
 //     font-size: 24px;
 //   }
 // }
+.filter-warning {
+  margin-top: 8px;
+  padding: 10px 14px;
+  background: #fff7e6;
+  border: 1px solid #ffe58f;
+  border-radius: 6px;
+  color: #d46b08;
+  font-size: 18px;
+  line-height: 1.6;
+  display: flex;
+  align-items: flex-start;
+  gap: 6px;
+}
+
+.filter-warning .el-icon-warning-outline {
+  font-size: 16px;
+  color: #faad14;
+  flex-shrink: 0;
+  margin-top: 2px;
+}
+
+::v-deep .el-table__row.selected-row:hover > td {
+  background-color: #e6f7ff !important;
+}
+
+/* 閫変腑淇℃伅鏄剧ず */
+.selected-info {
+  padding: 10px 0;
+  font-size: 14px;
+  color: #666;
+}
 </style>

--
Gitblit v1.9.3