|
|
@ -19,7 +19,15 @@ |
|
|
|
</div> |
|
|
|
<template #dropdown> |
|
|
|
<el-dropdown-menu> |
|
|
|
|
|
|
|
<router-link to="/user/profile"> |
|
|
|
<el-dropdown-item>个人中心</el-dropdown-item> |
|
|
|
</router-link> |
|
|
|
<el-dropdown-item command="setLayout"> |
|
|
|
<span>布局设置</span> |
|
|
|
</el-dropdown-item> |
|
|
|
<el-dropdown-item command="resetPwd"> |
|
|
|
<span>修改密码</span> |
|
|
|
</el-dropdown-item> |
|
|
|
<el-dropdown-item divided command="logout"> |
|
|
|
<span>退出登录</span> |
|
|
|
</el-dropdown-item> |
|
|
@ -27,6 +35,25 @@ |
|
|
|
</template> |
|
|
|
</el-dropdown> |
|
|
|
</div> |
|
|
|
<el-dialog title="修改密码" v-model="open" width="600px" append-to-body draggable> |
|
|
|
<el-form ref="pwdRef" :model="user" :rules="rules" label-width="80px"> |
|
|
|
<el-form-item label="旧密码" prop="oldPassword"> |
|
|
|
<el-input v-model="user.oldPassword" placeholder="请输入旧密码" type="password" show-password /> |
|
|
|
</el-form-item> |
|
|
|
<el-form-item label="新密码" prop="newPassword"> |
|
|
|
<el-input v-model="user.newPassword" placeholder="请输入新密码" type="password" show-password /> |
|
|
|
</el-form-item> |
|
|
|
<el-form-item label="确认密码" prop="confirmPassword"> |
|
|
|
<el-input v-model="user.confirmPassword" placeholder="请确认新密码" type="password" show-password/> |
|
|
|
</el-form-item> |
|
|
|
</el-form> |
|
|
|
<template #footer> |
|
|
|
<div class="dialog-footer"> |
|
|
|
<el-button type="primary" @click="submit()">确 定</el-button> |
|
|
|
<el-button @click="close">取 消</el-button> |
|
|
|
</div> |
|
|
|
</template> |
|
|
|
</el-dialog> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</template> |
|
|
@ -44,11 +71,13 @@ import RuoYiDoc from '@/components/RuoYi/Doc' |
|
|
|
import useAppStore from '@/store/modules/app' |
|
|
|
import useUserStore from '@/store/modules/user' |
|
|
|
import useSettingsStore from '@/store/modules/settings' |
|
|
|
|
|
|
|
import { resetUserPwd } from "@/api/system/user"; |
|
|
|
import { updateUserPwd } from "@/api/system/user"; |
|
|
|
const appStore = useAppStore() |
|
|
|
const userStore = useUserStore() |
|
|
|
const settingsStore = useSettingsStore() |
|
|
|
|
|
|
|
const { proxy } = getCurrentInstance(); |
|
|
|
let open = ref(false) |
|
|
|
function toggleSideBar() { |
|
|
|
appStore.toggleSideBar() |
|
|
|
} |
|
|
@ -58,6 +87,9 @@ function handleCommand(command) { |
|
|
|
case "setLayout": |
|
|
|
setLayout(); |
|
|
|
break; |
|
|
|
case "resetPwd": |
|
|
|
resetPwd(); |
|
|
|
break; |
|
|
|
case "logout": |
|
|
|
logout(); |
|
|
|
break; |
|
|
@ -78,10 +110,49 @@ function logout() { |
|
|
|
}).catch(() => { }); |
|
|
|
} |
|
|
|
|
|
|
|
/** 重置密码按钮操作 */ |
|
|
|
const user = reactive({ |
|
|
|
oldPassword: undefined, |
|
|
|
newPassword: undefined, |
|
|
|
confirmPassword: undefined |
|
|
|
}); |
|
|
|
|
|
|
|
const equalToPassword = (rule, value, callback) => { |
|
|
|
if (user.newPassword !== value) { |
|
|
|
callback(new Error("两次输入的密码不一致")); |
|
|
|
} else { |
|
|
|
callback(); |
|
|
|
} |
|
|
|
}; |
|
|
|
const rules = ref({ |
|
|
|
oldPassword: [{ required: true, message: "旧密码不能为空", trigger: "blur" }], |
|
|
|
newPassword: [{ required: true, message: "新密码不能为空", trigger: "blur" }, { min: 6, max: 20, message: "长度在 6 到 20 个字符", trigger: "blur" }], |
|
|
|
confirmPassword: [{ required: true, message: "确认密码不能为空", trigger: "blur" }, { required: true, validator: equalToPassword, trigger: "blur" }] |
|
|
|
}); |
|
|
|
|
|
|
|
/** 提交按钮 */ |
|
|
|
function submit() { |
|
|
|
proxy.$refs.pwdRef.validate(valid => { |
|
|
|
if (valid) { |
|
|
|
updateUserPwd(user.oldPassword, user.newPassword).then(response => { |
|
|
|
proxy.$modal.msgSuccess("修改成功"); |
|
|
|
open.value = false |
|
|
|
}); |
|
|
|
} |
|
|
|
}); |
|
|
|
}; |
|
|
|
|
|
|
|
const emits = defineEmits(['setLayout']) |
|
|
|
function setLayout() { |
|
|
|
emits('setLayout'); |
|
|
|
} |
|
|
|
/** 关闭按钮 */ |
|
|
|
function close() { |
|
|
|
open.value = false |
|
|
|
}; |
|
|
|
function resetPwd(row) { |
|
|
|
open.value = true |
|
|
|
}; |
|
|
|
</script> |
|
|
|
|
|
|
|
<style lang='scss' scoped> |
|
|
|