Browse Source

权限菜单数据全返回

master
wanghongjun 5 days ago
parent
commit
495fec5a91
  1. 12
      app/Http/Controllers/Admin/IndexController.php
  2. 7
      app/Http/Controllers/Admin/RolesController.php
  3. 9
      app/Models/AdminMenu.php
  4. 4
      app/Services/AdminMenuService.php
  5. 441
      database/seeders/AdminMenuSeeder.php
  6. 75
      resources/lang/zh-CN/menu.php

12
app/Http/Controllers/Admin/IndexController.php

@ -11,19 +11,13 @@ use Illuminate\Support\Facades\Auth;
class IndexController extends BaseController
{
/**
* @var ApiResponseService
*/
protected ApiResponseService $responseService;
/**
* 构造函数
* @param ApiResponseService $responseService
*/
public function __construct(
ApiResponseService $responseService,
) {
$this->responseService = $responseService;
public function __construct(ApiResponseService $responseService)
{
parent::__construct($responseService);
}
//

7
app/Http/Controllers/Admin/RolesController.php

@ -17,11 +17,6 @@ use Psr\SimpleCache\InvalidArgumentException;
class RolesController extends BaseController
{
/**
* @var ApiResponseService
*/
protected ApiResponseService $responseService;
/**
* @var AdminRolesService
*/
@ -36,7 +31,7 @@ class RolesController extends BaseController
ApiResponseService $responseService,
AdminRolesService $AdminRolesService,
) {
$this->responseService = $responseService;
parent::__construct($responseService);
$this->AdminRolesService = $AdminRolesService;
}

9
app/Models/AdminMenu.php

@ -24,6 +24,15 @@ class AdminMenu extends Model
'deleted_at',
];
/**
* @param $value
* @return string
*/
public function getCreatedAtAttribute($value): string
{
return get_datetime('datetime', strtotime($value));
}
/**
* A Menu belongs to many roles.
* @return BelongsToMany

4
app/Services/AdminMenuService.php

@ -66,6 +66,10 @@ final class AdminMenuService
->orderBy('id')
->select()
->get()
->each(function ($item) {
$item['title'] = __('menu.' . $item['title']);
return $item;
})
->toArray();
return generate_tree($list, 0, $this->adminRoleMenus);
}

441
database/seeders/AdminMenuSeeder.php

@ -6,6 +6,8 @@ use Illuminate\Database\Console\Seeds\WithoutModelEvents;
use Illuminate\Database\Seeder;
use Illuminate\Support\Facades\DB;
use function Illuminate\Events\queueable;
class AdminMenuSeeder extends Seeder
{
/**
@ -19,158 +21,313 @@ class AdminMenuSeeder extends Seeder
private function data(): array
{
$not_datetime = date("Y-m-d H:i:s", time());
$data = [];
$array = $this->returnArray();
$id = 0;
foreach ($array as $key => $value) {
$id += 1;
$data[] = $this->insertData($id, $key, 1);
if (is_array($value)) {
foreach ($value as $k => $v) {
$parent_id = $id;
$id += 1;
$data[] = $this->insertData($id, $k, 1, $parent_id, $v['uri']);
$order = 0;
foreach ($v['child'] as $title => $uri) {
$parent_id = $id;
$id += 1;
$data[] = $this->insertData($id, $title, 0, $parent_id, $uri, $order);
$order += 1;
}
}
}
}
return $data;
}
private function returnArray():array
{
return [
[
'id' => 1,
'parent_id' => 0,
'order' => 0,
'title' => '模式管理',
'icon' => '',
'uri' => '',
'show' => 1,
'created_at' => $not_datetime
],
[
'id' => 2,
'parent_id' => 0,
'order' => 0,
'title' => '车位状态',
'icon' => '',
'uri' => '',
'show' => 1,
'created_at' => $not_datetime
],
[
'id' => 3,
'parent_id' => 0,
'order' => 0,
'title' => '特别车位管理',
'icon' => '',
'uri' => '',
'show' => 1,
'created_at' => $not_datetime
'model_manage' => [
'event_calendar' => [
'uri' => '',
'child' => [
'read_only' => '',
'add' => '',
'edit' => '',
'import' => '',
'export' => '',
'delete' => '',
'batch_delete' => '',
'download_template' => '',
'end' => ''
]
],
'model_manage' => [
'uri' => '',
'child' => [
'read_only' => '',
'add' => '',
'edit' => '',
'batch_import' => '',
'view_details' => '',
'download_template' => '',
'reserved_parking' => '',
'departure_reminder' => '',
'add_parking_space' => '',
'edit_parking_space' => '',
'delete_parking_space' => ''
]
]
],
[
'id' => 4,
'parent_id' => 0,
'order' => 0,
'title' => '信息中心',
'icon' => '',
'uri' => '',
'show' => 1,
'created_at' => $not_datetime
'cat_status' => [
'cat_map' => [
'uri' => '',
'child' => [
'read_only' => '',
'view' => ''
]
],
'cat_list' => [
'uri' => '',
'child' => [
'read_only' => '',
'add_new_energy' => '',
'delete_new_energy' => ''
]
],
'cat_type' => [
'uri' => 'spaceType',
'child' => [
'read_only' => 'spaceType.index',
'add' => 'spaceType.store',
'delete' => 'spaceType.delete',
'view_details' => 'spaceType.show',
'edit' => 'spaceType.update',
'download_template' => '',
'license_plate_management' => 'licensePlate.index',
'batch_import' => '',
'add_license_plate' => 'licensePlate.store',
'delete_license_plate' => 'licensePlate.destroy',
'edit_license_plate' => 'licensePlate.update',
'clear_license_plate' => ''
]
],
'cat_attr' => [
'uri' => 'spaceAttr',
'child' => [
'read_only' => 'spaceAttr.index',
'add' => 'spaceAttr.store',
'edit' => 'spaceAttr.update',
'delete' => 'spaceAttr.destroy'
]
],
'draw_map' => [
'uri' => '',
'child' => [
'read_only' => ''
]
],
'parking_information' => [
'uri' => '',
'child' => [
'read_only' => '',
'add' => '',
'clear' => '',
'delete' => ''
]
]
],
[
'id' => 5,
'parent_id' => 0,
'order' => 0,
'title' => '统计报表',
'icon' => '',
'uri' => '',
'show' => 1,
'created_at' => $not_datetime
'special_car_manage' => [
'vip_list' => [
'uri' => 'vipList',
'child' => [
'read_only' => 'vipList.index',
'add' => 'vipList.store',
'edit' => 'vipList.update',
'delete' => 'vipList.destroy',
'import' => 'vipList.import',
'export' => 'vipList.export',
'download_template' => 'vipList.importTemplate'
]
],
'vip_access_record' => [
'uri' => 'vipAccessRecord',
'child' => [
'read_only' => 'vipAccessRecord.index',
'view_details' => 'vipAccessRecord.show'
]
]
],
[
'id' => 6,
'parent_id' => 0,
'order' => 0,
'title' => '设备管理',
'icon' => '',
'uri' => '',
'show' => 1,
'created_at' => $not_datetime
'information_center' => [
'alarm_notice' => [
'uri' => '',
'child' => [
'read_only' => '',
'view_details' => '',
'export' => '',
'alarm_settings' => ''
]
]
],
[
'id' => 7,
'parent_id' => 0,
'order' => 0,
'title' => '系统管理',
'icon' => '',
'uri' => '',
'show' => 1,
'created_at' => $not_datetime
'gate_management' => [
'stop_on_duty' => [
'uri' => '',
'child' => [
'read_only' => ''
]
],
'lane_video' => [
'uri' => '',
'child' => [
'read_only' => ''
]
]
],
[
'id' => 8,
'parent_id' => 0,
'order' => 0,
'title' => '用户管理',
'icon' => '',
'uri' => '',
'show' => 1,
'created_at' => $not_datetime
'statistics_report' => [
'recognition_rate' => [
'uri' => '',
'child' => [
'read_only' => '',
'export' => ''
]
],
'parking_behavior' => [
'uri' => '',
'child' => [
'read_only' => '',
'export' => '',
'view_details' => ''
]
],
'utilization_rate' => [
'uri' => '',
'child' => [
'read_only' => '',
'export' => ''
]
],
'occupancy_rate' => [
'uri' => '',
'child' => [
'read_only' => '',
'export' => ''
]
],
'manual_correction' => [
'uri' => '',
'child' => [
'read_only' => '',
'view_details' => '',
'export' => ''
]
]
],
[
'id' => 9,
'parent_id' => 8,
'order' => 0,
'title' => '用户列表',
'icon' => '',
'uri' => '',
'show' => 1,
'created_at' => $not_datetime
'system_log' => [
'system_log' => [
'uri' => 'operationLog',
'child' => [
'read_only' => 'operationLog.index',
'export' => 'operationLog.export'
]
]
],
[
'id' => 10,
'parent_id' => 8,
'order' => 0,
'title' => '角色管理',
'icon' => '',
'uri' => '',
'show' => 1,
'created_at' => $not_datetime
'device_manage' => [
'camera_management' => [
'uri' => '',
'child' => [
'read_only' => '',
'add' => '',
'edit' => '',
'delete' => '',
'import' => '',
'export' => '',
'debug' => '',
'download_template' => ''
]
]
],
[
'id' => 11,
'parent_id' => 9,
'order' => 0,
'title' => '只读',
'icon' => '',
'uri' => 'users.index',
'show' => 0,
'created_at' => $not_datetime
],
[
'id' => 12,
'parent_id' => 9,
'order' => 0,
'title' => '查看',
'icon' => '',
'uri' => 'users.show',
'show' => 0,
'created_at' => $not_datetime
],
[
'id' => 13,
'parent_id' => 9,
'order' => 0,
'title' => '添加',
'icon' => '',
'uri' => 'users.store',
'show' => 0,
'created_at' => $not_datetime
],
[
'id' => 14,
'parent_id' => 9,
'order' => 0,
'title' => '编辑',
'icon' => '',
'uri' => 'users.update',
'show' => 0,
'created_at' => $not_datetime
],
[
'id' => 15,
'parent_id' => 9,
'order' => 0,
'title' => '删除',
'icon' => '',
'uri' => 'users.destroy',
'show' => 0,
'created_at' => $not_datetime
'system_manage' => [
'total_configuration' => [
'uri' => 'config',
'child' => [
'read_only' => 'config.index',
'edit' => 'config.update'
]
],
'floor_plan' => [
'uri' => 'floors',
'child' => [
'read_only' => 'floors.index',
'add_floor' => 'floors.store',
'edit_floor' => 'floors.update',
'delete' => 'floors.destroy'
]
],
'translation' => [
'uri' => 'translations',
'child' => [
'read_only' => 'translations.index',
'add' => 'translations.store',
'edit' => 'translations.update',
'delete' => 'translations.destroy'
]
]
],
'user_manage' => [
'user_list' => [
'uri' => 'users',
'child' => [
'read_only' => 'users.index',
'add' => 'users.store',
'edit' => 'users.update',
'delete' => 'users.destroy'
]
],
'role_manage' => [
'uri' => 'roles',
'child' => [
'read_only' => 'roles.index',
'add' => 'roles.store',
'view' => 'roles.show',
'edit' => 'roles.update',
'delete' => 'roles.destroy'
]
]
]
];
}
/**
* @param int $id
* @param string $title
* @param int $show
* @param int $parent_id
* @param string $uri
* @param int $order
* @return array
*/
private function insertData(
int $id,
string $title,
int $show = 0,
int $parent_id = 0,
string $uri = '#',
int $order = 0
): array {
return [
'id' => $id,
'parent_id' => $parent_id,
'order' => $order,
'title' => $title,
'icon' => '',
'uri' => $uri,
'show' => $show,
'created_at' => date("Y-m-d H:i:s", time())
];
}
}

75
resources/lang/zh-CN/menu.php

@ -1,13 +1,70 @@
<?php
return [
'model_manage' => '模式管理',
'cat_status' => '车位状态',
'special_car_manage' => '特别车位管理',
'information_center' => '信息中心',
'statistics_report' => '统计报表',
'device_manage' => '设备管理',
'system_manage' => '系统管理',
'user_manage' => '用户管理',
'role_manage' => '角色管理',
'homepage' => '主页',
'model_manage' => '模式管理',
'event_calendar' => '活动行事历',
'cat_status' => '车位状态',
'cat_map' => '车位地图',
'cat_list' => '车位列表',
'cat_type' => '车位类型管理',
'cat_attr' => '车位属性管理',
'draw_map' => '绘制电子地图',
'parking_information' => '车位停车资讯',
'special_car_manage' => '特别车位管理',
'vip_list' => 'VIP名单',
'vip_access_record' => 'VIP进出记录',
'information_center' => '信息中心',
'alarm_notice' => '警报 & 通知',
'statistics_report' => '统计报表',
'recognition_rate' => '车牌识别率',
'parking_behavior' => '停车行为',
'utilization_rate' => '车位使用率',
'occupancy_rate' => '车位占用率',
'manual_correction' => '车牌手动修正记录',
'system_log' => '系统日志',
'device_manage' => '设备管理',
'camera_management' => '车位相机管理',
'system_manage' => '系统管理',
'total_configuration' => '系统总配置',
'floor_plan' => '楼层配置',
'translation' => '翻译',
'user_manage' => '用户管理',
'user_list' => '用户列表',
'role_manage' => '角色管理',
'read_only' => '只读',
'view' => '查看',
'add' => '新增',
'edit' => '编辑',
'delete' => '删除',
'import' => '导入',
'export' => '导出',
'batch_delete' => '批量删除',
'download_template' => '下载模板',
'end' => '结束',
'batch_import' => '批量导入',
'view_details' => '查看详情',
'reserved_parking' => '释放优越卡预留车位',
'departure_reminder' => '离场提示',
'add_parking_space' => '车位添加',
'edit_parking_space' => '车位编辑',
'delete_parking_space' => '车位删除',
'add_new_energy' => '设置新能源车位',
'delete_new_energy' => '取消新能源车位',
'license_plate_management' => '车牌管理',
'add_license_plate' => '添加车牌',
'edit_license_plate' => '编辑车牌',
'delete_license_plate' => '删除车牌',
'clear_license_plate' => '清除车牌',
'clear' => '清除',
'alarm_settings' => '告警设置',
'debug' => '调试',
'related_parking_spaces' => '关联车位',
'add_floor' => '添加楼层',
'edit_floor' => '编辑楼层',
'add_partition' => '添加分区',
'edit_partition' => '编辑分区',
'gate_management' => '闸道管理',
'stop_on_duty' => '车场岗亭',
'lane_video' => '车道视频'
];

Loading…
Cancel
Save