From d6ad74cbb51a725e5a279b7eaf6e823135543daf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=BE=99=E8=BF=90=E6=A8=A1?= <1724894114@qq.com> Date: Thu, 11 Jul 2024 23:36:25 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E9=82=AE=E7=AE=B1=E6=B3=A8?= =?UTF-8?q?=E5=86=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/model/user.js | 14 ++++ src/layout/index.vue | 4 +- src/router/systemRouter.js | 7 ++ src/utils/request.js | 2 +- src/views/login/activate.vue | 66 +++++++++++++++ src/views/login/userRegister.vue | 136 ++++++++++++++++++------------- 6 files changed, 168 insertions(+), 61 deletions(-) create mode 100644 src/views/login/activate.vue diff --git a/src/api/model/user.js b/src/api/model/user.js index e3256e2..6bbf216 100644 --- a/src/api/model/user.js +++ b/src/api/model/user.js @@ -51,6 +51,20 @@ export default { return await http.post(this.url, params); }, }, + register:{ + url: `${config.API_URL}/user.register`, + name: "邮箱注册用户", + post: async function (params) { + return await http.post(this.url, params); + }, + }, + active:{ + url: `${config.API_URL}/email.active.account`, + name: "邮箱注册用户激活", + post: async function (params) { + return await http.post(this.url, params); + }, + }, resetPass:{ url: `${config.API_URL}/user.reset.pwd`, name: "重置个人密码", diff --git a/src/layout/index.vue b/src/layout/index.vue index 696dd13..66a1734 100644 --- a/src/layout/index.vue +++ b/src/layout/index.vue @@ -55,8 +55,8 @@
- - {{ $CONFIG.APP_NAME }} + +
diff --git a/src/router/systemRouter.js b/src/router/systemRouter.js index fd51a95..8e67110 100644 --- a/src/router/systemRouter.js +++ b/src/router/systemRouter.js @@ -23,6 +23,13 @@ const routes = [ title: "注册" } }, + { + path: "/activate", + component: () => import(/* webpackChunkName: "activate" */ '@/views/login/activate'), + meta: { + title: "邮箱激活" + } + }, { path: "/reset_password", component: () => import(/* webpackChunkName: "resetPassword" */ '@/views/login/resetPassword'), diff --git a/src/utils/request.js b/src/utils/request.js index bda8728..5e9bc9a 100644 --- a/src/utils/request.js +++ b/src/utils/request.js @@ -42,7 +42,7 @@ axios.interceptors.response.use( if (api_code === 401) { if (!MessageBox_401_show) { MessageBox_401_show = true; - ElMessageBox.confirm("当前用户已被登出或无权限访问当前资源,请尝试重新登录后再操作。","无权限访问",{ + ElMessageBox.confirm(response.data.message,"无权限访问",{ type: "error", closeOnClickModal: false, center: true, diff --git a/src/views/login/activate.vue b/src/views/login/activate.vue new file mode 100644 index 0000000..38df0b5 --- /dev/null +++ b/src/views/login/activate.vue @@ -0,0 +1,66 @@ + + + + + diff --git a/src/views/login/userRegister.vue b/src/views/login/userRegister.vue index b0017ec..5a76283 100644 --- a/src/views/login/userRegister.vue +++ b/src/views/login/userRegister.vue @@ -1,59 +1,56 @@ @@ -72,48 +69,37 @@ time:60, stepActive: 0, - showAgree: false, form: { - email: "", - mobile:"", - verify_code:"", - - user: "", - agree: false, - userName: "", - userType: "1", - open: [] + email: "2678188150@qq.com", + mobile:"17610119150", + verify_code:"143087", + company_name:"中国移动管理有限公司", + customer: "中国移动", + login_name:"admin", + name:"ykxiao", }, rules: { email: [ { required: true, message: '请输入邮箱地址'} ], + login_name:[ + { required: true, message: '请输入登录账号'} + ], + name:[ + { required: true, message: '请输入用户名'} + ], mobile: [ { required: true, message: '请输入手机号'} ], verify_code: [ { required: true, message: '请输入验证码'} ], - - agree: [ - {validator: (rule, value, callback) => { - if (!value) { - callback(new Error('请阅读并同意协议')); - }else{ - callback(); - } - }} + company_name: [ + { required: true, message: '请输入公司名称'} ], - userName: [ - { required: true, message: '请输入真实姓名'} + customer: [ + { required: true, message: '请输入客户名称'} ], - - userType: [ - { required: true, message: '请选择账户类型'} - ], - open: [ - { required: true, message: '请选择开通类别'} - ] } } }, @@ -121,14 +107,42 @@ }, methods: { - getYzm(){ - + async getYzm() { + const validate = await this.$refs.stepForm_0.validateField("mobile").catch(() => {}); + if (!validate) { + return false + } + const res = await this.$API.user.verifyCode.post({mobile: this.form.mobile}); + if (res.code === 200) { + this.$message.success('短信已发送至手机号码'); + this.disabled = true + this.time = 60 + const t = setInterval(() => { + this.time -= 1 + if (this.time < 1) { + clearInterval(t) + this.disabled = false + this.time = 0 + } + }, 1000); + } }, pre(){ this.stepActive -= 1 }, - next(){ - const formName = `stepForm_${this.stepActive}` + async next() { + const formName = `stepForm_${this.stepActive}`; + if (this.stepActive == 1) { + const res = await this.$API.user.register.post(this.form); + if (res.code == 200) { + this.$message.success('注册成功,请查看邮箱激活账户'); + this.nextPre(formName); + } + } else { + this.nextPre(formName); + } + }, + nextPre(formName){ this.$refs[formName].validate((valid) => { if (valid) { this.stepActive += 1 @@ -147,6 +161,11 @@ } }) }, + goActivation(){ + this.$router.push({ + path: '/activate' + }) + }, goLogin(){ this.$router.push({ path: '/login' @@ -159,6 +178,7 @@