From 9ff0d92f9e7a58c405ef64e028cc7baf90d5f378 Mon Sep 17 00:00:00 2001 From: WXL <1785969728@qq.com> Date: 星期一, 09 九月 2024 10:51:25 +0800 Subject: [PATCH] 测试完成 --- src/views/outsideChainwt.vue | 273 ++++++++++++++++++++++++++++++++++++++++++------------ 1 files changed, 210 insertions(+), 63 deletions(-) diff --git a/src/views/outsideChainwt.vue b/src/views/outsideChainwt.vue index d9829a7..c86cca1 100644 --- a/src/views/outsideChainwt.vue +++ b/src/views/outsideChainwt.vue @@ -1,7 +1,7 @@ <template> <div class="questionnaire"> <div class="CONTENT"> - <div class="title">浜屾湡闂嵎璋冩煡琛�</div> + <div class="title">{{ taskname ? taskname : "闂嵎" }}</div> <div class="preview-left"> <!-- 鍗曢�� --> <div @@ -9,43 +9,97 @@ v-for="(item, index) in questionList" :key="item.aaa" > - <div class="dev-text"> - {{ index + 1 }}銆�<span>{{ item.questionText }}</span> - </div> - - <div class="dev-xx" v-if="item.valueType == 1"> - <el-radio-group v-model="item.asrtext"> - <el-radio - v-for="(items, index) in item.ivrLibaScriptTargetoptionList" - :key="items.id" - :label="items.targetvalue" - >{{ items.targetvalue }}</el-radio + <div class="scriptTopic-dev" :key="index" v-if="item.scriptType == 1"> + <div class="dev-text"> + {{ index + 1 }}銆乕鍗曢�塢<span>{{ item.scriptContent }}</span> + </div> + <div class="dev-xx"> + <el-radio-group + v-model="item.scriptResult" + @change="handleOptionChange($event, index, item)" > - </el-radio-group> + <el-radio + v-for="(items, index) in item.svyLibTemplateTargetoptions" + :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 v-else> - <el-input - type="textarea" - placeholder="璇疯緭鍏ュ唴瀹�" - v-model.sync="item.asrtext" - :rows="2" - /> + <!-- 澶氶�� --> + <div class="scriptTopic-dev" :key="index" v-if="item.scriptType == 2"> + <div class="dev-text"> + {{ index + 1 }}銆乕澶氶�塢<span>{{ item.scriptContent }}</span> + </div> + <div class="dev-xx"> + <el-checkbox-group + v-model="item.scriptResult" + @change="updateScore($event, index, item)" + > + <el-checkbox + @change="$forceUpdate()" + v-for="(items, indexs) in item.svyLibTemplateTargetoptions" + :key="indexs" + :label="items.optioncontent" + > + {{ items.optioncontent }} + </el-checkbox> + </el-checkbox-group> + </div> + <div v-show="item.prompt && item.scriptResult[0]"> + <el-alert :title="item.prompt" type="warning"> </el-alert> + </div> + </div> + <!-- 濉┖ --> + <div class="scriptTopic-dev" :key="index" v-if="item.scriptType == 4"> + <div class="dev-text"> + {{ index + 1 }}銆乕闂瓟]<span>{{ item.scriptContent }}</span> + </div> + <div class="dev-xx"> + <el-input + type="textarea" + :rows="2" + placeholder="璇疯緭鍏ョ瓟妗�" + v-model="item.scriptResult" + clearable + > + </el-input> + </div> </div> </div> </div> <el-form :model="formData" label-width="80px"> <el-form-item> - <el-button type="primary" @click="submitForm">鎻愪氦闂嵎</el-button> + <el-button type="primary" @click="cache(true)">鎻愪氦闂嵎</el-button> + <!-- <el-button type="primary" @click="cache">缂撳瓨闂嵎</el-button> --> </el-form-item> </el-form> </div> + <div class="CONTENT" v-if="accomplish"> + <div class="preview-left"> + </div> + </div> + <el-dialog + :visible.sync="dialogVisible" + width="50%" + > + <div> + <el-alert :title="revisitAfter" type="success"> </el-alert> + </div> + </el-dialog> </div> </template> <script> import { getExternalfollowup, - SetsaveQuestionAnswer, + getCachequestionnaire, + Cachequestionnaire, + Submitaquestionnaire, } from "@/api/AiCentre/index"; import JSEncrypt from "jsencrypt"; export default { @@ -54,6 +108,10 @@ taskid: 355, patid: 265823, questionList: null, + revisitAfter: null, + dialogVisible:false, + Endornot: true, + accomplish:false, // 鍓嶇鍏挜 publicKey: "MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAKR0yHv0rbJWQE+Sc7/FwpW66qMd9qX2k6z+SDgkSdxWh/1GbBoAP7bDQQRF6vXmoKsD2ya42H6XRLSDXAoayuMCAwEAAQ== ", @@ -67,31 +125,69 @@ }, }; }, - + mounted() { + window.addEventListener("beforeunload", this.cache); + }, + beforeDestroy() { + window.removeEventListener("beforeunload", this.cache); + }, created() { this.getQuestionnaire(); }, methods: { // 鑾峰彇鏁版嵁 getQuestionnaire() { - let taskid = this.$route.query.param1; - let patid = this.$route.query.param2; + this.taskid = decodeURIComponent(this.$route.query.param1); + this.patid = decodeURIComponent(this.$route.query.param2); + this.taskname = this.$route.query.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: taskids, param2: patids }).then((res) => { - if (res.code == 200) { - this.questionList = res.rows; + // 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; + 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.revisitAfter = res.data.revisitAfter; + // 澶勭悊棰樼洰鏀堕泦缁撴灉鏍煎紡 + this.questionList.forEach((item) => { + item.nextScriptno = Number(item.nextScriptno); + if (item.scriptType == 2) { + item.scriptResult = []; + } + }); + } + } + ); }, // 鍔犲瘑鍑芥暟 encrypt(txt) { @@ -99,7 +195,6 @@ encryptor.setPublicKey(this.publicKey); // 璁剧疆鍏挜 return encryptor.encrypt(txt); // 瀵规暟鎹繘琛屽姞瀵� }, - // 瑙e瘑鍑芥暟 decrypt(txt) { const encryptor = new JSEncrypt(); @@ -109,33 +204,80 @@ // 鎻愪氦 submitForm() { // 鎻愪氦琛ㄥ崟閫昏緫 - console.log(this.questionList); let form = { - param1: this.encrypt(this.taskid), - param2: this.encrypt(this.patid), - ivrTaskcalldetailList: [], + param1: this.taskid, + param2: this.patid, + serviceSubtaskDetailList: [], }; - this.questionList.forEach((item) => { - let optionarr = []; - item.ivrLibaScriptTargetoptionList.forEach((option) => { - optionarr.push(option.targetvalue); - }); - let ivrTaskcalldetail = { - asrtext: item.asrtext, - valueType: item.valueType, - questiontext: item.questionText, - targetoptions: optionarr.join(","), - }; - form.ivrTaskcalldetailList.push(ivrTaskcalldetail); - }); - console.log(form, "form"); - - SetsaveQuestionAnswer(form).then((res) => { + 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.revisitAfter) { + this.dialogVisible=true + } this.$modal.msgSuccess("鎻愪氦鎴愬姛"); } }); - // 鍙互灏嗘暟鎹彁浜ゅ埌鍚庣鎴栬�呰繘琛屽叾浠栧鐞� + }, + // 缂撳瓨 + cache(subm) { + console.log("杩涘叆缂撳瓨"); + let form = { + param1: this.taskid, + param2: this.patid, + svyLibTemplateScriptVOS: [], + }; + const arr = structuredClone(this.questionList); + 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) { + this.$modal.msgSuccess("鎻愪氦鎴愬姛"); + 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; }, }, }; @@ -143,11 +285,6 @@ <style lang="scss" scoped> .questionnaire { - // background-image: url("../assets/images/chainbackground.jpg"); - // background-repeat: no-repeat; - // background-position: center center; - // background-size: cover; - // height: 100vh; background-image: url("../assets/images/chainbackground.jpg"); background-size: cover; background-attachment: fixed; /* 淇濇寔鑳屾櫙鍥哄畾 */ @@ -182,4 +319,14 @@ } } } +::v-deep.el-alert--warning.is-light { + background-color: #fbf9f3; + color: #ffba00; +} +::v-deep{ + .el-alert__title { + font-size: 18px; + line-height: 18px; +} +} </style> -- Gitblit v1.9.3