From 089bf5d2378b3c4a61d795b2a92bede2c193b771 Mon Sep 17 00:00:00 2001
From: admin <344137771@qq.com>
Date: Tue, 06 Jan 2026 11:22:58 +0800
Subject: [PATCH] 1

---
 src/views/main-navbar-update-password.vue |  123 +++++++++++++++++++++++++++++++++++++++++
 1 files changed, 123 insertions(+), 0 deletions(-)

diff --git a/src/views/main-navbar-update-password.vue b/src/views/main-navbar-update-password.vue
new file mode 100644
index 0000000..e27b48e
--- /dev/null
+++ b/src/views/main-navbar-update-password.vue
@@ -0,0 +1,123 @@
+<template>
+  <el-dialog
+    title="修改登录密码"
+    :visible.sync="visible"
+    width="600px"
+    :append-to-body="true">
+    <el-form :model="dataForm" :rules="dataRule" ref="dataForm" @keyup.enter.native="dataFormSubmit()" label-width="100px">
+      <el-form-item label="账号">
+        <span>{{ userName }}</span>
+      </el-form-item>
+      <el-form-item label="旧登录密码" prop="password">
+        <el-input type="password" v-model="dataForm.password" placeholder="请输入旧密码"></el-input>
+      </el-form-item>
+      <el-form-item label="新密码" prop="newPassword">
+        <el-input type="password" v-model="dataForm.newPassword" placeholder="由数字、字符、特殊字符三种中的两种组成,长度不能少于6位"></el-input>
+      </el-form-item>
+      <el-form-item label="确认新密码" prop="confirmPassword">
+        <el-input type="password" v-model="dataForm.confirmPassword" placeholder="请确认新密码"></el-input>
+      </el-form-item>
+    </el-form>
+    <span slot="footer" class="dialog-footer">
+      <el-button @click="visible = false">取消</el-button>
+      <el-button type="primary" @click="dataFormSubmit()">确定</el-button>
+    </span>
+  </el-dialog>
+</template>
+
+<script>
+  import { clearLoginInfo } from '@/utils'
+  import { Debounce } from '@/utils/debounce'
+  import { encrypt } from '@/utils/crypto'
+  export default {
+    data () {
+      var validateConfirmPassword = (rule, value, callback) => {
+        if (this.dataForm.newPassword !== value) {
+          callback(new Error('确认密码与新密码不一致'))
+        } else {
+          callback()
+        }
+      }
+      return {
+        visible: false,
+        dataForm: {
+          password: '',
+          newPassword: '',
+          confirmPassword: ''
+        },
+        dataRule: {
+          password: [
+            { required: true, message: '旧登录密码不能为空', trigger: 'blur' }
+          ],
+          newPassword: [
+            { required: true, message: '新密码不能为空', trigger: 'blur' }
+          ],
+          confirmPassword: [
+            { required: true, message: '确认新密码不能为空', trigger: 'blur' },
+            { validator: validateConfirmPassword, trigger: 'blur' }
+          ]
+        }
+      }
+    },
+    computed: {
+      userName: {
+        get () { return this.$store.state.user.name }
+      },
+      mainTabs: {
+        get () { return this.$store.state.common.mainTabs },
+        set (val) { this.$store.commit('common/updateMainTabs', val) }
+      }
+    },
+    methods: {
+      // 初始化
+      init () {
+        this.visible = true
+        this.$nextTick(() => {
+          this.$refs['dataForm'].resetFields()
+        })
+      },
+      // 表单提交
+      dataFormSubmit: Debounce(function () {
+        this.$refs['dataForm'].validate((valid) => {
+          if (valid) {
+            this.$http({
+              url: this.$http.adornUrl('/changeLoginPassword'),
+              method: 'post',
+              data: this.$http.adornData({
+                'oldPassword': encrypt(this.dataForm.password),
+                'newPassword': encrypt(this.dataForm.newPassword)
+              })
+            }).then(({data}) => {
+              if(data.code == 0){
+                this.$message({
+                message: '操作成功',
+                type: 'success',
+                duration: 1500,
+                onClose: () => {
+                  this.visible = false
+                  this.$nextTick(() => {
+                    // this.mainTabs = []
+                     // clearLoginInfo()
+                    // this.$router.replace({ name: 'login' })
+                  })
+                }
+              })
+              }else{
+                this.$message({
+                message:data.msg,
+                type: 'error',
+                duration: 1500,
+                onClose: () => {
+                  
+                }
+              })
+              }
+
+            })
+          }
+        })
+      })
+    }
+  }
+</script>
+

--
Gitblit v1.9.3