'require', 'project_id' => 'require|checkProject', 'project_person_id' => 'require|checkProjectPerson', 'contract_status' => 'require|checkContractStatus', 'contract_type' => 'require|checkContractType', 'contract_title' => 'require|checkContractTitle', 'signing_date' => 'require|dateFormat:Y-m-d', 'start_date' => 'require|dateFormat:Y-m-d', 'end_date' => 'require|dateFormat:Y-m-d', 'trial_start_date' => 'dateFormat:Y-m-d', 'trial_end_date' => 'dateFormat:Y-m-d', 'release_time' => 'dateFormat:Y-m-d', 'annex' => 'checkAnnex', ]; protected $message = [ 'id.require' => '缺少必要参数', 'project_id.require' => '请选择项目', 'project_person_id.require' => '请选择项目人员', 'contract_status.require' => '请选择合同状态', 'contract_type.require' => '请选择合同类别', 'contract_title.require' => '请选择合同名称', 'signing_date.require' => '请选择合同签定日期', 'signing_date.dateFormat' => '合同签定日期格式错误', 'start_date.require' => '请选择起始时间', 'start_date.dateFormat' => '起始时间格式错误', 'end_date.require' => '请选择终止时间', 'end_date.dateFormat' => '终止时间格式错误', 'trial_start_date.dateFormat' => '试用期起始日期格式错误', 'trial_end_date.dateFormat' => '试用期结束日期格式错误', 'release_time.dateFormat' => '解除时间格式错误', ]; /** * @notes 添加场景 * @return ProjectLaborContractValidate * @author likeadmin * @date 2023/12/25 14:35 */ public function sceneAdd() { return $this->remove('id',true); } /** * @notes 编辑场景 * @return ProjectLaborContractValidate * @author likeadmin * @date 2023/12/25 14:35 */ public function sceneEdit() {} /** * @notes 删除场景 * @return ProjectLaborContractValidate * @author likeadmin * @date 2023/12/25 14:35 */ public function sceneDelete() { return $this->only(['id']); } /** * @notes 详情场景 * @return ProjectLaborContractValidate * @author likeadmin * @date 2023/12/25 14:35 */ public function sceneDetail() { return $this->only(['id']); } public function checkProject($value): bool|string { $data = Project::where('id',$value)->findOrEmpty(); if($data->isEmpty()){ return '项目不存在'; } return true; } public function checkProjectPerson($value,$rule,$data): bool|string { $person = ProjectPersonnel::where('id',$value)->findOrEmpty(); if($person->isEmpty()){ return '项目人员不存在'; } if($person['project_id'] != $data['project_id']){ return '项目人员无效'; } return true; } public function checkContractStatus($value): bool|string { $dictData = DictData::where('type_value','labor_contract_status')->column('value'); if(!in_array($value,$dictData)){ return '合同状态无效'; } return true; } public function checkContractType($value): bool|string { $dictData = DictData::where('type_value','labor_contract_type')->column('value'); if(!in_array($value,$dictData)){ return '合同类别无效'; } return true; } public function checkContractTitle($value): bool|string { $dictData = DictData::where('type_value','labor_contract_name')->column('value'); if(!in_array($value,$dictData)){ return '合同名称无效'; } return true; } public function checkAnnex($value): bool|string { if(!empty($value) && $value != ''){ if(!is_array($value)){ return '附件必须是json数组'; } } return true; } }