|  |  | 
 |  |  | # é¡µé¢æ é¢ | 
 |  |  | VUE_APP_TITLE = æµä¸å¤§äºé¢æºæ
§éè®¿å¹³å° | 
 |  |  | VUE_APP_TITLE = æµä¸å»å¤§äºé¢æºæ
§éè®¿å¹³å° | 
 |  |  |  | 
 |  |  | # å¼åç¯å¢é
ç½® | 
 |  |  | ENV = 'development' | 
 |  |  |  | 
 |  |  | # æµä¸å¤§äºé¢æºæ
§é访平å°/å¼åç¯å¢ | 
 |  |  | # æµä¸å»å¤§äºé¢æºæ
§é访平å°/å¼åç¯å¢ | 
 |  |  | VUE_APP_BASE_API = '/dev-api' | 
 |  |  |  | 
 |  |  | # è·¯ç±æå è½½ | 
 
 |  |  | 
 |  |  | # é¡µé¢æ é¢ | 
 |  |  | VUE_APP_TITLE = æµä¸å¤§äºé¢æºæ
§éè®¿å¹³å° | 
 |  |  | VUE_APP_TITLE = æµä¸å»å¤§äºé¢æºæ
§éè®¿å¹³å° | 
 |  |  |  | 
 |  |  | # ç产ç¯å¢é
ç½® | 
 |  |  | ENV = 'production' | 
 |  |  |  | 
 |  |  | # æµä¸å¤§äºé¢æºæ
§é访平å°/ç产ç¯å¢ | 
 |  |  | # æµä¸å»å¤§äºé¢æºæ
§é访平å°/ç产ç¯å¢ | 
 |  |  | VUE_APP_BASE_API = '/prod-api' | 
 
 |  |  | 
 |  |  | # é¡µé¢æ é¢ | 
 |  |  | VUE_APP_TITLE = æµä¸å¤§äºé¢æºæ
§éè®¿å¹³å° | 
 |  |  | VUE_APP_TITLE = æµä¸å»å¤§äºé¢æºæ
§éè®¿å¹³å° | 
 |  |  |  | 
 |  |  | NODE_ENV = production | 
 |  |  |  | 
 |  |  | # æµè¯ç¯å¢é
ç½® | 
 |  |  | ENV = 'staging' | 
 |  |  |  | 
 |  |  | # æµä¸å¤§äºé¢æºæ
§é访平å°/æµè¯ç¯å¢ | 
 |  |  | # æµä¸å»å¤§äºé¢æºæ
§é访平å°/æµè¯ç¯å¢ | 
 |  |  | VUE_APP_BASE_API = '/stage-api' | 
 
 |  |  | 
 |  |  | { | 
 |  |  |   "name": "ruoyi", | 
 |  |  |   "version": "3.8.5", | 
 |  |  |   "description": "æµä¸å¤§äºé¢æºæ
§é访平å°", | 
 |  |  |   "description": "æµä¸å»å¤§äºé¢æºæ
§é访平å°", | 
 |  |  |   "author": "ææ°", | 
 |  |  |   "license": "MIT", | 
 |  |  |   "scripts": { | 
 
 |  |  | 
 |  |  |     data: data | 
 |  |  |   }); | 
 |  |  | } | 
 |  |  | // å é¤éç¨æ¨¡æ¿ | 
 |  |  | export function geturlinfo(id) { | 
 |  |  |   return request({ | 
 |  |  |     url: "/outPath/getInfoByParam", | 
 |  |  |     method: 'post', | 
 |  |  |     data: {param:id} | 
 |  |  |   }); | 
 |  |  | } | 
 |  |  | // æäº¤ãé访 | 
 |  |  | export function SetsaveQuestionAnswer(data) { | 
 |  |  |   return request({ | 
 
 |  |  | 
 |  |  |   }, | 
 |  |  |   data() { | 
 |  |  |     return { | 
 |  |  |       title: "æµä¸å¤§äºé¢æºæ
§é访平å°", | 
 |  |  |       title: "æµä¸å»å¤§äºé¢æºæ
§é访平å°", | 
 |  |  |       logo: logoImg, | 
 |  |  |     }; | 
 |  |  |   }, | 
 
 |  |  | 
 |  |  |  | 
 |  |  | 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()) { | 
 
 |  |  | 
 |  |  |     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 | 
 
 |  |  | 
 |  |  |           width="200" | 
 |  |  |         /> | 
 |  |  |         <el-table-column | 
 |  |  |  | 
 |  |  |           label="任塿§è¡æ¹å¼" | 
 |  |  |           align="center" | 
 |  |  |           key="preachform" | 
 |  |  | 
 |  |  |           :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" | 
 |  |  | 
 |  |  |           </template> | 
 |  |  |         </el-table-column> | 
 |  |  |         <el-table-column | 
 |  |  |  | 
 |  |  |           label="ä»»å¡ç»æè¯´æ" | 
 |  |  |           width="120" | 
 |  |  |           align="center" | 
 |  |  | 
 |  |  |         </el-table-column> | 
 |  |  |         <el-table-column | 
 |  |  |           label="æä½" | 
 |  |  |  | 
 |  |  |           align="center" | 
 |  |  |           width="200" | 
 |  |  |           class-name="small-padding fixed-width" | 
 |  |  | 
 |  |  |       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; | 
 |  |  | 
 |  |  |         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); | 
 |  |  | 
 |  |  |           }); | 
 |  |  |         }); | 
 |  |  |         this.total = response.total; | 
 |  |  |         this.loading = false; | 
 |  |  |       }); | 
 |  |  |     }, | 
 |  |  |     // æ¥çé¨è¯é访详æ
 | 
 
 |  |  | 
 |  |  |                 > | 
 |  |  |                   <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> | 
 |  |  | 
 |  |  |                 > | 
 |  |  |                   <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 | 
 |  |  | 
 |  |  | } from "@/api/AiCentre/index"; | 
 |  |  | import OptionalForm from "@/components/OptionalForm"; //æ£åç»ä»¶ | 
 |  |  | import { getToken } from "@/utils/auth"; | 
 |  |  | import { deptTreeSelect } from "@/api/system/user"; | 
 |  |  |  | 
 |  |  |  | 
 |  |  | export default { | 
 |  |  |   name: "Questionnaireinfo", | 
 |  |  | 
 |  |  |       illnessVisible: false, //ææ ç¾ç
å¼¹æ¡ | 
 |  |  |       Operateit: true, | 
 |  |  |       deptOptions: [], | 
 |  |  |       flatArray:[], | 
 |  |  |       optionsillness: [], | 
 |  |  |       delScriptVOList: [], | 
 |  |  |       illnesslistapi: [], | 
 |  |  | 
 |  |  |   created() { | 
 |  |  |     this.getissueinfo(); | 
 |  |  |     this.gettabList(); | 
 |  |  |     this.getDeptTree(); | 
 |  |  |     this.mode = store.getters.Askmode; | 
 |  |  |     this.languagelist = store.getters.languagelist; | 
 |  |  |     this.usable = store.getters.usable; | 
 |  |  | 
 |  |  |         } | 
 |  |  |       }); | 
 |  |  |     }, | 
 |  |  |     // è·åç§å®¤æ  | 
 |  |  |     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("æ£å¨ä¿®æ£ä¿åæ°æ®ï¼è¯·ç¨å..."); | 
 |  |  |       if (Array.isArray(this.ruleForm.suitway)) { | 
 
 |  |  | 
 |  |  |       :rules="loginRules" | 
 |  |  |       class="login-form" | 
 |  |  |     > | 
 |  |  |       <h3 class="title">æµä¸å¤§äºé¢æºæ
§é访平å°</h3> | 
 |  |  |       <h3 class="title">æµä¸å»å¤§äºé¢æºæ
§é访平å°</h3> | 
 |  |  |       <el-form-item prop="username"> | 
 |  |  |         <el-input | 
 |  |  |           v-model="loginForm.username" | 
 
| ¶Ô±ÈÐÂÎļþ | 
 |  |  | 
 |  |  | <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: { | 
 |  |  |     // è§£æ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); // å¯¹æ°æ®è¿è¡å å¯ | 
 |  |  |     }, | 
 |  |  |     // è§£å¯å½æ° | 
 |  |  |     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> | 
 
| ¶Ô±ÈÐÂÎļþ | 
 |  |  | 
 |  |  | <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: { | 
 |  |  |     // è§£æ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); // å¯¹æ°æ®è¿è¡å å¯ | 
 |  |  |     }, | 
 |  |  |     // è§£å¯å½æ° | 
 |  |  |     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> | 
 
 |  |  | 
 |  |  | <template> | 
 |  |  |   <div class="questionnaire"> | 
 |  |  |     <!-- <div class="CONTENT"> | 
 |  |  |       <div class="title">æ°åå»é¢å»æ¤ç¥è¯å®£æ</div> | 
 |  |  |       <div class="title">æµä¸å»å¤§äºé¢å»æ¤ç¥è¯å®£æ</div> | 
 |  |  |       <div class="preview-left"> | 
 |  |  |         <div v-html="richText"></div> | 
 |  |  |       </div> | 
 |  |  | 
 |  |  |     <div class="CONTENT" > | 
 |  |  |       <div class="preview-left"> | 
 |  |  |         <div class="toptitle"> | 
 |  |  |           <div class="title">{{ taskname ? taskname : "æ°åå»é¢å»æ¤ç¥è¯å®£æ" }}</div> | 
 |  |  |           <div class="title">{{ taskname ? taskname : "æµä¸å»å¤§äºé¢å»æ¤ç¥è¯å®£æ" }}</div> | 
 |  |  |           <div style="font-size: 22px; margin-bottom: 20px; line-height: 1.5"> | 
 |  |  |             {{ | 
 |  |  |               kcb | 
 
| ¶Ô±ÈÐÂÎļþ | 
 |  |  | 
 |  |  | <template> | 
 |  |  |   <div class="questionnaire"> | 
 |  |  |     <!-- <div class="CONTENT"> | 
 |  |  |       <div class="title">æµä¸å»å¤§äºé¢å»æ¤ç¥è¯å®£æ</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 : "æµä¸å»å¤§äºé¢å»æ¤ç¥è¯å®£æ" }}</div> | 
 |  |  |           <div style="font-size: 22px; margin-bottom: 20px; line-height: 1.5"> | 
 |  |  |             {{ | 
 |  |  |               kcb | 
 |  |  |                 ? kcb | 
 |  |  |                 : "亲ç±çæ£è
-å®¶å±ï¼æ¨å¥½ï¼æä»¬æ¯æµä¸å»å¤§äºé¢ç廿¤äººåï¼ä¸ºäºæ´å¥½å°äºè§£æ¨çåº·å¤æ
åµï¼è¯·æ¨æ½ä¸ç¹å®è´µæ¶é´ï¼è§çè¿ä»½å®£æèµè®¯ã" | 
 |  |  |             }} | 
 |  |  |             <!-- äº²ç±çæ£è
/家屿¨å¥½ï¼ä¸ºäºæ´å¥½çäºè§£æ¨åºé¢åçåº·å¤æ
åµï¼ç»æ¨éå½åæ¶çå¥åº·æå¯¼ï¼è¯·æ¨æ½ä¸ç¹å®è´µæ¶é´ï¼å®æè¿ä»½åºé¢é访é®å·è°æ¥ã --> | 
 |  |  |           </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 | 
 |  |  |               : "çæ´»ä¸è¦å³é¸ç»åï¼æ³¨æä¼æ¯åè¥å
»ï¼éå½é»ç¼ï¼æçéé
ï¼ä¿æå¿æ
èç
ï¼å®æå¤è¯ã飿¬æ¬¡å®£æå
容就å°è¿éï¼ç¥æ¨èº«ä½å¥åº·ï¼" | 
 |  |  |           }}        </div> | 
 |  |  |         <!-- <div style="font-size: 20px"> | 
 |  |  |           {{ | 
 |  |  |             jsy | 
 |  |  |               ? jsy | 
 |  |  |               : "çæ´»ä¸è¦å³é¸ç»åï¼æ³¨æä¼æ¯åè¥å
»ï¼éå½é»ç¼ï¼æçéé
ï¼ä¿æå¿æ
èç
ï¼å®æå¤è¯ã飿¬æ¬¡å®£æå
容就å°è¿éï¼ç¥æ¨èº«ä½å¥åº·ï¼" | 
 |  |  |           }} | 
 |  |  |         </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: { | 
 |  |  |     // è§£æ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); // å¯¹æ°æ®è¿è¡å å¯ | 
 |  |  |     }, | 
 |  |  |  | 
 |  |  |     // è§£å¯å½æ° | 
 |  |  |     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> | 
 
 |  |  | 
 |  |  |       :rules="registerRules" | 
 |  |  |       class="register-form" | 
 |  |  |     > | 
 |  |  |       <h3 class="title">æµä¸å¤§äºé¢æºæ
§é访平å°</h3> | 
 |  |  |       <h3 class="title">æµä¸å»å¤§äºé¢æºæ
§é访平å°</h3> | 
 |  |  |       <el-form-item prop="username"> | 
 |  |  |         <el-input | 
 |  |  |           v-model="registerForm.username" | 
 
 |  |  | 
 |  |  |         this.ruleForm.isoperation = 2; | 
 |  |  |         this.ruleForm.tempDetpRelevances = []; | 
 |  |  |         compileFollowup(this.ruleForm).then((res) => { | 
 |  |  |           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; | 
 |  |  | 
 |  |  |           : "1.0"; | 
 |  |  |         this.ruleForm.tempDetpRelevances = []; | 
 |  |  |         compileFollowup(this.ruleForm).then((res) => { | 
 |  |  |           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(); | 
 |  |  |           } | 
 |  |  |  | 
 |  |  |         }); | 
 |  |  |       } | 
 |  |  |     }, | 
 
 |  |  | 
 |  |  |       }; | 
 |  |  |       // åèµ·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 | 
 |  |  | 
 |  |  |       // } | 
 |  |  |  | 
 |  |  |  | 
 |  |  |       // clearTimeout(timerId) | 
 |  |  |  | 
 |  |  |       // ä¼å
å å
¥éç¨åºå¹é
ææ¬ | 
 |  |  |       if (dataJson.nowQuestion.submoduleText) { | 
 |  |  |         this.Answerline.push({ | 
 |  |  | 
 |  |  |             this.sendFn(); // åè°ç¨ | 
 |  |  |           } | 
 |  |  |         }, this.timeout * 1000); | 
 |  |  |       }else{ | 
 |  |  |         clearTimeout(timerId) | 
 |  |  |       } | 
 |  |  |       console.log(this.questionList); | 
 |  |  |  | 
 |  |  | 
 |  |  |       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 | 
 
 |  |  | 
 |  |  |  | 
 |  |  | 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 // ç«¯å£ | 
 |  |  |  | 
 |  |  | 
 |  |  |       // 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`, |