From 77fa2e4789340478ccec37c98ba68ba8853170ac Mon Sep 17 00:00:00 2001
From: 田源 <lastanimals@163.com>
Date: 星期三, 30 十月 2024 11:36:18 +0800
Subject: [PATCH] 修改密码新密码重新登录&&属性池、表单定义表格、版本管理三个模块表单样式修改

---
 Source/plt-web/plt-web-ui/src/page/login/userlogin.vue |  103 ++++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 97 insertions(+), 6 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..2bd8b81 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
@@ -46,7 +46,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 +64,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 +236,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 +261,7 @@
             this.$router.push({path: this.tagWel.value});
             loading.close();
           }).catch((err) => {
-            console.log('err', err)
             loading.close();
-
           });
         }
       });
@@ -214,7 +278,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