<template>
<div>
<pl-content-box>
<pl-page-nav :show-previous=true></pl-page-nav>
<pl-content-box-block>
<pl-content-box-card>
<el-form :model="baseForm" ref="baseForm" label-width="150px">
<el-row>
<el-col :span="20">
<el-form-item label="报名编号" prop="memName">
<pl-content-item-text>{{baseForm.applyCode}}</pl-content-item-text>
</el-form-item>
</el-col>
<el-col :span="20">
<el-form-item label="申贷金额(元)" prop="applyAmt"
:rules="[
{ required: true, message: '融资金额必填'},
{ type: 'number', message: '融资金额必须为数字'}]">
<pl-input-number v-model="baseForm.applyAmt" placeholder="¥" :min="0" :valueEmpty="false" :numeric-precision="2">
</pl-input-number>
</el-form-item>
</el-col>
<el-col :span="20">
<el-form-item label="授信机构" prop="creditFin"
:rules="[{required: true, message: '授信机构必选'}]">
<pl-dictionary-select type="bank_brand" v-model="baseForm.creditFin"
style="width: 100px;" :showEmpty="false"></pl-dictionary-select>
</el-form-item>
</el-col>
<el-col :span="20">
<el-form-item label="申请人姓名" prop="applicantName"
:rules="[{required: true, message: '请填写申请人姓名'}]">
<el-input v-model="baseForm.applicantName" placeholder="请填写申请人姓名"></el-input>
</el-form-item>
</el-col>
<el-col :span="20">
<el-form-item label="手机号码" prop="applicantPhone"
:rules="[
{required: true, message: '请输入手机号码', trigger: 'change'},
{validator: checkPhone, trigger: 'change'}]">
<el-input v-model="baseForm.applicantPhone" placeholder="请填写申请人手机号码"></el-input>
</el-form-item>
</el-col>
<el-col :span="20">
<el-form-item label="固定电话" prop="applicantTel"
:rules="[{required: true, message: '请输入固定电话', trigger: 'change'},
{validator: checkTel, trigger: 'change'}]">
<el-input v-model="baseForm.applicantTel" placeholder="请填写申请人固定电话"></el-input>
</el-form-item>
</el-col>
<el-col :span="20">
<el-form-item label="申请日期" prop="applyDate" >
<pl-content-item-text>{{baseForm.applyDate}}</pl-content-item-text>
</el-form-item>
</el-col>
<el-col :span="20">
<el-form-item label="备注" prop="remark">
<el-input v-model="baseForm.remark" placeholder="请填写备注"></el-input>
</el-form-item>
</el-col>
<el-col :span="20">
<el-form-item label="证件类型" prop="certType" :rules="[
{required: true, message: '请输入证件类型', trigger: 'change'}
]">
<pl-dictionary-select type="id_type" v-model="form.certType" :showEmpty="false"></pl-dictionary-select>
</el-form-item>
</el-col>
<el-col :span="20">
<el-form-item label="证件号码" prop="certNo" :rules="[
{required: true, message: '请填写证件号码', trigger: 'blur' },
{pattern: /(^[1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$)|(^[1-9]\d{5}\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{2}$)/, message: '证件号码格式有误!', trigger: 'blur'}
]">
<el-input v-model="form.certNo" placeholder="输入证件号码"></el-input>
</el-form-item>
</el-col>
</el-row>
</el-form>
</pl-content-box-card>
</pl-content-box-block>
</pl-content-box>
<pl-affix :offset-bottom="0">
<pl-content-box-toolbar class="text-center" :border="false">
<el-button icon=" anticon icon-arrowleft" @click="callback">返回</el-button>
<el-button type="primary" icon=" anticon icon-clockcircleo" @click="submitAgain">提交</el-button>
</pl-content-box-toolbar>
</pl-affix>
</div>
</template>
<script>
import {MsgType} from 'core/constants';
export default {
data () {
return {
nextLoading: false,
type: 'add',
baseForm: {
applyId: '',
applyCode: '',
applyAmt: '',
applyDate: '',
applyState: '',
creditFin: '',
applicantName: '',
applicantPhone: '',
applicantTel: '',
remark: ''
}
};
},
methods: {
callback () {
this.$router.push({name: 'cfin.biz.my-registration'});
},
checkTel (rule, value, callback) {
if (!(/^((0\d{2,3})-)?(\d{7,8})(-(\d{3,4}))?$/.test(value))) {
callback(new Error('请输入正确的电话号码!'));
} else {
} callback();
},
checkPhone (rule, value, callback) {
if (!(/^1[34578]\d{9}$/.test(value))) {
callback(new Error('请输入正确的手机号码!'));
}
// else {
// this.$api.bsp.member.checkPhoneNo(this.form.userPhone, this.form.memId).then(ret => {
// if (ret) {
// callback(new Error('该手机号码已存在,请修改手机号码。'));
// } else {
// callback();
// }
// });
// }
},
submitAgain () {
console.log('提交');
this.$refs['baseForm'].validate((valid) => {
if (valid) {
console.log('通过');
if (this.type === 'add') {
this.$api.cfin.quota.saveApply(this.baseForm).then(ret => {
if (ret.type === MsgType.SUCCESS) {
this.$confirm(ret.msg, '提示', {
confirmButtonText: '确定',
type: ret.type
});
this.callback();
} else {
this.$confirm(ret.msg, '提示', {
confirmButtonText: '确定',
type: ret.type
});
}
});
} else {
this.$api.cfin.quota.againApply(this.baseForm).then(ret => {
if (ret.type === MsgType.SUCCESS) {
this.$confirm(ret.msg, '提示', {
confirmButtonText: '确定',
type: ret.type
});
this.callback();
} else {
this.$confirm(ret.msg, '提示', {
confirmButtonText: '确定',
type: ret.type
});
}
});
}
}
});
}
},
created () {
console.log(this.$route.params);
if (this.$route.params.applyId === undefined) {
this.type = 'add';
console.log('add');
this.$api.cfin.quota.getApplySequence().then(ret => {
this.baseForm.applyCode = ret.code;
});
} else {
this.type = 'edit';
let params = this.$route.params;
this.baseForm.applyId = params.applyId;
this.$api.cfin.quota.getCreditApply(params).then(ret => {
this.baseForm = ret;
this.baseForm.applicantPhone = Number(ret.applicantPhone);
});
}
this.$api.cfin.quota.getSystemDate().then(ret => {
this.baseForm.applyDate = ret;
});
}
}
;
</script>

点击保存按钮时,如果form里面的表单验证通过这进入下面代码中的 if(valid) 里面,否者进入else.

  //点击保存按钮
save () {
this.$refs['form'].validate((valid) => {
if (valid) {
console.log('验证通过') ;
this.resetFrom();
});
} else {
console.log('验证不通过') ;
return false;
}
});
},

PS:表单输入长度控制验证

name: [
{required: true, message: '请输入活动名称', trigger: 'blur'},
{min: 3, max: 5, message: '长度在 3 到 5 个字符', trigger: 'blur'}
],

vue 常用的表单验证,包括手机号码,固定电话和身份证...的更多相关文章

  1. vue validate多表单验证思考 之前写过一个里外层,现在觉得不合适,应该平行的写,然后都给ret,最后判断ret 再做出反应,这样整体表单的所有验证就都报验证,然后最后提交的时候把组件内的对象合并到总的对象,再提交

    vue validate多表单验证思考 之前写过一个里外层,现在觉得不合适,应该平行的写,然后都给ret,最后判断ret 再做出反应,这样整体表单的所有验证就都报验证,然后最后提交的时候把组件内的对象 ...

  2. vue+element 动态表单验证

    公司最近的项目有个添加动态表单的需求,总结一下我在表单验证上遇到的一些坑. 如图是功能的需求,这个功能挺好实现的,但是表单验证真是耗费了我一些功夫. vue+element在表单验证上有一些限制,必须 ...

  3. js 常用正则表达式表单验证代码

    正则表达式使用详解 简介 简单的说,正则表达式是一种可以用于模式匹配和替换的强有力的工具.其作用如下:测试字符串的某个模式.例如,可以对一个输入字符串进行测试,看在该字符串是否存在一个电话号码模式或一 ...

  4. js常用正则表达式表单验证代码

    方法一:  var re=/正则表达式/;  re.test($("txtid").val())  方法二:  $("txtid").val.match(/正则 ...

  5. vue elementui form表单验证

    最近我们公司将前端框架由easyui 改为 vue+elementui .自学vue两周 就开始了爬坑之路.业余时间给大家分享一下心得,技术新手加上第一次分享(小激动),有什么不足的地方欢迎大家指正, ...

  6. jQuery基础(常用插件 表单验证,图片放大镜,自定义对象级,jQuery UI,面板折叠)

    1.表单验证插件——validate   该插件自带包含必填.数字.URL在内容的验证规则,即时显示异常信息,此外,还允许自定义验证规则,插件调用方法如下:   $(form).validate({o ...

  7. inform表单验证,正则表达式,用户名,身份证,密码,验证码

    最近利用空闲时间写了部分表单验证,包括用户名,身份证,密码,验证码,仅为自己巩固最近所学的知识 表单的样式使用的是table布局,因为觉得DIV布局定位比较麻烦,table有三列,分别为基本信息,输入 ...

  8. js实现表单验证 常用JS表单验证

    CSS代码 @charset "gb2312"; /* CSS Document */ body,dl,dt,dd,div,form {padding:;margin:;} #he ...

  9. Vue中Form表单验证无法消除验证问题

    iView的表单api给出了一个resetFields方法,用于重置整个表单输入的内容并清除验证提示. 但是有时候需要只消除部分的iview的resetFields方法源码是这样的resetField ...

随机推荐

  1. vue Syntax Error: Unexpected token {

    > music@1.0.0 dev F:\music\music> node build/dev-server.js > Starting dev server...ERROR Fa ...

  2. 拦截器及 Spring MVC 整合

    一.实验介绍 1.1 实验内容 本节课程主要利用 Spring MVC 框架实现拦截器以及 Spring MVC 框架的整合. 1.2 实验知识点 Spring MVC 框架 拦截器 1.3 实验环境 ...

  3. Android自己定义ViewGroup打造各种风格的SlidingMenu

    看鸿洋大大的QQ5.0側滑菜单的视频课程,对于側滑的时的动画效果的实现有了新的认识,似乎打通了任督二脉.眼下能够实现随意效果的側滑菜单了.感谢鸿洋大大!! 鸿洋大大用的是HorizontalScrol ...

  4. 我的Android进阶之旅------&gt;怎样解决Android 5.0中出现的警告: Service Intent must be explicit:

    我的Android进阶之旅-->怎样解决Android 5.0中出现的警告: java.lang.IllegalArgumentException: Service Intent must be ...

  5. matplotlib简易新手教程及动画

    做数据分析,首先是要熟悉和理解数据.所以掌握一个趁手的可视化工具是很重要的,否则对数据连个主要的感性认识都没有,怎样进行下一步的design 点击打开链接 还有一个非常棒的资料  Matplotlib ...

  6. java开始到熟悉105-107

    1,HashMap基本用法 package list; import java.util.HashMap; import java.util.Map; /** * 测试map的基本用法 * @auth ...

  7. CentOS Linux搭建独立SVN Server全套流程(转)

    环境为centos6.3 1.首先 看看机器上安装了svn了没有 rpm -qa |grep svn 2.如果没有安装 执行 yum -y install subversion 3.安装好了之后 新建 ...

  8. 算法NB三人组

    #快速排序-除了python自带的sort排序模块之外就这个最好用,只需会这个就行,其他的排序了解就好,能用冒泡,插入..的都可以用快排快速实现 import random from timewrap ...

  9. git 下载与Linux源码安装最新版

    win: https://git-for-windows.github.io/ 或 https://git-scm.com/downloads   官网!   源码安装git Git 的工作需要调用  ...

  10. Linux 中权限控制实例

    前言 前文对 Linux 中的权限进行了较为透彻的分析.而本文,则在前文的基础上,具体说明如何在代码中进行权限控制. 下面的代码涉及到以下几个方面: 1. 创建文件时设置文件权限 2. 修改文件的默认 ...