self.vue 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346
  1. <template>
  2. <div class="self">
  3. <div class="enter-both">
  4. <div class="enter-title">
  5. <h4>
  6. <router-link to="/myself"><i class="iconfont icon-fanhui"></i></router-link>
  7. <span>个人认证</span>
  8. </h4>
  9. </div>
  10. <div class="both">
  11. <div class="content">
  12. <el-form :model="ruleForm" status-icon :rules="rules" ref="ruleForm" label-width="100px" class="demo-ruleForm">
  13. <div class="part" v-show="seen">
  14. <el-form-item label="姓名" prop="name">
  15. <el-input v-model="ruleForm.name" placeholder="请输入真实姓名"></el-input>
  16. </el-form-item>
  17. </div>
  18. <div class="part" v-show="seen">
  19. <el-form-item label="身份证号" prop="IDcard">
  20. <el-input v-model="ruleForm.IDcard" placeholder="请输入身份证号码"></el-input>
  21. </el-form-item>
  22. </div>
  23. <div class="part" v-show="seen">
  24. <el-form-item label="银行卡号" prop="bankcard">
  25. <el-input v-model="ruleForm.bankcard" placeholder="请输入银行卡号码"></el-input>
  26. </el-form-item>
  27. </div>
  28. <div class="part" v-show="seen">
  29. <el-form-item label="手机号码" prop="phone">
  30. <el-input v-model="ruleForm.phone" placeholder="请输入银行预留手机号码"></el-input>
  31. </el-form-item>
  32. </div>
  33. <div class="validation" v-show="seen">
  34. <el-form-item label="验证码" prop="number">
  35. <el-input v-model="ruleForm.number" placeholder="请输入验证码"></el-input>
  36. </el-form-item>
  37. <span class="send">获取验证码</span>
  38. </div>
  39. </el-form>
  40. <div class="success" v-show="!seen">
  41. <div class="picture">
  42. <div></div>
  43. </div>
  44. <p>{{ruleForm.name}}<br>{{phone}}</p>
  45. </div>
  46. </div>
  47. </div>
  48. <div class="button" v-show="seen" @click="submitForm('ruleForm')">提交</div>
  49. </div>
  50. </div>
  51. </div>
  52. </template>
  53. <script>
  54. export default{
  55. data(){
  56. var checkname = (rule, value, callback) => {
  57. let regular=/^[\u4e00-\u9fa5]+(·[\u4e00-\u9fa5]+)*$/;
  58. if (!value) {
  59. return callback(new Error(' '));/*请输入姓名*/
  60. }
  61. setTimeout(() => {
  62. if (!regular.test(value)) {
  63. callback(new Error(' '));/*输入不正确*/
  64. } else {
  65. callback();
  66. }
  67. }, 1000);
  68. };
  69. var checkIDcard = (rule, value, callback) => {
  70. let regular=/^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$|^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}([0-9]|X)$/;
  71. if (!value) {
  72. return callback(new Error(' '));/*请输入身份证号码*/
  73. }
  74. setTimeout(() => {
  75. if (!regular.test(value)) {
  76. callback(new Error(' '));/*输入不正确*/
  77. } else {
  78. callback();
  79. }
  80. }, 1000);
  81. };
  82. var checkbankcard = (rule, value, callback) => {
  83. let regular=/([\d]{4})([\d]{4})([\d]{4})([\d]{4})([\d]{0,})?/;
  84. if (!value) {
  85. return callback(new Error(' '));/*请输入银行卡号*/
  86. }
  87. setTimeout(() => {
  88. if (!regular.test(value)) {
  89. callback(new Error(' '));/*输入不正确*/
  90. } else {
  91. callback();
  92. }
  93. }, 1000);
  94. };
  95. var checkphone = (rule, value, callback) => {
  96. let regular=/^1[3|4|5|8][0-9]\d{4,8}$/;
  97. if (!value) {
  98. return callback(new Error(' '));/*请输入手机号码*/
  99. }
  100. setTimeout(() => {
  101. if (!regular.test(value)) {
  102. callback(new Error(' '));/*输入不正确*/
  103. } else {
  104. callback();
  105. }
  106. }, 1000);
  107. };
  108. var checknumber = (rule, value, callback) => {
  109. if (!value) {
  110. return callback(new Error(' '));/*请输入验证码*/
  111. }
  112. else{
  113. callback();
  114. }
  115. };
  116. return{
  117. objectT:{},
  118. seen:true,
  119. last:'',
  120. name:'',
  121. phone:'',
  122. place:"1********",
  123. regular:'',
  124. cerfirst:'',
  125. cersecond:'',
  126. certhree:'',
  127. cerfourth:'',
  128. ruleForm: {
  129. name: '',
  130. IDcard:'',
  131. bankcard:'',
  132. phone:'',
  133. number:'',
  134. },
  135. rules: {
  136. name: [
  137. { validator: checkname, trigger: 'blur' },
  138. ],
  139. IDcard: [
  140. { validator: checkIDcard, trigger: 'blur' },
  141. ],
  142. bankcard: [
  143. { validator: checkbankcard, trigger: 'blur' },
  144. ],
  145. phone: [
  146. { validator: checkphone, trigger: 'blur' },
  147. ],
  148. number: [
  149. { validator: checknumber, trigger: 'blur' },
  150. ],
  151. }
  152. }
  153. },
  154. methods:{
  155. verify(){
  156. this.seen=false;
  157. this.center=document.getElementsByTagName("input")[3].value;
  158. this.last=this.center.split("")[10];
  159. this.phone=this.phone.concat(this.place,this.last);
  160. },
  161. submitForm(formName) {
  162. this.$refs[formName].validate((valid) => {
  163. if (valid) {
  164. this.seen=false;
  165. this.center=this.ruleForm.phone;
  166. this.last=this.center.split("")[10];
  167. this.phone=this.phone.concat(this.place,this.last);
  168. } else {
  169. console.log('error submit!!');
  170. return false;
  171. }
  172. });
  173. }
  174. }
  175. }
  176. </script>
  177. <style>
  178. .self{
  179. .enter-both{
  180. width: 100%;
  181. .enter-title{
  182. height: 3.041667rem;
  183. background: #60c0ff;
  184. width: 100%;
  185. h4{
  186. text-align: center;
  187. color: #fff;
  188. font-size: 0.472222rem;
  189. padding: 0.541667rem 0;
  190. position: relative;
  191. .icon-fanhui{
  192. float: left;
  193. margin-left: 0.513889rem;
  194. color: #fff !important;
  195. }
  196. span{
  197. margin-left: -0.513889rem;
  198. }
  199. }
  200. }
  201. .both{
  202. width: 100%;
  203. padding: 0 0.3rem;
  204. .content{
  205. float: left;
  206. margin-top: -1.1111rem;
  207. width: 100%;
  208. background-color: #fff;
  209. border-radius: 10px;
  210. margin-bottom: 1.388889rem;
  211. box-shadow: 0px 3px 21px 5px rgba(96, 192, 255, 0.35);
  212. padding: 0 0.291667rem;
  213. .part{
  214. width: 100%;
  215. height: 1.311111rem;
  216. line-height: 1.311111rem;
  217. padding-left: 0.305556rem;
  218. border-bottom: 1px solid #e8eff5;
  219. .el-form-item.is-required .el-form-item__label::before{
  220. content:' ';
  221. margin: 0;
  222. }
  223. .el-form-item{
  224. margin: 0;
  225. clear: left;
  226. .el-form-item__label{
  227. color: #333;
  228. text-align: left;
  229. font-size: 0.388889rem;
  230. width: 2rem !important;
  231. }
  232. .el-form-item__content{
  233. height: 1.111111rem !important;
  234. margin-left:2.088889rem !important;
  235. .el-input__inner{
  236. margin-left: -0.5rem;
  237. height: 1.111111rem !important;
  238. border: 0;
  239. }
  240. }
  241. }
  242. }
  243. .part:nth-of-type(4){
  244. border: 0;
  245. }
  246. .validation{
  247. width: 100%;
  248. padding-left: 0.305556rem;
  249. margin-bottom: 1rem;
  250. .el-form-item{
  251. margin: 0;
  252. clear: left;
  253. .el-form-item__label{
  254. color: #333;
  255. text-align: left;
  256. font-size: 0.388889rem;
  257. width: 2rem !important;
  258. }
  259. .el-form-item__content{
  260. height: 1.111111rem !important;
  261. margin-left:2.088889rem !important;
  262. .el-input__inner{
  263. margin-left: -0.5rem;
  264. height: 1.111111rem !important;
  265. border: 0;
  266. width: 60%;
  267. }
  268. .el-input__suffix{
  269. right: 2.5rem;
  270. }
  271. }
  272. }
  273. .send{
  274. display: inline-block;
  275. padding: 0;
  276. margin: 0;
  277. width: 2.377778rem;
  278. height: 0.944444rem;
  279. line-height: 0.944444rem;
  280. text-align:center;
  281. font-size: 0.316667rem;
  282. border: 1px solid #60c0ff;
  283. border-radius: 34px;
  284. color: #60c0ff;
  285. float: right;
  286. margin-top: -1.15rem;
  287. }
  288. }
  289. .success{
  290. width: 100%;
  291. height: 14.722222rem;
  292. position: relative;
  293. padding-top: 3.916667rem;
  294. .picture{
  295. width: 2.777778rem;
  296. height: 2.777778rem;
  297. border-radius: 50%;
  298. background:url("../assets/img/drawable-mdpi/userimg.png");
  299. background-size: cover;
  300. margin: 0 auto;
  301. text-align: center;
  302. div{
  303. width: 1.152778rem;
  304. height: 1.402778rem;
  305. border-radius: 24% 24% 24% 100%;
  306. background-image: url("../assets/img/drawable-mdpi/self.png");
  307. background-position: -1.35rem -1.35rem;
  308. background: cover;
  309. float: left;
  310. margin-left: 2rem;
  311. margin-top: 2rem;
  312. }
  313. }
  314. p{
  315. clear: both;
  316. font-size: 0.5rem;
  317. line-height: 0.8rem;
  318. color: #1491e2;
  319. text-align: center;
  320. }
  321. }
  322. }
  323. }
  324. .button{
  325. clear: both;
  326. width: 9.166667rem;
  327. height: 1.111111rem;
  328. margin-left: 0.4rem;
  329. background-color: #60c0ff;
  330. box-shadow: 0px 3px 21px 5px rgba(96, 192, 255, 0.35);
  331. border-radius: 40px;
  332. line-height: 1.111111rem;
  333. color: #ffffff;
  334. text-align: center;
  335. }
  336. }
  337. }
  338. </style>