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 |  327 ++++++++++++++++++++++++++++++++---------------------
 1 files changed, 197 insertions(+), 130 deletions(-)

diff --git a/src/views/followvisit/record/detailpage/index.vue b/src/views/followvisit/record/detailpage/index.vue
index da3b538..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>
@@ -755,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>
 
               <!-- 闅忚鎯呭喌 -->
@@ -1138,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,
@@ -1205,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) {
@@ -1220,6 +1256,7 @@
       }, 300);
     };
     return {
+      visitAgain: 1,
       userid: "",
       currentPhoneNumber: "",
       callType: "", // 鐢ㄤ簬鍖哄垎鏄摢涓數璇�
@@ -1230,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, // 鎺у埗寤剁画鎶ょ悊鎸夐挳鏄剧ず
@@ -1275,6 +1335,14 @@
           label: "鍏朵粬",
           value: "7",
         },
+      ],
+      quickContents: [
+        "鐥呮儏绋冲畾锛岀户缁綋鍓嶆不鐤�",
+        "鎮h�呭凡姝讳骸",
+        "鎮h�呬笉闇�瑕侀殢璁�",
+        "鎸夋椂鏈嶈嵂锛屾敞鎰忎紤鎭�",
+        "楗娓呮贰锛屽繉杈涜荆",
+        "棰勭害涓嬫澶嶈瘖",
       ],
       tableDatatop: [], //棰樼洰琛�
       voiceDatatop: [], //棰樼洰琛�
@@ -1506,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;
@@ -1570,8 +1642,6 @@
   methods: {
     // 鑾峰彇涓婚鏍峰紡绫�
     getTopicClass(item) {
-      console.log(item.isabnormal, "getTopicClass");
-
       // 鏍规嵁鐘舵�佸�艰繑鍥炲搴旂殑鏍峰紡绫�
       if (item.isabnormal == 1) {
         return "scriptTopic-isabnormal"; // 寮傚父 - 绾㈣壊
@@ -1590,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) {
@@ -1614,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;
@@ -1629,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;
 
@@ -1744,7 +1856,7 @@
             if (item.targetvalue) {
               item.scriptResult = item.targetvalue.split("&");
             } else {
-              item.scriptResult = [];
+              item.scriptResult = item.asrtext;
             }
           });
 
@@ -1760,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 = [];
             }
           });
         }
@@ -1780,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
         );
@@ -1800,34 +1914,33 @@
             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 (Array.isArray(item.scriptResult)) {
+            item.originalScriptResult = item.scriptResult; // 淇濆瓨鍘熷鏁扮粍锛堝彲閫夛級
+            item.scriptResult =
+              item.scriptResult.length > 0 ? item.scriptResult[0] : "";
+          }
         }
-
-        // if (item.isoption == 3) {
-        //   promises.push(serviceSubtaskDetailedit(obj));
-        // } else {
-        //   promises.push(serviceSubtaskDetailadd(obj));
-        // }
       });
-      console.log(this.tableDatatop);
+
+      // 鍒涘缓鍓湰鐢ㄤ簬淇濆瓨锛岄伩鍏嶅奖鍝嶆樉绀�
+      const saveData = this.tableDatatop.map((item) => ({
+        ...item,
+        // 濡傛灉闇�瑕侊紝鍙互鍦ㄨ繖閲屽仛鏈�鍚庣殑鏁版嵁娓呯悊
+        scriptResult: item.scriptResult || "", // 纭繚涓嶄负 undefined
+      }));
+
       let obj = {
-        svyTaskTemplateScriptVOS: this.tableDatatop, // 鎻愪氦澶勭悊鍚庣殑鍓湰
+        svyTaskTemplateScriptVOS: saveData, // 浣跨敤澶勭悊鍚庣殑鏁版嵁
         param1: this.taskid,
         param2: this.patid,
         param6: this.id,
@@ -1836,10 +1949,10 @@
       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;
           }
@@ -1868,51 +1981,6 @@
             });
         }
       });
-      // 浣跨敤 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");
-
-      //     if (this.form.isVisitAgain != 1 || orgName == "涓芥按甯備腑鍖婚櫌") {
-      //       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();
-      //       });
-      //   })
-      //   .catch((error) => {
-      //     // 濡傛灉鏈変换浣曚竴涓紓姝ユ搷浣滃け璐ワ紝浼氳繘鍏ヨ繖閲�
-      //     console.error("鍙戠敓閿欒锛�", error);
-      //   });
     },
     Torouter() {
       if (this.form.serviceType == 13) {
@@ -2044,21 +2112,31 @@
     },
     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 = {
         ivrTaskTemplateScriptVOList: dataToSubmit, // 鎻愪氦澶勭悊鍚庣殑鍓湰
@@ -2067,10 +2145,11 @@
         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;
       }
@@ -2135,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: "纭畾",
@@ -2236,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) {
@@ -2320,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 == "";
@@ -2407,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 = ""; // 娓呴櫎闄勫姞淇℃伅
       // }
@@ -2477,7 +2545,6 @@
           hiddenByEnd: index === questionIndex + 1 ? false : item.hiddenByEnd,
         }));
       }
-      2;
 
       this.$forceUpdate();
     },

--
Gitblit v1.9.3