From d90b45d7e9e38e34c044b772006004f2a4cb8b8e Mon Sep 17 00:00:00 2001
From: WXL (wul) <wl_5969728@163.com>
Date: 星期五, 26 六月 2026 13:51:50 +0800
Subject: [PATCH] 测试完成

---
 src/views/followvisit/record/detailpage/index.vue |  429 ++++++++++++++++++++++++++++++++++------------------
 1 files changed, 279 insertions(+), 150 deletions(-)

diff --git a/src/views/followvisit/record/detailpage/index.vue b/src/views/followvisit/record/detailpage/index.vue
index e1f3830..ed5040e 100644
--- a/src/views/followvisit/record/detailpage/index.vue
+++ b/src/views/followvisit/record/detailpage/index.vue
@@ -107,6 +107,7 @@
                 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"
@@ -114,22 +115,12 @@
                   >
                 </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"
+                <div v-if="scope.row.sendstateView == 3">
+                  <el-tag type="warning" :disable-transitions="false"
                     >鏃犻渶闅忚</el-tag
                   >
                 </div>
@@ -145,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"
@@ -155,6 +158,7 @@
               <span>{{ formatTime(scope.row.endtime) }}</span>
             </template></el-table-column
           >
+
           <el-table-column
             label="璐d换鎶ゅ+"
             width="120"
@@ -169,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"
@@ -264,15 +319,39 @@
       <!-- 闅忚鍐呭 -->
       <div class="call-action">
         <div class="call-container">
-          <template-selector
-            v-if="orgname == '鍗楀崕澶у闄勫睘绗竴鍖婚櫌' && !Voicetype"
-            v-model="form.templateid"
-            :templateName="form.templatename"
-            :service-type="form.serviceType"
-            :is-editable="form.sendState !== 2"
-            @select="handleTemplateSelect"
-            @clear="handleTemplateClear"
-          />
+          <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>
           </div>
@@ -283,7 +362,14 @@
                   ><i class="el-icon-notebook-1"></i> 闂嵎闅忚缁撴灉</span
                 >
                 <div class="CONTENT">
-                  <div class="title">{{ taskname ? taskname : "闂嵎" }}</div>
+                  <div class="title">
+                    {{ taskname ? taskname : "闂嵎" }}
+                    <span style="margin-left: 50px">
+                      <el-button type="primary" round @click="smsSubTask">
+                        闂嵎鐭俊鎺ㄩ��
+                      </el-button>
+                    </span>
+                  </div>
 
                   <div class="preview-left" v-if="!Voicetype">
                     <div
@@ -966,34 +1052,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>
@@ -1187,6 +1260,8 @@
   updateTemplate,
   query360PatInfonh,
   sendMsg,
+  smsSubTask,
+  getconfigKey,
 } from "@/api/AiCentre/index";
 import {
   messagelistpatient,
@@ -1290,6 +1365,7 @@
     return {
       visitAgain: 1,
       userid: "",
+      defaultKey: false, //鏄惁鍙粯璁ゅ~鎶�
       currentPhoneNumber: "",
       callType: "", // 鐢ㄤ簬鍖哄垎鏄摢涓數璇�
       isSipRegistering: true, // SIP娉ㄥ唽鐘舵��
@@ -1472,56 +1548,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: [
         {
@@ -1644,6 +1670,7 @@
       ];
     }
     this.getTaskservelist();
+    this.getconfigKey();
   },
   mounted() {
     // 鐩戝惉瀛愮粍浠剁殑sipStatus灞炴�у彉鍖�
@@ -1683,7 +1710,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) {
@@ -1992,29 +2041,29 @@
             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();
+          //   });
         }
       });
     },
@@ -2101,6 +2150,58 @@
 
     handleTemplateClear() {
       console.log("娓呴櫎浜嗘ā鏉块�夋嫨");
+    },
+    smsSubTask() {
+      this.$modal
+        .confirm("鏄惁鍚戞偅鑰呴�氳繃鐭俊鎺ㄩ�佹枃浠跺唴瀹癸紵")
+        .then(() => {
+          console.log(11, this.id);
+
+          smsSubTask(this.id).then((res) => {
+            console.log(11);
+
+            if (res.code) {
+              this.$modal.msgSuccess("鏂囦欢宸查�氳繃鐭俊鎺ㄩ�佺粰鎮h��");
+            } else {
+            }
+          });
+        })
+        .catch((err) => {
+          console.log(err);
+        });
+    },
+    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) {
@@ -2225,29 +2326,31 @@
       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();
+          //     });
         }
       });
     },
@@ -2295,7 +2398,7 @@
           console.log(targetDate, "鐩爣鏃ユ湡");
 
           if (now < targetDate && this.form.sendstate == 2) {
-            this.$confirm("褰撳墠鏈嶅姟鏈埌鍙戦�佹椂闂磋璋ㄦ厧淇敼", "鎻愮ず", {
+            this.$confirm("褰撳墠鏈嶅姟鏈埌闅忚鏃堕棿璇疯皑鎱庝慨鏀�", "鎻愮ず", {
               confirmButtonText: "纭畾",
               cancelButtonText: "鍙栨秷",
               type: "warning",
@@ -2350,6 +2453,7 @@
           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) {
@@ -2391,13 +2495,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 }) {
@@ -2789,13 +2894,37 @@
   //   console.log(11);
   // },
   beforeRouteLeave(to, from, next) {
-    this.$refs.callButton.cleanupResources();
-    if (this.$refs.CallCenterLs) {
-      console.log(1);
+    const callButton = this.$refs.callButton;
 
-      this.$refs.CallCenterLs.handleSeatLogout();
+    // 濡傛灉瀛樺湪鍛煎彨缁勪欢涓旀鍦ㄩ�氳瘽涓�
+    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();
     }
-    next(); // 纭繚璋冪敤 nex
   },
   // beforeRouteUpdate() {
   //   console.log(33);

--
Gitblit v1.9.3