login_admin = get_login_admin(); } public function index() { if (request()->isAjax()) { $param = get_params(); $where = array(); if (!empty($param['keywords'])) { $where[] = ['id|title|desc', 'like', '%' . $param['keywords'] . '%']; } $rows = empty($param['limit']) ? get_config('app.page_size') : $param['limit']; $unit_name = $this->login_admin['unit_name']; $permission = $this->login_admin['permission']; $group_id = Db::name('AdminGroupAccess')->where('uid', $this->login_admin['id'])->value('group_id'); $where_unit = array(); $whereor = array(); $whereor_ = array(); if($permission != 1){ $where_unit[] = [ ['unit_name', '=', $unit_name], ]; }else{ if(get_login_admin('user_type') == -1){ $whereor[] = [ ['pid', '=', $group_id], ]; } } $group = AdminGroup::with(['department','admin']) ->where($where) ->where($whereor) ->where($where_unit) ->order('create_time asc') ->paginate($rows, false, ['query' => $param])->toArray(); // $group_mine = Db::name('AdminGroup')->where('id', $group_id)->select()->toArray(); // dump($group); if(get_login_admin('user_type') == -1){ $group_ = AdminGroup::with(['department','admin']) ->where('id', $group_id) ->find() ->toArray(); $group_n[] = $group_; $group['data'] = array_merge($group_n, $group['data']); } // $group = array_merge($group_mine, $group); // halt($group); return table_assign(0, '', $group); } else { return view(); } } //添加&编辑 public function add() { $param = get_params(); // halt($param); if (request()->isAjax()) { $ruleData = isset($param['rule']) ? $param['rule'] : 0; $param['rules'] = implode(',', $ruleData); $param['operator'] = get_login_admin('nickname'); if (!empty($param['id']) && $param['id'] > 0) { //编辑 // halt($param); if(get_login_admin('permission') == 0 || get_login_admin('user_type') == -1){ $login_group_id = Db::name('AdminGroupAccess')->where('uid', get_login_admin('id'))->value('group_id'); if($login_group_id == $param['id']){ return to_assign(0, '不可修改自身权限'); } } try { validate(GroupCheck::class)->scene('edit')->check($param); } catch (ValidateException $e) { // 验证失败 输出错误信息 return to_assign(1, $e->getError()); } //为了系统安全id为1的系统所有者管理组不允许修改 if ($param['id'] == 1) { return to_assign(1, '为了系统安全,该管理组不允许修改'); } Db::name('AdminGroup')->where(['id' => $param['id']])->strict(false)->field(true)->update($param); $field_id = $param['field_id']; Db::name('FieldRules')->where('id', $field_id)->update(['group_id' => $param['id']]); add_log('edit', $param['id'], $param); } else { //添加 try { validate(GroupCheck::class)->scene('add')->check($param); } catch (ValidateException $e) { // 验证失败 输出错误信息 return to_assign(1, $e->getError()); } $group_id = Db::name('AdminGroupAccess')->where('uid', get_login_admin('id'))->value('group_id'); if($this->login_admin['permission'] == 1){ //系统方添加 if($param['unit_name'] != 0){ //添加单位权限组 if($this->login_admin['user_type'] == -1){ $param['pid'] = $group_id; }else{ $param['pid'] = 0; } }else{ //添加系统权限组 $param['pid'] = $group_id; } }else{ $param['unit_name'] = $this->login_admin['unit_name']; $param['pid'] = $group_id; } // halt($param); $gid = Db::name('AdminGroup')->strict(false)->field(true)->insertGetId($param); $field_id = $param['field_id']; if($field_id != 0){ Db::name('FieldRules')->where('id', $field_id)->update(['group_id' => $gid]); }else{ $field_rules = '{"see_auth":"1","project_status":"1","project_num":"1","project_name":"1","project_time":"1","entrust_unit":"1","entrust_head":"1","entrust_phone":"1","review_unit":"1","review_head":"1","review_head_phone":"1","sent_review_unit":"1","sent_review_head":"1","sent_review_phone":"1","construction_unit":"1","construction_head":"1","construction_phone":"1","project_scale":"1","project_region":"1","engineering_category":"1","engineering_type":"1","fiscal_nature":"1","sent_review_cost":"1","preparation_amount":"1","sent_review_amount":"1","sent_review_approver_amount":"1","construction_approver_amount":"1","authorize_amount":"1","review_add_reduce_amount":"1","review_add_reduce_rate":"1","report_time":"1","charge_standard":"1","invoicing__amount":"1","invoicing__num":"1","operate_name":"1","operate_team_names":"1","project_dead_time":"1","create_time":"1"}'; $field_rules_edit = '{"project_status_edit":"1","project_num_edit":"1","project_name_edit":"1","project_time_edit":"1","entrust_unit_edit":"1","entrust_head_edit":"1","entrust_phone_edit":"1","review_unit_edit":"1","review_head_edit":"1","review_head_phone_edit":"1","sent_review_unit_edit":"1","sent_review_head_edit":"1","sent_review_phone_edit":"1","construction_unit_edit":"1","construction_head_edit":"1","construction_phone_edit":"1","project_scale_edit":"1","project_region_edit":"1","engineering_category_edit":"1","engineering_type_edit":"1","fiscal_nature_edit":"1","sent_review_cost_edit":"1","preparation_amount_edit":"1","sent_review_amount_edit":"1","sent_review_approver_amount_edit":"1","construction_approver_amount_edit":"1","authorize_amount_edit":"1","review_add_reduce_amount_edit":"1","review_add_reduce_rate_edit":"1","report_time_edit":"1","charge_standard_edit":"1","invoicing__amount_edit":"1","invoicing__num_edit":"1","operate_name_edit":"1","operate_team_names_edit":"1","project_dead_time_edit":"1","create_time_edit":"1"}'; $data = [ 'group_id' => $gid, 'field_rules' => $field_rules, 'field_edit_rules' => $field_rules_edit, 'operator' => get_login_admin('nickname'), ]; $field_id = Db::name('FieldRules')->strict(false)->field(true)->insertGetId($data); } add_log('add', $gid, $param); } //清除菜单\权限缓存 clear_cache('adminMenu'); return to_assign(); } else { $id = isset($param['id']) ? $param['id'] : 0; //id为编辑的权限组的表id $rule = get_admin_rule(); $group_id = Db::name('admin_group_access')->where('uid', get_login_admin('id'))->value('group_id'); $rules = get_admin_group_info($group_id); //登录账号的权限组 $role_rule = create_tree_list(0, $rule, $rules); $role_rule = self::remove_checked_false($role_rule); if ($id > 0) { //编辑 if($group_id == $id){ // return to_assign(0, '不可修改自身权限'); if(get_login_admin('user_type') != -2){ echo '