'require|checkData', 'project_id' => 'require|checkProject', 'address' => 'require', 'service_scope' => 'require', 'area' => 'require', 'invest' => 'require|float|gt:0', 'basic_type' => 'require', 'duration' => 'require', 'land_floors' => 'integer', 'underground_floors' => 'integer', 'create_user' => 'require', 'create_time' => 'require|dateFormat:Y-m-d H:i:s', 'evolve' => 'checkEvolve', 'preparation' => 'checkPreparation', ]; /** * 参数描述 * @var string[] */ protected $field = [ 'id' => 'id', 'project_id' => '项目id', 'address' => '工程地点', 'service_scope' => '服务范围', 'area' => '建筑面积', 'invest' => '投资(万元)', 'basic_type' => '基础类型', 'duration' => '工期', 'structure_type' => '结构类型', 'land_floors' => '地上层数', 'underground_floors' => '地下层数', 'owner_unit' => '业主单位', 'owner_unit_contact' => '业主单位联系人及电话', 'design_unit' => '设计单位', 'design_unit_contact' => '设计单位联系人及电话', 'survey_unit' => '勘察单位', 'survey_unit_contact' => '勘察单位联系人及电话', 'build_unit' => '施工单位', 'build_unit_contact' => '施工单位联系人及电话', 'project_manager' => '项目经理', 'deputy_project_manager' => '项目副经理', 'engineer' => '专业工程师', 'content' => '其他事项情况说明', 'create_user' => '填表人', 'create_time' => '填表日期', ]; /** * @notes 添加场景 * @return ConsultNewStartProjectValidate * @author likeadmin * @date 2024/03/11 10:27 */ public function sceneAdd() { return $this->remove('id',true); } /** * @notes 编辑场景 * @return ConsultNewStartProjectValidate * @author likeadmin * @date 2024/03/11 10:27 */ public function sceneEdit() {} /** * @notes 删除场景 * @return ConsultNewStartProjectValidate * @author likeadmin * @date 2024/03/11 10:27 */ public function sceneDelete() { return $this->only(['id'])->remove('id','checkData'); } /** * @notes 详情场景 * @return ConsultNewStartProjectValidate * @author likeadmin * @date 2024/03/11 10:27 */ public function sceneDetail() { return $this->only(['id']); } public function checkData($value): bool|string { $data = ConsultNewStartProject::where('id',$value)->findOrEmpty(); if($data->isEmpty()){ return '数据不存在'; } return true; } public function checkProject($value): bool|string { $data = ConsultProject::where('id',$value)->findOrEmpty(); if($data->isEmpty()){ return '项目信息不存在'; } return true; } public function checkEvolve($value): bool|string { if(empty($value)) return true; if(!is_array($value)) return '项目组工作开展情况数据格式错误'; foreach($value as $k=>$v){ if(isset($v['id']) && !empty($v['id'])){ $data = ConsultProjectEvolve::where('id',$v['id'])->findOrEmpty(); if($data->isEmpty()){ return '项目组工作开展情况列表第'.($k+1).'行数据不存在'; } } if(empty($v['name'])) return '项目组工作开展情况列表第'.($k+1).'行名称为空'; if(empty($v['progress_status'])) return '项目组工作开展情况列表第'.($k+1).'行进展状态为空'; if(empty($v['resp_user'])) return '项目组工作开展情况列表第'.($k+1).'行项目组跟踪责任人为空'; } return true; } public function checkPreparation($value): bool|string { if(empty($value)) return true; if(!is_array($value)) return '项目组后勤准备工作数据格式错误'; foreach($value as $k=>$v){ if(isset($v['id']) && !empty($v['id'])){ $data = ConsultProjectPreparation::where('id',$v['id'])->findOrEmpty(); if($data->isEmpty()){ return '项目组后勤准备工作列表第'.($k+1).'行数据不存在'; } } if(empty($v['name'])) return '项目组后勤准备工作列表第'.($k+1).'行名称为空'; if(empty($v['progress_status'])) return '项目组后勤准备工作列表第'.($k+1).'行进展状态为空'; if(empty($v['resp_user'])) return '项目组后勤准备工作列表第'.($k+1).'行项目组跟踪责任人为空'; } return true; } }