提交 fa62c196 authored 作者: 龙菲's avatar 龙菲

md5加密登录密码

上级 65dd3d8d
......@@ -20,6 +20,7 @@
"el-tree-transfer": "^2.4.7",
"element-ui": "^2.15.6",
"js-cookie": "2.2.0",
"js-md5": "^0.7.3",
"normalize.css": "7.0.0",
"nprogress": "0.2.0",
"path-to-regexp": "2.4.0",
......
<template>
<div class="navbar">
<hamburger :is-active="sidebar.opened" class="hamburger-container" @toggleClick="toggleSideBar" />
<hamburger
:is-active="sidebar.opened"
class="hamburger-container"
@toggleClick="toggleSideBar"
/>
<breadcrumb class="breadcrumb-container" />
<div class="right-menu">
<el-dropdown class="avatar-container" trigger="click">
<div class="avatar-wrapper">
<img v-if="avatar" :src="avatar" class="user-avatar" />
......@@ -35,13 +38,26 @@
</el-dropdown>
</div>
<div class="username-container">欢迎你,{{ userInfo.nickName || userInfo.username }}</div>
<div class="username-container">
欢迎你,{{ userInfo.nickName || userInfo.username }}
</div>
<el-drawer :title="isUserInfo ? '个人资料' : '修改密码'" :visible.sync="showDrawer" direction="rtl"
:before-close="handleClose" append-to-body v-loading="loading">
<el-drawer
:title="isUserInfo ? '个人资料' : '修改密码'"
:visible.sync="showDrawer"
direction="rtl"
:before-close="handleClose"
append-to-body
v-loading="loading"
>
<!-- <span>{{ isUserInfo ? "个人资料" : "修改密码" }}</span> -->
<el-form ref="userInfoForm" v-if="isUserInfo" :label-width="labelWidth" :rules="userInfoRules"
:model="userInfoForm">
<el-form
ref="userInfoForm"
v-if="isUserInfo"
:label-width="labelWidth"
:rules="userInfoRules"
:model="userInfoForm"
>
<el-form-item label="用户名" prop="username">
<span v-if="!isEditingUserInfo">{{ userInfo.username }}</span>
<el-input v-else v-model="userInfoForm.username"></el-input>
......@@ -55,13 +71,27 @@
<el-input v-else v-model="userInfoForm.phone"></el-input>
</el-form-item>
<el-form-item>
<el-button type="primary" @click.native="handleSubmitUserInfo" icon="el-icon-circle-check">{{
isEditingUserInfo ? "保存" : "修改个人信息"
}}</el-button>
<el-button type="primary" @click.native="handleCancelChangeUserInfo" v-if="isEditingUserInfo">取消</el-button>
<el-button
type="primary"
@click.native="handleSubmitUserInfo"
icon="el-icon-circle-check"
>{{ isEditingUserInfo ? "保存" : "修改个人信息" }}</el-button
>
<el-button
type="primary"
@click.native="handleCancelChangeUserInfo"
v-if="isEditingUserInfo"
>取消</el-button
>
</el-form-item>
</el-form>
<el-form ref="pwdForm" :model="pwdForm" :label-width="labelWidth" :rules="pwdRules" v-else>
<el-form
ref="pwdForm"
:model="pwdForm"
:label-width="labelWidth"
:rules="pwdRules"
v-else
>
<el-form-item label="旧密码" prop="oldPwd">
<el-input v-model="pwdForm.oldPwd" type="password"></el-input>
</el-form-item>
......@@ -72,8 +102,15 @@
<el-input v-model="pwdForm.checkPass" type="password"></el-input>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-circle-check" @click.native="handleSubmitPwd">保存</el-button>
<el-button type="primary" @click.native="handleCancelChangePwd">取消</el-button>
<el-button
type="primary"
icon="el-icon-circle-check"
@click.native="handleSubmitPwd"
>保存</el-button
>
<el-button type="primary" @click.native="handleCancelChangePwd"
>取消</el-button
>
</el-form-item>
</el-form>
</el-drawer>
......@@ -86,6 +123,7 @@ import Breadcrumb from "@/components/Breadcrumb";
import Hamburger from "@/components/Hamburger";
import { editUserInfo, editUserPwd } from "@/api/user";
import { setUserInfo } from "@/utils/auth";
import md5 from "js-md5";
export default {
components: {
Breadcrumb,
......@@ -214,10 +252,12 @@ export default {
this.$refs.pwdForm.validate(async (valid) => {
if (valid) {
const { newPwd, oldPwd } = this.pwdForm;
const params = {
newPwd,
oldPwd,
};
params.newPwd = md5(params.newPwd);
let res = await editUserPwd(params);
if (res.code == "0") {
this.$message.success("修改成功,请重新登录!");
......
......@@ -109,6 +109,8 @@
<script>
import { getVerify } from "@/api/user";
import md5 from 'js-md5'
export default {
name: "Login",
data() {
......@@ -172,8 +174,10 @@ export default {
this.$refs.loginForm.validate((valid) => {
if (valid) {
this.loading = true;
const params =JSON.parse(JSON.stringify(this.loginForm))
params.password = md5(params.password)
this.$store
.dispatch("user/login", this.loginForm)
.dispatch("user/login", params)
.then(async () => {
// debugger
// await this.$store.dispatch('user/getMenuList')
......
<template>
<el-dialog :visible="dialogVisible" width="30%" :before-close="handleClose" lock-scroll>
<el-form ref="pwdForm" :model="pwdForm" :label-width="labelWidth" :rules="pwdRules" class="form" size="small"
v-loading="loading">
<!-- <el-form-item label="旧密码" prop="oldPwd">
<el-dialog
:visible="dialogVisible"
width="30%"
:before-close="handleClose"
lock-scroll
>
<el-form
ref="pwdForm"
:model="pwdForm"
:label-width="labelWidth"
:rules="pwdRules"
class="form"
size="small"
v-loading="loading"
>
<!-- <el-form-item label="旧密码" prop="oldPwd">
<el-input v-model="pwdForm.oldPwd" type="password"></el-input>
</el-form-item> -->
<el-form-item label="新密码" prop="password">
<el-input v-model="pwdForm.password" clearable type="text">
<el-button @click.native="handleClickReset" slot="append" icon="el-icon-refresh-left">重置为初始密码</el-button>
</el-input>
</el-form-item>
<!-- <el-form-item label="确认密码" prop="checkPass" >
<el-form-item label="新密码" prop="password">
<el-input v-model="pwdForm.password" clearable type="text">
<el-button
@click.native="handleClickReset"
slot="append"
icon="el-icon-refresh-left"
>重置为初始密码</el-button
>
</el-input>
</el-form-item>
<!-- <el-form-item label="确认密码" prop="checkPass" >
<el-input v-model="pwdForm.checkPass" type="password" show-password></el-input>
</el-form-item> -->
<!-- <el-form-item>
<!-- <el-form-item>
<el-button type="primary" icon="el-icon-circle-check" @click.native="handleSubmitPwd">保存</el-button>
<el-button type="primary" @click.native="handleCancelChangePwd">取消</el-button>
</el-form-item> -->
</el-form>
<div class="buttons">
<el-button type="primary" icon="el-icon-circle-check" @click.native="handleSubmitPwd" size="small">保存
</el-button>
<el-button @click.native="handleCancelChangePwd" size="mini">取消</el-button>
</div>
</el-dialog>
</el-form>
<div class="buttons">
<el-button
type="primary"
icon="el-icon-circle-check"
@click.native="handleSubmitPwd"
size="small"
>保存
</el-button>
<el-button @click.native="handleCancelChangePwd" size="mini"
>取消</el-button
>
</div>
</el-dialog>
</template>
<script>
import { upadateUser } from "@/api/user";
import md5 from "js-md5";
export default {
name: 'EditPassword',
props: {
visible: {
type: Boolean,
default: false,
},
id: {
type: String,
default: null,
},
name: "EditPassword",
props: {
visible: {
type: Boolean,
default: false,
},
watch: {
visible: {
handler: function (value) {
this.dialogVisible = value;
},
deep: true,
immediate: true,
},
id: {
type: String,
default: null,
},
data() {
var validatePass = (rule, value, callback) => {
if (value === "") {
callback(new Error("请输入新密码"));
} else {
var pattern =
/^(?![a-zA-Z]+$)(?![A-Z0-9]+$)(?![A-Z\\W_!@#$%^&*`~()-+=]+$)(?![a-z0-9]+$)(?![a-z\\W_!@#$%^&*`~()-+=]+$)(?![0-9\\W_!@#$%^&*`~()-+=]+$)[a-zA-Z0-9\\W_!@#$%^&*`~()-+=]{8,30}$/;
if (!pattern.test(value)) {
callback(
new Error(
"密码长度至少8位,至少含数字,大写字母,小写字母,特殊符其中三种"
)
);
}
// if (this.pwdForm.checkPass !== "") {
// this.$refs.pwdForm.validateField("checkPass");
// }
callback();
}
};
var validatePass2 = (rule, value, callback) => {
if (value === "") {
callback(new Error("请再次输入密码"));
} else if (value !== this.pwdForm.newPwd) {
callback(new Error("两次输入密码不一致!"));
} else {
callback();
}
};
return {
dialogVisible: false,
labelWidth: "100px",
pwdForm: {
// oldPwd: "",
password: "",
// checkPass: "",
},
pwdRules: {
// oldPwd: [
// { trigger: "blur", required: true, message: "请输入当前密码" },
// ],
password: [{ validator: validatePass, trigger: "blur", required: true }],
// checkPass: [
// { validator: validatePass2, trigger: "blur", required: true },
// ],
},
loading: false
}
},
watch: {
visible: {
handler: function (value) {
this.dialogVisible = value;
},
deep: true,
immediate: true,
},
methods: {
handleSubmitPwd() {
this.$refs.pwdForm.validate(async (valid) => {
if (valid) {
this.loading = true
// const { newPwd, oldPwd } = this.pwdForm;
const params = {
// newPwd,
// oldPwd,
password: this.pwdForm.password,
id: this.id
};
// console.log(params);
// return
let res = await upadateUser(params);
},
data() {
var validatePass = (rule, value, callback) => {
if (value === "") {
callback(new Error("请输入新密码"));
} else {
var pattern =
/^(?![a-zA-Z]+$)(?![A-Z0-9]+$)(?![A-Z\\W_!@#$%^&*`~()-+=]+$)(?![a-z0-9]+$)(?![a-z\\W_!@#$%^&*`~()-+=]+$)(?![0-9\\W_!@#$%^&*`~()-+=]+$)[a-zA-Z0-9\\W_!@#$%^&*`~()-+=]{8,30}$/;
if (!pattern.test(value)) {
callback(
new Error(
"密码长度至少8位,至少含数字,大写字母,小写字母,特殊符其中三种"
)
);
}
// if (this.pwdForm.checkPass !== "") {
// this.$refs.pwdForm.validateField("checkPass");
// }
callback();
}
};
if (res.code == "0") {
this.$message.success("修改成功!");
this.$emit("handleClose");
this.$refs.pwdForm.resetFields()
var validatePass2 = (rule, value, callback) => {
if (value === "") {
callback(new Error("请再次输入密码"));
} else if (value !== this.pwdForm.newPwd) {
callback(new Error("两次输入密码不一致!"));
} else {
callback();
}
};
return {
dialogVisible: false,
labelWidth: "100px",
pwdForm: {
// oldPwd: "",
password: "",
// checkPass: "",
},
pwdRules: {
// oldPwd: [
// { trigger: "blur", required: true, message: "请输入当前密码" },
// ],
password: [
{ validator: validatePass, trigger: "blur", required: true },
],
// checkPass: [
// { validator: validatePass2, trigger: "blur", required: true },
// ],
},
loading: false,
};
},
methods: {
handleSubmitPwd() {
this.$refs.pwdForm.validate(async (valid) => {
if (valid) {
this.loading = true;
// const { newPwd, oldPwd } = this.pwdForm;
const params = {
// newPwd,
// oldPwd,
password: this.pwdForm.password,
id: this.id,
};
params.password = md5(params.password);
// console.log(params);
// return
let res = await upadateUser(params);
}
this.loading = false
}
this.loading = false
});
},
handleClickReset() {
this.pwdForm.password = 'qwe@1234'
},
handleCancelChangePwd() {
this.handleClose()
},
handleClose(done) {
this.$confirm("确认关闭?")
.then((_) => {
// done();
this.$emit("handleClose");
this.$refs.pwdForm.resetFields()
})
.catch((_) => { });
},
}
}
if (res.code == "0") {
this.$message.success("修改成功!");
this.$emit("handleClose");
this.$refs.pwdForm.resetFields();
}
this.loading = false;
}
this.loading = false;
});
},
handleClickReset() {
this.pwdForm.password = "jpzl@1234";
},
handleCancelChangePwd() {
this.handleClose();
},
handleClose(done) {
this.$confirm("确认关闭?")
.then((_) => {
// done();
this.$emit("handleClose");
this.$refs.pwdForm.resetFields();
})
.catch((_) => {});
},
},
};
</script>
<style lang="scss" scoped>
.title {
display: flex;
margin-bottom: 16px;
display: flex;
margin-bottom: 16px;
.divider {
width: 8px;
border-left: 4px solid #409eff;
margin-right: 8px;
}
.divider {
width: 8px;
border-left: 4px solid #409eff;
margin-right: 8px;
}
.label {
font-weight: bold;
}
.label {
font-weight: bold;
}
}
.dialog-content {
padding: 0 32px;
padding: 0 32px;
// display: flex;
.basic-info {
flex: 1;
margin-right: 48px;
}
// display: flex;
.basic-info {
flex: 1;
margin-right: 48px;
}
}
.dialog-footer {
margin-top: 20px;
display: flex;
justify-content: flex-end;
margin-top: 20px;
display: flex;
justify-content: flex-end;
}
.form {
padding-right: 60px;
padding-right: 60px;
}
.buttons {
padding: 40px 60px 0;
display: flex;
justify-content: flex-end;
padding: 40px 60px 0;
display: flex;
justify-content: flex-end;
}
</style>
\ No newline at end of file
......@@ -41,7 +41,8 @@ module.exports = {
proxy: {
'/api': {
// target: 'http://172.24.100.109:8080/',
target:'http://222.85.214.245:9603/api',
target:'http://172.24.100.46:8080',
// target:'http://222.85.214.245:9603/api',
// target:'http://192.168.1.230:9603/api',
// target: 'http://114.115.157.218:9602/api',//生产
changeOrigin: true,
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论