diff --git a/app/Http/Controllers/Admin/BaseController.php b/app/Http/Controllers/Admin/BaseController.php index 1b91786..da48a61 100644 --- a/app/Http/Controllers/Admin/BaseController.php +++ b/app/Http/Controllers/Admin/BaseController.php @@ -70,7 +70,9 @@ class BaseController extends Controller $roleMenuArr = AdminMenuService::getRoleMenuList($this->menuUri); $authArr = []; foreach ($roleMenuArr as $value) { - $authArr[$value] = 0; + if ($value) { + $authArr[$value] = 0; + } } $newArr = []; foreach ($authArr as $authKey => $value) { diff --git a/app/Http/Controllers/Admin/ParkingSpaceAttributesController.php b/app/Http/Controllers/Admin/ParkingSpaceAttributesController.php index 99e7c3a..ebd7b9a 100644 --- a/app/Http/Controllers/Admin/ParkingSpaceAttributesController.php +++ b/app/Http/Controllers/Admin/ParkingSpaceAttributesController.php @@ -15,6 +15,7 @@ use Psr\SimpleCache\InvalidArgumentException; class ParkingSpaceAttributesController extends BaseController { + protected string $menuUri = 'spaceType'; /** * @var ParkingSpaceAttributesService */ @@ -189,21 +190,4 @@ class ParkingSpaceAttributesController extends BaseController ); } } - - /** - * @return JsonResponse - * @throws InvalidArgumentException - */ - public function rule(): JsonResponse - { - try { - return $this->responseService->success( - $this->methodShow('spaceAttr') - ); - } catch (Exception $e) { - return $this->responseService->systemError( - __('exception.get_data_failed') . ':' . $e->getMessage() - ); - } - } } diff --git a/app/Http/Controllers/Admin/ParkingSpaceCatMapController.php b/app/Http/Controllers/Admin/ParkingSpaceCatMapController.php index 13f6924..66ff144 100644 --- a/app/Http/Controllers/Admin/ParkingSpaceCatMapController.php +++ b/app/Http/Controllers/Admin/ParkingSpaceCatMapController.php @@ -12,6 +12,7 @@ use Illuminate\Http\Request; class ParkingSpaceCatMapController extends BaseController { + protected string $menuUri = 'parkingSpaceMap'; public function search(): JsonResponse { diff --git a/app/Http/Controllers/Admin/ParkingSpaceController.php b/app/Http/Controllers/Admin/ParkingSpaceController.php index 9518054..f5ef68d 100644 --- a/app/Http/Controllers/Admin/ParkingSpaceController.php +++ b/app/Http/Controllers/Admin/ParkingSpaceController.php @@ -21,6 +21,7 @@ use Symfony\Component\HttpFoundation\BinaryFileResponse; class ParkingSpaceController extends BaseController { + protected string $menuUri = 'parkingSpace'; /** * @var ParkingSpaceService diff --git a/app/Http/Controllers/Admin/ParkingSpaceTypeController.php b/app/Http/Controllers/Admin/ParkingSpaceTypeController.php index c8646ad..fbda1a1 100644 --- a/app/Http/Controllers/Admin/ParkingSpaceTypeController.php +++ b/app/Http/Controllers/Admin/ParkingSpaceTypeController.php @@ -16,6 +16,7 @@ use Psr\SimpleCache\InvalidArgumentException; class ParkingSpaceTypeController extends BaseController { + protected string $menuUri = 'spaceType'; /** * @var ParkingSpaceTypeService */ @@ -221,21 +222,4 @@ class ParkingSpaceTypeController extends BaseController ); } } - - /** - * @return JsonResponse - * @throws InvalidArgumentException - */ - public function rule(): JsonResponse - { - try { - return $this->responseService->success( - $this->methodShow('spaceType') - ); - } catch (Exception $e) { - return $this->responseService->systemError( - __('exception.get_data_failed') . ':' . $e->getMessage() - ); - } - } } diff --git a/app/Http/Controllers/Admin/TranslationController.php b/app/Http/Controllers/Admin/TranslationController.php index 3a94d24..75aa09c 100644 --- a/app/Http/Controllers/Admin/TranslationController.php +++ b/app/Http/Controllers/Admin/TranslationController.php @@ -15,6 +15,9 @@ use Psr\SimpleCache\InvalidArgumentException; class TranslationController extends BaseController { + + protected string $menuUri = 'translations'; + /** * @var AdminTranslationService */ @@ -168,19 +171,4 @@ class TranslationController extends BaseController ); } } - - /** - * @return JsonResponse - * @throws InvalidArgumentException - */ - public function rule(): JsonResponse - { - try { - return $this->responseService->success($this->methodShow('translation')); - } catch (Exception $e) { - return $this->responseService->systemError( - __('exception.get_data_failed') . ':' . $e->getMessage() - ); - } - } } diff --git a/app/Http/Controllers/Admin/VipListController.php b/app/Http/Controllers/Admin/VipListController.php index 180ee23..d0868c1 100644 --- a/app/Http/Controllers/Admin/VipListController.php +++ b/app/Http/Controllers/Admin/VipListController.php @@ -23,6 +23,8 @@ use Symfony\Component\HttpFoundation\BinaryFileResponse; class VipListController extends BaseController { + + protected string $menuUri = 'vipList'; /** * @var ParkingVipListService */ @@ -163,23 +165,6 @@ class VipListController extends BaseController } } - /** - * @return JsonResponse - * @throws InvalidArgumentException - */ - public function rule(): JsonResponse - { - try { - return $this->responseService->success( - $this->methodShow('list_vip') - ); - } catch (Exception $e) { - return $this->responseService->systemError( - __('exception.get_data_failed') . ':' . $e->getMessage() - ); - } - } - /** * @param Request $request * @return JsonResponse diff --git a/database/seeders/AdminMenuSeeder.php b/database/seeders/AdminMenuSeeder.php index d978cae..6c8a803 100644 --- a/database/seeders/AdminMenuSeeder.php +++ b/database/seeders/AdminMenuSeeder.php @@ -55,6 +55,7 @@ class AdminMenuSeeder extends Seeder 'model_manage' => [ 'event_calendar' => [ 'uri' => 'eventCalendar', + 'page_uri' => '/calendar', 'child' => [ 'read_only' => 'eventCalendar.index', 'add' => 'eventCalendar.store', @@ -70,6 +71,7 @@ class AdminMenuSeeder extends Seeder ], 'model_manage' => [ 'uri' => 'pattern', + 'page_uri' => '/mode', 'child' => [ 'read_only' => 'pattern.index', 'add' => 'pattern.import', @@ -89,6 +91,7 @@ class AdminMenuSeeder extends Seeder 'cat_status' => [ 'cat_map' => [ 'uri' => 'parkingSpaceMap', + 'page_uri' => '/parking/map', 'child' => [ 'read_only' => 'parkingSpaceMap.floorOverview', 'view' => 'parkingSpaceMap.map' @@ -96,12 +99,14 @@ class AdminMenuSeeder extends Seeder ], 'cat_reserve_list' => [ 'uri' => 'parkingReservation', + 'page_uri' => '/parking/reservation_list', 'child' => [ 'read_only' => 'parkingReservation.index' ] ], 'cat_list' => [ 'uri' => 'parkingSpace', + 'page_uri' => '/parking/list', 'child' => [ 'read_only' => 'parkingSpace.index', 'add_new_energy' => '', @@ -110,6 +115,7 @@ class AdminMenuSeeder extends Seeder ], 'cat_type' => [ 'uri' => 'spaceType', + 'page_uri' => '/parking/type', 'child' => [ 'read_only' => 'spaceType.index', 'add' => 'spaceType.store', @@ -127,6 +133,7 @@ class AdminMenuSeeder extends Seeder ], 'cat_attr' => [ 'uri' => 'spaceAttr', + 'page_uri' => '/parking/attr', 'child' => [ 'read_only' => 'spaceAttr.index', 'add' => 'spaceAttr.store', @@ -136,12 +143,14 @@ class AdminMenuSeeder extends Seeder ], 'draw_map' => [ 'uri' => 'map', + 'page_uri' => '/parking/draw_map', 'child' => [ 'read_only' => 'map.index' ] ], 'parking_information' => [ 'uri' => 'information', + 'page_uri' => '/parking/vehicle_info', 'child' => [ 'read_only' => 'information.index', 'add' => 'information.store', @@ -153,6 +162,7 @@ class AdminMenuSeeder extends Seeder 'special_car_manage' => [ 'vip_list' => [ 'uri' => 'vipList', + 'page_uri' => '/special/vip_list', 'child' => [ 'read_only' => 'vipList.index', 'add' => 'vipList.store', @@ -165,6 +175,7 @@ class AdminMenuSeeder extends Seeder ], 'vip_access_record' => [ 'uri' => 'vipAccessRecord', + 'page_uri' => '/special/vip_record', 'child' => [ 'read_only' => 'vipAccessRecord.index', 'view_details' => 'vipAccessRecord.show' @@ -174,6 +185,7 @@ class AdminMenuSeeder extends Seeder 'information_center' => [ 'alarm_notice' => [ 'uri' => 'notice', + 'page_uri' => '/info/alarms', 'child' => [ 'read_only' => 'notice.index', 'view_details' => 'notice.show', @@ -185,12 +197,14 @@ class AdminMenuSeeder extends Seeder 'gate_management' => [ 'stop_on_duty' => [ 'uri' => '', + 'page_uri' => '/gate/guardpost', 'child' => [ 'read_only' => '' ] ], 'lane_video' => [ 'uri' => '', + 'page_uri' => '/gate/Lanevideo', 'child' => [ 'read_only' => '' ] @@ -199,6 +213,7 @@ class AdminMenuSeeder extends Seeder 'statistics_report' => [ 'recognition_rate' => [ 'uri' => 'licensePlateRecognition', + 'page_uri' => '/report/plate_rate', 'child' => [ 'read_only' => 'licensePlateRecognition.index', 'export' => 'licensePlateRecognition.export' @@ -206,6 +221,7 @@ class AdminMenuSeeder extends Seeder ], 'parking_behavior' => [ 'uri' => 'parkingBehavior', + 'page_uri' => '/report/behavior', 'child' => [ 'read_only' => 'parkingBehavior.index', 'export' => 'parkingBehavior.export', @@ -214,30 +230,42 @@ class AdminMenuSeeder extends Seeder ], 'utilization_rate' => [ 'uri' => 'utilizationRate', + 'page_uri' => '/report/usage_rate', 'child' => [ 'read_only' => 'utilizationRate.index', 'export' => 'utilizationRate.export' ] ], + 'access_record' => [ + 'uri' => 'accessRecord', + 'page_uri' => '/report/entry_exit', + 'child' => [ + 'read_only' => 'accessRecord.index', + 'export' => 'accessRecord.export' + ] + ], 'occupancy_rate' => [ - 'uri' => '', + 'uri' => 'occupancyRate', + 'page_uri' => '/report/occupancy_rate', 'child' => [ - 'read_only' => '', - 'export' => '' + 'read_only' => 'occupancyRate.index', + 'export' => 'occupancyRate.export' ] ], 'manual_correction' => [ - 'uri' => '', + 'uri' => 'manualCorrection', + 'page_uri' => '/report/plate_correction', 'child' => [ - 'read_only' => '', - 'view_details' => '', - 'export' => '' + 'read_only' => 'manualCorrection.index', + 'view_details' => 'manualCorrection.show', + 'export' => 'manualCorrection.export' ] ] ], 'system_log' => [ 'system_log' => [ 'uri' => 'operationLog', + 'page_uri' => '/log/system', 'child' => [ 'read_only' => 'operationLog.index', 'export' => 'operationLog.export' @@ -247,6 +275,7 @@ class AdminMenuSeeder extends Seeder 'device_manage' => [ 'camera_management' => [ 'uri' => 'parkingCamera', + 'page_uri' => '/device/camera', 'child' => [ 'read_only' => 'parkingCamera.index', 'add' => 'parkingCamera.store', @@ -262,6 +291,7 @@ class AdminMenuSeeder extends Seeder 'system_manage' => [ 'total_configuration' => [ 'uri' => 'config', + 'page_uri' => '/system/config', 'child' => [ 'read_only' => 'config.index', 'edit' => 'config.update' @@ -269,6 +299,7 @@ class AdminMenuSeeder extends Seeder ], 'floor_plan' => [ 'uri' => 'floors', + 'page_uri' => '/system/floor', 'child' => [ 'read_only' => 'floors.index', 'add_floor' => 'floors.store', @@ -278,6 +309,7 @@ class AdminMenuSeeder extends Seeder ], 'translation' => [ 'uri' => 'translations', + 'page_uri' => '/system/translation', 'child' => [ 'read_only' => 'translations.index', 'add' => 'translations.store', @@ -289,6 +321,7 @@ class AdminMenuSeeder extends Seeder 'user_manage' => [ 'user_list' => [ 'uri' => 'users', + 'page_uri' => '/user/list', 'child' => [ 'read_only' => 'users.index', 'add' => 'users.store', @@ -299,6 +332,7 @@ class AdminMenuSeeder extends Seeder ], 'role_manage' => [ 'uri' => 'roles', + 'page_uri' => '/user/role', 'child' => [ 'read_only' => 'roles.index', 'add' => 'roles.store', diff --git a/resources/lang/en/menu.php b/resources/lang/en/menu.php index 3ce9268..23cddd8 100644 --- a/resources/lang/en/menu.php +++ b/resources/lang/en/menu.php @@ -68,5 +68,6 @@ return [ 'edit_partition' => 'Edit partition', 'gate_management' => 'Gate management', 'stop_on_duty' => 'parking lot booth', - 'lane_video' => 'Lane video' + 'lane_video' => 'Lane video', + 'access_record' => 'Parking entry and exit records' ]; diff --git a/resources/lang/zh-CN/menu.php b/resources/lang/zh-CN/menu.php index 0a7d83b..89cf2a8 100644 --- a/resources/lang/zh-CN/menu.php +++ b/resources/lang/zh-CN/menu.php @@ -68,5 +68,6 @@ return [ 'edit_partition' => '编辑分区', 'gate_management' => '闸道管理', 'stop_on_duty' => '车场岗亭', - 'lane_video' => '车道视频' + 'lane_video' => '车道视频', + 'access_record' => '停车进出记录' ]; diff --git a/resources/lang/zh-TW/menu.php b/resources/lang/zh-TW/menu.php index d6ac4b9..aa72136 100644 --- a/resources/lang/zh-TW/menu.php +++ b/resources/lang/zh-TW/menu.php @@ -68,5 +68,6 @@ return [ 'edit_partition' => '編輯分區', 'gate_management' => '閘道管理', 'stop_on_duty' => '車場崗亭', - 'lane_video' => '車道視頻' + 'lane_video' => '車道視頻', + 'access_record' => '停車進出記錄' ]; diff --git a/routes/admin/api.php b/routes/admin/api.php index 4eb310b..1a8430c 100644 --- a/routes/admin/api.php +++ b/routes/admin/api.php @@ -83,6 +83,7 @@ Route::group(['prefix' => 'admin'], function () { Route::get('/parkingSpaceMap/search', [ParkingSpaceCatMapController::class, 'search']); Route::get('/parkingSpaceMap/floorOverview', [ParkingSpaceCatMapController::class, 'floorOverview']); Route::get('/parkingSpaceMap/map', [ParkingSpaceCatMapController::class, 'map']); + Route::get('/parkingSpaceMap/rule', [ParkingSpaceCatMapController::class, 'rule']); // 车位预定列表 Route::get('/parkingReservation', [ParkingReservationController::class, 'index']); Route::get('/parkingReservation/search', [ParkingReservationController::class, 'search']); @@ -90,10 +91,11 @@ Route::group(['prefix' => 'admin'], function () { // 车位列表 Route::get('/parkingSpace', [ParkingSpaceController::class, 'index']); Route::get('/parkingSpace/search', [ParkingSpaceController::class, 'search']); - Route::post('parkingSpace/updateType', [ParkingSpaceController::class, 'updateType']); - Route::post('parkingSpace/updateAttr', [ParkingSpaceController::class, 'updateAttr']); - Route::post('parkingSpace/information', [ParkingSpaceController::class, 'information']); - Route::post('parkingSpace/updateStatus', [ParkingSpaceController::class, 'updateStatus']); + Route::post('/parkingSpace/updateType', [ParkingSpaceController::class, 'updateType']); + Route::post('/parkingSpace/updateAttr', [ParkingSpaceController::class, 'updateAttr']); + Route::post('/parkingSpace/information', [ParkingSpaceController::class, 'information']); + Route::post('/parkingSpace/updateStatus', [ParkingSpaceController::class, 'updateStatus']); + Route::get('/parkingSpace/rule', [ParkingSpaceController::class, 'rule']); //车位类型管理 Route::get('/spaceType', [ParkingSpaceTypeController::class, 'index']); Route::get('/spaceType/create', [ParkingSpaceTypeController::class, 'create']); @@ -143,6 +145,7 @@ Route::group(['prefix' => 'admin'], function () { Route::post('/vipList/import', [VipListController::class, 'import']); // VIP进出记录 Route::get('/vipAccessRecord', [VipAccessRecordController::class, 'index']); + Route::get('/vipAccessRecord/rule', [VipAccessRecordController::class, 'rule']); Route::get('/vipAccessRecord/{id}', [VipAccessRecordController::class, 'show']); // 警报&通知 Route::get('/notice', [NoticeController::class, 'index']);