Commit 44df5aa5 by 黄森林

用户修改密码,登录增加短信验证功能

parent 4ce694d2
...@@ -2,11 +2,11 @@ ...@@ -2,11 +2,11 @@
* 系统管理的api管理 * 系统管理的api管理
*/ */
import { getAction, postAction,postFormAction } from '@/api/manage' import { getAction, postAction,postFormAction } from '@/api/manage'
let prefix = 'auth/ciop/' let prefix = 'auth/ciop'
//忘记密码 //忘记密码
let register = (params) => postAction(prefix+"forgerpw/changePwd", params); let register = (params) => postAction(prefix+"/forgerpw/changePwd", params);
let registercode = (params) => postAction(prefix+"forgerpw/verificationCode", params); let registercode = (params) => postAction(prefix+"/forgerpw/verificationCode", params);
// 用户管理 // 用户管理
let getList = (params) => getAction(prefix+"/dept/tree", params); let getList = (params) => getAction(prefix+"/dept/tree", params);
let tabList = (params) => getAction(prefix+"/mgr/list", params); let tabList = (params) => getAction(prefix+"/mgr/list", params);
...@@ -19,7 +19,7 @@ let roleTreeList = (params) => postAction(prefix+"/role/roleTreeListByUserId", p ...@@ -19,7 +19,7 @@ let roleTreeList = (params) => postAction(prefix+"/role/roleTreeListByUserId", p
let roleTreeList2 = (params) => postAction(prefix+"/role/roleTreeListByUserId/"+params["id"], {}); let roleTreeList2 = (params) => postAction(prefix+"/role/roleTreeListByUserId/"+params["id"], {});
let userFreeze= (params) => postAction(prefix+"/mgr/freeze", params); let userFreeze= (params) => postAction(prefix+"/mgr/freeze", params);
let userUnFreeze= (params) => postAction(prefix+"/mgr/unfreeze", params); let userUnFreeze= (params) => postAction(prefix+"/mgr/unfreeze", params);
let changeOtherPwd= (params) => postAction(prefix+"/mgr/changeOtherPwd", params);//超级用户修改密码 let changeOtherPwd= (params) => postAction(prefix+"/forgerpw/changeOtherPwd", params);//修改密码
//部门管理 //部门管理
const departmentList = (params) => getAction(prefix+"/dept/departmentList", params); const departmentList = (params) => getAction(prefix+"/dept/departmentList", params);
let deptAdd = (params) => postAction(prefix+"/dept/add", params); let deptAdd = (params) => postAction(prefix+"/dept/add", params);
......
...@@ -14,7 +14,13 @@ export const asyncRouterMap = [{ ...@@ -14,7 +14,13 @@ export const asyncRouterMap = [{
path: 'login', path: 'login',
name: 'login', name: 'login',
component: () => import(/* webpackChunkName: "user" */ '@/views/user/Login') component: () => import(/* webpackChunkName: "user" */ '@/views/user/Login')
}, }
,
{
path: 'register',
name: 'register',
component: () => import(/* webpackChunkName: "user" */ '@/views/user/register')
},
{ {
path: 'ueditor2', path: 'ueditor2',
name: 'ueditor2', name: 'ueditor2',
......
...@@ -90,8 +90,13 @@ ...@@ -90,8 +90,13 @@
</s-table> </s-table>
<!-- 修改密码 --> <!-- 修改密码 -->
<a-modal title="密码修改" v-model="editpaswordmodel" @ok="editPassword" @cancel="editPasswordcancel"> <a-modal title="密码修改" v-model="editpaswordmodel" @ok="editPassword" @cancel="editPasswordcancel">
<a-form :form="EditPassFrom"> <a-form :form="EditPassFrom" >
<a-form-item label="新密码" >
<a-form-item label="原密码" v-if="hasOperationPermission(['超级管理员'])">
<a-input placeholder="原密码" type="password" v-model="editpasswordfrom.oldPwd"></a-input>
</a-form-item>
<a-form-item label="新密码" >
<a-input placeholder="新密码" v-decorator="['editpassword',{rules: [{ required: true, message: '新密码不能为空!' }]}]" type="password"></a-input> <a-input placeholder="新密码" v-decorator="['editpassword',{rules: [{ required: true, message: '新密码不能为空!' }]}]" type="password"></a-input>
</a-form-item> </a-form-item>
<a-form-item label="确认密码" > <a-form-item label="确认密码" >
...@@ -252,6 +257,7 @@ export default { ...@@ -252,6 +257,7 @@ export default {
//修改密码窗口 //修改密码窗口
editpaswordmodel:false, editpaswordmodel:false,
editpasswordfrom:{ editpasswordfrom:{
oldPwd:'',
newPwd:"", newPwd:"",
rePwd:"", rePwd:"",
changeId:"", changeId:"",
...@@ -356,26 +362,29 @@ export default { ...@@ -356,26 +362,29 @@ export default {
}, },
//提交密码修改 //提交密码修改
editPassword() { editPassword() {
if(this.hasOperationPermission(['超级管理员'])){
if(this.editpasswordfrom.oldPwd == '' || this.editpasswordfrom.oldPwd==undefined){
this.$message.error("请输入原密码!", 5);
}
}
this.EditPassFrom.validateFields(err => { this.EditPassFrom.validateFields(err => {
if (!err) { if (!err) {
this.editpasswordfrom.newPwd= encodeURIComponent(this.getPass(this.EditPassFrom.getFieldValue('editpassword'))) this.editpasswordfrom.newPwd= encodeURIComponent(this.getPass(this.EditPassFrom.getFieldValue('editpassword')))
this.editpasswordfrom.oldPwd= encodeURIComponent(this.getPass(this.editpasswordfrom.oldPwd))
this.editpasswordfrom.rePwd=this.editpasswordfrom.newPwd this.editpasswordfrom.rePwd=this.editpasswordfrom.newPwd
changeOtherPwd(this.editpasswordfrom).then(res => { changeOtherPwd(this.editpasswordfrom).then(res => {
if (res.code == 200) { if (res.state == 'success') {
this.editpasswordfrom.oldPwd = ''
this.editpasswordfrom.editrepassword = ''
this.editpasswordfrom.editpassword = ''
this.EditPassFrom.setFieldsValue({editpassword:""}); this.EditPassFrom.setFieldsValue({editpassword:""});
this.EditPassFrom.setFieldsValue({editrepassword:""}); this.EditPassFrom.setFieldsValue({editrepassword:""});
if(res.message==undefined){
this.$message.success(res.data != "" ? res.data : "修改成功", 5); this.$message.success(res.data != "" ? res.data : "修改成功", 5);
}else {
this.$message.success(res.message != "" ? res.message : "修改成功", 5);
}
}else{ }else{
if(res.message==undefined){ this.editpasswordfrom.oldPwd = ''
this.$message.error(res.data != "" ? res.data : "失败修改", 5); this.editpasswordfrom.editrepassword = ''
}else { this.editpasswordfrom.editpassword = ''
this.$message.error(res.message != "" ? res.message : "失败修改", 5); this.$message.error(res.msg != "" ? res.msg : "修改失败", 5);
}
} }
this.editpaswordmodel = false this.editpaswordmodel = false
}) })
...@@ -577,6 +586,14 @@ export default { ...@@ -577,6 +586,14 @@ export default {
that.$refs.table.refresh({ search: true }) that.$refs.table.refresh({ search: true })
}) })
}, },
hasOperationPermission(marks = []) {
for (const index in marks) {
if (this.$store.state.user.info.role.indexOf(marks[index]) > -1) {
return false;
}
}
return true;
},
updatePassword(userid){ updatePassword(userid){
this.editpaswordmodel=true this.editpaswordmodel=true
this.editpasswordfrom.changeId=userid; this.editpasswordfrom.changeId=userid;
......
...@@ -39,6 +39,31 @@ ...@@ -39,6 +39,31 @@
</a-col> </a-col>
</a-row> </a-row>
<a-row :gutter="0">
<a-col :span="14">
<a-form-item>
<a-input
:disabled="!loginBtn"
v-decorator="['phonecode',validatorRules.phoneCode]"
size="large"
type="text"
placeholder="请输入手机验证码">
<a-icon slot="prefix" type="message" :style="{ color: 'rgba(0,0,0,.25)' }"/>
</a-input>
</a-form-item>
</a-col>
<a-col :span="10">
<a-button
size="small"
type="primary"
htmlType="submit"
class="code-button"
@click.stop.prevent="getCode"
:disabled="!loginBtn">{{codeMsg}}
</a-button>
<!-- <j-graphic-code @success="generateCode" style="float: right"></j-graphic-code>-->
</a-col>
</a-row>
<a-form-item> <a-form-item>
<a-input <a-input
:disabled="!loginBtn" :disabled="!loginBtn"
...@@ -50,7 +75,7 @@ ...@@ -50,7 +75,7 @@
<a-icon slot="prefix" type="lock" :style="{ color: 'rgba(0,0,0,.25)' }"/> <a-icon slot="prefix" type="lock" :style="{ color: 'rgba(0,0,0,.25)' }"/>
</a-input> </a-input>
</a-form-item> </a-form-item>
<!-- <div class="register">忘记密码?<router-link :to="{path: '/user/register'}">找回密码</router-link></div>--> <div class="register">忘记密码?<router-link :to="{path: '/user/register'}">找回密码</router-link></div>
<a-form-item style="margin-top:24vw/@vw"> <a-form-item style="margin-top:24vw/@vw">
<a-button <a-button
...@@ -125,7 +150,6 @@ export default { ...@@ -125,7 +150,6 @@ export default {
created() { created() {
Vue.ls.remove(ACCESS_TOKEN) Vue.ls.remove(ACCESS_TOKEN)
this.getRouterData(); this.getRouterData();
this.browserTips();
}, },
methods: { methods: {
...mapActions(["Login", "Logout"]), ...mapActions(["Login", "Logout"]),
...@@ -150,6 +174,17 @@ export default { ...@@ -150,6 +174,17 @@ export default {
let data = { let data = {
username: username, username: username,
} }
getPhoneCode(data).then(res => {
if (res.code == 200) {
this.$notification.success({
message: res.message ? res.message :"发送成功",
});
return null;
}
this.$notification.error({
message: res.message ? res.message :"发送错误",
});
})
//初始化倒计时 //初始化倒计时
this.countdown=60; this.countdown=60;
this.timer = setInterval(() => { this.timer = setInterval(() => {
...@@ -174,11 +209,12 @@ export default { ...@@ -174,11 +209,12 @@ export default {
smsCode: "xxxx" smsCode: "xxxx"
}; };
// 使用账户密码登陆 // 使用账户密码登陆
that.form.validateFields(['username', 'password', 'inputCode'], {force: true}, (err, values) => { that.form.validateFields(['username', 'password', 'inputCode',"phonecode"], {force: true}, (err, values) => {
if (!err) { if (!err) {
loginParams.username = values.username; loginParams.username = values.username;
loginParams.password = encodeURIComponent(this.getPass(values.password)); loginParams.password = encodeURIComponent(this.getPass(values.password));
loginParams.remember = that.formLogin.remember; loginParams.remember = that.formLogin.remember;
loginParams.phonecode=encodeURIComponent(this.getPass(values.phonecode));
//console.log(loginParams); //console.log(loginParams);
that.Login(loginParams).then(() => { that.Login(loginParams).then(() => {
this.departConfirm({}); this.departConfirm({});
...@@ -290,54 +326,6 @@ export default { ...@@ -290,54 +326,6 @@ export default {
}); });
}) })
}, },
// 提示浏览器版本
browserTips() {
//取得浏览器的userAgent字符串
let userAgent = navigator.userAgent;
try {
//判断是否IE<11浏览器
let isIE = userAgent.indexOf("compatible") > -1 && userAgent.indexOf("MSIE") > -1;
//判断是否IE的Edge浏览器
let isEdge = userAgent.indexOf("Edge") > -1 && !isIE;
let isIE11 = userAgent.indexOf('Trident') > -1 && userAgent.indexOf("rv:11.0") > -1;
if (isIE) {
let reIE = new RegExp("MSIE (\\d+\\.\\d+);");
reIE.test(userAgent);
let fIEVersion = parseFloat(RegExp["$1"]);
if (fIEVersion == 7) {
this.$notification.error({
message: "系统不兼容 IE 7 浏览器,推荐使用Chrome。请到https://www.google.cn/chrome 下载。如果使用双核浏览器请切换极速模式!"
});
} else if (fIEVersion == 8) {
this.$notification.error({
message: "系统不兼容 IE 8 浏览器,推荐使用Chrome。请到https://www.google.cn/chrome 下载。如果使用双核浏览器请切换极速模式!"
});
} else if (fIEVersion == 9) {
this.$notification.error({
message: "系统不兼容 IE 9 浏览器,推荐使用Chrome。请到https://www.google.cn/chrome 下载。如果使用双核浏览器请切换极速模式!"
});
} else if (fIEVersion == 10) {
this.$notification.error({
message: "系统不兼容 IE 10 浏览器,推荐使用Chrome。请到https://www.google.cn/chrome 下载。如果使用双核浏览器请切换极速模式!"
});
} else {
this.$notification.error({
message: "系统不兼容 IE 6及其以下版本浏览器,推荐使用Chrome。请到https://www.google.cn/chrome 下载。如果使用双核浏览器请切换极速模式!"
});
}
} else if (isEdge) {
this.$notification.error({
message: "系统不兼容 IE Edge 浏览器,推荐使用Chrome。请到https://www.google.cn/chrome 下载。如果使用双核浏览器请切换极速模式!"
});
} else if (isIE11) {
this.$notification.error({
message: "系统不兼容 IE 11 浏览器,推荐使用Chrome。请到https://www.google.cn/chrome 下载。如果使用双核浏览器请切换极速模式!"
});
}
} finally {
console.log(userAgent);
}
}
} }
} }
</script> </script>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment