切换导航条
此项目
正在载入...
登录
朱兆平
/
vue_cli
·
提交
转到一个项目
GitLab
转到仪表盘
项目
活动
文件
提交
管道
0
构建
0
图表
里程碑
问题
0
合并请求
0
成员
标记
维基
派生
网络
创建新的问题
下载为
邮件补丁
差异文件
浏览文件
作者
朱兆平
3 years ago
提交
01549f7f4339bd9bc817f3808fbfe069bcce81c5
1 个父辈
22249871
修复获取用户信息BUG
显示空白字符变更
内嵌
并排对比
正在显示
6 个修改的文件
包含
212 行增加
和
33 行删除
src/api/user.js
src/common/init/sys_init.js
src/views/HomeNew.vue
src/views/Login.vue
src/views/nav1/role.vue
src/vuex/store.js
src/api/user.js
查看文件 @
01549f7
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
:
""
};
}
};
...
...
src/common/init/sys_init.js
查看文件 @
01549f7
...
...
@@ -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
{
...
...
src/views/HomeNew.vue
查看文件 @
01549f7
...
...
@@ -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="
edit
Pass">修改密码</el-dropdown-item>
<el-dropdown-item @click.native="
change
Pass">修改密码</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.setUserInfoStore(loginedUserInfo());
this.sysUserName = this.getUserInfoStore.username || '';
this.sysUserId=this.getUserInfoStore.userId||'';
this.sysUserAvatar = this.getUserInfoStore.userface || '~img/faceDefault.jpg';
}else {
this.setUserInfoStore(loginuserInfo);
}
},
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
...
...
src/views/Login.vue
查看文件 @
01549f7
...
...
@@ -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="密码" @key
up.enter.native="handleSubmit2
" show-password></el-input>
<el-input type="password" v-model="ruleForm2.checkPass" placeholder="密码" @key
down.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();
}
}
...
...
src/views/nav1/role.vue
查看文件 @
01549f7
...
...
@@ -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">5
0
</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">15
0
</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"> 承运人代码 </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,
departmentI
d:'',
departmenti
d:'',
type: '',
businessLicense: '',
customsRegCode: '',
...
...
@@ -394,12 +421,12 @@
description: '',
roleName: '',
roleSign: 1,
departmentI
d:'',
departmenti
d:'',
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中日期发生变化;
...
...
src/vuex/store.js
查看文件 @
01549f7
...
...
@@ -20,7 +20,8 @@ const state = {
companyId
:
0
,
companyName
:
''
,
realname
:
''
,
userface
:
''
userface
:
''
,
companyInfo
:{}
}
}
...
...
请
注册
或
登录
后发表评论