From a9cd7472e57179b00093d29d7dd9048d965a089d Mon Sep 17 00:00:00 2001 From: sa0ChunLuyu Date: Mon, 21 Oct 2024 15:45:57 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=20=E9=97=AE=E5=8D=B7=20?= =?UTF-8?q?=E7=AC=AC=E4=B8=89=E5=B1=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../API/H5/QuestionnaireController.php | 2 +- h5/pages/main/question/question/question.vue | 52 ++++++++++++++++++- 2 files changed, 52 insertions(+), 2 deletions(-) diff --git a/Laravel/app/Http/Controllers/API/H5/QuestionnaireController.php b/Laravel/app/Http/Controllers/API/H5/QuestionnaireController.php index fe90bba..8487637 100644 --- a/Laravel/app/Http/Controllers/API/H5/QuestionnaireController.php +++ b/Laravel/app/Http/Controllers/API/H5/QuestionnaireController.php @@ -49,7 +49,7 @@ class QuestionnaireController extends Controller foreach ($ids as $id) { $question = DB::table('question_questions')->where('id', $id)->first(); if (!!$question) { - if ($level < 2) { + if ($level < 3) { $question->option = json_decode($question->option, true); $item_data = [ 'id' => $question->id, diff --git a/h5/pages/main/question/question/question.vue b/h5/pages/main/question/question/question.vue index 28ad445..34fa989 100644 --- a/h5/pages/main/question/question/question.vue +++ b/h5/pages/main/question/question/question.vue @@ -84,6 +84,24 @@ } } } + + if (children[ii].type === 'select' && children[ii].select[Number(children[ii].value)].children + .length > 0) { + let children_2 = children[ii].select[Number(children[ii].value)].children + for (let iii in children_2) { + let question_index = `${Number(i) + 1}-${Number(ii) + 1}-${Number(iii) + 1}` + if (`c${question_index}` in content_map) { + if (content_map[`c${question_index}`].id === + children[ii].select[Number(children[ii].value)].children[iii].id) { + if ('active' in content_map[`c${question_index}`]) { + setValue(question_index, content_map[`c${question_index}`].active) + } else { + setValue(question_index, content_map[`c${question_index}`].value) + } + } + } + } + } } } } @@ -108,14 +126,21 @@ indexes[i] = indexes[i] - 1 } let type = question_list.value[indexes[0]].type + let content = 0 switch (indexes.length) { case 1: question_list.value[indexes[0]].value = value break case 2: - let content = Number(question_list.value[indexes[0]].value) + content = Number(question_list.value[indexes[0]].value) question_list.value[indexes[0]].select[content].children[indexes[1]].value = value break + case 3: + content = Number(question_list.value[indexes[0]].value) + let content2 = Number(question_list.value[indexes[0]].select[content].children[indexes[1]].value) + question_list.value[indexes[0]].select[content].children[indexes[1]].select[content2].children[indexes[2]] + .value = value + break } } @@ -171,6 +196,31 @@ child_value_data['value'] = children[ii].value } value_array.push(child_value_data) + if (children[ii].type === 'select' && children[ii].select[Number(children[ii].value)].children.length > 0) { + let children_2 = children[ii].select[Number(children[ii].value)].children + for (let iii in children_2) { + if (!children_2[iii].value && children_2[iii].value === '') { + question_active.value = Number(i) + return uni.$lu.toast(`请填写第 ${Number(i) + 1}-${Number(ii) + 1}-${Number(iii) + 1} 题`) + } + let child_value_data2 = { + id: children_2[iii].id, + index: `${Number(i) + 1}-${Number(ii) + 1}-${Number(iii) + 1}`, + question: children_2[iii].question, + value: children_2[iii].value + } + if (children_2[iii].type === 'select') { + child_value_data2['value'] = children_2[iii].select[Number(children_2[iii].value)].content + child_value_data2['active'] = children_2[iii].value + child_value_data2['select'] = children_2[iii].select.map((item) => { + return item.content + }) + } else { + child_value_data2['value'] = children_2[iii].value + } + value_array.push(child_value_data2) + } + } } } }