|
@@ -268,86 +268,4 @@ class SysMenuService extends Service
|
|
|
}
|
|
|
return $data;
|
|
|
}
|
|
|
-
|
|
|
- public function export($data){
|
|
|
- //(共有的) 菜单 =》 按钮
|
|
|
- $sys_menu = SysMenu::where('del_time',0)
|
|
|
- ->select('title','uri','parent_id','sort','id','is_authority')
|
|
|
- ->orderBy('sort','desc')
|
|
|
- ->get()->toArray();
|
|
|
- $sys_menu_button = $this->fillMenuButton($sys_menu);
|
|
|
-
|
|
|
- $role = Role::where('del_time',0)
|
|
|
- ->select('id','title')
|
|
|
- ->orderBy('id','desc')
|
|
|
- ->get()->toArray();
|
|
|
- $role_menu = RoleMenu::where('del_time',0)
|
|
|
- ->whereIn('role_id',array_column($role,'id'))
|
|
|
- ->select('menu_id','role_id','type')
|
|
|
- ->get()->toArray();
|
|
|
- $role_menu_map = [];
|
|
|
- foreach ($role_menu as $value){
|
|
|
- $role_menu_map[$value['role_id']][] = $value;
|
|
|
- }
|
|
|
-
|
|
|
- $role_menu_button = RoleMenuButton::where('del_time',0)
|
|
|
- ->whereIn('role_id',array_column($role,'id'))
|
|
|
- ->select('menu_id','role_id','button_id')
|
|
|
- ->get()->toArray();
|
|
|
- $role_menu_button_map = [];
|
|
|
- foreach ($role_menu_button as $value){
|
|
|
- $role_menu_button_map[$value['role_id']][] = $value;
|
|
|
- }
|
|
|
-
|
|
|
- $result = [];
|
|
|
- foreach ($role as $value){
|
|
|
- $tmp = $sys_menu_button;
|
|
|
- $role_menu_tmp = $role_menu_map[$value['id']] ?? [];
|
|
|
- $role_menu_button_tmp = $role_menu_button_map[$value['id']] ?? [];
|
|
|
- $menu_button = [];
|
|
|
- $data_array = [];
|
|
|
- $data_array[] = ['菜单名称','是否勾选菜单','菜单按钮','数据范围'];
|
|
|
- foreach ($role_menu_button_tmp as $v){
|
|
|
- $menu_button[$v['menu_id']][] = $v['button_id'];
|
|
|
- }
|
|
|
- foreach ($tmp as $k => $v){
|
|
|
- $v['has_menu'] = 0;
|
|
|
- $v['type'] = 0;
|
|
|
- foreach ($role_menu_tmp as $v2){
|
|
|
- //菜单
|
|
|
- if($v2['menu_id'] == $v['id']) {
|
|
|
- $v['has_menu'] = 1;
|
|
|
- $v['type'] = $v2['type'];
|
|
|
- }
|
|
|
-
|
|
|
- //菜单下的按钮
|
|
|
- if(! empty($tmp[$k]['button'])){
|
|
|
- $button_tmp = $menu_button[$v['id']] ?? [];
|
|
|
- $str = "";
|
|
|
- foreach ($tmp[$k]['button'] as $v_b){
|
|
|
- if(in_array($v_b['id'],$button_tmp)){
|
|
|
- $str .= $v_b['title'] . ",";
|
|
|
- }
|
|
|
- }
|
|
|
- $v['button'] = rtrim($str,',');
|
|
|
- }else{
|
|
|
- $v['button'] = "";
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- $rule = RoleMenu::$type_name[$v['type']] ?? "";
|
|
|
- $data_array[] = [
|
|
|
- $v['title'],
|
|
|
- $v['has_menu'] ? "√" : "×",
|
|
|
- $v['button'],
|
|
|
- $rule
|
|
|
- ];
|
|
|
- }
|
|
|
- $result[$value['title']] = $data_array;
|
|
|
- }
|
|
|
-
|
|
|
- $filename = date("Ymd").time().rand(1000,9999) . ".xlsx";
|
|
|
- \Maatwebsite\Excel\Facades\Excel::store(new MultiSheetExport($result),"/public/export/{$filename}", null, 'Xlsx', []);
|
|
|
- return [true,$filename];
|
|
|
- }
|
|
|
}
|