cuikaidong
2025-08-08 c495c1ae53473d54af136ea00da84bf51c50d521
1
(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-42bce7aa"],{"1dae":function(e,t,s){"use strict";s.r(t);var a=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"main user-layout-register"},[e._m(0),s("a-form-model",{ref:"form",attrs:{model:e.model,rules:e.validatorRules}},[s("a-form-model-item",{attrs:{prop:"username"}},[s("a-input",{attrs:{size:"large",type:"text",autocomplete:"false",placeholder:"请输入用户名"},model:{value:e.model.username,callback:function(t){e.$set(e.model,"username",t)},expression:"model.username"}})],1),s("a-popover",{attrs:{placement:"rightTop",trigger:"click",visible:e.state.passwordLevelChecked}},[s("template",{slot:"content"},[s("div",{style:{width:"240px"}},[s("div",{class:["user-register",e.passwordLevelClass]},[e._v("强度:"),s("span",[e._v(e._s(e.passwordLevelName))])]),s("a-progress",{attrs:{percent:e.state.percent,showInfo:!1,strokeColor:e.passwordLevelColor}}),s("div",{staticStyle:{"margin-top":"10px"}},[s("span",[e._v("请至少输入 8 个字符。请不要使用容易被猜到的密码。")])])],1)]),s("a-form-model-item",{attrs:{prop:"password"}},[s("a-input",{attrs:{size:"large",type:"password",autocomplete:"false",placeholder:"至少8位密码,区分大小写"},on:{click:e.handlePasswordInputClick},model:{value:e.model.password,callback:function(t){e.$set(e.model,"password",t)},expression:"model.password"}})],1)],2),s("a-form-model-item",{attrs:{prop:"password2"}},[s("a-input",{attrs:{size:"large",type:"password",autocomplete:"false",placeholder:"确认密码"},model:{value:e.model.password2,callback:function(t){e.$set(e.model,"password2",t)},expression:"model.password2"}})],1),s("a-form-model-item",{attrs:{prop:"mobile"}},[s("a-input",{attrs:{size:"large",placeholder:"11 位手机号"},model:{value:e.model.mobile,callback:function(t){e.$set(e.model,"mobile",t)},expression:"model.mobile"}},[s("a-select",{attrs:{slot:"addonBefore",size:"large",defaultValue:"+86"},slot:"addonBefore"},[s("a-select-option",{attrs:{value:"+86"}},[e._v("+86")]),s("a-select-option",{attrs:{value:"+87"}},[e._v("+87")])],1)],1)],1),s("a-row",{attrs:{gutter:16}},[s("a-col",{staticClass:"gutter-row",attrs:{span:16}},[s("a-form-model-item",{attrs:{prop:"captcha"}},[s("a-input",{attrs:{size:"large",type:"text",placeholder:"验证码"},model:{value:e.model.captcha,callback:function(t){e.$set(e.model,"captcha",t)},expression:"model.captcha"}},[s("a-icon",{style:{color:"rgba(0,0,0,.25)"},attrs:{slot:"prefix",type:"mail"},slot:"prefix"})],1)],1)],1),s("a-col",{staticClass:"gutter-row",attrs:{span:8}},[s("a-button",{staticClass:"getCaptcha",attrs:{size:"large",disabled:e.state.smsSendBtn},domProps:{textContent:e._s(e.state.smsSendBtn?e.state.time+" s":"获取验证码")},on:{click:function(t){return t.stopPropagation(),t.preventDefault(),e.getCaptcha(t)}}})],1)],1),s("a-form-model-item",[s("a-button",{staticClass:"register-button",attrs:{size:"large",type:"primary",htmlType:"submit",loading:e.registerBtn,disabled:e.registerBtn},on:{click:function(t){return t.stopPropagation(),t.preventDefault(),e.handleSubmit(t)}}},[e._v("注册\n      ")]),s("router-link",{staticClass:"login",attrs:{to:{name:"login"}}},[e._v("使用已有账户登录")])],1)],1)],1)},r=[function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("h3",[s("span",[e._v("注册")])])}],o=s("ac0d"),n=(s("7ded"),s("0fea")),i=s("4ec3");function l(e,t){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),s.push.apply(s,a)}return s}function c(e){for(var t=1;t<arguments.length;t++){var s=null!=arguments[t]?arguments[t]:{};t%2?l(Object(s),!0).forEach((function(t){d(e,t,s[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(s)):l(Object(s)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(s,t))}))}return e}function d(e,t,s){return t in e?Object.defineProperty(e,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[t]=s,e}var p={0:"低",1:"低",2:"中",3:"强"},u={0:"error",1:"error",2:"warning",3:"success"},m={0:"#ff0000",1:"#ff0000",2:"#ff7e05",3:"#52c41a"},f={name:"Register",components:{},mixins:[o["b"]],data:function(){return{model:{},validatorRules:{username:[{required:!1},{validator:this.checkUsername}],password:[{required:!1},{validator:this.handlePasswordLevel}],password2:[{required:!1},{validator:this.handlePasswordCheck}],mobile:[{required:!1},{validator:this.handlePhoneCheck}],captcha:[{required:!1},{validator:this.handleCaptchaCheck}]},state:{time:60,smsSendBtn:!1,passwordLevel:0,passwordLevelChecked:!1,percent:10,progressColor:"#FF0000"},registerBtn:!1}},computed:{passwordLevelClass:function(){return u[this.state.passwordLevel]},passwordLevelName:function(){return p[this.state.passwordLevel]},passwordLevelColor:function(){return m[this.state.passwordLevel]}},methods:{checkUsername:function(e,t,s){if(t){var a={username:t};Object(i["i"])(a).then((function(e){e.success?s():s("用户名已存在!")}))}else s(new Error("请输入用户名"))},handleEmailCheck:function(e,t,s){var a={email:t};Object(i["i"])(a).then((function(e){e.success?s():s("邮箱已存在!")}))},handlePasswordLevel:function(e,t,s){var a=0,r=/^(?=.*[a-zA-Z])(?=.*\d)(?=.*[~!@#$%^&*()_+`\-={}:";'<>?,./]).{8,}$/;r.test(t)||s(new Error("密码由8位数字、大小写字母和特殊符号组成!")),/[0-9]/.test(t)&&a++,/[a-zA-Z]/.test(t)&&a++,/[^0-9a-zA-Z_]/.test(t)&&a++,this.state.passwordLevel=a,this.state.percent=30*a,a>=2?(a>=3&&(this.state.percent=100),s()):(0===a&&(this.state.percent=10),s(new Error("密码强度不够")))},handlePasswordCheck:function(e,t,s){var a=this.model["password"];void 0===t&&s(new Error("请输入密码")),t&&a&&t.trim()!==a.trim()&&s(new Error("两次密码不一致")),s()},handleCaptchaCheck:function(e,t,s){t?s():s(new Error("请输入验证码"))},handlePhoneCheck:function(e,t,s){var a=/^1[3456789]\d{9}$/;if(a.test(t)){var r={phone:t};Object(i["i"])(r).then((function(e){e.success?s():s("手机号已存在!")}))}else s(new Error("请输入正确手机号"))},handlePasswordInputClick:function(){this.isMobile()?this.state.passwordLevelChecked=!1:this.state.passwordLevelChecked=!0},handleSubmit:function(){var e=this;this.$refs["form"].validate((function(t){if(1==t){var s=e.model,a={username:s.username,password:s.password,phone:s.mobile,smscode:s.captcha};Object(n["i"])("/sys/user/register",a).then((function(t){t.success?e.$router.push({name:"registerResult",params:c({},s)}):e.registerFailed(t.message)}))}}))},getCaptcha:function(e){var t=this;e.preventDefault();var s=this;this.$refs["form"].validateField(["mobile"],(function(e){if(!e){t.state.smsSendBtn=!0;var a=window.setInterval((function(){s.state.time--<=0&&(s.state.time=60,s.state.smsSendBtn=!1,window.clearInterval(a))}),1e3),r=t.$message.loading("验证码发送中..",3),o={mobile:t.model.mobile,smsmode:"1"};Object(n["i"])("/sys/sms",o).then((function(e){e.success||(t.registerFailed(e.message),setTimeout(r,0)),setTimeout(r,500)})).catch((function(e){setTimeout(r,1),clearInterval(a),s.state.time=60,s.state.smsSendBtn=!1,t.requestFailed(e)}))}}))},registerFailed:function(e){this.$notification["error"]({message:"注册失败",description:e,duration:2})},requestFailed:function(e){this.$notification["error"]({message:"错误",description:((e.response||{}).data||{}).message||"请求出现错误,请稍后再试",duration:4}),this.registerBtn=!1}},watch:{"state.passwordLevel":function(e){}}},h=f,v=(s("7afd"),s("bd23"),s("2877")),w=Object(v["a"])(h,a,r,!1,null,"69c333d7",null);t["default"]=w.exports},"269f":function(e,t,s){},"7afd":function(e,t,s){"use strict";var a=s("e257"),r=s.n(a);r.a},bd23:function(e,t,s){"use strict";var a=s("269f"),r=s.n(a);r.a},e257:function(e,t,s){}}]);