From 3e9b476525c1949577ac2454072e5d62c2a97e90 Mon Sep 17 00:00:00 2001
From: 田源 <lastanimals@163.com>
Date: 星期五, 22 十一月 2024 15:13:27 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
Source/plt-web/plt-web-ui/src/page/login/userlogin.vue | 124 +++++++++++++++++++++++++++++++++++-----
1 files changed, 107 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..9a672e3 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,19 @@
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);
+ 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 +256,11 @@
}
}
;
+
this.$router.push({path: this.tagWel.value});
loading.close();
}).catch((err) => {
- console.log('err', err)
loading.close();
-
});
}
});
@@ -214,7 +277,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.10.0