From 45ea04a7eceafbc3cd48806835f47efe4c4db3e9 Mon Sep 17 00:00:00 2001 From: sa0ChunLuyu Date: Sat, 12 Oct 2024 17:29:08 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=20=E9=97=AE=E5=8D=B7?= =?UTF-8?q?=E8=B0=83=E6=9F=A5=20=E5=8F=AF=E8=83=BD=E4=BC=9A=E5=86=B2?= =?UTF-8?q?=E7=AA=81=E7=9A=84=E5=87=A0=E4=B8=AA=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../API/Admin/QuestionItemController.php | 94 +++++++++++++++++++ .../API/Admin/QuestionQuestionController.php | 11 +++ .../API/Admin/QuestionnaireController.php | 10 ++ Laravel/app/Models/QuestionItem.php | 11 +++ Laravel/app/Models/QuestionQuestion.php | 11 +++ Laravel/app/Models/Questionnaire.php | 11 +++ ...103126_create_question_questions_table.php | 34 +++++++ ..._12_103134_create_question_items_table.php | 36 +++++++ ..._12_155737_create_questionnaires_table.php | 35 +++++++ Laravel/routes/api.php | 7 ++ admin/src/router/index.js | 28 ++++++ admin/src/views/Question/Question.vue | 15 +++ admin/src/views/Question/QuestionItem.vue | 15 +++ admin/src/views/Question/QuestionQuestion.vue | 15 +++ 14 files changed, 333 insertions(+) create mode 100644 Laravel/app/Http/Controllers/API/Admin/QuestionItemController.php create mode 100644 Laravel/app/Http/Controllers/API/Admin/QuestionQuestionController.php create mode 100644 Laravel/app/Http/Controllers/API/Admin/QuestionnaireController.php create mode 100644 Laravel/app/Models/QuestionItem.php create mode 100644 Laravel/app/Models/QuestionQuestion.php create mode 100644 Laravel/app/Models/Questionnaire.php create mode 100644 Laravel/database/migrations/2024_10_12_103126_create_question_questions_table.php create mode 100644 Laravel/database/migrations/2024_10_12_103134_create_question_items_table.php create mode 100644 Laravel/database/migrations/2024_10_12_155737_create_questionnaires_table.php create mode 100644 admin/src/views/Question/Question.vue create mode 100644 admin/src/views/Question/QuestionItem.vue create mode 100644 admin/src/views/Question/QuestionQuestion.vue diff --git a/Laravel/app/Http/Controllers/API/Admin/QuestionItemController.php b/Laravel/app/Http/Controllers/API/Admin/QuestionItemController.php new file mode 100644 index 0000000..3433546 --- /dev/null +++ b/Laravel/app/Http/Controllers/API/Admin/QuestionItemController.php @@ -0,0 +1,94 @@ +post('hospital_id'); + $items = DB::table('items') + ->select(['item_id', 'name', 'pinyin', 'sex']) + ->where(['hospital_id' => $hospital_id]) + ->get(); + return \Yz::Return(true, '操作完成', [ + 'list' => $items + ]); + } + + public function create(Request $request) + { + $name = $request->post('name'); + $desc = $request->post('desc'); + $jichu = $request->post('jichu'); + $tuijian = $request->post('tuijian'); + $gaoduan = $request->post('gaoduan'); + if (!$name) { + return \Yz::echoError('请填写项目名称'); + } + if (mb_strlen($name) > 20) { + return \Yz::echoError('项目名称过长'); + } + if (mb_strlen($desc) > 200) { + return \Yz::echoError('项目说明过长'); + } + DB::table('question_items')->insert([ + 'name' => $name, + 'desc' => $desc ?? '', + 'jichu' => $jichu ?? '[]', + 'tuijian' => $tuijian ?? '[]', + 'gaoduan' => $gaoduan ?? '[]', + 'created_at' => date('Y-m-d H:i:s'), + 'updated_at' => date('Y-m-d H:i:s'), + ]); + return \Yz::Return(true, '操作完成'); + } + + public function update(Request $request) + { + $id = $request->post('id'); + $name = $request->post('name'); + $desc = $request->post('desc'); + $jichu = $request->post('jichu'); + $tuijian = $request->post('tuijian'); + $gaoduan = $request->post('gaoduan'); + if (!$name) { + return \Yz::echoError('请填写项目名称'); + } + if (mb_strlen($name) > 20) { + return \Yz::echoError('项目名称过长'); + } + if (mb_strlen($desc) > 200) { + return \Yz::echoError('项目说明过长'); + } + DB::table('question_items')->where('id', $id)->update([ + 'name' => $name, + 'desc' => $desc ?? '', + 'jichu' => $jichu ?? '[]', + 'tuijian' => $tuijian ?? '[]', + 'gaoduan' => $gaoduan ?? '[]', + 'updated_at' => date('Y-m-d H:i:s'), + ]); + return \Yz::Return(true, '操作完成'); + } + + public function delete(Request $request) + { + $id = $request->post('id'); + DB::table('question_items')->where('id', $id)->delete(); + return \Yz::Return(true, '操作完成'); + } + + public function list(Request $request) + { + $search = $request->post('search'); + $list = DB::table('question_items')->where('name', $search)->get(); + return \Yz::Return(true, '操作完成', [ + 'list' => $list + ]); + } +} diff --git a/Laravel/app/Http/Controllers/API/Admin/QuestionQuestionController.php b/Laravel/app/Http/Controllers/API/Admin/QuestionQuestionController.php new file mode 100644 index 0000000..cdaa4a2 --- /dev/null +++ b/Laravel/app/Http/Controllers/API/Admin/QuestionQuestionController.php @@ -0,0 +1,11 @@ +id(); + $table->string('question', 200)->comment('问题名称'); + $table->string('type', 20)->comment('类型 input select'); + $table->longText('option')->comment('问题参数'); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('question_questions'); + } +} diff --git a/Laravel/database/migrations/2024_10_12_103134_create_question_items_table.php b/Laravel/database/migrations/2024_10_12_103134_create_question_items_table.php new file mode 100644 index 0000000..22ec3ed --- /dev/null +++ b/Laravel/database/migrations/2024_10_12_103134_create_question_items_table.php @@ -0,0 +1,36 @@ +id(); + $table->string('name', 50)->comment('风险名称'); + $table->string('desc', 200)->comment('风险说明'); + $table->longText('jichu')->comment('基础项目'); + $table->longText('tuijian')->comment('优先推荐'); + $table->longText('gaoduan')->comment('高端推荐'); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('question_items'); + } +} diff --git a/Laravel/database/migrations/2024_10_12_155737_create_questionnaires_table.php b/Laravel/database/migrations/2024_10_12_155737_create_questionnaires_table.php new file mode 100644 index 0000000..3bd833c --- /dev/null +++ b/Laravel/database/migrations/2024_10_12_155737_create_questionnaires_table.php @@ -0,0 +1,35 @@ +id(); + $table->string('type', 20)->comment('问卷类型 检前评估 问卷调查'); + $table->string('name', 50)->comment('问卷名称'); + $table->longText('items')->comment('一般检查项IDs'); + $table->longText('questions')->comment('问题IDs'); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('questionnaires'); + } +} diff --git a/Laravel/routes/api.php b/Laravel/routes/api.php index 001cb56..5245c51 100644 --- a/Laravel/routes/api.php +++ b/Laravel/routes/api.php @@ -23,6 +23,13 @@ Route::post('admin/login', 'App\Http\Controllers\API\Admin\LoginController@Login Route::post('/tokenRefresh', 'App\Http\Controllers\API\TokenController@TokenRefresh')->middleware('log'); //刷新token Route::group(['middleware' => ['checktoken', 'log'], 'prefix' => 'v1'], function () { //路由分组 + // 问卷调查 开始 + Route::post('admin/questionItem/item', 'App\Http\Controllers\API\Admin\QuestionItemController@item'); + Route::post('admin/questionItem/create', 'App\Http\Controllers\API\Admin\QuestionItemController@create'); + Route::post('admin/questionItem/update', 'App\Http\Controllers\API\Admin\QuestionItemController@update'); + Route::post('admin/questionItem/delete', 'App\Http\Controllers\API\Admin\QuestionItemController@delete'); + Route::post('admin/questionItem/list', 'App\Http\Controllers\API\Admin\QuestionItemController@list'); + // 问卷调查 结束 Route::post('admin/getBaseMenuList', 'App\Http\Controllers\API\Admin\BaseInfoController@GetBaseMenuList'); //登录后获取admin后台用户对应菜单列表 Route::post('admin/GetBaseUserInfo', 'App\Http\Controllers\API\Admin\BaseInfoController@GetBaseUserInfo'); //获取admin用户基本信息 Route::post('admin/getMenuList', 'App\Http\Controllers\API\Admin\MenuController@GetList'); //admin后台所有菜单管理 diff --git a/admin/src/router/index.js b/admin/src/router/index.js index 5d3795a..46e671a 100644 --- a/admin/src/router/index.js +++ b/admin/src/router/index.js @@ -162,6 +162,34 @@ const router = createRouter({ meta: { title: '文章管理' } + },{ + path: '/Question/Question', + name: 'Question', + component: () => import('../views/Question/Question.vue'), + meta: { + title: '问卷管理' + } + },{ + path: '/Question/Question', + name: 'Question', + component: () => import('../views/Question/Question.vue'), + meta: { + title: '问卷管理' + } + },{ + path: '/Question/QuestionQuestion', + name: 'QuestionQuestion', + component: () => import('../views/Question/QuestionQuestion.vue'), + meta: { + title: '问卷题库' + } + },{ + path: '/Question/QuestionItem', + name: 'QuestionItem', + component: () => import('../views/Question/QuestionItem.vue'), + meta: { + title: '问卷项目' + } }] }, diff --git a/admin/src/views/Question/Question.vue b/admin/src/views/Question/Question.vue new file mode 100644 index 0000000..59c8579 --- /dev/null +++ b/admin/src/views/Question/Question.vue @@ -0,0 +1,15 @@ + + + diff --git a/admin/src/views/Question/QuestionItem.vue b/admin/src/views/Question/QuestionItem.vue new file mode 100644 index 0000000..59c8579 --- /dev/null +++ b/admin/src/views/Question/QuestionItem.vue @@ -0,0 +1,15 @@ + + + diff --git a/admin/src/views/Question/QuestionQuestion.vue b/admin/src/views/Question/QuestionQuestion.vue new file mode 100644 index 0000000..59c8579 --- /dev/null +++ b/admin/src/views/Question/QuestionQuestion.vue @@ -0,0 +1,15 @@ + + +