From 21051d356bb8589ad088abb52492fd2a1909ed9e Mon Sep 17 00:00:00 2001
From: WXL (wul) <wl_5969728@163.com>
Date: 星期六, 14 三月 2026 10:39:09 +0800
Subject: [PATCH] 测试完成

---
 dist.zip                                              |    0 
 src/store/modules/user.js                             |   18 
 vue.config.js                                         |    2 
 src/utils/sipService.js                               |    4 
 src/views/followvisit/Continue/ContinueFordetails.vue | 2389 +++++++++++++++++++++++++
 src/views/login-sy.vue                                |   16 
 src/views/followvisit/Continue/index.vue              | 2094 ++++++++++++++++++++++
 src/views/login.vue                                   |  111 
 src/main.js                                           |    8 
 src/views/followvisit/record/detailpage/index.vue     |  786 ++++++-
 src/views/sfstatistics/percentage/index.vue           |   40 
 src/views/patient/patient/hospital.vue                |    3 
 src/views/patient/patient/behospitalized.vue          |    9 
 src/components/CallButton/index.vue                   |    2 
 src/api/AiCentre/EChartsdata.js                       |    1 
 src/views/followvisit/discharge/index.vue             |   58 
 16 files changed, 5,280 insertions(+), 261 deletions(-)

diff --git a/shiyi.zip b/dist.zip
similarity index 63%
rename from shiyi.zip
rename to dist.zip
index fa8a243..3c26eda 100644
--- a/shiyi.zip
+++ b/dist.zip
Binary files differ
diff --git a/src/api/AiCentre/EChartsdata.js b/src/api/AiCentre/EChartsdata.js
index d6ebdb0..18c600d 100644
--- a/src/api/AiCentre/EChartsdata.js
+++ b/src/api/AiCentre/EChartsdata.js
@@ -65,6 +65,7 @@
   return request({
     url: "/smartor/organization/list",
     method: "get",
+    params: data,
   });
 }
 // 鍙戦�佺煭淇�
diff --git a/src/components/CallButton/index.vue b/src/components/CallButton/index.vue
index 76a2b82..8e45ab5 100644
--- a/src/components/CallButton/index.vue
+++ b/src/components/CallButton/index.vue
@@ -200,7 +200,7 @@
           this.sipConfig.sipUri = `${this.randomNum}@192.168.10.124`;
         } else if (orgName == "榫欐硥甯備汉姘戝尰闄�") {
           this.sipConfig.sipUri = `${this.randomNum}@10.10.0.220`;
-        } else if (orgName == "鏉窞甯傜涓�浜烘皯鍖婚櫌婀栨花闄㈠尯"||orgName == "鏉窞甯傜涓�浜烘皯鍖婚櫌鍚村北闄㈠尯") {
+        } else if (orgName == "绗竴浜烘皯鍖婚櫌婀栨花闄㈠尯"||orgName == "绗竴浜烘皯鍖婚櫌鍚村北闄㈠尯") {
           this.sipConfig.sipUri = `${this.randomNum}@192.169.129.198`;
         }
       } catch (error) {
diff --git a/src/main.js b/src/main.js
index ebc84a8..06edb6c 100644
--- a/src/main.js
+++ b/src/main.js
@@ -92,6 +92,14 @@
   Vue.filter(key, filters[key]);
 }
 import moment from "moment"
+// 1. 鍦╩ain.js涓坊鍔犻敊璇洃鍚�
+window.addEventListener('unhandledrejection', (event) => {
+  if (event.reason && event.reason.message &&
+      event.reason.message.includes('Loading chunk')) {
+    // 閲嶆柊鍔犺浇椤甸潰
+    window.location.reload();
+  }
+});
 
 Vue.prototype.$moment = moment;
 
diff --git a/src/store/modules/user.js b/src/store/modules/user.js
index bf1e9b3..4d12013 100644
--- a/src/store/modules/user.js
+++ b/src/store/modules/user.js
@@ -209,13 +209,13 @@
               localStorage.setItem("YongHuID", "1512710152715767808");
               localStorage.setItem("YongHuXM", "LDRMYY");
             } else if (orgid == "1" && campusid == 1) {
-              localStorage.setItem("orgname", "鏉窞甯傜涓�浜烘皯鍖婚櫌婀栨花闄㈠尯");
+              localStorage.setItem("orgname", "绗竴浜烘皯鍖婚櫌婀栨花闄㈠尯");
               localStorage.setItem("ZuHuID", "");
               localStorage.setItem("deptCode", "");
               localStorage.setItem("YongHuID", "");
               localStorage.setItem("YongHuXM", "");
             } else if (orgid == "1" && campusid == 2) {
-              localStorage.setItem("orgname", "鏉窞甯傜涓�浜烘皯鍖婚櫌鍚村北闄㈠尯");
+              localStorage.setItem("orgname", "绗竴浜烘皯鍖婚櫌鍚村北闄㈠尯");
               localStorage.setItem("ZuHuID", "");
               localStorage.setItem("deptCode", "");
               localStorage.setItem("YongHuID", "");
@@ -223,6 +223,12 @@
             } else if (orgid == "47246116333112211A1001") {
               localStorage.setItem("orgname", "缂欎簯鍘夸汉姘戝尰闄�");
               localStorage.setItem("ZuHuID", "1429338802177000010");
+              localStorage.setItem("deptCode", "");
+              localStorage.setItem("YongHuID", "");
+              localStorage.setItem("YongHuXM", "");
+            } else if (orgid == "47226079133110211G1001") {
+              localStorage.setItem("orgname", "涓芥按甯傚骞间繚鍋ラ櫌");
+              localStorage.setItem("ZuHuID", "1429338802177000014");
               localStorage.setItem("deptCode", "");
               localStorage.setItem("YongHuID", "");
               localStorage.setItem("YongHuXM", "");
@@ -256,6 +262,14 @@
             commit("SET_nickNAME", user.nickName);
             commit("SET_Id", user.userId);
             commit("SET_hisUserId", user.hisUserId);
+
+            // if (user.userName == "admin") {
+            //   commit("SET_leaveldeptcodes", []);
+            //   commit("SET_leavehospitaldistrictcodes", []);
+            // } else {
+            //   commit("SET_leavehospitaldistrictcodes", user.belongWards);
+            //   commit("SET_leaveldeptcodes", user.belongDepts);
+            // }
             commit("SET_leavehospitaldistrictcodes", user.belongWards);
             commit("SET_leaveldeptcodes", user.belongDepts);
             commit("SET_AVATAR", avatar);
diff --git a/src/utils/sipService.js b/src/utils/sipService.js
index 4fc4f96..5641a20 100644
--- a/src/utils/sipService.js
+++ b/src/utils/sipService.js
@@ -11,11 +11,11 @@
     wsUrl: "wss://10.10.0.220:7443",
     domain: "10.10.0.220",
   },
-   鏉窞甯傜涓�浜烘皯鍖婚櫌婀栨花闄㈠尯: {
+   绗竴浜烘皯鍖婚櫌婀栨花闄㈠尯: {
     wsUrl: "wss://192.169.129.198:7443",
     domain: "192.169.129.198",
   },
-  鏉窞甯傜涓�浜烘皯鍖婚櫌鍚村北闄㈠尯: {
+  绗竴浜烘皯鍖婚櫌鍚村北闄㈠尯: {
     wsUrl: "wss://192.169.129.198:7443",
     domain: "192.169.129.198",
   },
diff --git a/src/views/followvisit/Continue/ContinueFordetails.vue b/src/views/followvisit/Continue/ContinueFordetails.vue
new file mode 100644
index 0000000..c07bcef
--- /dev/null
+++ b/src/views/followvisit/Continue/ContinueFordetails.vue
@@ -0,0 +1,2389 @@
+<template>
+  <!-- 寤剁画鎶ょ悊椤甸潰 -->
+  <div class="ContinuityCarePage" id="app-container">
+    <!-- 绗竴閮ㄥ垎锛氭偅鑰呭熀纭�淇℃伅 -->
+    <div class="patient-info-section">
+      <div class="headline">
+        <div>鎮h�呭熀纭�淇℃伅</div>
+      </div>
+      <div class="patient-info-form">
+        <el-form
+          ref="patientForm"
+          :model="patientForm"
+          :rules="patientRules"
+          label-width="120px"
+        >
+          <el-row :gutter="20">
+            <el-col :span="8">
+              <el-form-item label="鎮h�呭鍚�" prop="name">
+                <el-input
+                  v-model="patientForm.name"
+                  placeholder="璇疯緭鍏ユ偅鑰呭鍚�"
+                  maxlength="30"
+                  clearable
+                ></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="8">
+              <el-form-item label="鎬у埆" prop="sex">
+                <el-select
+                  v-model="patientForm.sex"
+                  placeholder="璇烽�夋嫨"
+                  clearable
+                >
+                  <el-option label="鐢�" :value="1"></el-option>
+                  <el-option label="濂�" :value="2"></el-option>
+                </el-select>
+              </el-form-item>
+            </el-col>
+            <el-col :span="8">
+              <el-form-item label="骞撮緞" prop="age">
+                <el-input
+                  v-model="patientForm.age"
+                  placeholder="璇疯緭鍏ュ勾榫�"
+                  maxlength="3"
+                  clearable
+                ></el-input>
+              </el-form-item>
+            </el-col>
+          </el-row>
+
+          <el-row :gutter="20">
+            <el-col :span="8">
+              <el-form-item label="鑱旂郴鐢佃瘽" prop="telcode">
+                <el-input
+                  v-model="patientForm.telcode"
+                  placeholder="璇疯緭鍏ヨ仈绯荤數璇�"
+                  maxlength="20"
+                  clearable
+                ></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="8">
+              <el-form-item label="浣忛櫌鍙�" prop="hospitalNumber">
+                <el-input
+                  v-model="patientForm.hospitalNumber"
+                  placeholder="璇疯緭鍏ヤ綇闄㈠彿"
+                  maxlength="50"
+                  clearable
+                ></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="8">
+              <el-form-item label="鍑洪櫌鏃ユ湡" prop="dischargeDate">
+                <el-date-picker
+                  v-model="patientForm.dischargeDate"
+                  type="date"
+                  placeholder="閫夋嫨鍑洪櫌鏃ユ湡"
+                  value-format="yyyy-MM-dd"
+                  style="width: 100%"
+                >
+                </el-date-picker>
+              </el-form-item>
+            </el-col>
+          </el-row>
+
+          <el-row :gutter="20">
+            <el-col :span="12">
+              <el-form-item label="璇婃柇鍚嶇О" prop="diagnosis">
+                <el-input
+                  v-model="patientForm.diagnosis"
+                  placeholder="璇疯緭鍏ヨ瘖鏂悕绉�"
+                  maxlength="100"
+                  clearable
+                ></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item label="璐d换鎶ゅ+" prop="nurseName">
+                <el-input
+                  v-model="patientForm.nurseName"
+                  placeholder="璇疯緭鍏ヨ矗浠绘姢澹�"
+                  maxlength="50"
+                  clearable
+                ></el-input>
+              </el-form-item>
+            </el-col>
+          </el-row>
+
+          <el-row :gutter="20">
+            <el-col :span="24">
+              <el-form-item label="灞呬綇鍦板潃" prop="address">
+                <el-input
+                  v-model="patientForm.address"
+                  placeholder="璇疯緭鍏ヨ缁嗗眳浣忓湴鍧�"
+                  maxlength="200"
+                  clearable
+                ></el-input>
+              </el-form-item>
+            </el-col>
+          </el-row>
+
+          <el-row :gutter="20">
+            <el-col :span="12">
+              <el-form-item label="浜插睘濮撳悕" prop="relativeName">
+                <el-input
+                  v-model="patientForm.relativeName"
+                  placeholder="璇疯緭鍏ヤ翰灞炲鍚�"
+                  maxlength="30"
+                  clearable
+                ></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item label="浜插睘鐢佃瘽" prop="relativeTel">
+                <el-input
+                  v-model="patientForm.relativeTel"
+                  placeholder="璇疯緭鍏ヤ翰灞炵數璇�"
+                  maxlength="20"
+                  clearable
+                ></el-input>
+              </el-form-item>
+            </el-col>
+          </el-row>
+
+          <!-- 寤剁画鎶ょ悊姹囨�讳俊鎭� -->
+          <el-row :gutter="20" v-if="continuitySummary.continueCount > 0">
+            <el-col :span="24">
+              <el-form-item label="寤剁画鎶ょ悊姹囨��">
+                <div class="continuity-summary">
+                  <div class="summary-item">
+                    <span class="label">寤剁画娆℃暟锛�</span>
+                    <span class="value"
+                      >{{ continuitySummary.continueCount }} 娆�</span
+                    >
+                  </div>
+                  <div class="summary-item">
+                    <span class="label">鏈�鏂版湇鍔★細</span>
+                    <span class="value">{{
+                      formatDisplayTime(continuitySummary.continueTimeNow)
+                    }}</span>
+                  </div>
+                  <div class="summary-item">
+                    <span class="label">涓嬫鏈嶅姟锛�</span>
+                    <span class="value">{{
+                      formatDisplayTime(continuitySummary.continueTimeNext)
+                    }}</span>
+                  </div>
+                </div>
+              </el-form-item>
+            </el-col>
+          </el-row>
+
+          <!-- 鎿嶄綔鎸夐挳 -->
+          <el-form-item>
+            <el-button
+              type="primary"
+              @click="savePatientInfo"
+              :loading="savingPatientInfo"
+            >
+              淇濆瓨鎮h�呬俊鎭�
+            </el-button>
+            <el-button @click="resetPatientInfo">閲嶇疆</el-button>
+          </el-form-item>
+        </el-form>
+      </div>
+    </div>
+    <!-- 绗簩閮ㄥ垎锛氭湇鍔″熀纭�淇℃伅 -->
+    <div class="basic-info-section">
+      <div class="headline">
+        <div>鏈嶅姟鍩虹淇℃伅</div>
+      </div>
+      <div class="basic-info-container">
+        <!-- 宸﹀崐閮ㄥ垎锛氬綋鍓嶆湇鍔¢殢璁垮唴瀹癸紙鍙锛� -->
+        <div class="followup-content readonly-content">
+          <div class="sub-headline">
+            <i class="el-icon-document"></i> 褰撳墠鏈嶅姟闅忚鍐呭锛堝彧璇伙級
+            <el-button
+              type="text"
+              size="small"
+              @click="toggleQuestionSelection"
+              style="margin-left: 10px"
+            >
+              {{ showQuestionSelector ? "闅愯棌闂閫夊彇" : "閫夊彇寤剁画闂" }}
+            </el-button>
+          </div>
+
+          <!-- 闂閫夊彇闈㈡澘 -->
+          <div v-if="showQuestionSelector" class="question-selector-panel">
+            <div class="selector-header">
+              <span>璇烽�夋嫨寤剁画闂锛堝彲澶氶�夛級锛�</span>
+              <el-button
+                type="primary"
+                size="small"
+                @click="confirmQuestionSelection"
+              >
+                纭閫夊彇
+              </el-button>
+            </div>
+            <div class="question-list">
+              <el-checkbox-group v-model="selectedQuestionIds">
+                <div
+                  v-for="(question, index) in availableQuestions"
+                  :key="question.id"
+                  class="question-item"
+                >
+                  <el-checkbox :label="question.id">
+                    <div class="question-content">
+                      <span class="question-index"
+                        >{{ question.index + 1 }}.</span
+                      >
+                      <span class="question-text">{{ question.text }}</span>
+                    </div>
+                  </el-checkbox>
+                </div>
+              </el-checkbox-group>
+            </div>
+          </div>
+          <div class="content-container">
+            <el-tabs v-model="activeName" type="border-card">
+              <el-tab-pane name="wj">
+                <span slot="label"
+                  ><i class="el-icon-notebook-1"></i> 闂嵎闅忚缁撴灉</span
+                >
+                <div class="CONTENT">
+                  <div class="title">{{ taskname ? taskname : "闂嵎" }}</div>
+                  <div class="preview-left" v-if="!Voicetype">
+                    <div
+                      class="topic-dev"
+                      v-for="(item, index) in tableDatatop"
+                      :key="item.id"
+                    >
+                      <!-- 鍗曢�� -->
+                      <div
+                        :class="getTopicClass(item)"
+                        :key="index"
+                        v-if="item.scriptType == 1 && !item.astrict"
+                      >
+                        <div class="dev-text">
+                          {{ index + 1 }}銆乕鍗曢�塢<span>{{
+                            item.scriptContent
+                          }}</span>
+                        </div>
+                        <div class="dev-xx">
+                          <el-radio-group v-model="item.scriptResult" disabled>
+                            <el-radio
+                              v-for="(
+                                items, indexs
+                              ) in item.svyTaskTemplateTargetoptions"
+                              :class="getOptionClass(items)"
+                              :key="indexs"
+                              :label="items.optioncontent"
+                              >{{ items.optioncontent }}</el-radio
+                            >
+                          </el-radio-group>
+                        </div>
+                        <div
+                          v-if="item.showAppendInput || item.answerps"
+                          class="append-input-container"
+                        >
+                          <el-input
+                            type="textarea"
+                            :rows="2"
+                            placeholder="璇疯緭鍏ュ叿浣撲俊鎭�"
+                            v-model="item.answerps"
+                            readonly
+                          ></el-input>
+                        </div>
+                        <div v-show="item.prompt">
+                          <el-alert :title="item.prompt" type="warning">
+                          </el-alert>
+                        </div>
+                      </div>
+                      <!-- 澶氶�� -->
+                      <div
+                        :class="
+                          item.isabnormal
+                            ? 'scriptTopic-isabnormal'
+                            : 'scriptTopic-dev'
+                        "
+                        :key="index"
+                        v-if="item.scriptType == 2 && !item.astrict"
+                      >
+                        <div class="dev-text">
+                          {{ index + 1 }}銆乕澶氶�塢<span>{{
+                            item.scriptContent
+                          }}</span>
+                        </div>
+                        <div class="dev-xx">
+                          <el-checkbox-group
+                            v-model="item.scriptResult"
+                            disabled
+                          >
+                            <el-checkbox
+                              :class="items.isabnormal ? 'red-star' : ''"
+                              v-for="(
+                                items, indexs
+                              ) in item.svyTaskTemplateTargetoptions"
+                              :key="indexs"
+                              :label="items.optioncontent"
+                            >
+                              {{ items.optioncontent }}
+                            </el-checkbox>
+                          </el-checkbox-group>
+                        </div>
+                        <div v-show="item.prompt && item.scriptResult[0]">
+                          <el-alert :title="item.prompt" type="warning">
+                          </el-alert>
+                        </div>
+                      </div>
+                      <!-- 濉┖ -->
+                      <div
+                        class="scriptTopic-dev"
+                        :key="index"
+                        v-if="item.scriptType == 4 && !item.astrict"
+                      >
+                        <div class="dev-text">
+                          {{ index + 1 }}銆乕闂瓟]<span>{{
+                            item.scriptContent
+                          }}</span>
+                          <span v-if="item.valueType == 3">(鍙兘杈撳叆鏁板瓧)</span>
+                        </div>
+                        <div class="dev-xx" v-if="item.valueType == 3">
+                          <el-input
+                            type="text"
+                            placeholder="璇疯緭鍏ョ瓟妗�"
+                            v-model="item.scriptResult"
+                            readonly
+                          >
+                          </el-input>
+                        </div>
+                        <div class="dev-xx" v-else>
+                          <el-input
+                            type="textarea"
+                            :rows="2"
+                            placeholder="璇疯緭鍏ョ瓟妗�"
+                            v-model="item.scriptResult"
+                            readonly
+                          >
+                          </el-input>
+                        </div>
+                      </div>
+                    </div>
+                  </div>
+                  <div class="preview-left" v-else>
+                    <div
+                      class="topic-dev"
+                      v-for="(item, index) in tableDatatop"
+                      :key="item.id"
+                    >
+                      <div v-if="item.targetvalue">
+                        <div class="dev-text">
+                          {{ index + 1 }}銆乕鍗曢�塢<span>{{
+                            item.questiontext
+                          }}</span>
+                        </div>
+                        <div class="dev-xx">
+                          <el-radio-group v-model="item.matchedtext" disabled>
+                            <el-radio
+                              v-for="(items, index) in item.scriptResult"
+                              :key="index"
+                              :label="items"
+                              :class="items.isabnormal ? 'red-star' : ''"
+                              >{{ items }}</el-radio
+                            >
+                          </el-radio-group>
+                        </div>
+                        <div v-show="item.prompt">
+                          <el-alert :title="item.prompt" type="warning">
+                          </el-alert>
+                        </div>
+                      </div>
+                      <div class="scriptTopic-dev" :key="index" v-else>
+                        <div class="dev-text">
+                          {{ index + 1 }}銆乕闂瓟]<span>{{
+                            item.scriptContent
+                          }}</span>
+                          <span v-if="item.valueType == 3">(鍙兘杈撳叆鏁板瓧)</span>
+                        </div>
+                        <div class="dev-xx" v-if="item.valueType == 3">
+                          <el-input
+                            type="text"
+                            placeholder="璇疯緭鍏ョ瓟妗�"
+                            v-model="item.scriptResult"
+                            readonly
+                          >
+                          </el-input>
+                        </div>
+                        <div class="dev-xx" v-else>
+                          <el-input
+                            type="textarea"
+                            :rows="2"
+                            placeholder="璇疯緭鍏ョ瓟妗�"
+                            v-model="item.scriptResult"
+                            readonly
+                          >
+                          </el-input>
+                        </div>
+                      </div>
+                    </div>
+                  </div>
+                </div>
+              </el-tab-pane>
+              <el-tab-pane name="yy">
+                <span slot="label"
+                  ><i class="el-icon-headset"></i> 璇煶闅忚璇︽儏</span
+                >
+                <div class="borderdiv">
+                  <div class="title">{{ taskname ? taskname : "闂嵎" }}</div>
+                  <div class="voice-audio">
+                    瀹屾暣璇煶锛�
+                    <mini-audio
+                      :audio-source="
+                        voice ? voice : '@assets/order/example.mp3'
+                      "
+                    ></mini-audio>
+                  </div>
+                  <div class="preview-left">
+                    <div v-for="item in voiceDatatop">
+                      <div class="leftside">
+                        <i class="el-icon-phone-outline"></i
+                        ><span>{{ item.questiontext }}</span>
+                      </div>
+                      <div class="offside">
+                        <i class="el-icon-user"></i>
+                        <div class="offside-value">
+                          <el-input
+                            type="textarea"
+                            :autosize="{ minRows: 1 }"
+                            v-model="item.asrtext"
+                            readonly
+                          ></el-input>
+                          <div>
+                            <mini-audio
+                              :audio-source="
+                                item.questionvoice
+                                  ? item.questionvoice
+                                  : '@assets/order/example.mp3'
+                              "
+                            ></mini-audio>
+                          </div>
+                        </div>
+                      </div>
+                    </div>
+                  </div>
+                </div>
+              </el-tab-pane>
+            </el-tabs>
+          </div>
+        </div>
+
+        <!-- 鍙冲崐閮ㄥ垎锛氬巻娆″欢缁姢鐞嗘湇鍔� -->
+        <!-- 鍙冲崐閮ㄥ垎锛氬巻娆″欢缁姢鐞嗘湇鍔� -->
+        <div class="continuity-history">
+          <div class="sub-headline">
+            <i class="el-icon-time"></i> 鍘嗘寤剁画鎶ょ悊鏈嶅姟
+            <el-button
+              type="primary"
+              size="small"
+              icon="el-icon-plus"
+              @click="addContinuityTab"
+              style="margin-left: 10px"
+              >鏂板寤剁画鎶ょ悊</el-button
+            >
+          </div>
+          <div class="history-content">
+            <el-tabs
+              v-model="activeContinuityTab"
+              type="card"
+              closable
+              @tab-remove="removeContinuityTab"
+              @tab-click="handleTabClick"
+            >
+              <el-tab-pane
+                v-for="(item, index) in continuityTabs"
+                :key="item.name"
+                :label="item.title"
+                :name="item.name"
+              >
+                <div class="continuity-form">
+                  <el-form
+                    :ref="'continuityForm' + index"
+                    :model="item.form"
+                    :rules="continuityRules"
+                    label-width="120px"
+                  >
+                    <!-- 寤剁画闂琛ㄥ崟 -->
+                    <el-form-item label="寤剁画闂" prop="continuityProblems">
+                      <div class="continuity-problems-form">
+                        <div class="problems-header">
+                          <span>宸查�夊彇鐨勫欢缁棶棰橈細</span>
+                          <el-button
+                            type="text"
+                            size="small"
+                            icon="el-icon-plus"
+                            @click="addContinuityProblem(index)"
+                          >
+                            鏂板闂
+                          </el-button>
+                        </div>
+
+                        <!-- 宸查�夊彇鐨勯棶棰樺垪琛� -->
+                        <div
+                          v-if="
+                            item.form.continuityProblems &&
+                            item.form.continuityProblems.length > 0
+                          "
+                          class="problems-list-container"
+                        >
+                          <div
+                            v-for="(problem, problemIndex) in item.form
+                              .continuityProblems"
+                            :key="problemIndex"
+                            class="problem-item"
+                          >
+                            <div class="problem-content">
+                              <div class="problem-meta">
+                                <span class="problem-index"
+                                  >闂 {{ problemIndex + 1 }}</span
+                                >
+                                <el-select
+                                  v-model="problem.questionId"
+                                  placeholder="閫夋嫨闂"
+                                  size="small"
+                                  style="width: 300px; margin: 0 10px"
+                                  @change="
+                                    handleProblemChange(
+                                      index,
+                                      problemIndex,
+                                      $event
+                                    )
+                                  "
+                                >
+                                  <el-option
+                                    v-for="q in availableQuestions"
+                                    :key="q.id"
+                                    :label="q.text"
+                                    :value="q.id"
+                                  >
+                                    <span
+                                      >{{ q.index + 1 }}.
+                                      {{ truncateText(q.text, 40) }}</span
+                                    >
+                                  </el-option>
+                                </el-select>
+                                <!-- 淇锛氫紶閫掓纭殑绱㈠紩 -->
+                                <el-button
+                                  type="danger"
+                                  icon="el-icon-delete"
+                                  size="mini"
+                                  circle
+                                  @click="
+                                    removeContinuityProblem(index, problemIndex)
+                                  "
+                                >
+                                </el-button>
+                              </div>
+
+                              <!-- 闂嵎寮忛棶棰樺睍绀哄尯鍩� -->
+                              <div
+                                v-if="problem.questionId"
+                                class="question-display-area"
+                              >
+                                <!-- 鏍规嵁闂绫诲瀷鍔ㄦ�佹覆鏌� -->
+                                <div
+                                  v-if="
+                                    getQuestionOriginalData(problem.questionId)
+                                  "
+                                  class="question-render"
+                                >
+                                  <!-- 鍗曢�夌被鍨� -->
+                                  <div
+                                    v-if="
+                                      getQuestionOriginalData(
+                                        problem.questionId
+                                      ).scriptType == 1
+                                    "
+                                    class="question-item-render"
+                                  >
+                                    <div class="question-text">
+                                      <strong>[鍗曢�塢</strong>
+                                      <span>{{
+                                        getQuestionOriginalData(
+                                          problem.questionId
+                                        ).scriptContent
+                                      }}</span>
+                                    </div>
+                                    <div class="question-options">
+                                      <el-radio-group
+                                        v-model="problem.selectedOption"
+                                      >
+                                        <el-radio
+                                          v-for="option in getQuestionOriginalData(
+                                            problem.questionId
+                                          ).svyTaskTemplateTargetoptions"
+                                          :key="option.optioncontent"
+                                          :label="option.optioncontent"
+                                          :class="getOptionClass(option)"
+                                        >
+                                          {{ option.optioncontent }}
+                                        </el-radio>
+                                      </el-radio-group>
+                                    </div>
+                                    <!-- 闄勫姞杈撳叆妗� -->
+                                    <div
+                                      v-if="problem.showAppendInput"
+                                      class="append-input"
+                                      style="margin-top: 10px"
+                                    >
+                                      <el-input
+                                        type="textarea"
+                                        :rows="2"
+                                        placeholder="璇疯緭鍏ュ叿浣撲俊鎭�"
+                                        v-model="problem.appendInput"
+                                      ></el-input>
+                                    </div>
+                                  </div>
+
+                                  <!-- 澶氶�夌被鍨� -->
+                                  <div
+                                    v-else-if="
+                                      getQuestionOriginalData(
+                                        problem.questionId
+                                      ).scriptType == 2
+                                    "
+                                    class="question-item-render"
+                                  >
+                                    <div class="question-text">
+                                      <strong>[澶氶�塢</strong>
+                                      <span>{{
+                                        getQuestionOriginalData(
+                                          problem.questionId
+                                        ).scriptContent
+                                      }}</span>
+                                    </div>
+                                    <div class="question-options">
+                                      <el-checkbox-group
+                                        v-model="problem.selectedOptions"
+                                      >
+                                        <el-checkbox
+                                          v-for="option in getQuestionOriginalData(
+                                            problem.questionId
+                                          ).svyTaskTemplateTargetoptions"
+                                          :key="option.optioncontent"
+                                          :label="option.optioncontent"
+                                          :class="
+                                            option.isabnormal ? 'red-star' : ''
+                                          "
+                                        >
+                                          {{ option.optioncontent }}
+                                        </el-checkbox>
+                                      </el-checkbox-group>
+                                    </div>
+                                  </div>
+
+                                  <!-- 濉┖/闂瓟绫诲瀷 -->
+                                  <div
+                                    v-else-if="
+                                      getQuestionOriginalData(
+                                        problem.questionId
+                                      ).scriptType == 4
+                                    "
+                                    class="question-item-render"
+                                  >
+                                    <div class="question-text">
+                                      <strong>[闂瓟]</strong>
+                                      <span>{{
+                                        getQuestionOriginalData(
+                                          problem.questionId
+                                        ).scriptContent
+                                      }}</span>
+                                      <span
+                                        v-if="
+                                          getQuestionOriginalData(
+                                            problem.questionId
+                                          ).valueType == 3
+                                        "
+                                        >(鍙兘杈撳叆鏁板瓧)</span
+                                      >
+                                    </div>
+                                    <div class="question-options">
+                                      <el-input
+                                        v-if="
+                                          getQuestionOriginalData(
+                                            problem.questionId
+                                          ).valueType == 3
+                                        "
+                                        type="text"
+                                        placeholder="璇疯緭鍏ョ瓟妗�"
+                                        v-model="problem.answer"
+                                        style="width: 200px"
+                                      ></el-input>
+                                      <el-input
+                                        v-else
+                                        type="textarea"
+                                        :rows="2"
+                                        placeholder="璇疯緭鍏ョ瓟妗�"
+                                        v-model="problem.answer"
+                                        style="width: 100%"
+                                      ></el-input>
+                                    </div>
+                                  </div>
+                                </div>
+                                <div v-else class="no-question-data">
+                                  闂鏁版嵁鍔犺浇涓�...
+                                </div>
+                              </div>
+
+                              <!-- 鍘熸湁鐨勯棶棰樻弿杩扮瓑瀛楁 -->
+                              <div class="problem-detail">
+                                <div class="detail-row">
+                                  <span class="detail-label">褰撳墠鐘舵�侊細</span>
+                                  <el-select
+                                    v-model="problem.status"
+                                    placeholder="閫夋嫨鐘舵��"
+                                    size="small"
+                                    style="width: 120px; margin-right: 20px"
+                                  >
+                                    <el-option
+                                      label="鏈鐞�"
+                                      value="pending"
+                                    ></el-option>
+                                    <el-option
+                                      label="澶勭悊涓�"
+                                      value="processing"
+                                    ></el-option>
+                                    <el-option
+                                      label="宸茶В鍐�"
+                                      value="resolved"
+                                    ></el-option>
+                                    <el-option
+                                      label="鎸佺画鍏虫敞"
+                                      value="watching"
+                                    ></el-option>
+                                  </el-select>
+
+                                  <span
+                                    class="detail-label"
+                                    v-if="problem.status === 'resolved'"
+                                    style="margin-left: 20px"
+                                  >
+                                    瑙e喅鏃ユ湡锛�
+                                  </span>
+                                  <el-date-picker
+                                    v-if="problem.status === 'resolved'"
+                                    v-model="problem.resolvedDate"
+                                    type="date"
+                                    placeholder="閫夋嫨瑙e喅鏃ユ湡"
+                                    value-format="yyyy-MM-dd"
+                                    size="small"
+                                    style="width: 150px; margin-left: 10px"
+                                  ></el-date-picker>
+                                </div>
+
+                                <!-- <div class="detail-row">
+                                  <span class="detail-label">闂鎻忚堪锛�</span>
+                                  <el-input
+                                    type="textarea"
+                                    :rows="2"
+                                    v-model="problem.description"
+                                    placeholder="璇疯缁嗘弿杩拌寤剁画闂锛堝彲璁板綍璇勪及缁撴灉銆佸鐞嗗缓璁瓑锛�"
+                                    size="small"
+                                    style="flex: 1"
+                                  ></el-input>
+                                </div> -->
+                              </div>
+                            </div>
+                          </div>
+                        </div>
+                      </div>
+                    </el-form-item>
+
+                    <!-- 寤剁画鎬ф姢鐞嗚褰� -->
+                    <el-form-item label="鎶ょ悊璁板綍" prop="careRecord">
+                      <el-input
+                        type="textarea"
+                        :rows="4"
+                        v-model="item.form.careRecord"
+                        placeholder="璇疯緭鍏ュ欢缁�ф姢鐞嗚褰�"
+                        clearable
+                      ></el-input>
+                    </el-form-item>
+
+                    <!-- 璐d换鎶ゅ+銆佸洖璁垮舰寮忋�佹湇鍔℃椂闂� -->
+                    <el-row :gutter="20">
+                      <el-col :span="12">
+                        <el-form-item label="璐d换鎶ゅ+" prop="dutyNurse">
+                          <el-input
+                            v-model="item.form.dutyNurse"
+                            placeholder="璇疯緭鍏ヨ矗浠绘姢澹�"
+                            clearable
+                          ></el-input>
+                        </el-form-item>
+                      </el-col>
+                      <el-col :span="12">
+                        <el-form-item label="鍥炶褰㈠紡" prop="visitType">
+                          <el-select
+                            v-model="item.form.visitType"
+                            placeholder="璇烽�夋嫨鍥炶褰㈠紡"
+                            style="width: 100%"
+                            clearable
+                          >
+                            <el-option
+                              label="鐢佃瘽鍥炶"
+                              value="phone"
+                            ></el-option>
+                            <el-option
+                              label="涓婇棬鍥炶"
+                              value="home"
+                            ></el-option>
+                            <el-option
+                              label="闂ㄨ瘖鍥炶"
+                              value="clinic"
+                            ></el-option>
+                            <el-option
+                              label="寰俊鍥炶"
+                              value="wechat"
+                            ></el-option>
+                            <el-option label="鍏朵粬" value="other"></el-option>
+                          </el-select>
+                        </el-form-item>
+                      </el-col>
+                    </el-row>
+                    <el-row :gutter="20">
+                      <el-col :span="12">
+                        <el-form-item
+                          label="涓嬫鏈嶅姟鏃堕棿"
+                          prop="nextServiceTime"
+                        >
+                          <el-date-picker
+                            v-model="item.form.nextServiceTime"
+                            type="datetime"
+                            placeholder="閫夋嫨涓嬫寤剁画鏈嶅姟鏃堕棿"
+                            value-format="yyyy-MM-dd HH:mm:ss"
+                            style="width: 100%"
+                          >
+                          </el-date-picker>
+                          <div
+                            class="time-tip"
+                            v-if="item.form.nextServiceTime"
+                          >
+                            璺濅笅娆℃湇鍔¤繕鏈�
+                            {{ calculateDaysLeft(item.form.nextServiceTime) }}
+                            澶�
+                          </div>
+                        </el-form-item>
+                      </el-col>
+                      <el-col :span="12">
+                        <el-form-item label="鏈嶅姟鏃堕棿" prop="serviceTime">
+                          <el-date-picker
+                            v-model="item.form.serviceTime"
+                            type="datetime"
+                            placeholder="閫夋嫨鏈嶅姟鏃堕棿"
+                            value-format="yyyy-MM-dd HH:mm:ss"
+                            style="width: 100%"
+                          >
+                          </el-date-picker>
+                        </el-form-item>
+                      </el-col>
+                    </el-row>
+
+                    <!-- 涓嬫寤剁画鏈嶅姟鏃堕棿 -->
+
+                    <!-- 鎿嶄綔鎸夐挳 -->
+                    <el-form-item>
+                      <el-button
+                        type="primary"
+                        @click="saveContinuityTab(index)"
+                        :loading="item.saving"
+                      >
+                        淇濆瓨
+                      </el-button>
+                      <el-button @click="resetContinuityTab(index)">
+                        閲嶇疆
+                      </el-button>
+                    </el-form-item>
+                  </el-form>
+                </div>
+              </el-tab-pane>
+            </el-tabs>
+          </div>
+        </div>
+      </div>
+    </div>
+  </div>
+</template>
+<script>
+import {
+  getsearchrResults,
+  getPersonVoices,
+  getTaskservelist,
+  Editsingletaskson,
+} from "@/api/AiCentre/index";
+import {
+  messagelistpatient,
+  alterpatient,
+  listcontactinformation,
+} from "@/api/patient/homepage";
+
+export default {
+  dicts: ["sys_yujing"],
+  data() {
+    return {
+      // 璺敱鍙傛暟
+      taskid: "",
+      id: "",
+      sendname: "",
+      patid: "",
+      Voicetype: 0,
+      serviceType: "",
+
+      // 闅忚鍐呭鐩稿叧
+      activeName: "wj",
+      taskname: "",
+      voice: "",
+      tableDatatop: [],
+      voiceDatatop: [],
+      form: {},
+      userform: {},
+      // 鏂板锛氶棶棰橀�夋嫨鐩稿叧
+      showQuestionSelector: false,
+      selectedQuestionIds: [],
+      // 鎮h�呭熀纭�淇℃伅琛ㄥ崟
+      patientForm: {
+        name: "",
+        sex: "",
+        age: "",
+        telcode: "",
+        hospitalNumber: "",
+        dischargeDate: "",
+        diagnosis: "",
+        nurseName: "",
+        address: "",
+        relativeName: "",
+        relativeTel: "",
+      },
+      patientRules: {
+        name: [{ required: true, message: "璇疯緭鍏ユ偅鑰呭鍚�", trigger: "blur" }],
+        age: [
+          { required: true, message: "璇疯緭鍏ュ勾榫�", trigger: "blur" },
+          { pattern: /^\d+$/, message: "骞撮緞蹇呴』涓烘暟瀛�", trigger: "blur" },
+        ],
+        telcode: [
+          { required: true, message: "璇疯緭鍏ヨ仈绯荤數璇�", trigger: "blur" },
+          {
+            pattern: /^1[3-9]\d{9}$/,
+            message: "璇疯緭鍏ユ纭殑鎵嬫満鍙风爜",
+            trigger: "blur",
+          },
+        ],
+      },
+      savingPatientInfo: false,
+
+      // 寤剁画鎶ょ悊鐩稿叧
+      activeContinuityTab: "continuity-0",
+      continuityTabs: [],
+      continuityTabIndex: 0,
+      continuityRules: {
+        // 绉婚櫎continuityProblems鐨勯獙璇佽鍒�
+        careRecord: [
+          { required: true, message: "璇疯緭鍏ユ姢鐞嗚褰�", trigger: "blur" },
+        ],
+        dutyNurse: [
+          { required: true, message: "璇疯緭鍏ヨ矗浠绘姢澹�", trigger: "blur" },
+        ],
+        visitType: [
+          { required: true, message: "璇烽�夋嫨鍥炶褰㈠紡", trigger: "change" },
+        ],
+        serviceTime: [
+          { required: true, message: "璇烽�夋嫨鏈嶅姟鏃堕棿", trigger: "change" },
+        ],
+        nextServiceTime: [
+          { required: true, message: "璇烽�夋嫨涓嬫鏈嶅姟鏃堕棿", trigger: "change" },
+        ],
+      },
+
+      // 鍙�夌殑寤剁画闂锛堜粠宸︿晶闂嵎涓彁鍙栵級
+      availableQuestions: [],
+
+      // 寤剁画鎶ょ悊姹囨�讳俊鎭�
+      continuitySummary: {
+        continueCount: 0,
+        continueTimeNow: "",
+        continueTimeNext: "",
+        continueContent: "",
+      },
+
+      // 鍏朵粬
+      logsheetlist: [],
+    };
+  },
+  created() {
+    this.taskid = this.$route.query.taskid;
+    this.id = this.$route.query.id;
+    this.sendname = this.$route.query.sendname;
+    this.patid = this.$route.query.patid;
+    this.Voicetype = this.$route.query.Voicetype || 0;
+    this.serviceType = this.$route.query.serviceType;
+
+    this.getTaskservelist(this.id);
+  },
+  methods: {
+    // 鑾峰彇涓婚鏍峰紡绫�
+    getTopicClass(item) {
+      console.log(item.isabnormal, "getTopicClass");
+
+      if (item.isabnormal == 1) {
+        return "scriptTopic-isabnormal";
+      } else if (item.isabnormal == 2) {
+        return "scriptTopic-warning";
+      } else {
+        return "scriptTopic-dev";
+      }
+    },
+
+    // 鑾峰彇閫夐」鏍峰紡绫�
+    getOptionClass(items) {
+      if (items.isabnormal == 1) {
+        return "red-star";
+      } else if (items.isabnormal == 2) {
+        return "yellow-star";
+      }
+      return "";
+    },
+
+    // 鑾峰彇闂嵎鏁版嵁
+    getsearchrResults(id) {
+      getsearchrResults({
+        taskid: this.taskid,
+        patid: this.patid,
+        subId: id ? id : this.id,
+        isFinish: false,
+      }).then((res) => {
+        if (res.code === 200) {
+          this.tableDatatop = res.data.scriptResult;
+
+          this.tableDatatop.forEach((item) => {
+            if (item.scriptType == 2) item.scriptResult = [];
+            if (item.scriptResultId && item.scriptType != 2) {
+              item.isoption = 3;
+              item.scriptResult = item.scriptResult;
+            } else if (item.scriptResultId && item.scriptType == 2) {
+              item.scriptResult = item.scriptResult.split("&");
+              item.isoption = 3;
+            }
+          });
+          this.taskname = res.data.taskName;
+          this.overdata();
+          // 鎻愬彇鍙�夌殑寤剁画闂
+          this.extractAvailableQuestions();
+        }
+      });
+    },
+    overdata() {
+      this.tableDatatop.forEach((item, index) => {
+        var obj = item.svyTaskTemplateTargetoptions.find(
+          (items) => items.optioncontent == item.scriptResult
+        );
+        if (obj) {
+          console.log(obj, "obj");
+          if (obj.isabnormal) {
+            this.tableDatatop[index].isabnormal = obj.isabnormal;
+          }
+          this.$forceUpdate();
+        }
+      });
+    },
+    // 鎻愬彇鍙�夌殑寤剁画闂
+    extractAvailableQuestions() {
+      this.availableQuestions = this.tableDatatop
+        .filter(
+          (item) => item.scriptContent && item.scriptContent.trim() !== ""
+        )
+        .map((item, index) => ({
+          id: `question-${index}`,
+          index: index,
+          text: item.scriptContent,
+          originalIndex: index,
+        }));
+    }, // 鍒囨崲闂閫夋嫨闈㈡澘鏄剧ず
+    toggleQuestionSelection() {
+      this.showQuestionSelector = !this.showQuestionSelector;
+      if (this.showQuestionSelector) {
+        // 閲嶇疆閫夋嫨
+        this.selectedQuestionIds = [];
+      }
+    },
+    // 娣诲姞寤剁画闂
+    addContinuityProblem(tabIndex) {
+      this.continuityTabs[tabIndex].form.continuityProblems.push({
+        questionId: "",
+        status: "pending",
+        description: "",
+        resolvedDate: "",
+        createTime: new Date().toISOString(),
+        // 鏂板瀛楁锛岀敤浜庨棶鍗峰紡浜や簰
+        selectedOption: "", // 鍗曢�夌瓟妗�
+        selectedOptions: [], // 澶氶�夌瓟妗�
+        answer: "", // 濉┖绛旀
+        showAppendInput: false, // 鏄惁鏄剧ず闄勫姞杈撳叆妗�
+        appendInput: "", // 闄勫姞杈撳叆鍐呭
+      });
+    },
+    // 鏍规嵁闂ID鑾峰彇鍘熷闂鏁版嵁
+    getQuestionOriginalData(questionId) {
+      if (!questionId) return null;
+      const originalIndex = this.availableQuestions.find(
+        (q) => q.id === questionId
+      )?.originalIndex;
+      if (originalIndex !== undefined && this.tableDatatop[originalIndex]) {
+        return this.tableDatatop[originalIndex];
+      }
+      return null;
+    },
+    // 绉婚櫎寤剁画闂
+    removeContinuityProblem(tabIndex, problemIndex) {
+      this.continuityTabs[tabIndex].form.continuityProblems.splice(
+        problemIndex,
+        1
+      );
+    },
+
+    // 澶勭悊闂閫夋嫨鍙樻洿
+    handleProblemChange(tabIndex, problemIndex, questionId) {
+      const problem =
+        this.continuityTabs[tabIndex].form.continuityProblems[problemIndex];
+
+      if (!questionId) {
+        problem.description = "";
+        // 娓呯┖绛旀瀛楁
+        problem.selectedOption = "";
+        problem.selectedOptions = [];
+        problem.answer = "";
+        problem.showAppendInput = false;
+        problem.appendInput = "";
+        return;
+      }
+
+      // 鑷姩濉厖闂鎻忚堪
+      const question = this.availableQuestions.find((q) => q.id === questionId);
+      if (question) {
+        problem.description = `闂锛�${question.text}`;
+      }
+
+      // 鏍规嵁闂绫诲瀷鍒濆鍖栫瓟妗堝瓧娈�
+      const originalData = this.getQuestionOriginalData(questionId);
+      if (originalData) {
+        // 鍒濆鍖栧崟閫夌瓟妗�
+        if (originalData.scriptType === 1) {
+          problem.selectedOption = originalData.scriptResult || "";
+          // 妫�鏌ユ槸鍚﹂渶瑕佹樉绀洪檮鍔犺緭鍏ユ
+          problem.showAppendInput = originalData.showAppendInput || false;
+          problem.appendInput = originalData.answerps || "";
+        }
+        // 鍒濆鍖栧閫夌瓟妗�
+        else if (originalData.scriptType === 2) {
+          problem.selectedOptions = Array.isArray(originalData.scriptResult)
+            ? [...originalData.scriptResult]
+            : originalData.scriptResult
+            ? originalData.scriptResult.split("&")
+            : [];
+        }
+        // 鍒濆鍖栧~绌虹瓟妗�
+        else if (originalData.scriptType === 4) {
+          problem.answer = originalData.scriptResult || "";
+        }
+      }
+    },
+
+    // 鏍规嵁闂ID鑾峰彇闂鏂囨湰
+    getQuestionText(questionId) {
+      if (!questionId) return "鏈�夋嫨闂";
+      const question = this.availableQuestions.find((q) => q.id === questionId);
+      return question
+        ? `${question.index + 1}. ${question.text}`
+        : "闂宸插垹闄�";
+    },
+
+    // 鎴柇鏂囨湰
+    truncateText(text, length) {
+      if (!text) return "";
+      return text.length > length ? text.substring(0, length) + "..." : text;
+    },
+    // 纭闂閫夋嫨
+    confirmQuestionSelection() {
+      if (this.selectedQuestionIds.length === 0) {
+        this.$modal.msgWarning("璇疯嚦灏戦�夋嫨涓�涓欢缁棶棰�");
+        return;
+      }
+
+      // 鑾峰彇褰撳墠婵�娲荤殑鏍囩椤电储寮�
+      const activeTabIndex = this.continuityTabs.findIndex(
+        (tab) => tab.name === this.activeContinuityTab
+      );
+
+      if (activeTabIndex === -1) {
+        this.$modal.msgError("鏈壘鍒版縺娲荤殑寤剁画鎶ょ悊鏍囩椤�");
+        return;
+      }
+
+      // 娣诲姞閫変腑鐨勯棶棰樺埌褰撳墠鏍囩椤�
+      this.selectedQuestionIds.forEach((questionId) => {
+        // 妫�鏌ユ槸鍚﹀凡瀛樺湪鐩稿悓闂
+        const exists = this.continuityTabs[
+          activeTabIndex
+        ].form.continuityProblems.some(
+          (problem) => problem.questionId === questionId
+        );
+
+        if (!exists) {
+          this.continuityTabs[activeTabIndex].form.continuityProblems.push({
+            questionId: questionId,
+            status: "pending",
+            description: "",
+            resolvedDate: "",
+            createTime: new Date().toISOString(),
+          });
+        }
+      });
+
+      // 鍏抽棴閫夋嫨闈㈡澘
+      this.showQuestionSelector = false;
+      this.selectedQuestionIds = [];
+
+      this.$modal.msgSuccess(
+        `宸叉坊鍔� ${this.selectedQuestionIds.length} 涓欢缁棶棰榒
+      );
+    },
+
+    // 绉婚櫎寤剁画闂
+    removeContinuityProblem(tabIndex, problemIndex) {
+      this.continuityTabs[tabIndex].form.continuityProblems.splice(
+        problemIndex,
+        1
+      );
+    },
+
+    // 鑾峰彇璇煶鏁版嵁
+    getPersonVoices(id) {
+      let obj = {
+        taskid: this.taskid,
+        patid: this.patid,
+        subId: id ? id : this.id,
+      };
+
+      getPersonVoices(obj).then((res) => {
+        if (res.code == 200) {
+          this.voiceDatatop = res.data.serviceSubtaskDetails;
+          this.voice = res.data.voice;
+          this.activeName = "yy";
+          this.taskname = res.data.taskName;
+          this.tableDatatop = res.data.filteredDetails;
+          this.tableDatatop.forEach((item) => {
+            if (item.targetvalue) {
+              item.scriptResult = item.targetvalue.split("&");
+            } else {
+              item.scriptResult = [];
+            }
+          });
+
+          // 鎻愬彇鍙�夌殑寤剁画闂
+          this.extractAvailableQuestions();
+        }
+      });
+    },
+
+    // 鑾峰彇鍩虹淇℃伅
+    getuserinfo() {
+      const queryParams = {
+        pid: Number(this.patid),
+        allhosp: "0",
+      };
+
+      messagelistpatient(queryParams).then((response) => {
+        if (response.rows[0]) {
+          this.userform = response.rows[0];
+          this.initPatientForm();
+        }
+      });
+
+      listcontactinformation({ patid: this.patid }).then((response) => {
+        this.tableData = response.rows;
+        if (this.tableData.length) {
+          this.patientForm.relativeName = this.tableData[0].relation || "";
+          this.patientForm.relativeTel = this.tableData[0].contactway || "";
+        }
+      });
+    },
+
+    // 鍒濆鍖栨偅鑰呰〃鍗�
+    initPatientForm() {
+      if (this.userform) {
+        this.patientForm.name = this.userform.name || "";
+        this.patientForm.sex = this.userform.sex || "";
+        this.patientForm.age = this.userform.age || "";
+        this.patientForm.telcode = this.userform.telcode || "";
+        this.patientForm.address = this.userform.placeOfResidence || "";
+        this.patientForm.hospitalNumber = this.userform.medicalRecordNo || "";
+      }
+
+      if (this.form) {
+        this.patientForm.dischargeDate =
+          this.formatTime(this.form.endtime) || "";
+        this.patientForm.diagnosis = this.form.leavediagname || "";
+        this.patientForm.nurseName = this.form.nurseName || "";
+      }
+    },
+
+    // 鑾峰彇鎮h�呰褰�
+    getTaskservelist(id) {
+      getTaskservelist({
+        patid: this.patid,
+        subId: id,
+        pageSize: 100,
+      }).then((res) => {
+        if (res.code == 200) {
+          this.form = res.rows[0].serviceSubtaskList.find(
+            (item) => item.id == this.id
+          );
+          this.logsheetlist = res.rows[0].serviceSubtaskList;
+
+          // 鍒濆鍖栨偅鑰呬俊鎭�
+          this.initPatientForm();
+
+          // 鍔犺浇鍘嗗彶寤剁画鎶ょ悊鏁版嵁
+          this.loadContinuityHistory();
+          this.getuserinfo();
+        }
+
+        if (this.Voicetype) {
+          this.getPersonVoices();
+        } else {
+          this.getsearchrResults();
+        }
+      });
+    },
+
+    // 鍔犺浇鍘嗗彶寤剁画鎶ょ悊鏁版嵁
+    loadContinuityHistory() {
+      if (this.form && this.form.continueContent) {
+        try {
+          const historyData = JSON.parse(this.form.continueContent);
+          this.continuityTabs = historyData.map((item, index) => ({
+            name: `continuity-${index}`,
+            title: `寤剁画鎶ょ悊${index + 1}`,
+            form: {
+              continuityProblems: item.continuityProblems || [],
+              careRecord: item.careRecord || "",
+              dutyNurse: item.dutyNurse || "",
+              visitType: item.visitType || "",
+              serviceTime: item.serviceTime || "",
+              nextServiceTime: item.nextServiceTime || "",
+            },
+            saving: false,
+          }));
+
+          if (this.continuityTabs.length > 0) {
+            this.activeContinuityTab = this.continuityTabs[0].name;
+          }
+
+          // 鏇存柊姹囨�讳俊鎭�
+          this.updateContinuitySummary();
+        } catch (error) {
+          console.error("瑙f瀽寤剁画鎶ょ悊鍘嗗彶鏁版嵁澶辫触:", error);
+        }
+      }
+    },
+
+    // 鏇存柊寤剁画鎶ょ悊姹囨�讳俊鎭�
+    updateContinuitySummary() {
+      if (this.form) {
+        this.continuitySummary.continueCount = this.form.continueCount || 0;
+        this.continuitySummary.continueTimeNow =
+          this.form.continueTimeNow || "";
+        this.continuitySummary.continueTimeNext =
+          this.form.continueTimeNext || "";
+        this.continuitySummary.continueContent =
+          this.form.continueContent || "";
+      }
+    },
+
+    // 娣诲姞寤剁画鎶ょ悊鏍囩椤�
+    addContinuityTab() {
+      console.log(this.continuityTabs.length);
+      if (this.continuityTabs.length) {
+        this.continuityTabIndex = this.continuityTabs.length;
+      }
+      const newIndex = this.continuityTabIndex + 1;
+      const newTab = {
+        name: `continuity-${newIndex}`,
+        title: `寤剁画鎶ょ悊${newIndex}`,
+        form: {
+          continuityProblems: [],
+          careRecord: "",
+          dutyNurse: "",
+          visitType: "",
+          serviceTime: "",
+          nextServiceTime: "",
+        },
+        saving: false,
+      };
+
+      this.continuityTabs.push(newTab);
+      this.continuityTabIndex = newIndex;
+      this.activeContinuityTab = newTab.name;
+    },
+
+    // 绉婚櫎寤剁画鎶ょ悊鏍囩椤�
+    removeContinuityTab(targetName) {
+      const tabs = this.continuityTabs;
+      let activeName = this.activeContinuityTab;
+
+      if (activeName === targetName) {
+        tabs.forEach((tab, index) => {
+          if (tab.name === targetName) {
+            const nextTab = tabs[index + 1] || tabs[index - 1];
+            if (nextTab) {
+              activeName = nextTab.name;
+            }
+          }
+        });
+      }
+
+      this.activeContinuityTab = activeName;
+      this.continuityTabs = tabs.filter((tab) => tab.name !== targetName);
+    },
+
+    // 澶勭悊鏍囩椤电偣鍑�
+    handleTabClick(tab) {
+      this.activeContinuityTab = tab.name;
+    },
+
+    // 璁$畻璺濈涓嬫鏈嶅姟杩樻湁澶氬皯澶�
+    calculateDaysLeft(nextServiceTime) {
+      if (!nextServiceTime) return 0;
+
+      const nextTime = new Date(nextServiceTime);
+      const now = new Date();
+      const diffTime = nextTime - now;
+      const diffDays = Math.ceil(diffTime / (1000 * 60 * 60 * 24));
+
+      return diffDays > 0 ? diffDays : 0;
+    },
+
+    // 淇濆瓨寤剁画鎶ょ悊鏍囩椤�
+    saveContinuityTab(index) {
+      const formRef = this.$refs[`continuityForm${index}`];
+      if (!formRef) return;
+
+      // 楠岃瘉鍩烘湰琛ㄥ崟
+      formRef[0].validate((valid) => {
+        if (valid) {
+          // 楠岃瘉寤剁画闂鏄惁瀹屾暣
+          const problems = this.continuityTabs[index].form.continuityProblems;
+          let hasError = false;
+
+          problems.forEach((problem, problemIndex) => {
+            if (!problem.questionId) {
+              hasError = true;
+              this.$modal.msgError(`绗�${problemIndex + 1}涓欢缁棶棰樻湭閫夋嫨`);
+            }
+          });
+
+          if (hasError) {
+            return false;
+          }
+
+          this.continuityTabs[index].saving = true;
+
+          // 鏇存柊姹囨�讳俊鎭�
+          this.updateContinuitySummaryFromTabs();
+
+          // 璋冪敤淇濆瓨API
+          this.saveContinuityData();
+        } else {
+          this.$modal.msgError("璇峰~鍐欏畬鏁翠俊鎭�");
+          return false;
+        }
+      });
+    },
+
+    // 鏇存柊寤剁画鎶ょ悊姹囨�讳俊鎭�
+    updateContinuitySummaryFromTabs() {
+      if (this.continuityTabs.length === 0) return;
+
+      // 鎵惧埌鏈�鏂扮殑鏈嶅姟鏃堕棿
+      let latestTime = "";
+      let nextTime = "";
+      let totalProblems = 0;
+
+      this.continuityTabs.forEach((tab) => {
+        if (tab.form.serviceTime) {
+          if (
+            !latestTime ||
+            new Date(tab.form.serviceTime) > new Date(latestTime)
+          ) {
+            latestTime = tab.form.serviceTime;
+          }
+        }
+        if (tab.form.nextServiceTime) {
+          if (
+            !nextTime ||
+            new Date(tab.form.nextServiceTime) < new Date(nextTime)
+          ) {
+            nextTime = tab.form.nextServiceTime;
+          }
+        }
+
+        // 缁熻闂鏁伴噺
+        totalProblems += tab.form.continuityProblems.length;
+      });
+
+      this.continuitySummary.continueCount = this.continuityTabs.length;
+      this.continuitySummary.continueTimeNow = latestTime;
+      this.continuitySummary.continueTimeNext = nextTime;
+
+      // 鏋勫缓瀹屾暣鐨勫欢缁姢鐞嗘暟鎹�
+      const continuityData = this.continuityTabs.map((tab) => ({
+        ...tab.form,
+        tabTitle: tab.title,
+        tabName: tab.name,
+      }));
+
+      this.continuitySummary.continueContent = JSON.stringify(continuityData);
+      this.continuitySummary.totalProblems = totalProblems;
+    },
+
+    // 淇濆瓨寤剁画鎶ょ悊鏁版嵁
+    saveContinuityData() {
+      const vm = this;
+
+      // 楠岃瘉姣忎釜闂鐨剄uestionId鏄惁宸查�夋嫨
+      let hasEmptyQuestion = false;
+      this.continuityTabs.forEach((tab, tabIndex) => {
+        tab.form.continuityProblems.forEach((problem, problemIndex) => {
+          if (!problem.questionId) {
+            hasEmptyQuestion = true;
+            vm.$modal.msgError(
+              `绗�${tabIndex + 1}涓爣绛鹃〉鐨勭${problemIndex + 1}涓棶棰樻湭閫夋嫨`
+            );
+          }
+        });
+      });
+
+      if (hasEmptyQuestion) {
+        return;
+      }
+
+      const formData = {
+        id: vm.id,
+        patid: vm.patid,
+        taskid: vm.taskid,
+        continueFlag: 2,
+        continueCount: vm.continuitySummary.continueCount,
+        continueTimeNow: vm.continuitySummary.continueTimeNow,
+        continueTimeNext: vm.continuitySummary.continueTimeNext,
+        continueContent: vm.continuitySummary.continueContent,
+        // 鍙互娣诲姞闂嵎绛旀鐨勬暣鍚�
+        // questionnaireAnswers: vm.continuityTabs.map((tab) => ({
+        //   tabName: tab.name,
+        //   problems: tab.form.continuityProblems.map((problem) => ({
+        //     questionId: problem.questionId,
+        //     answer:
+        //       problem.selectedOption ||
+        //       problem.selectedOptions ||
+        //       problem.answer,
+        //     status: problem.status,
+        //     description: problem.description,
+        //   })),
+        // })),
+      };
+
+      Editsingletaskson(formData)
+        .then((res) => {
+          if (res.code === 200) {
+            vm.$modal.msgSuccess("寤剁画鎶ょ悊璁板綍淇濆瓨鎴愬姛");
+            // 閲嶇疆淇濆瓨鐘舵��
+            vm.continuityTabs.forEach((tab) => {
+              tab.saving = false;
+            });
+          } else {
+            vm.$modal.msgError("淇濆瓨澶辫触");
+          }
+        })
+        .catch((error) => {
+          console.error("淇濆瓨澶辫触:", error);
+          vm.$modal.msgError("淇濆瓨澶辫触");
+          vm.continuityTabs.forEach((tab) => {
+            tab.saving = false;
+          });
+        });
+    },
+
+    // 閲嶇疆寤剁画鎶ょ悊鏍囩椤�
+    resetContinuityTab(index) {
+      this.continuityTabs[index].form = {
+        continuityProblems: [],
+        careRecord: "",
+        dutyNurse: "",
+        visitType: "",
+        serviceTime: "",
+        nextServiceTime: "",
+      };
+      this.$refs[`continuityForm${index}`][0].clearValidate();
+    },
+
+    // 淇濆瓨鎮h�呬俊鎭�
+    savePatientInfo() {
+      this.$refs.patientForm.validate((valid) => {
+        if (valid) {
+          this.savingPatientInfo = true;
+
+          // 鏇存柊userform鏁版嵁
+          const updatedUserform = {
+            ...this.userform,
+            name: this.patientForm.name,
+            sex: this.patientForm.sex,
+            age: this.patientForm.age,
+            telcode: this.patientForm.telcode,
+            placeOfResidence: this.patientForm.address,
+            medicalRecordNo: this.patientForm.hospitalNumber,
+          };
+
+          alterpatient(updatedUserform)
+            .then((res) => {
+              if (res.code == 200) {
+                this.$modal.msgSuccess("鎮h�呬俊鎭繚瀛樻垚鍔�");
+                this.userform = updatedUserform;
+              } else {
+                this.$modal.msgError("鎮h�呬俊鎭慨鏀瑰け璐�");
+              }
+              this.savingPatientInfo = false;
+            })
+            .catch((error) => {
+              console.error("淇濆瓨澶辫触:", error);
+              this.$modal.msgError("淇濆瓨澶辫触");
+              this.savingPatientInfo = false;
+            });
+        } else {
+          this.$modal.msgError("璇峰~鍐欏畬鏁翠俊鎭�");
+          return false;
+        }
+      });
+    },
+
+    // 閲嶇疆鎮h�呬俊鎭�
+    resetPatientInfo() {
+      this.initPatientForm();
+      this.$refs.patientForm.clearValidate();
+    },
+
+    // 鏃堕棿鏍煎紡鍖�
+    formatTime(time) {
+      if (!time) return "";
+      return time.split(" ")[0];
+    },
+
+    // 鏍煎紡鍖栨樉绀烘椂闂�
+    formatDisplayTime(time) {
+      if (!time) return "鏈缃�";
+      return time.replace(" ", " ");
+    },
+
+    // 寮傚父鍒楁覆鏌�
+    tableRowClassName({ row }) {
+      if (row.id == this.id) {
+        return "warning-row";
+      }
+      return "";
+    },
+  },
+};
+</script>
+<style lang="scss" scoped>
+.ContinuityCarePage {
+  margin: 10px;
+  display: flex;
+  flex-direction: column;
+  gap: 20px;
+}
+
+.headline {
+  font-size: 20px;
+  height: 40px;
+  border-left: 5px solid #41a1be;
+  padding-left: 10px;
+  margin-bottom: 20px;
+  display: flex;
+  align-items: center;
+  color: #333;
+  font-weight: 600;
+}
+
+.sub-headline {
+  font-size: 16px;
+  height: 36px;
+  padding-left: 8px;
+  margin-bottom: 15px;
+  display: flex;
+  align-items: center;
+  color: #409eff;
+  font-weight: 500;
+  border-bottom: 2px solid #e4e7ed;
+  padding-bottom: 8px;
+
+  i {
+    margin-right: 8px;
+    font-size: 18px;
+  }
+}
+
+/* 绗竴閮ㄥ垎锛氭湇鍔″熀纭�淇℃伅 */
+.basic-info-section {
+  margin: 0 10px;
+  padding: 20px;
+  background: #fff;
+  border: 1px solid #dcdfe6;
+  box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.12), 0 0 6px 0 rgba(0, 0, 0, 0.04);
+  border-radius: 4px;
+
+  .basic-info-container {
+    display: flex;
+    gap: 20px;
+    min-height: 1000px;
+
+    @media screen and (max-width: 1200px) {
+      flex-direction: column;
+    }
+  }
+
+  .followup-content {
+    flex: 1;
+    min-width: 0;
+
+    &.readonly-content {
+      background: #f8f9fa;
+      border-radius: 8px;
+      padding: 15px;
+      border: 1px solid #e4e7ed;
+    }
+
+    .content-container {
+      height: calc(1000px - 60px);
+      overflow: hidden;
+      display: flex;
+      flex-direction: column;
+
+      ::v-deep .el-tabs {
+        flex: 1;
+        display: flex;
+        flex-direction: column;
+
+        .el-tabs__content {
+          flex: 1;
+          overflow: hidden;
+
+          .el-tab-pane {
+            height: 100%;
+            overflow: hidden;
+            display: flex;
+            flex-direction: column;
+          }
+        }
+      }
+    }
+  }
+
+  .continuity-history {
+    flex: 1;
+    min-width: 0;
+    background: #fff;
+    border-radius: 8px;
+    padding: 15px;
+    border: 1px solid #e4e7ed;
+    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
+
+    .history-content {
+      height: calc(1000px - 60px);
+      overflow: hidden;
+      display: flex;
+      flex-direction: column;
+
+      ::v-deep .el-tabs {
+        flex: 1;
+        display: flex;
+        flex-direction: column;
+
+        .el-tabs__content {
+          flex: 1;
+          overflow-y: auto;
+          padding: 15px 0;
+
+          .continuity-form {
+            padding: 0 10px;
+
+            .el-form {
+              .selected-problems {
+                margin-top: 10px;
+                padding: 10px;
+                background: #f5f7fa;
+                border-radius: 4px;
+                border: 1px solid #e4e7ed;
+              }
+
+              .time-tip {
+                margin-top: 5px;
+                font-size: 12px;
+                color: #67c23a;
+                font-style: italic;
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+}
+
+.patient-info-section {
+  margin: 0 10px 20px 10px;
+  padding: 20px;
+  background: #fff;
+  border: 1px solid #dcdfe6;
+  box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.12), 0 0 6px 0 rgba(0, 0, 0, 0.04);
+  border-radius: 4px;
+
+  .patient-info-form {
+    .continuity-summary {
+      padding: 15px;
+      background: #ddf0f8;
+      border-radius: 8px;
+      border: 1px solid #b3e0f2;
+
+      .summary-item {
+        display: inline-block;
+        margin-right: 30px;
+        margin-bottom: 8px;
+
+        .label {
+          font-weight: 500;
+          color: #333;
+        }
+
+        .value {
+          color: #409eff;
+          font-weight: 500;
+        }
+      }
+    }
+  }
+}
+
+/* 鍏变韩鏍峰紡 */
+.CONTENT {
+  padding: 10px;
+  height: 100%;
+  display: flex;
+  flex-direction: column;
+
+  .title {
+    font-size: 18px;
+    font-weight: bold;
+    margin-bottom: 20px;
+    text-align: center;
+    color: #333;
+  }
+}
+
+.preview-left {
+  margin: 10px;
+  padding: 20px;
+  border: 1px solid #dcdfe6;
+  border-radius: 4px;
+  max-height: 800px;
+  overflow-y: auto;
+  background: #fff;
+  flex: 1;
+
+  .topic-dev {
+    margin-bottom: 20px;
+    font-size: 16px;
+
+    .dev-text {
+      margin-bottom: 10px;
+      font-weight: 500;
+      color: #333;
+    }
+  }
+}
+
+.scriptTopic-dev {
+  padding: 15px;
+  border-radius: 4px;
+  background: #fafafa;
+  border: 1px solid #e4e7ed;
+  margin-bottom: 15px;
+}
+
+.scriptTopic-isabnormal {
+  padding: 15px;
+  border-radius: 4px;
+  background: #fff5f5;
+  border: 1px solid #f56c6c;
+  color: #f56c6c;
+  margin-bottom: 15px;
+}
+
+.scriptTopic-warning {
+  padding: 15px;
+  border-radius: 4px;
+  background: #fff9e6;
+  border: 1px solid #e6a23c;
+  color: #e6a23c;
+  margin-bottom: 15px;
+}
+
+.red-star {
+  ::v-deep.el-radio__label {
+    position: relative;
+    padding-right: 10px;
+  }
+
+  ::v-deep.el-radio__label::after {
+    content: "*";
+    color: #f56c6c;
+    position: absolute;
+    right: -5px;
+    top: 0;
+  }
+}
+
+.yellow-star {
+  ::v-deep.el-radio__label {
+    position: relative;
+    padding-right: 10px;
+  }
+
+  ::v-deep.el-radio__label::after {
+    content: "*";
+    color: #e6a23c;
+    position: absolute;
+    right: -5px;
+    top: 0;
+    font-weight: bold;
+  }
+}
+
+.borderdiv {
+  height: 100%;
+  padding: 10px;
+  display: flex;
+  flex-direction: column;
+
+  .title {
+    font-size: 18px;
+    font-weight: bold;
+    margin-bottom: 20px;
+    text-align: center;
+  }
+
+  .voice-audio {
+    display: flex;
+    align-items: center;
+    color: #59a0f0;
+    margin-bottom: 20px;
+    padding: 10px;
+    background: #f5f7fa;
+    border-radius: 4px;
+  }
+
+  .preview-left {
+    flex: 1;
+    margin: 0;
+
+    .leftside {
+      margin: 15px 0;
+
+      span {
+        display: inline-block;
+        padding: 8px 12px;
+        background: #409eff;
+        color: #fff;
+        border-radius: 8px;
+        max-width: 80%;
+        margin-left: 10px;
+      }
+    }
+
+    .offside {
+      display: flex;
+      flex-direction: row-reverse;
+      margin: 15px 0;
+
+      .offside-value {
+        padding: 8px 12px;
+        background: #67c23a;
+        color: #fff;
+        border-radius: 8px;
+        max-width: 80%;
+        margin-right: 10px;
+      }
+    }
+  }
+}
+
+/* 鍝嶅簲寮忚璁� */
+@media (max-width: 768px) {
+  .ContinuityCarePage {
+    margin: 5px;
+    gap: 10px;
+  }
+
+  .basic-info-section,
+  .patient-info-section {
+    margin: 0 5px;
+    padding: 10px;
+  }
+
+  .basic-info-container {
+    gap: 10px !important;
+  }
+
+  .patient-info-form {
+    .el-row {
+      flex-direction: column;
+    }
+
+    .el-col {
+      width: 100% !important;
+      margin-bottom: 10px;
+    }
+  }
+
+  .preview-left {
+    margin: 5px;
+    padding: 10px;
+  }
+}
+/* 闂閫夋嫨鍣ㄩ潰鏉� */
+.question-selector-panel {
+  margin-bottom: 20px;
+  padding: 15px;
+  background: #f8f9fa;
+  border: 1px solid #e4e7ed;
+  border-radius: 8px;
+
+  .selector-header {
+    display: flex;
+    justify-content: space-between;
+    align-items: center;
+    margin-bottom: 15px;
+    padding-bottom: 10px;
+    border-bottom: 1px solid #e4e7ed;
+
+    span {
+      font-weight: 500;
+      color: #333;
+    }
+  }
+
+  .question-list {
+    max-height: 200px;
+    overflow-y: auto;
+    padding-right: 10px;
+
+    .question-item {
+      margin-bottom: 10px;
+      padding: 8px 12px;
+      background: #fff;
+      border-radius: 6px;
+      border: 1px solid #e4e7ed;
+      transition: all 0.3s;
+
+      &:hover {
+        border-color: #409eff;
+        background: #f0f7ff;
+      }
+
+      .question-content {
+        display: flex;
+        align-items: flex-start;
+
+        .question-index {
+          font-weight: 600;
+          color: #409eff;
+          min-width: 30px;
+        }
+
+        .question-text {
+          flex: 1;
+          line-height: 1.5;
+        }
+      }
+    }
+  }
+}
+
+/* 寤剁画闂琛ㄥ崟 */
+.continuity-problems-form {
+  .problems-header {
+    display: flex;
+    justify-content: space-between;
+    align-items: center;
+    margin-bottom: 15px;
+    padding-bottom: 10px;
+    border-bottom: 1px solid #e4e7ed;
+
+    span {
+      font-weight: 500;
+      color: #333;
+    }
+  }
+
+  .problems-list {
+    .problem-item {
+      margin-bottom: 20px;
+      padding: 15px;
+      background: #f8f9fa;
+      border-radius: 8px;
+      border: 1px solid #e4e7ed;
+
+      &:last-child {
+        margin-bottom: 0;
+      }
+
+      .problem-content {
+        .problem-meta {
+          display: flex;
+          align-items: center;
+          margin-bottom: 15px;
+          padding-bottom: 10px;
+          border-bottom: 1px dashed #e4e7ed;
+
+          .problem-index {
+            font-weight: 500;
+            color: #409eff;
+            min-width: 80px;
+          }
+        }
+
+        .problem-detail {
+          .detail-row {
+            display: flex;
+            align-items: flex-start;
+            margin-bottom: 10px;
+
+            &:last-child {
+              margin-bottom: 0;
+            }
+
+            .detail-label {
+              font-weight: 500;
+              color: #666;
+              min-width: 100px;
+              line-height: 32px;
+            }
+
+            .detail-value {
+              flex: 1;
+              line-height: 1.5;
+              color: #333;
+              padding: 5px 0;
+            }
+          }
+        }
+      }
+    }
+  }
+
+  .empty-problems {
+    text-align: center;
+    padding: 30px 0;
+    background: #fafafa;
+    border-radius: 8px;
+    border: 1px dashed #e4e7ed;
+  }
+}
+/* 寤剁画闂鍒楄〃瀹瑰櫒 - 娣诲姞婊氬姩 */
+.problems-list-container {
+  max-height: 400px; /* 鎺у埗鏈�澶ч珮搴� */
+  overflow-y: auto;
+  padding-right: 10px;
+  margin-bottom: 15px;
+
+  &::-webkit-scrollbar {
+    width: 6px;
+  }
+
+  &::-webkit-scrollbar-track {
+    background: #f1f1f1;
+    border-radius: 3px;
+  }
+
+  &::-webkit-scrollbar-thumb {
+    background: #c1c1c1;
+    border-radius: 3px;
+
+    &:hover {
+      background: #a8a8a8;
+    }
+  }
+}
+
+/* 闂嵎寮忛棶棰樺睍绀� */
+.question-display-area {
+  margin: 15px 0;
+  padding: 15px;
+  background: #fff;
+  border-radius: 8px;
+  border: 1px solid #e4e7ed;
+
+  .question-item-render {
+    .question-text {
+      margin-bottom: 15px;
+      font-size: 14px;
+      line-height: 1.5;
+      color: #333;
+
+      strong {
+        color: #409eff;
+        margin-right: 5px;
+      }
+
+      span {
+        color: #666;
+      }
+    }
+
+    .question-options {
+      margin-left: 20px;
+
+      .el-radio,
+      .el-checkbox {
+        display: block;
+        margin-bottom: 8px;
+        margin-right: 20px;
+      }
+    }
+
+    .append-input {
+      margin-left: 20px;
+      margin-top: 10px;
+    }
+  }
+
+  .no-question-data {
+    text-align: center;
+    color: #999;
+    padding: 20px;
+    font-style: italic;
+  }
+}
+
+/* 璋冩暣闂璇︽儏甯冨眬 */
+.problem-detail {
+  margin-top: 5px;
+  padding-top: 5px;
+  padding-bottom: 20px;
+  margin-bottom: 10px;
+  border-bottom: 1px dashed #6e9af4;
+
+  .detail-row {
+    display: flex;
+    align-items: center;
+    margin-bottom: 15px;
+
+    &:last-child {
+      margin-bottom: 0;
+    }
+
+    .detail-label {
+      font-weight: 500;
+      color: #666;
+      min-width: 80px;
+      white-space: nowrap;
+    }
+  }
+}
+
+/* 鍝嶅簲寮忚皟鏁� */
+@media (max-width: 768px) {
+  .problems-list-container {
+    max-height: 300px;
+  }
+
+  .problem-detail {
+    .detail-row {
+      flex-direction: column;
+      align-items: flex-start;
+
+      .detail-label {
+        margin-bottom: 5px;
+        min-width: auto;
+      }
+
+      .el-select,
+      .el-date-picker {
+        width: 100% !important;
+        margin: 5px 0 !important;
+      }
+    }
+  }
+}
+/* 鍝嶅簲寮忚皟鏁� */
+@media (max-width: 768px) {
+  .question-selector-panel {
+    padding: 10px;
+
+    .question-list {
+      .question-item {
+        padding: 6px 8px;
+      }
+    }
+  }
+
+  .continuity-problems-form {
+    .problems-list {
+      .problem-item {
+        padding: 10px;
+
+        .problem-content {
+          .problem-meta {
+            flex-direction: column;
+            align-items: flex-start;
+
+            .el-select {
+              width: 100% !important;
+              margin: 10px 0;
+            }
+          }
+
+          .problem-detail {
+            .detail-row {
+              flex-direction: column;
+              align-items: flex-start;
+
+              .detail-label {
+                margin-bottom: 5px;
+                min-width: auto;
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+}
+/* 婊氬姩鏉$編鍖� */
+.preview-left,
+.history-content .el-tabs__content,
+.content-container .el-tabs__content {
+  &::-webkit-scrollbar {
+    width: 6px;
+  }
+
+  &::-webkit-scrollbar-track {
+    background: #f1f1f1;
+    border-radius: 3px;
+  }
+
+  &::-webkit-scrollbar-thumb {
+    background: #c1c1c1;
+    border-radius: 3px;
+
+    &:hover {
+      background: #a8a8a8;
+    }
+  }
+}
+</style>
diff --git a/src/views/followvisit/Continue/index.vue b/src/views/followvisit/Continue/index.vue
new file mode 100644
index 0000000..3148049
--- /dev/null
+++ b/src/views/followvisit/Continue/index.vue
@@ -0,0 +1,2094 @@
+<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> -->
+    <el-row :gutter="20">
+      <!--鐢ㄦ埛鏁版嵁-->
+      <el-form
+        :model="topqueryParams"
+        ref="queryForm"
+        size="small"
+        :inline="true"
+        v-show="showSearch"
+        label-width="98px"
+      >
+        <el-form-item label="浠诲姟鍚嶇О">
+          <el-input
+            v-model="topqueryParams.taskName"
+            placeholder="璇烽�夋嫨浠诲姟鍚嶇О"
+          ></el-input>
+        </el-form-item>
+
+        <el-form-item label="鍑洪櫌鏃堕棿">
+          <el-date-picker
+            v-model="dateRange"
+            style="width: 240px"
+            value-format="yyyy-MM-dd"
+            type="daterange"
+            range-separator="-"
+            start-placeholder="寮�濮嬫棩鏈�"
+            end-placeholder="缁撴潫鏃ユ湡"
+          ></el-date-picker>
+        </el-form-item>
+        <el-form-item label="搴旈殢璁挎椂闂�">
+          <el-date-picker
+            v-model="dateRangefs"
+            style="width: 240px"
+            value-format="yyyy-MM-dd"
+            type="daterange"
+            range-separator="-"
+            start-placeholder="寮�濮嬫棩鏈�"
+            end-placeholder="缁撴潫鏃ユ湡"
+          ></el-date-picker>
+        </el-form-item>
+
+        <el-form-item label="鎮h�呭鍚�" prop="sendname">
+          <el-input
+            v-model="topqueryParams.sendname"
+            placeholder="璇疯緭鍏ユ偅鑰呭鍚�"
+          ></el-input>
+        </el-form-item>
+        <el-form-item label="璇婃柇鍚嶇О" prop="leavediagname">
+          <el-input
+            v-model="topqueryParams.leavediagname"
+            placeholder="璇疯緭鍏ヨ瘖鏂悕绉�"
+          ></el-input>
+        </el-form-item>
+        <el-form-item label="闅忚浜哄憳" prop="updateBy">
+          <el-input
+            v-model="topqueryParams.updateBy"
+            placeholder="璇疯緭鍏ラ殢璁夸汉鍛�"
+          ></el-input>
+        </el-form-item>
+        <!-- <el-form-item label="涓绘不鍖荤敓" prop="drname">
+          <el-input
+            v-model="topqueryParams.drname"
+            placeholder="璇疯緭鍏ヤ富娌诲尰鐢�"
+          ></el-input>
+        </el-form-item> -->
+        <!-- <el-form-item label="缁忕鍖荤敓" prop="managementDoctor">
+          <el-input
+            v-model="topqueryParams.managementDoctor"
+            placeholder="璇疯緭鍏ヤ富娌诲尰鐢�"
+          ></el-input>
+        </el-form-item> -->
+        <!-- <el-form-item label="鏃ユ湡闄愬埗" prop="status">
+          <el-select v-model="endOut" placeholder="璇烽�夋嫨">
+            <el-option
+              v-for="item in endOuts"
+              :key="item.value"
+              :label="item.label"
+              :value="item.value"
+            >
+            </el-option>
+          </el-select>
+        </el-form-item> -->
+        <el-form-item label="鎮h�呰寖鍥�" prop="status">
+          <el-cascader
+            v-model="topqueryParams.scopetype"
+            placeholder="榛樿鍏ㄩ儴"
+            :options="sourcetype"
+            :props="{ expandTrigger: 'hover' }"
+            @change="handleChange"
+          ></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>
+        <!-- <el-form-item label="鎺掑簭鏂瑰紡" prop="status">
+          <el-select v-model="topqueryParams.sort" placeholder="璇烽�夋嫨">
+            <el-option
+              v-for="item in topicoptionssort"
+              :key="item.value"
+              :label="item.label"
+              :value="item.value"
+            >
+            </el-option>
+          </el-select>
+        </el-form-item> -->
+
+        <el-form-item>
+          <el-button
+            type="primary"
+            icon="el-icon-search"
+            size="medium"
+            @click="handleQuery(1)"
+            >鎼滅储</el-button
+          >
+          <el-button icon="el-icon-refresh" size="medium" @click="resetQuery"
+            >閲嶇疆</el-button
+          >
+        </el-form-item>
+      </el-form>
+      <el-divider></el-divider>
+      <el-row :gutter="10" class="mb8">
+        <el-col :span="1.5">
+          <div class="documentf">
+            <div class="document">
+              <el-button
+                type="warning"
+                plain
+                icon="el-icon-warning-outline"
+                size="medium"
+                @click="toleadExport(1)"
+                >鎵ц澶辫触</el-button
+              >
+            </div>
+          </div>
+        </el-col>
+        <el-col :span="1.5">
+          <div class="documentf">
+            <div class="document">
+              <el-button
+                type="danger"
+                plain
+                icon="el-icon-warning"
+                size="medium"
+                @click="toleadExport(2)"
+                >缁撴灉寮傚父</el-button
+              >
+            </div>
+          </div>
+        </el-col>
+      </el-row>
+      <el-table
+        v-loading="loading"
+        ref="userform"
+        :data="userList"
+        :row-class-name="tableRowClassName"
+        @selection-change="handleSelectionChange"
+      >
+        <el-table-column type="selection" width="50" align="center" />
+        <el-table-column
+          label="浠诲姟鍚嶇О"
+          fixed
+          width="150"
+          show-overflow-tooltip
+          align="center"
+          key="taskName"
+          prop="taskName"
+        />
+        <!-- <el-table-column label="搴忓彿" fixed align="center" key="id" prop="id" /> -->
+        <el-table-column
+          label="濮撳悕"
+          width="100"
+          align="center"
+          key="sendname"
+          prop="sendname"
+        >
+          <template slot-scope="scope">
+            <el-button
+              size="medium"
+              type="text"
+              @click="
+                gettoken360(scope.row.sfzh, scope.row.drcode, scope.row.drname)
+              "
+              ><span class="button-textsc">{{
+                scope.row.sendname
+              }}</span></el-button
+            >
+          </template>
+        </el-table-column>
+        <el-table-column
+          label="璇婃柇鍚嶇О"
+          align="center"
+          key="leavediagname"
+          prop="leavediagname"
+          width="120"
+          :show-overflow-tooltip="true"
+        >
+        </el-table-column>
+        <el-table-column
+          label="寤剁画鎶ょ悊娆℃暟"
+          align="center"
+          key="continueCount"
+          prop="continueCount"
+          width="120"
+          :show-overflow-tooltip="true"
+        >
+        </el-table-column>
+        <el-table-column
+          label="鏈�鏂板欢缁姢鐞嗘椂闂�"
+          sortable
+          align="center"
+          prop="finishtime"
+          width="160"
+        >
+          <template slot-scope="scope">
+            <span>{{ parseTime(scope.row.continueTimeNext) }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column
+          label="涓嬫寤剁画鎶ょ悊鏃堕棿"
+          sortable
+          align="center"
+          prop="finishtime"
+          width="160"
+        >
+          <template slot-scope="scope">
+            <span>{{ parseTime(scope.row.continueTimeNow) }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column
+          label="浠诲姟鐘舵��"
+          align="center"
+          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>
+            </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="longSendTime"
+          prop="longSendTime"
+        >
+          <template slot-scope="scope">
+            <span>{{ formatTime(scope.row.longSendTime) }}</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"
+          align="center"
+          key="endDay"
+          prop="endDay"
+        >
+          <template slot-scope="scope">
+            <span>{{ scope.row.endDay ? scope.row.endDay + "澶�" : "" }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column
+          label="韬唤璇佸彿鐮�"
+          width="200"
+          align="center"
+          key="sfzh"
+          prop="sfzh"
+        />
+        <el-table-column
+          label="鑱旂郴鐢佃瘽"
+          width="200"
+          align="center"
+          key="phone"
+          prop="phone"
+        />
+        <el-table-column
+          label="璐d换鎶ゅ+"
+          width="120"
+          align="center"
+          key="nurseName"
+          prop="nurseName"
+        />
+
+        <el-table-column
+          label="绉戝"
+          align="center"
+          key="deptname"
+          prop="deptname"
+          width="120"
+        >
+        </el-table-column>
+        <el-table-column
+          label="鐥呭尯"
+          align="center"
+          key="leavehospitaldistrictname"
+          prop="leavehospitaldistrictname"
+          width="120"
+        >
+        </el-table-column>
+
+        <el-table-column
+          label="鍑洪櫌闅忚妯℃澘鍚嶇О"
+          align="center"
+          key="templatename"
+          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"
+          key="serviceSubtaskRecordList"
+          prop="serviceSubtaskRecordList"
+          width="160"
+          :show-overflow-tooltip="true"
+        >
+          <template slot-scope="scope">
+            <span v-for="item in scope.row.serviceSubtaskRecordList"
+              >{{ item.remark }}銆�
+            </span>
+          </template>
+        </el-table-column> -->
+        <el-table-column
+          label="浠诲姟缁撴灉璇存槑"
+          width="220"
+          align="center"
+          key="remark"
+          prop="remark"
+        >
+          <template slot-scope="scope" v-if="scope.row.remark">
+            <el-tooltip
+              :content="scope.row.remark"
+              placement="top"
+              effect="dark"
+            >
+              <el-tag
+                type="warning"
+                v-if="scope.row.sendstate != 5 && scope.row.sendstate != 4"
+                >{{ scope.row.remark }}</el-tag
+              >
+              <el-tag type="warning" v-else>{{ scope.row.remark }}</el-tag>
+            </el-tooltip>
+          </template>
+        </el-table-column>
+        <el-table-column
+          label="鎿嶄綔"
+          align="center"
+          fixed="right"
+          width="120"
+          class-name="small-padding fixed-width"
+        >
+          <template slot-scope="scope">
+            <el-button size="medium" type="text" @click="Seedetails(scope.row)"
+              ><span class="button-zx"
+                ><i class="el-icon-s-order"></i>鏌ョ湅璇︽儏</span
+              ></el-button
+            >
+          </template>
+        </el-table-column>
+      </el-table>
+
+      <pagination
+        v-show="total > 0"
+        :total="total"
+        :page.sync="topqueryParams.pageNum"
+        :limit.sync="topqueryParams.pageSize"
+        @pagination="getList"
+      />
+    </el-row>
+    <!-- 婊℃剰搴﹀脊妗� -->
+    <el-dialog
+      title="闅忚婊℃剰搴﹁瘎鍒�"
+      :visible.sync="scoreDialogVisible"
+      width="80%"
+      :close-on-click-modal="false"
+    >
+      <el-table :data="selectedRows" border style="width: 100%">
+        <el-table-column
+          label="濮撳悕"
+          width="100"
+          align="center"
+          prop="sendname"
+        />
+        <el-table-column
+          label="浠诲姟鍚嶇О"
+          width="180"
+          align="center"
+          prop="taskName"
+        />
+        <!-- 鏂板璇勫垎鍒� -->
+        <el-table-column
+          label="鐪熷疄鎬�(20)"
+          align="center"
+          key="authenticity"
+          prop="authenticity"
+          width="150"
+        >
+          <template slot-scope="scope">
+            <el-input-number
+              v-model="scope.row.authenticity"
+              :min="0"
+              :max="20"
+              :step="1"
+              size="small"
+            />
+          </template>
+        </el-table-column>
+        <el-table-column
+          label="涓�鍛ㄥ唴瀹屾垚(20)"
+          align="center"
+          key="weekFinish"
+          prop="weekFinish"
+          width="150"
+        >
+          <template slot-scope="scope">
+            <el-input-number
+              v-model="scope.row.weekFinish"
+              :min="0"
+              :max="20"
+              :step="1"
+              size="small"
+            />
+          </template>
+        </el-table-column>
+        <el-table-column
+          label="瑙勮寖鎬�(10)"
+          align="center"
+          key="standard"
+          prop="standard"
+          width="150"
+        >
+          <template slot-scope="scope">
+            <el-input-number
+              v-model="scope.row.standard"
+              :min="0"
+              :max="10"
+              :step="1"
+              size="small"
+            />
+          </template>
+        </el-table-column>
+        <el-table-column
+          label="鍙婃椂鎬�(10)"
+          align="center"
+          key="timeliness"
+          prop="timeliness"
+          width="150"
+        >
+          <template slot-scope="scope">
+            <el-input-number
+              v-model="scope.row.timeliness"
+              :min="0"
+              :max="10"
+              :step="1"
+              size="small"
+            />
+          </template>
+        </el-table-column>
+        <el-table-column
+          label="瀹f暀鎯呭喌(10)"
+          align="center"
+          key="library"
+          prop="library"
+          width="150"
+        >
+          <template slot-scope="scope">
+            <el-input-number
+              v-model="scope.row.library"
+              :min="0"
+              :max="10"
+              :step="1"
+              size="small"
+            />
+          </template>
+        </el-table-column>
+        <el-table-column
+          label="鐜婊℃剰搴�(10)"
+          align="center"
+          key="environment"
+          prop="environment"
+          width="150"
+        >
+          <template slot-scope="scope">
+            <el-input-number
+              v-model="scope.row.environment"
+              :min="0"
+              :max="10"
+              :step="1"
+              size="small"
+            />
+          </template>
+        </el-table-column>
+        <el-table-column
+          label="鍖荤敓婊℃剰搴�(10)"
+          align="center"
+          key="doctorSatisfaction"
+          prop="doctorSatisfaction"
+          width="150"
+        >
+          <template slot-scope="scope">
+            <el-input-number
+              v-model="scope.row.doctorSatisfaction"
+              :min="0"
+              :max="10"
+              :step="1"
+              size="small"
+            />
+          </template>
+        </el-table-column>
+        <el-table-column
+          label="鎶ゅ+婊℃剰搴�(10)"
+          align="center"
+          key="nurseSatisfaction"
+          prop="nurseSatisfaction"
+          width="150"
+        >
+          <template slot-scope="scope">
+            <el-input-number
+              v-model="scope.row.nurseSatisfaction"
+              :min="0"
+              :max="10"
+              :step="1"
+              size="small"
+            />
+          </template>
+        </el-table-column>
+        <el-table-column
+          label="鎬诲垎"
+          align="center"
+          key="total"
+          prop="total"
+          fixed="right"
+        >
+          <template slot-scope="scope">
+            <span>{{ calculateTotal(scope.row) }}</span>
+          </template>
+        </el-table-column>
+      </el-table>
+
+      <div slot="footer" class="dialog-footer">
+        <el-button @click="scoreDialogVisible = false">鍙栨秷</el-button>
+        <el-button type="primary" @click="saveScores">淇濆瓨</el-button>
+      </div>
+    </el-dialog>
+    <!-- 娣诲姞鎴栦慨鏀瑰奖鍍忛殢璁垮璇濇 -->
+    <el-dialog
+      :title="amendtag ? '淇敼鎮h�呬俊鎭�' : '鏂板鎮h��'"
+      :visible.sync="Labelchange"
+      width="900px"
+    >
+      <el-form ref="form" :model="form" :rules="rules" label-width="100px">
+        <el-row>
+          <el-col :span="8">
+            <el-form-item label="濮撳悕" width="100" prop="name">
+              <el-input
+                v-model="form.name"
+                placeholder="璇疯緭鍏ュ鍚�"
+                maxlength="30"
+              />
+            </el-form-item>
+          </el-col>
+          <el-col :span="8">
+            <el-form-item label="鎬у埆" width="100" prop="sex">
+              <el-select v-model="form.sex" placeholder="璇烽�夋嫨鎬у埆">
+                <el-option
+                  v-for="dict in sextype"
+                  :key="dict.value"
+                  :label="dict.label"
+                  :value="dict.value"
+                ></el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
+          <el-col :span="8">
+            <el-form-item label="骞撮緞" prop="age">
+              <el-input
+                v-model="form.age"
+                placeholder="璇疯緭鍏ュ勾榫�"
+                maxlength="30"
+              />
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-col :span="8">
+            <el-form-item label="杩囨护鍖荤敓" width="100" prop="filterDrname">
+              <el-input
+                v-model="form.filterDrname"
+                placeholder="璇疯緭鍏ュ尰鐢熷鍚�"
+                maxlength="30"
+              />
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-col :span="24">
+            <el-form-item label="杩囨护鍘熷洜">
+              <el-input
+                v-model="form.notrequiredreason"
+                type="textarea"
+                placeholder="璇疯緭鍏ヨ繃婊ゅ師鍥�"
+              ></el-input>
+            </el-form-item>
+          </el-col>
+        </el-row>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitForm">纭� 瀹�</el-button>
+        <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">
+        <el-form-item label="浠诲姟鍚嶇О">
+          <el-input
+            style="width: 400px"
+            disabled
+            v-model="zcform.taskName"
+          ></el-input>
+        </el-form-item>
+        <el-form-item label="鎮h�呭悕绉�">
+          <el-input
+            style="width: 400px"
+            disabled
+            v-model="zcform.sendname"
+          ></el-input>
+        </el-form-item>
+        <el-form-item label="骞撮緞">
+          <el-input
+            style="width: 400px"
+            disabled
+            v-model="zcform.age"
+          ></el-input>
+        </el-form-item>
+        <el-form-item label="绉戝">
+          <el-input
+            style="width: 400px"
+            disabled
+            v-model="zcform.deptname"
+          ></el-input>
+        </el-form-item>
+        <el-form-item label="鐥呭尯">
+          <el-input
+            style="width: 400px"
+            disabled
+            v-model="zcform.leavehospitaldistrictname"
+          ></el-input>
+        </el-form-item>
+
+        <el-form-item label="闅忚鏂瑰紡" prop="resource">
+          <el-radio-group v-model="zcform.resource">
+            <el-radio label="1">鏈梾鍖洪殢璁�</el-radio>
+            <el-radio label="2">闅忚涓績闅忚</el-radio>
+          </el-radio-group>
+        </el-form-item>
+        <!-- <el-form-item label="鍗冲埢鍙戦��">
+          <el-switch v-model="zcform.delivery"></el-switch>
+        </el-form-item> -->
+        <el-form-item label="鍑洪櫌鏃堕棿">
+          <el-input
+            style="width: 400px"
+            disabled
+            v-model="zcform.endtime"
+          ></el-input>
+        </el-form-item>
+        <el-form-item label="闅忚瀹屾垚鏃堕棿" prop="date1">
+          <el-date-picker
+            type="date"
+            placeholder="閫夋嫨鏃ユ湡"
+            v-model="zcform.date1"
+            style="width: 100%"
+          ></el-date-picker>
+        </el-form-item>
+        <el-form-item label="闅忚璁板綍">
+          <el-input type="textarea" v-model="zcform.remark"></el-input>
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button @click="dialogFormVisible = false">鍙� 娑�</el-button>
+        <el-button type="primary" @click="setupsubtask">纭鍒涘缓鏈嶅姟</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import {
+  delUser,
+  addUser,
+  updateUser,
+  resetUserPwd,
+  changeUserStatus,
+} from "@/api/system/user";
+import {
+  getTaskservelist,
+  buidegetTasklist,
+  addserviceSubtask,
+  query360PatInfo,
+  addsatisfaction,
+} from "@/api/AiCentre/index";
+import { alterpatient, particularpatient } from "@/api/patient/homepage";
+import Treeselect from "@riophae/vue-treeselect";
+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 },
+  data() {
+    return {
+      // 閬僵灞�
+      loading: true,
+      // 閫変腑鏁扮粍
+      ids: [],
+      // 闈炲崟涓鐢�
+      single: true,
+      // 闈炲涓鐢�
+      multiple: true,
+      // 鏄剧ず鎼滅储鏉′欢
+      showSearch: true,
+      dialogFormVisible: false,
+      // 鎬绘潯鏁�
+      total: 0,
+      // 鐢ㄦ埛琛ㄦ牸鏁版嵁
+      userList: null,
+      // 寮瑰嚭灞傛爣棰�
+      title: "鏂板褰卞儚闅忚",
+      // 鏄惁鏄剧ず淇敼銆佹坊鍔犲脊鍑哄眰
+      addalteropen: false,
+      // 淇敼鍙戦�佹椂闂村璇濇
+      modificationVisible: false,
+      // 閮ㄩ棬鍚嶇О
+      deptName: undefined,
+      // 榛樿瀵嗙爜
+      initPassword: undefined,
+      // 鏃ユ湡鑼冨洿
+      dateRange: [],
+      dateRangefs: [],
+      // 宀椾綅閫夐」
+      postOptions: [],
+      ruleForm: {
+        type: [],
+      },
+      zcform: {},
+      dynamicTags: ["閫夐」涓�", "閫夐」浜�", "閫夐」涓�"], //閫夐」
+      inputVisible: false,
+      Labelchange: false,
+      ycvalue: "",
+      jgvalue: "",
+      yfsvalue: "",
+      inputValue: "",
+      preachform: "",
+      previewVisible: false, //褰卞儚闅忚棰勮寮规
+      radio: "",
+      radios: [],
+      previewtype: 2, //棰勮褰卞儚闅忚绫诲瀷
+      total: 0, // 鎬绘潯鏁�
+      // 婊℃剰搴﹁皟鏌ユ暟鎹�
+      scoreDialogVisible: false,
+      selectedRows: [],
+
+      value: [],
+      list: [],
+
+      sourcetype: [
+        {
+          value: 1,
+          label: "绉戝",
+          children: [],
+        },
+        {
+          value: 2,
+          label: "鐥呭尯",
+          children: [],
+        },
+        {
+          value: 3,
+          label: "鍏ㄩ儴",
+        },
+      ],
+      loading: false,
+      cardlist: [
+        {
+          name: "鍑洪櫌鏈嶅姟鎬婚噺",
+          value: 0,
+        },
+        // {
+        //   name: "鎮h�呰繃婊�",
+        //   value: 0,
+        // },
+        {
+          name: "闇�闅忚",
+          value: 0,
+        },
+        {
+          name: "鍙戦�佸け璐�",
+          value: 0,
+        },
+        {
+          name: "寰呴殢璁�",
+          value: 0,
+        },
+        // {
+        //   name: "宸插彂閫�",
+        //   value: 0,
+        // },
+
+        // {
+        //   name: "琛ㄥ崟宸插彂閫�",
+        //   value: 0,
+        // },
+      ],
+      zcrules: {
+        date1: [
+          { required: true, message: "璇烽�夋嫨闅忚鏂瑰紡", trigger: "change" },
+        ],
+        resource: [
+          { required: true, message: "璇烽�夋嫨闅忚鏃堕棿", trigger: "blur" },
+        ],
+      },
+      // 琛ㄥ崟鍙傛暟
+      form: {
+        phonenumber: "",
+        totagid: "",
+        types: "",
+        nickName: "",
+        qystatus: "",
+        btstatus: "",
+      },
+      // endOut: 1,
+      endOut: localStorage.getItem("orgname") == "涓芥按甯備腑鍖婚櫌" ? 0 : 1, //0 鍑洪櫌鏃堕棿(姝e簭)    1 鍑洪櫌鏃堕棿(鍊掑簭)   2 鍙戦�佹椂闂�(姝e簭)    3 鍙戦�佹椂闂�(鍊掑簭)  7搴旈殢璁挎棩鏈�(鍊掑簭) 搴旈殢璁挎棩鏈�(姝e簭)
+      endOuts: [
+        {
+          value: 0,
+          label: "鎴鑷冲綋鏃ユ湇鍔�",
+        },
+        {
+          value: 1,
+          label: "鍏ㄩ儴鏈嶅姟",
+        },
+      ],
+      topicoptionssort: [
+        {
+          value: 0,
+          label: "鍑洪櫌鏃堕棿(姝e簭)",
+        },
+        {
+          value: 1,
+          label: "鍑洪櫌鏃堕棿(鍊掑簭)",
+        },
+        {
+          value: 2,
+          label: "鍙戦�佹椂闂�(姝e簭)",
+        },
+        {
+          value: 3,
+          label: "鍙戦�佹椂闂�(鍊掑簭)",
+        },
+        {
+          value: 7,
+          label: "搴旈殢璁挎棩鏈�(姝e簭)",
+        },
+        {
+          value: 8,
+          label: "搴旈殢璁挎棩鏈�(鍊掑簭)",
+        },
+      ],
+      // 鏌ヨ鍙傛暟
+      topqueryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        sort: localStorage.getItem("orgname") == "涓芥按甯備腑鍖婚櫌" ? 8 : 2, //0 鍑洪櫌鏃堕棿(姝e簭)    1 鍑洪櫌鏃堕棿(鍊掑簭)   2 鍙戦�佹椂闂�(姝e簭)    3 鍙戦�佹椂闂�(鍊掑簭)  7搴旈殢璁挎棩鏈�(鍊掑簭) 搴旈殢璁挎棩鏈�(姝e簭)
+        searchscope: 3,
+        continueFlag: 2,
+        visitCount: 1,
+        scopetype: [],
+        leaveldeptcodes: [],
+        leavehospitaldistrictcodes: [],
+      },
+      orgname: "",
+      propss: { multiple: true },
+      options: [],
+
+      topicoptions: [
+        {
+          value: null,
+          label: "鍏ㄩ儴",
+        },
+        {
+          value: 1,
+          label: "琛ㄥ崟宸查鍙�",
+        },
+        {
+          value: 2,
+          label: "寰呴殢璁�",
+        },
+        {
+          value: 3,
+          label: "琛ㄥ崟宸插彂閫�",
+        },
+        {
+          value: 4,
+          label: "涓嶆墽琛�",
+        },
+        {
+          value: 5,
+          label: "鍙戦�佸け璐�",
+        },
+        {
+          value: 6,
+          label: "宸插畬鎴�",
+        },
+      ],
+      sextype: [
+        {
+          value: 1,
+          label: "鐢�",
+        },
+        {
+          value: 2,
+          label: "濂�",
+        },
+      ],
+      topicoptionsyj: [
+        {
+          value: 1,
+          label: "寮傚父",
+        },
+        {
+          value: 2,
+          label: "璀﹀憡",
+        },
+        {
+          value: 0,
+          label: "姝e父",
+        },
+      ],
+      url: "http://9.208.2.190:8090/smartor/serviceExternal/query360PatInfo",
+      postData: {
+        XiaoXiTou: {
+          FaSongFCSJC: "ZJHES",
+          FaSongJGID: localStorage.getItem("orgid"),
+          FaSongJGMC: localStorage.getItem("orgname"),
+          FaSongSJ: "2025-01-09聽17:29:36",
+          FaSongXTJC: "SUIFANGXT",
+          FaSongXTMC: "闅忚绯荤粺",
+          XiaoXiID: "5FA92AFB-9833-4608-87C7-F56A654AC171",
+          XiaoXiLX: "SC_LC_360STCX",
+          XiaoXiMC: "360聽瑙嗗浘鏌ヨ",
+          ZuHuID: localStorage.getItem("ZuHuID"),
+          ZuHuMC: localStorage.getItem("orgname"),
+        },
+        YeWuXX: {
+          BingRenXX: {
+            ZhengJianHM: "",
+            ZhengJianLXDM: "01",
+            ZhengJianLXMC: "灞呮皯韬唤璇�",
+            ZuZhiJGID: localStorage.getItem("orgid"),
+            ZuZhiJGMC: localStorage.getItem("orgname"),
+          },
+          YongHuXX: {
+            XiTongID: "SUIFANGXT",
+            XiTongMC: "闅忚绯荤粺",
+            YongHuID: localStorage.getItem("YongHuID"),
+            YongHuXM: localStorage.getItem("YongHuXM"),
+            ZuZhiJGID: localStorage.getItem("orgid"),
+            ZuZhiJGMC: localStorage.getItem("orgname"),
+            idp: "lyra",
+          },
+        },
+      },
+      amendtag: false,
+      errtype: "",
+      leavehospitaldistrictcode: "",
+      serviceState: [],
+      checkboxlist: [],
+      // 琛ㄥ崟鏍¢獙
+      rules: {},
+    };
+  },
+  watch: {},
+  created() {
+    this.serviceState = store.getters.serviceState;
+    this.checkboxlist = store.getters.checkboxlist;
+    this.errtype = this.$route.query.errtype;
+    this.orgname = localStorage.getItem("orgname");
+    this.leavehospitaldistrictcode =
+      this.$route.query.leavehospitaldistrictcode;
+    this.sourcetype[0].children = store.getters.belongDepts.map((dept) => {
+      return {
+        label: dept.deptName,
+        value: dept.deptCode,
+      };
+    });
+    this.sourcetype[1].children = store.getters.belongWards.map((dept) => {
+      return {
+        label: dept.districtName,
+        value: dept.districtCode,
+      };
+    });
+    if (this.errtype) {
+      this.toleadExport(2);
+    } else {
+      this.getList(1);
+    }
+    this.getConfigKey("sys.user.initPassword").then((response) => {
+      this.initPassword = response.msg;
+    });
+  },
+  activated() {
+    this.getList(1);
+  },
+  methods: {
+    /** 鏌ヨ闅忚鏈嶅姟鍒楄〃 */
+    getList(refresh) {
+      // 榛樿鍏ㄩ儴
+      if (this.topqueryParams.searchscope == 3) {
+        this.topqueryParams.leaveldeptcodes = store.getters.belongDepts.map(
+          (obj) => obj.deptCode
+        );
+        this.topqueryParams.leavehospitaldistrictcodes =
+          store.getters.belongWards.map((obj) => obj.districtCode);
+      }
+      if (this.endOut == 0) {
+        this.topqueryParams.endSendDateTime = this.formatDateToYYYYMMDDHHMMSS(
+          this.getEndOfDay()
+        );
+      } else {
+        // this.topqueryParams.endSendDateTime = null;
+      }
+      // 鎺ュ彈寮傚父璺宠浆
+      if (this.errtype) {
+        this.topqueryParams.leavehospitaldistrictcodes.push(
+          this.leavehospitaldistrictcode
+        );
+        console.log(this.topqueryParams.leavehospitaldistrictcodes, "11");
+      }
+      this.loading = true;
+      if (
+        this.topqueryParams.leavehospitaldistrictcodes[0] &&
+        this.topqueryParams.leaveldeptcodes[0]
+      ) {
+        this.topqueryParams.deptOrDistrict = 2;
+      } else {
+        this.topqueryParams.deptOrDistrict = 1;
+      }
+      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);
+          // this.cardlist[1].value = response.rows[0].wzx;
+          this.cardlist[1].value = response.rows[0].ysf;
+          this.ycvalue = response.rows[0].yc;
+          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.yfsvalue = response.rows[0].yfs;
+        }
+        this.loading = false;
+        this.userList.forEach((item) => {
+          let idArray = null;
+          if (item.endtime) {
+            item.endDay = this.daysBetween(item.endtime);
+          }
+
+          if (item.preachform) {
+            if (item.endtime) {
+              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;
+            });
+          }
+        });
+        this.total = response.total;
+      });
+    },
+    // 鏃堕棿
+    getEndOfDay() {
+      const date = new Date(); // 鍒涘缓涓�涓〃绀哄綋鍓嶆椂闂寸殑Date瀵硅薄
+      date.setHours(23, 59, 59, 0); // 灏嗘椂闂磋缃负23:59:59.000
+      return date;
+    },
+    formatDateToYYYYMMDDHHMMSS(date) {
+      const year = date.getFullYear();
+      const month = String(date.getMonth() + 1).padStart(2, "0"); // 鏈堜唤琛ラ浂
+      const day = String(date.getDate()).padStart(2, "0"); // 鏃ユ湡琛ラ浂
+      const hours = String(date.getHours()).padStart(2, "0");
+      const minutes = String(date.getMinutes()).padStart(2, "0");
+      const seconds = String(date.getSeconds()).padStart(2, "0");
+
+      return `${year}-${month}-${day}`;
+    },
+    affiliation() {
+      this.topqueryParams.managementDoctorCode = store.getters.hisUserId;
+      this.getList(1);
+    },
+    onthatday() {
+      this.topqueryParams.startSendDateTime = this.getCurrentDate();
+      this.topqueryParams.endSendDateTime = this.getCurrentDate();
+      this.getList(1);
+    },
+    getCurrentDate() {
+      const now = new Date();
+      return now.toISOString().slice(0, 10); // 鎴彇鍓�10涓瓧绗︼紝鍗� YYYY-MM-DD
+    },
+    buidegetTasklist(type) {
+      if (this.topqueryParams.searchscope == 3) {
+        this.topqueryParams.leaveldeptcodes = store.getters.belongDepts.map(
+          (obj) => obj.deptCode
+        );
+        this.topqueryParams.leavehospitaldistrictcodes =
+          store.getters.belongWards.map((obj) => obj.districtCode);
+      }
+      // 鎺ュ彈寮傚父璺宠浆
+      if (this.errtype) {
+        this.topqueryParams.leavehospitaldistrictcodes.push(
+          this.leavehospitaldistrictcode
+        );
+      }
+      let obj = {
+        pageNum: 1,
+        pageSize: 10,
+        leavehospitaldistrictcodes:
+          this.topqueryParams.leavehospitaldistrictcodes,
+        sendstates: [2, 3],
+        leaveldeptcodes: this.topqueryParams.leaveldeptcodes,
+      };
+      buidegetTasklist(obj).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);
+          this.cardlist[1].value = response.rows[0].wzx;
+          this.cardlist[2].value = response.rows[0].ysf;
+          this.ycvalue = response.rows[0].yc;
+          this.jgvalue = response.rows[0].jg;
+          this.cardlist[3].value = response.rows[0].fssb;
+          this.cardlist[4].value = response.rows[0].dsf;
+          // this.cardlist[5].value = response.rows[0].yfs2;
+          this.yfsvalue = response.rows[0].yfs;
+        }
+        this.loading = false;
+        this.userList.forEach((item) => {
+          let idArray = null;
+          if (item.endtime) {
+            item.endDay = this.daysBetween(item.endtime);
+          }
+
+          if (item.preachform) {
+            if (item.endtime) {
+              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;
+            });
+          }
+        });
+        this.total = response.total;
+      });
+    },
+    // 鏌ョ湅闂ㄨ瘖闅忚璇︽儏
+    Referencequestion(row) {
+      this.previewVisible = true;
+    },
+    // 娣诲姞寮规鎼滅储
+    remoteMethod(query) {
+      if (query !== "") {
+        this.loading = true;
+        setTimeout(() => {
+          this.loading = false;
+          this.options = this.list.filter((item) => {
+            return item.label.toLowerCase().indexOf(query.toLowerCase()) > -1;
+          });
+        }, 200);
+      } else {
+        this.options = [];
+      }
+    },
+    // 褰卞儚闅忚鐘舵�佷慨鏀�
+    handleStatusChange(row) {
+      let text = row.status === "0" ? "鍚敤" : "鍋滅敤";
+      this.$modal
+        .confirm('纭瑕�"' + text + '""' + row.userName + '"鐢ㄦ埛鍚楋紵')
+        .then(function () {
+          return changeUserStatus(row.userId, row.status);
+        })
+        .then(() => {
+          this.$modal.msgSuccess(text + "鎴愬姛");
+        })
+        .catch(function () {
+          row.status = row.status === "0" ? "1" : "0";
+        });
+    },
+
+    // 琛ㄥ崟閲嶇疆
+    reset() {
+      this.form = {
+        userId: undefined,
+        deptId: undefined,
+        userName: undefined,
+        nickName: undefined,
+        password: undefined,
+        phonenumber: undefined,
+        email: undefined,
+        sex: undefined,
+        status: "0",
+        remark: undefined,
+        postIds: [],
+        roleIds: [],
+      };
+      this.resetForm("form");
+    },
+    /** 鎼滅储鎸夐挳鎿嶄綔 */
+    handleQuery(refresh) {
+      if (this.topqueryParams.searchscope == 3) {
+        this.topqueryParams.leaveldeptcodes = store.getters.belongDepts.map(
+          (obj) => obj.deptCode
+        );
+        this.topqueryParams.leavehospitaldistrictcodes =
+          store.getters.belongWards.map((obj) => obj.districtCode);
+      }
+      this.topqueryParams.pageNum = 1;
+      this.topqueryParams.startOutHospTime = this.dateRange[0];
+      this.topqueryParams.endOutHospTime = this.dateRange[1];
+      this.topqueryParams.startSendDateTime = this.dateRangefs[0];
+      this.topqueryParams.endSendDateTime = this.dateRangefs[1];
+      this.getList(refresh);
+    },
+    // 鎮h�呰寖鍥村鐞�
+    handleChange(value) {
+      let type = value[0];
+      let code = value.slice(-1)[0];
+      this.topqueryParams.leavehospitaldistrictcodes = [];
+      this.topqueryParams.leaveldeptcodes = [];
+      if (type == 1) {
+        this.topqueryParams.leaveldeptcodes.push(code);
+        this.topqueryParams.leavehospitaldistrictcodes = [];
+        this.topqueryParams.searchscope = 1;
+      } else if (type == 2) {
+        this.topqueryParams.leavehospitaldistrictcodes.push(code);
+        this.topqueryParams.leaveldeptcodes = [];
+        this.topqueryParams.searchscope = 2;
+      } else {
+        this.topqueryParams.searchscope = 3;
+      }
+    },
+    /** 閲嶇疆鎸夐挳鎿嶄綔 */
+    resetQuery() {
+      this.dateRange = [];
+      this.dateRangefs = [];
+      this.topqueryParams = {
+        pageNum: 1,
+        pageSize: 10,
+        sort: 2, //0 鍑洪櫌鏃堕棿(姝e簭)    1 鍑洪櫌鏃堕棿(鍊掑簭)   2 鍙戦�佹椂闂�(姝e簭)    3 鍙戦�佹椂闂�(鍊掑簭)
+        searchscope: 3,
+        continueFlag: 2,
+        visitCount: 1,
+        scopetype: [],
+        leaveldeptcodes: [],
+        leavehospitaldistrictcodes: [],
+      };
+      this.handleQuery(1);
+    },
+    handleSelectionChange(rows) {
+      this.selectedRows = rows.map((row) => {
+        // 鍒濆鍖栬瘎鍒嗗瓧娈�
+        return {
+          ...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,
+        };
+      });
+
+      if (this.selectedRows.length > 0) {
+        this.multiple = false;
+      } else {
+        this.multiple = true;
+      }
+    },
+
+    // 璁$畻鎬诲垎
+    calculateTotal(row) {
+      return (
+        (row.authenticity || 0) +
+        (row.weekFinish || 0) +
+        (row.standard || 0) +
+        (row.timeliness || 0) +
+        (row.library || 0) +
+        (row.environment || 0) +
+        (row.doctorSatisfaction || 0) +
+        (row.nurseSatisfaction || 0)
+      );
+    },
+
+    // 淇濆瓨璇勫垎
+    saveScores() {
+      this.selectedRows.forEach((item) => {
+        item.createBy = null;
+        item.patName = item.sendname;
+        item.hospitaldistrictname = item.leavehospitaldistrictname;
+      });
+      addsatisfaction(this.selectedRows).then((res) => {
+        if (res.code == 200) {
+          this.$message.success("璇勫垎淇濆瓨鎴愬姛");
+          this.scoreDialogVisible = false;
+          this.selectedRows = [];
+          this.$refs.userform.clearSelection();
+        } else {
+          this.$modal.msgWarning("璇勫垎淇濆瓨澶辫触");
+          this.scoreDialogVisible = false;
+          this.selectedRows = [];
+          this.$refs.userform.clearSelection();
+        }
+      });
+      // 杩欓噷鍙互娣诲姞淇濆瓨閫昏緫锛屽璋冪敤API淇濆瓨璇勫垎
+    },
+    //鍒犻櫎閫夐」
+    handleClose(tag) {
+      this.dynamicTags.splice(this.dynamicTags.indexOf(tag), 1);
+    },
+    //瑙﹀彂鏂板杈撳叆
+    showInput() {
+      this.inputVisible = true;
+      this.$nextTick((_) => {
+        this.$refs.saveTagInput.$refs.input.focus();
+      });
+    },
+    //鑾峰彇澶卞幓鐒︾偣瑙﹀彂
+    handleInputConfirm() {
+      let inputValue = this.inputValue;
+      if (inputValue) {
+        this.dynamicTags.push(inputValue);
+      }
+      this.inputVisible = false;
+      this.inputValue = "";
+    },
+    /** 鏂板鎸夐挳鎿嶄綔 */
+    handleAdd() {
+      this.$router.push({
+        path: "/followvisit/QuestionnaireTask",
+        query: {
+          type: 2,
+          serviceType: 2,
+        },
+      });
+    },
+    //鎮h��360璺宠浆
+    gettoken360(sfzh, drcode, drname) {
+      // this.$modal.msgWarning("360鍔熻兘鏆傛湭寮�閫�");
+
+      this.postData.YeWuXX.BingRenXX.ZhengJianHM = sfzh;
+
+      query360PatInfo(this.postData).then((res) => {
+        if (res.data.url) {
+          window.open(res.data.url, "_blank");
+          // this.linkUrl = res.data.url;
+        } else {
+          this.$modal.msgWarning("360鏌ヨ鏃犵粨鏋�");
+        }
+      });
+    },
+
+    /** 閲嶇疆瀵嗙爜鎸夐挳鎿嶄綔 */
+    handleResetPwd(row) {
+      this.$prompt('璇疯緭鍏�"' + row.userName + '"鐨勬柊瀵嗙爜', "鎻愮ず", {
+        confirmButtonText: "纭畾",
+        cancelButtonText: "鍙栨秷",
+        closeOnClickModal: false,
+        inputPattern: /^.{5,20}$/,
+        inputErrorMessage: "鐢ㄦ埛瀵嗙爜闀垮害蹇呴』浠嬩簬 5 鍜� 20 涔嬮棿",
+      })
+        .then(({ value }) => {
+          resetUserPwd(row.userId, value).then((response) => {
+            this.$modal.msgSuccess("淇敼鎴愬姛锛屾柊瀵嗙爜鏄細" + value);
+          });
+        })
+        .catch(() => {});
+    },
+    // 鍙栨秷鎸夐挳
+    cancel() {
+      this.Labelchange = false;
+      this.reset();
+    },
+    /** 鎻愪氦鎸夐挳 */
+    submitForm: function () {
+      this.$refs["form"].validate((valid) => {
+        if (valid) {
+          this.form.isoperation = 2;
+          this.form.notrequiredFlag = 1;
+          alterpatient(this.form)
+            .then((response) => {
+              console.log(response);
+            })
+            .then(() => {
+              this.getList(1);
+              this.$modal.msgSuccess("鎮h�呰繃婊ゆ垚鍔�");
+            });
+
+          this.reset();
+          this.Labelchange = false;
+        }
+      });
+    },
+    /** 鍒犻櫎鎸夐挳鎿嶄綔 */
+    handleDelete(row) {
+      const userIds = row.userId || this.ids;
+      this.$modal
+        .confirm('鏄惁纭鍒犻櫎鐢ㄦ埛缂栧彿涓�"' + userIds + '"鐨勬暟鎹」锛�')
+        .then(function () {
+          return delUser(userIds);
+        })
+        .then(() => {
+          this.getList(1);
+          this.$modal.msgSuccess("鍒犻櫎鎴愬姛");
+        })
+        .catch(() => {});
+    },
+    // 鍏ㄩ儴鍋滄
+    AllStop() {
+      this.$modal
+        .confirm("鏄惁鍋滄鍏ㄩ儴浠诲姟锛�")
+        .then(function () {
+          return console.log("鍋滄鎴愬姛");
+        })
+        .then(() => {
+          this.getList(1);
+          this.$modal.msgWarning("鍋滄鎴愬姛");
+        })
+        .catch(() => {});
+    },
+    // 鍏ㄩ儴寮�濮�
+    AllStarted() {
+      this.$modal
+        .confirm("鏄惁寮�鍚叏閮ㄤ换鍔★紵")
+        .then(function () {
+          return console.log("寮�鍚垚鍔�");
+        })
+        .then(() => {
+          this.getList(1);
+          this.$modal.msgSuccess("寮�鍚垚鍔�");
+        })
+        .catch(() => {});
+    },
+    // 浠诲姟閲嶇疆
+    TaskReset() {
+      this.$modal
+        .confirm("鏄惁閲嶇疆閫変腑鐨勪换鍔¢」锛�")
+        .then(function () {
+          return console.log("閫変腑鎴愬姛");
+        })
+        .then(() => {
+          this.getList(1);
+          this.$modal.msgSuccess("閲嶇疆鎴愬姛");
+        })
+        .catch(() => {});
+    },
+    // 璁剧疆鍙戦�佹椂闂�
+    Sendtimesetting() {
+      this.modificationVisible = true;
+    },
+    // 璺宠浆璇︽儏椤�
+    Seedetails(row) {
+      let type = "";
+      console.log(row, "rwo");
+      if (row.type == 1) {
+        type = 1;
+      }
+      this.$router.push({
+        path: "/followvisit/ContinueFordetails/",
+        query: {
+          taskid: row.taskid,
+          patid: row.patid,
+          id: row.id,
+          Voicetype: type,
+          visitCount: this.topqueryParams.visitCount,
+        },
+      });
+    },
+    // 鍐嶆闅忚
+    followupvisit(row) {
+      this.zcform = row;
+      this.zcform.endtime = this.formatTime(this.zcform.endtime);
+      this.dialogFormVisible = true;
+    },
+    onSubmit() {},
+    // 鏆傚仠鏈嶅姟
+    handlestop(row) {
+      let objson = row;
+      this.$modal
+        .confirm(
+          '鏄惁纭鏆傚仠浠诲姟鍚嶇О涓�"' +
+            row.taskName +
+            '鎮h�呭悕绉颁负"' +
+            row.sendname +
+            '"鐨勬暟鎹」锛�'
+        )
+        .then(() => {
+          getTaskservelist({
+            patid: row.patid,
+            taskid: row.taskid,
+          }).then((res) => {
+            if (res.code == 200) {
+              objson.sendstate = 4;
+              objson.remark = "鏈嶅姟鏆傚仠";
+              Editsingletaskson(objson).then((res) => {
+                if (res.code) {
+                  this.$modal.msgSuccess("璁板綍鎴愬姛");
+                  this.getList(1);
+                }
+              });
+            }
+          });
+        })
+        .catch(() => {});
+    },
+    // 鎮h�呰繃婊よЕ鍙�
+    handleUpdate(row) {
+      particularpatient(row.patid).then((response) => {
+        this.form = response.data;
+        this.form.filterDrname = store.getters.nickName;
+      });
+      this.amendtag = true;
+      this.Labelchange = true;
+    },
+    // 渚挎嵎鎸夐挳
+    toleadExport(too) {
+      if (too == 1) {
+        this.topqueryParams.sendstate = 4;
+        this.topqueryParams.excep = null;
+      } else if (too == 2) {
+        this.topqueryParams.excep = 1;
+      }
+      this.handleQuery();
+    },
+    /** 瀵煎嚭鎸夐挳鎿嶄綔 */
+    handleExport() {
+      this.topqueryParams.pageNum = null;
+      this.topqueryParams.pageSize = null;
+      this.download(
+        "smartor/serviceSubtask/patItemExport",
+        {
+          ...this.topqueryParams,
+        },
+        `user_${new Date().getTime()}.xlsx`
+      );
+    },
+    // 寮傚父鍒楁覆鏌�
+    tableRowClassName({ row, rowIndex }) {
+      if (row.excep == 1) {
+        return "warning-row";
+      } else if (row.excep == 2) {
+        return "remind-row";
+      }
+      return "";
+    },
+    // 鍒涘缓鍐嶆闅忚鏈嶅姟
+    setupsubtask() {
+      this.$refs["zcform"].validate((valid) => {
+        if (valid) {
+          this.zcform.remark =
+            this.zcform.remark + "銆�" + this.getCurrentTime() + "銆�";
+          let form = structuredClone(this.zcform);
+          form.longSendTime = this.formatTime(form.date1);
+          form.finishtime = "";
+          if (form.resource) {
+            if (form.resource == 2) {
+              form.serviceType = 13;
+            }
+          } else {
+            this.$modal.msgError("鏈�夋嫨闅忚鏂瑰紡");
+          }
+          form.id = null;
+          form.sendstate = 2;
+          form.preachform = form.preachformson;
+          form.longTask = 0;
+          addserviceSubtask(form).then((res) => {
+            if (res.code == 200) {
+              this.$modal.msgSuccess("鍒涘缓鎴愬姛");
+            } else {
+              this.$modal.msgError("鍒涘缓澶辫触");
+            }
+            this.dialogFormVisible = false;
+          });
+        }
+      });
+    },
+    getCurrentTime() {
+      const now = new Date();
+      const year = now.getFullYear();
+      const month = String(now.getMonth() + 1).padStart(2, "0");
+      const day = String(now.getDate()).padStart(2, "0");
+      const hours = String(now.getHours()).padStart(2, "0");
+      const minutes = String(now.getMinutes()).padStart(2, "0");
+      const seconds = String(now.getSeconds()).padStart(2, "0");
+
+      return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
+    },
+  },
+};
+</script>
+
+<style lang="scss" scoped>
+.el-button--primary.is-plain {
+  color: #ffffff;
+  background: #409eff;
+  border-color: #4fabe9;
+}
+
+.document {
+  // width: 100px;
+  height: 50px;
+}
+::v-deep.el-table .warning-row {
+  background: #eec4c4;
+}
+::v-deep.el-table .remind-row {
+  background: #fcf5aa;
+}
+
+.documentf {
+  display: flex;
+  justify-content: flex-end;
+}
+
+.download {
+  text-align: center;
+
+  .el-upload__tip {
+    font-size: 23px;
+  }
+
+  .el-upload__text {
+    font-size: 23px;
+  }
+}
+
+.uploading {
+  margin-top: 20px;
+  margin: 20px;
+  padding: 30px;
+  background: #ffffff;
+  border: 1px solid #dcdfe6;
+  -webkit-box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.12),
+    0 0 6px 0 rgba(0, 0, 0, 0.04);
+}
+
+.el-tag + .el-tag {
+  margin-left: 10px;
+}
+
+.button-new-tag {
+  margin-left: 10px;
+  height: 32px;
+  line-height: 30px;
+  padding-top: 0;
+  padding-bottom: 0;
+}
+
+.input-new-tag {
+  width: 90px;
+  margin-left: 10px;
+  vertical-align: bottom;
+}
+
+.drexamine {
+  display: flex;
+  align-items: center;
+  justify-content: center;
+  padding: 30px;
+  background: #daeaf5;
+
+  img {
+    width: 100px;
+    height: 100px;
+  }
+}
+
+.qrcode-dialo {
+  // text-align: center;
+  //   display: flex;
+  margin: 20px;
+  padding: 30px;
+  background: #edf1f7;
+  border: 1px solid #dcdfe6;
+  -webkit-box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.12),
+    0 0 6px 0 rgba(0, 0, 0, 0.04);
+
+  .topic-dev {
+    margin-bottom: 25px;
+    font-size: 20px !important;
+
+    .dev-text {
+      margin-bottom: 10px;
+    }
+  }
+}
+::v-deep.leftvlue .el-card__body {
+  background: #f2f8ff;
+  color: #324a9b;
+}
+::v-deep.leftvlue .el-card__body:hover {
+  background: #3664d9;
+  color: #fff;
+  cursor: pointer; /* 榧犳爣鎮诞鏃跺彉涓烘墜褰� */
+}
+::v-deep.errleftvlue .el-card__body {
+  background: #fdd0d7;
+}
+::v-deep.errleftvlue .el-card__body:hover {
+  background: #f88d96;
+  cursor: pointer; /* 榧犳爣鎮诞鏃跺彉涓烘墜褰� */
+}
+::v-deep.jgleftvlue .el-card__body:hover {
+  background: #f7f075;
+  cursor: pointer; /* 榧犳爣鎮诞鏃跺彉涓烘墜褰� */
+}
+
+::v-deep.ysfleftvlue .el-card__body {
+  background: #d0fdd8;
+}
+::v-deep.ysfleftvlue .el-card__body:hover {
+  background: #0abc54;
+  cursor: pointer; /* 榧犳爣鎮诞鏃跺彉涓烘墜褰� */
+}
+.button-bb {
+  font-weight: 500;
+  background-color: #2ba05c;
+  padding: 5px;
+  border-radius: 1px;
+  color: #ffffff;
+}
+.button-xq {
+  font-weight: 500;
+  background-color: #409eff;
+  padding: 5px;
+  border-radius: 1px;
+  color: #ffffff;
+}
+.button-sc {
+  font-weight: 500;
+  background-color: #b3a21f;
+  padding: 5px;
+  border-radius: 1px;
+  color: #ffffff;
+}
+.button-zx {
+  background: #324a9b;
+  padding: 5px;
+  border-radius: 1px;
+  color: #ffffff;
+}
+
+::v-deep.el-radio-group {
+  span {
+    font-size: 24px;
+  }
+}
+.purple-button {
+  background-color: #7e22ce;
+  border-color: #7e22ce;
+  color: #fff;
+}
+
+.purple-button:hover,
+.purple-button:focus {
+  background-color: #9333ea;
+  border-color: #9333ea;
+}
+
+.purple-button:active {
+  background-color: #6b21a8;
+  border-color: #6b21a8;
+}
+.button-textxga {
+  color: #de7897;
+}
+.purple-button.is-disabled {
+  background-color: #d8b4fe;
+  border-color: #d8b4fe;
+  opacity: 1; /* 淇濇寔绂佺敤鐘舵�侀�忔槑搴� */
+}
+// 閫夐」瀛椾綋鏀惧ぇ
+// ::v-deep.el-checkbox-group {
+//   span {
+//     font-size: 24px;
+//   }
+// }
+</style>
diff --git a/src/views/followvisit/discharge/index.vue b/src/views/followvisit/discharge/index.vue
index 7a274c7..593b275 100644
--- a/src/views/followvisit/discharge/index.vue
+++ b/src/views/followvisit/discharge/index.vue
@@ -60,6 +60,25 @@
             </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>
     <el-row :gutter="20">
@@ -274,7 +293,7 @@
             </div>
           </div>
         </el-col>
-        <el-col :span="1.5">
+        <el-col :span="1.5" v-if="orgname == '鏅畞鐣叉棌鑷不鍘夸汉姘戝尰闄�'">
           <div class="documentf">
             <div class="document">
               <el-tooltip
@@ -1107,6 +1126,7 @@
       inputVisible: false,
       Labelchange: false,
       ycvalue: "",
+      jgvalue: "",
       yfsvalue: "",
       inputValue: "",
       preachform: "",
@@ -1287,7 +1307,7 @@
           value: 1,
           label: "寮傚父",
         },
-         {
+        {
           value: 2,
           label: "璀﹀憡",
         },
@@ -1414,6 +1434,7 @@
           // this.cardlist[1].value = response.rows[0].wzx;
           this.cardlist[1].value = response.rows[0].ysf;
           this.ycvalue = response.rows[0].yc;
+          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;
@@ -1499,17 +1520,16 @@
       buidegetTasklist(obj).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);
-          this.cardlist[1].value = response.rows[0].wzx;
-          this.cardlist[2].value = response.rows[0].ysf;
-          this.ycvalue = response.rows[0].yc;
-          this.cardlist[3].value = response.rows[0].fssb;
-          this.cardlist[4].value = response.rows[0].dsf;
-          // this.cardlist[5].value = response.rows[0].yfs2;
-          this.yfsvalue = response.rows[0].yfs;
-        }
+        this.cardlist[0].value =
+          Number(response.rows[0].wzx) + Number(response.rows[0].ysf);
+        this.cardlist[1].value = response.rows[0].wzx;
+        this.cardlist[2].value = response.rows[0].ysf;
+        this.ycvalue = response.rows[0].yc;
+        this.jgvalue = response.rows[0].jg;
+        this.cardlist[3].value = response.rows[0].fssb;
+        this.cardlist[4].value = response.rows[0].dsf;
+        // this.cardlist[5].value = response.rows[0].yfs2;
+        this.yfsvalue = response.rows[0].yfs;
         this.loading = false;
         this.userList.forEach((item) => {
           let idArray = null;
@@ -1847,9 +1867,9 @@
     Seedetails(row) {
       let type = "";
       console.log(row, "rwo");
-        if (row.type == 1) {
-          type = 1;
-        }
+      if (row.type == 1) {
+        type = 1;
+      }
       this.$router.push({
         path: "/followvisit/record/detailpage/",
         query: {
@@ -1915,7 +1935,7 @@
       } else if (too == 2) {
         this.topqueryParams.excep = 1;
       }
-      this.handleQuery();
+      this.handleQuery(1);
     },
     /** 瀵煎嚭鎸夐挳鎿嶄綔 */
     handleExport() {
@@ -2095,6 +2115,10 @@
   background: #f88d96;
   cursor: pointer; /* 榧犳爣鎮诞鏃跺彉涓烘墜褰� */
 }
+::v-deep.jgleftvlue .el-card__body:hover {
+  background: #f7f075;
+  cursor: pointer; /* 榧犳爣鎮诞鏃跺彉涓烘墜褰� */
+}
 
 ::v-deep.ysfleftvlue .el-card__body {
   background: #d0fdd8;
diff --git a/src/views/followvisit/record/detailpage/index.vue b/src/views/followvisit/record/detailpage/index.vue
index 933b61d..d30067d 100644
--- a/src/views/followvisit/record/detailpage/index.vue
+++ b/src/views/followvisit/record/detailpage/index.vue
@@ -549,76 +549,96 @@
       <!-- 浜哄伐澶勭悊 -->
       <div class="manual-action">
         <div class="Followuserinfos">
-          <div>
+          <!-- 椤堕儴鎿嶄綔鍖哄煙 -->
+          <div class="section-header">
+            <h3><i class="el-icon-s-operation"></i> 浜哄伐澶勭悊</h3>
+            <div class="header-actions">
+              <!-- 鍩虹鎿嶄綔鎸夐挳缁� -->
+              <div class="action-group basic-actions">
+                <el-button
+                  type="primary"
+                  plain
+                  @click="Editsingletasksonyic('')"
+                >
+                  淇濆瓨鍩虹淇℃伅
+                </el-button>
+
+                <!-- 鏂板锛氬欢缁姢鐞嗘寜閽� -->
+                <el-button
+                  type="success"
+                  plain
+                  @click="handleContinuationCare"
+                  v-if="showContinuationCareBtn"
+                >
+                  寤剁画鎶ょ悊
+                </el-button>
+
+                <el-button
+                  type="primary"
+                  round
+                  @click="sendAgain"
+                  v-if="form.isVisitAgain != 2"
+                >
+                  鍐嶆闅忚
+                </el-button>
+              </div>
+
+              <!-- 寮傚父鐘舵�侀�夋嫨鍣� -->
+              <div class="action-group tag-selector">
+                <el-select
+                  v-model="selectedTag"
+                  placeholder="璇烽�夋嫨寮傚父鐘舵��"
+                  clearable
+                  style="width: 150px; margin-right: 10px"
+                >
+                  <el-option
+                    v-for="item in tagOptions"
+                    :key="item.value"
+                    :label="item.label"
+                    :value="item.value"
+                  >
+                    <span style="display: flex; align-items: center">
+                      <span
+                        class="color-indicator"
+                        :style="{ backgroundColor: item.color }"
+                      ></span>
+                      <span>{{ item.label }}</span>
+                    </span>
+                  </el-option>
+                </el-select>
+
+                <!-- 褰撳墠閫夋嫨鐨勯鑹叉寚绀哄櫒 -->
+                <div
+                  v-if="selectedTag"
+                  class="color-indicator selected-indicator"
+                  :style="{ backgroundColor: getSelectedTagColor() }"
+                ></div>
+
+                <!-- 鏍囪璇存槑鎻愮ず -->
+                <el-tooltip
+                  v-if="selectedTag"
+                  effect="light"
+                  :content="getSelectedDescription()"
+                  placement="top"
+                >
+                  <i class="el-icon-info tag-info-icon"></i>
+                </el-tooltip>
+              </div>
+            </div>
+          </div>
+
+          <!-- 琛ㄥ崟鍖哄煙 -->
+          <div class="form-content">
             <el-form
               ref="userform"
               :model="form"
               :rules="userrules"
-              label-width="120px"
+              label-width="100px"
             >
-              <div class="headline">
-                <div>浜哄伐澶勭悊</div>
-                <div style="margin: 0 30px">
-                  <el-button
-                    type="primary"
-                    plain
-                    @click="Editsingletasksonyic('')"
-                    >淇濆瓨鍩虹淇℃伅</el-button
-                  >
-                </div>
-                <div>
-                  <el-button
-                    type="primary"
-                    round
-                    v-if="this.form.isVisitAgain != 2"
-                    @click="sendAgain()"
-                    >鍐嶆闅忚</el-button
-                  >
-                </div>
-                <div class="tag-selector-container">
-                  <el-select
-                    v-model="selectedTag"
-                    placeholder="璇烽�夋嫨寮傚父鐘舵��"
-                    clearable
-                    style="width: 150px; margin-right: 10px"
-                  >
-                    <el-option
-                      v-for="item in tagOptions"
-                      :key="item.value"
-                      :label="item.label"
-                      :value="item.value"
-                    >
-                      <span style="display: flex; align-items: center">
-                        <span
-                          class="color-indicator"
-                          :style="{ backgroundColor: item.color }"
-                        ></span>
-                        <span>{{ item.label }}</span>
-                      </span>
-                    </el-option>
-                  </el-select>
-
-                  <!-- 褰撳墠閫夋嫨鐨勯鑹叉寚绀哄櫒 -->
-                  <div
-                    v-if="selectedTag"
-                    class="color-indicator selected-indicator"
-                    :style="{ backgroundColor: getSelectedTagColor() }"
-                  ></div>
-
-                  <!-- 鏍囪璇存槑鎻愮ず -->
-                  <el-tooltip
-                    v-if="selectedTag"
-                    effect="light"
-                    :content="getSelectedDescription()"
-                    placement="top"
-                  >
-                    <i class="el-icon-info tag-info-icon"></i>
-                  </el-tooltip>
-                </div>
-              </div>
+              <!-- 鑱旂郴淇℃伅琛� -->
               <el-row>
-                <el-col :span="14"
-                  ><el-form-item label="鑱旂郴鐢佃瘽">
+                <el-col :span="14">
+                  <el-form-item label="鑱旂郴鐢佃瘽">
                     <el-input
                       placeholder="鑱旂郴鐢佃瘽缂哄け"
                       v-model="userform.telcode"
@@ -629,12 +649,15 @@
                         @click="handleCall(userform.telcode, 'tel')"
                         :disabled="!isValidPhone(userform.telcode)"
                       ></el-button>
-                    </el-input> </el-form-item
-                ></el-col>
+                    </el-input>
+                  </el-form-item>
+                </el-col>
               </el-row>
+
+              <!-- 鑱旂郴浜轰俊鎭 -->
               <el-row>
-                <el-col :span="14"
-                  ><el-form-item label="鑱旂郴浜虹數璇�">
+                <el-col :span="14">
+                  <el-form-item label="鑱旂郴浜虹數璇�">
                     <el-input
                       placeholder="鑱旂郴浜虹數璇濈己澶�"
                       v-model="userform.relativetelcode"
@@ -646,17 +669,21 @@
                           handleCall(userform.relativetelcode, 'relative')
                         "
                         :disabled="!isValidPhone(userform.relativetelcode)"
-                      ></el-button
-                    ></el-input> </el-form-item
-                ></el-col>
-                <el-col :span="10"
-                  ><el-form-item label="鑱旂郴浜哄叧绯�">
+                      ></el-button>
+                    </el-input>
+                  </el-form-item>
+                </el-col>
+                <el-col :span="9">
+                  <el-form-item label="鍏崇郴">
                     <el-input
                       placeholder="鑱旂郴浜哄叧绯荤己澶�"
                       v-model="userform.relation"
-                    ></el-input> </el-form-item
-                ></el-col>
+                    ></el-input>
+                  </el-form-item>
+                </el-col>
               </el-row>
+
+              <!-- 閫氳瘽鎺у埗鍖哄煙 -->
               <div class="call-controls">
                 <CallButton
                   ref="callButton"
@@ -708,13 +735,15 @@
                   />
                 </div>
               </div>
-              <el-form-item label="闅忚鍐呭" v-if="orgname == '涓芥按甯備腑鍖婚櫌'">
-                <el-input type="textarea" v-model="form.remark"></el-input>
-              </el-form-item>
-              <el-form-item label="闅忚璁板綍" v-else>
+
+              <!-- 闅忚鍐呭/璁板綍 -->
+              <el-form-item
+                :label="orgname == '涓芥按甯備腑鍖婚櫌' ? '闅忚鍐呭' : '闅忚璁板綍'"
+              >
                 <el-input type="textarea" v-model="form.remark"></el-input>
               </el-form-item>
 
+              <!-- 闅忚鎯呭喌 -->
               <el-form-item label="闅忚鎯呭喌" v-if="orgname == '涓芥按甯備腑鍖婚櫌'">
                 <el-radio-group v-model="form.taskSituation">
                   <el-radio
@@ -722,121 +751,136 @@
                     :label="city.value"
                     :value="city.value"
                     :key="city.value"
-                    >{{ city.label }}</el-radio
                   >
+                    {{ city.label }}
+                  </el-radio>
                 </el-radio-group>
               </el-form-item>
+
+              <!-- 澶勭悊鎰忚 -->
               <el-form-item label="澶勭悊鎰忚">
-                <div>
+                <div class="opinion-buttons">
                   <el-button
                     plain
                     type="warning"
                     @click="Editsingletaskson('1')"
-                    >鏆備笉澶勭悊</el-button
                   >
+                    鏆備笉澶勭悊
+                  </el-button>
                   <el-button
                     plain
                     type="success"
                     @click="Editsingletaskson('2')"
-                    >鐥呮儏绋冲畾</el-button
                   >
+                    鐥呮儏绋冲畾
+                  </el-button>
                   <el-button
                     plain
                     type="primary"
                     @click="Editsingletaskson('3')"
-                    >閫氱煡灏辫瘖</el-button
                   >
-                  <el-button plain type="info" @click="Editsingletaskson('5')"
-                    >涓績闅忚</el-button
-                  >
-                  <el-button type="primary" round @click="sendAgainmsg"
-                    >鐭俊鍙戦��</el-button
-                  >
+                    閫氱煡灏辫瘖
+                  </el-button>
+                  <el-button plain type="info" @click="Editsingletaskson('5')">
+                    浜哄伐闅忚
+                  </el-button>
+                  <el-button type="primary" round @click="sendAgainmsg">
+                    鐭俊鍙戦��
+                  </el-button>
                 </div>
               </el-form-item>
             </el-form>
+          </div>
 
-            <div class="detailed">
-              <h3>鎮h�呮。妗堜俊鎭�</h3>
-              <el-form ref="userform" :model="userform" label-width="100px">
-                <el-row :gutter="20">
-                  <el-col :span="12">
-                    <el-form-item label="鎮h�呭鍚�" prop="name">
-                      <el-input
-                        v-model="userform.name"
-                        placeholder="璇疯緭鍏ュ鍚�"
-                        maxlength="30"
-                      ></el-input> </el-form-item
-                  ></el-col>
-                </el-row>
-                <el-row :gutter="20">
-                  <el-col :span="12"
-                    ><el-form-item label="鎬у埆" prop="telcode">
-                      <el-select v-model="userform.sex" placeholder="璇烽�夋嫨">
-                        <el-option label="鐢�" :value="1"> </el-option>
-                        <el-option label="濂�" :value="2"> </el-option>
-                      </el-select> </el-form-item
-                  ></el-col>
-                  <el-col :span="12">
-                    <el-form-item label="骞撮緞" prop="name">
-                      <el-input
-                        v-model="userform.age"
-                        placeholder="璇疯緭鍏ュ鍚�"
-                        maxlength="20"
-                      ></el-input> </el-form-item
-                  ></el-col>
-                </el-row>
+          <!-- 鎮h�呮。妗堜俊鎭� -->
+          <div class="detailed">
+            <h3>鎮h�呮。妗堜俊鎭�</h3>
+            <el-form ref="userform" :model="userform" label-width="100px">
+              <el-row :gutter="20">
+                <el-col :span="12">
+                  <el-form-item label="鎮h�呭鍚�" prop="name">
+                    <el-input
+                      v-model="userform.name"
+                      placeholder="璇疯緭鍏ュ鍚�"
+                      maxlength="30"
+                    ></el-input>
+                  </el-form-item>
+                </el-col>
+              </el-row>
+              <el-row :gutter="20">
+                <el-col :span="12">
+                  <el-form-item label="鎬у埆" prop="sex">
+                    <el-select v-model="userform.sex" placeholder="璇烽�夋嫨">
+                      <el-option label="鐢�" :value="1"> </el-option>
+                      <el-option label="濂�" :value="2"> </el-option>
+                    </el-select>
+                  </el-form-item>
+                </el-col>
+                <el-col :span="12">
+                  <el-form-item label="骞撮緞" prop="age">
+                    <el-input
+                      v-model="userform.age"
+                      placeholder="璇疯緭鍏ュ勾榫�"
+                      maxlength="20"
+                    ></el-input>
+                  </el-form-item>
+                </el-col>
+              </el-row>
 
-                <el-row :gutter="20">
-                  <el-col :span="12"
-                    ><el-form-item label="鑱旂郴鏂瑰紡" prop="telcode">
-                      <el-input
-                        v-model="userform.telcode"
-                        placeholder="璇疯緭鍏ヨ仈绯绘柟寮�"
-                        maxlength="20"
-                      /> </el-form-item
-                  ></el-col>
-                  <el-col :span="12">
-                    <el-form-item label="浜插睘鑱旂郴鏂瑰紡" prop="name">
-                      <el-input
-                        v-model="userform.relativetelcode"
-                        placeholder="璇疯緭鍏ュ鍚�"
-                        maxlength="20"
-                      ></el-input> </el-form-item
-                  ></el-col>
-                </el-row>
-                <el-row :gutter="20">
-                  <el-col :span="24">
-                    <el-form-item label="璇婃柇鍚嶇О" prop="name">
-                      <el-input
-                        v-model="form.leavediagname"
-                        placeholder="璇疯緭鍏ヨ瘖鏂�"
-                        maxlength="50"
-                      ></el-input> </el-form-item
-                  ></el-col>
-                </el-row>
-                <el-row :gutter="20">
-                  <el-col :span="24">
-                    <el-form-item label="鍑虹敓鍦�" prop="birthplace">
-                      <el-input
-                        v-model="userform.birthplace"
-                        placeholder="鍥姐�佺渷銆佸湴甯傘�佸尯鍘裤�佽閬撶瓑璇︾粏淇℃伅"
-                        maxlength="50"
-                      /> </el-form-item
-                  ></el-col>
-                </el-row>
-                <el-row :gutter="20">
-                  <el-col :span="24"
-                    ><el-form-item label="灞呬綇鍦�" prop="placeOfResidence">
-                      <el-input
-                        v-model="userform.placeOfResidence"
-                        placeholder="鍥姐�佺渷銆佸湴甯傘�佸尯鍘裤�佽閬撶瓑璇︾粏淇℃伅"
-                        maxlength="50"
-                      /> </el-form-item
-                  ></el-col>
-                </el-row>
-              </el-form>
-            </div>
+              <el-row :gutter="20">
+                <el-col :span="12">
+                  <el-form-item label="鑱旂郴鏂瑰紡" prop="telcode">
+                    <el-input
+                      v-model="userform.telcode"
+                      placeholder="璇疯緭鍏ヨ仈绯绘柟寮�"
+                      maxlength="20"
+                    />
+                  </el-form-item>
+                </el-col>
+                <el-col :span="12">
+                  <el-form-item label="浜插睘鑱旂郴鏂瑰紡" prop="relativetelcode">
+                    <el-input
+                      v-model="userform.relativetelcode"
+                      placeholder="璇疯緭鍏ヤ翰灞炶仈绯绘柟寮�"
+                      maxlength="20"
+                    ></el-input>
+                  </el-form-item>
+                </el-col>
+              </el-row>
+              <el-row :gutter="20">
+                <el-col :span="24">
+                  <el-form-item label="璇婃柇鍚嶇О" prop="leavediagname">
+                    <el-input
+                      v-model="form.leavediagname"
+                      placeholder="璇疯緭鍏ヨ瘖鏂�"
+                      maxlength="50"
+                    ></el-input>
+                  </el-form-item>
+                </el-col>
+              </el-row>
+              <el-row :gutter="20">
+                <el-col :span="24">
+                  <el-form-item label="鍑虹敓鍦�" prop="birthplace">
+                    <el-input
+                      v-model="userform.birthplace"
+                      placeholder="鍥姐�佺渷銆佸湴甯傘�佸尯鍘裤�佽閬撶瓑璇︾粏淇℃伅"
+                      maxlength="50"
+                    />
+                  </el-form-item>
+                </el-col>
+              </el-row>
+              <el-row :gutter="20">
+                <el-col :span="24">
+                  <el-form-item label="灞呬綇鍦�" prop="placeOfResidence">
+                    <el-input
+                      v-model="userform.placeOfResidence"
+                      placeholder="鍥姐�佺渷銆佸湴甯傘�佸尯鍘裤�佽閬撶瓑璇︾粏淇℃伅"
+                      maxlength="50"
+                    />
+                  </el-form-item>
+                </el-col>
+              </el-row>
+            </el-form>
           </div>
         </div>
       </div>
@@ -1165,6 +1209,9 @@
       isEndingCall: false,
       CaldialogVisible: false,
       currentCall: null, // 褰撳墠閫氳瘽瀵硅薄
+      // 鏂板鍔熻兘鏁版嵁
+      showPatientInfo: true,
+      showContinuationCareBtn: false, // 鎺у埗寤剁画鎶ょ悊鎸夐挳鏄剧ず
       // 璺敱鐩戝惉鐩稿叧
       routeWatcher: null,
       lastRoutePath: this.$route.path,
@@ -1439,6 +1486,10 @@
     this.visitCount = this.$route.query.visitCount;
     this.serviceType = this.$route.query.serviceType;
     this.orgname = localStorage.getItem("orgname");
+    if (this.orgname == "鐪佺珛鍚屽痉缈犺嫅闄㈠尯") {
+      this.showContinuationCareBtn = true;
+    }
+
     if (this.orgname == "缂欎簯鍘夸腑鍖诲尰闄�") {
       this.options = [
         {
@@ -1498,6 +1549,8 @@
   methods: {
     // 鑾峰彇涓婚鏍峰紡绫�
     getTopicClass(item) {
+      console.log(item.isabnormal, "getTopicClass");
+
       // 鏍规嵁鐘舵�佸�艰繑鍥炲搴旂殑鏍峰紡绫�
       if (item.isabnormal == 1) {
         return "scriptTopic-isabnormal"; // 寮傚父 - 绾㈣壊
@@ -1736,6 +1789,7 @@
           scriptid: item.id,
           excep: excep,
           questiontext: item.scriptContent,
+          categoryid: item.categoryid,
           answerps: item.answerps || null, // 娣诲姞闄勫姞淇℃伅
         };
         if (item.scriptType == 2 && item.scriptResult[0]) {
@@ -2496,6 +2550,34 @@
       // 鍒锋柊鏁版嵁
       this.getTaskservelist();
     },
+    // 寤剁画鎶ょ悊
+    handleContinuationCare() {
+      if (this.form.continueFlag != 2) {
+        this.$modal.confirm("鏄惁涓烘湰娆℃湇鍔″垱寤哄欢缁姢鐞嗭紵").then(() => {
+          this.$router.push({
+            path: "/followvisit/ContinueFordetails/",
+            query: {
+              taskid: this.taskid,
+              patid: this.patid,
+              id: this.id,
+              Voicetype: this.Voicetype,
+              visitCount: this.visitCount,
+            },
+          });
+        });
+      } else {
+        this.$router.push({
+          path: "/followvisit/ContinueFordetails/",
+          query: {
+            taskid: this.taskid,
+            patid: this.patid,
+            id: this.id,
+            Voicetype: this.Voicetype,
+            visitCount: this.visitCount,
+          },
+        });
+      }
+    },
   },
   // deactivated() {
   //   console.log(11);
@@ -2826,7 +2908,7 @@
   padding: 30px;
   border: 1px solid #dcdfe6;
   box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.12), 0 0 6px 0 rgba(0, 0, 0, 0.04);
-  max-height: 618px;
+  max-height: 716px;
   /* 璁剧疆鏈�澶ч珮搴� */
   overflow-y: auto;
   /* 鍐呭瓒呰繃楂樺害鏃舵樉绀烘粴鍔ㄦ潯 */
@@ -3234,4 +3316,366 @@
     margin-bottom: 20px;
   }
 }
+/* 浜哄伐澶勭悊閮ㄥ垎鏍峰紡 */
+.manual-action {
+  flex: 1;
+  min-width: 0;
+  height: 100%;
+  overflow: hidden;
+
+  .Followuserinfos {
+    display: flex;
+    flex-direction: column;
+    gap: 20px;
+    padding: 20px;
+    background: #fff;
+    border-radius: 8px;
+    box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);
+    height: 100%;
+    overflow-y: auto;
+  }
+}
+
+/* 澶撮儴鍖哄煙 */
+.section-header {
+  display: flex;
+  justify-content: space-between;
+  align-items: center;
+  padding-bottom: 15px;
+  border-bottom: 2px solid #f0f0f0;
+  margin-bottom: 20px;
+  flex-wrap: wrap;
+  gap: 15px;
+
+  h3 {
+    margin: 0;
+    color: #409eff;
+    font-size: 18px;
+    font-weight: 600;
+    display: flex;
+    align-items: center;
+    gap: 8px;
+
+    i {
+      font-size: 20px;
+    }
+  }
+
+  .header-actions {
+    display: flex;
+    align-items: center;
+    flex-wrap: wrap;
+    gap: 15px;
+
+    .action-group {
+      display: flex;
+      align-items: center;
+      gap: 10px;
+    }
+  }
+}
+
+/* 鍩虹鎿嶄綔鎸夐挳 */
+.basic-actions {
+  .el-button {
+    min-width: 100px;
+  }
+}
+
+/* 寮傚父鐘舵�侀�夋嫨鍣� */
+.tag-selector {
+  display: flex;
+  align-items: center;
+  gap: 10px;
+
+  .current-tag {
+    display: flex;
+    align-items: center;
+    gap: 8px;
+    padding: 6px 12px;
+    background: #f8f9fa;
+    border: 1px solid;
+    border-radius: 4px;
+    font-size: 12px;
+    transition: all 0.3s;
+
+    &:hover {
+      box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
+    }
+  }
+}
+
+.color-indicator {
+  width: 16px;
+  height: 16px;
+  border-radius: 3px;
+  margin-right: 8px;
+  display: inline-block;
+}
+
+.selected-indicator {
+  margin-left: 10px;
+  width: 20px;
+  height: 20px;
+}
+
+.tag-info-icon {
+  margin-left: 10px;
+  color: #909399;
+  cursor: pointer;
+  font-size: 16px;
+}
+
+/* 琛ㄥ崟鍖哄煙 */
+.form-content {
+  background: #f8f9fa;
+  border-radius: 8px;
+  padding: 20px;
+  margin-bottom: 20px;
+
+  .el-form {
+    .el-row {
+      margin: 0 -10px;
+    }
+
+    .el-col {
+      padding: 0 10px;
+    }
+  }
+}
+
+/* 閫氳瘽鎺у埗鍖哄煙 */
+.call-controls {
+  margin: 15px 0;
+
+  .hangup-container {
+    display: flex;
+    flex-direction: column;
+    align-items: center;
+    gap: 10px;
+    margin: 15px 0;
+  }
+
+  .hangup-btn {
+    width: 120px;
+    height: 40px;
+    font-size: 14px;
+    border-radius: 20px;
+    box-shadow: 0 2px 8px rgba(244, 67, 54, 0.3);
+    transition: all 0.3s ease;
+  }
+
+  .hangup-btn:hover:not(:disabled) {
+    transform: translateY(-2px);
+    box-shadow: 0 4px 12px rgba(244, 67, 54, 0.4);
+  }
+
+  .call-timer {
+    font-size: 12px;
+    color: #666;
+    background: #f5f5f5;
+    padding: 4px 12px;
+    border-radius: 12px;
+    font-family: "Courier New", monospace;
+  }
+
+  .call-status-container {
+    margin: 10px 0;
+  }
+
+  .status-alert {
+    border-radius: 8px;
+    transition: all 0.3s ease;
+  }
+
+  .status-alert.status-calling {
+    border-left: 4px solid #e6a23c;
+  }
+
+  .status-alert.status-connected {
+    border-left: 4px solid #67c23a;
+    animation: pulse 2s infinite;
+  }
+
+  .status-alert.status-ended {
+    border-left: 4px solid #909399;
+  }
+
+  .sip-registering {
+    margin: 10px 0;
+  }
+
+  .registering-alert {
+    border-radius: 8px;
+    background-color: #f4f4f5;
+    border-left: 4px solid #909399;
+  }
+}
+
+/* 澶勭悊鎰忚鎸夐挳缁� */
+.opinion-buttons {
+  display: flex;
+  flex-wrap: wrap;
+  gap: 10px;
+  align-items: center;
+
+  .el-button {
+    flex: 1;
+    min-width: 120px;
+  }
+}
+
+/* 鎮h�呮。妗堜俊鎭� */
+.detailed {
+  width: 100%;
+  border-radius: 8px;
+  padding: 20px;
+  margin-bottom: 20px;
+  background-color: #ddf0f8;
+  border: 1px solid #b3e0f2;
+
+  h3 {
+    margin: 0 0 20px 0;
+    color: #333;
+    font-size: 16px;
+    font-weight: 500;
+    display: flex;
+    align-items: center;
+    gap: 8px;
+
+    &:before {
+      content: "";
+      display: block;
+      width: 4px;
+      height: 16px;
+      background: #409eff;
+      border-radius: 2px;
+    }
+  }
+
+  .el-form {
+    .el-row {
+      margin: 0 -10px;
+    }
+
+    .el-col {
+      padding: 0 10px;
+      margin-bottom: 15px;
+    }
+  }
+}
+
+/* 鍔ㄧ敾鏁堟灉 */
+@keyframes pulse {
+  0% {
+    opacity: 1;
+  }
+  50% {
+    opacity: 0.7;
+  }
+  100% {
+    opacity: 1;
+  }
+}
+
+/* 鍝嶅簲寮忚璁� */
+@media screen and (max-width: 1200px) {
+  .section-header {
+    flex-direction: column;
+    align-items: flex-start;
+    gap: 15px;
+  }
+
+  .header-actions {
+    width: 100%;
+    justify-content: space-between;
+  }
+
+  .opinion-buttons {
+    .el-button {
+      min-width: calc(50% - 8px);
+    }
+  }
+}
+
+@media screen and (max-width: 768px) {
+  .Followuserinfos {
+    padding: 15px;
+  }
+
+  .form-content,
+  .detailed {
+    padding: 15px;
+  }
+
+  .header-actions {
+    flex-direction: column;
+    align-items: stretch;
+
+    .action-group {
+      flex-direction: column;
+      align-items: stretch;
+
+      .el-select {
+        width: 100%;
+        margin-right: 0;
+      }
+    }
+  }
+
+  .opinion-buttons {
+    flex-direction: column;
+
+    .el-button {
+      width: 100%;
+    }
+  }
+
+  .detailed {
+    .el-form {
+      .el-col {
+        width: 100%;
+      }
+    }
+  }
+}
+
+/* 婊氬姩鏉$編鍖� */
+.Followuserinfos {
+  &::-webkit-scrollbar {
+    width: 6px;
+  }
+
+  &::-webkit-scrollbar-track {
+    background: #f1f1f1;
+    border-radius: 3px;
+  }
+
+  &::-webkit-scrollbar-thumb {
+    background: #c1c1c1;
+    border-radius: 3px;
+
+    &:hover {
+      background: #a8a8a8;
+    }
+  }
+}
+
+/* 鎸夐挳鍥炬爣浼樺寲 */
+.el-icon-phone {
+  transition: all 0.3s;
+}
+
+.el-button[disabled] .el-icon-phone {
+  color: #c0c4cc;
+}
+
+.el-button:not([disabled]) .el-icon-phone {
+  color: #409eff;
+}
+
+.el-button:not([disabled]):hover .el-icon-phone {
+  color: #66b1ff;
+  transform: scale(1.1);
+}
 </style>
diff --git a/src/views/login-ls.vue b/src/views/login-sy.vue
similarity index 95%
rename from src/views/login-ls.vue
rename to src/views/login-sy.vue
index 1260bd7..9de6d08 100644
--- a/src/views/login-ls.vue
+++ b/src/views/login-sy.vue
@@ -37,10 +37,10 @@
         </el-input>
       </el-form-item>
       <!-- 涓�===================姘� -->
-      <el-form-item prop="orgid">
+      <el-form-item prop="medicalCode">
         <el-select
           style="width: 100%"
-          v-model="loginForm.orgid"
+          v-model="loginForm.medicalCode"
           placeholder="璇烽�夋嫨闄㈠尯"
         >
           <el-option
@@ -165,10 +165,11 @@
       });
     },
     getorganization() {
-      getorganization().then((res) => {
+      getorganization({ pageSize: 30 }).then((res) => {
         if (res.code == 200) {
           this.options = res.rows.map((item) => ({
-            value: item.orgid,
+            value: item.medicalCode,
+            // value: item.medicalCode,
             label: item.organizationName,
           }));
         }
@@ -205,14 +206,19 @@
       }
 
       // 鍔ㄦ�佽缃� campusid 鍙傛暟
-      const selectedOrg = this.options.find(item => item.value === this.loginForm.orgid);
+      const selectedOrg = this.options.find(item => item.value === this.loginForm.medicalCode);
+      console.log(selectedOrg);
+
       if (selectedOrg) {
         if (selectedOrg.label.includes('婀栨花')) {
           this.loginForm.campusid = 1;
+          this.loginForm.orgid = 1;
         } else if (selectedOrg.label.includes('鍚村北')) {
           this.loginForm.campusid = 2;
+          this.loginForm.orgid = 1;
         } else {
           this.loginForm.campusid = 1; // 榛樿鍊兼垨鍏朵粬澶勭悊
+          this.loginForm.orgid = 1;
         }
       }
 
diff --git a/src/views/login.vue b/src/views/login.vue
index 0515b81..323aebe 100644
--- a/src/views/login.vue
+++ b/src/views/login.vue
@@ -37,10 +37,10 @@
         </el-input>
       </el-form-item>
       <!-- 涓�===================姘� -->
-      <el-form-item prop="medicalCode">
+      <el-form-item prop="orgid">
         <el-select
           style="width: 100%"
-          v-model="loginForm.medicalCode"
+          v-model="loginForm.orgid"
           placeholder="璇烽�夋嫨闄㈠尯"
         >
           <el-option
@@ -118,8 +118,7 @@
         code: "",
         orgid: "H41010500003",
       },
-      options: [
-      ],
+      options: [],
       loginRules: {
         username: [
           { required: true, trigger: "blur", message: "璇疯緭鍏ユ偍鐨勮处鍙�" },
@@ -165,11 +164,10 @@
       });
     },
     getorganization() {
-      getorganization().then((res) => {
+      getorganization({ pageSize: 30 }).then((res) => {
         if (res.code == 200) {
           this.options = res.rows.map((item) => ({
-            value: item.medicalCode,
-            // value: item.medicalCode,
+            value: item.orgid,
             label: item.organizationName,
           }));
         }
@@ -187,61 +185,58 @@
       };
     },
     handleLogin() {
-  this.$refs.loginForm.validate((valid) => {
-    if (valid) {
-      this.loading = true;
+      this.$refs.loginForm.validate((valid) => {
+        if (valid) {
+          this.loading = true;
 
-      if (this.loginForm.rememberMe) {
-        Cookies.set("username", this.loginForm.username, { expires: 30 });
-        Cookies.set("password", encrypt(this.loginForm.password), {
-          expires: 30,
-        });
-        Cookies.set("rememberMe", this.loginForm.rememberMe, {
-          expires: 30,
-        });
-      } else {
-        Cookies.remove("username");
-        Cookies.remove("password");
-        Cookies.remove("rememberMe");
-      }
-
-      // 鍔ㄦ�佽缃� campusid 鍙傛暟
-      const selectedOrg = this.options.find(item => item.value === this.loginForm.medicalCode);
-      console.log(selectedOrg);
-
-      if (selectedOrg) {
-        if (selectedOrg.label.includes('婀栨花')) {
-          this.loginForm.campusid = 1;
-          this.loginForm.orgid = 1;
-        } else if (selectedOrg.label.includes('鍚村北')) {
-          this.loginForm.campusid = 2;
-          this.loginForm.orgid = 1;
-        } else {
-          this.loginForm.campusid = 1; // 榛樿鍊兼垨鍏朵粬澶勭悊
-          this.loginForm.orgid = 1;
-        }
-      }
-
-      this.$store
-        .dispatch("Login", this.loginForm)
-        .then((res) => {
-          if (this.loginForm.username == "admin") {
-            this.$router.push({ path: "/index" }).catch(() => {});
+          if (this.loginForm.rememberMe) {
+            Cookies.set("username", this.loginForm.username, { expires: 30 });
+            Cookies.set("password", encrypt(this.loginForm.password), {
+              expires: 30,
+            });
+            Cookies.set("rememberMe", this.loginForm.rememberMe, {
+              expires: 30,
+            });
           } else {
-            this.$router
-              .push({ path: "/followvisit/discharge" })
-              .catch(() => {});
+            Cookies.remove("username");
+            Cookies.remove("password");
+            Cookies.remove("rememberMe");
           }
-        })
-        .catch(() => {
-          this.loading = false;
-          if (this.captchaEnabled) {
-            this.getCode();
+
+          // 鍔ㄦ�佽缃� campusid 鍙傛暟
+          const selectedOrg = this.options.find(
+            (item) => item.value === this.loginForm.orgid
+          );
+          if (selectedOrg) {
+            if (selectedOrg.label.includes("婀栨花")) {
+              this.loginForm.campusid = 1;
+            } else if (selectedOrg.label.includes("鍚村北")) {
+              this.loginForm.campusid = 2;
+            } else {
+              this.loginForm.campusid = 1; // 榛樿鍊兼垨鍏朵粬澶勭悊
+            }
           }
-        });
-    }
-  });
-}
+
+          this.$store
+            .dispatch("Login", this.loginForm)
+            .then((res) => {
+              if (this.loginForm.username == "admin") {
+                this.$router.push({ path: "/index" }).catch(() => {});
+              } else {
+                this.$router
+                  .push({ path: "/followvisit/discharge" })
+                  .catch(() => {});
+              }
+            })
+            .catch(() => {
+              this.loading = false;
+              if (this.captchaEnabled) {
+                this.getCode();
+              }
+            });
+        }
+      });
+    },
   },
 };
 </script>
diff --git a/src/views/patient/patient/behospitalized.vue b/src/views/patient/patient/behospitalized.vue
index a368496..96760c4 100644
--- a/src/views/patient/patient/behospitalized.vue
+++ b/src/views/patient/patient/behospitalized.vue
@@ -637,6 +637,9 @@
     this.queryParams.leaveldeptcodes = store.getters.belongDepts.map(
       (obj) => obj.deptCode
     );
+    this.queryParams.leavehospitaldistrictcodes = store.getters.belongWards.map(
+      (obj) => obj.districtCode
+    );
     this.getList();
     // this.listDept();
     this.gettabList();
@@ -776,8 +779,8 @@
         leavehospitaldistrictcodes: [],
       };
       this.queryParams.leaveldeptcodes = store.getters.belongDepts.map(
-      (obj) => obj.deptCode
-    );
+        (obj) => obj.deptCode
+      );
       this.handleQuery();
     },
     // 澶氶�夋閫変腑鏁版嵁
@@ -948,6 +951,6 @@
   }
 }
 .button-textsc {
-  color: #3664D9;
+  color: #3664d9;
 }
 </style>
diff --git a/src/views/patient/patient/hospital.vue b/src/views/patient/patient/hospital.vue
index 6961289..1db8cc4 100644
--- a/src/views/patient/patient/hospital.vue
+++ b/src/views/patient/patient/hospital.vue
@@ -630,6 +630,9 @@
     this.queryParams.leaveldeptcodes = store.getters.belongDepts.map(
       (obj) => obj.deptCode
     );
+    this.queryParams.leavehospitaldistrictcodes = store.getters.belongWards.map(
+      (obj) => obj.districtCode
+    );
     this.getList();
     // this.listDept();
     this.gettabList();
diff --git a/src/views/sfstatistics/percentage/index.vue b/src/views/sfstatistics/percentage/index.vue
index 745f8f0..b7a5a1b 100644
--- a/src/views/sfstatistics/percentage/index.vue
+++ b/src/views/sfstatistics/percentage/index.vue
@@ -1168,6 +1168,20 @@
                   </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
                   prop="visitTime"
                   align="center"
                   label="搴旈殢璁挎椂闂�"
@@ -1420,6 +1434,7 @@
       allDeptCodes: [],
       // 瀛樺偍鎵�鏈夌梾鍖轰唬鐮�
       allWardCodes: [],
+      checkboxlist: [],
       // 琛ㄥ崟鍙傛暟
       form: {},
       forms: {
@@ -1469,6 +1484,7 @@
   created() {
     this.getDeptTree();
     this.getList();
+    this.checkboxlist = store.getters.checkboxlist;
     this.orgname = localStorage.getItem("orgname");
   },
 
@@ -1487,12 +1503,14 @@
           ? this.allDeptCodes
           : this.queryParams.deptcodes,
       };
-
+      this.loading = true;
       // 绉婚櫎鍙兘瀛樺湪鐨�"all"鍊�
       delete params.leavehospitaldistrictcodes.all;
       delete params.deptcodes.all;
       getSfStatistics(params).then((response) => {
         console.log(response);
+        this.loading = false;
+
         // this.total = response.total;
         this.userList = this.customSort(response.data);
       });
@@ -1851,7 +1869,25 @@
       this.infotitleVisible = true;
       this.infotitle = title;
       this.infotitlelist = row; // 鍋囪row灏辨槸闇�瑕佸睍绀虹殑璇︾粏鏁扮粍
+      console.log(this.infotitlelist, "this.infotitlelist");
 
+      this.infotitlelist.forEach((item) => {
+        let idArray = null;
+
+        if (item.preachform) {
+          if (item.endtime) {
+            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;
+          });
+        }
+      });
       // 鍒濆鍖栧姞杞�
       this.loadIndex = 0;
       this.currentDisplayList = [];
@@ -1865,6 +1901,8 @@
 
       // 妯℃嫙寮傛鍔犺浇锛屽疄闄呭彲鑳芥槸鐩存帴鍒囩墖鏈湴鏁版嵁
       setTimeout(() => {
+        console.log(this.infotitlelist, "this.infotitlelist");
+
         const nextChunk = this.infotitlelist.slice(
           this.loadIndex,
           this.loadIndex + this.pageSize
diff --git a/vue.config.js b/vue.config.js
index 24e835b..7ce923e 100644
--- a/vue.config.js
+++ b/vue.config.js
@@ -36,7 +36,7 @@
       // detail: https://cli.vuejs.org/config/#devserver-proxy
       [process.env.VUE_APP_BASE_API]: {
         // target: `https://www.health-y.cn/lssf`,
-        // target: `http://192.168.100.10:8098`,
+        // target: `http://192.168.100.10:8096`,
         // target: `http://192.168.100.10:8094`,//鐪佺珛鍚屽痉
         // target: `http://192.168.100.10:8095`,//鏂板崕
         target:`http://localhost:8095`,

--
Gitblit v1.9.3