From f6bc6ed2dec9cd60853db928fa6e56a92ab5de0d Mon Sep 17 00:00:00 2001
From: WXL <1785969728@qq.com>
Date: 星期三, 12 二月 2025 11:07:17 +0800
Subject: [PATCH] 测试完成

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

diff --git a/src/views/followvisit/record/detailpage/index.vue b/src/views/followvisit/record/detailpage/index.vue
index 93964f2..6e7ae29 100644
--- a/src/views/followvisit/record/detailpage/index.vue
+++ b/src/views/followvisit/record/detailpage/index.vue
@@ -26,22 +26,39 @@
         <el-table :data="logsheetlist" style="width: 100%">
           <el-table-column prop="sendname" align="center" label="濮撳悕">
           </el-table-column>
-          <el-table-column prop="sendstate" align="center" label="鏈嶅姟鐘舵��">
+          <el-table-column
+            prop="sendstate"
+            align="center"
+            width="200"
+            label="鏈嶅姟鐘舵��"
+          >
             <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 v-if="scope.row.sendstate == 1">
+                <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>
-          </template>
+              <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>
+            </template>
           </el-table-column>
           <el-table-column
             prop="finishtime"
@@ -177,19 +194,20 @@
       </div>
     </div>
     <div>
-      <el-tabs type="border-card">
-        <el-tab-pane>
+      <el-tabs v-model="activeName" type="border-card">
+        <el-tab-pane name="wj">
           <span class="mulsz" slot="label"
             ><i class="el-icon-notebook-1"></i> 闂嵎闅忚缁撴灉</span
           >
           <div class="CONTENT">
             <div class="title">{{ taskname ? taskname : "闂嵎" }}</div>
-            <div class="preview-left">
+            <!-- 闂嵎浠诲姟灞曠ず -->
+            <div class="preview-left" v-if="!Voicetype">
               <!-- 鍗曢�� -->
               <div
                 class="topic-dev"
                 v-for="(item, index) in tableDatatop"
-                :key="item.aaa"
+                :key="item.id"
               >
                 <div
                   :class="
@@ -280,41 +298,121 @@
                 </div>
               </div>
             </div>
-            <el-button type="primary" @click="getdetail">淇濆瓨闂嵎</el-button>
+            <!-- 璇煶闂嵎褰㈠紡灞曠ず -->
+            <div class="preview-left" v-else>
+              <!-- 鍗曢�� -->
+              <div
+                class="topic-dev"
+                v-for="(item, index) in tableDatatop"
+                :key="item.id"
+              >
+                <div v-if="item.targetvalue">
+                  <div class="dev-text">
+                    {{ index + 1 }}銆乕鍗曢�塢<span>{{ item.questiontext }}</span>
+                  </div>
+                  <div class="dev-xx">
+                    <el-radio-group
+                      v-model="item.matchedtext"
+                      @change="handleOptionChange($event, index, item)"
+                    >
+                      <el-radio
+                        v-for="(items, index) in item.scriptResult"
+                        :key="items"
+                        :label="items"
+                        >{{ items }}</el-radio
+                      >
+                    </el-radio-group>
+                  </div>
+                  <div v-show="item.prompt">
+                    <el-alert :title="item.prompt" type="warning"> </el-alert>
+                  </div>
+                </div>
+
+                <!-- 濉┖ -->
+                <div class="scriptTopic-dev" :key="index" v-else>
+                  <div class="dev-text">
+                    {{ index + 1 }}銆乕闂瓟]<span>{{ item.questiontext }}</span>
+                  </div>
+                  <div class="dev-xx">
+                    <el-input
+                      type="textarea"
+                      :rows="2"
+                      placeholder="璇疯緭鍏ョ瓟妗�"
+                      v-model="item.matchedtext"
+                      clearable
+                    >
+                    </el-input>
+                  </div>
+                </div>
+              </div>
+            </div>
+            <el-button v-if="Voicetype" type="primary" @click="yuyingetdetail"
+              >淇濆瓨鏈嶅姟璇︽儏</el-button
+            >
+            <el-button v-else type="primary" @click="getdetail"
+              >淇濆瓨鏈嶅姟璇︽儏</el-button
+            >
           </div>
         </el-tab-pane>
-        <el-tab-pane>
+        <!-- 璇煶闅忚璇︽儏---------------------- -->
+        <el-tab-pane name="yy">
           <span class="mulsz" slot="label"
             ><i class="el-icon-headset"></i> 璇煶闅忚璇︽儏</span
           >
           <div class="borderdiv">
             <div class="title">{{ taskname ? taskname : "闂嵎" }}</div>
+            <div
+              style="
+                display: flex;
+                text-align: center;
+                align-items: center;
+                color: #59a0f0;
+              "
+            >
+              瀹屾暣璇煶锛�
+              <mini-audio
+                :audio-source="
+                  voice ? voice : 'https://example.com/example.mp3'
+                "
+              ></mini-audio>
+            </div>
             <div class="preview-left">
-              <div class="leftside">
-                <i class="el-icon-phone-outline"></i
-                ><span>鎮ㄤ粖澶╄韩浣撴儏鍐垫�庝箞鏍�</span>
-              </div>
-              <div class="offside">
-                <i class="el-icon-user"></i>
-                <div class="offside-value">
-                  <el-input v-model="input"></el-input>
-                  <el-radio v-model="radio" label="1">寰堟</el-radio>
-                  <el-radio v-model="radio" label="2">杩樺彲浠�</el-radio>
-                  <el-radio v-model="radio" label="3">涓嶅お濂�</el-radio>
-                  <el-radio v-model="radio" label="4">姣旇緝宸�</el-radio>
-                  <div>
-                    <mini-audio
-                          :audio-source="
-                            topicobj.ivrVoice
-                              ? topicobj.ivrVoice
-                              : 'https://example.com/example.mp3'
-                          "
-                        ></mini-audio>
+              <div v-for="item in voiceDatatop">
+                <div class="leftside">
+                  <i class="el-icon-phone-outline"></i
+                  ><span>{{ item.questiontext }}</span>
+                </div>
+                <div class="offside">
+                  <i class="el-icon-user"></i>
+                  <div class="offside-value">
+                    <el-input
+                      type="textarea"
+                      :autosize="{ minRows: 1 }"
+                      v-model="item.asrtext"
+                    ></el-input>
+                    <!-- <el-radio v-model="radio" label="1">寰堟</el-radio>
+                    <el-radio v-model="radio" label="2">杩樺彲浠�</el-radio>
+                    <el-radio v-model="radio" label="3">涓嶅お濂�</el-radio>
+                    <el-radio v-model="radio" label="4">姣旇緝宸�</el-radio> -->
+                    <div>
+                      <mini-audio
+                        :audio-source="
+                          item.questionvoice
+                            ? item.questionvoice
+                            : 'https://example.com/example.mp3'
+                        "
+                      ></mini-audio>
+                    </div>
                   </div>
                 </div>
               </div>
             </div>
-            <el-button type="primary" @click="getdetail">淇濆瓨闅忚璇︽儏</el-button>
+            <el-button v-if="Voicetype" type="primary" @click="yuyingetdetail"
+              >淇濆瓨闅忚璇︽儏</el-button
+            >
+            <el-button v-else type="primary" @click="getdetail"
+              >淇濆瓨闅忚璇︽儏</el-button
+            >
           </div>
         </el-tab-pane>
       </el-tabs>
@@ -325,24 +423,32 @@
 <script>
 import {
   getsearchrResults,
+  getPersonVoices,
   getTaskservelist,
+  getTaskFollowup,
   Editsingletaskson,
   serviceSubtaskDetailedit,
   serviceSubtaskDetailadd,
+  updatePersonVoices,
+  addPersonVoices,
 } from "@/api/AiCentre/index";
 export default {
   dicts: ["sys_normal_disable", "sys_user_sex", "sys_yujing", "sys_suggest"],
   data() {
     return {
-      radio: "1",
       userid: "",
       input: "浠婂ぉ韬綋杩樹笉閿�",
       radio: "2",
       taskname: "",
+      activeName: "wj",
+      voice: "",
+      templateid: "",
       tableDatatop: [], //棰樼洰琛�
+      voiceDatatop: [], //棰樼洰琛�
       Whetherall: false, //鏄惁鍏ㄩ儴璁板綍灞曠ず
+      Voicetype: 0, //鏄惁涓鸿闊虫湇鍔�
       logsheetlist: [],
-      topicobj:{},
+      topicobj: {},
       sendname: null,
       serviceType: null,
       id: null,
@@ -356,8 +462,9 @@
     this.id = this.$route.query.id;
     this.sendname = this.$route.query.sendname;
     this.patid = this.$route.query.patid;
+    this.Voicetype = this.$route.query.Voicetype;
     this.serviceType = this.$route.query.serviceType;
-    this.getsearchrResults();
+
     this.getTaskservelist(this.taskid);
   },
 
@@ -368,21 +475,79 @@
         taskid: this.taskid,
         patid: this.patid,
         subId: this.id,
-        isFinish:false,
+        isFinish: false,
       }).then((res) => {
         if (res.code === 200) {
           this.tableDatatop = res.data.scriptResult.script;
           this.tableDatatop.forEach((item) => {
-            if (item.scriptResult && item.scriptType != 2) {
+            console.log(item.scriptResultId,'scriptResultId');
+
+            if (item.scriptResultId && item.scriptType != 2) {
               item.isoption = 3;
-              item.scriptResult = JSON.parse(item.scriptResult);
-            } else if (item.scriptResult && item.scriptType == 2) {
+              item.scriptResult = item.scriptResult;
+            } else if (item.scriptResultId && item.scriptType == 2) {
               item.scriptResult = item.scriptResult.split("&");
               item.isoption = 3;
             }
           });
           this.taskname = res.data.taskName;
           this.overdata();
+        }
+      });
+    },
+    // 鑾峰彇璇煶鏁版嵁
+    getPersonVoices() {
+      let obj = {
+        taskid: this.taskid,
+        patid: this.patid,
+        subId: this.id,
+      };
+      console.log(this.voiceDatatop, "111");
+
+      getPersonVoices(obj).then((res) => {
+        console.log("222");
+        if (res.code == 200) {
+          this.voiceDatatop = res.data.serviceSubtaskDetails;
+          this.voice = res.data.voice;
+          // this.activeName = "yy";
+          this.taskname = res.data.taskName;
+          // 闂嵎灞曠ず鏁版嵁澶勭悊
+          this.tableDatatop = res.data.filteredDetails;
+          this.tableDatatop.forEach((item) => {
+            if (item.targetvalue) {
+              item.scriptResult = item.targetvalue.split("&");
+            } else {
+              item.scriptResult = [];
+            }
+          });
+          if (!this.tableDatatop.length) {
+            this.puttaskid(this.templateid);
+          }
+        }
+      });
+    },
+    // 鑾峰彇闂嵎瀹屾暣鏁版嵁姣斿
+    puttaskid(id) {
+      getTaskFollowup(id).then((res) => {
+        if (res.code == 200) {
+          this.tableDatatop = res.data.ivrTaskTemplateScriptVOList;
+          this.tableDatatop.forEach((item) => {
+            item.id = null;
+            // 绫诲瀷鍒ゆ柇璧嬪��
+            if (item.ivrTaskScriptTargetoptionList) {
+              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 = [];
+            }
+          });
+          console.log(this.tableDatatop, "this.tableDatatop");
         }
       });
     },
@@ -393,9 +558,10 @@
         var objs = item.svyLibTemplateTargetoptions.find(
           (items) => items.optioncontent == item.scriptResult
         );
-
-        if (objs.isabnormal) {
-          excep = 1;
+        if (obj) {
+          if (objs.isabnormal) {
+            excep = 1;
+          }
         }
 
         let obj = {
@@ -409,7 +575,7 @@
         if (item.scriptType == 2 && item.scriptResult[0]) {
           obj.asrtext = item.scriptResult.join("&");
         } else if (item.scriptType != 2 && item.scriptResult) {
-          obj.asrtext = JSON.stringify(item.scriptResult);
+          obj.asrtext = item.scriptResult;
         }
 
         if (item.isoption == 3) {
@@ -431,6 +597,35 @@
       });
       this.Editsingletasksonyic(excep);
     },
+    yuyingetdetail() {
+   this.tableDatatop.forEach((item, index) => {
+    console.log(item.scriptResult, "scriptResult");
+    item.scriptResult = item.scriptResult.join("&");
+    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;
+  });
+  let obj ={
+    serviceSubtaskDetailList: this.tableDatatop,
+    param1: this.taskid,
+    param2: this.patid,
+    subId: this.id,
+  }
+
+    addPersonVoices(obj).then((res) => {
+    if (res.code == 200) {
+     this.$modal.msgSuccess("鏈嶅姟淇濆瓨鎴愬姛");
+    }
+   });
+
+  },
+
     // 鑾峰彇鎮h�呰褰�
     getTaskservelist(taskid) {
       this.taskid = taskid;
@@ -445,6 +640,12 @@
       }).then((res) => {
         if (res.code == 200) {
           this.logsheetlist = res.rows[0].serviceSubtaskList;
+          this.templateid = this.logsheetlist[0].templateid;
+        }
+        if (this.Voicetype) {
+          this.getPersonVoices();
+        } else {
+          this.getsearchrResults();
         }
       });
     },
@@ -455,7 +656,7 @@
         taskid: this.taskid,
       }).then((res) => {
         if (res.code == 200) {
-          objson = res.rows[0];
+          objson = res.rows[0].serviceSubtaskList[0];
           objson.suggest = son;
           Editsingletaskson(objson).then((res) => {
             if (res.code) {
@@ -474,7 +675,7 @@
       }).then((res) => {
         if (res.code == 200) {
           objson = res.rows[0].serviceSubtaskList[0];
-          console.log(objson,'obj');
+          console.log(objson, "obj");
 
           objson.excep = excep;
           Editsingletaskson(objson).then((res) => {
@@ -497,9 +698,17 @@
         .catch(() => {});
     },
     handleOptionChange(a, b, c) {
-      var obj = this.tableDatatop[b].svyLibTemplateTargetoptions.find(
-        (item) => item.optioncontent == a
-      );
+      console.log(this.tableDatatop[b], "this.tableDatatop[b]");
+
+      if (this.Voicetype) {
+        var obj = this.tableDatatop[b].ivrTaskScriptTargetoptionList.find(
+          (item) => item.optioncontent == a
+        );
+      } else {
+        var obj = this.tableDatatop[b].svyLibTemplateTargetoptions.find(
+          (item) => item.optioncontent == a
+        );
+      }
       if (obj.isabnormal) {
         this.tableDatatop[b].isabnormal = true;
       } else {
@@ -569,7 +778,7 @@
     text-align: center;
   }
   .leftside {
-    margin-bottom: 30px;
+    margin: 30px 0;
     span {
       width: 400px;
       margin-left: 20px;
@@ -645,6 +854,10 @@
     right: -5px; /* 鏍规嵁闇�瑕佽皟鏁� */
     top: 0;
   }
+  ::v-deep.el-input-group__textarea {
+    white-space: pre-wrap; /* 淇濇寔绌虹櫧绗﹀簭鍒楀苟姝e父鎹㈣ */
+    word-break: break-all; /* 鍦ㄩ暱鍗曡瘝鎴朥RL鍦板潃鍐呴儴杩涜鎹㈣ */
+  }
   ::v-deep.el-checkbox__label {
     position: relative;
     padding-right: 10px; /* 鏍规嵁闇�瑕佽皟鏁� */

--
Gitblit v1.9.3