From f9902f7a3b79d22bde9f199263ac36de26816470 Mon Sep 17 00:00:00 2001
From: WXL (wul) <wl_5969728@163.com>
Date: 星期五, 08 五月 2026 14:46:10 +0800
Subject: [PATCH] 测试完成

---
 src/views/followvisit/record/detailpage/index.vue |  328 ++++++++++++++++++++++++++++++++++++-----------------
 1 files changed, 221 insertions(+), 107 deletions(-)

diff --git a/src/views/followvisit/record/detailpage/index.vue b/src/views/followvisit/record/detailpage/index.vue
index ca5b159..cfe9b61 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">{{
@@ -447,7 +448,7 @@
                       <div class="scriptTopic-dev" :key="index" v-else>
                         <div class="dev-text">
                           {{ index + 1 }}銆乕闂瓟]<span>{{
-                            item.scriptContent
+                            item.questiontext
                           }}</span>
                           <span v-if="item.valueType == 3">(鍙兘杈撳叆鏁板瓧)</span>
                         </div>
@@ -558,11 +559,7 @@
             <div class="header-actions">
               <!-- 鍩虹鎿嶄綔鎸夐挳缁� -->
               <div class="action-group basic-actions">
-                <el-button
-                  type="primary"
-                  plain
-                  @click="Editsingletasksonyic('')"
-                >
+                <el-button type="primary" plain @click="alterpatient('')">
                   淇濆瓨鍩虹淇℃伅
                 </el-button>
 
@@ -580,7 +577,7 @@
                   type="primary"
                   round
                   @click="sendAgain"
-                  v-if="form.isVisitAgain != 2"
+                  v-if="(form.isVisitAgain != 2) & (visitAgain == 2)"
                 >
                   鍐嶆闅忚
                 </el-button>
@@ -655,8 +652,11 @@
                     </el-input>
                   </el-form-item>
                 </el-col>
-                 <el-col :span="10">
-                  <el-form-item label="鐭彿鐢佃瘽">
+                <el-col :span="10">
+                  <el-form-item
+                    label="鐭彿鐢佃瘽"
+                    v-if="orgname == '鏅畞鐣叉棌鑷不鍘夸汉姘戝尰闄�'"
+                  >
                     <el-input
                       placeholder="鑱旂郴鐢佃瘽缂哄け"
                       v-model="userform.telshortcode"
@@ -664,7 +664,7 @@
                       <el-button
                         slot="append"
                         icon="el-icon-phone"
-                        @click="handleCall(userform.telshortcode, 'tel')"
+                        @click="handleCall(userform.telshortcode, 'tel', true)"
                       ></el-button>
                     </el-input>
                   </el-form-item>
@@ -752,12 +752,44 @@
                   />
                 </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>
 
               <!-- 闅忚鎯呭喌 -->
@@ -1122,6 +1154,7 @@
   serviceSubtaskDetailedit,
   serviceSubtaskDetailadd,
   updatePersonVoices,
+  savequestiondetail,
   addPersonVoices,
   query360PatInfo,
   sendMsg,
@@ -1134,6 +1167,7 @@
 import CallButton from "@/components/CallButton";
 import MergeAndModify from "./MergeAndModify.vue";
 import CallCenterLs from "@/components/CallCenterLs";
+import store from "@/store";
 export default {
   components: {
     CallButton,
@@ -1201,7 +1235,13 @@
       },
     },
   },
-  dicts: ["sys_normal_disable", "sys_user_sex", "sys_yujing", "sys_suggest"],
+  dicts: [
+    "sys_normal_disable",
+    "quickfollow_up",
+    "sys_user_sex",
+    "sys_yujing",
+    "sys_suggest",
+  ],
   data() {
     const validatePhone = (rule, value, callback) => {
       if (!value) {
@@ -1216,6 +1256,7 @@
       }, 300);
     };
     return {
+      visitAgain: 1,
       userid: "",
       currentPhoneNumber: "",
       callType: "", // 鐢ㄤ簬鍖哄垎鏄摢涓數璇�
@@ -1226,6 +1267,29 @@
       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, // 鎺у埗寤剁画鎶ょ悊鎸夐挳鏄剧ず
@@ -1271,6 +1335,14 @@
           label: "鍏朵粬",
           value: "7",
         },
+      ],
+      quickContents: [
+        "鐥呮儏绋冲畾锛岀户缁綋鍓嶆不鐤�",
+        "鎮h�呭凡姝讳骸",
+        "鎮h�呬笉闇�瑕侀殢璁�",
+        "鎸夋椂鏈嶈嵂锛屾敞鎰忎紤鎭�",
+        "楗娓呮贰锛屽繉杈涜荆",
+        "棰勭害涓嬫澶嶈瘖",
       ],
       tableDatatop: [], //棰樼洰琛�
       voiceDatatop: [], //棰樼洰琛�
@@ -1502,6 +1574,10 @@
     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;
@@ -1566,8 +1642,6 @@
   methods: {
     // 鑾峰彇涓婚鏍峰紡绫�
     getTopicClass(item) {
-      console.log(item.isabnormal, "getTopicClass");
-
       // 鏍规嵁鐘舵�佸�艰繑鍥炲搴旂殑鏍峰紡绫�
       if (item.isabnormal == 1) {
         return "scriptTopic-isabnormal"; // 寮傚父 - 绾㈣壊
@@ -1586,6 +1660,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) {
@@ -1610,13 +1707,15 @@
           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) {
+              console.log(item.scriptResult, "item.scriptResult");
               item.scriptResult = item.scriptResult.split("&");
               item.isoption = 3;
+            } else if (!item.scriptResultId && item.scriptType == 2) {
+              item.scriptResult = [];
             }
           });
           this.taskname = res.data.taskName;
@@ -1625,8 +1724,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.url) {
+            window.open(res.url, "_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;
 
@@ -1740,7 +1856,7 @@
             if (item.targetvalue) {
               item.scriptResult = item.targetvalue.split("&");
             } else {
-              item.scriptResult = [];
+              item.scriptResult = item.asrtext;
             }
           });
 
@@ -1756,19 +1872,19 @@
         if (res.code == 200) {
           this.tableDatatop = res.data.ivrTaskTemplateScriptVOList;
           this.tableDatatop.forEach((item) => {
+            item.scriptID = item.id;
             item.id = null;
             // 绫诲瀷鍒ゆ柇璧嬪��
-            if (item.ivrTaskScriptTargetoptionList) {
+            if (item.ivrTaskScriptTargetoptionList.length) {
               item.targetvalue = 1;
               item.questiontext = item.scriptContent;
+
               item.targetvalue = item.ivrTaskScriptTargetoptionList
                 .map((obj) => obj.targetvalue)
                 .join("&");
             }
             if (item.targetvalue) {
               item.scriptResult = item.targetvalue.split("&");
-            } else {
-              item.scriptResult = [];
             }
           });
         }
@@ -1776,16 +1892,18 @@
     },
     // 鍖绘姢浜哄憳瀛樺偍鏁版嵁
     getdetail() {
+      console.log(1);
       let excep = "";
-      const promises = [];
+
+      // 鍏堝鐞� tableDatatop 涓殑鏁版嵁
       this.tableDatatop.forEach((item) => {
         if (item.valueType == 3 && item.scriptResult) {
-          // 楠岃瘉鏄惁涓烘湁鏁堟暟瀛�
           if (!/^\d+$/.test(item.scriptResult)) {
             this.$message.error(`闂 "${item.scriptContent}" 蹇呴』杈撳叆鏁板瓧`);
             return;
           }
         }
+
         var objs = item.svyTaskTemplateTargetoptions.find(
           (items) => items.optioncontent == item.scriptResult
         );
@@ -1796,46 +1914,45 @@
             this.selectedTag = objs.isabnormal;
           }
         }
-        console.log(excep, "excep");
 
-        let obj = {
-          asrtext: null,
-          patid: this.patid,
-          subId: this.id,
-          taskid: this.taskid,
-          scriptid: item.id,
-          excep: excep,
-          questiontext: item.scriptContent,
-          categoryid: item.categoryid,
-          answerps: item.answerps || null, // 娣诲姞闄勫姞淇℃伅
-        };
-        if (item.scriptType == 2 && item.scriptResult[0]) {
-          obj.asrtext = item.scriptResult.join("&");
+        // 澶勭悊 scriptResult锛岀洿鎺ヤ慨鏀瑰師濮嬫暟鎹�
+        if (item.scriptType == 2 && item.scriptResult) {
+          // 澶勭悊鏁扮粍绫诲瀷鐨� scriptResult
+          if (Array.isArray(item.scriptResult)) {
+            item.originalScriptResult = item.scriptResult; // 淇濆瓨鍘熷鏁扮粍锛堝彲閫夛級
+            item.scriptResult = item.scriptResult.join("&"); // 杞崲涓哄瓧绗︿覆
+          }
         } else if (item.scriptType != 2 && item.scriptResult) {
-          obj.asrtext = item.scriptResult;
-        }
-
-        if (item.isoption == 3) {
-          promises.push(serviceSubtaskDetailedit(obj));
-        } else {
-          promises.push(serviceSubtaskDetailadd(obj));
+          // 纭繚闈炴暟缁勭被鍨嬪凡缁忔槸瀛楃涓�
+          if (Array.isArray(item.scriptResult)) {
+            item.originalScriptResult = item.scriptResult; // 淇濆瓨鍘熷鏁扮粍锛堝彲閫夛級
+            item.scriptResult =
+              item.scriptResult.length > 0 ? item.scriptResult[0] : "";
+          }
         }
       });
 
-      // 浣跨敤 Promise.all 绛夊緟鎵�鏈夊紓姝ユ搷浣滃畬鎴�
-      Promise.all(promises)
-        .then((results) => {
-          // 鎵�鏈夊紓姝ユ搷浣滄垚鍔熷畬鎴愬悗鐨勯�昏緫
-          results.forEach((res) => {
-            if (res.code !== 200) {
-              this.$modal.error("淇敼澶辫触");
-            }
-          });
-          this.Editsingletasksonyic(6);
-          const orgName = localStorage.getItem("orgname");
-          console.log(orgName, "orgName");
+      // 鍒涘缓鍓湰鐢ㄤ簬淇濆瓨锛岄伩鍏嶅奖鍝嶆樉绀�
+      const saveData = this.tableDatatop.map((item) => ({
+        ...item,
+        // 濡傛灉闇�瑕侊紝鍙互鍦ㄨ繖閲屽仛鏈�鍚庣殑鏁版嵁娓呯悊
+        scriptResult: item.scriptResult || "", // 纭繚涓嶄负 undefined
+      }));
 
-          if (this.form.isVisitAgain != 1 || orgName == "涓芥按甯備腑鍖婚櫌") {
+      let obj = {
+        svyTaskTemplateScriptVOS: saveData, // 浣跨敤澶勭悊鍚庣殑鏁版嵁
+        param1: this.taskid,
+        param2: this.patid,
+        param6: this.id,
+        type: 2,
+      };
+      savequestiondetail(obj).then((res) => {
+        if (res.code == 200) {
+          this.$modal.msgSuccess("鏈嶅姟淇濆瓨鎴愬姛");
+          this.Editsingletasksonyic(this.serviceStates);
+          const orgName = localStorage.getItem("orgname");
+
+          if (this.form.isVisitAgain != 1 || orgName == "涓芥按甯備腑鍖婚櫌"||this.visitAgain==1) {
             this.Torouter();
             return;
           }
@@ -1862,11 +1979,8 @@
             .catch(() => {
               this.Torouter();
             });
-        })
-        .catch((error) => {
-          // 濡傛灉鏈変换浣曚竴涓紓姝ユ搷浣滃け璐ワ紝浼氳繘鍏ヨ繖閲�
-          console.error("鍙戠敓閿欒锛�", error);
-        });
+        }
+      });
     },
     Torouter() {
       if (this.form.serviceType == 13) {
@@ -1927,8 +2041,8 @@
     isValidPhone(phone) {
       return this.validatePhoneNumber(phone).isValid;
     },
-    handleCall(phone, type) {
-      if (!this.isValidPhone(phone)) {
+    handleCall(phone, type, dh) {
+      if (!this.isValidPhone(phone) && !dh) {
         this.$message.error("璇疯緭鍏ユ纭殑鎵嬫満鍙风爜");
         return;
       }
@@ -1998,36 +2112,48 @@
     },
     yuyingetdetail() {
       const dataToSubmit = JSON.parse(JSON.stringify(this.tableDatatop));
-      console.log(dataToSubmit, "dataToSubmit");
-      // return;
+
       dataToSubmit.forEach((item, index) => {
         // 瀵规嫹璐濈殑鏁版嵁杩涜鎿嶄綔锛屼笉褰卞搷鍘熷鐨� scriptResult 鏁扮粍
-        item.scriptResult = item.scriptResult.join("&");
+        if (item.targetvalue) {
+          item.scriptResult = item.scriptResult.join("&");
+          item.asrtext = item.matchedtext;
+          item.ivrtext = item.matchedtext;
+        } else {
+          item.asrtext = item.scriptResult;
+          item.ivrtext = item.scriptResult;
+        }
         item.templatequestionnum = index + 1;
         item.subId = this.id;
+
         item.taskid = this.taskid;
-        item.asrtext = item.matchedtext;
         if (!item.id) {
           item.isoperation = 1;
         }
         item.patid = this.patid;
         item.templateid = item.templateID;
+        if (item.nextScriptno == null) {
+          item.nextScriptno = index == dataToSubmit.length - 1 ? 0 : index + 2;
+        }
       });
+      console.log("c", 3);
 
       let obj = {
-        serviceSubtaskDetailList: dataToSubmit, // 鎻愪氦澶勭悊鍚庣殑鍓湰
+        ivrTaskTemplateScriptVOList: dataToSubmit, // 鎻愪氦澶勭悊鍚庣殑鍓湰
         param1: this.taskid,
         param2: this.patid,
-        subId: this.id,
+        param6: this.id,
+        type: 1,
       };
+      console.log("c", 4);
       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;
       }
-      addPersonVoices(obj).then((res) => {
+      savequestiondetail(obj).then((res) => {
         if (res.code == 200) {
           this.$modal.msgSuccess("鏈嶅姟淇濆瓨鎴愬姛");
           this.$modal
@@ -2088,13 +2214,15 @@
           this.form = res.rows[0].serviceSubtaskList.find(
             (item) => item.id == this.id
           );
-          console.log(this.form, "serviceType");
-
+          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("褰撳墠鏈嶅姟鏈埌鍙戦�佹椂闂磋璋ㄦ厧淇敼", "鎻愮ず", {
               confirmButtonText: "纭畾",
@@ -2189,6 +2317,15 @@
         }
       });
     },
+    alterpatient(sendstate) {
+      alterpatient(this.userform).then((res) => {
+        if (res.code == 200) {
+          this.$modal.msgSuccess("鍩虹淇℃伅淇濆瓨鎴愬姛");
+        } else {
+          this.$modal.msgError("鍩虹淇℃伅淇敼澶辫触");
+        }
+      });
+    },
     // 寮傚父鍒楁覆鏌�
     tableRowClassName({ row, rowIndex }) {
       if (row.id == this.id) {
@@ -2273,35 +2410,7 @@
         })
         .catch(() => {});
     },
-    aahandleOptionChange(a, b, c) {
-      const result = c.find((item) => item.optioncontent == a);
-      if (result.nextQuestion == 0) {
-        this.tableDatatop = this.tableDatatop.reduce((acc, item, i) => {
-          acc.push(i > b ? { ...item, astrict: 1 } : item);
-          return acc;
-        }, []);
-      } else {
-        this.tableDatatop = this.tableDatatop.reduce((acc, item, i) => {
-          acc.push(i > b ? { ...item, astrict: 0 } : item);
-          return acc;
-        }, []);
-      }
-      if (this.Voicetype) {
-        var obj = this.tableDatatop[b].ivrTaskScriptTargetoptionList.find(
-          (item) => item.optioncontent == a
-        );
-      } else {
-        var obj = this.tableDatatop[b].svyTaskTemplateTargetoptions.find(
-          (item) => item.optioncontent == a
-        );
-      }
-      if (obj.isabnormal) {
-        this.tableDatatop[b].isabnormal = true;
-      } else {
-        this.tableDatatop[b].isabnormal = false;
-      }
-      this.$forceUpdate();
-    },
+
     handleRadioToggles(questionItem, optionValue) {
       if (!questionItem.matchedtext) {
         questionItem.matchedtext == "";
@@ -2360,7 +2469,13 @@
       this.tableDatatop[questionIndex].showAppendInput =
         selectedOptionObj.appendflag == 1;
       console.log(this.tableDatatop);
-
+      if (
+        selectedOptionObj.nextQuestion !== undefined &&
+        selectedOptionObj.nextQuestion !== null
+      ) {
+        this.tableDatatop[questionIndex].nextScriptno =
+          selectedOptionObj.nextQuestion;
+      }
       // if (!this.tableDatatop[questionIndex].showAppendInput) {
       //   this.tableDatatop[questionIndex].answerps = ""; // 娓呴櫎闄勫姞淇℃伅
       // }
@@ -2430,7 +2545,6 @@
           hiddenByEnd: index === questionIndex + 1 ? false : item.hiddenByEnd,
         }));
       }
-      2;
 
       this.$forceUpdate();
     },

--
Gitblit v1.9.3