(window["webpackJsonp"] = window["webpackJsonp"] || []).push([["chunk-73a0f3fa"], { 1644: function(e, t, o) { }, "58fb": function(e, t, o) { }, "62de": function(e, t, o) { "use strict"; o("8ac4"); }, 7835: function(e, t, o) { "use strict"; o("1644"); }, 7972: function(e, t, o) { "use strict"; o("58fb"); }, "8ac4": function(e, t, o) { }, "8d00": function(e, t, o) { "use strict"; o("a321"); }, "9ed6": function(e, t, o) { "use strict"; o.r(t); var a = function() { var e2 = this, t2 = e2.$createElement, o2 = e2._self._c || t2; return o2("div", { staticStyle: { height: "100vh", width: "100vw", overflow: "hidden" } }, [o2("div", { staticClass: "login-container" }, [o2("div", { staticClass: "loginMain" }, [o2("el-form", { ref: "loginForm", staticClass: "login-form", attrs: { model: e2.loginForm, rules: e2.loginRules, "auto-complete": "on", "label-position": "left" } }, [o2("div", { staticClass: "title-container" }, [o2("h3", { staticClass: "title" }, [e2._v("云物业管理AI运营平台 ")])]), e2._v(" "), o2("div", [o2("el-tabs", { staticClass: "loginTabs", on: { "tab-click": e2.loginTypeChange }, model: { value: e2.activeName, callback: function(t3) { e2.activeName = t3; }, expression: "activeName" } }, [o2("el-tab-pane", { attrs: { label: "微信扫码", name: "byWechat" } }, [o2("div", { staticClass: "wechat-login-container" }, [o2("div", { staticClass: "qr-code-container" }, [e2.wechatQrCode && !e2.wechatQrCodeExpired ? o2("div", { staticClass: "qr-code-wrapper", on: { click: e2.refreshWechatQrCode } }, [o2("img", { staticClass: "qr-code-image", attrs: { src: e2.wechatQrCode, alt: "微信扫码登录" } }), e2._v(" "), o2("div", { staticClass: "qr-code-tip" }, [e2._v("请使用微信扫描二维码登录")]), e2._v(" "), o2("div", { staticClass: "qr-code-countdown" }, [o2("el-statistic", { attrs: { value: e2.wechatCountdownSeconds, title: "二维码剩余时间", precision: 0, suffix: "秒", "value-style": { color: e2.wechatCountdownSeconds <= 10 ? "#f56c6c" : "#409eff" } } })], 1), e2._v(" "), o2("div", { staticClass: "qr-code-refresh-tip" }, [e2._v("点击刷新二维码")])]) : e2.wechatQrCodeExpired ? o2("div", { staticClass: "qr-code-expired" }, [o2("i", { staticClass: "el-icon-warning-outline" }), e2._v(" "), o2("div", { staticClass: "qr-code-expired-tip" }, [e2._v("二维码已过期")]), e2._v(" "), o2("el-button", { staticClass: "refresh-btn", attrs: { type: "primary", size: "small" }, on: { click: e2.refreshWechatQrCode } }, [e2._v("\n 重新获取二维码\n ")])], 1) : o2("div", { staticClass: "qr-code-loading" }, [o2("i", { staticClass: "el-icon-loading" }), e2._v(" "), o2("div", [e2._v("正在生成二维码...")])])]), e2._v(" "), e2.wechatQrCodeExpired ? e2._e() : o2("div", { staticClass: "wechat-login-tip" }, [o2("i", { staticClass: "el-icon-mobile-phone" }), e2._v(" "), o2("span", [e2._v("请使用微信扫描上方二维码完成登录")])])])]), e2._v(" "), o2("el-tab-pane", { attrs: { label: "验证码", name: "byVerify" } }, [o2("el-form-item", { attrs: { prop: "username" } }, [o2("div", { staticClass: "itemSet" }, [o2("span", { staticClass: "svg-container" }, [o2("svg-icon", { attrs: { "icon-class": "mobile" } })], 1), e2._v(" "), o2("el-input", { ref: "username", attrs: { clearable: "", placeholder: "手机号码", name: "username", type: "text", autocomplete: "off" }, model: { value: e2.loginForm.username, callback: function(t3) { e2.$set(e2.loginForm, "username", t3); }, expression: "loginForm.username" } })], 1)]), e2._v(" "), o2("div", { staticClass: "verifyContent" }, [e2.verify ? o2("el-form-item", { attrs: { prop: "verifycode" } }, [o2("div", { staticClass: "itemSet" }, [o2("span", { staticClass: "svg-container" }, [o2("svg-icon", { attrs: { "icon-class": "verif" } })], 1), e2._v(" "), o2("el-input", { ref: "verifycode", attrs: { clearable: "", type: "text", maxlength: "4", placeholder: "验证码" }, nativeOn: { keyup: function(t3) { return !t3.type.indexOf("key") && e2._k(t3.keyCode, "enter", 13, t3.key, "Enter") ? null : e2.handleLogin(t3); } }, model: { value: e2.loginForm.verifycode, callback: function(t3) { e2.$set(e2.loginForm, "verifycode", t3); }, expression: "loginForm.verifycode" } })], 1)]) : e2._e(), e2._v(" "), o2("el-button", { directives: [{ name: "points", rawName: "v-points", value: 500, expression: "500" }], staticClass: "verifyBtn", attrs: { plain: "", disabled: e2.verifyIng }, on: { click: e2.getVerify } }, [e2._v(e2._s(e2.verifyTitle))])], 1), e2._v(" "), o2("div", { staticStyle: { "font-size": "12px", "margin-bottom": "22px" } }, [e2._v("\n *输入验证码进行登录,仅支持中国大陆手机号码\n ")])], 1), e2._v(" "), o2("el-tab-pane", { attrs: { label: "账号密码", name: "byPwd" } }, [o2("el-form-item", { attrs: { prop: "username" } }, [o2("div", { staticClass: "itemSet" }, [o2("span", { staticClass: "svg-container" }, [o2("svg-icon", { attrs: { "icon-class": "user2" } })], 1), e2._v(" "), o2("el-input", { ref: "username", attrs: { clearable: "", placeholder: e2.$t("login.username"), name: "username", type: "text", autocomplete: "off" }, model: { value: e2.loginForm.username, callback: function(t3) { e2.$set(e2.loginForm, "username", t3); }, expression: "loginForm.username" } })], 1)]), e2._v(" "), o2("el-form-item", { attrs: { prop: "password" } }, [o2("div", { staticClass: "itemSet" }, [o2("span", { staticClass: "svg-container" }, [o2("svg-icon", { attrs: { "icon-class": "lock2" } })], 1), e2._v(" "), o2("el-input", { key: e2.passwordType, ref: "password", attrs: { clearable: "", type: e2.passwordType, placeholder: e2.$t("login.password"), name: "password", autocomplete: "off" }, nativeOn: { keyup: function(t3) { return !t3.type.indexOf("key") && e2._k(t3.keyCode, "enter", 13, t3.key, "Enter") ? null : e2.handleLogin(t3); } }, model: { value: e2.loginForm.password, callback: function(t3) { e2.$set(e2.loginForm, "password", t3); }, expression: "loginForm.password" } }), e2._v(" "), o2("span", { staticClass: "show-pwd", on: { click: e2.showPwd } }, [o2("svg-icon", { attrs: { "icon-class": "password" === e2.passwordType ? "eye" : "eye-open" } })], 1)], 1)]), e2._v(" "), "byPwd" === e2.activeName ? o2("el-form-item", { staticClass: "captcha-form-item", attrs: { prop: "captchaCode" } }, [o2("div", { staticClass: "itemSet" }, [o2("span", { staticClass: "svg-container" }, [o2("svg-icon", { attrs: { "icon-class": "lock" } })], 1), e2._v(" "), o2("el-input", { ref: "captchaCode", staticStyle: { width: "60%" }, attrs: { placeholder: "请输入图形验证码", name: "captchaCode", type: "text", autocomplete: "off", maxlength: "4", clearable: "" }, nativeOn: { keyup: function(t3) { return !t3.type.indexOf("key") && e2._k(t3.keyCode, "enter", 13, t3.key, "Enter") ? null : e2.handleLogin(t3); } }, model: { value: e2.loginForm.captchaCode, callback: function(t3) { e2.$set(e2.loginForm, "captchaCode", t3); }, expression: "loginForm.captchaCode" } }), e2._v(" "), o2("div", { staticClass: "captcha-container", on: { click: e2.refreshCaptcha } }, [e2.captchaImage ? o2("img", { staticClass: "captcha-image", attrs: { src: e2.captchaImage, alt: "验证码" } }) : o2("div", { staticClass: "captcha-placeholder" }, [e2._v("\n 点击获取验证码\n ")])])], 1), e2._v(" "), o2("div", { staticClass: "captcha-tip" }, [e2._v("验证码不区分大小写")])]) : e2._e(), e2._v(" "), o2("div", { staticStyle: { "text-align": "right", "margin-bottom": "15px" } }, [o2("el-button", { attrs: { type: "text" }, on: { click: function(t3) { e2.changePasswordShow = true; } } }, [e2._v("忘记密码")])], 1)], 1)], 1)], 1), e2._v(" "), o2("el-button", { directives: [{ name: "points", rawName: "v-points", value: 500, expression: "500" }], staticClass: "loginBtn", attrs: { loading: e2.loading, size: "medium" }, nativeOn: { click: function(t3) { return t3.preventDefault(), e2.handleLogin(t3); } } }, [e2._v("\n " + e2._s(e2.$t("login.logIn")) + "\n ")])], 1)], 1), e2._v(" "), o2("div", { staticClass: "CopyRight" }, [e2._v("Power by Community Cloud Technology")]), e2._v(" "), o2("el-dialog", { attrs: { "custom-class": "r2Dialog", title: "选择角色", visible: e2.selectRolesDialog, "close-on-click-modal": false, width: "560px" }, on: { "update:visible": function(t3) { e2.selectRolesDialog = t3; } } }, [o2("div", { staticClass: "roleWrap" }, [o2("div", { directives: [{ name: "show", rawName: "v-show", value: e2.roleDivShow, expression: "roleDivShow" }], staticClass: "roleDiv el-icon-warning" }, [e2._v("\n 请选择所在的公司及岗位角色\n ")]), e2._v(" "), o2("ul", { staticClass: "roleTree" }, e2._l(e2.roleList, (function(t3) { return o2("li", { key: t3.id }, [o2("span", [e2._v(e2._s(t3[0].orgName))]), e2._v(" "), e2._l(t3, (function(t4, a2) { return o2("ul", { key: a2, staticClass: "roleTreeChild" }, [o2("li", { on: { click: function(o3) { return e2.handleSelectedRole(t4); } } }, [o2("span", { class: { checkColor: t4.id === e2.selectRole.id } }, [e2._v(e2._s(t4.roleName))]), e2._v(" "), o2("span", { directives: [{ name: "show", rawName: "v-show", value: t4.id === e2.selectRole.id, expression: "childItem.id === selectRole.id" }] }, [o2("i", { staticClass: "checkColor el-icon-check" })])])]); }))], 2); })), 0), e2._v(" "), o2("div", { staticClass: "btnWrap" }, [o2("el-button", { directives: [{ name: "points", rawName: "v-points", value: 500, expression: "500" }], staticClass: "commitDialogBtn", attrs: { disabled: e2.btnDisabled }, on: { click: function(t3) { return e2.submiLogInInfo(); } } }, [e2._v("确定")])], 1)])]), e2._v(" "), o2("Forget", { attrs: { show: e2.forgetShow }, on: { callClose: function(t3) { e2.forgetShow = false; } } }), e2._v(" "), o2("ChangePassword", { attrs: { show: e2.changePasswordShow }, on: { callClose: function(t3) { e2.changePasswordShow = false; } } })], 1), e2._v(" "), o2("el-dialog", { staticClass: "change-password-dialog", attrs: { title: "密码过于简单,请及时修改密码,有利于账号安全", visible: e2.showChangePasswordDialog, "close-on-click-modal": false, "close-on-press-escape": false, "show-close": false, width: "500px", center: "" }, on: { "update:visible": function(t3) { e2.showChangePasswordDialog = t3; } } }, [o2("el-form", { ref: "changePasswordForm", attrs: { model: e2.changePasswordForm, rules: e2.changePasswordRules, "label-width": "100px" } }, [o2("el-form-item", { attrs: { label: "手机号", prop: "mobile" } }, [o2("el-input", { attrs: { type: "text", clearable: "", placeholder: "请输入手机号", autocomplete: "off", name: "force-change-password-mobile" }, model: { value: e2.changePasswordForm.mobile, callback: function(t3) { e2.$set(e2.changePasswordForm, "mobile", t3); }, expression: "changePasswordForm.mobile" } })], 1), e2._v(" "), o2("el-form-item", { attrs: { label: "验证码", prop: "smscode" } }, [o2("div", { staticClass: "code-btn" }, [o2("el-input", { attrs: { type: "text", maxlength: "4", clearable: "", placeholder: "请输入验证码", autocomplete: "off", name: "force-change-password-smscode" }, model: { value: e2.changePasswordForm.smscode, callback: function(t3) { e2.$set(e2.changePasswordForm, "smscode", t3); }, expression: "changePasswordForm.smscode" } }), e2._v(" "), o2("el-button", { attrs: { type: "primary", disabled: e2.changePasswordVerifyIng }, on: { click: e2.getChangePasswordVerify } }, [e2._v("\n " + e2._s(e2.changePasswordVerifyTitle) + "\n ")])], 1)]), e2._v(" "), o2("el-form-item", { staticClass: "password-form-item", attrs: { label: "新密码", required: "", prop: "newPassword" } }, [o2("div", { staticClass: "password-input-wrapper" }, [o2("el-input", { attrs: { type: "password", clearable: "", placeholder: "请输入新密码", "show-password": "", autocomplete: "new-password", name: "force-change-password-new" }, model: { value: e2.changePasswordForm.newPassword, callback: function(t3) { e2.$set(e2.changePasswordForm, "newPassword", t3); }, expression: "changePasswordForm.newPassword" } }), e2._v(" "), o2("el-tooltip", { attrs: { placement: "top" } }, [o2("div", { attrs: { slot: "content" }, slot: "content" }, [o2("div", [e2._v("密码复杂度要求:")]), e2._v(" "), o2("div", [e2._v("• 至少8位字符")]), e2._v(" "), o2("div", [e2._v("• 包含大写字母 (A-Z)")]), e2._v(" "), o2("div", [e2._v("• 包含小写字母 (a-z)")]), e2._v(" "), o2("div", [e2._v("• 包含数字 (0-9)")]), e2._v(" "), o2("div", [e2._v("• 包含特殊字符 (!@#$%^&*等)")])]), e2._v(" "), o2("span", { staticClass: "password-tip-icon" }, [o2("i", { staticClass: "el-icon-question itemcursor" })])])], 1)]), e2._v(" "), o2("el-form-item", { attrs: { label: "确认密码", prop: "confirmNewPassword" } }, [o2("el-input", { attrs: { type: "password", clearable: "", placeholder: "请确认密码", "show-password": "", autocomplete: "new-password", name: "force-change-password-confirm" }, model: { value: e2.changePasswordForm.confirmNewPassword, callback: function(t3) { e2.$set(e2.changePasswordForm, "confirmNewPassword", t3); }, expression: "changePasswordForm.confirmNewPassword" } })], 1)], 1), e2._v(" "), o2("div", { staticClass: "change-password-info" }, [o2("i", { staticClass: "el-icon-info" }), e2._v("\n 修改密码需要验证手机号,验证通过后可设置新密码!\n ")]), e2._v(" "), o2("div", { staticClass: "dialog-footer", attrs: { slot: "footer" }, slot: "footer" }, [o2("el-button", { attrs: { loading: e2.changePasswordLoading, type: "primary" }, on: { click: e2.handleChangePassword } }, [e2._v("\n 确认修改\n ")])], 1)], 1), e2._v(" "), o2("el-dialog", { staticClass: "wechat-bind-dialog", attrs: { title: "首次扫码登录需绑定账号密码", visible: e2.wechatBindDialog, "close-on-click-modal": false, "close-on-press-escape": false, "show-close": false, width: "40%", center: "" } }, [o2("el-form", { ref: "wechatBindForm", attrs: { model: e2.wechatBindForm, rules: e2.loginRules, "label-width": "100px" } }, [o2("el-form-item", { attrs: { label: "手机号", prop: "username" } }, [o2("el-input", { attrs: { type: "text", clearable: "", placeholder: "请输入手机号", autocomplete: "off", name: "wechat-bind-username" }, model: { value: e2.wechatBindForm.username, callback: function(t3) { e2.$set(e2.wechatBindForm, "username", t3); }, expression: "wechatBindForm.username" } })], 1), e2._v(" "), o2("el-form-item", { attrs: { label: "密码", prop: "password" } }, [o2("el-input", { attrs: { type: "password", clearable: "", placeholder: "请输入密码", "show-password": "", autocomplete: "new-password", name: "wechat-bind-password" }, model: { value: e2.wechatBindForm.password, callback: function(t3) { e2.$set(e2.wechatBindForm, "password", t3); }, expression: "wechatBindForm.password" } })], 1), e2._v(" "), o2("el-form-item", { attrs: { label: "验证码", prop: "captchaCode" } }, [o2("div", { staticClass: "code-btn" }, [o2("el-input", { staticStyle: { width: "60%" }, attrs: { type: "text", maxlength: "4", clearable: "", placeholder: "请输入图形验证码", autocomplete: "off", name: "wechat-bind-captcha" }, model: { value: e2.wechatBindForm.captchaCode, callback: function(t3) { e2.$set(e2.wechatBindForm, "captchaCode", t3); }, expression: "wechatBindForm.captchaCode" } }), e2._v(" "), o2("div", { staticClass: "captcha-container", on: { click: e2.refreshWechatBindCaptcha } }, [e2.wechatBindCaptchaImage ? o2("img", { staticClass: "captcha-image", attrs: { src: e2.wechatBindCaptchaImage, alt: "验证码" } }) : o2("div", { staticClass: "captcha-placeholder" }, [e2._v("点击获取验证码")])])], 1), e2._v(" "), o2("div", { staticClass: "captcha-tip" }, [e2._v("验证码不区分大小写")])])], 1), e2._v(" "), o2("div", { staticClass: "wechat-bind-info" }, [o2("i", { staticClass: "el-icon-info" }), e2._v("\n 首次使用微信扫码登录需要绑定您的账号密码,绑定后可直接使用微信扫码登录!\n ")]), e2._v(" "), o2("div", { staticClass: "dialog-footer", attrs: { slot: "footer" }, slot: "footer" }, [o2("el-button", { attrs: { loading: e2.wechatBindLoading, type: "primary" }, on: { click: e2.handleWechatBindLogin } }, [e2._v("\n 确认绑定\n ")])], 1)], 1)], 1); }, s = [], n = o("1131"), i = function() { var e2 = this, t2 = e2.$createElement, o2 = e2._self._c || t2; return o2("div", [o2("el-dialog", { attrs: { title: "忘记密码", visible: e2.show, "close-on-click-modal": false, width: "25%", "before-close": e2.handleClose }, on: { "update:visible": function(t3) { e2.show = t3; } } }, [o2("el-form", { ref: "form", attrs: { model: e2.form, rules: e2.rules, "label-width": "110px" } }, [o2("el-form-item", { attrs: { label: "账号/手机号", prop: "mobile" } }, [o2("el-input", { attrs: { type: "text", clearable: "", placeholder: "账号/手机号", autocomplete: "off", name: "forget-password-mobile" }, model: { value: e2.form.mobile, callback: function(t3) { e2.$set(e2.form, "mobile", t3); }, expression: "form.mobile" } })], 1), e2._v(" "), o2("el-form-item", { attrs: { label: "验证码", prop: "smscode" } }, [o2("div", { staticClass: "code-btn" }, [o2("el-input", { attrs: { placeholder: "短息验证码", type: "text", maxlength: "4", clearable: "", autocomplete: "off", name: "forget-password-smscode" }, model: { value: e2.form.smscode, callback: function(t3) { e2.$set(e2.form, "smscode", t3); }, expression: "form.smscode" } }), e2._v(" "), o2("el-button", { attrs: { type: "primary", disabled: e2.verifyIng }, on: { click: e2.getVerify } }, [e2._v(e2._s(e2.verifyTitle))])], 1)]), e2._v(" "), o2("el-form-item", [o2("el-button", { directives: [{ name: "points", rawName: "v-points", value: 500, expression: "500" }], attrs: { type: "primary" }, on: { click: e2.submitForm } }, [e2._v("确认提交")])], 1)], 1), e2._v(" "), o2("div", { staticClass: "forget-info" }, [o2("i", { staticClass: "el-icon-info" }), e2._v(" 忘记密码验证通过后将重置密码,重置后的密码为手机号后6位!\n ")])], 1)], 1); }, r = [], c = o("21bf"), l = { props: { show: { type: Boolean, default: false } }, data: function() { var e2 = function(e3, t3, o2) { "" === t3 ? o2(new Error("请输入短信验证码")) : o2(); }, t2 = function(e3, t3, o2) { var a2 = /^(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\d{8}$/; "" === t3 ? o2(new Error("请输入账号(手机号)")) : a2.test(t3) ? o2() : o2(new Error("账号(手机号)输入有误")); }; return { timer: null, count: "", verifyTitle: "获取验证码", verifyIng: false, savekey: "", form: { mobile: "", smscode: "" }, rules: { mobile: [{ required: true, validator: t2, trigger: "blur" }], smscode: [{ required: true, validator: e2, trigger: "blur" }] } }; }, watch: { show: function(e2) { var t2 = this; e2 && this.$nextTick((function() { t2.form = { mobile: "", smscode: "" }; })); } }, mounted: function() { }, methods: { getVerify: function() { var e2 = this, t2 = /^(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\d{8}$/; if (!this.form.mobile) return this.$message("请输入账号/手机号"), false; if (!t2.test(this.form.mobile)) return this.$message("账号/手机号输入有误"), false; var o2 = "code".concat(Date.now()).concat(this.form.mobile), a2 = { key: o2, mobile: this.form.mobile, type: 1 }; Object(c["b"])(a2).then((function(t3) { 0 == t3.code && (e2.$message({ message: "短信发送成功,请查看!", type: "success" }), e2.savekey = o2, e2.codeTime()); })); }, codeTime: function() { var e2 = this, t2 = 60; this.count = t2, this.verifyIng = true, this.verifyTitle = "".concat(this.count, "秒后再次获取"), this.timer || (this.timer = setInterval((function() { e2.count > 1 && e2.count <= t2 ? (e2.count--, e2.verifyTitle = "".concat(e2.count, "秒后再次获取")) : (e2.verifyIng = false, clearInterval(e2.timer), e2.timer = null, e2.verifyTitle = "获取验证码"); }), 1e3)); }, submitForm: function() { var e2 = this; this.$refs.form.validate((function(t2) { if (t2) { e2.form.mobile; var o2 = { mobile: e2.form.mobile, smscode: e2.form.smscode, newPassword: e2.getLastSixChars(e2.form.mobile), key: e2.savekey }; Object(c["j"])(o2).then((function(t3) { e2.$message({ type: "success", message: "密码重置成功" }), e2.handleClose(); })); } })); }, getLastSixChars: function(e2) { return e2.slice(-6); }, handleClose: function() { this.$refs["form"].resetFields(), this.verifyIng = false, clearInterval(this.timer), this.timer = null, this.verifyTitle = "获取验证码", this.$emit("callClose"); } } }, d = l, h = (o("62de"), o("829d")), m = Object(h["a"])(d, i, r, false, null, "122c312d", null), u = m.exports, f = function() { var e2 = this, t2 = e2.$createElement, o2 = e2._self._c || t2; return o2("div", [o2("el-dialog", { attrs: { title: "修改密码", visible: e2.show, "close-on-click-modal": false, width: "30%", "before-close": e2.handleClose }, on: { "update:visible": function(t3) { e2.show = t3; } } }, [o2("el-form", { ref: "form", attrs: { model: e2.form, rules: e2.rules, "label-width": "100px" } }, [o2("el-form-item", { attrs: { label: "手机号", prop: "mobile" } }, [o2("el-input", { attrs: { type: "text", clearable: "", placeholder: "请输入手机号", autocomplete: "off", name: "change-password-mobile" }, model: { value: e2.form.mobile, callback: function(t3) { e2.$set(e2.form, "mobile", t3); }, expression: "form.mobile" } })], 1), e2._v(" "), o2("el-form-item", { attrs: { label: "验证码", prop: "smscode" } }, [o2("div", { staticClass: "code-btn" }, [o2("el-input", { attrs: { type: "text", maxlength: "4", clearable: "", placeholder: "请输入验证码", autocomplete: "off", name: "change-password-smscode" }, model: { value: e2.form.smscode, callback: function(t3) { e2.$set(e2.form, "smscode", t3); }, expression: "form.smscode" } }), e2._v(" "), o2("el-button", { attrs: { type: "primary", disabled: e2.verifyIng }, on: { click: e2.getVerify } }, [e2._v(e2._s(e2.verifyTitle))])], 1)]), e2._v(" "), o2("el-form-item", { attrs: { label: "新密码", prop: "newPassword" } }, [o2("div", { staticClass: "password-input-row" }, [o2("el-input", { attrs: { type: "password", clearable: "", placeholder: "请输入新密码", "show-password": "", autocomplete: "new-password", name: "change-password-new" }, model: { value: e2.form.newPassword, callback: function(t3) { e2.$set(e2.form, "newPassword", t3); }, expression: "form.newPassword" } }), e2._v(" "), o2("el-tooltip", { attrs: { placement: "top" } }, [o2("div", { attrs: { slot: "content" }, slot: "content" }, [o2("div", [o2("div", [e2._v("密码复杂度要求:")]), e2._v(" "), o2("div", [e2._v("• 至少8位字符")]), e2._v(" "), o2("div", [e2._v("• 包含大写字母 (A-Z)")]), e2._v(" "), o2("div", [e2._v("• 包含小写字母 (a-z)")]), e2._v(" "), o2("div", [e2._v("• 包含数字 (0-9)")]), e2._v(" "), o2("div", [e2._v("• 包含特殊字符 (!@#$%^&*等)")])])]), e2._v(" "), o2("span", [o2("i", { staticClass: "el-icon-question itemcursor" })])])], 1)]), e2._v(" "), o2("el-form-item", { attrs: { label: "确认密码", prop: "confirmNewPassword" } }, [o2("el-input", { attrs: { type: "password", clearable: "", placeholder: "请确认密码", "show-password": "", autocomplete: "new-password", name: "change-password-confirm" }, model: { value: e2.form.confirmNewPassword, callback: function(t3) { e2.$set(e2.form, "confirmNewPassword", t3); }, expression: "form.confirmNewPassword" } })], 1), e2._v(" "), o2("el-form-item", [o2("el-button", { directives: [{ name: "points", rawName: "v-points", value: 500, expression: "500" }], attrs: { type: "primary" }, on: { click: e2.submitForm } }, [e2._v("确认修改")])], 1)], 1), e2._v(" "), o2("div", { staticClass: "change-password-info" }, [o2("i", { staticClass: "el-icon-info" }), e2._v("\n 修改密码需要验证手机号,验证通过后可设置新密码!\n ")])], 1)], 1); }, g = [], p = { props: { show: { type: Boolean, default: false } }, data: function() { var e2 = this, t2 = function(e3, t3, o3) { var a3 = /^(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\d{8}$/; "" === t3 ? o3(new Error("请输入手机号")) : a3.test(t3) ? o3() : o3(new Error("手机号格式不正确")); }, o2 = function(e3, t3, o3) { "" === t3 ? o3(new Error("请输入验证码")) : o3(); }, a2 = function(e3, t3, o3) { "" === t3 ? o3(new Error("请输入新密码")) : t3.length < 8 ? o3(new Error("密码长度至少8位")) : /(?=.*[a-z])/.test(t3) ? /(?=.*[A-Z])/.test(t3) ? /(?=.*\d)/.test(t3) ? /(?=.*[!@#$%^&*()_+\-=\[\]{};':"\\|,.<>\/?])/.test(t3) ? o3() : o3(new Error("密码必须包含特殊字符")) : o3(new Error("密码必须包含数字")) : o3(new Error("密码必须包含大写字母")) : o3(new Error("密码必须包含小写字母")); }, s2 = function(t3, o3, a3) { "" === o3 ? a3(new Error("请再次输入密码")) : o3 !== e2.form.newPassword ? a3(new Error("两次输入密码不一致!")) : o3.length < 8 ? a3(new Error("密码长度至少8位")) : /(?=.*[a-z])/.test(o3) ? /(?=.*[A-Z])/.test(o3) ? /(?=.*\d)/.test(o3) ? /(?=.*[!@#$%^&*()_+\-=\[\]{};':"\\|,.<>\/?])/.test(o3) ? a3() : a3(new Error("密码必须包含特殊字符")) : a3(new Error("密码必须包含数字")) : a3(new Error("密码必须包含大写字母")) : a3(new Error("密码必须包含小写字母")); }; return { timer: null, count: "", verifyTitle: "获取验证码", verifyIng: false, savekey: "", form: { mobile: "", newPassword: "", confirmNewPassword: "", smscode: "" }, rules: { mobile: [{ required: true, validator: t2, trigger: "blur" }], smscode: [{ validator: o2, trigger: "blur" }], newPassword: [{ validator: a2, trigger: "blur" }], confirmNewPassword: [{ validator: s2, trigger: "blur" }] } }; }, watch: { show: function(e2) { var t2 = this; e2 && this.$nextTick((function() { t2.form = { mobile: "", newPassword: "", confirmNewPassword: "", smscode: "" }; })); } }, methods: { maskPhoneNumber: function(e2) { return e2 ? e2.replace(/(\d{3})\d{4}(\d{4})/, "$1****$2") : ""; }, getVerify: function() { var e2 = this; if (this.form.mobile) { var t2 = "code".concat(Date.now()).concat(this.form.mobile), o2 = { key: t2, mobile: this.form.mobile, type: 1 }; Object(c["b"])(o2).then((function(o3) { 0 == o3.code && (e2.$message({ message: "短信发送成功,请查看!", type: "success" }), e2.savekey = t2, e2.codeTime()); })); } else this.$message({ message: "请先输入手机号", type: "error" }); }, codeTime: function() { var e2 = this, t2 = 60; this.count = t2, this.verifyIng = true, this.verifyTitle = "".concat(this.count, "秒后再次获取"), this.timer || (this.timer = setInterval((function() { e2.count > 1 && e2.count <= t2 ? (e2.count--, e2.verifyTitle = "".concat(e2.count, "秒后再次获取")) : (e2.verifyIng = false, clearInterval(e2.timer), e2.timer = null, e2.verifyTitle = "获取验证码"); }), 1e3)); }, submitForm: function() { var e2 = this; this.$refs.form.validate((function(t2) { if (t2) { var o2 = { mobile: e2.form.mobile, smscode: e2.form.smscode, newPassword: e2.form.confirmNewPassword, key: e2.savekey }; Object(c["j"])(o2).then((function(t3) { e2.$message({ type: "success", message: "密码修改成功!" }), e2.handleClose(); })); } })); }, psdSafety: function() { this.$alert('\n
密码复杂度要求:
\n安全建议:
\n