From ffa22cc18c75c0a73a3fd987e2b62fbf55316db2 Mon Sep 17 00:00:00 2001
From: WXL (wul) <wl_5969728@163.com>
Date: 星期四, 25 六月 2026 15:22:46 +0800
Subject: [PATCH] 测试完成

---
 src/views/followvisit/record/detailpage/index.vue |  671 ++++++++++++++++++++++++++++++++++++++++---------------
 1 files changed, 481 insertions(+), 190 deletions(-)

diff --git a/src/views/followvisit/record/detailpage/index.vue b/src/views/followvisit/record/detailpage/index.vue
index ca6a493..6bc4606 100644
--- a/src/views/followvisit/record/detailpage/index.vue
+++ b/src/views/followvisit/record/detailpage/index.vue
@@ -76,7 +76,8 @@
                   gettoken360(
                     scope.row.sfzh,
                     scope.row.drcode,
-                    scope.row.drname
+                    scope.row.drname,
+                    scope.row.patid
                   )
                 "
                 ><span class="button-textsc">{{
@@ -94,43 +95,36 @@
           >
           </el-table-column>
           <el-table-column
-            prop="sendstate"
+            label="闅忚鐘舵��"
             align="center"
-            width="200"
-            label="浠诲姟鐘舵��"
+            key="sendstateView"
+            prop="sendstateView"
+            width="120"
           >
             <template slot-scope="scope">
-              <div v-if="scope.row.sendstate == 1">
-                <el-tag type="primary" :disable-transitions="false"
-                  >琛ㄥ崟宸查鍙�</el-tag
-                >
-              </div>
-              <div v-if="scope.row.sendstate == 2">
-                <el-tag type="primary" :disable-transitions="false"
-                  >寰呴殢璁�</el-tag
-                >
-              </div>
-              <div v-if="scope.row.sendstate == 3">
-                <el-tag type="success" :disable-transitions="false"
-                  >琛ㄥ崟宸插彂閫�</el-tag
-                >
-              </div>
-              <div v-if="scope.row.sendstate == 4">
-                <el-tag type="info" :disable-transitions="false">涓嶆墽琛�</el-tag>
-              </div>
-              <div v-if="scope.row.sendstate == 5">
-                <el-tag type="danger" :disable-transitions="false"
-                  >鍙戦�佸け璐�</el-tag
-                >
-              </div>
-              <div v-if="scope.row.sendstate == 6">
-                <el-tag type="success" :disable-transitions="false"
-                  >宸插畬鎴�</el-tag
-                >
-              </div>
-              <div v-if="scope.row.sendstate == 7">
-                <el-tag type="danger" :disable-transitions="false">瓒呮椂</el-tag>
-              </div>
+              <el-tooltip
+                class="item"
+                effect="dark"
+                :content="scope.row.remark"
+                placement="top-start"
+                popper-class="statistics-tooltip"
+              >
+                <div v-if="scope.row.sendstateView == 1">
+                  <el-tag type="primary" :disable-transitions="false"
+                    >寰呴殢璁�</el-tag
+                  >
+                </div>
+                <div v-if="scope.row.sendstateView == 2">
+                  <el-tag type="success" :disable-transitions="false"
+                    >宸插畬鎴�</el-tag
+                  >
+                </div>
+                <div v-if="scope.row.sendstateView == 3">
+                  <el-tag type="warning" :disable-transitions="false"
+                    >鏃犻渶闅忚</el-tag
+                  >
+                </div>
+              </el-tooltip>
             </template>
           </el-table-column>
           <el-table-column
@@ -142,6 +136,18 @@
           >
           </el-table-column>
           <el-table-column
+            v-if="orgname == '鍗楀崕澶у闄勫睘绗竴鍖婚櫌'"
+            label="鍏ラ櫌鏃ユ湡"
+            width="200"
+            align="center"
+            key="starttime"
+            prop="starttime"
+          >
+            <template slot-scope="scope">
+              <span>{{ formatTime(scope.row.starttime) }}</span>
+            </template></el-table-column
+          >
+          <el-table-column
             label="鍑洪櫌鏃ユ湡"
             width="200"
             align="center"
@@ -152,6 +158,7 @@
               <span>{{ formatTime(scope.row.endtime) }}</span>
             </template></el-table-column
           >
+
           <el-table-column
             label="璐d换鎶ゅ+"
             width="120"
@@ -166,7 +173,58 @@
             key="drname"
             prop="drname"
           />
-
+          <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>
+                <div v-if="scope.row.sendstate == 7">
+                  <el-tag type="danger" :disable-transitions="false"
+                    >瓒呮椂</el-tag
+                  >
+                </div>
+              </el-tooltip>
+            </template>
+          </el-table-column>
           <el-table-column
             label="缁撴灉鐘舵��"
             align="center"
@@ -261,9 +319,38 @@
       <!-- 闅忚鍐呭 -->
       <div class="call-action">
         <div class="call-container">
-          <!-- <div class="call-header">
-            <h2>涓�閿懠鍙姛鑳�</h2>
-          </div> -->
+          <div
+            style="display: flex"
+            v-if="
+              (orgname == '鍗楀崕澶у闄勫睘绗竴鍖婚櫌' ||
+                orgname == '涓芥按甯傜浜屼汉姘戝尰闄�' ||
+                orgname == '缂欎簯鍘夸汉姘戝尰闄�') &&
+              !Voicetype
+            "
+          >
+            <template-selector
+              v-model="form.templateid"
+              :templateName="form.templatename"
+              :service-type="form.serviceType"
+              :is-editable="form.sendState !== 2"
+              @select="handleTemplateSelect"
+              @clear="handleTemplateClear"
+            />
+            <div
+              v-if="defaultKey"
+              style="
+                display: flex;
+                align-items: center;
+                justify-content: center;
+                height: 100%;
+                padding: 33px 0 0 50px;
+              "
+            >
+              <el-button type="success" round @click="handleConfirmReplace">
+                榛樿濉厖
+              </el-button>
+            </div>
+          </div>
 
           <div class="headline">
             <div>闅忚鍐呭</div>
@@ -290,9 +377,14 @@
                         v-if="item.scriptType == 1 && !item.astrict"
                       >
                         <div class="dev-text">
-                          {{ index + 1 }}銆乕鍗曢�塢<span>{{
-                            item.scriptContent
-                          }}</span>
+                          {{ index + 1 }}. [鍗曢�塢
+
+                          <span> {{ item.scriptContent }}</span>
+                          <span style="margin-left: 20px"
+                            ><dict-tag
+                              :options="dict.type.dimensionality_type"
+                              :value="item.dimension"
+                          /></span>
                         </div>
                         <div class="dev-xx">
                           <el-radio-group v-model="item.scriptResult">
@@ -343,9 +435,14 @@
                         v-if="item.scriptType == 2 && !item.astrict"
                       >
                         <div class="dev-text">
-                          {{ index + 1 }}銆乕澶氶�塢<span>{{
+                          {{ index + 1 }}. [澶氶�塢<span>{{
                             item.scriptContent
                           }}</span>
+                          <span style="margin-left: 20px"
+                            ><dict-tag
+                              :options="dict.type.dimensionality_type"
+                              :value="item.dimension"
+                          /></span>
                         </div>
                         <div class="dev-xx">
                           <el-checkbox-group
@@ -377,9 +474,14 @@
                         v-if="item.scriptType == 4 && !item.astrict"
                       >
                         <div class="dev-text">
-                          {{ index + 1 }}銆乕闂瓟]<span>{{
+                          {{ index + 1 }}. [闂瓟]<span>{{
                             item.scriptContent
                           }}</span>
+                          <span style="margin-left: 20px"
+                            ><dict-tag
+                              :options="dict.type.dimensionality_type"
+                              :value="item.dimension"
+                          /></span>
                           <span v-if="item.valueType == 3">(鍙兘杈撳叆鏁板瓧)</span>
                         </div>
                         <div class="dev-xx" v-if="item.valueType == 3">
@@ -413,9 +515,8 @@
                     >
                       <div v-if="item.targetvalue">
                         <div class="dev-text">
-                          {{ index + 1 }}銆乕鍗曢�塢<span>{{
-                            item.questiontext
-                          }}</span>
+                          {{ index + 1 }}. [鍗曢�塢
+                          <span>{{ item.questiontext }}</span>
                         </div>
                         <div class="dev-xx">
                           <el-radio-group
@@ -446,7 +547,7 @@
 
                       <div class="scriptTopic-dev" :key="index" v-else>
                         <div class="dev-text">
-                          {{ index + 1 }}銆乕闂瓟]<span>{{
+                          {{ index + 1 }}. [闂瓟]<span>{{
                             item.questiontext
                           }}</span>
                           <span v-if="item.valueType == 3">(鍙兘杈撳叆鏁板瓧)</span>
@@ -558,11 +659,7 @@
             <div class="header-actions">
               <!-- 鍩虹鎿嶄綔鎸夐挳缁� -->
               <div class="action-group basic-actions">
-                <el-button
-                  type="primary"
-                  plain
-                  @click="alterpatient('')"
-                >
+                <el-button type="primary" plain @click="alterpatient('')">
                   淇濆瓨鍩虹淇℃伅
                 </el-button>
 
@@ -580,7 +677,7 @@
                   type="primary"
                   round
                   @click="sendAgain"
-                  v-if="form.isVisitAgain != 2"
+                  v-if="(form.isVisitAgain != 2) & (visitAgain == 2)"
                 >
                   鍐嶆闅忚
                 </el-button>
@@ -755,16 +852,54 @@
                   />
                 </div>
               </div>
-
+              <el-form-item label="浠诲姟澶勭悊鐘舵��">
+                <el-select
+                  v-model="serviceStates"
+                  placeholder="璇烽�夋嫨鐘舵��"
+                  clearable
+                  style="width: 150px; margin-right: 10px"
+                >
+                  <el-option
+                    v-for="item in serviceState"
+                    :key="item.value"
+                    :label="item.label"
+                    :value="item.value"
+                  />
+                </el-select>
+              </el-form-item>
               <!-- 闅忚鍐呭/璁板綍 -->
               <el-form-item
                 :label="orgname == '涓芥按甯備腑鍖婚櫌' ? '闅忚鍐呭' : '闅忚璁板綍'"
               >
-                <el-input type="textarea" v-model="form.remark"></el-input>
+                <!-- 蹇嵎鐭鏍囩 -->
+                <div style="margin-bottom: 8px">
+                  <el-tag
+                    v-for="(item, index) in dict.type.quickfollow_up"
+                    :key="index"
+                    style="margin-right: 8px; cursor: pointer"
+                    @click="insertText(item.value)"
+                  >
+                    {{ item.value }}
+                  </el-tag>
+                </div>
+                <!-- 鏂囨湰鍩� -->
+                <el-input
+                  type="textarea"
+                  :rows="4"
+                  v-model="form.remark"
+                  ref="textareaRef"
+                  placeholder="鍙偣鍑讳笂鏂瑰揩鎹锋爣绛炬垨鎵嬪姩杈撳叆"
+                ></el-input>
               </el-form-item>
 
               <!-- 闅忚鎯呭喌 -->
-              <el-form-item label="闅忚鎯呭喌" v-if="orgname == '涓芥按甯備腑鍖婚櫌'">
+              <el-form-item
+                label="闅忚鎯呭喌"
+                v-if="
+                  orgname == '涓芥按甯備腑鍖婚櫌' ||
+                  orgname == '鏅畞鐣叉棌鑷不鍘夸汉姘戝尰闄�'
+                "
+              >
                 <el-radio-group v-model="form.taskSituation">
                   <el-radio
                     v-for="city in cities"
@@ -910,34 +1045,21 @@
       <!-- 娉ㄦ剰杩欓噷浣跨敤浜� smsDialogVisible 浠ュ尯鍒嗗凡鏈夌殑 dialogFormVisible -->
       <el-form ref="smsForm" :model="form" label-width="80px">
         <el-form-item label="鎮h�呭悕绉�">
-          <el-input
-            style="width: 400px"
-            disabled
-            v-model="form.sendname"
-          ></el-input>
+          <el-input style="width: 400px" v-model="form.sendname"></el-input>
         </el-form-item>
         <el-form-item label="骞撮緞">
-          <el-input style="width: 400px" disabled v-model="form.age"></el-input>
+          <el-input style="width: 400px" v-model="form.age"></el-input>
         </el-form-item>
         <el-form-item label="鐢佃瘽">
-          <el-input
-            style="width: 400px"
-            disabled
-            v-model="userform.telcode"
-          ></el-input>
+          <el-input style="width: 400px" v-model="userform.telcode"></el-input>
           <!-- 娉ㄦ剰杩欓噷鍙兘浣跨敤 userform.telcode -->
         </el-form-item>
         <el-form-item label="绉戝">
-          <el-input
-            style="width: 400px"
-            disabled
-            v-model="form.deptname"
-          ></el-input>
+          <el-input style="width: 400px" v-model="form.deptname"></el-input>
         </el-form-item>
         <el-form-item label="鐥呭尯">
           <el-input
             style="width: 400px"
-            disabled
             v-model="form.leavehospitaldistrictname"
           ></el-input>
         </el-form-item>
@@ -1128,7 +1250,10 @@
   savequestiondetail,
   addPersonVoices,
   query360PatInfo,
+  updateTemplate,
+  query360PatInfonh,
   sendMsg,
+  getconfigKey,
 } from "@/api/AiCentre/index";
 import {
   messagelistpatient,
@@ -1136,13 +1261,16 @@
   listcontactinformation,
 } from "@/api/patient/homepage";
 import CallButton from "@/components/CallButton";
+import TemplateSelector from "@/components/optionalModule";
 import MergeAndModify from "./MergeAndModify.vue";
 import CallCenterLs from "@/components/CallCenterLs";
+import store from "@/store";
 export default {
   components: {
     CallButton,
     MergeAndModify,
     CallCenterLs,
+    TemplateSelector,
   },
   directives: {
     numericOnly: {
@@ -1205,7 +1333,14 @@
       },
     },
   },
-  dicts: ["sys_normal_disable", "sys_user_sex", "sys_yujing", "sys_suggest"],
+  dicts: [
+    "sys_normal_disable",
+    "dimensionality_type",
+    "quickfollow_up",
+    "sys_user_sex",
+    "sys_yujing",
+    "sys_suggest",
+  ],
   data() {
     const validatePhone = (rule, value, callback) => {
       if (!value) {
@@ -1220,7 +1355,9 @@
       }, 300);
     };
     return {
+      visitAgain: 1,
       userid: "",
+      defaultKey: false, //鏄惁鍙粯璁ゅ~鎶�
       currentPhoneNumber: "",
       callType: "", // 鐢ㄤ簬鍖哄垎鏄摢涓數璇�
       isSipRegistering: true, // SIP娉ㄥ唽鐘舵��
@@ -1230,11 +1367,35 @@
       isEndingCall: false,
       CaldialogVisible: false,
       currentCall: null, // 褰撳墠閫氳瘽瀵硅薄
+      serviceStates: 6,
+      serviceState: [
+        {
+          value: 2,
+          label: "寰呴殢璁�",
+        },
+        {
+          value: 3,
+          label: "琛ㄥ崟宸插彂閫�",
+        },
+        {
+          value: 5,
+          label: "鍙戦�佸け璐�",
+        },
+        {
+          value: 6,
+          label: "宸插畬鎴�",
+        },
+        {
+          value: 4,
+          label: "涓嶆墽琛�",
+        },
+      ],
       // 鏂板鍔熻兘鏁版嵁
       showPatientInfo: true,
       showContinuationCareBtn: false, // 鎺у埗寤剁画鎶ょ悊鎸夐挳鏄剧ず
       // 璺敱鐩戝惉鐩稿叧
       routeWatcher: null,
+
       lastRoutePath: this.$route.path,
       input: "浠婂ぉ韬綋杩樹笉閿�",
       radio: "2",
@@ -1275,6 +1436,14 @@
           label: "鍏朵粬",
           value: "7",
         },
+      ],
+      quickContents: [
+        "鐥呮儏绋冲畾锛岀户缁綋鍓嶆不鐤�",
+        "鎮h�呭凡姝讳骸",
+        "鎮h�呬笉闇�瑕侀殢璁�",
+        "鎸夋椂鏈嶈嵂锛屾敞鎰忎紤鎭�",
+        "楗娓呮贰锛屽繉杈涜荆",
+        "棰勭害涓嬫澶嶈瘖",
       ],
       tableDatatop: [], //棰樼洰琛�
       voiceDatatop: [], //棰樼洰琛�
@@ -1371,56 +1540,6 @@
           // 绂佺敤浠婂ぉ鍙婁箣鍓嶇殑鏃ユ湡
           return time.getTime() < Date.now() - 24 * 60 * 60 * 1000;
         },
-        // shortcuts: [
-        //   {
-        //     text: "涓冨ぉ鍚�",
-        //     onClick(picker) {
-        //       const date = new Date();
-        //       date.setTime(date.getTime() + 3600 * 1000 * 24 * 7);
-        //       picker.$emit("pick", date);
-        //     },
-        //   },
-        //   {
-        //     text: "15澶╁悗",
-        //     onClick(picker) {
-        //       const date = new Date();
-        //       date.setTime(date.getTime() + 3600 * 1000 * 24 * 15);
-        //       picker.$emit("pick", date);
-        //     },
-        //   },
-        //   {
-        //     text: "涓�涓湀鍚�",
-        //     onClick(picker) {
-        //       const date = new Date();
-        //       date.setTime(date.getTime() + 3600 * 1000 * 24 * 30);
-        //       picker.$emit("pick", date);
-        //     },
-        //   },
-        //   {
-        //     text: "涓変釜鏈堝悗",
-        //     onClick(picker) {
-        //       const date = new Date();
-        //       date.setTime(date.getTime() + 3600 * 1000 * 24 * 90);
-        //       picker.$emit("pick", date);
-        //     },
-        //   },
-        //   {
-        //     text: "鍏釜鏈堝悗",
-        //     onClick(picker) {
-        //       const date = new Date();
-        //       date.setTime(date.getTime() + 3600 * 1000 * 24 * 180);
-        //       picker.$emit("pick", date);
-        //     },
-        //   },
-        //   {
-        //     text: "涓�骞村悗",
-        //     onClick(picker) {
-        //       const date = new Date();
-        //       date.setTime(date.getTime() + 3600 * 1000 * 24 * 365);
-        //       picker.$emit("pick", date);
-        //     },
-        //   },
-        // ],
       },
       options: [
         {
@@ -1506,6 +1625,9 @@
     this.Voicetype = this.$route.query.Voicetype;
     this.visitCount = this.$route.query.visitCount;
     this.serviceType = this.$route.query.serviceType;
+    this.visitAgain = store.getters.visitAgain;
+    console.log(store.getters.visitAgain);
+
     this.orgname = localStorage.getItem("orgname");
     if (this.orgname == "鐪佺珛鍚屽痉缈犺嫅闄㈠尯") {
       this.showContinuationCareBtn = true;
@@ -1540,6 +1662,7 @@
       ];
     }
     this.getTaskservelist();
+    this.getconfigKey();
   },
   mounted() {
     // 鐩戝惉瀛愮粍浠剁殑sipStatus灞炴�у彉鍖�
@@ -1579,7 +1702,29 @@
         return "scriptTopic-dev"; // 姝e父 - 榛樿鏍峰紡
       }
     },
-
+    getconfigKey() {
+      getconfigKey("default.value.icon").then((res) => {
+        if (res.msg) {
+          if (
+            this.getAssignArr(res.msg).includes(this.$store.state.user.name) ||
+            this.$store.state.user.name == "admin"
+          ) {
+            this.defaultKey = true;
+          } else {
+            this.defaultKey = false;
+          }
+        }
+      });
+    },
+    getAssignArr(rule) {
+      let arr = [];
+      let assiginArr = rule.split(",");
+      for (let i = 0; i < assiginArr.length; i++) {
+        arr[i] = assiginArr[i];
+      }
+      arr.sort(this.compare);
+      return arr;
+    },
     // 鑾峰彇閫夐」鏍峰紡绫�
     getOptionClass(items) {
       if (items.isabnormal == 1) {
@@ -1588,6 +1733,29 @@
         return "yellow-star"; // 璀﹀憡 - 榛勮壊鏄熷彿
       }
       return ""; // 姝e父 - 鏃犵壒娈婃牱寮�
+    },
+    insertText(text) {
+      const textarea = this.$refs.textareaRef;
+      console.log(textarea);
+
+      if (!textarea) return;
+
+      const target = textarea.$el.querySelector("textarea");
+      const start = target.selectionStart;
+      const end = target.selectionEnd;
+      const original = this.form.remark;
+      console.log(original, 11);
+
+      // 鍦ㄥ厜鏍囧鎻掑叆锛屽苟鏇存柊鍏夋爣浣嶇疆
+      this.form.remark =
+        original.substring(0, start) + text + original.substring(end);
+
+      // 淇濇寔鐒︾偣骞剁Щ鍔ㄥ厜鏍囧埌鎻掑叆鍐呭鍚�
+      this.$nextTick(() => {
+        target.focus();
+        const newPos = start + text.length;
+        target.setSelectionRange(newPos, newPos);
+      });
     },
     // 鑾峰彇闂嵎鏁版嵁
     getsearchrResults(id) {
@@ -1629,8 +1797,25 @@
       });
     },
     //鎮h��360璺宠浆
-    gettoken360(sfzh, drcode, drname) {
-      // this.$modal.msgWarning("360鍔熻兘鏆傛湭寮�閫�");
+    gettoken360(sfzh, drcode, drname, id) {
+      const orgname = localStorage.getItem("orgname");
+      if (orgname == "鍗楀崕澶у闄勫睘绗竴鍖婚櫌") {
+        query360PatInfonh(id).then((res) => {
+          if (res.data) {
+            window.open(res.data, "_blank");
+          } else {
+            this.$modal.msgWarning("360鏌ヨ鏃犵粨鏋�");
+          }
+        });
+        return;
+      } else if (
+        orgname == "绗竴浜烘皯鍖婚櫌婀栨花闄㈠尯" ||
+        orgname == "绗竴浜烘皯鍖婚櫌鍚村北闄㈠尯"
+      ) {
+        let url = `http://192.200.81.189:9100/blj/view?BINGRENID=${id}&YONGHUID=DBA`;
+        window.open(url, "_blank");
+        return;
+      }
 
       this.postData.YeWuXX.BingRenXX.ZhengJianHM = sfzh;
 
@@ -1837,36 +2022,40 @@
       savequestiondetail(obj).then((res) => {
         if (res.code == 200) {
           this.$modal.msgSuccess("鏈嶅姟淇濆瓨鎴愬姛");
-          this.Editsingletasksonyic(6);
+          this.Editsingletasksonyic(this.serviceStates);
           const orgName = localStorage.getItem("orgname");
 
-          if (this.form.isVisitAgain != 1 || orgName == "涓芥按甯備腑鍖婚櫌") {
+          if (
+            this.form.isVisitAgain != 1 ||
+            orgName == "涓芥按甯備腑鍖婚櫌" ||
+            this.visitAgain == 1
+          ) {
             this.Torouter();
             return;
           }
-          this.$modal
-            .confirm(
-              '浠诲姟淇濆瓨鎴愬姛鏄惁閽堝鎮h�咃細"' +
-                this.userform.name +
-                '"鍐嶆闅忚锛�',
-              "纭",
-              {
-                confirmButtonText: "纭畾",
-                cancelButtonText: "鍙栨秷",
-                showCancelButton: true,
-                dangerouslyUseHTMLString: true,
-                confirmButtonClass: "custom-confirm-button", // 鑷畾涔夌‘璁ゆ寜閽殑绫诲悕
-                cancelButtonClass: "custom-cancel-button", // 鑷畾涔夊彇娑堟寜閽殑绫诲悕
-              }
-            )
-            .then(() => {
-              document.querySelector("#app").scrollTo(0, 0);
-              this.formtidy();
-              this.dialogFormVisible = true;
-            })
-            .catch(() => {
-              this.Torouter();
-            });
+          // this.$modal
+          //   .confirm(
+          //     '浠诲姟淇濆瓨鎴愬姛鏄惁閽堝鎮h�咃細"' +
+          //       this.userform.name +
+          //       '"鍐嶆闅忚锛�',
+          //     "纭",
+          //     {
+          //       confirmButtonText: "纭畾",
+          //       cancelButtonText: "鍙栨秷",
+          //       showCancelButton: true,
+          //       dangerouslyUseHTMLString: true,
+          //       confirmButtonClass: "custom-confirm-button", // 鑷畾涔夌‘璁ゆ寜閽殑绫诲悕
+          //       cancelButtonClass: "custom-cancel-button", // 鑷畾涔夊彇娑堟寜閽殑绫诲悕
+          //     }
+          //   )
+          //   .then(() => {
+          //     document.querySelector("#app").scrollTo(0, 0);
+          //     this.formtidy();
+          //     this.dialogFormVisible = true;
+          //   })
+          //   .catch(() => {
+          //     this.Torouter();
+          //   });
         }
       });
     },
@@ -1924,6 +2113,68 @@
           message: "璇疯緭鍏ユ纭殑鐢佃瘽鍙风爜锛堟墜鏈哄彿鎴栧甫鍖哄彿鐨勫浐瀹氱數璇濓級",
         };
       }
+    },
+    handleTemplateSelect(templateData) {
+      console.log("閫夋嫨浜嗘ā鏉�:", templateData);
+      // 澶勭悊妯℃澘閫夋嫨閫昏緫
+      let templateobj = templateData.templateData;
+      templateobj.templateid = templateobj.svyid;
+      templateobj.taskid = this.form.taskid;
+      templateobj.isoperation = 1;
+      templateobj.svyTaskTemplateScriptVOS = templateobj.svyTemplateLibScripts;
+      templateobj.svyTaskTemplateScriptVOS.forEach((item) => {
+        item.taskid = this.form.taskid;
+        item.templateid = item.svyid;
+        item.svyTaskTemplateTargetoptions = item.svyLibTemplateTargetoptions;
+      });
+      let obj = {
+        subId: this.form.id,
+        svyTaskTemplateVO: templateobj,
+      };
+      updateTemplate(obj).then((res) => {
+        if (res.code) {
+          location.reload();
+          this.$modal.msgSuccess("妯℃澘淇敼鎴愬姛");
+        } else {
+        }
+      });
+    },
+
+    handleTemplateClear() {
+      console.log("娓呴櫎浜嗘ā鏉块�夋嫨");
+    },
+    handleConfirmReplace() {
+      // 閬嶅巻鎵�鏈夐鐩紙tableDatatop锛�
+      this.tableDatatop.forEach((item) => {
+        // 鍙鐞嗘湭濉姤鐨勯鐩紙scriptResult 涓虹┖鎴栫┖鏁扮粍锛�
+        if (
+          !item.scriptResult ||
+          (Array.isArray(item.scriptResult) && item.scriptResult.length === 0)
+        ) {
+          // 鏌ユ壘閫夐」涓� defaultValue 涓� 2 鐨勯�夐」
+          const defaultOption = item.svyTaskTemplateTargetoptions?.find(
+            (opt) => opt.defaultValue == 2
+          );
+          console.log(item);
+
+          if (defaultOption) {
+            // 鏍规嵁棰樼洰绫诲瀷璧嬪��
+            if (item.scriptType === "1") {
+              // 鍗曢�夐锛氱洿鎺ヨ祴鍊间负 optioncontent 瀛楃涓�
+              item.scriptResult = defaultOption.optioncontent;
+            } else if (item.scriptType === "2") {
+              // 澶氶�夐锛氳祴鍊间负鍖呭惈 optioncontent 鐨勬暟缁�
+              item.scriptResult = [defaultOption.optioncontent];
+            } else if (item.scriptType === "4") {
+              // 濉┖棰橈細涓�鑸病鏈夐�夐」锛屼絾濡傛灉鏈夊垯璧嬪��
+              item.scriptResult = defaultOption.optioncontent;
+            }
+
+            // 瑙﹀彂瑙嗗浘鏇存柊锛堝洜涓� Vue 鍙兘鏃犳硶妫�娴嬪埌娣卞眰宓屽瀵硅薄鐨勫彉鍖栵級
+            this.$forceUpdate();
+          }
+        }
+      });
     },
     // 浣跨敤绀轰緥
     isValidPhone(phone) {
@@ -2037,36 +2288,42 @@
       const orgName = localStorage.getItem("orgname");
       console.log(orgName, "orgName");
 
-      if (this.form.isVisitAgain != 1 || orgName == "涓芥按甯備腑鍖婚櫌") {
+      if (
+        this.form.isVisitAgain != 1 ||
+        orgName == "涓芥按甯備腑鍖婚櫌" ||
+        this.visitAgain == 1
+      ) {
         this.Torouter();
         return;
       }
       savequestiondetail(obj).then((res) => {
         if (res.code == 200) {
           this.$modal.msgSuccess("鏈嶅姟淇濆瓨鎴愬姛");
-          this.$modal
-            .confirm(
-              '浠诲姟淇濆瓨鎴愬姛鏄惁閽堝鎮h�咃細"' +
-                this.userform.name +
-                '"鍐嶆闅忚锛�',
-              "纭",
-              {
-                confirmButtonText: "纭畾",
-                cancelButtonText: "鍙栨秷",
-                showCancelButton: true,
-                dangerouslyUseHTMLString: true,
-                confirmButtonClass: "custom-confirm-button", // 鑷畾涔夌‘璁ゆ寜閽殑绫诲悕
-                cancelButtonClass: "custom-cancel-button", // 鑷畾涔夊彇娑堟寜閽殑绫诲悕
-              }
-            )
-            .then(() => {
-              document.querySelector("#app").scrollTo(0, 0);
-              this.formtidy();
-              this.dialogFormVisible = true;
-            })
-            .catch(() => {
-              this.Torouter();
-            });
+          this.Torouter();
+
+          //   this.$modal
+          //     .confirm(
+          //       '浠诲姟淇濆瓨鎴愬姛鏄惁閽堝鎮h�咃細"' +
+          //         this.userform.name +
+          //         '"鍐嶆闅忚锛�',
+          //       "纭",
+          //       {
+          //         confirmButtonText: "纭畾",
+          //         cancelButtonText: "鍙栨秷",
+          //         showCancelButton: true,
+          //         dangerouslyUseHTMLString: true,
+          //         confirmButtonClass: "custom-confirm-button", // 鑷畾涔夌‘璁ゆ寜閽殑绫诲悕
+          //         cancelButtonClass: "custom-cancel-button", // 鑷畾涔夊彇娑堟寜閽殑绫诲悕
+          //       }
+          //     )
+          //     .then(() => {
+          //       document.querySelector("#app").scrollTo(0, 0);
+          //       this.formtidy();
+          //       this.dialogFormVisible = true;
+          //     })
+          //     .catch(() => {
+          //       this.Torouter();
+          //     });
         }
       });
     },
@@ -2102,14 +2359,19 @@
           this.form = res.rows[0].serviceSubtaskList.find(
             (item) => item.id == this.id
           );
+          console.log(this.form.templatename, "templatename");
 
+          this.form.remark = this.form.remark || "";
           this.logsheetlist = res.rows[0].serviceSubtaskList;
           this.templateid = this.form.templateid;
           this.selectedTag = this.form.excep;
           const targetDate = new Date(this.form.visitTime); // 鐩爣鏃ユ湡
           const now = new Date(); // 褰撳墠鏃堕棿
+          console.log(now, "褰撳墠鏃堕棿");
+          console.log(targetDate, "鐩爣鏃ユ湡");
+
           if (now < targetDate && this.form.sendstate == 2) {
-            this.$confirm("褰撳墠鏈嶅姟鏈埌鍙戦�佹椂闂磋璋ㄦ厧淇敼", "鎻愮ず", {
+            this.$confirm("褰撳墠鏈嶅姟鏈埌闅忚鏃堕棿璇疯皑鎱庝慨鏀�", "鎻愮ず", {
               confirmButtonText: "纭畾",
               cancelButtonText: "鍙栨秷",
               type: "warning",
@@ -2163,6 +2425,9 @@
         if (res.code == 200) {
           objson = res.rows[0].serviceSubtaskList[0];
           objson.suggest = son;
+          objson.remark = this.form.remark;
+          objson.sendstate = this.serviceStates;
+          objson.taskSituation = this.form.taskSituation;
           Editsingletaskson(objson).then((res) => {
             if (res.code) {
               this.$modal.msgSuccess("鏈嶅姟璁板綍鎴愬姛");
@@ -2203,13 +2468,14 @@
       });
     },
     alterpatient(sendstate) {
-      alterpatient(this.userform).then((res) => {
-        if (res.code == 200) {
-          this.$modal.msgSuccess("鍩虹淇℃伅淇濆瓨鎴愬姛");
-        } else {
-          this.$modal.msgError("鍩虹淇℃伅淇敼澶辫触");
-        }
-      });
+      this.Editsingletasksonyic(this.serviceStates)
+      // alterpatient(this.userform).then((res) => {
+      //   if (res.code == 200) {
+      //     this.$modal.msgSuccess("鍩虹淇℃伅淇濆瓨鎴愬姛");
+      //   } else {
+      //     this.$modal.msgError("鍩虹淇℃伅淇敼澶辫触");
+      //   }
+      // });
     },
     // 寮傚父鍒楁覆鏌�
     tableRowClassName({ row, rowIndex }) {
@@ -2601,14 +2867,38 @@
   //   console.log(11);
   // },
   beforeRouteLeave(to, from, next) {
-    this.$refs.callButton.cleanupResources();
-    if (this.$refs.CallCenterLs) {
-      console.log(1);
+  const callButton = this.$refs.callButton;
 
+  // 濡傛灉瀛樺湪鍛煎彨缁勪欢涓旀鍦ㄩ�氳瘽涓�
+  if (callButton && callButton.isCalling) {
+    this.$confirm('褰撳墠姝e湪閫氳瘽涓紝纭畾瑕佺寮�姝ら〉闈㈠悧锛�', '鎻愮ず', {
+      confirmButtonText: '鎸傛柇骞剁寮�',
+      cancelButtonText: '缁х画閫氳瘽',
+      type: 'warning'
+    })
+      .then(() => {
+        // 鐢ㄦ埛纭绂诲紑锛屼富鍔ㄦ寕鏂苟娓呯悊
+        callButton.cleanupResources();
+        if (this.$refs.CallCenterLs) {
+          this.$refs.CallCenterLs.handleSeatLogout();
+        }
+        next();
+      })
+      .catch(() => {
+        // 鐢ㄦ埛鍙栨秷锛岄樆姝㈣矾鐢辫烦杞�
+        next(false);
+      });
+  } else {
+    // 鏈�氳瘽鎴栧懠鍙粍浠朵笉瀛樺湪锛屾甯告竻鐞�
+    if (callButton) {
+      callButton.cleanupResources();
+    }
+    if (this.$refs.CallCenterLs) {
       this.$refs.CallCenterLs.handleSeatLogout();
     }
-    next(); // 纭繚璋冪敤 nex
-  },
+    next();
+  }
+}
   // beforeRouteUpdate() {
   //   console.log(33);
   // },
@@ -2937,6 +3227,7 @@
 
     .dev-text {
       margin-bottom: 10px;
+      display: flex;
     }
   }
 }

--
Gitblit v1.9.3