|
@@ -1104,9 +1104,9 @@ class EmployeeService extends Service
|
|
|
}
|
|
|
|
|
|
//通过角色获取菜单
|
|
|
- public function getMenuByRoleInList($role_id,$user){
|
|
|
+ public function getMenuByRoleInList($user){
|
|
|
+ $role_id = $user['role'] ?? [];
|
|
|
$menu = SysMenu::where('del_time',0)->select('id')->get()->toArray();
|
|
|
-
|
|
|
if($user['id'] == Employee::SPECIAL_ADMIN) return array_column($menu,'id');
|
|
|
|
|
|
//没绑定角色
|
|
@@ -1119,6 +1119,59 @@ class EmployeeService extends Service
|
|
|
return array_column($role_menu,'menu_id');
|
|
|
}
|
|
|
|
|
|
+ //通过角色获取菜单以及按钮
|
|
|
+ public function getMenuByRole($user){
|
|
|
+ $role_id = $user['role'] ?? [];
|
|
|
+
|
|
|
+ $menu = SysMenu::where('del_time',0)->select('id','uri')->get()->toArray();
|
|
|
+ $button = SysMenuButton::where('del_time',0)->select('id','title','sort','func','menu_id')->get()->toArray();
|
|
|
+ $button_map = [];
|
|
|
+ foreach ($button as $value){
|
|
|
+ $button_map[$value['menu_id']][] = $value;
|
|
|
+ }
|
|
|
+
|
|
|
+ //超级管理员
|
|
|
+ if($user['id'] == Employee::SPECIAL_ADMIN){
|
|
|
+ $object = [];
|
|
|
+ foreach ($menu as $value){
|
|
|
+ $object[] = [
|
|
|
+ 'id' => $value['menu_id'],
|
|
|
+// 'type' => 0,//所有权限
|
|
|
+ 'uri' => $value['uri'],
|
|
|
+ 'button' => $button_map[$value['id']] ?? [],
|
|
|
+ ];
|
|
|
+ }
|
|
|
+ }else{
|
|
|
+ //没绑定角色
|
|
|
+ if(empty($role_id)) return [];
|
|
|
+
|
|
|
+ $search = RoleMenu::whereIn('role_id',$role_id)
|
|
|
+ ->where('del_time',0)
|
|
|
+ ->select('menu_id','type')
|
|
|
+ ->get()->toArray();
|
|
|
+ $menu_map = array_column($menu,'uri','id');
|
|
|
+ //该角色下 菜单里所有按钮
|
|
|
+ $button_menu = $this->fillRoleButton($role_id);
|
|
|
+ $button_t = array_column($button,null,'id');
|
|
|
+ foreach ($search as $value){
|
|
|
+ $bt = $button_menu[$value['menu_id']] ?? [];
|
|
|
+ $new = [];
|
|
|
+ foreach ($bt as $b){
|
|
|
+ if(! empty($button_t[$b])) $new[] = $button_t[$b];
|
|
|
+ }
|
|
|
+
|
|
|
+ $object[] = [
|
|
|
+ 'id' => $value['menu_id'],
|
|
|
+ 'uri' => $menu_map[$value['menu_id']] ?? '',
|
|
|
+// 'type' => $value['type'],
|
|
|
+ 'button' => $new,
|
|
|
+ ];
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ return $object;
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 人员直接绑定部门
|
|
|
* @param $data
|