fix(Survey): 修复预览页面选项数限制逻辑
-增加对最小选择数和最大选择数的非空判断- 添加日志输出,便于调试
This commit is contained in:
@@ -60,7 +60,6 @@ export const useQuestionStore = defineStore('questionStore', () => {
|
||||
}
|
||||
});
|
||||
data = data.data;
|
||||
console.log(`data:`, data);
|
||||
// 多语言
|
||||
data.languageType = [
|
||||
data?.survey?.style?.is_en_tips ? 'en' : '',
|
||||
|
||||
@@ -836,7 +836,9 @@ const publishQuestion = () => {
|
||||
// 预览
|
||||
const previewQuestion = () => {
|
||||
saveAs(() => {
|
||||
router.push({ name: 'preview', query: { ...route.query } });
|
||||
setTimeout(() => {
|
||||
router.push({ name: 'preview', query: { ...route.query } });
|
||||
}, 500);
|
||||
});
|
||||
};
|
||||
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
<template>
|
||||
<!-- <layout />-->
|
||||
<div ref="scrollbar" class="preview-container">
|
||||
<!-- {{ questionsData }}-->
|
||||
<!-- <van-nav-bar :title="getDomString(questionsData?.survey?.title)" left-arrow />-->
|
||||
|
||||
<!-- 进度条 -->
|
||||
@@ -49,7 +50,7 @@
|
||||
|
||||
<!-- 问题 -->
|
||||
<!-- eslint-disable-next-line -->
|
||||
<div class="questions">
|
||||
<div class="questions" v-if="questions">
|
||||
<!-- 提前终止和正常完成 -->
|
||||
<q-last
|
||||
v-if="page === pages.length + 1"
|
||||
@@ -568,7 +569,9 @@ const {
|
||||
translatedText,
|
||||
isTemplate
|
||||
} = storeToRefs(questionStore);
|
||||
questionsData.value = {};
|
||||
|
||||
questionStore.fetchQuestions();
|
||||
// 第一次进入页面清空答案
|
||||
//初始化页面到第一页
|
||||
questionsData.value?.questions && clearAnswer(questionsData.value.questions);
|
||||
@@ -586,13 +589,12 @@ const props = defineProps({
|
||||
default: false
|
||||
}
|
||||
});
|
||||
|
||||
// 初始化 isTemplate
|
||||
isTemplate.value = props.isTemplate ? props.isTemplate : route.query.is_template === '1';
|
||||
// 如果当前的 sn 和 之前记录的sn不相同的时候,那么就要重新请求数据
|
||||
if (currentSn.value !== route.query.sn) {
|
||||
questionStore.fetchQuestions();
|
||||
}
|
||||
// if (currentSn.value !== route.query.sn) {
|
||||
|
||||
// }
|
||||
|
||||
// 上一页
|
||||
async function previous() {
|
||||
@@ -651,7 +653,7 @@ async function answer(callback, callbackBeforePage) {
|
||||
const errors = questions.value.filter((question) => {
|
||||
const { config, answer, question_type: questionType, error } = question;
|
||||
|
||||
console.log(answer, questionType, error);
|
||||
// console.log(answer, questionType, error);
|
||||
// 单独 处理 图文
|
||||
if (questionType === 6) {
|
||||
return;
|
||||
@@ -694,8 +696,6 @@ async function answer(callback, callbackBeforePage) {
|
||||
} else if (answer && questionType === 2) {
|
||||
// 多选题
|
||||
// 选项数量
|
||||
|
||||
console.log(translatedText.value);
|
||||
// isError = true;
|
||||
// question.error = translatedText.value.PleaseSelectAtLeastOneOptions(
|
||||
// config.min_select ? config.min_select : 0
|
||||
|
||||
@@ -8,18 +8,6 @@ const question = defineModel<question>('question', { default: {} });
|
||||
const answerIndex = computed(() => question.value?.title ?? 0);
|
||||
// 答案
|
||||
const answer = defineModel('answer');
|
||||
// answer 提供默认值
|
||||
question.value.answer = '123';
|
||||
|
||||
watch(
|
||||
answer,
|
||||
(v) => {
|
||||
console.log(v, 'sd');
|
||||
console.log(question.value.answer, 'sd');
|
||||
},
|
||||
{ deep: true, immediate: true }
|
||||
);
|
||||
|
||||
// setTimeout(() => {
|
||||
// answer.value = '123';
|
||||
// }, 300);
|
||||
|
||||
@@ -19,7 +19,7 @@ function validateMultiSelectQuestion(
|
||||
|
||||
// 多选题
|
||||
// 如果答案数量小于最小选择的数量
|
||||
if (answer.length < Number(config.min_select)) {
|
||||
if (answer.length < Number(config.min_select) && config.min_select) {
|
||||
// 选项数量
|
||||
// let options: questionOptionType[] = [];
|
||||
// 疑问脸
|
||||
@@ -38,7 +38,7 @@ function validateMultiSelectQuestion(
|
||||
} else {
|
||||
errorMessage = '';
|
||||
}
|
||||
} else if (answer.length > Number(config.max_select)) {
|
||||
} else if (answer.length > Number(config.max_select) && config.max_select) {
|
||||
errorMessage = translatedText.PleaseSelectNoMoreOptions(config.max_select);
|
||||
} else if (answer.findIndex((value) => !value) !== -1) {
|
||||
errorMessage = translatedText.PleaseInputAValue;
|
||||
|
||||
Reference in New Issue
Block a user