From 703455ff2bcb62b762e818c20986f178fe79bc24 Mon Sep 17 00:00:00 2001 From: 田源 <lastanimals@163.com> Date: 星期四, 31 十月 2024 17:26:58 +0800 Subject: [PATCH] 整合代码&&完善业务类型查询模板bug&&添加菜单动态选择icon图标&&添加font图标库 --- Source/plt-web/plt-web-ui/src/page/login/userlogin.vue | 114 ++++++++++++++++++++++++++++++++++++++++++++++++-------- 1 files changed, 97 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..ccb8660 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: { @@ -175,9 +225,14 @@ 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') { + // console.log('data', data); + 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; @@ -195,9 +250,7 @@ this.$router.push({path: this.tagWel.value}); loading.close(); }).catch((err) => { - console.log('err', err) loading.close(); - }); } }); @@ -214,7 +267,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') { + this.$message.error(data.msg); + } + this.$router.push({path: this.tagWel.value}); + }) + } + }).catch(err => { + console.log(err); + }) + done(); + }, } }; </script> -- Gitblit v1.9.3