From 741805d8daa2d2baa0b6b75bc1724488baf9c6bc Mon Sep 17 00:00:00 2001
From: WXL (wul) <wl_5969728@163.com>
Date: 星期一, 15 六月 2026 14:55:10 +0800
Subject: [PATCH] 测试完成

---
 src/views/followvisit/record/detailpage/index.vue |  329 +++++++++++++++++++++++++++++++++++++-----------------
 1 files changed, 226 insertions(+), 103 deletions(-)

diff --git a/src/views/followvisit/record/detailpage/index.vue b/src/views/followvisit/record/detailpage/index.vue
index e482303..1dfa1a7 100644
--- a/src/views/followvisit/record/detailpage/index.vue
+++ b/src/views/followvisit/record/detailpage/index.vue
@@ -77,7 +77,7 @@
                     scope.row.sfzh,
                     scope.row.drcode,
                     scope.row.drname,
-                    scope.row.patid,
+                    scope.row.patid
                   )
                 "
                 ><span class="button-textsc">{{
@@ -95,43 +95,45 @@
           >
           </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"
+              >
+                <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="primary" :disable-transitions="false"
+                    >闅忚涓�</el-tag
+                  >
+                </div>
+                <div v-if="scope.row.sendstateView == 3">
+                  <el-tag type="warning" :disable-transitions="false"
+                    >鏈畬鎴�</el-tag
+                  >
+                </div>
+                <div v-if="scope.row.sendstateView == 4">
+                  <el-tag type="success" :disable-transitions="false"
+                    >宸插畬鎴�</el-tag
+                  >
+                </div>
+                <div v-if="scope.row.sendstateView == 5">
+                  <el-tag type="danger" :disable-transitions="false"
+                    >鏃犻渶闅忚</el-tag
+                  >
+                </div>
+              </el-tooltip>
             </template>
           </el-table-column>
           <el-table-column
@@ -142,6 +144,18 @@
             show-overflow-tooltip
           >
           </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"
@@ -153,6 +167,7 @@
               <span>{{ formatTime(scope.row.endtime) }}</span>
             </template></el-table-column
           >
+
           <el-table-column
             label="璐d换鎶ゅ+"
             width="120"
@@ -262,9 +277,33 @@
       <!-- 闅忚鍐呭 -->
       <div class="call-action">
         <div class="call-container">
-          <!-- <div class="call-header">
-            <h2>涓�閿懠鍙姛鑳�</h2>
-          </div> -->
+          <div
+            style="display: flex"
+            v-if="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>
@@ -291,9 +330,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">
@@ -344,9 +388,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
@@ -378,9 +427,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">
@@ -414,9 +468,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
@@ -447,7 +500,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>
@@ -577,7 +630,7 @@
                   type="primary"
                   round
                   @click="sendAgain"
-                  v-if="form.isVisitAgain != 2"
+                  v-if="(form.isVisitAgain != 2) & (visitAgain == 2)"
                 >
                   鍐嶆闅忚
                 </el-button>
@@ -793,7 +846,13 @@
               </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"
@@ -1157,7 +1216,10 @@
   savequestiondetail,
   addPersonVoices,
   query360PatInfo,
+  updateTemplate,
+  query360PatInfonh,
   sendMsg,
+  getconfigKey,
 } from "@/api/AiCentre/index";
 import {
   messagelistpatient,
@@ -1165,13 +1227,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: {
@@ -1236,6 +1301,7 @@
   },
   dicts: [
     "sys_normal_disable",
+    "dimensionality_type",
     "quickfollow_up",
     "sys_user_sex",
     "sys_yujing",
@@ -1255,7 +1321,9 @@
       }, 300);
     };
     return {
+      visitAgain: 1,
       userid: "",
+      defaultKey: false, //鏄惁鍙粯璁ゅ~鎶�
       currentPhoneNumber: "",
       callType: "", // 鐢ㄤ簬鍖哄垎鏄摢涓數璇�
       isSipRegistering: true, // SIP娉ㄥ唽鐘舵��
@@ -1293,6 +1361,7 @@
       showContinuationCareBtn: false, // 鎺у埗寤剁画鎶ょ悊鎸夐挳鏄剧ず
       // 璺敱鐩戝惉鐩稿叧
       routeWatcher: null,
+
       lastRoutePath: this.$route.path,
       input: "浠婂ぉ韬綋杩樹笉閿�",
       radio: "2",
@@ -1437,56 +1506,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: [
         {
@@ -1572,6 +1591,8 @@
     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 == "鐪佺珛鍚屽痉缈犺嫅闄㈠尯") {
@@ -1607,6 +1628,7 @@
       ];
     }
     this.getTaskservelist();
+    this.getconfigKey();
   },
   mounted() {
     // 鐩戝惉瀛愮粍浠剁殑sipStatus灞炴�у彉鍖�
@@ -1646,7 +1668,30 @@
         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) {
@@ -1723,8 +1768,8 @@
       const orgname = localStorage.getItem("orgname");
       if (orgname == "鍗楀崕澶у闄勫睘绗竴鍖婚櫌") {
         query360PatInfonh(id).then((res) => {
-          if (res.url) {
-            window.open(res.url, "_blank");
+          if (res.data) {
+            window.open(res.data, "_blank");
           } else {
             this.$modal.msgWarning("360鏌ヨ鏃犵粨鏋�");
           }
@@ -1947,7 +1992,11 @@
           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;
           }
@@ -2031,6 +2080,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) {
@@ -2144,7 +2255,11 @@
       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;
       }
@@ -2209,12 +2324,17 @@
           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("褰撳墠鏈嶅姟鏈埌鍙戦�佹椂闂磋璋ㄦ厧淇敼", "鎻愮ず", {
               confirmButtonText: "纭畾",
@@ -2270,6 +2390,8 @@
         if (res.code == 200) {
           objson = res.rows[0].serviceSubtaskList[0];
           objson.suggest = son;
+          objson.remark = this.form.remark;
+          objson.taskSituation = this.form.taskSituation;
           Editsingletaskson(objson).then((res) => {
             if (res.code) {
               this.$modal.msgSuccess("鏈嶅姟璁板綍鎴愬姛");
@@ -3044,6 +3166,7 @@
 
     .dev-text {
       margin-bottom: 10px;
+      display: flex;
     }
   }
 }

--
Gitblit v1.9.3