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