From cde1587bec53b25d5991da639c5b7234f0b2c0c8 Mon Sep 17 00:00:00 2001 From: weiz <736250432@qq.com> Date: Thu, 23 May 2024 11:21:53 +0800 Subject: [PATCH] update --- app/adminapi/lists/auth/AdminLists.php | 12 +++--- app/adminapi/logic/auth/AdminLogic.php | 40 ++++++++++++++++---- app/adminapi/validate/auth/AdminValidate.php | 32 +++++++++++++++- app/common/model/auth/Admin.php | 18 +++++++++ 4 files changed, 87 insertions(+), 15 deletions(-) diff --git a/app/adminapi/lists/auth/AdminLists.php b/app/adminapi/lists/auth/AdminLists.php index b564ae93f..9b78e24c9 100755 --- a/app/adminapi/lists/auth/AdminLists.php +++ b/app/adminapi/lists/auth/AdminLists.php @@ -118,13 +118,8 @@ class AdminLists extends BaseAdminDataLists implements ListsExtendInterface, Lis */ public function lists(): array { - $field = [ - 'id', 'name', 'account', 'create_time', 'disable', 'root', 'org_id', 'dept_id', 'job_id', - 'login_time', 'login_ip', 'multipoint_login', 'avatar' - ]; - - $adminLists = Admin::field($field) - ->where($this->searchWhere) + + $adminLists = Admin::where($this->searchWhere) ->limit($this->limitOffset, $this->limitLength) ->order($this->sortOrder) ->append(['role_id','disable_desc']) @@ -135,6 +130,9 @@ class AdminLists extends BaseAdminDataLists implements ListsExtendInterface, Lis $item['job_name'] = $job->isEmpty() ? '' : $job['name']; $item['dept_name'] = $dept->isEmpty() ? '' : $dept['name']; $item['org_name'] = $org->isEmpty() ? '' : $org['name']; + $item['sex_text'] = $item->sex_text; + $item['type_text'] = $item->type_text; + $item['status_text'] = $item->status_text; return $item; }) ->toArray(); diff --git a/app/adminapi/logic/auth/AdminLogic.php b/app/adminapi/logic/auth/AdminLogic.php index 023373de1..1f02818ab 100755 --- a/app/adminapi/logic/auth/AdminLogic.php +++ b/app/adminapi/logic/auth/AdminLogic.php @@ -65,6 +65,19 @@ class AdminLogic extends BaseLogic 'org_id' => $params['org_id'], 'dept_id' => $params['dept_id'], 'job_id' => $params['job_id'], + 'email' => $params['email'] ?? '', + 'mobile' => $params['mobile'], + 'sex' => $params['sex'] ?? 0, + 'type' => $params['type'], + 'age' => $params['age'] ?? 0, + 'native_place' => $params['native_place'] ?? '', + 'idcard' => $params['idcard'] ?? '', + 'education' => $params['education'] ?? '', + 'bank_account' => $params['bank_account'] ?? '', + 'bank_info' => $params['bank_info'] ?? '', + 'desc' => $params['desc'] ?? null, + 'entry_time' => !empty($params['entry_time']) ? strtotime($params['entry_time']) : 0, + 'status' => $params['status'], ]); // 角色 self::insertRole($admin['id'], $params['role_id'] ?? []); @@ -99,6 +112,19 @@ class AdminLogic extends BaseLogic 'org_id' => $params['org_id'], 'dept_id' => $params['dept_id'], 'job_id' => $params['job_id'], + 'email' => $params['email'] ?? '', + 'mobile' => $params['mobile'], + 'sex' => $params['sex'] ?? 0, + 'type' => $params['type'], + 'age' => $params['age'] ?? 0, + 'native_place' => $params['native_place'] ?? '', + 'idcard' => $params['idcard'] ?? '', + 'education' => $params['education'] ?? '', + 'bank_account' => $params['bank_account'] ?? '', + 'bank_info' => $params['bank_info'] ?? '', + 'desc' => $params['desc'] ?? null, + 'entry_time' => !empty($params['entry_time']) ? strtotime($params['entry_time']) : 0, + 'status' => $params['status'], ]; // 头像 @@ -213,26 +239,26 @@ class AdminLogic extends BaseLogic */ public static function detail($params, $action = 'detail'): array { - $admin = Admin::field([ - 'id', 'account', 'name', 'disable', 'root', 'org_id', 'dept_id', 'job_id', - 'multipoint_login', 'avatar', - ])->findOrEmpty($params['id'])->toArray(); + $admin = Admin::findOrEmpty($params['id']); $job = Jobs::field('name')->where('id',$admin['job_id'])->findOrEmpty(); $dept = Dept::field('name')->where('id',$admin['dept_id'])->findOrEmpty(); $org = Orgs::field('name')->where('id',$admin['org_id'])->findOrEmpty(); $admin['job_name'] = $job->isEmpty() ? '' : $job['name']; $admin['dept_name'] = $dept->isEmpty() ? '' : $dept['name']; $admin['org_name'] = $org->isEmpty() ? '' : $org['name']; + $admin['sex_text'] = $admin->sex_text; + $admin['type_text'] = $admin->type_text; + $admin['status_text'] = $admin->status_text; if ($action == 'detail') { - return $admin; + return $admin->toArray(); } - $result['user'] = $admin; + $result['user'] = $admin->toArray(); // 当前管理员角色拥有的菜单 $result['menu'] = MenuLogic::getMenuByAdminId($params['id'],false); $result['top_menu'] = MenuLogic::getMenuByAdminId($params['id'],true); // 当前管理员橘色拥有的按钮权限 - $result['permissions'] = AuthLogic::getBtnAuthByRoleId($admin); + $result['permissions'] = AuthLogic::getBtnAuthByRoleId($admin->toArray()); return $result; } diff --git a/app/adminapi/validate/auth/AdminValidate.php b/app/adminapi/validate/auth/AdminValidate.php index 9028d63f5..4507be91a 100755 --- a/app/adminapi/validate/auth/AdminValidate.php +++ b/app/adminapi/validate/auth/AdminValidate.php @@ -38,7 +38,15 @@ 'multipoint_login' => 'require|in:0,1', 'org_id' => 'require|checkOrg', 'dept_id' => 'requireWith:org_id|checkDept', - 'job_id' => 'requireWith:dept_id|checkJob' + 'job_id' => 'requireWith:dept_id|checkJob', + 'email' => 'email', + 'mobile' => 'require|mobile|unique:oa_admin', + 'sex' => 'integer|in:0,1,2', + 'age' => 'integer|gt:0', + 'idcard' => 'idCard', + 'entry_time' => 'require|dateFormat:Y-m-d', + 'type' => 'require|integer|in:0,1,2', + 'status' => 'require|integer|in:0,1,2', ]; protected $message = [ @@ -63,6 +71,28 @@ 'job_id.requireWith' => '请选择岗位', ]; + protected $field = [ + 'id' => 'id', + 'account' => '登陆账号', + 'name' => '员工姓名', + 'password' => '登录密码', + 'password_confirm' => '确认密码', + 'role_id' => '角色', + 'disable' => '管理员状态', + 'multipoint_login' => '多处登录', + 'email' => '电子邮箱', + 'mobile' => '手机号码', + 'sex' => '性别', + 'org_id' => '组织', + 'dept_id' => '部门', + 'job_id' => '职位', + 'type' => '员工类型', + 'age' => '年龄', + 'idcard' => '身份证', + 'entry_time' => '员工入职日期', + 'status' => '状态', + ]; + /** * @notes 添加场景 * @return AdminValidate diff --git a/app/common/model/auth/Admin.php b/app/common/model/auth/Admin.php index 9da83b530..e696ebdfa 100755 --- a/app/common/model/auth/Admin.php +++ b/app/common/model/auth/Admin.php @@ -79,5 +79,23 @@ class Admin extends BaseModel { return empty($value) ? FileService::getFileUrl(config('project.default_image.admin_avatar')) : FileService::getFileUrl(trim($value, '/')); } + + public function getSexTextAttr($value,$data): string + { + $arr = [0=>'未设置', 1=>'男', 2=>'女']; + return $arr[$data['sex']]; + } + + public function getTypeTextAttr($value,$data): string + { + $arr = [0=>'正式', 1=>'试用', 2=>'实习']; + return $arr[$data['type']]; + } + + public function getStatusTextAttr($value,$data): string + { + $arr = [0=>'禁用', 1=>'正常', 2=>'离职']; + return $arr[$data['status']]; + } } \ No newline at end of file