作者 朱兆平

修复获取用户信息BUG

import http from './http.js'
import jsutil from "@/common/js/util";
let baseUrl = '/cloud-user-center/user'
// let baseUrl = '/cloud-kako-user-center/user'
// let baseCode = '/cloud-kako-user-center/randCode'
... ... @@ -21,3 +22,21 @@ export const addUser = params => { return http.post(`${baseUrl}/add`,params)};
export const setUserRole = params => { return http.put(`${baseUrl}/roleset`,params)};
export const resetToken = params => { return http.put(`${baseUrl}/resetToken`,params)};
export const loginedUserInfo = () => {
console.log("获取用户信息:")
let session_user_info = sessionStorage.getItem('user');
if (session_user_info && jsutil.checkNull(session_user_info)){
let user = JSON.parse(sessionStorage.getItem('user'));
console.log("获取用户信息:"+sessionStorage.getItem('user'))
return user;
}else {
// Message({
// message:"未查询到用户缓存名称",
// type:"error",
// });
return {
username:""
};
}
};
... ...
... ... @@ -91,6 +91,16 @@ var axois_init = {
sessionStorage.removeItem('user');
sessionStorage.removeItem('menu');
sessionStorage.removeItem('token');
this.$store.commit('set_user_menu', []);
this.$store.commit('set_user_info', {
userId: 0,
username: '',
companyId: 0,
companyName: '',
realname: '',
userface: '',
companyInfo:{}
});
axios.defaults.headers.common['Authorization'] = undefined;
next()
}else{
... ...
... ... @@ -18,7 +18,7 @@
<el-dropdown-menu slot="dropdown">
<el-dropdown-item>用户:{{sysUserName}}</el-dropdown-item>
<el-dropdown-item>我的消息</el-dropdown-item>
<el-dropdown-item @click.native="editPass">修改密码</el-dropdown-item>
<el-dropdown-item @click.native="changePass">修改密码</el-dropdown-item>
<el-dropdown-item @click.native="updateCache">更新缓存</el-dropdown-item>
<el-dropdown-item divided @click.native="logout">退出登录</el-dropdown-item>
</el-dropdown-menu>
... ... @@ -29,16 +29,43 @@
<TabMenu></TabMenu>
</el-main>
</el-container>
<el-dialog title="修改密码" :visible.sync="dialogFormVisible">
<el-form :model="resetForm" status-icon :rules="resetFormRules" ref="resetForm" label-width="100px">
<el-form-item label="用户名" prop="name">
<span>{{sysUserName}}</span>
</el-form-item>
<el-row :gutter="1">
<el-col :span="11">
<el-form-item label=" " prop="newpwd">
<el-input type="password" v-model="resetForm.newpwd" autocomplete="off" show-password placeholder="8-20位字符在数字、小写、大写字母以及特殊字符中四选三">
<template slot="prepend">新密码</template>
</el-input>
</el-form-item>
</el-col>
<el-col :span="11">
<el-form-item label=" " prop="renewpwd">
<el-input type="password" v-model="resetForm.renewpwd" show-password auto-complete="off" placeholder="8-20位字符在数字、小写、大写字母以及特殊字符中四选三">
<template slot="prepend">确认密码</template>
</el-input>
</el-form-item>
</el-col>
</el-row>
<el-form-item>
<el-button type="primary" @click="submitEdit('resetForm')" style="float:right">提 交</el-button>
</el-form-item>
</el-form>
</el-dialog>
</el-container>
</template>
<script>
import rt from '../routes'
import { editPass,resetToken} from '../api/user';
import { editPass,resetToken,loginedUserInfo} from '../api/user';
import ElFormItem from "element-ui/packages/form/src/form-item";
import TabMenu from "@/components/TabMenu"
import NavMenu from "@/components/NavMenu"
import loginuserInfo from "@/api/base";
import {mapActions, mapGetters} from 'vuex'
import jsutil from "@/common/js/util";
... ... @@ -51,6 +78,48 @@
},
components: {ElFormItem,TabMenu,NavMenu},
data() {
var validatePass = (rule, value, callback) => {
if (!value) {
callback(new Error('请输入新密码'));
}else {
var ls=0;
if(value.match(/([a-z])+/)){
ls++;
} if(value.match(/([0-9])+/)){
ls++;
} if(value.match(/([A-Z])+/)){
ls++;
} if((/([\W])+/) && !value.match(/(![\u4E00-\u9FA5])+/)){
ls++;
} if (value.toString().length < 8 || value.toString().length > 20) {
callback(new Error('密码长度为8 - 20个字符'));
ls=0;
} if(value.match(/([\u4E00-\u9FA5])+/)){
callback(new Error('不能包含中文字符'));
ls=0;
}
switch (ls) {
case 0: this.passwordPercent = 0;callback(new Error('数字、小写字母、大写字母以及特殊字符中四选三'));break;
case 1: this.passwordPercent = 33;callback(new Error('数字、小写字母、大写字母以及特殊字符中四选三'));break;
case 2: this.passwordPercent = 66;callback(new Error('数字、小写字母 、大写字母以及特殊字符中四选三'));break;
case 3:
case 4: this.passwordPercent = 100;break;
default: this.passwordPercent = 0;break;
}
callback();
}
};
var validatePass2 = (rule, value, callback) => {
if (value === '') {
callback(new Error('请再次输入密码'));
} else if (value !== this.resetForm.newpwd) {
callback(new Error('两次输入密码不一致!'));
} else {
callback();
}
};
return {
rotate:false,
sysName:'',
... ... @@ -73,6 +142,19 @@
userId: '',
password: '',
},
dialogFormVisible:false,
resetForm: {
newpwd: '',
renewpwd: '',
},
resetFormRules: {
newpwd: [
{ required: true, validator: validatePass, trigger: 'blur' }
],
renewpwd: [
{ required: true, validator: validatePass2, trigger: 'blur' }
]
},
}
},
methods: {
... ... @@ -80,13 +162,10 @@
['setUserInfoStore','setUserMenuStore'] // 相当于this.$store.dispatch('modifyName'),提交这个方法
),
initUserInfo:function() {
if (jsutil.checkNull(this.getUserInfoStore.username)){
this.sysUserName = this.getUserInfoStore.username || '';
this.sysUserId=this.getUserInfoStore.userId||'';
this.sysUserAvatar = this.getUserInfoStore.userface || '~img/faceDefault.jpg';
}else {
this.setUserInfoStore(loginuserInfo);
}
this.setUserInfoStore(loginedUserInfo());
this.sysUserName = this.getUserInfoStore.username || '';
this.sysUserId=this.getUserInfoStore.userId||'';
this.sysUserAvatar = this.getUserInfoStore.userface || '~img/faceDefault.jpg';
},
reload() {
this.$nextTick(function () {
... ... @@ -143,7 +222,37 @@
//折叠导航栏
collapse:function(){
this.collapsed=!this.collapsed;
}
},
submitEdit(formName){
this.$refs[formName].validate((valid) => {
if (valid) {
this.editForm.userId=this.sysUserId;
this.editForm.password=this.resetForm.renewpwd;
editPass(this.editForm).then(res=>{
let response=res.data;
if(response.code=='200'){
this.$notify({
title: '密码修改成功',
message: '密码修改成功,退出请重新登录',
type: 'success'
});
this.dialogFormVisible=false;
}else{
this.$notify.error({
title: '密码修改失败',
message: '密码修改失败!!!'
});
}
});
} else {
console.log('error submit!!');
return false;
}
});
},
changePass:function(){
this.dialogFormVisible=true;
},
},
computed: {
...mapGetters(['getUserInfoStore','getUserMenuStore']) // 动态计算属性,相当于this.$store.getters.resturantName
... ...
... ... @@ -6,7 +6,7 @@
<el-input type="text" v-model="ruleForm2.account" autofocus placeholder="账号"></el-input>
</el-form-item>
<el-form-item prop="checkPass">
<el-input type="password" v-model="ruleForm2.checkPass" placeholder="密码" @keyup.enter.native="handleSubmit2" show-password></el-input>
<el-input type="password" v-model="ruleForm2.checkPass" placeholder="密码" @keydown.enter.native="keyDown" show-password></el-input>
</el-form-item>
<!-- <el-form-item prop="checkPass">-->
<!-- <el-input type="password" v-model="ruleForm2.checkPass" placeholder="密码" @keyup.enter.native="handleSubmit2"></el-input>-->
... ... @@ -112,6 +112,11 @@
});
},
keyDown(e) {
if(e.keyCode===13) { //用户点击了ctrl+enter触发
this.handleSubmit2()
}
},
handleSubmit2: function (ev) {
var _this = this;
this.$refs.ruleForm2.validate((valid) => {
... ... @@ -169,6 +174,7 @@
}
},
mounted:function () {
const _this = this
window.onresize = () => {
const windowWidth = document.body.clientWidth
const windowHeight = document.body.clientHeight
... ... @@ -196,6 +202,12 @@
}
}
window.onresize();
document.onkeydown = function (e) {
let key = window.event.keyCode;
if (key == 13) {
_this.handleSubmit2();
}
};
// this.randCode();
}
}
... ...
... ... @@ -22,22 +22,22 @@
<el-col :gutter="0" class="toolbar toobar_analysis" style="padding-top:0">
<el-col :span="7">
<div class="analysis_title">集团数量:</div>
<div class="analysis_text">2</div>
<div class="analysis_title">机构数量:</div>
<div class="analysis_text">20</div>
</el-col>
<el-col :span="1">
<el-divider direction="vertical"></el-divider>
</el-col>
<el-col :span="7">
<div class="analysis_title">公司数量:</div>
<div class="analysis_text">5</div>
<div class="analysis_text">50</div>
</el-col>
<el-col :span="1">
<el-divider direction="vertical"></el-divider>
</el-col>
<el-col :span="8">
<div class="analysis_title">数据量共:</div>
<div class="analysis_text">15</div>
<div class="analysis_text">150</div>
</el-col>
</el-col>
... ... @@ -96,19 +96,13 @@
<el-form-item label="上级组织机构">
<span>{{addForm.parentName}}</span>
</el-form-item>
<el-form-item label="组织机构名称" prop="roleName">
<el-input v-model="addForm.roleName" auto-complete="off" placeholder="请输入组织机构名称:例如:公司名称"></el-input>
</el-form-item>
<el-form-item label="组织机构描述" prop="description">
<el-input v-model="addForm.description" auto-complete="off" placeholder="组织机构描述:例如:组织机构简介"></el-input>
</el-form-item>
<el-form-item label="组织机构类型" prop="type">
<el-form-item label=" " prop="type">
<el-select
v-model="addForm.type"
filterable
allow-create
default-first-option
placeholder="请选择类型">
placeholder="组织机构类型">
<el-option
v-for="item in companyOption"
:key="item.value"
... ... @@ -117,14 +111,35 @@
</el-option>
</el-select>
</el-form-item>
<el-form-item label="工商企业代码" prop="businessLicense">
<el-input v-model="addForm.businessLicense" auto-complete="off" placeholder="社会信用代码或者组织机构代码"></el-input>
<el-form-item label=" " prop="roleName">
<el-input v-model="addForm.roleName" auto-complete="off" placeholder="请输入组织机构名称:例如:公司名称">
<template slot="prepend">组织机构名称</template>
</el-input>
</el-form-item>
<el-form-item label="海关备案代码" prop="customsRegCode">
<el-input v-model="addForm.customsRegCode" auto-complete="off" placeholder="海关备案后返回的备案代码"></el-input>
<el-form-item label=" " prop="description">
<el-input v-model="addForm.description" auto-complete="off" placeholder="组织机构描述:例如:组织机构简介">
<template slot="prepend">组织机构描述</template>
</el-input>
</el-form-item>
<el-form-item label="海关通道编号" prop="mqcode">
<el-input v-model="addForm.mqcode" auto-complete="off" placeholder="海关通道编号"></el-input>
<el-form-item label=" " prop="businessLicense">
<el-input v-model="addForm.businessLicense" auto-complete="off" placeholder="社会信用代码或者组织机构代码">
<template slot="prepend">企业信用代码</template>
</el-input>
</el-form-item>
<el-form-item label=" " prop="customsRegCode">
<el-input v-model="addForm.customsRegCode" auto-complete="off" placeholder="海关备案后返回的备案代码">
<template slot="prepend">海关备案代码</template>
</el-input>
</el-form-item>
<el-form-item label=" " prop="mqcode">
<el-input v-model="addForm.mqcode" auto-complete="off" placeholder="海关通道编号">
<template slot="prepend">海关通道编号</template>
</el-input>
</el-form-item>
<el-form-item label=" " prop="departmentid">
<el-input v-model="addForm.departmentid" auto-complete="off" placeholder="航司承运人代码,组织机构为航司时必填">
<template slot="prepend"> 承运人代码&nbsp;&nbsp;&nbsp; </template>
</el-input>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
... ... @@ -180,11 +195,23 @@
companyOption: [
{
label: "集团",
value: "集团"
value: "集团",
},
{
label: "公司",
value: "公司"
},
{
label: "部门",
value: "部门"
},
{
label: "航司",
value: "航司"
},
{
label: "货代",
value: "货代"
}
],
treeDefaultProps: {
... ... @@ -215,8 +242,8 @@
roleName: [
{ required: true, message: '请输入岗位/角色名称', trigger: 'blur' }
],
description: [
{ required: true, message: '请输入岗位/角色描述', trigger: 'blur' }
type: [
{ required: true, message: '请选择组织机构类型', trigger: 'blur' }
]
},
//新增界面数据
... ... @@ -224,7 +251,7 @@
description: '',
roleName: '',
roleSign: 1,
departmentId:'',
departmentid:'',
type: '',
businessLicense: '',
customsRegCode: '',
... ... @@ -394,12 +421,12 @@
description: '',
roleName: '',
roleSign: 1,
departmentId:'',
departmentid:'',
type: '',
businessLicense: '',
customsRegCode: '',
mqcode: '',
parentid: 0
parentid: 0,
};
//如果新增下级
... ... @@ -424,6 +451,7 @@
para.authorities = null;
para.permissions = null;
para.roles = null;
para.children = null;
// para.birth = (!para.birth || para.birth == '') ? '' : util.formatDate.format(new Date(para.birth), 'yyyy-MM-dd');
/*
查询之后格式this.filters.column.create_start_date中日期发生变化;
... ...
... ... @@ -20,7 +20,8 @@ const state = {
companyId: 0,
companyName: '',
realname: '',
userface: ''
userface: '',
companyInfo:{}
}
}
... ...