diff --git a/Laravel/app/Http/Controllers/API/Admin/YeWu/AppointmentTypeController.php b/Laravel/app/Http/Controllers/API/Admin/YeWu/AppointmentTypeController.php new file mode 100644 index 0000000..892ea54 --- /dev/null +++ b/Laravel/app/Http/Controllers/API/Admin/YeWu/AppointmentTypeController.php @@ -0,0 +1,36 @@ +whereBetween('s_list.reservation_date', $searchInfo['dateRange']); + } + $list=$list + ->where(['s_list.list_status' => 2, 's_list.is_del' => 0, 's_list.is_nullify' => 0]) + ->select('appointment_type_id', 's_appointment_type.name', DB::raw('count(*) as count')) + ->leftJoin('s_appointment_type', 's_list.appointment_type_id', '=', 's_appointment_type.id') + ->groupBy('appointment_type_id', 's_appointment_type.name') // 添加 s_appointment_type.name 到 groupBy + ->get(); + + //按月统计 + $monthList = DB::table('s_list'); + if(isset($searchInfo['dateRange'])){ + $monthList=$monthList->whereBetween('s_list.reservation_date', $searchInfo['dateRange']); + } + $monthList=$monthList + ->where(['s_list.list_status' => 2,'s_list.is_del' => 0,'s_list.is_nullify' => 0]) + ->select(DB::raw('DATE_FORMAT(s_list.reservation_date, "%Y-%m") as month'), DB::raw('count(*) as count')) + ->groupBy('month')->get(); + return \Yz::Return(true, '操作成功', ['list'=>$list,'monthList'=>$monthList]); + } +} diff --git a/Laravel/app/Http/Controllers/API/Admin/YeWu/WorkMainController.php b/Laravel/app/Http/Controllers/API/Admin/YeWu/WorkMainController.php index 30423d9..129cde1 100644 --- a/Laravel/app/Http/Controllers/API/Admin/YeWu/WorkMainController.php +++ b/Laravel/app/Http/Controllers/API/Admin/YeWu/WorkMainController.php @@ -330,4 +330,26 @@ class WorkMainController extends Controller return \Yz::Return(true,'查询完成',['list'=>$list,'count'=>$count]); } + //开单统计 + public function CountMakeList(){ + $searchInfo = request('searchInfo'); + $list = DB::table('s_list') + ->where(['s_list.is_del' => 0, 's_list.is_nullify' => 0]); + if(isset($searchInfo['dateRange'])){ + $list=$list->whereBetween('s_list.created_at', $searchInfo['dateRange']); + } + //开单总量 + $count=$list; + $count=$count->count(); + //按月开单量统计 + $MonthCountList=$list; + $MonthCountList=$MonthCountList + ->select(DB::raw('DATE_FORMAT(s_list.reservation_date, "%Y-%m") as month'), DB::raw('count(*) as count')) + ->groupBy(DB::raw('DATE_FORMAT(s_list.reservation_date, "%Y-%m")'))->get(); + //预约总量 + $appointmentCount=$list; + $appointmentCount=$appointmentCount->where(['s_list.list_status'=>2])->count(); + return \Yz::Return(true, '操作成功', ['MonthCountList'=>$MonthCountList,'Count'=>$count,'AppointmentCount'=>$appointmentCount]); + } + } diff --git a/Laravel/routes/api.php b/Laravel/routes/api.php index 61196eb..93a1cc8 100644 --- a/Laravel/routes/api.php +++ b/Laravel/routes/api.php @@ -99,6 +99,8 @@ Route::group(['middleware'=>['checktoken','log'],'prefix'=>'v1'],function () { Route::post('admin/InpatientWardDel','App\Http\Controllers\API\Admin\YeWu\InpatientWardController@Del');//删除病区 Route::post('admin/SignIn','App\Http\Controllers\API\Admin\YeWu\SignInController@SignIn');//签到 Route::post('admin/CancelSign','App\Http\Controllers\API\Admin\YeWu\SignInController@CancelSign');//取消签到 + Route::post('admin/countAppointmentType','App\Http\Controllers\API\Admin\YeWu\AppointmentTypeController@countAppointmentType');//预约渠道统计 + Route::post('admin/CountMakeList','App\Http\Controllers\API\Admin\YeWu\WorkMainController@CountMakeList');//开单统计 }); //暂时不加权限 diff --git a/YiJi-admin/src/api/api.js b/YiJi-admin/src/api/api.js index ebe83f7..43504ac 100644 --- a/YiJi-admin/src/api/api.js +++ b/YiJi-admin/src/api/api.js @@ -349,4 +349,12 @@ export const CheckIsDaiJian = (data = {}) => { //医生端取消预约 export const DoctorCancelYuYue = (data = {}) => { return axios({ url: import.meta.env.VITE_APP_API + 'admin/DoctorCancelYuYue', data: data }) +} +//预约渠道统计 +export const countAppointmentType = (data = {}) => { + return axios({ url: import.meta.env.VITE_APP_API + 'v1/admin/countAppointmentType', data: data }) +} +//开单统计 +export const CountMakeList = (data = {}) => { + return axios({ url: import.meta.env.VITE_APP_API + 'v1/admin/CountMakeList', data: data }) } \ No newline at end of file diff --git a/YiJi-admin/src/router/index.js b/YiJi-admin/src/router/index.js index 84bd39c..825ba25 100644 --- a/YiJi-admin/src/router/index.js +++ b/YiJi-admin/src/router/index.js @@ -184,6 +184,20 @@ const router = createRouter({ meta: { title: '资源信息列表' } + },{ + path: '/info/AppointmentTj', + name: 'InfoAppointmentTj', + component: () => import('../views/Info/AppointmentTj.vue'), + meta: { + title: '预约统计' + } + },{ + path: '/info/MakeListTj', + name: 'InfoMakeListTj', + component: () => import('../views/Info/MakeListTj.vue'), + meta: { + title: '开单统计' + } }] }, diff --git a/YiJi-admin/src/views/Info/AppointmentTj.vue b/YiJi-admin/src/views/Info/AppointmentTj.vue new file mode 100644 index 0000000..2e077b3 --- /dev/null +++ b/YiJi-admin/src/views/Info/AppointmentTj.vue @@ -0,0 +1,132 @@ + + + + + \ No newline at end of file diff --git a/YiJi-admin/src/views/Info/MakeListTj.vue b/YiJi-admin/src/views/Info/MakeListTj.vue new file mode 100644 index 0000000..6bb6910 --- /dev/null +++ b/YiJi-admin/src/views/Info/MakeListTj.vue @@ -0,0 +1,144 @@ + + + + + \ No newline at end of file