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