get_status_list = CommonConstant::get_status_list(); $this->get_signature_status_list = CommonConstant::get_signature_status_list(); } /** * 列表 * @auth true * @menu true * @throws \think\Exception * @throws \think\db\exception\DataNotFoundException * @throws \think\db\exception\ModelNotFoundException * @throws \think\exception\DbException */ public function index() { $status = input('status'); $signature_status = input('signature_status'); $this->title = '员工列表'; $query = $this->_query($this->table) ->field('is_deleted',true) ->where('is_deleted', CommonConstant::IS_DELETED_0) ->when(array_key_exists($status, $this->get_status_list), function ($query) use ($status) { $query->where('status', $status); }) ->when(array_key_exists($signature_status, $this->get_signature_status_list), function ($query) use ($signature_status) { $query->where('signature_status', $signature_status); }) ->like('name,mobile,title'); $query->page(); } /** * 列表数据处理 * @param array $data * @throws \Exception */ protected function _index_page_filter(&$data) { if($data){ $this->user_list = UserService::get_list(1); $user_object = array_column($this->user_list->toArray(),null,'userid'); $department_list = Department::column('dept_id,name'); foreach ($data as &$value) { // 所属部门 $department_ids = explode(',',$value['department']); $department_text = ''; foreach ($department_ids as $val){ if(array_key_exists($val,$department_list)){ $department_text .= $department_list[$val].','; } } $value['department_text'] = $department_text; // 员工的直属主管 $manager_text = !empty($value['manager_userid']) && array_key_exists($value['manager_userid'],$user_object) ? $user_object[$value['manager_userid']]['name'] : ''; $value['manager_text'] = $manager_text; } } } /** * 编辑 * @auth true * @throws \think\Exception * @throws \think\db\exception\DataNotFoundException * @throws \think\db\exception\ModelNotFoundException * @throws \think\exception\DbException * @throws \think\exception\PDOException */ public function edit() { $this->title = '编辑'; $this->_form($this->table, 'form'); } /** * 表单处理 * @param array $data * @throws \think\db\exception\DataNotFoundException * @throws \think\db\exception\ModelNotFoundException * @throws \think\exception\DbException */ protected function _form_filter(&$data) { // 编辑 if($data['id'] > 0){ if($this->request->isGet()) { $department_list = Department::column('dept_id,name'); // 所属部门 $department_ids = explode(',',$data['department']); $department_text = ''; foreach ($department_ids as $val){ if(array_key_exists($val,$department_list)){ $department_text .= $department_list[$val].','; } } $data['department_text'] = $department_text; $this->user_list = UserService::get_list(1); } if($this->request->isPost()){ if (isset_full($data, 'signature_status')) { if(!in_array($data['signature_status'],[CommonConstant::SIGNATURE_STATUS_3,CommonConstant::SIGNATURE_STATUS_4])){ unset($data['signature_status']); } } } } } /** * 启用 * @auth true * @throws \think\Exception * @throws \think\exception\PDOException */ public function resume() { $this->applyCsrfToken(); $this->_save($this->table, ['status' => CommonConstant::STATUS_NORMAL]); } /** * 禁用 * @auth true * @throws \think\Exception * @throws \think\exception\PDOException */ public function forbid() { $this->applyCsrfToken(); $this->_save($this->table, ['status' => CommonConstant::STATUS_FROZEN]); } /** * 审核签名 * @auth true * @throws \think\Exception * @throws \think\exception\PDOException */ public function signature_status() { $signature_status = input('signature_status'); if(!array_key_exists($signature_status,CommonConstant::get_signature_status_list())){ $this->controller->error('审核状态参数错误'); } $this->applyCsrfToken(); $this->_save($this->table, ['signature_status' => $signature_status]); } }