layTable(function () { $this->title = '部门员工'; $this->dept = StaffDept::tree(); }, static function (QueryHelper $query) { $query->equal('dept_id,status')->like('name'); $query->with('dept')->append(['dept_name']); }); } /** * 添加员工 * @auth true * @menu true * @return void */ public function add() { StaffUser::mForm('form'); } /** * 编辑员工 * @auth true * @return void */ public function edit() { StaffUser::mForm('form'); } protected function _form_filter(array &$data) { if ($this->request->isPost()) { // 检查资料是否完整 $this->_vali([ 'name.require' => '用户名称不能为空!', 'phone.require' => '手机号码不能为空!', 'phone.mobile' => '手机号码格式错误!', 'email.email' => '邮箱地址格式错误!', 'dept_id.require' => '部门名称不能为空!', 'authorize.require' => '未配置权限!' ]); if (!empty($data['password'])) { if (strlen($data['password']) < 6) { $this->error('密码长度不能少于6位!'); }; } } else { if (!empty($data['id'])) { $user = SystemUser::mk()->find($data['id']); $data['authorize'] = str2arr($user['authorize'] ?? '');; } else { $data['authorize'] = []; } $data['dept_id'] = $data['dept_id'] ?? ''; $this->auths = SystemAuth::items(); $this->depts = StaffDept::items(); } } protected function _form_result(bool $state, $data) { if ($state) { $user = []; // 检查账号是否重复 $map = ['username' => $data['phone'], 'is_deleted' => 0]; $systemUser = SystemUser::mk()->where($map)->findOrEmpty(); if ($systemUser->isExists() && $systemUser->id != $data['id']) { $this->error("账号已经存在,请使用其它账号!"); } $user['id'] = $data['id']; $user['username'] = $data['phone']; if (!empty($data['password'])) { $user['password'] = md5($data['password']); } $user['nickname'] = $data['name']; $user['contact_mail'] = $data['email']; // 处理上传的权限格式 $user['authorize'] = arr2str($data['authorize'] ?? []); if (!empty($data['id'])) { $systemUser = SystemUser::mk()->findOrEmpty($data['id']); if ($systemUser->isExists()) { $systemUser->save($user); } else { SystemUser::mk()->save($user); } } else { SystemUser::mk()->save($user); } } } /** * 启用禁用员工 * @return void */ public function state() { StaffUser::mSave($this->_vali([ 'status.in:0,1' => '状态值范围异常!', 'status.require' => '状态值不能为空!', ])); } protected function _state_save_result(bool $state, $data) { if ($state) { $systemUser = SystemUser::mk()->findOrEmpty($this->request->post('id')); if ($systemUser->isExists()) { $systemUser->status = $this->request->post('status'); $systemUser->save(); } } } /** * 删除员工 * @auth true * @return void */ public function del() { StaffUser::mDelete(); } protected function _del_delete_result(bool $state) { if ($state) { $systemUser = SystemUser::mk()->findOrEmpty($this->request->post('id')); if ($systemUser->isExists()) { $systemUser->is_deleted = 1; $systemUser->save(); } } } }