From 83aa382fd3b88ec7a564f14d41a9c8e5d43beeb3 Mon Sep 17 00:00:00 2001 From: 田源 <lastanimals@163.com> Date: 星期一, 09 十二月 2024 10:26:31 +0800 Subject: [PATCH] 修改表单定义样式&&修改ui上下文btmName&&添加登录密码即将过期进入首页并提醒 --- Source/plt-web/plt-web-ui/src/page/login/userlogin.vue | 131 ++++++++++++++++++++++++++++++++++++++----- 1 files changed, 114 insertions(+), 17 deletions(-) diff --git a/Source/plt-web/plt-web-ui/src/page/login/userlogin.vue b/Source/plt-web/plt-web-ui/src/page/login/userlogin.vue index fad37a7..00bf9eb 100644 --- a/Source/plt-web/plt-web-ui/src/page/login/userlogin.vue +++ b/Source/plt-web/plt-web-ui/src/page/login/userlogin.vue @@ -7,17 +7,6 @@ status-icon > - <!-- <el-form-item prop="selectInput">--> - <!-- <el-select v-model="loginForm.value" placeholder="璇烽�夋嫨缁勭粐" style="width: 326px" @change="selectchange">--> - <!-- <i slot="prefix" class="el-icon-s-operation"/>--> - <!-- <el-option--> - <!-- v-for="(item,index) in loginForm.region"--> - <!-- :key="index"--> - <!-- :label="item.TENANT_NAME"--> - <!-- :value="item.TENANT_ID">--> - <!-- </el-option>--> - <!-- </el-select>--> - <!-- </el-form-item>--> <el-form-item prop="username"> <el-input v-model="loginForm.username" :placeholder="$t('login.username')" @@ -46,7 +35,16 @@ @click.native.prevent="handleLogin">{{ $t('login.submit') }} </el-button> </el-form-item> - + <el-dialog + v-dialogDrag + :visible.sync="passwordVisible" + append-to-body="true" + class="avue-dialog" + style="margin-top: -15vh" + title="淇敼瀵嗙爜" + width="50%"> + <avue-form ref="changeForm" v-model="passwordForm" :option="passwordOption" @submit="submitSwitch"/> + </el-dialog> </el-form> </template> @@ -55,11 +53,63 @@ import {mapGetters} from "vuex"; import {info} from "@/api/system/tenant"; import {getTopUrl} from "@/util/util"; +import func from "@/util/func"; +import {changePassword} from "@/api/user"; export default { name: "userlogin", data() { return { + userName: '', + passwordVisible: false, + passwordForm: {}, + passwordOption: { + submitText: '淇濆瓨', + column: [ + { + label: '鐧婚檰瀵嗙爜', + prop: 'oldPassword', + span: 24, + labelWidth: "15%", + type: 'password', + rules: [ + { + required: true, + message: '璇疯緭鍏ョ櫥闄嗗瘑鐮�', + trigger: 'blur' + } + ] + }, + { + label: '鏂扮櫥闄嗗瘑鐮�', + prop: 'password', + span: 24, + labelWidth: "15%", + type: 'password', + rules: [ + { + required: true, + message: '璇疯緭鍏ユ柊鐧婚檰瀵嗙爜', + trigger: 'blur' + } + ] + }, + { + label: '鏂板瘑鐮佺櫥闄嗙‘璁�', + prop: 'confirmPassword', + span: 24, + labelWidth: "15%", + type: 'password', + rules: [ + { + required: true, + message: '璇风‘璁ょ櫥闄嗗瘑鐮�', + trigger: 'blur' + } + ] + } + ] + }, tenantMode: this.website.tenantMode, ButtonList: [], loginForm: { @@ -162,6 +212,10 @@ done(); }, handleLogin() { + if (!this.loginForm.username) { + this.$message.error('璇疯緭鍏ョ敤鎴峰悕'); + return; + } if (!this.loginForm.password) { this.$message.error('璇疯緭鍏ュ瘑鐮�'); return; @@ -175,9 +229,26 @@ spinner: "el-icon-loading" }); this.$store.dispatch("LoginByUsername", this.loginForm).then((data) => { - if (data.obj.passwordInfo) { - this.$message.warning(data.obj.passwordInfo); + if (data.obj.failCode !== 'loginSuccess') { + if (data.obj.failCode === 'passwordRemainDay') { + this.$message.warning(data.obj.passwordInfo); + this.$router.push({path: this.tagWel.value}); + loading.close(); + return; + } + + if (data.obj.failCode === 'userIsLocked') { + this.$message.error(`鐧诲綍閿欒娆℃暟杩囧锛岃处鍙疯閿佸畾銆�${data.obj.failMsgArray[0]}銆戝垎閽焋); + loading.close(); + return; + } + this.$message.error(data.msg); + + if (data.obj.mustChangePassword) { + this.passwordVisible = true; + } } + if (this.website.switchMode) { const deptId = this.userInfo.deptOid; const roleId = this.userInfo.userOid; @@ -192,12 +263,11 @@ } } ; + this.$router.push({path: this.tagWel.value}); loading.close(); }).catch((err) => { - console.log('err', err) loading.close(); - }); } }); @@ -214,7 +284,34 @@ this.$parent.$refs.login.style.backgroundImage = `url(${data.data.backgroundUrl})`; } }) - } + }, + + submitSwitch(form, done) { + let userInfo = JSON.parse(localStorage.getItem('saber-userInfo')); + + let params = { + userName: this.loginForm.username, + oldPassword: func.encryptData(form.oldPassword, 'daliantan0v0vcip'), + password: func.encryptData(form.password, 'daliantan0v0vcip'), + confirmPassword: func.encryptData(form.confirmPassword, 'daliantan0v0vcip'), + } + changePassword(params).then(res => { + if (res.data.code === 200) { + this.$message.success('淇敼鎴愬姛锛屽嵆灏嗚烦杞埌棣栭〉'); + this.passwordVisible = false; + this.$refs.changeForm.resetFields(); + this.$store.dispatch("LoginByUsername", {...this.loginForm, password: form.confirmPassword}).then(data => { + if (data.obj.failCode !== 'loginSuccess' && data.obj.failCode !== 'passwordRemainDay') { + this.$message.error(data.msg); + } + this.$router.push({path: this.tagWel.value}); + }) + } + }).catch(err => { + console.log(err); + }) + done(); + }, } }; </script> -- Gitblit v1.9.3