From 80e0b9da4d4da98452f8930b148750763d85f090 Mon Sep 17 00:00:00 2001
From: “dzb” <2632970487@qq.com>
Date: 星期二, 27 九月 2022 23:12:14 +0800
Subject: [PATCH] 修改用户管理和角色管理部分问题
---
src/views/systemSetting/baseSetting/user/components/main/index.vue | 6 +
src/views/login/index.vue | 4
src/views/layout/components/Header/index.vue | 2
src/router/index.js | 3
src/views/systemSetting/baseSetting/role/updateUser/index.vue | 42 +++++++++-
src/utils/request.js | 4
src/views/systemSetting/baseSetting/user/components/header/index.vue | 15 +++
src/main.js | 21 ++++-
src/views/systemSetting/baseSetting/user/components/updateUser/index.vue | 45 ++++++-----
src/views/systemSetting/baseSetting/user/components/createUser/index.vue | 42 +++++++---
src/views/systemSetting/baseSetting/user/index.vue | 5 +
src/App.vue | 24 +++++
src/views/systemSetting/baseSetting/role/index.vue | 27 ++----
13 files changed, 167 insertions(+), 73 deletions(-)
diff --git a/src/App.vue b/src/App.vue
index b646426..9879ab9 100644
--- a/src/App.vue
+++ b/src/App.vue
@@ -32,9 +32,9 @@
const pic = JSON.parse(sessionStorage.getItem('pic'));
if (pic) {
result = pic;
- console.log('缂撳瓨')
+ // console.log('缂撳瓨')
} else {
- console.log('璇锋眰');
+ // console.log('璇锋眰');
await this.$axios({
method: 'get',
url: 'sccg/system/portal/logo/search',
@@ -49,5 +49,23 @@
};
</script>
<style>
-
+ .el-select-dropdown__item{
+ height: 100%;
+}
+.el-select-dropdown,.popper-class{
+ background-color: #17324c;
+}
+.el-select-dropdown__item.hover, .el-select-dropdown__item:hover{
+ background-color: #17324c;
+}
+.el-tree{
+ background-color: #17324c;
+}
+.el-tree-node__content:hover, .el-upload-list__item:hover{
+ background-color: #09152f;
+ color: #4b9bb7;
+}
+.el-tree-node:focus>.el-tree-node__content{
+ background-color: #09152f;
+}
</style>
\ No newline at end of file
diff --git a/src/main.js b/src/main.js
index 8ea7900..ee2faad 100644
--- a/src/main.js
+++ b/src/main.js
@@ -9,12 +9,25 @@
import ElementUI from 'element-ui';
import "element-ui/lib/theme-chalk/index.css";
// 寮曞叆icons
-import './assets/icons'
+import './assets/icons'
// 寮曞叆鍏ㄥ眬鏍峰紡
-import '@/styles/index.scss'
+import '@/styles/index.scss'
import api from "./utils/request"
-Vue.prototype.$axios=api
-console.log(process.env.VUE_APP_BASE_API);
+Vue.prototype.$axios = api
+router.beforeEach((to, from, next) => {
+ if (to.meta.needLogin) {
+ const token = sessionStorage.getItem('token');
+ const tokenHead = sessionStorage.getItem('tokenHead');
+ if (token && tokenHead) {
+ next();
+ } else {
+ router.push("/login");
+ }
+ } else {
+ next();
+ }
+})
+// console.log(process.env.VUE_APP_BASE_API);
Vue.use(ElementUI);
new Vue({
router,
diff --git a/src/router/index.js b/src/router/index.js
index 709b9f6..0547632 100644
--- a/src/router/index.js
+++ b/src/router/index.js
@@ -11,6 +11,9 @@
path: '/home',
name: 'home',
component: () => import('@/views/layout'),
+ meta:{
+ needLogin:true,
+ },
children: [
{
path: 'system',
diff --git a/src/utils/request.js b/src/utils/request.js
index bd96090..05a07ae 100644
--- a/src/utils/request.js
+++ b/src/utils/request.js
@@ -5,8 +5,8 @@
// 鎷︽埅鍣�
// 璇锋眰
api.interceptors.request.use((config)=>{
- const token = localStorage.getItem('token');
- const tokenHead = localStorage.getItem('tokenHead');
+ const token = sessionStorage.getItem('token');
+ const tokenHead = sessionStorage.getItem('tokenHead');
if(token && tokenHead){
config.headers.Authorization = tokenHead+token;
}
diff --git a/src/views/layout/components/Header/index.vue b/src/views/layout/components/Header/index.vue
index 04cfe32..eba3484 100644
--- a/src/views/layout/components/Header/index.vue
+++ b/src/views/layout/components/Header/index.vue
@@ -24,6 +24,8 @@
},
methods:{
loginout(){
+ sessionStorage.removeItem('token');
+ sessionStorage.removeItem('tokenHead');
this.$router.push({path:"/login"})
}
}
diff --git a/src/views/login/index.vue b/src/views/login/index.vue
index 420d278..a13548a 100644
--- a/src/views/login/index.vue
+++ b/src/views/login/index.vue
@@ -120,9 +120,9 @@
if (response.code === 200) {
// 淇濆瓨token
console.log(response);
- localStorage.setItem('token',response.data.token);
+ sessionStorage.setItem('token',response.data.token);
// 淇濆瓨token
- localStorage.setItem('tokenHead',response.data.tokenHead)
+ sessionStorage.setItem('tokenHead',response.data.tokenHead)
// 璺宠浆鍒伴椤�
that.$router.push("/home");
}else{
diff --git a/src/views/systemSetting/baseSetting/role/index.vue b/src/views/systemSetting/baseSetting/role/index.vue
index 421728c..48e48ed 100644
--- a/src/views/systemSetting/baseSetting/role/index.vue
+++ b/src/views/systemSetting/baseSetting/role/index.vue
@@ -12,7 +12,7 @@
<div class="addUser">
<el-button class="addBtn" type="primary" @click="dialogCreate = true">鏂板缓瑙掕壊</el-button>
<el-dialog :visible.sync="dialogCreate" title="鏂板瑙掕壊" width="45%" v-if="dialogCreate">
- <createUser :refresh="getUserList" />
+ <createUser :refresh="context==='' ? getUserList : search" />
</el-dialog>
</div>
</div>
@@ -63,8 +63,8 @@
<!-- 鏌ョ湅淇敼椤甸潰 -->
<el-dialog :visible.sync="dialogUpdate" width="45%" :title="updateFlag ? '鏉冮檺璁剧疆' :'鏌ョ湅瑙掕壊淇℃伅'"
v-if="dialogUpdate">
- <updateUser :updateFlag="updateFlag" :userInfo=userInfo :getUserList=getUserList
- @changeDialog="changeDialog" />
+ <updateUser :updateFlag="updateFlag" :userInfo=userInfo
+ :getUserList=" context ? getUserList : getUserList" @changeDialog="changeDialog" />
</el-dialog>
<!-- 鍒嗛〉 -->
<div class="pagination">
@@ -167,37 +167,26 @@
if (res.code === 200) {
console.log(res);
res.data.list.forEach(item => {
- item.createTime = helper(item.createTime);
+ // item.createTime = helper(item.createTime);
item.status == 1 ? item.status = true : item.status = false;
})
- that.tableData = res.data.list
+ that.tableData = res.data.list;
+ this.totalNum = res.data.list.length;
}
})
} else {
this.$axios({
method: 'get',
- url: 'sccg/role/list?keyword='+context + '&pageNum=' + currentPage + '&pageSize=' + pageSize,
+ url: 'sccg/role/list?keyword=' + context + '&pageNum=' + currentPage + '&pageSize=' + pageSize,
}).then(res => {
if (res.code === 200) {
- console.log(2, res);
res.data.list.forEach(item => {
- item.createTime = helper(item.createTime);
item.status == 1 ? item.status = true : item.status = false;
})
that.tableData = res.data.list
- this.totalNum = res.data.length;
+ this.totalNum = res.data.list.length;
}
})
- // this.$axios.get('sccg/role/list?'+context).then(res => {
- // if (res.code === 200) {
- // console.log(2,res);
- // res.data.list.forEach(item => {
- // item.createTime = helper(item.createTime);
- // item.status == 1 ? item.status = true : item.status = false;
- // })
- // that.tableData = res.data.list
- // }
- // })
}
},
// 璁剧疆琛ㄦ牸鏂戦┈绾�
diff --git a/src/views/systemSetting/baseSetting/role/updateUser/index.vue b/src/views/systemSetting/baseSetting/role/updateUser/index.vue
index eb2c505..be1e238 100644
--- a/src/views/systemSetting/baseSetting/role/updateUser/index.vue
+++ b/src/views/systemSetting/baseSetting/role/updateUser/index.vue
@@ -10,7 +10,14 @@
</el-form-item>
<!-- 瑙掕壊绫诲瀷 -->
<el-form-item class="optionItems" label="瑙掕壊绫诲瀷:" prop="sort">
- <el-input v-model="role.sort" placeholder="璇烽�夋嫨瑙掕壊绫诲瀷" :disabled="!updateFlag"></el-input>
+ <!-- <el-input v-model="role.sort" placeholder="璇烽�夋嫨瑙掕壊绫诲瀷" :disabled="!updateFlag"></el-input> -->
+ <el-select v-model="role.sort" placeholder="璇烽�夋嫨瑙掕壊绫诲瀷">
+ <!-- v-for="item in roleList" :key="item.id" :label="item.departName"
+ :value="item.id" -->
+ <el-option :value="treeId" :label="treeLabel">
+ <el-tree :data="roleList" :props="defaultProps" @node-click="handleNodeClick"></el-tree>
+ </el-option>
+ </el-select>
</el-form-item>
<!-- 瑙掕壊鎻忚堪 -->
<el-form-item class="optionItem" label="瑙掕壊鎻忚堪:" prop="description">
@@ -78,26 +85,33 @@
{ required: false, trigger: "blur", validator: validateTruename },
],
},
+ roleList: [],
+ defaultProps: {
+ children: 'children',
+ label: 'title'
+ },
+ treeLabel:'',
+ treeId:23
}
},
created() {
const that = this;
this.userInfo.status ? this.userInfo.status = 1 : this.userInfo.status = 0;
this.role = JSON.parse(JSON.stringify(that.userInfo));
- console.log(this.role);
+ this.getMenuList();
},
methods: {
handleUser() {
this.$refs.user.validate((valid) => {
- console.log(valid);
if (valid) {
const { role } = this;
+ console.log(role);
this.$axios.post('/sccg/role/update/' + role.id, {
id: role.id,
status: role.status,
description: role.description,
name: role.name,
- sort:role.sort
+ sort: 0
}).then(res => {
this.$emit('changeDialog', { dialogUpdate: false });
this.getUserList();
@@ -106,6 +120,25 @@
return false;
}
})
+ },
+ // 鑾峰彇绯荤粺鑿滃崟
+ getMenuList() {
+ this.$axios({
+ method: 'get',
+ url: 'sccg/menu/treeList',
+ })
+ .then(res => {
+ this.roleList = res.data;
+ console.log(res);
+ })
+ },
+ // 鐐瑰嚮鏍戣妭鐐�
+ handleNodeClick({title,id}) {
+ // console.log(obj);
+ this.role.sort = title;
+ this.treeLabel = title;
+ this.treeId = id;
+
}
},
props: ['userInfo', 'updateFlag', 'getUserList', 'changeDialog']
@@ -175,4 +208,5 @@
border: 1px solid #17324c;
}
}
+
</style>
\ No newline at end of file
diff --git a/src/views/systemSetting/baseSetting/user/components/createUser/index.vue b/src/views/systemSetting/baseSetting/user/components/createUser/index.vue
index 76db6d1..c3b9f52 100644
--- a/src/views/systemSetting/baseSetting/user/components/createUser/index.vue
+++ b/src/views/systemSetting/baseSetting/user/components/createUser/index.vue
@@ -4,10 +4,10 @@
<div class="mainContent">
<el-form ref="user" label-width="140px" autoComplete="on" :model="user" :rules="createUserRules"
label-position="right">
- <!-- 鐢ㄦ埛鍚嶇О -->
+ <!-- 鐢ㄦ埛鍚嶇О
<el-form-item class="optionItem" label="鐢ㄦ埛鍚嶇О:" prop="nickName">
<el-input v-model="user.nickName" placeholder="濉啓鐢ㄦ埛鍚嶇О"></el-input>
- </el-form-item>
+ </el-form-item> -->
<!-- 鐢ㄦ埛瀵嗙爜 -->
<el-form-item class="optionItems" label="鐢ㄦ埛瀵嗙爜:" prop="password">
<el-input v-model="user.password" type="password" placeholder="璇疯緭鍏ョ敤鎴峰瘑鐮�"></el-input>
@@ -89,7 +89,7 @@
<div class="optionBtn">
<el-button type="primary" class="btn submit" @click.native.prevent="handleUser">鎻愪氦
</el-button>
- <el-button class="btn reset">閲嶇疆</el-button>
+ <el-button class="btn reset" @click.native.prevent="resetForm">閲嶇疆</el-button>
</div>
</el-form-item>
</el-form>
@@ -101,13 +101,13 @@
<script>
export default {
data() {
- const validateNickname = (rule, value, callback) => {
- if (!value) {
- callback(new Error("鐢ㄦ埛鍚嶇О涓嶈兘涓虹┖"));
- }else{
- callback();
- }
- };
+ // const validateNickname = (rule, value, callback) => {
+ // if (!value) {
+ // callback(new Error("鐢ㄦ埛鍚嶇О涓嶈兘涓虹┖"));
+ // }else{
+ // callback();
+ // }
+ // };
const validatePass = (rule, value, callback) => {
if (!value) {
callback(new Error("鐢ㄦ埛瀵嗙爜涓嶈兘涓虹┖"));
@@ -195,7 +195,7 @@
// };
return {
user: {
- nickName: '',
+ // nickName: '',
password: '',
username: '',
gender: 1,
@@ -215,9 +215,9 @@
ip: '',
},
createUserRules: {
- nickName: [
- { required: true, trigger: "blur", validator: validateNickname },
- ],
+ // nickName: [
+ // { required: true, trigger: "blur", validator: validateNickname },
+ // ],
password: [
{ required: true, trigger: "blur", validator: validatePass },
],
@@ -277,6 +277,7 @@
})
},
methods: {
+ // 鎻愪氦娉ㄥ唽
handleUser() {
this.$refs['user'].validate((valid) => {
console.log(valid);
@@ -296,7 +297,16 @@
}).then(res => {
if (res.code === 200) {
console.log(1);
+ this.$message({
+ type:'success',
+ message:res.code,
+ })
this.$emit('sendDialog', { flag: false });
+ }else if(res.code === 500 && res.message === "鎿嶄綔澶辫触"){
+ this.$message({
+ type:'warning',
+ message:'璇ョ敤鎴峰凡娉ㄥ唽'
+ })
}
})
}else{
@@ -313,6 +323,10 @@
.then(res => {
this.roleList = res.data;
})
+ },
+ // 閲嶇疆琛ㄥ崟
+ resetForm(){
+ this.$refs['user'].resetFields();
}
},
props: ['sendDialog']
diff --git a/src/views/systemSetting/baseSetting/user/components/header/index.vue b/src/views/systemSetting/baseSetting/user/components/header/index.vue
index 67dcb8d..48daecc 100644
--- a/src/views/systemSetting/baseSetting/user/components/header/index.vue
+++ b/src/views/systemSetting/baseSetting/user/components/header/index.vue
@@ -11,7 +11,8 @@
<div class="addUser">
<!-- :before-close="handleClose" -->
<el-button class="addBtn" type="primary" @click="dialogCreate = true">娣诲姞鐢ㄦ埛</el-button>
- <el-dialog :visible.sync="dialogCreate" title="鏂板璐︽埛" width="45%" v-if="dialogCreate">
+ <el-dialog :visible.sync="dialogCreate" title="鏂板璐︽埛" width="45%" v-if="dialogCreate"
+ :before-close="handleClose">
<createUser @sendDialog="sendDialog" />
</el-dialog>
</div>
@@ -37,7 +38,15 @@
sendDialog(flag) {
console.log(flag);
this.dialogCreate = flag.flag;
- this.$emit('setDialog', { flag:true })
+ this.$emit('setDialog', { flag: true })
+ },
+ handleClose(done) {
+ this.$confirm('纭鍏抽棴锛�')
+ .then(_ => {
+ this.dialogCreate = false;
+ done();
+ })
+ .catch(_ => { });
}
},
props: ['setDialog', 'getSearch', 'flag'],
@@ -95,7 +104,7 @@
padding: 12px 30px;
}
-
+
}
}
</style>
\ No newline at end of file
diff --git a/src/views/systemSetting/baseSetting/user/components/main/index.vue b/src/views/systemSetting/baseSetting/user/components/main/index.vue
index 394c7d4..c974a08 100644
--- a/src/views/systemSetting/baseSetting/user/components/main/index.vue
+++ b/src/views/systemSetting/baseSetting/user/components/main/index.vue
@@ -23,6 +23,9 @@
<el-table-column prop="jobTitle" label="鎵�灞炶亴鍔�" min-width="8">
</el-table-column>
<el-table-column prop="createTime" label="鍒涘缓鏃堕棿" min-width="10">
+ <template slot-scope="scope">
+ <span>{{changeTime(scope.row)}}</span>
+ </template>
</el-table-column>
<el-table-column prop="status" label="鍚敤" min-width="5">
<template slot-scope="scope">
@@ -111,6 +114,9 @@
this.getUserList();
},
methods: {
+ changeTime({createTime}){
+ return helper(createTime);
+ },
selectAll() {
this.$refs.multipleTable.toggleAllSelection();
diff --git a/src/views/systemSetting/baseSetting/user/components/updateUser/index.vue b/src/views/systemSetting/baseSetting/user/components/updateUser/index.vue
index 54363b8..6d37fec 100644
--- a/src/views/systemSetting/baseSetting/user/components/updateUser/index.vue
+++ b/src/views/systemSetting/baseSetting/user/components/updateUser/index.vue
@@ -68,8 +68,8 @@
</el-form-item> -->
<!-- 鎵�灞為儴闂� -->
<el-form-item class="optionItem" label="鎵�灞為儴闂�:" prop="departmentId">
- <el-select v-model="user.departmentId" placeholder="璇烽�夋嫨鎵�灞為儴闂�" :disabled="!flag.depart">
- <el-option v-for="item in departList" :key="item.name" :label="item.departName"
+ <el-select v-model="user.departmentId" placeholder="璇烽�夋嫨鎵�灞為儴闂�" :disabled="!flag.depart" @change="changeDepart">
+ <el-option v-for="item in departList" :key="item.id" :label="item.departName"
:value="item.id">
</el-option>
</el-select>
@@ -285,29 +285,32 @@
})
},
methods: {
+ changeDepart(data){
+ console.log(data);
+ this.departList.forEach(item=>{
+ if(item.id===data){
+ this.user.departName = item.departName;
+ }
+ })
+ },
+ // 淇敼鐢ㄦ埛淇℃伅
handleUser() {
this.$refs.user.validate((valid) => {
if (valid) {
const { user } = this;
- console.log(user);
- // for(let key in user){
- // if(user[key]===null){
- // user[key] = '';
- // }
- // }
- // user.status = String(user.status);
- // user.isDy = String(user.isDy);
- // user.userType = String(user.userType);
- // this.$axios({
- // method: 'post',
- // url: 'sccg/admin/update/' + user.id,
- // data: user
- // })
- // .then(res => {
- // console.log(res);
- // this.getUserList();
- // this.$emit('closeDialog', { flag: false });
- // })
+ this.$axios({
+ method: 'post',
+ url: 'sccg/admin/update/' + user.id,
+ data: user
+ })
+ .then(res => {
+ this.$message({
+ type:res.code===200 ? 'success' : 'warning',
+ message:res.message,
+ })
+ this.getUserList();
+ this.$emit('closeDialog', { flag: false });
+ })
} else {
return false;
}
diff --git a/src/views/systemSetting/baseSetting/user/index.vue b/src/views/systemSetting/baseSetting/user/index.vue
index 96b7aad..12891fd 100644
--- a/src/views/systemSetting/baseSetting/user/index.vue
+++ b/src/views/systemSetting/baseSetting/user/index.vue
@@ -18,6 +18,9 @@
keyword: '',
}
},
+ created(){
+
+ },
methods: {
// 鑾峰彇鎼滅储杩斿洖缁撴灉
getSearch({ text }) {
@@ -33,7 +36,7 @@
resetFresh({ flag }) {
this.isFresh = flag;
console.log(this.isFresh);
- }
+ },
}
}
</script>
--
Gitblit v1.8.0