| | |
| | | {{ 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 |
| | | v-model="item.scriptResult" |
| | | @change="handleOptionChange($event, index, item)" |
| | | > |
| | | <el-radio |
| | | v-for="(items, index) in item.svyLibTemplateTargetoptions" |
| | | :key="index" |
| | |
| | | > |
| | | </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"> |
| | |
| | | {{ index + 1 }}、[多选]<span>{{ item.scriptContent }}</span> |
| | | </div> |
| | | <div class="dev-xx"> |
| | | <el-checkbox-group v-model="item.scriptResult"> |
| | | <el-checkbox-group |
| | | v-model="item.scriptResult" |
| | | @change="updateScore($event, index, item)" |
| | | > |
| | | <el-checkbox |
| | | @change="$forceUpdate()" |
| | | v-for="(items, indexs) in item.svyLibTemplateTargetoptions" |
| | |
| | | {{ 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> |
| | | <!-- 填空 --> |
| | |
| | | <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-button type="primary" @click="cache">缓存问卷</el-button> --> |
| | | </el-form-item> |
| | | </el-form> |
| | | </div> |
| | | <el-dialog |
| | | :visible.sync="dialogVisible" |
| | | width="50%" |
| | | > |
| | | <div> |
| | | <el-alert :title="revisitAfter" type="success"> </el-alert> |
| | | </div> |
| | | </el-dialog> |
| | | </div> |
| | | </template> |
| | | |
| | |
| | | taskid: 355, |
| | | patid: 265823, |
| | | questionList: null, |
| | | revisitAfter: null, |
| | | dialogVisible:false, |
| | | // 前端公钥 |
| | | publicKey: |
| | | "MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAKR0yHv0rbJWQE+Sc7/FwpW66qMd9qX2k6z+SDgkSdxWh/1GbBoAP7bDQQRF6vXmoKsD2ya42H6XRLSDXAoayuMCAwEAAQ== ", |
| | |
| | | }, |
| | | }; |
| | | }, |
| | | |
| | | mounted() { |
| | | window.addEventListener("beforeunload", this.cache); |
| | | }, |
| | | beforeDestroy() { |
| | | window.removeEventListener("beforeunload", this.cache); |
| | | }, |
| | | created() { |
| | | this.getQuestionnaire(); |
| | | }, |
| | |
| | | // "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) => { |
| | |
| | | this.questionList = res.data; |
| | | 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; |
| | |
| | | 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.questionList.forEach((item) => { |
| | | item.nextScriptno = Number(item.nextScriptno); |
| | |
| | | } |
| | | ); |
| | | }, |
| | | |
| | | // 加密函数 |
| | | encrypt(txt) { |
| | | const encryptor = new JSEncrypt(); |
| | | encryptor.setPublicKey(this.publicKey); // 设置公钥 |
| | | return encryptor.encrypt(txt); // 对数据进行加密 |
| | | }, |
| | | |
| | | // 解密函数 |
| | | decrypt(txt) { |
| | | const encryptor = new JSEncrypt(); |
| | |
| | | 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.$modal.msgSuccess("提交成功"); |
| | | } |
| | | }); |
| | | // 可以将数据提交到后端或者进行其他处理 |
| | | }, |
| | | // 缓存 |
| | | cache(subm) { |
| | | console.log("进入缓存"); |
| | | let form = { |
| | | param1: this.taskid, |
| | | param2: this.patid, |
| | |
| | | }; |
| | | 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) => { |
| | |
| | | } |
| | | }); |
| | | }, |
| | | // 处理选项 |
| | | // 处理单选选项 |
| | | handleOptionChange(selectedvalue, index,arr) { |
| | | // 查找选中的选项对象 |
| | | const selectedOption = arr.svyLibTemplateTargetoptions.find( |
| | |
| | | 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> |