From d90b45d7e9e38e34c044b772006004f2a4cb8b8e Mon Sep 17 00:00:00 2001
From: WXL (wul) <wl_5969728@163.com>
Date: 星期五, 26 六月 2026 13:51:50 +0800
Subject: [PATCH] 测试完成

---
 src/views/followvisit/discharge/index.vue |  614 ++++++++++++++++++++++++++++++++-----------------------
 1 files changed, 356 insertions(+), 258 deletions(-)

diff --git a/src/views/followvisit/discharge/index.vue b/src/views/followvisit/discharge/index.vue
index e03f048..8725d92 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,20 +94,22 @@
             :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.sendstate" 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">
           <el-select v-model="topqueryParams.sort" placeholder="璇烽�夋嫨">
             <el-option
@@ -210,7 +137,7 @@
       </el-form>
       <el-divider></el-divider>
       <el-row :gutter="10" class="mb8">
-        <!-- <el-col :span="1.5">
+        <el-col :span="1.5">
           <div class="documentf">
             <div class="document">
               <el-button
@@ -223,8 +150,8 @@
               >
             </div>
           </div>
-        </el-col> -->
-        <el-col :span="1.5">
+        </el-col>
+        <!-- <el-col :span="1.5">
           <el-button
             type="primary"
             icon="el-icon-plus"
@@ -232,7 +159,7 @@
             @click="handleAdd"
             >鏂板</el-button
           >
-        </el-col>
+        </el-col> -->
 
         <el-col :span="1.5">
           <div class="documentf">
@@ -346,7 +273,12 @@
               size="medium"
               type="text"
               @click="
-                gettoken360(scope.row.sfzh, scope.row.drcode, scope.row.drname)
+                gettoken360(
+                  scope.row.sfzh,
+                  scope.row.drcode,
+                  scope.row.drname,
+                  scope.row.patid
+                )
               "
               ><span class="button-textsc">{{
                 scope.row.sendname
@@ -363,6 +295,117 @@
           :show-overflow-tooltip="true"
         >
         </el-table-column>
+
+        <el-table-column
+          label="闅忚鐘舵��"
+          align="center"
+          key="sendstateView"
+          prop="sendstateView"
+          width="120"
+        >
+          <template slot-scope="scope">
+            <el-tooltip
+              class="item"
+              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"
+                  >寰呴殢璁�</el-tag
+                >
+              </div>
+              <div v-if="scope.row.sendstateView == 2">
+                <el-tag type="success" :disable-transitions="false"
+                  >宸插畬鎴�</el-tag
+                >
+              </div>
+              <div v-if="scope.row.sendstateView == 3">
+                <el-tag type="warning" :disable-transitions="false"
+                  >鏃犻渶闅忚</el-tag
+                >
+              </div>
+            </el-tooltip>
+          </template>
+        </el-table-column>
+
+        <el-table-column
+          label="澶勭悊鎰忚"
+          align="center"
+          key="suggest"
+          prop="suggest"
+          width="120"
+        >
+          <template slot-scope="scope">
+            <dict-tag
+              :options="dict.type.sys_suggest"
+              :value="scope.row.suggest"
+            />
+          </template>
+        </el-table-column>
+
+        <el-table-column
+          label="浠诲姟鎵ц鏂瑰紡"
+          align="center"
+          key="preachform"
+          prop="preachform"
+          width="160"
+          :show-overflow-tooltip="true"
+        >
+          <template slot-scope="scope">
+            <span v-for="item in scope.row.preachform">{{ item }}銆� </span>
+          </template>
+        </el-table-column>
+        <el-table-column
+          label="闅忚瀹屾垚鏃堕棿"
+          sortable
+          align="center"
+          prop="finishtime"
+          width="160"
+        >
+          <template slot-scope="scope">
+            <span>{{ parseTime(scope.row.finishtime) }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column
+          label="鍑洪櫌鏃ユ湡"
+          width="146"
+          align="center"
+          key="endtime"
+          prop="endtime"
+        >
+          <template slot-scope="scope">
+            <span>{{ formatTime(scope.row.endtime) }}</span>
+          </template></el-table-column
+        >
+        <el-table-column
+          label="搴旈殢璁挎棩鏈�"
+          width="146"
+          align="center"
+          key="visitTime"
+          prop="visitTime"
+        >
+          <template slot-scope="scope">
+            <span>{{ formatTime(scope.row.visitTime) }}</span>
+          </template></el-table-column
+        >
+        <!-- 鍘� -->
+        <el-table-column
+          label="涓绘不鍖荤敓"
+          width="120"
+          align="center"
+          key="drname"
+          prop="drname"
+        />
+        <el-table-column
+          v-if="orgname != '涓芥按甯備腑鍖婚櫌'"
+          label="闅忚浜哄憳"
+          align="center"
+          key="updateBy"
+          prop="updateBy"
+          width="120"
+        />
         <el-table-column
           label="浠诲姟鐘舵��"
           align="center"
@@ -406,93 +449,11 @@
                 >
               </div>
               <div v-if="scope.row.sendstate == 7">
-                <el-tag type="danger" :disable-transitions="false"
-                  >瓒呮椂</el-tag
-                >
+                <el-tag type="danger" :disable-transitions="false">瓒呮椂</el-tag>
               </div>
             </el-tooltip>
           </template>
         </el-table-column>
-        <!-- <el-table-column
-          label="浠诲姟寮傚父璇存槑"
-          width="120"
-          align="center"
-          key="remark"
-          prop="remark" -->
-        />
-
-        <el-table-column
-          label="澶勭悊鎰忚"
-          align="center"
-          key="suggest"
-          prop="suggest"
-          width="120"
-        >
-          <template slot-scope="scope">
-            <dict-tag
-              :options="dict.type.sys_suggest"
-              :value="scope.row.suggest"
-            />
-          </template>
-        </el-table-column>
-
-        <el-table-column
-          label="闅忚瀹屾垚鏃堕棿"
-          sortable
-          align="center"
-          prop="finishtime"
-          width="160"
-        >
-          <template slot-scope="scope">
-            <span>{{ parseTime(scope.row.finishtime) }}</span>
-          </template>
-        </el-table-column>
-        <el-table-column
-          label="鍑洪櫌鏃ユ湡"
-          width="200"
-          align="center"
-          key="endtime"
-          prop="endtime"
-        >
-          <template slot-scope="scope">
-            <span>{{ formatTime(scope.row.endtime) }}</span>
-          </template></el-table-column
-        >
-        <el-table-column
-          label="搴旈殢璁挎棩鏈�"
-          width="200"
-          align="center"
-          key="visitTime"
-          prop="visitTime"
-        >
-          <template slot-scope="scope">
-            <span>{{ formatTime(scope.row.visitTime) }}</span>
-          </template></el-table-column
-        >
-        <!-- 鍘� -->
-        <el-table-column
-          label="涓绘不鍖荤敓"
-          width="120"
-          align="center"
-          key="drname"
-          prop="drname"
-        />
-        <el-table-column
-          v-if="orgname != '涓芥按甯備腑鍖婚櫌'"
-          label="闅忚浜哄憳"
-          align="center"
-          key="updateBy"
-          prop="updateBy"
-          width="120"
-        />
-        <el-table-column
-          v-if="orgname != '涓芥按甯備腑鍖婚櫌'"
-          label="缁忕鍖荤敓"
-          align="center"
-          key="managementDoctor"
-          prop="managementDoctor"
-          width="120"
-        />
         <el-table-column
           label="鍑洪櫌澶╂暟"
           width="120"
@@ -505,13 +466,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"
@@ -519,13 +473,27 @@
           prop="phone"
         />
         <el-table-column
+          label="韬唤璇佸彿鐮�"
+          width="200"
+          align="center"
+          key="sfzh"
+          prop="sfzh"
+        />
+
+        <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
           label="鐥呭巻鍙�"
           align="center"
@@ -562,18 +530,7 @@
           prop="templatename"
           width="200"
         />
-        <el-table-column
-          label="浠诲姟鎵ц鏂瑰紡"
-          align="center"
-          key="preachform"
-          prop="preachform"
-          width="160"
-          :show-overflow-tooltip="true"
-        >
-          <template slot-scope="scope">
-            <span v-for="item in scope.row.preachform">{{ item }}銆� </span>
-          </template>
-        </el-table-column>
+
         <!-- <el-table-column
           label="浠诲姟鍙戦�佹祦绋�"
           align="center"
@@ -588,6 +545,7 @@
             </span>
           </template>
         </el-table-column> -->
+
         <el-table-column
           label="浠诲姟缁撴灉璇存槑"
           width="220"
@@ -909,6 +867,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>
@@ -1082,16 +1045,19 @@
   addserviceSubtask,
   query360PatInfo,
   addsatisfaction,
+  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 {
       // 閬僵灞�
@@ -1131,7 +1097,7 @@
       dynamicTags: ["閫夐」涓�", "閫夐」浜�", "閫夐」涓�"], //閫夐」
       inputVisible: false,
       Labelchange: false,
-      ycvalue: "",
+      ycvalue: 0,
       jgvalue: "",
       yfsvalue: "",
       inputValue: "",
@@ -1144,7 +1110,41 @@
       // 婊℃剰搴﹁皟鏌ユ暟鎹�
       scoreDialogVisible: false,
       selectedRows: [],
-
+      // 绾ц仈閫夋嫨鍣ㄧ粦瀹氬��
+      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: [],
 
@@ -1167,34 +1167,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: [
@@ -1214,7 +1206,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,
@@ -1250,15 +1243,19 @@
           value: 8,
           label: "搴旈殢璁挎棩鏈�(鍊掑簭)",
         },
+        {
+          value: 9,
+          label: "鎸夌収鎮h�呮帓搴�",
+        },
       ],
       // 鏌ヨ鍙傛暟
       topqueryParams: {
         pageNum: 1,
         pageSize: 10,
-        sendstate:
-          localStorage.getItem("orgname") == "鐪佺珛鍚屽痉缈犺嫅闄㈠尯" ? null : 2,
-        sort: localStorage.getItem("orgname") == "涓芥按甯備腑鍖婚櫌" ? 8 : 2, //0 鍑洪櫌鏃堕棿(姝e簭)    1 鍑洪櫌鏃堕棿(鍊掑簭)   2 鍙戦�佹椂闂�(姝e簭)    3 鍙戦�佹椂闂�(鍊掑簭)  7搴旈殢璁挎棩鏈�(鍊掑簭) 搴旈殢璁挎棩鏈�(姝e簭)
+        sendstateView: 1,
+        sort: localStorage.getItem("orgname") == "涓芥按甯備腑鍖婚櫌" ? 8 : 1, //0 鍑洪櫌鏃堕棿(姝e簭)    1 鍑洪櫌鏃堕棿(鍊掑簭)   2 鍙戦�佹椂闂�(姝e簭)    3 鍙戦�佹椂闂�(鍊掑簭)  7搴旈殢璁挎棩鏈�(鍊掑簭) 搴旈殢璁挎棩鏈�(姝e簭)
         serviceType: 2,
+        sendstate: null,
         searchscope: 3,
         visitCount: 1,
         scopetype: [],
@@ -1276,33 +1273,26 @@
         },
         {
           value: 1,
-          label: "琛ㄥ崟宸查鍙�",
-        },
-        {
-          value: 2,
           label: "寰呴殢璁�",
         },
         {
+          value: 2,
+          label: "闅忚涓�",
+        },
+        {
           value: 3,
-          label: "琛ㄥ崟宸插彂閫�",
+          label: "鏈畬鎴�",
         },
         {
           value: 4,
-          label: "涓嶆墽琛�",
+          label: "宸插畬鎴�",
         },
         {
           value: 5,
-          label: "鍙戦�佸け璐�",
-        },
-        {
-          value: 6,
-          label: "宸插畬鎴�",
-        },
-         {
-          value: 7,
-          label: "瓒呮椂",
+          label: "鏃犻渶闅忚",
         },
       ],
+
       sextype: [
         {
           value: 1,
@@ -1374,10 +1364,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,
@@ -1477,21 +1466,24 @@
       } else {
         this.topqueryParams.deptOrDistrict = 1;
       }
+      if (!this.followupAuthority()) {
+        this.$message.warning("鏈厤缃瀹�/鐥呭尯鐩稿叧鏉冮檺涓嶅彲鏌ヨ");
+        return Promise.reject(new Error("鏃犳潈闄愭煡璇�"));
+      }
+
       getTaskservelist(this.topqueryParams).then((response) => {
         this.userList = response.rows[0].serviceSubtaskList;
         this.total = response.total;
         if (refresh) {
           this.cardlist[0].value =
-            Number(response.rows[0].wzx) +
-            Number(response.rows[0].ysf) +
-            Number(response.rows[0].fssb);
+            Number(response.rows[0].wxsf) + Number(response.rows[0].xsf) || 0;
           // this.cardlist[1].value = response.rows[0].wzx;
-          this.cardlist[1].value = response.rows[0].ysf;
-          this.ycvalue = response.rows[0].yc;
+          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;
@@ -1595,10 +1587,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;
@@ -1703,10 +1695,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 = [];
@@ -1719,14 +1721,46 @@
         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,
-        sendstate: 2,
+        sendstateView: 1,
         sort: 2, //0 鍑洪櫌鏃堕棿(姝e簭)    1 鍑洪櫌鏃堕棿(鍊掑簭)   2 鍙戦�佹椂闂�(姝e簭)    3 鍙戦�佹椂闂�(鍊掑簭)
         serviceType: 2,
         searchscope: 3,
@@ -1738,6 +1772,8 @@
       this.handleQuery(1);
     },
     handleSelectionChange(rows) {
+      console.log(rows, 911);
+
       this.selectedRows = rows.map((row) => {
         // 鍒濆鍖栬瘎鍒嗗瓧娈�
         return {
@@ -1827,8 +1863,25 @@
       });
     },
     //鎮h��360璺宠浆
-    gettoken360(sfzh, drcode, drname) {
-      // this.$modal.msgWarning("360鍔熻兘鏆傛湭寮�閫�");
+    gettoken360(sfzh, drcode, drname, id) {
+      const orgname = localStorage.getItem("orgname");
+      if (orgname == "鍗楀崕澶у闄勫睘绗竴鍖婚櫌") {
+        query360PatInfonh(id).then((res) => {
+          if (res.data) {
+            window.open(res.data, "_blank");
+          } else {
+            this.$modal.msgWarning("360鏌ヨ鏃犵粨鏋�");
+          }
+        });
+        return;
+      } else if (
+        orgname == "绗竴浜烘皯鍖婚櫌婀栨花闄㈠尯" ||
+        orgname == "绗竴浜烘皯鍖婚櫌鍚村北闄㈠尯"
+      ) {
+        let url = `http://192.200.81.189:9100/blj/view?BINGRENID=${id}&YONGHUID=DBA`;
+        window.open(url, "_blank");
+        return;
+      }
 
       this.postData.YeWuXX.BingRenXX.ZhengJianHM = sfzh;
 
@@ -2036,15 +2089,23 @@
     },
     /** 瀵煎嚭鎸夐挳鎿嶄綔 */
     handleExport() {
+      const originalPageNum = this.topqueryParams.pageNum;
+      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",
         {
           ...this.topqueryParams,
         },
         `user_${new Date().getTime()}.xlsx`
-      );
+      ).finally(() => {
+        // 瀵煎嚭鍚庢仮澶嶅垎椤靛弬鏁�
+        this.topqueryParams.pageNum = originalPageNum;
+        this.topqueryParams.pageSize = originalPageSize;
+        this.getList();
+      });
     },
     // 寮傚父鍒楁覆鏌�
     tableRowClassName({ row, rowIndex }) {
@@ -2281,10 +2342,47 @@
   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 {
 //   span {
 //     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;
+}
 </style>

--
Gitblit v1.9.3