$value['key'], 'value' => $value['value'], 'sort' => $value['sort'], 'is_show' => $value['is_show'], 'is_click_detail' => $value['is_click_detail'] ?? 0, 'float' => $value['float'], 'width' => $value['width'] ?? 150, 'menu_id' => $data['menu_id'], 'crt_time' => $time, 'crt_id' => $user['id'], ]; } DB::beginTransaction(); try{ TableSetting::where('del_time',0) ->where('crt_id',$user['id']) ->where('menu_id',$data['menu_id']) ->where('key', '<>', TableSetting::IS_FILTER) ->update(['del_time' => $time]); TableSetting::insert($insert); DB::commit(); }catch (\Exception $exception){ DB::rollBack(); return [false, $exception->getMessage()]; } return [true,'']; } public function tableheadGet($data, $user){ if(empty($data['menu_id'])) return [false,'menu_id不能为空!']; $header = TableSetting::where('del_time',0) ->where('menu_id',$data['menu_id']) ->where('crt_id',$user['id']) ->select('key','value','sort','is_show','is_click_detail','menu_id','float','width') ->get()->toArray(); $header_map = array_column($header,null,'key'); $header_default = config("header.{$data['menu_id']}") ?? []; $this->fillHeader($data['menu_id'], $user, $header_default); foreach ($header_default as $key => $value){ if(isset($header_map[$value['key']])) { //存在保存好的设置的表头 以下信息沿用 $tmp = $header_map[$value['key']]; $header_default[$key]['sort'] = $tmp['sort']; $header_default[$key]['is_show'] = $tmp['is_show']; $header_default[$key]['is_click_detail'] = $tmp['is_click_detail']; $header_default[$key]['float'] = $tmp['float']; $header_default[$key]['width'] = $tmp['width']; }else{ $header_default[$key]['sort'] = $key + 1; $header_default[$key]['is_show'] = 1; $header_default[$key]['float'] = 0; $is_click_detail = 0; if($value['key'] == "order_number") { $is_click_detail = 1; }elseif ($value['key'] == "title"){ $is_click_detail = 1; } //默认选中 $header_default[$key]['is_click_detail'] = $is_click_detail; $header_default[$key]['width'] = 150; } } //时间排序 usort($header_default, function($a, $b) { return $a['sort'] - $b['sort']; }); return [true, $header_default]; } private function fillHeader($menu_id = 0,$user, &$header_default){ if($menu_id == 17){ $data['top_depart_id'] = $user['head']['id'] ?? 0; $model = BasicType::TopClear($user,$data); $basic = $model->where('del_time',0) ->where('type',22) ->select('title','id','type') ->orderby('id', 'asc') ->get()->toArray(); $title_map = BasicType::whereIn('id',array_column($basic,'id')) ->pluck('title','id') ->toArray(); $top_depart = $user['depart_top'][0] ?? []; //特殊功能按钮 $special_button = $user['special_button'] ?? []; //所有金额 foreach ($basic as $value){ $show = 0; if(in_array(RoleMenuButton::special_one,$special_button)){ $show = 1; }else{ if($top_depart['basic_type_id'] == $value['id']) $show = 1; } if($show){ $header_default[] = [ 'key' => $value['id'], 'value' => $title_map[$value['id']] ?? '', ]; } } if(in_array(RoleMenuButton::special_two,$special_button)) { $header_default[] = [ 'key' => 'cost_show', 'value' => "成本", ]; } } } public function filterAdd($data, $user){ if(! isset($data['is_filter'])) return [false,'是否打开筛选不能为空']; if(empty($data['menu_id'])) return [false, 'menu_id不能为空']; $time = time(); $insert = []; //是否打开筛选 $insert[] = [ 'key' => TableSetting::IS_FILTER, 'value' => "是否打开筛选", 'sort' => 0, 'is_show' => 0, 'is_click_detail' => $data['is_filter'] ?? 1, 'float' => 0, 'width' => 0, 'menu_id' => $data['menu_id'], 'crt_time' => $time, 'crt_id' => $user['id'], ]; DB::beginTransaction(); try{ TableSetting::where('del_time',0) ->where('crt_id',$user['id']) ->where('menu_id',$data['menu_id']) ->where('key', TableSetting::IS_FILTER) ->update(['del_time' => $time]); TableSetting::insert($insert); DB::commit(); }catch (\Exception $exception){ DB::rollBack(); return [false, $exception->getMessage()]; } return [true,'']; } public function filterGet($data, $user){ if(empty($data['menu_id'])) return [false,'menu_id不能为空!']; $is_filter_model = TableSetting::where('del_time',0) ->where('menu_id',$data['menu_id']) ->where('crt_id',$user['id']) ->where('key', TableSetting::IS_FILTER) ->select('is_click_detail as is_filter') ->first(); $is_filter = 1; if(! empty($is_filter_model)) $is_filter = $is_filter_model->is_filter; return [true, ['is_filter' => $is_filter]]; } public function tableSearchAdd($data, $user){ if(empty($data['table_search'])) return [false,'搜索项不能为空']; if(empty($data['menu_id'])) return [false, 'menu_id不能为空']; $time = time(); $insert = []; //表头 foreach ($data['table_search'] as $value){ if(empty($value['key'])) return [false, 'key不能为空']; if(! isset($value['is_show'])) return [false, 'is_show不能为空']; $insert[] = [ 'key' => $value['key'], 'is_show' => $value['is_show'], 'menu_id' => $data['menu_id'], 'crt_time' => $time, 'crt_id' => $user['id'], ]; } DB::beginTransaction(); try{ TableSearchSetting::where('del_time',0) ->where('crt_id',$user['id']) ->where('menu_id',$data['menu_id']) ->update(['del_time' => $time]); TableSearchSetting::insert($insert); DB::commit(); }catch (\Exception $exception){ DB::rollBack(); return [false, $exception->getMessage()]; } return [true,'']; } public function tableSearchGet($data, $user){ if(empty($data['menu_id'])) return [false,'menu_id不能为空!']; $search = TableSearchSetting::where('del_time',0) ->where('menu_id',$data['menu_id']) ->where('crt_id',$user['id']) ->select('key','is_show','menu_id') ->get()->toArray(); return [true, $search]; } }