From 2073439ddb4584a1daa629bd749285ffb7f1d2c3 Mon Sep 17 00:00:00 2001
From: WXL <1785969728@qq.com>
Date: 星期二, 10 九月 2024 13:45:03 +0800
Subject: [PATCH] 测试完成
---
src/views/outsideChainwt.vue | 301 +++++++++++++++++++++++++++++++++++++++++++------
1 files changed, 262 insertions(+), 39 deletions(-)
diff --git a/src/views/outsideChainwt.vue b/src/views/outsideChainwt.vue
index 2215dc2..fca9f11 100644
--- a/src/views/outsideChainwt.vue
+++ b/src/views/outsideChainwt.vue
@@ -1,8 +1,14 @@
<template>
<div class="questionnaire">
- <div class="CONTENT">
- <div class="title">{{ taskname ? taskname : "闂嵎" }}</div>
+ <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 }}
+ </div>
+ </div>
+ <el-divider></el-divider>
<!-- 鍗曢�� -->
<div
class="topic-dev"
@@ -11,11 +17,20 @@
>
<div class="scriptTopic-dev" :key="index" v-if="item.scriptType == 1">
<div class="dev-text">
- {{ index + 1 }}銆乕鍗曢�塢<span>{{ item.scriptContent }}</span>
+ {{ index + 1 }}銆�<span>{{ item.scriptContent }} <span style="color: #3BA2F7;">[鍗曢�塢</span></span>
</div>
<div class="dev-xx">
- <el-radio-group v-model="item.scriptResult" @change="handleOptionChange($event, index, item)">
+ <el-radio-group
+ class="radio-group"
+ v-model="item.scriptResult"
+ @change="handleOptionChange($event, index, item)"
+ >
<el-radio
+ :class="{
+ 'radio-option': true,
+ 'radio-option-first': index === 0,
+ }"
+ border
v-for="(items, index) in item.svyLibTemplateTargetoptions"
:key="index"
:label="items.optioncontent"
@@ -23,15 +38,27 @@
>
</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>{{ item.scriptContent }}</span>
+ {{ index + 1 }}銆�<span>{{ item.scriptContent }} <span style="color: #3BA2F7;">[澶氶�塢</span></span>
</div>
<div class="dev-xx">
- <el-checkbox-group v-model="item.scriptResult">
+ <el-checkbox-group
+ class="radio-group"
+ v-model="item.scriptResult"
+ @change="updateScore($event, index, item)"
+ >
<el-checkbox
+ :class="{
+ 'radio-option': true,
+ 'radio-option-first': index === 0,
+ }"
+ border
@change="$forceUpdate()"
v-for="(items, indexs) in item.svyLibTemplateTargetoptions"
:key="indexs"
@@ -41,11 +68,14 @@
</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>
+ {{ index + 1 }}銆�<span>{{ item.scriptContent }}<span style="color: #3BA2F7;">[闂瓟]</span></span>
</div>
<div class="dev-xx">
<el-input
@@ -59,14 +89,34 @@
</div>
</div>
</div>
+ <div class="bottom-fixed">
+ <el-button type="primary" style="width: 100%;" @click="cache(true)">鎻愪氦闂嵎</el-button>
+ </div>
</div>
- <el-form :model="formData" label-width="80px">
- <el-form-item>
- <el-button type="primary" @click="cache(true)">鎻愪氦闂嵎</el-button>
- <el-button type="primary" @click="cache">缂撳瓨闂嵎</el-button>
- </el-form-item>
- </el-form>
</div>
+ <div class="CONTENT" v-else>
+ <div class="preview-left" style="margin-top: 100px">
+ <div
+ style="
+ font-size: 24px;
+ color: #175997;
+ font-weight: 600;
+ margin-bottom: 10px;
+ "
+ >
+ 鎰熻阿鎮ㄧ殑閰嶅悎!
+ </div>
+ <div style="font-size: 20px">{{ revisitAfter }}</div>
+ </div>
+ </div>
+ <!-- <el-dialog
+ :visible.sync="dialogVisible"
+ width="50%"
+ >
+ <div>
+ <el-alert :title="revisitAfter" type="success"> </el-alert>
+ </div>
+ </el-dialog> -->
</div>
</template>
@@ -83,7 +133,98 @@
return {
taskid: 355,
patid: 265823,
- questionList: null,
+ kcb:'',
+ questionList: [
+ // {
+ // scriptType: 1,
+ // scriptContent: "鎮ㄧ殑骞撮緞鑼冨洿鏄紵",
+ // scriptResult: null,
+ // svyLibTemplateTargetoptions: [
+ // { optioncontent: "18-25", value: "18-25" },
+ // { 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" },
+ // { optioncontent: "闃呰", value: "reading" },
+ // { optioncontent: "杩愬姩", value: "sports" },
+ // { 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" },
+ // { 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,
+ // },
+ ],
+ revisitAfter: null,
+ dialogVisible: false,
+ Endornot: true,
+ accomplish: false,
// 鍓嶇鍏挜
publicKey:
"MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAKR0yHv0rbJWQE+Sc7/FwpW66qMd9qX2k6z+SDgkSdxWh/1GbBoAP7bDQQRF6vXmoKsD2ya42H6XRLSDXAoayuMCAwEAAQ== ",
@@ -97,7 +238,12 @@
},
};
},
-
+ mounted() {
+ window.addEventListener("beforeunload", this.cache);
+ },
+ beforeDestroy() {
+ window.removeEventListener("beforeunload", this.cache);
+ },
created() {
this.getQuestionnaire();
},
@@ -113,22 +259,20 @@
// "CVk0j8O86AeCqhV5WPsBBYDg9fec0wDoDlP9imYK4wDBNIkxywZzMJEGlPagOxnq6qr2WYZo0U8MUGWRGnq8ZA==";
// this.taskid = this.decrypt(taskid);
// this.patid = this.decrypt(patid);
-
- // this.$modal.msgSuccess("鐢ㄦ埛id涓�" + this.patid);
- // this.$modal.msgSuccess("浠诲姟id涓�" + this.taskid);
// let taskids = this.encrypt(this.taskid);
// let patids = this.encrypt(this.patid);
- console.log(this.$route.query.param1);
- console.log(this.$route.query.param2);
// 鍏堝彇缂撳瓨
getCachequestionnaire({ param1: this.taskid, param2: this.patid }).then(
(res) => {
if (res.code == 200) {
this.questionList = res.data;
+ this.accomplish = res.data.submit;
if (this.questionList[0]) {
this.questionList.forEach((item) => {
- if (item.scriptResult) {
+ if (item.scriptResult && item.scriptType != 2) {
item.scriptResult = JSON.parse(item.scriptResult);
+ } else if (item.scriptResult && item.scriptType == 2) {
+ item.scriptResult = item.scriptResult.split("&");
}
});
return;
@@ -146,7 +290,9 @@
getExternalfollowup({ param1: this.taskid, param2: this.patid }).then(
(res) => {
if (res.code == 200) {
- this.questionList = res.rows;
+ this.questionList = res.data.script;
+ this.revisitAfter = res.data.revisitAfter;
+ this.kcb = res.data.kcb;
// 澶勭悊棰樼洰鏀堕泦缁撴灉鏍煎紡
this.questionList.forEach((item) => {
item.nextScriptno = Number(item.nextScriptno);
@@ -158,14 +304,12 @@
}
);
},
-
// 鍔犲瘑鍑芥暟
encrypt(txt) {
const encryptor = new JSEncrypt();
encryptor.setPublicKey(this.publicKey); // 璁剧疆鍏挜
return encryptor.encrypt(txt); // 瀵规暟鎹繘琛屽姞瀵�
},
-
// 瑙e瘑鍑芥暟
decrypt(txt) {
const encryptor = new JSEncrypt();
@@ -181,22 +325,26 @@
serviceSubtaskDetailList: [],
};
const arr = structuredClone(this.questionList);
- arr.forEach((item) => {
- item.asrtext = JSON.stringify(item.scriptResult);
- if (item.scriptType == 2 && item.scriptResult[0]) {
- item.asrtext = item.scriptResult.join("&");
- }
- });
+ // arr.forEach((item) => {
+ // item.asrtext = JSON.stringify(item.scriptResult);
+ // if (item.scriptType == 2 && item.scriptResult[0]) {
+ // item.scriptResult = item.scriptResult.join("&");
+ // }
+ // });
form.serviceSubtaskDetailList = arr;
Submitaquestionnaire(form).then((res) => {
if (res.code == 200) {
+ if (this.revisitAfter) {
+ this.dialogVisible = true;
+ }
+ this.accomplish = true;
this.$modal.msgSuccess("鎻愪氦鎴愬姛");
}
});
- // 鍙互灏嗘暟鎹彁浜ゅ埌鍚庣鎴栬�呰繘琛屽叾浠栧鐞�
},
// 缂撳瓨
cache(subm) {
+ console.log("杩涘叆缂撳瓨");
let form = {
param1: this.taskid,
param2: this.patid,
@@ -204,20 +352,23 @@
};
const arr = structuredClone(this.questionList);
arr.forEach((item) => {
- item.scriptResult = JSON.stringify(item.scriptResult);
+ if (item.scriptType == 2 && item.scriptResult[0]) {
+ item.scriptResult = item.scriptResult.join("&");
+ } else if (item.scriptType != 2 && item.scriptResult) {
+ item.scriptResult = JSON.stringify(item.scriptResult);
+ }
});
form.svyLibTemplateScriptVOS = arr;
Cachequestionnaire(form).then((res) => {
if (res.code == 200) {
- this.$modal.msgSuccess("鎻愪氦鎴愬姛");
if (subm) {
this.submitForm();
}
}
});
},
- // 澶勭悊閫夐」
- handleOptionChange(selectedvalue, index,arr) {
+ // 澶勭悊鍗曢�夐�夐」
+ handleOptionChange(selectedvalue, index, arr) {
// 鏌ユ壘閫変腑鐨勯�夐」瀵硅薄
const selectedOption = arr.svyLibTemplateTargetoptions.find(
(option) => option.optioncontent == selectedvalue
@@ -225,7 +376,23 @@
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;
},
},
};
@@ -233,7 +400,8 @@
<style lang="scss" scoped>
.questionnaire {
- background-image: url("../assets/images/chainbackground.jpg");
+ // background-image: url("../assets/images/chainbackground.jpg");
+ background-color: #f9f9fb;
background-size: cover;
background-attachment: fixed; /* 淇濇寔鑳屾櫙鍥哄畾 */
background-position: center;
@@ -242,8 +410,8 @@
margin: 0;
padding: 0;
.CONTENT {
- padding: 10px;
.title {
+ color: #3769F3;
font-size: 22px;
font-weight: bold;
margin-bottom: 20px;
@@ -252,9 +420,12 @@
}
}
.preview-left {
- margin: 20px;
+ margin: 10px;
+ margin-bottom: 60px;
+ background-color: #fff;
+ border-radius: 5px;
// margin: 20px;
- padding: 30px;
+ padding: 10px;
// background: #ffff;
border: 1px solid #dcdfe6;
-webkit-box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.12),
@@ -267,4 +438,56 @@
}
}
}
+.radio-group {
+ display: flex;
+ flex-wrap: wrap;
+ gap: 10px; /* 璁剧疆閫夐」涔嬮棿鐨勯棿闅� */
+ align-items: start; /* 纭繚閫夐」涓婁笅瀵归綈 */
+ padding: 10px 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%;
+ 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;
+}
</style>
--
Gitblit v1.9.3