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 @@ + + +