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