'require|checkData', 'examine_type' => 'require|checkExamineType', 'temp_name' => 'require', 'create_user' => 'require', 'create_time' => 'require|dateFormat:Y-m-d H:i:s', 'detail' => 'require|checkDetail' ]; /** * 参数描述 * @var string[] */ protected $field = [ 'id' => 'id', 'examine_type' => '考核类别', 'temp_name' => '模板名称', 'create_user' => '创建人', 'create_time' => '创建时间', 'detail' => '考核项' ]; /** * @notes 添加场景 * @return OaExamineTempValidate * @author likeadmin * @date 2024/06/03 13:35 */ public function sceneAdd() { return $this->only(['examine_type','temp_name','create_user','create_time','detail']); } /** * @notes 编辑场景 * @return OaExamineTempValidate * @author likeadmin * @date 2024/06/03 13:35 */ public function sceneEdit() { return $this->only(['id','examine_type','temp_name','create_user','create_time','detail']); } /** * @notes 删除场景 * @return OaExamineTempValidate * @author likeadmin * @date 2024/06/03 13:35 */ public function sceneDelete() { return $this->only(['id']); } /** * @notes 详情场景 * @return OaExamineTempValidate * @author likeadmin * @date 2024/06/03 13:35 */ public function sceneDetail() { return $this->only(['id']); } public function checkData($value): bool|string { $data = OaExamineTemp::where('id',$value)->findOrEmpty(); if($data->isEmpty()){ return '数据不存在'; } return true; } public function checkExamineType($value): bool|string { $dict = DictData::where('type_value','jxgl_check_type')->column('value'); if(!in_array($value,$dict)){ return '考核类别无效'; } return true; } public function checkDetail($value): bool|string { if(!is_array($value) || empty($value)){ return '考核项数据格式错误'; } foreach($value as $k => $v){ if(isset($v['id']) && !empty($v['id'])){ $data = OaExamineTempItem::where('id',$v['id'])->findOrEmpty(); if($data->isEmpty()){ return '第'.($k+1).'行数据不存在'; } } if(empty($v['examine_item'])){ return '第'.($k+1).'行考核项为空'; } if(empty($v['score'])){ return '第'.($k+1).'行分数为空'; }else{ if(!is_numeric($v['score']) || $v['score'] < 0){ return '第'.($k+1).'行分数必须是大于0的数字'; } } if(empty($v['examine_desc'])){ return '第'.($k+1).'行考核说明为空'; } } return true; } }