From 9ca554079555718e298efea45bbb46d951647e0d Mon Sep 17 00:00:00 2001
From: llj <132905093+newwwwwwtree@users.noreply.github.com>
Date: 星期三, 25 二月 2026 17:11:52 +0800
Subject: [PATCH] 侧边框修改密码功能
---
src/layout/components/Navbar.vue | 11 +++
src/layout/components/UpdatePsw.vue | 132 ++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 142 insertions(+), 1 deletions(-)
diff --git a/src/layout/components/Navbar.vue b/src/layout/components/Navbar.vue
index 5d9ab49..56d54ee 100644
--- a/src/layout/components/Navbar.vue
+++ b/src/layout/components/Navbar.vue
@@ -31,17 +31,22 @@
<el-dropdown-item @click.native="setLayout" v-if="setting">
<span>甯冨眬璁剧疆</span>
</el-dropdown-item>
+ <el-dropdown-item @click.native="handleUpdatePsw">
+ <span>淇敼瀵嗙爜</span>
+ </el-dropdown-item>
<el-dropdown-item divided @click.native="logout">
<span>閫�鍑虹櫥褰�</span>
</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
</div>
+ <update-psw ref="pswDialog" />
</div>
</template>
<script>
import { mapGetters } from 'vuex'
+import UpdatePsw from '@/layout/components/UpdatePsw'
import Breadcrumb from '@/components/Breadcrumb'
import TopNav from '@/components/TopNav'
import Hamburger from '@/components/Hamburger'
@@ -61,7 +66,8 @@
SizeSelect,
Search,
RuoYiGit,
- RuoYiDoc
+ RuoYiDoc,
+ UpdatePsw
},
computed: {
...mapGetters([
@@ -87,6 +93,9 @@
}
},
methods: {
+ handleUpdatePsw() {
+ this.$refs.pswDialog.open()
+ },
toggleSideBar() {
this.$store.dispatch('app/toggleSideBar')
},
diff --git a/src/layout/components/UpdatePsw.vue b/src/layout/components/UpdatePsw.vue
new file mode 100644
index 0000000..9b8fbcc
--- /dev/null
+++ b/src/layout/components/UpdatePsw.vue
@@ -0,0 +1,132 @@
+<template>
+ <el-dialog title="淇敼瀵嗙爜" :visible.sync="dialogVisible" width="500px" @close="handleClose">
+ <el-form ref="form" :model="form" :rules="rules" label-width="120px">
+ <el-form-item label="褰撳墠鐢ㄦ埛">
+ <el-input v-model="form.currentUser" :readonly="true" />
+ </el-form-item>
+ <el-form-item label="褰撳墠瀵嗙爜">
+ <el-input v-model="form.oldPassword" type="password" :readonly="true" />
+ </el-form-item>
+ <el-form-item label="鏂板瘑鐮�" prop="newPassword">
+ <el-input v-model="form.newPassword" type="password" placeholder="6鍒�16涓瓧绗�" show-password />
+ </el-form-item>
+ <el-form-item label="纭鏂板瘑鐮�" prop="confirmPassword">
+ <el-input v-model="form.confirmPassword" type="password" placeholder="鍐嶆杈撳叆鏂板瘑鐮�" show-password />
+ </el-form-item>
+ <el-form-item label="閲戣澏浜戣处鍙�">
+ <el-input v-model="form.cloudUserName" />
+ </el-form-item>
+ <el-form-item label="閲戣澏浜戝瘑鐮�">
+ <el-input v-model="form.cloudUserPsd" type="password" show-password />
+ </el-form-item>
+ </el-form>
+ <span slot="footer" class="dialog-footer">
+ <el-button @click="dialogVisible = false">鍙� 娑�</el-button>
+ <el-button type="primary" @click="submitForm" :loading="submitting">纭� 璁� 淇� 鏀�</el-button>
+ </span>
+ </el-dialog>
+</template>
+
+<script>
+import request from '@/utils/request'
+
+export default {
+ name: 'UpdatePsw',
+ data() {
+
+ const validateConfirm = (rule, value, callback) => {
+ if (value !== this.form.newPassword) {
+ callback(new Error('涓ゆ杈撳叆瀵嗙爜涓嶄竴鑷�'))
+ } else {
+ callback()
+ }
+ }
+ return {
+ dialogVisible: false,
+ submitting: false,
+ form: {
+ currentUser: '',
+ oldPassword: '',
+ newPassword: '',
+ confirmPassword: '',
+ cloudUserName: '',
+ cloudUserPsd: ''
+ },
+ rules: {
+ newPassword: [
+ { required: true, message: '璇疯緭鍏ユ柊瀵嗙爜', trigger: 'blur' },
+ { min: 6, max: 16, message: '闀垮害鍦� 6 鍒� 16 涓瓧绗�', trigger: 'blur' }
+ ],
+ confirmPassword: [
+ { required: true, message: '璇峰啀娆¤緭鍏ユ柊瀵嗙爜', trigger: 'blur' },
+ { validator: validateConfirm, trigger: 'blur' }
+ ]
+ }
+ }
+ },
+ methods: {
+
+ open() {
+ this.form.currentUser = sessionStorage['HUserName'] || ''
+ this.form.oldPassword = sessionStorage['Czmm'] || ''
+ this.form.cloudUserName = sessionStorage['HCloudUserName'] || ''
+ this.form.cloudUserPsd = sessionStorage['HCloudUserPsd'] || ''
+
+ this.form.newPassword = ''
+ this.form.confirmPassword = ''
+ this.dialogVisible = true
+
+ this.$nextTick(() => {
+ this.$refs.form?.clearValidate()
+ })
+ },
+
+ handleClose() {
+
+ this.$refs.form?.resetFields()
+ },
+
+ submitForm() {
+ this.$refs.form.validate(valid => {
+ if (!valid) return
+ this.submitting = true
+
+ const params = {
+ UserName: sessionStorage['Czybm'] || '',
+ oldPassword: this.form.oldPassword,
+ PassWord: this.form.newPassword,
+ Repassword: this.form.confirmPassword,
+ HCloudUserName: this.form.cloudUserName,
+ HCloudUserPsd: this.form.cloudUserPsd
+ }
+ request({
+ url: '/Web/GetXGPassword',
+ method: 'get',
+ params: params
+ }).then(res => {
+ if (res.count === 1) {
+
+ this.$modal.msgSuccess(res.Message || '淇敼鎴愬姛')
+
+ sessionStorage.clear()
+
+ this.$router.push('/index')
+
+ this.dialogVisible = false
+ } else {
+
+ this.$modal.msgError(res.Message || '淇敼澶辫触')
+ }
+ }).catch(err => {
+ this.$modal.msgError(err.message || '璇锋眰澶辫触')
+ }).finally(() => {
+ this.submitting = false
+ })
+ })
+ }
+ }
+}
+</script>
+
+<style scoped>
+</style>
\ No newline at end of file
--
Gitblit v1.9.1