'账号', 'name' => '名称', 'role_name' => '角色', 'dept_name' => '部门', 'create_time' => '创建时间', 'login_time' => '最近登录时间', 'login_ip' => '最近登录IP', 'disable_desc' => '状态', ]; } /** * @notes 设置导出文件名 * @return string * @author 段誉 * @date 2021/12/29 10:08 */ public function setFileName(): string { return '管理员列表'; } /** * @notes 设置搜索条件 * @return \string[][] * @author 段誉 * @date 2021/12/29 10:07 */ public function setSearch(): array { return [ '%like%' => ['name', 'account'], ]; } /** * @notes 设置支持排序字段 * @return string[] * @author 段誉 * @date 2021/12/29 10:07 * @remark 格式: ['前端传过来的字段名' => '数据库中的字段名']; */ public function setSortFields(): array { return ['create_time' => 'create_time', 'id' => 'id']; } /** * @notes 设置默认排序 * @return string[] * @author 段誉 * @date 2021/12/29 10:06 */ public function setDefaultOrder(): array { return ['id' => 'desc']; } /** * @notes 查询条件 * @return array * @author 段誉 * @date 2022/11/29 11:33 */ public function queryWhere() { $where = []; if (isset($this->params['role_id']) && $this->params['role_id'] != '') { $adminIds = AdminRole::where('role_id', $this->params['role_id'])->column('admin_id'); if (!empty($adminIds)) { $where[] = ['id', 'in', $adminIds]; } } if ($this->adminInfo['root'] != 1) { if($this->adminInfo['role_id'][0]==10){ $where[] = ['area_manager', '=', $this->adminId]; } } return $where; } /** * @notes 获取管理列表 * @return array * @throws \think\db\exception\DataNotFoundException * @throws \think\db\exception\DbException * @throws \think\db\exception\ModelNotFoundException * @author 段誉 * @date 2021/12/29 10:05 */ public function lists(): array { $field = [ 'id', 'name', 'account', 'create_time', 'disable', 'root', 'province', 'city', 'area', 'street', 'login_time', 'login_ip', 'multipoint_login', 'avatar', 'is_contract', 'create_time' ]; $adminLists = Admin::field($field) ->where($this->searchWhere) ->where($this->queryWhere()) ->limit($this->limitOffset, $this->limitLength) ->order($this->sortOrder) ->append(['role_id', 'dept_id', 'jobs_id', 'disable_desc', 'province_name', 'city_name', 'area_name', 'street_name']) ->select() ->each(function($item){ $company_id=User::where('admin_id',$item['id'])->value('company_id'); if($company_id){ $item['company']=Company::where('id',$company_id)->field('id,company_name')->find(); }else{ $item['company']=[]; } }) ->toArray(); // 角色数组('角色id'=>'角色名称') $roleLists = SystemRole::column('name', 'id'); // 部门列表 $deptLists = Dept::column('name', 'id'); // 岗位列表 $jobsLists = Jobs::column('name', 'id'); // $companyIds = array_unique(array_column($adminLists, 'company_id')); // $company = Company::whereIn('id', $companyIds)->field('id,company_name')->select()->toArray(); // $adminLists = append($adminLists, $company, 'company_id', 'company'); //管理员列表增加角色名称 foreach ($adminLists as $k => $v) { $roleName = ''; if ($v['root'] == 1) { $roleName = '系统管理员'; } else { foreach ($v['role_id'] as $roleId) { $roleName .= $roleLists[$roleId] ?? ''; $roleName .= '/'; } } $deptName = ''; foreach ($v['dept_id'] as $deptId) { $deptName .= $deptLists[$deptId] ?? ''; $deptName .= '/'; } $jobsName = ''; foreach ($v['jobs_id'] as $jobsId) { $jobsName .= $jobsLists[$jobsId] ?? ''; $jobsName .= '/'; } $adminLists[$k]['role_name'] = trim($roleName, '/'); $adminLists[$k]['dept_name'] = trim($deptName, '/'); $adminLists[$k]['jobs_name'] = trim($jobsName, '/'); } return $adminLists; } /** * @notes 获取数量 * @return int * @author 令狐冲 * @date 2021/7/13 00:52 */ public function count(): int { return Admin::where($this->searchWhere) ->where($this->queryWhere()) ->count(); } public function extend() { return []; } }