From bf6643a35299f19ae9147864e6f3b6b4670da98a Mon Sep 17 00:00:00 2001
From: WXL <1785969728@qq.com>
Date: 星期六, 09 十一月 2024 11:42:59 +0800
Subject: [PATCH] 测试完成

---
 src/views/repositoryai/templateku/configurat/measurement.vue |    8 
 src/permission.js                                            |    2 
 src/views/outsideChainxj.vue                                 |    4 
 vue.config.js                                                |    4 
 src/views/repositoryai/templateku/configurat/index.vue       |   24 
 src/views/knowledge/questionnaire/compilequer/index.vue      |   47 +
 src/assets/logo/logoxh1.png                                  |    0 
 src/router/index.js                                          |   15 
 src/assets/logo/logoxh.png                                   |    0 
 src/views/outsideChainnew.vue                                |  620 ++++++++++++++++++++++
 .env.staging                                                 |    4 
 public/favicon1.ico                                          |    0 
 src/views/register.vue                                       |    2 
 .env.development                                             |    4 
 /dev/null                                                    |    0 
 src/views/login.vue                                          |    2 
 src/layout/components/Sidebar/Logo.vue                       |    2 
 package.json                                                 |    2 
 .env.production                                              |    4 
 src/views/outsideChainxjnew.vue                              |  248 ++++++++
 src/api/AiCentre/external.js                                 |    8 
 src/views/followvisit/discharge/index.vue                    |   17 
 src/views/outsideChainwtnew.vue                              |  621 ++++++++++++++++++++++
 23 files changed, 1,596 insertions(+), 42 deletions(-)

diff --git a/.env.development b/.env.development
index 6b0c6ec..2f7877d 100644
--- a/.env.development
+++ b/.env.development
@@ -1,10 +1,10 @@
 # 椤甸潰鏍囬
-VUE_APP_TITLE = 娴欎腑澶т簩闄㈡櫤鎱ч殢璁垮钩鍙�
+VUE_APP_TITLE = 娴欎腑鍖诲ぇ浜岄櫌鏅烘収闅忚骞冲彴
 
 # 寮�鍙戠幆澧冮厤缃�
 ENV = 'development'
 
-# 娴欎腑澶т簩闄㈡櫤鎱ч殢璁垮钩鍙�/寮�鍙戠幆澧�
+# 娴欎腑鍖诲ぇ浜岄櫌鏅烘収闅忚骞冲彴/寮�鍙戠幆澧�
 VUE_APP_BASE_API = '/dev-api'
 
 # 璺敱鎳掑姞杞�
diff --git a/.env.production b/.env.production
index 2db2f3c..5564ef3 100644
--- a/.env.production
+++ b/.env.production
@@ -1,8 +1,8 @@
 # 椤甸潰鏍囬
-VUE_APP_TITLE = 娴欎腑澶т簩闄㈡櫤鎱ч殢璁垮钩鍙�
+VUE_APP_TITLE = 娴欎腑鍖诲ぇ浜岄櫌鏅烘収闅忚骞冲彴
 
 # 鐢熶骇鐜閰嶇疆
 ENV = 'production'
 
-# 娴欎腑澶т簩闄㈡櫤鎱ч殢璁垮钩鍙�/鐢熶骇鐜
+# 娴欎腑鍖诲ぇ浜岄櫌鏅烘収闅忚骞冲彴/鐢熶骇鐜
 VUE_APP_BASE_API = '/prod-api'
diff --git a/.env.staging b/.env.staging
index 4a1a952..bb69148 100644
--- a/.env.staging
+++ b/.env.staging
@@ -1,10 +1,10 @@
 # 椤甸潰鏍囬
-VUE_APP_TITLE = 娴欎腑澶т簩闄㈡櫤鎱ч殢璁垮钩鍙�
+VUE_APP_TITLE = 娴欎腑鍖诲ぇ浜岄櫌鏅烘収闅忚骞冲彴
 
 NODE_ENV = production
 
 # 娴嬭瘯鐜閰嶇疆
 ENV = 'staging'
 
-# 娴欎腑澶т簩闄㈡櫤鎱ч殢璁垮钩鍙�/娴嬭瘯鐜
+# 娴欎腑鍖诲ぇ浜岄櫌鏅烘収闅忚骞冲彴/娴嬭瘯鐜
 VUE_APP_BASE_API = '/stage-api'
diff --git a/dist.zip b/dist.zip
deleted file mode 100644
index 087cb55..0000000
--- a/dist.zip
+++ /dev/null
Binary files differ
diff --git a/package.json b/package.json
index c537c27..afe63cb 100644
--- a/package.json
+++ b/package.json
@@ -1,7 +1,7 @@
 {
   "name": "ruoyi",
   "version": "3.8.5",
-  "description": "娴欎腑澶т簩闄㈡櫤鎱ч殢璁垮钩鍙�",
+  "description": "娴欎腑鍖诲ぇ浜岄櫌鏅烘収闅忚骞冲彴",
   "author": "鏉柊",
   "license": "MIT",
   "scripts": {
diff --git a/public/favicon1.ico b/public/favicon1.ico
index e263760..580aeca 100644
--- a/public/favicon1.ico
+++ b/public/favicon1.ico
Binary files differ
diff --git a/src/api/AiCentre/external.js b/src/api/AiCentre/external.js
index 41d5d1b..5bccb7d 100644
--- a/src/api/AiCentre/external.js
+++ b/src/api/AiCentre/external.js
@@ -9,6 +9,14 @@
     data: data
   });
 }
+// 鍒犻櫎閫氱敤妯℃澘
+export function geturlinfo(id) {
+  return request({
+    url: "/outPath/getInfoByParam",
+    method: 'post',
+    data: {param:id}
+  });
+}
 // 鎻愪氦銆侀殢璁�
 export function SetsaveQuestionAnswer(data) {
   return request({
diff --git a/src/assets/logo/logoxh.png b/src/assets/logo/logoxh.png
index c0760d3..580aeca 100644
--- a/src/assets/logo/logoxh.png
+++ b/src/assets/logo/logoxh.png
Binary files differ
diff --git a/src/assets/logo/logoxh1.png b/src/assets/logo/logoxh1.png
new file mode 100644
index 0000000..c0760d3
--- /dev/null
+++ b/src/assets/logo/logoxh1.png
Binary files differ
diff --git a/src/layout/components/Sidebar/Logo.vue b/src/layout/components/Sidebar/Logo.vue
index 31371c6..c8834c8 100644
--- a/src/layout/components/Sidebar/Logo.vue
+++ b/src/layout/components/Sidebar/Logo.vue
@@ -70,7 +70,7 @@
   },
   data() {
     return {
-      title: "娴欎腑澶т簩闄㈡櫤鎱ч殢璁垮钩鍙�",
+      title: "娴欎腑鍖诲ぇ浜岄櫌鏅烘収闅忚骞冲彴",
       logo: logoImg,
     };
   },
diff --git a/src/permission.js b/src/permission.js
index 7d22d34..c36698f 100644
--- a/src/permission.js
+++ b/src/permission.js
@@ -8,7 +8,7 @@
 
 NProgress.configure({ showSpinner: false })
 
-const whiteList = ['/login', '/auth-redirect', '/bind', '/register', '/outsideChain','/outsideChainwt','/outsideChainxj']
+const whiteList = ['/login', '/auth-redirect', '/bind', '/register','/wt','/xj','/sf', '/outsideChain','/outsideChainwt','/outsideChainxj']
 router.beforeEach((to, from, next) => {
   NProgress.start()
   if (getToken()) {
diff --git a/src/router/index.js b/src/router/index.js
index 9f8e92d..84042a6 100644
--- a/src/router/index.js
+++ b/src/router/index.js
@@ -47,6 +47,21 @@
     hidden: true
   },
   {
+    path: '/sf',
+    component: () => import('@/views/outsideChainnew'),
+    hidden: true
+  },
+  {
+    path: '/wt',
+    component: () => import('@/views/outsideChainwtnew'),
+    hidden: true
+  },
+  {
+    path: '/xj',
+    component: () => import('@/views/outsideChainxjnew'),
+    hidden: true
+  },
+  {
     path: '/outsideChain',
     component: () => import('@/views/outsideChain'),
     hidden: true
diff --git a/src/views/followvisit/discharge/index.vue b/src/views/followvisit/discharge/index.vue
index 7ad5da9..780a4eb 100644
--- a/src/views/followvisit/discharge/index.vue
+++ b/src/views/followvisit/discharge/index.vue
@@ -366,7 +366,6 @@
           width="200"
         />
         <el-table-column
-
           label="浠诲姟鎵ц鏂瑰紡"
           align="center"
           key="preachform"
@@ -375,13 +374,10 @@
           :show-overflow-tooltip="true"
         >
           <template slot-scope="scope">
-            <span v-for="item in scope.row.preachform"
-              >{{ item }}銆�
-            </span>
+            <span v-for="item in scope.row.preachform">{{ item }}銆� </span>
           </template>
         </el-table-column>
         <el-table-column
-
           label="浠诲姟鍙戦�佹祦绋�"
           align="center"
           key="serviceSubtaskRecordList"
@@ -396,7 +392,6 @@
           </template>
         </el-table-column>
         <el-table-column
-
           label="浠诲姟缁撴灉璇存槑"
           width="120"
           align="center"
@@ -414,7 +409,6 @@
         </el-table-column>
         <el-table-column
           label="鎿嶄綔"
-
           align="center"
           width="200"
           class-name="small-padding fixed-width"
@@ -835,6 +829,7 @@
       this.loading = true;
       getTaskservelist(this.topqueryParams).then((response) => {
         this.userList = response.rows[0].serviceSubtaskList;
+        this.total=response.total
         this.cardlist[0].value =
           Number(response.rows[0].wzx) + Number(response.rows[0].ysf);
         this.cardlist[1].value = response.rows[0].ysf;
@@ -843,11 +838,16 @@
         this.cardlist[4].value = response.rows[0].fssb;
         this.cardlist[5].value = response.rows[0].blq;
         this.cardlist[6].value = response.rows[0].yfs;
+        this.loading = false;
         this.userList.forEach((item) => {
+          const idArray = null;
           if (item.endtime) {
             item.endDay = this.daysBetween(item.endtime);
           }
-          const idArray = item.preachform.split(",");
+          if (item.endtime) {
+           idArray = item.preachform.split(",");
+          }
+
           item.preachform = idArray.map((value) => {
             // 鏌ユ壘id瀵瑰簲鐨勫璞�
             const item = this.checkboxlist.find((item) => item.value == value);
@@ -856,7 +856,6 @@
           });
         });
         this.total = response.total;
-        this.loading = false;
       });
     },
     // 鏌ョ湅闂ㄨ瘖闅忚璇︽儏
diff --git a/src/views/knowledge/questionnaire/compilequer/index.vue b/src/views/knowledge/questionnaire/compilequer/index.vue
index 4e13018..ce30b40 100644
--- a/src/views/knowledge/questionnaire/compilequer/index.vue
+++ b/src/views/knowledge/questionnaire/compilequer/index.vue
@@ -259,11 +259,11 @@
                   filterable
                   placeholder="璇烽�夋嫨绉戝"
                 >
-                  <el-option
+                <el-option
                     class="ruleFormaa"
-                    v-for="item in belongDepts"
+                    v-for="item in flatArray"
                     :key="item.deptCode"
-                    :label="item.deptName"
+                    :label="item.label"
                     :value="item.deptCode"
                   >
                   </el-option>
@@ -282,12 +282,12 @@
                   filterable
                   placeholder="璇烽�夋嫨鐥呭尯"
                 >
-                  <el-option
+                <el-option
                     class="ruleFormaa"
-                    v-for="item in belongWards"
-                    :key="item.districtCode"
-                    :label="item.districtName"
-                    :value="item.districtCode"
+                    v-for="item in flatArray"
+                    :key="item.deptCode"
+                    :label="item.label"
+                    :value="item.deptCode"
                   >
                   </el-option>
                 </el-select> </el-form-item
@@ -1262,6 +1262,8 @@
 } from "@/api/AiCentre/index";
 import OptionalForm from "@/components/OptionalForm"; //姝e垯缁勪欢
 import { getToken } from "@/utils/auth";
+import { deptTreeSelect } from "@/api/system/user";
+
 
 export default {
   name: "Questionnaireinfo",
@@ -1382,6 +1384,7 @@
       illnessVisible: false, //鎸囨爣鐤剧梾寮规
       Operateit: true,
       deptOptions: [],
+      flatArray:[],
       optionsillness: [],
       delScriptVOList: [],
       illnesslistapi: [],
@@ -1445,6 +1448,7 @@
   created() {
     this.getissueinfo();
     this.gettabList();
+    this.getDeptTree();
     this.mode = store.getters.Askmode;
     this.languagelist = store.getters.languagelist;
     this.usable = store.getters.usable;
@@ -1552,6 +1556,33 @@
         }
       });
     },
+    // 鑾峰彇绉戝鏍�
+    getDeptTree() {
+      // 绉戝鍒楄〃
+      deptTreeSelect().then((response) => {
+        this.deptOptions = response.data;
+        this.flatArray = this.flattenArray(response.data);
+      });
+    },
+    flattenArray(multiArray) {
+      let result = [];
+
+      // 閫掑綊鍑芥暟锛岀敤浜庡皢澶氱骇鏁扮粍杞崲涓轰竴缁存暟缁勶紝鍙寘鍚渶搴曞眰鐨勫厓绱�
+      function flatten(element) {
+        // 濡傛灉褰撳墠鍏冪礌鏈夊瓙鍏冪礌锛岀户缁�掑綊
+        if (element.children && element.children.length > 0) {
+          element.children.forEach((child) => flatten(child));
+        } else {
+          // 鍏嬮殕鍏冪礌浠ラ伩鍏嶄慨鏀瑰師濮嬫暟鎹�
+          let item = JSON.parse(JSON.stringify(element));
+          result.push(item); // 灏嗘渶搴曞眰鐨勫厓绱犳坊鍔犲埌缁撴灉鏁扮粍
+        }
+      }
+
+      // 浠庨《灞傚厓绱犲紑濮嬮�掑綊
+      multiArray.forEach((element) => flatten(element));
+      return result; // 杩斿洖鍙寘鍚渶搴曞眰鍏冪礌鐨勪竴缁存暟缁�
+    },
     submitForm(formName) {
       this.$modal.loading("姝e湪淇淇濆瓨鏁版嵁锛岃绋嶅��...");
       if (Array.isArray(this.ruleForm.suitway)) {
diff --git a/src/views/login.vue b/src/views/login.vue
index 9a160c8..ce46604 100644
--- a/src/views/login.vue
+++ b/src/views/login.vue
@@ -6,7 +6,7 @@
       :rules="loginRules"
       class="login-form"
     >
-      <h3 class="title">娴欎腑澶т簩闄㈡櫤鎱ч殢璁垮钩鍙�</h3>
+      <h3 class="title">娴欎腑鍖诲ぇ浜岄櫌鏅烘収闅忚骞冲彴</h3>
       <el-form-item prop="username">
         <el-input
           v-model="loginForm.username"
diff --git a/src/views/outsideChainnew.vue b/src/views/outsideChainnew.vue
new file mode 100644
index 0000000..4c9d925
--- /dev/null
+++ b/src/views/outsideChainnew.vue
@@ -0,0 +1,620 @@
+<template>
+  <div class="questionnaire">
+    <div class="CONTENT" v-if="!accomplish">
+      <div class="preview-left">
+        <div class="toptitle">
+          <div class="title">{{ taskname ? taskname : "闂嵎" }}</div>
+          <div style="font-size: 22px; margin-bottom: 20px; line-height: 1.5">
+            {{
+              kcb
+                ? kcb
+                : "浜茬埍鐨勬偅鑰�-瀹跺睘锛屾偍濂斤紒鎴戜滑鏄禉涓尰澶т簩闄㈢殑鍖绘姢浜哄憳锛屼负浜嗘洿濂藉湴浜嗚В鎮ㄧ殑搴峰鎯呭喌锛岃鎮ㄦ娊涓�鐐瑰疂璐垫椂闂达紝瀹屾垚杩欎唤闅忚闂嵎銆�"
+            }}
+            <!-- 浜茬埍鐨勬偅鑰�/瀹跺睘鎮ㄥソ锛屼负浜嗘洿濂界殑浜嗚В鎮ㄥ嚭闄㈠悗鐨勫悍澶嶆儏鍐碉紝缁欐偍閫傚綋鍙婃椂鐨勫仴搴锋寚瀵硷紝璇锋偍鎶戒竴鐐瑰疂璐垫椂闂达紝瀹屾垚杩欎唤鍑洪櫌闅忚闂嵎璋冩煡銆� -->
+          </div>
+        </div>
+        <el-divider></el-divider>
+        <!-- 鍗曢�� -->
+        <div
+          class="topic-dev"
+          v-for="(item, index) in questionList"
+          :key="item.aaa"
+        >
+          <div class="scriptTopic-dev" :key="index" v-if="item.scriptType == 1">
+            <div class="dev-text">
+              {{ index + 1 }}銆�<span style="line-height: 1.5"
+                >{{ item.scriptContent }}
+                <span style="color: #3ba2f7">[鍗曢�塢</span></span
+              >
+            </div>
+            <div class="dev-xx">
+              <el-radio-group
+                class="custom-radio"
+                v-model="item.scriptResult"
+                @change="handleOptionChange($event, index, item)"
+              >
+                <el-radio
+                  border
+                  v-for="(items, index) in item.svyLibTemplateTargetoptions"
+                  :class="
+                    items.isabnormal && item.scriptResult == items.optioncontent
+                      ? 'red-star'
+                      : ''
+                  "
+                  :key="index"
+                  :label="items.optioncontent"
+                  >{{ items.optioncontent }}</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-if="item.scriptType == 2">
+            <div class="dev-text">
+              {{ index + 1 }}銆�<span style="line-height: 1.5"
+                >{{ item.scriptContent }}
+                <span style="color: #3ba2f7">[澶氶�塢</span></span
+              >
+            </div>
+            <div class="dev-xx">
+              <el-checkbox-group
+                class="custom-radio"
+                v-model="item.scriptResult"
+                @change="updateScore($event, index, item)"
+              >
+                <el-checkbox
+                  border
+                  @change="$forceUpdate()"
+                  v-for="(items, indexs) in item.svyLibTemplateTargetoptions"
+                  :key="indexs"
+                  :label="items.optioncontent"
+                >
+                  {{ items.optioncontent }}
+                </el-checkbox>
+              </el-checkbox-group>
+            </div>
+            <!-- :class="items.isabnormal ? 'red-star' : ''" -->
+            <div v-show="item.prompt && item.scriptResult[0]">
+              <el-alert :title="item.prompt" type="warning"> </el-alert>
+            </div>
+          </div>
+          <!-- 濉┖ -->
+          <div class="scriptTopic-dev" :key="index" v-if="item.scriptType == 4">
+            <div class="dev-text">
+              {{ index + 1 }}銆�<span style="line-height: 1.5"
+                >{{ item.scriptContent
+                }}<span style="color: #3ba2f7">[闂瓟]</span></span
+              >
+            </div>
+            <div class="dev-xx">
+              <el-input
+                type="textarea"
+                :rows="3"
+                placeholder="璇疯緭鍏ョ瓟妗�"
+                v-model="item.scriptResult"
+                clearable
+              >
+              </el-input>
+            </div>
+          </div>
+        </div>
+        <div class="bottom-fixed">
+          <el-button
+            type="primary"
+            style="width: 80%; font-size: 20px"
+            @click="cache(true)"
+            >鎻愪氦闂嵎</el-button
+          >
+        </div>
+      </div>
+    </div>
+    <div class="CONTENT" v-else>
+      <div class="preview-lefts">
+        <div
+          style="
+            text-align: center;
+            padding-top: 50px;
+            font-size: 24px;
+            color: #175997;
+            font-weight: 600;
+            margin-bottom: 10px;
+          "
+        >
+          鎰熻阿鎮ㄧ殑閰嶅悎!
+        </div>
+        <div style="font-size: 20px">
+          {{
+            jsy
+              ? jsy
+              : "鐢熸椿涓婅鍔抽�哥粨鍚堬紝娉ㄦ剰浼戞伅鍜岃惀鍏伙紝閫傚綋閿荤偧锛屾垝鐑熼檺閰掞紝淇濇寔蹇冩儏鑸掔晠锛屽畾鏈熷璇娿�傞偅鏈鍥炶灏卞埌杩欓噷锛岀鎮ㄨ韩浣撳仴搴凤紒"
+          }}
+        </div>
+      </div>
+    </div>
+    <!-- <el-dialog
+      :visible.sync="dialogVisible"
+      width="50%"
+    >
+      <div>
+        <el-alert :title="jsy" type="success"> </el-alert>
+      </div>
+    </el-dialog> -->
+  </div>
+</template>
+
+<script>
+import {
+  getExternalfollowup,
+  getCachequestionnaire,
+  Cachequestionnaire,
+  Submitaquestionnaire,
+  geturlinfo,
+} from "@/api/AiCentre/index";
+import JSEncrypt from "jsencrypt";
+export default {
+  data() {
+    return {
+      taskid: 355,
+      patid: 265823,
+      kcb: "",
+      excep: "",
+      questionList: [
+        // {
+        //   scriptType: 1,
+        //   scriptContent: "鎮ㄧ殑骞撮緞鑼冨洿鏄紵",
+        //   scriptResult: null,
+        //   svyLibTemplateTargetoptions: [
+        //     { optioncontent: "18-25", value: "18-25", isabnormal: true },
+        //     { optioncontent: "26-35", value: "26-35" },
+        //     { optioncontent: "36-45", value: "36-45" },
+        //     { optioncontent: "46-55", value: "46-55" },
+        //     { optioncontent: "56+", value: "56+" },
+        //   ],
+        //   required: true,
+        // },
+        // {
+        //   scriptType: 1,
+        //   scriptContent: "鎮ㄧ殑鑱屼笟鏄粈涔堬紵",
+        //   scriptResult: null,
+        //   svyLibTemplateTargetoptions: [
+        //     { optioncontent: "瀛︾敓", value: "student" },
+        //     { optioncontent: "鏁欏笀", value: "teacher" },
+        //     { optioncontent: "宸ョ▼甯�", value: "engineer" },
+        //     { optioncontent: "鍖荤敓", value: "doctor" },
+        //     { optioncontent: "鍏朵粬", value: "other" },
+        //   ],
+        //   required: false,
+        // },
+        // {
+        //   scriptType: 2,
+        //   scriptContent: "鎮ㄦ劅鍏磋叮鐨勬椿鍔ㄦ湁鍝簺锛�",
+        //   scriptResult: [],
+        //   svyLibTemplateTargetoptions: [
+        //     { optioncontent: "鏃呮父", value: "travel", isabnormal: true },
+        //     { optioncontent: "闃呰", value: "reading", isabnormal: true },
+        //     { optioncontent: "杩愬姩", value: "sports", isabnormal: true },
+        //     { optioncontent: "闊充箰", value: "music" },
+        //     { optioncontent: "鐢靛奖", value: "movies" },
+        //   ],
+        //   required: false,
+        // },
+        // {
+        //   scriptType: 1,
+        //   scriptContent: "鎮ㄧ殑鑱屼笟鏄粈涔堬紵",
+        //   scriptResult: null,
+        //   svyLibTemplateTargetoptions: [
+        //     { optioncontent: "瀛︾敓", value: "student" },
+        //     { optioncontent: "鏁欏笀", value: "teacher" },
+        //     { optioncontent: "宸ョ▼甯�", value: "engineer" },
+        //     { optioncontent: "鍖荤敓", value: "doctor" },
+        //     { optioncontent: "鍏朵粬", value: "other" },
+        //   ],
+        //   required: false,
+        // },
+        // {
+        //   scriptType: 1,
+        //   scriptContent: "鎮ㄧ殑鑱屼笟鏄粈涔堬紵",
+        //   scriptResult: null,
+        //   svyLibTemplateTargetoptions: [
+        //     { optioncontent: "瀛︾敓", value: "student" },
+        //     { optioncontent: "鏁欏笀", value: "teacher" },
+        //     { optioncontent: "宸ョ▼甯�", value: "engineer", isabnormal: true },
+        //     { optioncontent: "鍖荤敓", value: "doctor" },
+        //     { optioncontent: "鍏朵粬", value: "other" },
+        //   ],
+        //   required: false,
+        // },
+        // {
+        //   scriptType: 1,
+        //   scriptContent: "鎮ㄧ殑鑱屼笟鏄粈涔堬紵",
+        //   scriptResult: null,
+        //   svyLibTemplateTargetoptions: [
+        //     { optioncontent: "瀛︾敓", value: "student" },
+        //     { optioncontent: "鏁欏笀", value: "teacher" },
+        //     { optioncontent: "宸ョ▼甯�", value: "engineer" },
+        //     { optioncontent: "鍖荤敓", value: "doctor" },
+        //     { optioncontent: "鍏朵粬", value: "other" },
+        //   ],
+        //   required: false,
+        // },
+        // {
+        //   scriptType: 4,
+        //   scriptContent: "鎮ㄧ殑濮撳悕鏄粈涔堬紵",
+        //   scriptResult: "name",
+        //   required: true,
+        //   scriptResult: null,
+        // },
+      ],
+      jsy: null,
+      dialogVisible: false,
+      Endornot: true,
+      accomplish: false,
+      // 鍓嶇鍏挜
+      publicKey:
+        "MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAKR0yHv0rbJWQE+Sc7/FwpW66qMd9qX2k6z+SDgkSdxWh/1GbBoAP7bDQQRF6vXmoKsD2ya42H6XRLSDXAoayuMCAwEAAQ== ",
+      // 鍚庣绉侀挜
+      privateKey:
+        " MIIBUwIBADANBgkqhkiG9w0BAQEFAASCAT0wggE5AgEAAkEAtDOpbUQhcEoYy77agRhIHmAzs7H+KHJhN56gTTI9fWq23j77nI055MFV3oQQziIrNUTNaPpEQhZXBpI0+f9K9QIDAQABAkB3n0fcWfrcoMN/FU3VnrnZOEF6CzFNxkgU9P8y36QECWKZ9JhYQkNpKrMC9oXlN3VSaRigV7B+L/I/a0Rs1W+tAiEA4jx7xcXJ4y4BNwAmVHt6NNiEkzIwWnwC/0qsEu8NsOsCIQDL6MMn1D2uznC6OuOWpxDCkBh1JL1NzZTZeH2G+hj7nwIgKGAC9tjFnvWm4dn0/T7MIIJDpsFeP8fCAS2iZ/6hwuECIAS/eLvWr1EAsZNEh8QcQ8GkBU3E+ztyjAK8UX/xFt/VAiBf79/1tDErX4/DChecM8w3c3DhbBcjuE3fHZn7p6/UKg==",
+      formData: {
+        question1: "",
+        question2: "",
+        question3: "",
+      },
+    };
+  },
+  mounted() {
+    window.addEventListener("beforeunload", this.cache);
+  },
+  beforeDestroy() {
+    window.removeEventListener("beforeunload", this.cache);
+  },
+  created() {
+    this.geturlinfo();
+  },
+  methods: {
+    // 瑙f瀽urlid
+    geturlinfo() {
+      // let url = window.location.href;
+      let url = this.$route.query.p;
+      // let url = 'http://218.108.11.22:8093/sf/003';
+      // let urlid = this.extractLastSegmentFromUrl(url);
+
+      geturlinfo( url ).then((res) => {
+       if (res.code==200) {
+         this.getQuestionnaire(res.data.param1,res.data.param2,res.data.param3,res.data.param5,)
+       }
+      });
+    },
+//     extractLastSegmentFromUrl(url) {
+//     // 鎵惧埌鏈�鍚庝竴涓�'/'鐨勪綅缃�
+//     const lastSlashIndex = url.lastIndexOf('/');
+//     // 濡傛灉鎵惧埌浜�'/'锛屾埅鍙栧叾鍚庣殑鎵�鏈夊瓧绗�
+//     if (lastSlashIndex !== -1) {
+//         return url.substring(lastSlashIndex + 1);
+//     }
+//     // 濡傛灉娌℃湁鎵惧埌'/'锛岃繑鍥炵┖瀛楃涓�
+//     return '';
+// },
+
+    // 鑾峰彇鏁版嵁
+    getQuestionnaire(param1,param2,param3) {
+      this.taskid = decodeURIComponent(param1);
+      this.patid = decodeURIComponent(param2);
+      this.taskname = param3;
+      // let taskid =
+      //   "OFp7tn/B6x7IzKJetvGWHdSWBj7msRlnlj6am9dyuHTH6sEt4uBbVCUXs5kcF/e4O2W6vqHf2Bz9K3/evbYDmw==";
+      // let patid =
+      //   "CVk0j8O86AeCqhV5WPsBBYDg9fec0wDoDlP9imYK4wDBNIkxywZzMJEGlPagOxnq6qr2WYZo0U8MUGWRGnq8ZA==";
+      // this.taskid = this.decrypt(taskid);
+      // this.patid = this.decrypt(patid);
+      // let taskids = this.encrypt(this.taskid);
+      // let patids = this.encrypt(this.patid);
+      // 鍏堝彇缂撳瓨
+      getCachequestionnaire({ param1: this.taskid, param2: this.patid }).then(
+        (res) => {
+          if (res.code == 200) {
+            this.questionList = res.data;
+            this.accomplish = res.data.submit;
+            if (this.questionList[0]) {
+              this.questionList.forEach((item) => {
+                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;
+            } else {
+              this.getExternalfollowup();
+            }
+          } else {
+            this.getExternalfollowup();
+          }
+        }
+      );
+    },
+    // 鑾峰彇鏁版嵁
+    getExternalfollowup() {
+      getExternalfollowup({ param1: this.taskid, param2: this.patid }).then(
+        (res) => {
+          if (res.code == 200) {
+            this.questionList = res.data.script;
+            this.jsy = res.data.jsy;
+            this.kcb = res.data.kcb;
+            // 澶勭悊棰樼洰鏀堕泦缁撴灉鏍煎紡
+            this.questionList.forEach((item) => {
+              item.nextScriptno = Number(item.nextScriptno);
+              if (item.scriptType == 2) {
+                item.scriptResult = [];
+              }
+            });
+          }
+        }
+      );
+    },
+    // 鍔犲瘑鍑芥暟
+    encrypt(txt) {
+      const encryptor = new JSEncrypt();
+      encryptor.setPublicKey(this.publicKey); // 璁剧疆鍏挜
+      return encryptor.encrypt(txt); // 瀵规暟鎹繘琛屽姞瀵�
+    },
+    // 瑙e瘑鍑芥暟
+    decrypt(txt) {
+      const encryptor = new JSEncrypt();
+      encryptor.setPrivateKey(this.privateKey); // 璁剧疆绉侀挜
+      return encryptor.decrypt(txt); // 瀵规暟鎹繘琛岃В瀵�
+    },
+    // 鎻愪氦
+    submitForm() {
+      // 鎻愪氦琛ㄥ崟閫昏緫
+      let form = {
+        param1: this.taskid,
+        param2: this.patid,
+        excep: this.excep,
+        serviceSubtaskDetailList: [],
+      };
+      const arr = structuredClone(this.questionList);
+      // 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.jsy) {
+            this.dialogVisible = true;
+          }
+          this.accomplish = true;
+          this.$modal.msgSuccess("鎻愪氦鎴愬姛");
+        }
+      });
+    },
+    // 缂撳瓨
+    cache(subm) {
+      console.log("杩涘叆缂撳瓨");
+      let form = {
+        param1: this.taskid,
+        param2: this.patid,
+        svyLibTemplateScriptVOS: [],
+      };
+      const arr = structuredClone(this.questionList);
+      console.log(arr, "srr");
+      arr.forEach((item, index) => {
+        var obj = item.svyLibTemplateTargetoptions.find(
+          (items) => items.optioncontent == item.scriptResult
+        );
+        if (obj.isabnormal) {
+          console.log(obj.isabnormal);
+          form.excep = 1;
+          this.excep = 1;
+        }
+      });
+
+      arr.forEach((item) => {
+        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) => {
+        if (res.code == 200) {
+          if (subm) {
+            this.submitForm();
+          }
+        }
+      });
+    },
+    // 澶勭悊鍗曢�夐�夐」
+    handleOptionChange(selectedvalue, index, arr) {
+      // 鏌ユ壘閫変腑鐨勯�夐」瀵硅薄
+      const selectedOption = arr.svyLibTemplateTargetoptions.find(
+        (option) => option.optioncontent == selectedvalue
+      );
+      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>
+
+<style lang="scss" scoped>
+.questionnaire {
+  // background-image: url("../assets/images/chainbackground.jpg");
+  background-color: #f9f9fb;
+  background-size: cover;
+  background-attachment: fixed; /* 淇濇寔鑳屾櫙鍥哄畾 */
+  background-position: center;
+  font-family: Arial, sans-serif;
+  min-height: 100vh;
+  margin: 0;
+  padding: 0;
+  .CONTENT {
+    .title {
+      color: #3769f3;
+      font-size: 22px;
+      font-weight: bold;
+      margin-bottom: 20px;
+      text-align: center;
+    }
+  }
+}
+.preview-left {
+  margin: 10px;
+  margin-bottom: 60px;
+  background-color: #fff;
+  border-radius: 5px;
+  //   margin: 20px;
+  padding: 10px;
+  height: 100%;
+  // background: #ffff;
+  border: 1px solid #dcdfe6;
+  -webkit-box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.12),
+    0 0 6px 0 rgba(0, 0, 0, 0.04);
+  .topic-dev {
+    margin-bottom: 25px;
+    font-size: 20px !important;
+    .dev-text {
+      margin-bottom: 10px;
+    }
+  }
+}
+.preview-lefts {
+  margin: 10px;
+  background-color: #fff;
+  border-radius: 5px;
+  //   margin: 20px;
+  padding: 10px;
+  height: 95vh; // background: #ffff;
+  border: 1px solid #dcdfe6;
+  -webkit-box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.12),
+    0 0 6px 0 rgba(0, 0, 0, 0.04);
+  .topic-dev {
+    margin-bottom: 25px;
+    font-size: 20px !important;
+    .dev-text {
+      margin-bottom: 10px;
+    }
+  }
+}
+
+.red-star {
+  ::v-deep.el-radio__label {
+    position: relative;
+    padding-right: 10px; /* 鏍规嵁闇�瑕佽皟鏁� */
+  }
+  ::v-deep.el-radio__label::after {
+    content: "*";
+    color: red;
+    position: absolute;
+    right: -5px; /* 鏍规嵁闇�瑕佽皟鏁� */
+    top: 0;
+  }
+  ::v-deep.el-checkbox__label {
+    position: relative;
+    padding-right: 10px; /* 鏍规嵁闇�瑕佽皟鏁� */
+  }
+  ::v-deep.el-checkbox__label::after {
+    content: "*";
+    color: red;
+    position: absolute;
+    right: -5px; /* 鏍规嵁闇�瑕佽皟鏁� */
+    top: 0;
+  }
+}
+::v-deep.el-checkbox-group {
+  font-size: 0;
+  display: flex;
+  flex-direction: column;
+  margin: 5px 0;
+}
+::v-deep.el-checkbox.is-bordered + .el-checkbox.is-bordered {
+  margin-left: 0;
+}
+
+::v-deep.el-radio-group {
+  display: flex;
+  flex-direction: column;
+  margin: 5px 0;
+}
+::v-deep.el-radio.is-bordered + .el-radio.is-bordered {
+  /* margin-left: 10px; */
+  margin-left: 0;
+}
+::v-deep.custom-radio .el-radio {
+  margin: 2px 0;
+}
+
+.radio-option {
+  flex: none; /* 涓嶈閫夐」鑷姩濉厖绌洪棿 */
+  white-space: nowrap; /* 闃叉閫夐」鏂囨湰鎹㈣ */
+  margin: 0 10px; /* 璁剧疆閫夐」宸﹀彸鐨勯棿闅� */
+  font-size: 20px; /* 澧炲ぇ瀛椾綋澶у皬 */
+}
+
+.el-radio__label {
+  font-size: 20px; /* 澧炲ぇ鏍囩鏂囧瓧澶у皬 */
+}
+.toptitle {
+}
+.bottom-fixed {
+  position: fixed;
+  bottom: 0;
+  left: 0;
+  width: 100%;
+  text-align: center;
+  padding: 10px 0; /* 鏍规嵁闇�瑕佽皟鏁村唴杈硅窛 */
+  background: #fff; /* 鏍规嵁闇�瑕佽皟鏁磋儗鏅鑹� */
+  box-shadow: 0 -2px 5px rgba(0, 0, 0, 0.1); /* 鍙�夌殑闃村奖鏁堟灉 */
+  z-index: 1000; /* 纭繚鎸夐挳鍦ㄩ〉闈㈡渶涓婂眰 */
+}
+::v-deep.el-alert--warning.is-light {
+  background-color: #fbf9f3;
+  color: #ffba00;
+}
+::v-deep {
+  .el-alert__title {
+    font-size: 20px;
+    line-height: 18px;
+  }
+}
+::v-deep.el-radio--medium.is-bordered .el-radio__label {
+  font-size: 20px;
+}
+::v-deep.el-radio--medium.is-bordered {
+  padding: 5px 20px 0px 10px;
+  border-radius: 4px;
+  height: 36px;
+}
+::v-deep.el-checkbox.is-bordered.el-checkbox--medium .el-checkbox__label {
+  line-height: 17px;
+  font-size: 20px;
+}
+::v-deep.el-checkbox {
+  margin-right: 0px;
+}
+</style>
diff --git a/src/views/outsideChainwtnew.vue b/src/views/outsideChainwtnew.vue
new file mode 100644
index 0000000..863e8f8
--- /dev/null
+++ b/src/views/outsideChainwtnew.vue
@@ -0,0 +1,621 @@
+<template>
+  <div class="questionnaire">
+    <div class="CONTENT" v-if="!accomplish">
+      <div class="preview-left">
+        <div class="toptitle">
+          <div class="title">{{ taskname ? taskname : "闂嵎" }}</div>
+          <div style="font-size: 22px; margin-bottom: 20px; line-height: 1.5">
+            {{
+              kcb
+                ? kcb
+                : "浜茬埍鐨勬偅鑰�-瀹跺睘锛屾偍濂斤紒鎴戜滑鏄禉涓尰澶т簩闄㈢殑鍖绘姢浜哄憳锛屼负浜嗘洿濂藉湴浜嗚В鎮ㄧ殑搴峰鎯呭喌锛岃鎮ㄦ娊涓�鐐瑰疂璐垫椂闂达紝瀹屾垚杩欎唤闅忚闂嵎銆�"
+            }}
+            <!-- 浜茬埍鐨勬偅鑰�/瀹跺睘鎮ㄥソ锛屼负浜嗘洿濂界殑浜嗚В鎮ㄥ嚭闄㈠悗鐨勫悍澶嶆儏鍐碉紝缁欐偍閫傚綋鍙婃椂鐨勫仴搴锋寚瀵硷紝璇锋偍鎶戒竴鐐瑰疂璐垫椂闂达紝瀹屾垚杩欎唤鍑洪櫌闅忚闂嵎璋冩煡銆� -->
+          </div>
+        </div>
+        <el-divider></el-divider>
+        <!-- 鍗曢�� -->
+        <div
+          class="topic-dev"
+          v-for="(item, index) in questionList"
+          :key="item.aaa"
+        >
+          <div class="scriptTopic-dev" :key="index" v-if="item.scriptType == 1">
+            <div class="dev-text">
+              {{ index + 1 }}銆�<span style="line-height: 1.5"
+                >{{ item.scriptContent }}
+                <span style="color: #3ba2f7">[鍗曢�塢</span></span
+              >
+            </div>
+            <div class="dev-xx">
+              <el-radio-group
+                class="custom-radio"
+                v-model="item.scriptResult"
+                @change="handleOptionChange($event, index, item)"
+              >
+                <el-radio
+                  border
+                  v-for="(items, index) in item.svyLibTemplateTargetoptions"
+                  :class="
+                    items.isabnormal && item.scriptResult == items.optioncontent
+                      ? 'red-star'
+                      : ''
+                  "
+                  :key="index"
+                  :label="items.optioncontent"
+                  >{{ items.optioncontent }}</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-if="item.scriptType == 2">
+            <div class="dev-text">
+              {{ index + 1 }}銆�<span style="line-height: 1.5"
+                >{{ item.scriptContent }}
+                <span style="color: #3ba2f7">[澶氶�塢</span></span
+              >
+            </div>
+            <div class="dev-xx">
+              <el-checkbox-group
+                class="custom-radio"
+                v-model="item.scriptResult"
+                @change="updateScore($event, index, item)"
+              >
+                <el-checkbox
+                  border
+                  @change="$forceUpdate()"
+                  v-for="(items, indexs) in item.svyLibTemplateTargetoptions"
+                  :key="indexs"
+                  :label="items.optioncontent"
+                >
+                  {{ items.optioncontent }}
+                </el-checkbox>
+              </el-checkbox-group>
+            </div>
+            <!-- :class="items.isabnormal ? 'red-star' : ''" -->
+            <div v-show="item.prompt && item.scriptResult[0]">
+              <el-alert :title="item.prompt" type="warning"> </el-alert>
+            </div>
+          </div>
+          <!-- 濉┖ -->
+          <div class="scriptTopic-dev" :key="index" v-if="item.scriptType == 4">
+            <div class="dev-text">
+              {{ index + 1 }}銆�<span style="line-height: 1.5"
+                >{{ item.scriptContent
+                }}<span style="color: #3ba2f7">[闂瓟]</span></span
+              >
+            </div>
+            <div class="dev-xx">
+              <el-input
+                type="textarea"
+                :rows="3"
+                placeholder="璇疯緭鍏ョ瓟妗�"
+                v-model="item.scriptResult"
+                clearable
+              >
+              </el-input>
+            </div>
+          </div>
+        </div>
+        <div class="bottom-fixed">
+          <el-button
+            type="primary"
+            style="width: 80%; font-size: 20px"
+            @click="cache(true)"
+            >鎻愪氦闂嵎</el-button
+          >
+        </div>
+      </div>
+    </div>
+    <div class="CONTENT" v-else>
+      <div class="preview-lefts">
+        <div
+          style="
+            text-align: center;
+            padding-top: 50px;
+            font-size: 24px;
+            color: #175997;
+            font-weight: 600;
+            margin-bottom: 10px;
+          "
+        >
+          鎰熻阿鎮ㄧ殑閰嶅悎!
+        </div>
+        <div style="font-size: 20px">
+          {{
+            jsy
+              ? jsy
+              : "鐢熸椿涓婅鍔抽�哥粨鍚堬紝娉ㄦ剰浼戞伅鍜岃惀鍏伙紝閫傚綋閿荤偧锛屾垝鐑熼檺閰掞紝淇濇寔蹇冩儏鑸掔晠锛屽畾鏈熷璇娿�傞偅鏈鍥炶灏卞埌杩欓噷锛岀鎮ㄨ韩浣撳仴搴凤紒"
+          }}
+        </div>
+      </div>
+    </div>
+    <!-- <el-dialog
+      :visible.sync="dialogVisible"
+      width="50%"
+    >
+      <div>
+        <el-alert :title="jsy" type="success"> </el-alert>
+      </div>
+    </el-dialog> -->
+  </div>
+</template>
+
+<script>
+import {
+  getExternalfollowup,
+  getCachequestionnaire,
+  Cachequestionnaire,
+  Submitaquestionnaire,
+  geturlinfo,
+} from "@/api/AiCentre/index";
+import JSEncrypt from "jsencrypt";
+export default {
+  data() {
+    return {
+      taskid: 355,
+      patid: 265823,
+      kcb: "",
+      excep: "",
+      questionList: [
+        // {
+        //   scriptType: 1,
+        //   scriptContent: "鎮ㄧ殑骞撮緞鑼冨洿鏄紵",
+        //   scriptResult: null,
+        //   svyLibTemplateTargetoptions: [
+        //     { optioncontent: "18-25", value: "18-25", isabnormal: true },
+        //     { optioncontent: "26-35", value: "26-35" },
+        //     { optioncontent: "36-45", value: "36-45" },
+        //     { optioncontent: "46-55", value: "46-55" },
+        //     { optioncontent: "56+", value: "56+" },
+        //   ],
+        //   required: true,
+        // },
+        // {
+        //   scriptType: 1,
+        //   scriptContent: "鎮ㄧ殑鑱屼笟鏄粈涔堬紵",
+        //   scriptResult: null,
+        //   svyLibTemplateTargetoptions: [
+        //     { optioncontent: "瀛︾敓", value: "student" },
+        //     { optioncontent: "鏁欏笀", value: "teacher" },
+        //     { optioncontent: "宸ョ▼甯�", value: "engineer" },
+        //     { optioncontent: "鍖荤敓", value: "doctor" },
+        //     { optioncontent: "鍏朵粬", value: "other" },
+        //   ],
+        //   required: false,
+        // },
+        // {
+        //   scriptType: 2,
+        //   scriptContent: "鎮ㄦ劅鍏磋叮鐨勬椿鍔ㄦ湁鍝簺锛�",
+        //   scriptResult: [],
+        //   svyLibTemplateTargetoptions: [
+        //     { optioncontent: "鏃呮父", value: "travel", isabnormal: true },
+        //     { optioncontent: "闃呰", value: "reading", isabnormal: true },
+        //     { optioncontent: "杩愬姩", value: "sports", isabnormal: true },
+        //     { optioncontent: "闊充箰", value: "music" },
+        //     { optioncontent: "鐢靛奖", value: "movies" },
+        //   ],
+        //   required: false,
+        // },
+        // {
+        //   scriptType: 1,
+        //   scriptContent: "鎮ㄧ殑鑱屼笟鏄粈涔堬紵",
+        //   scriptResult: null,
+        //   svyLibTemplateTargetoptions: [
+        //     { optioncontent: "瀛︾敓", value: "student" },
+        //     { optioncontent: "鏁欏笀", value: "teacher" },
+        //     { optioncontent: "宸ョ▼甯�", value: "engineer" },
+        //     { optioncontent: "鍖荤敓", value: "doctor" },
+        //     { optioncontent: "鍏朵粬", value: "other" },
+        //   ],
+        //   required: false,
+        // },
+        // {
+        //   scriptType: 1,
+        //   scriptContent: "鎮ㄧ殑鑱屼笟鏄粈涔堬紵",
+        //   scriptResult: null,
+        //   svyLibTemplateTargetoptions: [
+        //     { optioncontent: "瀛︾敓", value: "student" },
+        //     { optioncontent: "鏁欏笀", value: "teacher" },
+        //     { optioncontent: "宸ョ▼甯�", value: "engineer", isabnormal: true },
+        //     { optioncontent: "鍖荤敓", value: "doctor" },
+        //     { optioncontent: "鍏朵粬", value: "other" },
+        //   ],
+        //   required: false,
+        // },
+        // {
+        //   scriptType: 1,
+        //   scriptContent: "鎮ㄧ殑鑱屼笟鏄粈涔堬紵",
+        //   scriptResult: null,
+        //   svyLibTemplateTargetoptions: [
+        //     { optioncontent: "瀛︾敓", value: "student" },
+        //     { optioncontent: "鏁欏笀", value: "teacher" },
+        //     { optioncontent: "宸ョ▼甯�", value: "engineer" },
+        //     { optioncontent: "鍖荤敓", value: "doctor" },
+        //     { optioncontent: "鍏朵粬", value: "other" },
+        //   ],
+        //   required: false,
+        // },
+        // {
+        //   scriptType: 4,
+        //   scriptContent: "鎮ㄧ殑濮撳悕鏄粈涔堬紵",
+        //   scriptResult: "name",
+        //   required: true,
+        //   scriptResult: null,
+        // },
+      ],
+      jsy: null,
+      dialogVisible: false,
+      Endornot: true,
+      accomplish: false,
+      // 鍓嶇鍏挜
+      publicKey:
+        "MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAKR0yHv0rbJWQE+Sc7/FwpW66qMd9qX2k6z+SDgkSdxWh/1GbBoAP7bDQQRF6vXmoKsD2ya42H6XRLSDXAoayuMCAwEAAQ== ",
+      // 鍚庣绉侀挜
+      privateKey:
+        " MIIBUwIBADANBgkqhkiG9w0BAQEFAASCAT0wggE5AgEAAkEAtDOpbUQhcEoYy77agRhIHmAzs7H+KHJhN56gTTI9fWq23j77nI055MFV3oQQziIrNUTNaPpEQhZXBpI0+f9K9QIDAQABAkB3n0fcWfrcoMN/FU3VnrnZOEF6CzFNxkgU9P8y36QECWKZ9JhYQkNpKrMC9oXlN3VSaRigV7B+L/I/a0Rs1W+tAiEA4jx7xcXJ4y4BNwAmVHt6NNiEkzIwWnwC/0qsEu8NsOsCIQDL6MMn1D2uznC6OuOWpxDCkBh1JL1NzZTZeH2G+hj7nwIgKGAC9tjFnvWm4dn0/T7MIIJDpsFeP8fCAS2iZ/6hwuECIAS/eLvWr1EAsZNEh8QcQ8GkBU3E+ztyjAK8UX/xFt/VAiBf79/1tDErX4/DChecM8w3c3DhbBcjuE3fHZn7p6/UKg==",
+      formData: {
+        question1: "",
+        question2: "",
+        question3: "",
+      },
+    };
+  },
+  mounted() {
+    window.addEventListener("beforeunload", this.cache);
+  },
+  beforeDestroy() {
+    window.removeEventListener("beforeunload", this.cache);
+  },
+  created() {
+    this.geturlinfo();
+  },
+  methods: {
+    // 瑙f瀽urlid
+    geturlinfo() {
+       // let url = window.location.href;
+       let url = this.$route.query.p;
+       console.log(url,"url");
+      // let url = 'http://218.108.11.22:8093/sf/003';
+      // let urlid = this.extractLastSegmentFromUrl(url);
+
+      geturlinfo( url ).then((res) => {
+       if (res.code==200) {
+         this.getQuestionnaire(res.data.param1,res.data.param2,res.data.param3,res.data.param5,)
+       }
+      });
+    },
+//     extractLastSegmentFromUrl(url) {
+//     // 鎵惧埌鏈�鍚庝竴涓�'/'鐨勪綅缃�
+//     const lastSlashIndex = url.lastIndexOf('/');
+//     // 濡傛灉鎵惧埌浜�'/'锛屾埅鍙栧叾鍚庣殑鎵�鏈夊瓧绗�
+//     if (lastSlashIndex !== -1) {
+//         return url.substring(lastSlashIndex + 1);
+//     }
+//     // 濡傛灉娌℃湁鎵惧埌'/'锛岃繑鍥炵┖瀛楃涓�
+//     return '';
+// },
+
+    // 鑾峰彇鏁版嵁
+    getQuestionnaire(param1,param2,param3) {
+      this.taskid = decodeURIComponent(param1);
+      this.patid = decodeURIComponent(param2);
+      this.taskname = decodeURIComponent(param3);
+      // let taskid =
+      //   "OFp7tn/B6x7IzKJetvGWHdSWBj7msRlnlj6am9dyuHTH6sEt4uBbVCUXs5kcF/e4O2W6vqHf2Bz9K3/evbYDmw==";
+      // let patid =
+      //   "CVk0j8O86AeCqhV5WPsBBYDg9fec0wDoDlP9imYK4wDBNIkxywZzMJEGlPagOxnq6qr2WYZo0U8MUGWRGnq8ZA==";
+      // this.taskid = this.decrypt(taskid);
+      // this.patid = this.decrypt(patid);
+      // let taskids = this.encrypt(this.taskid);
+      // let patids = this.encrypt(this.patid);
+      // 鍏堝彇缂撳瓨
+      getCachequestionnaire({ param1: this.taskid, param2: this.patid }).then(
+        (res) => {
+          if (res.code == 200) {
+            this.questionList = res.data;
+            this.accomplish = res.data.submit;
+            if (this.questionList[0]) {
+              this.questionList.forEach((item) => {
+                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;
+            } else {
+              this.getExternalfollowup();
+            }
+          } else {
+            this.getExternalfollowup();
+          }
+        }
+      );
+    },
+    // 鑾峰彇鏁版嵁
+    getExternalfollowup() {
+      getExternalfollowup({ param1: this.taskid, param2: this.patid }).then(
+        (res) => {
+          if (res.code == 200) {
+            this.questionList = res.data.script;
+            this.jsy = res.data.jsy;
+            this.kcb = res.data.kcb;
+            // 澶勭悊棰樼洰鏀堕泦缁撴灉鏍煎紡
+            this.questionList.forEach((item) => {
+              item.nextScriptno = Number(item.nextScriptno);
+              if (item.scriptType == 2) {
+                item.scriptResult = [];
+              }
+            });
+          }
+        }
+      );
+    },
+    // 鍔犲瘑鍑芥暟
+    encrypt(txt) {
+      const encryptor = new JSEncrypt();
+      encryptor.setPublicKey(this.publicKey); // 璁剧疆鍏挜
+      return encryptor.encrypt(txt); // 瀵规暟鎹繘琛屽姞瀵�
+    },
+    // 瑙e瘑鍑芥暟
+    decrypt(txt) {
+      const encryptor = new JSEncrypt();
+      encryptor.setPrivateKey(this.privateKey); // 璁剧疆绉侀挜
+      return encryptor.decrypt(txt); // 瀵规暟鎹繘琛岃В瀵�
+    },
+    // 鎻愪氦
+    submitForm() {
+      // 鎻愪氦琛ㄥ崟閫昏緫
+      let form = {
+        param1: this.taskid,
+        param2: this.patid,
+        excep: this.excep,
+        serviceSubtaskDetailList: [],
+      };
+      const arr = structuredClone(this.questionList);
+      // 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.jsy) {
+            this.dialogVisible = true;
+          }
+          this.accomplish = true;
+          this.$modal.msgSuccess("鎻愪氦鎴愬姛");
+        }
+      });
+    },
+    // 缂撳瓨
+    cache(subm) {
+      console.log("杩涘叆缂撳瓨");
+      let form = {
+        param1: this.taskid,
+        param2: this.patid,
+        svyLibTemplateScriptVOS: [],
+      };
+      const arr = structuredClone(this.questionList);
+      console.log(arr, "srr");
+      arr.forEach((item, index) => {
+        var obj = item.svyLibTemplateTargetoptions.find(
+          (items) => items.optioncontent == item.scriptResult
+        );
+        if (obj.isabnormal) {
+          console.log(obj.isabnormal);
+          form.excep = 1;
+          this.excep = 1;
+        }
+      });
+
+      arr.forEach((item) => {
+        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) => {
+        if (res.code == 200) {
+          if (subm) {
+            this.submitForm();
+          }
+        }
+      });
+    },
+    // 澶勭悊鍗曢�夐�夐」
+    handleOptionChange(selectedvalue, index, arr) {
+      // 鏌ユ壘閫変腑鐨勯�夐」瀵硅薄
+      const selectedOption = arr.svyLibTemplateTargetoptions.find(
+        (option) => option.optioncontent == selectedvalue
+      );
+      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>
+
+<style lang="scss" scoped>
+.questionnaire {
+  // background-image: url("../assets/images/chainbackground.jpg");
+  background-color: #f9f9fb;
+  background-size: cover;
+  background-attachment: fixed; /* 淇濇寔鑳屾櫙鍥哄畾 */
+  background-position: center;
+  font-family: Arial, sans-serif;
+  min-height: 100vh;
+  margin: 0;
+  padding: 0;
+  .CONTENT {
+    .title {
+      color: #3769f3;
+      font-size: 22px;
+      font-weight: bold;
+      margin-bottom: 20px;
+      text-align: center;
+    }
+  }
+}
+.preview-left {
+  margin: 10px;
+  margin-bottom: 60px;
+  background-color: #fff;
+  border-radius: 5px;
+  //   margin: 20px;
+  padding: 10px;
+  height: 100%;
+  // background: #ffff;
+  border: 1px solid #dcdfe6;
+  -webkit-box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.12),
+    0 0 6px 0 rgba(0, 0, 0, 0.04);
+  .topic-dev {
+    margin-bottom: 25px;
+    font-size: 20px !important;
+    .dev-text {
+      margin-bottom: 10px;
+    }
+  }
+}
+.preview-lefts {
+  margin: 10px;
+  background-color: #fff;
+  border-radius: 5px;
+  //   margin: 20px;
+  padding: 10px;
+  height: 95vh; // background: #ffff;
+  border: 1px solid #dcdfe6;
+  -webkit-box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.12),
+    0 0 6px 0 rgba(0, 0, 0, 0.04);
+  .topic-dev {
+    margin-bottom: 25px;
+    font-size: 20px !important;
+    .dev-text {
+      margin-bottom: 10px;
+    }
+  }
+}
+
+.red-star {
+  ::v-deep.el-radio__label {
+    position: relative;
+    padding-right: 10px; /* 鏍规嵁闇�瑕佽皟鏁� */
+  }
+  ::v-deep.el-radio__label::after {
+    content: "*";
+    color: red;
+    position: absolute;
+    right: -5px; /* 鏍规嵁闇�瑕佽皟鏁� */
+    top: 0;
+  }
+  ::v-deep.el-checkbox__label {
+    position: relative;
+    padding-right: 10px; /* 鏍规嵁闇�瑕佽皟鏁� */
+  }
+  ::v-deep.el-checkbox__label::after {
+    content: "*";
+    color: red;
+    position: absolute;
+    right: -5px; /* 鏍规嵁闇�瑕佽皟鏁� */
+    top: 0;
+  }
+}
+::v-deep.el-checkbox-group {
+  font-size: 0;
+  display: flex;
+  flex-direction: column;
+  margin: 5px 0;
+}
+::v-deep.el-checkbox.is-bordered + .el-checkbox.is-bordered {
+  margin-left: 0;
+}
+
+::v-deep.el-radio-group {
+  display: flex;
+  flex-direction: column;
+  margin: 5px 0;
+}
+::v-deep.el-radio.is-bordered + .el-radio.is-bordered {
+  /* margin-left: 10px; */
+  margin-left: 0;
+}
+::v-deep.custom-radio .el-radio {
+  margin: 2px 0;
+}
+
+.radio-option {
+  flex: none; /* 涓嶈閫夐」鑷姩濉厖绌洪棿 */
+  white-space: nowrap; /* 闃叉閫夐」鏂囨湰鎹㈣ */
+  margin: 0 10px; /* 璁剧疆閫夐」宸﹀彸鐨勯棿闅� */
+  font-size: 20px; /* 澧炲ぇ瀛椾綋澶у皬 */
+}
+
+.el-radio__label {
+  font-size: 20px; /* 澧炲ぇ鏍囩鏂囧瓧澶у皬 */
+}
+.toptitle {
+}
+.bottom-fixed {
+  position: fixed;
+  bottom: 0;
+  left: 0;
+  width: 100%;
+  text-align: center;
+  padding: 10px 0; /* 鏍规嵁闇�瑕佽皟鏁村唴杈硅窛 */
+  background: #fff; /* 鏍规嵁闇�瑕佽皟鏁磋儗鏅鑹� */
+  box-shadow: 0 -2px 5px rgba(0, 0, 0, 0.1); /* 鍙�夌殑闃村奖鏁堟灉 */
+  z-index: 1000; /* 纭繚鎸夐挳鍦ㄩ〉闈㈡渶涓婂眰 */
+}
+::v-deep.el-alert--warning.is-light {
+  background-color: #fbf9f3;
+  color: #ffba00;
+}
+::v-deep {
+  .el-alert__title {
+    font-size: 20px;
+    line-height: 18px;
+  }
+}
+::v-deep.el-radio--medium.is-bordered .el-radio__label {
+  font-size: 20px;
+}
+::v-deep.el-radio--medium.is-bordered {
+  padding: 5px 20px 0px 10px;
+  border-radius: 4px;
+  height: 36px;
+}
+::v-deep.el-checkbox.is-bordered.el-checkbox--medium .el-checkbox__label {
+  line-height: 17px;
+  font-size: 20px;
+}
+::v-deep.el-checkbox {
+  margin-right: 0px;
+}
+</style>
diff --git a/src/views/outsideChainxj.vue b/src/views/outsideChainxj.vue
index 51889fb..367b0fa 100644
--- a/src/views/outsideChainxj.vue
+++ b/src/views/outsideChainxj.vue
@@ -1,7 +1,7 @@
 <template>
   <div class="questionnaire">
     <!-- <div class="CONTENT">
-      <div class="title">鏂板崕鍖婚櫌鍖绘姢鐭ヨ瘑瀹f暀</div>
+      <div class="title">娴欎腑鍖诲ぇ浜岄櫌鍖绘姢鐭ヨ瘑瀹f暀</div>
       <div class="preview-left">
         <div v-html="richText"></div>
       </div>
@@ -10,7 +10,7 @@
     <div class="CONTENT" >
       <div class="preview-left">
         <div class="toptitle">
-          <div class="title">{{ taskname ? taskname : "鏂板崕鍖婚櫌鍖绘姢鐭ヨ瘑瀹f暀" }}</div>
+          <div class="title">{{ taskname ? taskname : "娴欎腑鍖诲ぇ浜岄櫌鍖绘姢鐭ヨ瘑瀹f暀" }}</div>
           <div style="font-size: 22px; margin-bottom: 20px; line-height: 1.5">
             {{
               kcb
diff --git a/src/views/outsideChainxjnew.vue b/src/views/outsideChainxjnew.vue
new file mode 100644
index 0000000..cf2e219
--- /dev/null
+++ b/src/views/outsideChainxjnew.vue
@@ -0,0 +1,248 @@
+<template>
+  <div class="questionnaire">
+    <!-- <div class="CONTENT">
+      <div class="title">娴欎腑鍖诲ぇ浜岄櫌鍖绘姢鐭ヨ瘑瀹f暀</div>
+      <div class="preview-left">
+        <div v-html="richText"></div>
+      </div>
+
+    </div> -->
+    <div class="CONTENT" >
+      <div class="preview-left">
+        <div class="toptitle">
+          <div class="title">{{ taskname ? taskname : "娴欎腑鍖诲ぇ浜岄櫌鍖绘姢鐭ヨ瘑瀹f暀" }}</div>
+          <div style="font-size: 22px; margin-bottom: 20px; line-height: 1.5">
+            {{
+              kcb
+                ? kcb
+                : "浜茬埍鐨勬偅鑰�-瀹跺睘锛屾偍濂斤紒鎴戜滑鏄禉涓尰澶т簩闄㈢殑鍖绘姢浜哄憳锛屼负浜嗘洿濂藉湴浜嗚В鎮ㄧ殑搴峰鎯呭喌锛岃鎮ㄦ娊涓�鐐瑰疂璐垫椂闂达紝瑙傜湅杩欎唤瀹f暀璧勮銆�"
+            }}
+            <!-- 浜茬埍鐨勬偅鑰�/瀹跺睘鎮ㄥソ锛屼负浜嗘洿濂界殑浜嗚В鎮ㄥ嚭闄㈠悗鐨勫悍澶嶆儏鍐碉紝缁欐偍閫傚綋鍙婃椂鐨勫仴搴锋寚瀵硷紝璇锋偍鎶戒竴鐐瑰疂璐垫椂闂达紝瀹屾垚杩欎唤鍑洪櫌闅忚闂嵎璋冩煡銆� -->
+          </div>
+        </div>
+        <el-divider></el-divider>
+        <div v-html="richText"></div>
+        <div
+          style="
+            text-align: center;
+            padding-top: 50px;
+            font-size: 24px;
+            color: #175997;
+            font-weight: 600;
+            margin-bottom: 10px;
+          "
+        >
+        {{
+            jsy
+              ? jsy
+              : "鐢熸椿涓婅鍔抽�哥粨鍚堬紝娉ㄦ剰浼戞伅鍜岃惀鍏伙紝閫傚綋閿荤偧锛屾垝鐑熼檺閰掞紝淇濇寔蹇冩儏鑸掔晠锛屽畾鏈熷璇娿�傞偅鏈瀹f暀鍐呭灏卞埌杩欓噷锛岀鎮ㄨ韩浣撳仴搴凤紒"
+          }}        </div>
+        <!-- <div style="font-size: 20px">
+          {{
+            jsy
+              ? jsy
+              : "鐢熸椿涓婅鍔抽�哥粨鍚堬紝娉ㄦ剰浼戞伅鍜岃惀鍏伙紝閫傚綋閿荤偧锛屾垝鐑熼檺閰掞紝淇濇寔蹇冩儏鑸掔晠锛屽畾鏈熷璇娿�傞偅鏈瀹f暀鍐呭灏卞埌杩欓噷锛岀鎮ㄨ韩浣撳仴搴凤紒"
+          }}
+        </div> -->
+      </div>
+    </div>
+  </div>
+</template>
+
+<script>
+import {
+  getExternalfollowup,
+  SetsaveQuestionAnswer,
+  geturlinfo
+} from "@/api/AiCentre/index";
+import { getToken } from "@/utils/auth";
+import axios from "axios";
+import JSEncrypt from "jsencrypt";
+export default {
+  data() {
+    return {
+      taskid: 355,
+      patid: 265823,
+      questionList: null,
+      // 鍓嶇鍏挜
+      publicKey:
+        "MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAKR0yHv0rbJWQE+Sc7/FwpW66qMd9qX2k6z+SDgkSdxWh/1GbBoAP7bDQQRF6vXmoKsD2ya42H6XRLSDXAoayuMCAwEAAQ== ",
+      // 鍚庣绉侀挜
+      privateKey:
+        " MIIBUwIBADANBgkqhkiG9w0BAQEFAASCAT0wggE5AgEAAkEAtDOpbUQhcEoYy77agRhIHmAzs7H+KHJhN56gTTI9fWq23j77nI055MFV3oQQziIrNUTNaPpEQhZXBpI0+f9K9QIDAQABAkB3n0fcWfrcoMN/FU3VnrnZOEF6CzFNxkgU9P8y36QECWKZ9JhYQkNpKrMC9oXlN3VSaRigV7B+L/I/a0Rs1W+tAiEA4jx7xcXJ4y4BNwAmVHt6NNiEkzIwWnwC/0qsEu8NsOsCIQDL6MMn1D2uznC6OuOWpxDCkBh1JL1NzZTZeH2G+hj7nwIgKGAC9tjFnvWm4dn0/T7MIIJDpsFeP8fCAS2iZ/6hwuECIAS/eLvWr1EAsZNEh8QcQ8GkBU3E+ztyjAK8UX/xFt/VAiBf79/1tDErX4/DChecM8w3c3DhbBcjuE3fHZn7p6/UKg==",
+      formData: {
+        question1: "",
+        question2: "",
+        question3: "",
+      },
+      richText: "<p>Hello, <strong>world</strong>!</p>",
+      url:'',
+      taskname:'',
+      kcb:'',
+      jsy:'',
+    };
+  },
+
+  created() {
+    this.getQuestionnaire();
+  },
+  methods: {
+    // 瑙f瀽urlid
+    geturlinfo() {
+      // let url = window.location.href;
+      let url = this.$route.query.p;
+      // let url = 'http://218.108.11.22:8093/sf/003';
+      // let urlid = this.extractLastSegmentFromUrl(url);
+
+      geturlinfo( url ).then((res) => {
+       if (res.code==200) {
+         this.getQuestionnaire(res.data.param1,res.data.param2,res.data.param3,res.data.param5,)
+       }
+      });
+    },
+    extractLastSegmentFromUrl(url) {
+    // 鎵惧埌鏈�鍚庝竴涓�'/'鐨勪綅缃�
+    const lastSlashIndex = url.lastIndexOf('/');
+    // 濡傛灉鎵惧埌浜�'/'锛屾埅鍙栧叾鍚庣殑鎵�鏈夊瓧绗�
+    if (lastSlashIndex !== -1) {
+        return url.substring(lastSlashIndex + 1);
+    }
+    // 濡傛灉娌℃湁鎵惧埌'/'锛岃繑鍥炵┖瀛楃涓�
+    return '';
+},
+    // 鑾峰彇鏁版嵁
+    getQuestionnaire(param1,param2,param3) {
+      this.taskid = param1;
+      this.patid = param2;
+      this.taskname = param3;
+      // // let taskid =
+      // //   "OFp7tn/B6x7IzKJetvGWHdSWBj7msRlnlj6am9dyuHTH6sEt4uBbVCUXs5kcF/e4O2W6vqHf2Bz9K3/evbYDmw==";
+      // // let patid =
+      // //   "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);
+      getExternalfollowup({ param1: this.taskid, param2: this.patid }).then((res) => {
+        if (res.code == 200) {
+          this.url = res.data.script[0].richText;
+          this.jsy = res.data.jsy;
+          this.kcb = res.data.kcb;
+          // 涓存椂鑾峰彇鏁版嵁
+      axios
+        .get(this.url)
+        .then((response) => {
+          console.log(response.data, "鏁版嵁"); // 杈撳嚭鑾峰彇鍒扮殑鏂囦欢鍐呭
+          this.richText = response.data;
+          this.richText = this.addStyleToImages(this.richText);
+        })
+        .catch((error) => {
+          console.error("Failed to fetch file:", error);
+        });
+        }
+      });
+
+    },
+    addStyleToImages(html) {
+      return html.replace(
+        /<img([^>]*)style=(['"])(?:(?!\2).)*\2([^>]*)>/g,
+        '<img$1style="width:100%;height:auto;"$3>'
+      );
+    },
+    // 鍔犲瘑鍑芥暟
+    encrypt(txt) {
+      const encryptor = new JSEncrypt();
+      encryptor.setPublicKey(this.publicKey); // 璁剧疆鍏挜
+      return encryptor.encrypt(txt); // 瀵规暟鎹繘琛屽姞瀵�
+    },
+
+    // 瑙e瘑鍑芥暟
+    decrypt(txt) {
+      const encryptor = new JSEncrypt();
+      encryptor.setPrivateKey(this.privateKey); // 璁剧疆绉侀挜
+      return encryptor.decrypt(txt); // 瀵规暟鎹繘琛岃В瀵�
+    },
+    // 鎻愪氦
+    submitForm() {
+      // 鎻愪氦琛ㄥ崟閫昏緫
+      console.log(this.questionList);
+      let form = {
+        param1: this.taskid,
+        param2: this.patid,
+        ivrTaskcalldetailList: [],
+      };
+      this.questionList.forEach((item) => {
+        let optionarr = [];
+        item.ivrLibaScriptTargetoptionList.forEach((option) => {
+          optionarr.push(option.targetvalue);
+        });
+        let ivrTaskcalldetail = {
+          asrtext: item.asrtext,
+          valueType: item.valueType,
+          scriptContent: item.scriptContent,
+          targetoptions: optionarr.join(","),
+        };
+        form.ivrTaskcalldetailList.push(ivrTaskcalldetail);
+      });
+      console.log(form, "form");
+
+      SetsaveQuestionAnswer(form).then((res) => {
+        if (res.code == 200) {
+          this.$modal.msgSuccess("鎻愪氦鎴愬姛");
+        }
+      });
+      // 鍙互灏嗘暟鎹彁浜ゅ埌鍚庣鎴栬�呰繘琛屽叾浠栧鐞�
+    },
+  },
+};
+</script>
+
+<style lang="scss" scoped>
+
+.questionnaire {
+  background-image: url("../assets/images/chainbackground1.jpg");
+  background-color: #f9f9fb;
+  background-size: cover;
+  background-attachment: fixed; /* 淇濇寔鑳屾櫙鍥哄畾 */
+  background-position: center;
+  font-family: Arial, sans-serif;
+  min-height: 100vh;
+  margin: 0;
+  padding: 0;
+  .CONTENT {
+    padding-top: 15px;
+    padding-bottom: 15px;
+    .title {
+      color: #3769f3;
+      font-size: 22px;
+      font-weight: bold;
+      margin-bottom: 20px;
+      text-align: center;
+    }
+  }
+}
+.preview-left {
+  margin: 10px;
+  margin-bottom: 60px;
+  background-color: #fff;
+  border-radius: 5px;
+  //   margin: 20px;
+  padding: 10px;
+  padding-bottom: 100px;
+  height: 100%;
+  // background: #ffff;
+  border: 1px solid #dcdfe6;
+  -webkit-box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.12),
+    0 0 6px 0 rgba(0, 0, 0, 0.04);
+  .topic-dev {
+    margin-bottom: 25px;
+    font-size: 20px !important;
+    .dev-text {
+      margin-bottom: 10px;
+    }
+  }
+}
+</style>
diff --git a/src/views/register.vue b/src/views/register.vue
index 88bcb52..5e735ee 100644
--- a/src/views/register.vue
+++ b/src/views/register.vue
@@ -6,7 +6,7 @@
       :rules="registerRules"
       class="register-form"
     >
-      <h3 class="title">娴欎腑澶т簩闄㈡櫤鎱ч殢璁垮钩鍙�</h3>
+      <h3 class="title">娴欎腑鍖诲ぇ浜岄櫌鏅烘収闅忚骞冲彴</h3>
       <el-form-item prop="username">
         <el-input
           v-model="registerForm.username"
diff --git a/src/views/repositoryai/templateku/configurat/index.vue b/src/views/repositoryai/templateku/configurat/index.vue
index 27d7a52..abef0d2 100644
--- a/src/views/repositoryai/templateku/configurat/index.vue
+++ b/src/views/repositoryai/templateku/configurat/index.vue
@@ -1828,12 +1828,17 @@
         this.ruleForm.isoperation = 2;
         this.ruleForm.tempDetpRelevances = [];
         compileFollowup(this.ruleForm).then((res) => {
-          this.$modal.msgSuccess("淇敼鎴愬姛");
+          if (res.code==200) {
+            this.$modal.msgSuccess("淇敼鎴愬姛");
           this.confirmillness();
           this.putbelongDepts(this.id);
-          this.$modal.closeLoading();
+          // this.$modal.closeLoading();
           // this.$router.go(-1);
           window.location.reload();
+          }else{
+            this.$modal.closeLoading();
+          }
+
         });
       } else {
         this.ruleForm.isoperation = 1;
@@ -1842,11 +1847,16 @@
           : "1.0";
         this.ruleForm.tempDetpRelevances = [];
         compileFollowup(this.ruleForm).then((res) => {
-          this.$modal.msgSuccess("鏂板鎴愬姛");
-          this.confirmillness(res.data);
-          this.putbelongDepts(res.data);
-          this.$modal.closeLoading();
-          this.$router.go(-1);
+          if (res.code==200) {
+            this.$modal.msgSuccess("鏂板鎴愬姛");
+            this.confirmillness(res.data);
+            this.putbelongDepts(res.data);
+            this.$modal.closeLoading();
+            this.$router.go(-1);
+          }else{
+            this.$modal.closeLoading();
+          }
+
         });
       }
     },
diff --git a/src/views/repositoryai/templateku/configurat/measurement.vue b/src/views/repositoryai/templateku/configurat/measurement.vue
index f71ca7f..b48369b 100644
--- a/src/views/repositoryai/templateku/configurat/measurement.vue
+++ b/src/views/repositoryai/templateku/configurat/measurement.vue
@@ -164,7 +164,7 @@
       };
       // 鍙戣捣ws璇锋眰
       sendWebsocket(
-        "ws://192.168.2.13:8095/chat?userId="+this.userid,
+        "ws://192.168.2.10:8095/chat?userId="+this.userid,
         obj,
         this.wsMessage,
         this.wsError
@@ -186,7 +186,7 @@
       // }
 
 
-      // clearTimeout(timerId)
+
       // 浼樺厛鍔犲叆閫氱敤搴撳尮閰嶆枃鏈�
       if (dataJson.nowQuestion.submoduleText) {
         this.Answerline.push({
@@ -221,6 +221,8 @@
             this.sendFn(); // 鍚庤皟鐢�
           }
         }, this.timeout * 1000);
+      }else{
+        clearTimeout(timerId)
       }
       console.log(this.questionList);
 
@@ -244,7 +246,7 @@
       console.log(obj, "鍏ュ弬");
       // 鍙戣捣ws璇锋眰
       sendWebsocket(
-        "ws://192.168.2.13:8095/chat?userId="+this.userid,
+        "ws://192.168.2.10:8095/chat?userId="+this.userid,
         obj,
         this.wsMessage,
         this.wsError
diff --git a/vue.config.js b/vue.config.js
index 9007899..ea845cf 100644
--- a/vue.config.js
+++ b/vue.config.js
@@ -7,7 +7,7 @@
 
 const CompressionPlugin = require('compression-webpack-plugin')
 
-const name = process.env.VUE_APP_TITLE || '娴欎腑澶т簩闄㈡櫤鎱ч殢璁垮钩鍙�' // 缃戦〉鏍囬
+const name = process.env.VUE_APP_TITLE || '娴欎腑鍖诲ぇ浜岄櫌鏅烘収闅忚骞冲彴' // 缃戦〉鏍囬
 
 const port = process.env.port || process.env.npm_config_port || 8093 // 绔彛
 
@@ -36,7 +36,7 @@
       // detail: https://cli.vuejs.org/config/#devserver-proxy
       [process.env.VUE_APP_BASE_API]: {
         // target: `http://192.168.168.60:8095`,
-        target: `http://192.168.2.13:8095`,
+        target: `http://10.202.20.185:8095`,
         // target:`http://localhost:8095`,
         // target: `http://192.168.101.135:8095`,
         // target: `http://192.168.101.166:8093`,

--
Gitblit v1.9.3