From 98d294c34add674dceb3caeca65af7e7a26d726e Mon Sep 17 00:00:00 2001 From: Huangzhe Date: Thu, 20 Mar 2025 18:46:46 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E9=97=AE=E5=8D=B7?= =?UTF-8?q?=E7=B4=A2=E5=BC=95=E9=94=99=E8=AF=AF=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 更改索引计算方法 --- src/utils/utils.js | 15 +++++++++++++++ src/views/Survey/views/Preview/Index.vue | 17 ++++++++++------- .../components/questions/PreviewFileUpload.vue | 3 ++- .../components/questions/PreviewMatrixRadio.vue | 2 +- .../components/questions/PreviewMatrixText.vue | 2 +- .../Preview/components/questions/PreviewNPS.vue | 9 ++++++++- .../components/questions/PreviewRate.vue | 9 ++++++++- 7 files changed, 45 insertions(+), 12 deletions(-) diff --git a/src/utils/utils.js b/src/utils/utils.js index acecf9f..6cbf71c 100644 --- a/src/utils/utils.js +++ b/src/utils/utils.js @@ -127,3 +127,18 @@ export function compareArrayByField(arr1, arr2, field) { return arr1Fields.every((i) => arr2Fields.includes(i)); } + +/** + * 获取题目索引 + * @param questions {question.list} + * @param question {questionsList} + * @return {number} + */ +export function getQuestionIndex(questions, question) { + if (!question) { + return -1; + } + const result = questions.indexOf(question); + console.log(`get question index`, result); + return result; +} diff --git a/src/views/Survey/views/Preview/Index.vue b/src/views/Survey/views/Preview/Index.vue index e80c13c..badf221 100644 --- a/src/views/Survey/views/Preview/Index.vue +++ b/src/views/Survey/views/Preview/Index.vue @@ -97,7 +97,7 @@ import { useTemplateRef } from 'vue'; -// import LangTranslate from './components/LangTranslate.vue'; import QLast from '@/views/Survey/views/Preview/components/questions/QLast.vue'; -// import Question from '@/views/Survey/views/Preview/components/questions/Question.vue'; -// import QFirst from '@/views/Survey/views/Preview/components/questions/QFirst.vue'; import PfePagination from './components/PfePagination/Index.vue'; import { storeToRefs } from 'pinia'; import { useQuestionStore } from '@/stores/Questions/useQuestionStore'; -// import ProgressBar from './components/ProcessBar/Index.vue'; import { AnswerApi } from './js/api'; import { useRoute, useRouter } from 'vue-router'; import { getLanguage } from '@/views/Survey/views/Preview/js/language'; import PreviewChoice from './components/questions/PreviewChoice.vue'; -// import QRadio from '@/views/Survey/views/Preview/components/questions/QRadio.vue'; import PreviewCompletion from '@/views/Survey/views/Preview/components/questions/PreviewCompletion.vue'; import PreviewFileUpload from '@/views/Survey/views/Preview/components/questions/PreviewFileUpload.vue'; import PreviewMatrixRadio from '@/views/Survey/views/Preview/components/questions/PreviewMatrixRadio.vue'; @@ -534,6 +536,7 @@ import PreviewMatrixText from '@/views/Survey/views/Preview/components/questions import PreviewNPS from '@/views/Survey/views/Preview/components/questions/PreviewNPS.vue'; import msg from './js/message'; import answerMock from '@/views/Survey/views/Preview/js/mock.js'; +import { getQuestionIndex } from '@/utils/utils.js'; // hooks file import icon from '@/assets/img/create-right-back.png'; diff --git a/src/views/Survey/views/Preview/components/questions/PreviewFileUpload.vue b/src/views/Survey/views/Preview/components/questions/PreviewFileUpload.vue index 8af8769..ba5c3e9 100644 --- a/src/views/Survey/views/Preview/components/questions/PreviewFileUpload.vue +++ b/src/views/Survey/views/Preview/components/questions/PreviewFileUpload.vue @@ -1,6 +1,7 @@ diff --git a/src/views/Survey/views/Preview/components/questions/PreviewMatrixRadio.vue b/src/views/Survey/views/Preview/components/questions/PreviewMatrixRadio.vue index ee285b3..cbb94fa 100644 --- a/src/views/Survey/views/Preview/components/questions/PreviewMatrixRadio.vue +++ b/src/views/Survey/views/Preview/components/questions/PreviewMatrixRadio.vue @@ -26,7 +26,7 @@ type answerType = { // const list = defineModel('list', { required: false }); // const config = defineModel('config', { required: false }); const question = defineModel('question'); -const questionIndex = defineModel('questionIndex', { required: false, default: 0 }); +const questionIndex = defineModel('answerIndex', { required: false, default: 0 }); // console.log(question.value); const emit = defineEmits(['changeAnswer', 'previous', 'next']); // 示例 diff --git a/src/views/Survey/views/Preview/components/questions/PreviewMatrixText.vue b/src/views/Survey/views/Preview/components/questions/PreviewMatrixText.vue index 9d1d4c4..08a4fcf 100644 --- a/src/views/Survey/views/Preview/components/questions/PreviewMatrixText.vue +++ b/src/views/Survey/views/Preview/components/questions/PreviewMatrixText.vue @@ -15,7 +15,7 @@ import { computed, ref, watch } from 'vue'; import MartrixQuestion from '@/views/Design/components/Questions/MartrixQuestion.vue'; // const questionType = defineModel('questionType', { required: false }); -const questionIndex = defineModel('questionIndex', { required: false, default: 0 }); +const questionIndex = defineModel('answerIndex', { required: false, default: 0 }); // 矩阵多选的答案类型 type answerType = { diff --git a/src/views/Survey/views/Preview/components/questions/PreviewNPS.vue b/src/views/Survey/views/Preview/components/questions/PreviewNPS.vue index 6fefd4c..2de8111 100644 --- a/src/views/Survey/views/Preview/components/questions/PreviewNPS.vue +++ b/src/views/Survey/views/Preview/components/questions/PreviewNPS.vue @@ -1,5 +1,11 @@