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) + } + } } } }