This commit is contained in:
weiz 2024-05-23 11:21:53 +08:00
parent 991d482999
commit cde1587bec
4 changed files with 87 additions and 15 deletions

View File

@ -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();

View File

@ -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;
}

View File

@ -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

View File

@ -80,4 +80,22 @@ 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']];
}
}