1.根据场景验证
2.在构造方法初始化验证类
3.错误验证返回的信息将对象属性取出进行提示,并return false;终止表单后边脚本定时器提交
控制器代码
public function __construct()
{
parent::__construct();
$this->validate = new SupplierValidate();
}
public function audit_agree()
{
//获取登录的审核人id
$audit_id=$_SESSION['fw']['admin_user']['id'];
//获取登录的审核人姓名
$audit_name=$_SESSION['fw']['admin_user']['username'];
$postData = Request::param();
//表单验证
if (!$this->validate->scene('examine_quali')->check($postData)) {
$this->error($this->validate->getError());
}
//处理post数据
$res = $this->supplierLogic->update_examine($postData,$audit_id,$audit_name);
$this->msg->add($audit_id,'您更新的供应商【'.$postData['supplier_name'].'】资质审,请查阅!','supplier/examine');
return $res;
}
验证类
<?php
/**
* 供应商表必填字段验证
*/
namespace app\goods\validate;
use think\Validate;
class SupplierValidate extends Validate
{
protected $rule = [
'contacts_name|联系人'=>[
'require'=>'require',
],
'reg_address|注册地址'=>[
'require'=>'require',
],
'contacts_tel|联系电话'=>[
'require'=>'require',
'mobile'=>'mobile'
],
'pro_range|生产范围'=>[
'require'=>'require',
],
'yet_pro|已生产品种'=>[
'require'=>'require',
],
'join_pro_cate|合作品种类别'=>[
'require'=>'require',
],
'join_pro_name|合作品种名称'=>[
'require'=>'require',
],
'is_pro_cert|是否获得生产许可证'=>[
'require'=>'require',
],
'pro_cert_name|生产许可证名称'=>[
'require'=>'require',
],
'pro_cert_no|生产许可证编号'=>[
'require'=>'require',
],
'pro_cert_date|生产许可证效期'=>[
'require'=>'require',
],
];
protected $message = [
'contacts_name.require' =>'产品名称不能为空'
];
//验证场景,根据场景需要加入上边规则中需要验证的字段
protected $scene = [
'plan_add' => ['contacts_name','reg_address','contacts_tel','is_pro_cert','yet_pro','join_pro_cate','join_pro_name'],
'examine_quali' => ['pro_range','yet_pro','join_pro_cate','join_pro_name','pro_cert_name','pro_cert_no','pro_cert_date']
];
}
js脚本代码
<script>
window.form.render();
/* require(['ckeditor', 'angular'], function () {
window.createEditor('[name="penalize_reason"]', {height: 180});
});*/
laydate.render({
elem: '#datetime'
});
function agree()
{
var comment = $('#contents').val();
if($.trim(comment)=='')
{
layer.msg('审查意见不能为空');
return false;
}
audit(1,comment);
}
function disagree()
{
var comment = $('#contents').val();
if($.trim(comment)=='')
{
layer.msg('审查意见不能为空');
return false;
}
// layer.confirm('您确定要拒绝么?',{btn: ['确定', '取消'],title:"提示"}, function(){
audit(2,comment);
// });
}
//提交审批
function audit($agree,$comment)
{
var url = "{:url('goods/supplier/audit_agree')}";
$.post(url,$.param({is_result:$agree})+'&'+jQuery('#examine_quali').serialize(),function(result){
// 结合验证器返回提示表单验证信息
if(result['code']==0){
layer.msg(result['info']);
return false;
}
if(result){
layer.msg('审查意见提交成功');
setTimeout(function(){
window.history.back();
},3000);//1秒后可点击
//返回上一点击
}
console.log(result);
});
}
</script>