From 7eaee92ee52e1501480adbbe8a1af9ddecc04275 Mon Sep 17 00:00:00 2001
From: WXL <1785969728@qq.com>
Date: 星期三, 04 九月 2024 11:05:23 +0800
Subject: [PATCH] 测试完成

---
 src/views/outsideChainwt.vue |   92 ++++++++++++++++++++++++++++++++++-----------
 1 files changed, 69 insertions(+), 23 deletions(-)

diff --git a/src/views/outsideChainwt.vue b/src/views/outsideChainwt.vue
index 2215dc2..483c35e 100644
--- a/src/views/outsideChainwt.vue
+++ b/src/views/outsideChainwt.vue
@@ -14,7 +14,10 @@
               {{ index + 1 }}銆乕鍗曢�塢<span>{{ item.scriptContent }}</span>
             </div>
             <div class="dev-xx">
-              <el-radio-group v-model="item.scriptResult" @change="handleOptionChange($event, index, item)">
+              <el-radio-group
+                v-model="item.scriptResult"
+                @change="handleOptionChange($event, index, item)"
+              >
                 <el-radio
                   v-for="(items, index) in item.svyLibTemplateTargetoptions"
                   :key="index"
@@ -23,6 +26,9 @@
                 >
               </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-if="item.scriptType == 2">
@@ -30,7 +36,10 @@
               {{ index + 1 }}銆乕澶氶�塢<span>{{ item.scriptContent }}</span>
             </div>
             <div class="dev-xx">
-              <el-checkbox-group v-model="item.scriptResult">
+              <el-checkbox-group
+                v-model="item.scriptResult"
+                @change="updateScore($event, index, item)"
+              >
                 <el-checkbox
                   @change="$forceUpdate()"
                   v-for="(items, indexs) in item.svyLibTemplateTargetoptions"
@@ -40,6 +49,9 @@
                   {{ items.optioncontent }}
                 </el-checkbox>
               </el-checkbox-group>
+            </div>
+            <div v-show="item.prompt && item.scriptResult[0]">
+              <el-alert :title="item.prompt" type="warning"> </el-alert>
             </div>
           </div>
           <!-- 濉┖ -->
@@ -63,10 +75,18 @@
       <el-form :model="formData" label-width="80px">
         <el-form-item>
           <el-button type="primary" @click="cache(true)">鎻愪氦闂嵎</el-button>
-          <el-button type="primary" @click="cache">缂撳瓨闂嵎</el-button>
+          <!-- <el-button type="primary" @click="cache">缂撳瓨闂嵎</el-button> -->
         </el-form-item>
       </el-form>
     </div>
+    <el-dialog
+      :visible.sync="dialogVisible"
+      width="50%"
+    >
+      <div>
+        <el-alert :title="revisitAfter" type="success"> </el-alert>
+      </div>
+    </el-dialog>
   </div>
 </template>
 
@@ -84,6 +104,8 @@
       taskid: 355,
       patid: 265823,
       questionList: null,
+      revisitAfter: null,
+      dialogVisible:false,
       // 鍓嶇鍏挜
       publicKey:
         "MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAKR0yHv0rbJWQE+Sc7/FwpW66qMd9qX2k6z+SDgkSdxWh/1GbBoAP7bDQQRF6vXmoKsD2ya42H6XRLSDXAoayuMCAwEAAQ== ",
@@ -97,7 +119,12 @@
       },
     };
   },
-
+  mounted() {
+    window.addEventListener("beforeunload", this.cache);
+  },
+  beforeDestroy() {
+    window.removeEventListener("beforeunload", this.cache);
+  },
   created() {
     this.getQuestionnaire();
   },
@@ -113,13 +140,8 @@
       //   "CVk0j8O86AeCqhV5WPsBBYDg9fec0wDoDlP9imYK4wDBNIkxywZzMJEGlPagOxnq6qr2WYZo0U8MUGWRGnq8ZA==";
       // this.taskid = this.decrypt(taskid);
       // this.patid = this.decrypt(patid);
-
-      // this.$modal.msgSuccess("鐢ㄦ埛id涓�" + this.patid);
-      // this.$modal.msgSuccess("浠诲姟id涓�" + this.taskid);
       // let taskids = this.encrypt(this.taskid);
       // let patids = this.encrypt(this.patid);
-      console.log(this.$route.query.param1);
-      console.log(this.$route.query.param2);
       // 鍏堝彇缂撳瓨
       getCachequestionnaire({ param1: this.taskid, param2: this.patid }).then(
         (res) => {
@@ -127,8 +149,10 @@
             this.questionList = res.data;
             if (this.questionList[0]) {
               this.questionList.forEach((item) => {
-                if (item.scriptResult) {
+                if (item.scriptResult && item.scriptType != 2) {
                   item.scriptResult = JSON.parse(item.scriptResult);
+                } else if (item.scriptResult && item.scriptType == 2) {
+                  item.scriptResult = item.scriptResult.split("&");
                 }
               });
               return;
@@ -146,7 +170,8 @@
       getExternalfollowup({ param1: this.taskid, param2: this.patid }).then(
         (res) => {
           if (res.code == 200) {
-            this.questionList = res.rows;
+            this.questionList = res.data.script;
+            this.revisitAfter = res.data.revisitAfter;
             // 澶勭悊棰樼洰鏀堕泦缁撴灉鏍煎紡
             this.questionList.forEach((item) => {
               item.nextScriptno = Number(item.nextScriptno);
@@ -158,14 +183,12 @@
         }
       );
     },
-
     // 鍔犲瘑鍑芥暟
     encrypt(txt) {
       const encryptor = new JSEncrypt();
       encryptor.setPublicKey(this.publicKey); // 璁剧疆鍏挜
       return encryptor.encrypt(txt); // 瀵规暟鎹繘琛屽姞瀵�
     },
-
     // 瑙e瘑鍑芥暟
     decrypt(txt) {
       const encryptor = new JSEncrypt();
@@ -181,22 +204,25 @@
         serviceSubtaskDetailList: [],
       };
       const arr = structuredClone(this.questionList);
-      arr.forEach((item) => {
-        item.asrtext = JSON.stringify(item.scriptResult);
-        if (item.scriptType == 2 && item.scriptResult[0]) {
-          item.asrtext = item.scriptResult.join("&");
-        }
-      });
+      // arr.forEach((item) => {
+      //   item.asrtext = JSON.stringify(item.scriptResult);
+      //   if (item.scriptType == 2 && item.scriptResult[0]) {
+      //     item.scriptResult = item.scriptResult.join("&");
+      //   }
+      // });
       form.serviceSubtaskDetailList = arr;
       Submitaquestionnaire(form).then((res) => {
         if (res.code == 200) {
+          if (this.revisitAfter) {
+            this.dialogVisible=true
+          }
           this.$modal.msgSuccess("鎻愪氦鎴愬姛");
         }
       });
-      // 鍙互灏嗘暟鎹彁浜ゅ埌鍚庣鎴栬�呰繘琛屽叾浠栧鐞�
     },
     // 缂撳瓨
     cache(subm) {
+      console.log("杩涘叆缂撳瓨");
       let form = {
         param1: this.taskid,
         param2: this.patid,
@@ -204,7 +230,11 @@
       };
       const arr = structuredClone(this.questionList);
       arr.forEach((item) => {
-        item.scriptResult = JSON.stringify(item.scriptResult);
+        if (item.scriptType == 2 && item.scriptResult[0]) {
+          item.scriptResult = item.scriptResult.join("&");
+        } else if (item.scriptType != 2 && item.scriptResult) {
+          item.scriptResult = JSON.stringify(item.scriptResult);
+        }
       });
       form.svyLibTemplateScriptVOS = arr;
       Cachequestionnaire(form).then((res) => {
@@ -216,8 +246,8 @@
         }
       });
     },
-    // 澶勭悊閫夐」
-    handleOptionChange(selectedvalue, index,arr) {
+    // 澶勭悊鍗曢�夐�夐」
+    handleOptionChange(selectedvalue, index, arr) {
       // 鏌ユ壘閫変腑鐨勯�夐」瀵硅薄
       const selectedOption = arr.svyLibTemplateTargetoptions.find(
         (option) => option.optioncontent == selectedvalue
@@ -225,8 +255,24 @@
       if (selectedOption) {
         // 灏嗛�変腑鐨勯�夐」瀵硅薄鐨� id 璧嬪�肩粰 obj.sonId
         this.questionList[index].nextScriptno = selectedOption.nextQuestion;
+        this.questionList[index].score = selectedOption.score;
+        this.questionList[index].prompt = selectedOption.prompt;
       }
     },
+    // 澶勭悊澶氶�夐�夐」
+    updateScore(selectedvalues, index, arr) {
+      // 锟斤拷鍔犲垎鏁�
+      let score = 0;
+      selectedvalues.forEach((value) => {
+        const selectedOption = arr.svyLibTemplateTargetoptions.find(
+          (option) => option.optioncontent == value
+        );
+        if (selectedOption) {
+          score += Number(selectedOption.score);
+        }
+      });
+      this.questionList[index].score = score;
+    },
   },
 };
 </script>

--
Gitblit v1.9.3