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