diff --git a/src/types/question.d.ts b/src/types/question.d.ts index 33badac..b69f282 100644 --- a/src/types/question.d.ts +++ b/src/types/question.d.ts @@ -34,7 +34,7 @@ declare interface IQuestionOption { relation_last_scope: number; relation_first_scope: number; relation_question_index: number; - options?: IMatrixCheckboxOption[]; + options: IMatrixCheckboxOption[]; } // 答案 config 类型 @@ -93,7 +93,7 @@ export declare interface IQuestion { question_index?: number; question_type?: number; // 如果没有自定义类型,那么就直接用基础 config 类型 - config?: QuestionConfig; + config: QuestionConfig; created_at?: string; created_user_id?: number; updated_user_id?: number | null; diff --git a/src/views/Survey/views/Preview/Index.vue b/src/views/Survey/views/Preview/Index.vue index c17a325..c3e805d 100644 --- a/src/views/Survey/views/Preview/Index.vue +++ b/src/views/Survey/views/Preview/Index.vue @@ -640,10 +640,11 @@ async function answer(callback, callbackBeforePage) { if ((questions.value.length || !questionsData.value.questions.length) && !props.isTemplate) { // 表单验证(当前页) const errors = questions.value.filter((question) => { - const { config, answer, question_type: questionType } = question; + const { config, answer, question_type: questionType, error } = question; let isError = false; // 如果问题没有答案还有是必须填空的,就往下处理 - if (config.is_required && !answer) { + // 2025/4/1新增 : 如果有 error 内容, 同样视为有错误 + if (!answer || error.length) { isError = true; // 各个问题单独处理 if (questionType === 10) { diff --git a/src/views/Survey/views/Preview/components/questions/PreviewMatrixRadio.vue b/src/views/Survey/views/Preview/components/questions/PreviewMatrixRadio.vue index c86f803..e4e4f62 100644 --- a/src/views/Survey/views/Preview/components/questions/PreviewMatrixRadio.vue +++ b/src/views/Survey/views/Preview/components/questions/PreviewMatrixRadio.vue @@ -12,9 +12,12 @@