From b9b2d3d63335fa9c72078e64f1ac1b365cf2d8dd Mon Sep 17 00:00:00 2001
From: “dzb” <2632970487@qq.com>
Date: 星期五, 21 十月 2022 00:10:27 +0800
Subject: [PATCH] 修改用户管理

---
 dist.rar                                                                 |    0 
 src/api/system/role.js                                                   |   28 
 src/components/Table/index.vue                                           |  141 ++--
 src/views/operate/management/message/index.vue                           |  279 +++++++++
 src/views/operate/myWait/index.vue                                       |   22 
 src/views/layout/components/Menu/index.vue                               |    9 
 src/utils/helper.js                                                      |   24 
 src/views/operate/disposal/casepool/pool/index.vue                       |    1 
 src/components/illdetail/index.vue                                       |    9 
 src/views/systemSetting/baseSetting/department/index.vue                 |    3 
 src/views/systemSetting/device/bayonet/index.vue                         |  268 ++------
 src/views/systemSetting/baseSetting/user/components/updateUser/index.vue |  452 ++++----------
 src/views/systemSetting/device/bayonet/create/index.vue                  |    8 
 src/store/operate/managenment/shortMessage/index.js                      |   14 
 src/views/operate/message/myIndex/createUser/index.vue                   |    1 
 src/views/systemSetting/baseSetting/user/components/main/index.vue       |   20 
 src/store/index.js                                                       |    4 
 src/views/operate/disposal/casepool/pool/createUser/vio/index.vue        |   83 +
 src/views/layout/components/Header/index.vue                             |    3 
 src/router/index.js                                                      |    7 
 src/views/operate/disposal/casepool/dispatch/index.vue                   |    6 
 /dev/null                                                                |    5 
 src/api/operate/management.js                                            |   16 
 src/store/system/bayonet/index.js                                        |   22 
 src/views/systemSetting/baseSetting/user/components/myView/index.vue     |  202 ++++++
 src/api/system/bayonet.js                                                |   29 
 src/components/solveProblem/index.vue                                    |   37 
 src/views/systemSetting/baseSetting/role/index.vue                       |   72 +-
 28 files changed, 1,092 insertions(+), 673 deletions(-)

diff --git a/dist.rar b/dist.rar
index 8482614..0f915f9 100644
--- a/dist.rar
+++ b/dist.rar
Binary files differ
diff --git a/src/api/operate/management.js b/src/api/operate/management.js
new file mode 100644
index 0000000..876f555
--- /dev/null
+++ b/src/api/operate/management.js
@@ -0,0 +1,16 @@
+import axios from "axios";
+import {getToken} from '@/utils/helper'
+const baseUrl = '/sccg/message_audit'
+const token = {
+    'Authorization':getToken()
+}
+export default {
+    // 鑾峰彇鐭俊瀹℃牳鍒楄〃
+    getMessageList: (data) => axios({
+        method: 'post',
+        url: baseUrl+'/list',
+        headers:{...token},
+        data: data
+    }),
+    // 
+};  
diff --git a/src/api/system/bayonet.js b/src/api/system/bayonet.js
new file mode 100644
index 0000000..e183620
--- /dev/null
+++ b/src/api/system/bayonet.js
@@ -0,0 +1,29 @@
+import axios from "axios";
+import {getToken} from '@/utils/helper'
+const baseUrl = '/sccg/equipment_bayonet'
+const token = {
+    'Authorization':getToken()
+}
+export default {
+    // 鑾峰彇鍗″彛鍒楄〃
+    getBayonetList: (data) => axios({
+        method: 'get',
+        url: baseUrl+'/query',
+        headers:{...token},
+        params: data
+    }),
+    // 瀵煎嚭鍗″彛璁惧
+    exportBayonetList:(data)=>axios({
+        method:'get',
+        url:baseUrl + '/export',
+        headers:{...token},
+        params:data
+    }),
+    // 鏂板鍗″彛
+    addBayonet:(data)=>axios({
+        method:'post',
+        url:baseUrl + '/addition',
+        headers:{...token},
+        data:data
+    })
+};  
diff --git a/src/api/system/role.js b/src/api/system/role.js
new file mode 100644
index 0000000..8b3d3b9
--- /dev/null
+++ b/src/api/system/role.js
@@ -0,0 +1,28 @@
+import axios from "axios";
+import {getToken} from '@/utils/helper'
+const baseUrl = '/sccg/role'
+const token = {
+    'Authorization':getToken()
+}
+export default {
+    // 鑾峰彇瑙掕壊鍒楄〃
+    getRoleList: (data) => axios({
+        method: 'get',
+        url: baseUrl+'/query',
+        headers:{...token},
+        params: data
+    }),
+    // 鑾峰彇瑙掕壊绫诲瀷
+    getRoleTypeList:() => axios({
+        method:'get',
+        url:baseUrl+'/query_operationType',
+        headers:{...token},
+    }),
+    // 瀵煎嚭鏃ュ織
+    exportLogs:(data)=>axios({
+        method:'post',
+        url:baseUrl+'/export',
+        headers:{...token},
+        params:data
+    })
+};  
diff --git a/src/components/Table/index.vue b/src/components/Table/index.vue
index 42c1d51..ca39951 100644
--- a/src/components/Table/index.vue
+++ b/src/components/Table/index.vue
@@ -12,22 +12,18 @@
                         <div v-if="item.type === 'text'">
                             {{scope.row[item.prop]}}
                         </div>
-                        <slot v-else name="operation" :info="scope">
-                            <div class="operationBox">
-                                <div class="divider" v-for="(child,index) in item.children" :key="child.operationName">
-                                    <!-- @click="backMykey(scope.$index,child.mykey)" -->
-                                    <span>{{child.operationName}}</span>
-                                    <el-divider direction="vertical" v-if="index !== item.children.length-1">
-                                    </el-divider>
-                                </div>
-                            </div>
+                        <slot v-else-if="item.type === 'operation'" name="operation" :info="scope">
+                            
                         </slot>
+                        <slot name="status" v-else-if="item.type === 'status'" :info="scope">
+                        </slot>
+                        <div class=""></div>
                     </template>
                 </el-table-column>
             </el-table>
         </div>
         <!-- tools -->
-        <div class="tools">
+        <div class="tools" v-if="pageShow">
             <div class="funs">
                 <div class="funsItem sp-item">
                     <el-checkbox v-model="all" @change="selectAll()">鍏ㄩ��</el-checkbox>
@@ -93,20 +89,25 @@
         // 寮圭獥
         openDialog: {
             type: Function,
-            default: () => {}
+            default: () => { }
         },
         // 鑾峰彇褰撳墠椤�
-        getCurrentPage:{
+        getCurrentPage: {
             type: Function,
-            default: () => {}
+            default: () => { }
         },
         // 鍒嗛〉鎬绘暟
-        totalNum:{
-            type:Number,
-            default:1
+        totalNum: {
+            type: Number,
+            default: 1
+        },
+        // 鏄惁灞曠ず鍒嗛〉
+        pageShow:{
+            type: Boolean,
+            default: false,
         }
     },
-    created(){
+    created() {
         this.myTotalNum = JSON.parse(JSON.stringify(this.totalNum));
     },
     computed: {
@@ -127,7 +128,7 @@
         // 褰撳墠椤垫敼鍙樿Е鍙戜簨浠�
         changeCurrentPage(page) {
             this.currentPage = page;
-            this.$emit('getCurrentPage',page);
+            this.$emit('getCurrentPage', page);
         },
         // 鍏ㄩ��
         selectAll() {
@@ -169,68 +170,72 @@
     .el-table {
         color: #4b9bb7;
     }
+
     .tools {
+        display: flex;
+        justify-content: space-between;
+        align-items: center;
+        padding: 0 20px;
+
+        .funs {
             display: flex;
-            justify-content: space-between;
-            align-items: center;
-            padding: 0 20px;
 
-            .funs {
-                display: flex;
-                .sp-item{
-                    border: 1px solid #17324c;
-                }
-                .funsItem {
-                    line-height: 28px;
-                    display: flex;
-                    align-items: center;
-                    border-radius: 4px;
-                    font-size: 12px;
-                    margin-left: 10px;
-
-                    .el-checkbox {
-                        width: 80px;
-                        padding: 0 10px;
-                    }
-
-                    .el-select {
-                        width: 120px;
-                    }
-
-                    &::v-deep .el-input__inner {
-                        border: none;
-                        background-color: #09152f;
-                    }
-                    
-                    &:hover .el-checkbox {
-                        color: #4b9bb7;
-                    }
-                }
-
+            .sp-item {
+                border: 1px solid #17324c;
             }
 
-            .pagination {
-                margin-top: 50px;
+            .funsItem {
+                line-height: 28px;
                 display: flex;
-                line-height: 50px;
-                justify-content: center;
+                align-items: center;
+                border-radius: 4px;
+                font-size: 12px;
+                margin-left: 10px;
 
-                .el-pagination {
+                .el-checkbox {
+                    width: 80px;
+                    padding: 0 10px;
+                }
 
-                    &::v-deep li,
-                    &::v-deep .btn-prev,
-                    &::v-deep .btn-next {
-                        background-color: #071f39;
-                        color: #4b9bb7;
-                    }
+                .el-select {
+                    width: 120px;
+                }
 
-                    &::v-deep .active {
-                        background-color: #409eff;
-                        color: #fff;
-                    }
+                &::v-deep .el-input__inner {
+                    border: none;
+                    background-color: #09152f;
+                }
+
+                &:hover .el-checkbox {
+                    color: #4b9bb7;
+                }
+            }
+
+        }
+
+        .pagination {
+            margin-top: 50px;
+            display: flex;
+            line-height: 50px;
+            justify-content: center;
+
+            .el-pagination {
+
+                &::v-deep li,
+                &::v-deep .btn-prev,
+                &::v-deep .btn-next {
+                    background-color: #071f39;
+                    color: #4b9bb7;
+                }
+
+                &::v-deep .active {
+                    background-color: #409eff;
+                    color: #fff;
                 }
             }
         }
+    }
+
     &::v-deep .warning-row {
         background-color: #06122c;
     }
diff --git a/src/components/illdetail/index.vue b/src/components/illdetail/index.vue
index b2ae36c..700cca5 100644
--- a/src/components/illdetail/index.vue
+++ b/src/components/illdetail/index.vue
@@ -7,7 +7,7 @@
                         <span class="data-detail">杩濆缓</span>
                     </el-form-item>
                     <el-form-item label="杩濆缓绫诲埆:">
-                        <span class="data-detail">{{baseCase.illegalBuilding.categoryText}}</span>
+                        <span class="data-detail">{{baseCase.categoryText}}</span>
                     </el-form-item>
                 </div>
                 <div class="data-item">
@@ -27,7 +27,7 @@
                 </div>
                 <div class="data-item">
                     <el-form-item label="杩濆缓鍦扮偣:">
-                        <span class="data-detail">{{baseCase.illegalBuilding.site}}</span>
+                        <span class="data-detail">{{baseCase.site}}</span>
                     </el-form-item>
                     <el-form-item label="鎵�灞炵ぞ鍖�:">
                         <span class="data-detail">{{baseCase.communityText}}</span>
@@ -150,15 +150,16 @@
 
     .view-data {
         color: #4b9bb7;
-        flex: 4;
+        // flex: 4;
         padding: 0 30px 0 20px;
         img{
             width: 100px;
             height: 100px;
+            border-radius: 4px;
         }
         .data-item {
             display: flex;
-            justify-content: space-between;
+            // justify-content: space-between;
             line-height: 20px;
         }
 
diff --git a/src/components/solveProblem/index.vue b/src/components/solveProblem/index.vue
index 414bece..6e36f23 100644
--- a/src/components/solveProblem/index.vue
+++ b/src/components/solveProblem/index.vue
@@ -8,9 +8,11 @@
             <el-timeline>
                 <el-timeline-item :color="mycolor" v-for="item in list" :key="item.id">
                     <div class="title">
-                        <div class="title-left">銆恵{item.name}}銆戝鐞嗕汉: {{item.disposeRecords && item.disposeRecords.length != 0 ?  item.disposeRecords[0].handlerText:''}}
+                        <div class="title-left">銆恵{item.name}}銆戝鐞嗕汉: {{item.disposeRecords && item.disposeRecords.length
+                        != 0 ? item.disposeRecords[0].handlerText:''}} {{item.disposeRecords && item.disposeRecords.length}}
                         </div>
-                        <div class="title-right">{{item.disposeRecords.length !==0 ? filterTime(item.disposeRecords[0].endTime):''}}
+                        <div class="title-right">{{item.disposeRecords.length !==0 ?
+                        filterTime(item.disposeRecords[0].endTime):''}}
                         </div>
                     </div>
                     <div class="message">{{filterPerson(item.name)}}</div>
@@ -21,7 +23,7 @@
 </template> 
 <script>
 import helper from '@/utils/mydate'
-import {computeTime} from '@/utils/helper'
+import { computeTime } from '@/utils/helper'
 export default {
     data() {
         return {
@@ -33,9 +35,11 @@
     props: ['handlePassVo', 'baseCase'],
     created() {
         const { handlePassVo: mylist, baseCase } = this;
-        console.log(baseCase, mylist); 
+        console.log(baseCase, mylist);
         if (mylist) {
-            this.list = mylist.workflowConfigSteps;
+            this.list = mylist.workflowConfigSteps.filter(item => {
+                return item.id !== 2
+            });
         }
         if (baseCase.dispatchInfo) {
             this.dispatchInfo = baseCase.dispatchInfo;
@@ -44,32 +48,31 @@
     methods: {
         // 鑾峰緱鎰忚
         filterPerson(name) {
-            const { baseCase, dispatchInfo } = this;
+            const { dispatchInfo } = this;
             if (name === '璋冨害') {
                 return '銆愭淳閬f剰瑙併��' + dispatchInfo.dispatchOpinion
             } else if (name === '鏍告煡') {
-                return '銆愭牳鏌ョ粨鏋溿��' + baseCase.handlingOpinion
+                return '銆愭牳鏌ョ粨鏋溿��'
             } else if (name === '缁撴') {
-                return '銆愯瘎瀹氱粨鏋溿��' + baseCase.finalOpinion
-            } else {
-                return '銆愬鐞嗙粨鏋溿��' + baseCase.handlingOpinion
+                return '銆愯瘎瀹氱粨鏋溿��'
             }
+            return
         },
         // 澶勭悊鏃堕棿
-        filterTime(time){
-            if(time){
+        filterTime(time) {
+            if (time) {
                 return helper(time)
-            }else{
+            } else {
                 return
             }
-            
+
         },
         // 鑾峰緱鍓╀綑鏃堕棿
-        getRestTime(limitTime){
-            if(limitTime){
+        getRestTime(limitTime) {
+            if (limitTime) {
                 return computeTime(limitTime)
             }
-            return 
+            return
         }
     }
 }
diff --git a/src/router/index.js b/src/router/index.js
index 035541c..4c1fc58 100644
--- a/src/router/index.js
+++ b/src/router/index.js
@@ -202,7 +202,12 @@
                 path: 'myIndex',
                 name: 'myIndex',
                 component: () => import('@/views/operate/management/myIndex'),
-              }
+              },
+              {
+                path: 'managementMessage',
+                name: 'managementMessage',
+                component: () => import('@/views/operate/management/message'),
+              },
             ]
           },
           {
diff --git a/src/store/index.js b/src/store/index.js
index 3b44862..6a2d4a6 100644
--- a/src/store/index.js
+++ b/src/store/index.js
@@ -2,6 +2,8 @@
 import Vuex from 'vuex'
 import users from "./users"
 import logs from "./logs"
+import bayonet from './system/bayonet'
+import shortMessage from './operate/managenment/shortMessage'
 Vue.use(Vuex)
 
 export default new Vuex.Store({
@@ -14,6 +16,6 @@
   actions: {
   },
   modules: {
-    users,logs
+    users,logs,bayonet,shortMessage
   }
 })
diff --git a/src/store/operate/managenment/shortMessage/index.js b/src/store/operate/managenment/shortMessage/index.js
new file mode 100644
index 0000000..894f93a
--- /dev/null
+++ b/src/store/operate/managenment/shortMessage/index.js
@@ -0,0 +1,14 @@
+import mangenmentApi from "@/api/operate/management";
+// import { Message } from "element-ui";
+export default {
+  namespaced: true,
+  state: {
+    userInfo: {},
+  },
+  actions: {
+    async getMessageList({ state }, params) {
+      const res = await mangenmentApi.getMessageList(params);
+      return res;
+    },
+  },
+};
diff --git a/src/store/system/bayonet/index.js b/src/store/system/bayonet/index.js
new file mode 100644
index 0000000..aaf1c3f
--- /dev/null
+++ b/src/store/system/bayonet/index.js
@@ -0,0 +1,22 @@
+import bayonetApi from "@/api/system/bayonet";
+// import { Message } from "element-ui";
+export default {
+  namespaced: true,
+  state: {
+    userInfo: {},
+  },
+  actions: {
+    async getBayonetList({ state }, params) {
+      const res = await bayonetApi.getBayonetList(params);
+      return res;
+    },
+    async exportBayonetList({ state },params) {
+      const res = await bayonetApi.exportBayonetList(params);
+      return res;
+    },
+    async addBayonet({ state },params) {
+      const res = await bayonetApi.addBayonet(params);
+      return res;
+    },
+  },
+};
diff --git a/src/utils/helper.js b/src/utils/helper.js
index 2c1f075..1df5e96 100644
--- a/src/utils/helper.js
+++ b/src/utils/helper.js
@@ -33,6 +33,30 @@
         })
     return arr;
 }
+export async function myDownLoad(arr){
+    let fileName = arr.headers['content-disposition'];
+            console.log(fileName);
+            if (fileName) {
+                fileName = fileName.slice(fileName.indexOf('filename=') + 9);
+            }
+            const blob = new Blob([arr.data], {
+                type: 'application/octet-stream'
+            })
+            // content-disposition
+            const downloadElement = document.createElement('a')
+            // 鍒涘缓涓嬭浇鐨勯摼鎺�
+            const href = window.URL.createObjectURL(blob)
+            downloadElement.href = href
+            // // 涓嬭浇鍚庢枃浠跺悕
+            downloadElement.download = fileName
+            document.body.appendChild(downloadElement)
+            // 鐐瑰嚮涓嬭浇
+            downloadElement.click()
+            // 涓嬭浇瀹屾垚绉婚櫎鍏冪礌
+            document.body.removeChild(downloadElement)
+            // 閲婃斁鎺塨lob瀵硅薄
+            window.URL.revokeObjectURL(href)
+}
 // 鑾峰彇token
 export function getToken() {
     const token = sessionStorage.getItem('token');
diff --git a/src/views/layout/components/Header/index.vue b/src/views/layout/components/Header/index.vue
index 7570cb8..60dbf0b 100644
--- a/src/views/layout/components/Header/index.vue
+++ b/src/views/layout/components/Header/index.vue
@@ -130,8 +130,7 @@
         cancelButtonText: '鍙栨秷',
         type: 'warning'
       }).then(() => {
-        sessionStorage.removeItem('token');
-        sessionStorage.removeItem('tokenHead');
+        sessionStorage.clear();
         this.$router.push({ path: "/login" })
       }).catch(err => {
         console.log(err);
diff --git a/src/views/layout/components/Menu/index.vue b/src/views/layout/components/Menu/index.vue
index acc142b..7a0c60f 100644
--- a/src/views/layout/components/Menu/index.vue
+++ b/src/views/layout/components/Menu/index.vue
@@ -72,7 +72,14 @@
               <el-menu-item index="/home/operate/casepool/learn">鍐嶅涔犵鐞�</el-menu-item>
               <el-menu-item index="/home/operate/casepool/notDeal">鏆備笉澶勭悊</el-menu-item>
             </el-submenu>
-            <el-menu-item index="/home/operate/management">瀹℃牳绠$悊</el-menu-item>
+            <el-submenu index="/home/operate/management" class="secondMenu">
+              <template slot="title">
+                <span class="secondSpan">瀹℃牳绠$悊</span>
+              </template>
+              <el-menu-item index="/home/operate/management">瀹℃牳绠$悊</el-menu-item>
+              <el-menu-item index="/home/operate/management/managementMessage">鐭俊瀹℃牳绠$悊</el-menu-item>
+              <!-- <el-menu-item index="/home/operate/baseSetting/threepack">闂ㄥ墠涓夊寘璁剧疆</el-menu-item> -->
+            </el-submenu>
             <el-menu-item index="/home/operate/myWait">鎴戠殑寰呭姙</el-menu-item>
             <el-submenu index="/home/operate/rectification" class="secondMenu">
               <template slot="title">
diff --git a/src/views/operate/disposal/casepool/dispatch/index.vue b/src/views/operate/disposal/casepool/dispatch/index.vue
index 78a7bbf..fb5bc52 100644
--- a/src/views/operate/disposal/casepool/dispatch/index.vue
+++ b/src/views/operate/disposal/casepool/dispatch/index.vue
@@ -58,7 +58,7 @@
                         </template>
                     </el-table-column>
                     <el-table-column :prop="mystatus === 1 ? 'street' :'buildingArea'"
-                        :label="mystatus===1 ? '鎵�灞炲尯鍩�' : '杩濇硶寤虹瓚闈㈢Н'" min-width="10">
+                        :label="mystatus===1 ? '鎵�灞炲尯鍩�' : '杩濇硶寤虹瓚闈㈢Н'" min-width="12">
                     </el-table-column>
                     <el-table-column prop="alarmTime" label="鎶ヨ鏃堕棿" min-width="15" v-if="mystatus===1">
                         <template slot-scope="scope">
@@ -66,9 +66,9 @@
                         </template>
                     </el-table-column>
                     <el-table-column :prop="mystatus === 1 ? 'continueTime' :'materials'"
-                        :label="mystatus===1 ? '鎸佺画鏃堕棿' : '杩濇硶寤虹瓚鏉愭枡'" min-width="10">
+                        :label="mystatus===1 ? '鎸佺画鏃堕棿' : '杩濇硶寤虹瓚鏉愭枡'" min-width="12">
                     </el-table-column>
-                    <el-table-column prop="operation" label="鎿嶄綔" min-width="20">
+                    <el-table-column prop="operation" label="鎿嶄綔" min-width="15">
                         <template slot-scope="scope">
                             <div class="operation">
                                 <div class="btn">
diff --git a/src/views/operate/disposal/casepool/pool/createUser/vio/index.vue b/src/views/operate/disposal/casepool/pool/createUser/vio/index.vue
index 853168f..b3348c0 100644
--- a/src/views/operate/disposal/casepool/pool/createUser/vio/index.vue
+++ b/src/views/operate/disposal/casepool/pool/createUser/vio/index.vue
@@ -47,10 +47,9 @@
                     <!-- 妗堢敱 -->
                     <el-form-item class="optionItem anyou" label="妗堢敱:" prop="actionCause">
                         <el-select v-model="vio.actionCause" placeholder="璇疯緭鍏ユ鐢�" filterable @blur="selectBlur">
-                            <el-option v-for="item in anYouList" :key="item.id" :label="item.name" :value="item.name" >
+                            <el-option v-for="item in anYouList" :key="item.id" :label="item.name" :value="item.name">
                             </el-option>
                         </el-select>
-                        <!-- <el-input v-model="vio.actionCause" placeholder="璇疯緭鍏ユ鐢�"></el-input> -->
                     </el-form-item>
                     <!-- 鎵�灞炲尯鍘� -->
                     <!-- <el-form-item class="optionItems" label="鎵�灞炲尯鍘�:" prop="status">
@@ -64,16 +63,16 @@
                         <!-- 鎵�灞炶閬� -->
                         <el-form-item class="optionItems" label="鎵�灞炶閬�:" prop="streetId">
                             <el-select v-model="vio.streetId" placeholder="璇烽�夋嫨鎵�灞炶閬�" @change="handleStreet">
-                                <el-option v-for="item in streetList" :key="item.id" :label="item.name" :value="item.id"
-                                    :disabled="item.disabled">
+                                <el-option v-for="item in streetList" :key="item.id" :label="item.regionName" :value="item.id"
+                                    >
                                 </el-option>
                             </el-select>
                         </el-form-item>
                         <!-- 鎵�灞炵ぞ鍖� -->
                         <el-form-item class="optionItems" label="鎵�灞炵ぞ鍖�:" prop="communityId">
                             <el-select v-model="vio.communityId" placeholder="璇烽�夋嫨鎵�灞炵ぞ鍖�">
-                                <el-option v-for="item in communityList" :key="item.id" :label="item.name"
-                                    :value="item.id" :disabled="item.disabled">
+                                <el-option v-for="item in communityList" :key="item.id" :label="item.regionName"
+                                    :value="item.id" >
                                 </el-option>
                             </el-select>
                         </el-form-item>
@@ -106,11 +105,18 @@
                             v-model="vio.description">
                         </el-input>
                     </el-form-item>
-                    <!-- 鎶ヨ鏃堕棿 -->
-                    <el-form-item class="optionItems" label="鎶ヨ鏃堕棿:" prop="alarmTime">
-                        <el-date-picker v-model="vio.alarmTime" type="datetime" placeholder="閫夋嫨鎶ヨ鏃堕棿">
-                        </el-date-picker>
-                    </el-form-item>
+                    <div class="user-item">
+                        <!-- 鎶ヨ鏃堕棿 -->
+                        <el-form-item class="optionItems" label="鎶ヨ鏃堕棿:" prop="alarmTime">
+                            <el-date-picker v-model="vio.alarmTime" type="datetime" placeholder="閫夋嫨鎶ヨ鏃堕棿">
+                            </el-date-picker>
+                        </el-form-item>
+                        <!-- 璋冨害鏃堕檺 -->
+                        <el-form-item class="optionItems" label="璋冨害鏃堕檺:" prop="limitTime">
+                            <el-date-picker v-model="vio.limitTime" type="datetime" placeholder="閫夋嫨璋冨害鏃堕檺">
+                            </el-date-picker>
+                        </el-form-item>
+                    </div>
                     <!-- 濉啓鍙嶆槧浜轰俊鎭� -->
                     <el-form-item class="optionItems" label="濉啓鍙嶆槧浜轰俊鎭�">
                     </el-form-item>
@@ -141,8 +147,8 @@
 <script>
 import MyMap from '@/components/map'
 import { validateName, validatePhone, validateCarNum, validateCardId } from '@/utils/validate'
-import {getTypeList} from '@/utils/helper'
-import {parseTime} from "@/utils/index"
+import { getTypeList } from '@/utils/helper'
+import { parseTime } from "@/utils/index"
 export default {
     components: {
         MyMap
@@ -254,6 +260,13 @@
                 }
             }
         }
+        const checkLimit = (rule, value, callback) => {
+            if (value) {
+                callback();
+            } else {
+                callback(new Error('璋冨害鏃堕檺鏃堕棿涓嶈兘涓虹┖'))
+            }
+        }
         return {
             vio: {
                 actionCause: "",//妗堢敱
@@ -271,7 +284,8 @@
                 streetId: '',//鎵�灞炶閬�
                 typeId: '',//灏忕被
                 gradeId: '',//妗堜欢绛夌骇
-                alarmTime: ''
+                alarmTime: '',
+                limitTime: '',//璋冨害鏃堕檺
             },
             createRoleRules: {
                 //妗堢敱
@@ -353,6 +367,11 @@
                     {
                         required: true, trigger: 'change', validator: checkDate
                     }
+                ],
+                limitTime: [
+                    {
+                        required: true, trigger: 'change', validator: checkLimit
+                    }
                 ]
 
             },
@@ -379,7 +398,7 @@
         console.log(this.mytype);
         this.vio.category = this.mytype + 1;
         setBigKindList();
-        getStreetList();
+        getStreetList(0);
         getEventLevel();
     },
     methods: {
@@ -435,7 +454,7 @@
         },
         // 鑾峰彇妗堜欢绛夌骇鍒楄〃
         async getEventLevel() {
-            this.eventLevelList = await getTypeList(1,'02');
+            this.eventLevelList = await getTypeList(1, '02');
         },
         // 鏌ヨ鎵�灞炴鐢�
         async getAnYouList() {
@@ -460,7 +479,8 @@
                         url: 'sccg/base_case/addition_violation',
                         data: {
                             ...vio,
-                            alarmTime:parseTime(vio.alarmTime),
+                            alarmTime: parseTime(vio.alarmTime),
+                            limitTime:parseTime(vio.limitTime),
                         }
                     })
                         .then(res => {
@@ -489,8 +509,18 @@
             this.$emit('changeDialog', { flag: false })
         },
         // 鑾峰彇琛楅亾淇℃伅
-        async getStreetList() {
-            this.streetList = await getTypeList(1,'10');
+        async getStreetList(id) {
+            let arr
+            await this.$axios({
+                method:'get',
+                url:`sccg/sccg_region/getChildren/${id}`,
+            })
+            .then(res=>{
+                if(res.code === 200){
+                    arr = res.data;
+                }
+            })
+            this.streetList = arr;
         },
         // 琛楅亾鏇存敼
         handleStreet(id) {
@@ -499,7 +529,7 @@
             // this.communityList = getTypeList(1,'11')
             this.$axios({
                 method: 'get',
-                url: 'sccg/dict/query_social_type?id=' + id
+                url: `sccg/sccg_region/getChildren/${id}`
             })
                 .then(res => {
                     this.communityList = res.data;
@@ -521,8 +551,8 @@
             this.setAnYouList(id);
         },
         // 妗堢敱杈撳叆
-        selectBlur(e){
-            if(e.target.value){
+        selectBlur(e) {
+            if (e.target.value) {
                 this.vio.actionCause = e.target.value;
                 console.log(e.target.value);
             }
@@ -537,7 +567,7 @@
     padding: 20px 10px 50px;
 
     .input-area {
-        flex: 1;
+        flex: 3;
         padding: 10px 20px;
 
         .input-header {
@@ -584,10 +614,11 @@
     }
 
     .map-area {
-        flex: 1;
+        flex: 2;
     }
-    .anyou{
-        :deep(.el-select){
+
+    .anyou {
+        :deep(.el-select) {
             display: block;
         }
     }
diff --git a/src/views/operate/disposal/casepool/pool/index.vue b/src/views/operate/disposal/casepool/pool/index.vue
index 2976df9..cd0bff0 100644
--- a/src/views/operate/disposal/casepool/pool/index.vue
+++ b/src/views/operate/disposal/casepool/pool/index.vue
@@ -422,6 +422,7 @@
                     item.checked = false;
                 }
             })
+            this.mystatus = 1
             this.typeList[0].checked = true;
             this.typeList[1].checked = false;
             this.statusArr[0] = this.tagList[idx].value;
diff --git a/src/views/operate/management/message/index.vue b/src/views/operate/management/message/index.vue
new file mode 100644
index 0000000..cd90cf5
--- /dev/null
+++ b/src/views/operate/management/message/index.vue
@@ -0,0 +1,279 @@
+<template>
+    <div class="message">
+        <header>
+            <div class="header-title">绛涢�夋潯浠�</div>
+            <div class="header-content">
+                <div class="search">
+                    <span>ID:</span>
+                    <el-input placeholder="ID" v-model="context"></el-input>
+                </div>
+                <div class="status">
+                    <span>鐭俊鐘舵��:</span>
+                    <el-radio-group v-model="status">
+                        <el-radio :label="0">寰呭鏍�</el-radio>
+                        <el-radio :label="1">宸插鏍�</el-radio>
+                    </el-radio-group>
+                </div>
+                <div class="btns">
+                    <el-button type="primary" icon="el-icon-search">鏌ヨ</el-button>
+                    <el-button icon="el-icon-delete-solid">閲嶇疆</el-button>
+                </div>
+            </div>
+        </header>
+        <main>
+            <div class="main-content">
+                <div class="main-title">
+                    鏁版嵁鍒楄〃
+                </div>
+                <!-- 鏁版嵁灞曠ず -->
+                <MyTable :tableOption="tableOption" :tableData="list" :pageShow="false">
+                    <template #operation="info">
+                        <el-link :underline="false" style="color:#4b9bb7">缂栬緫</el-link>
+                    </template>
+                </MyTable>
+            </div>
+        </main>
+        <footer>
+
+        </footer>
+    </div>
+</template>
+<script>
+import MyTable from '@/components/Table'
+import { myDownLoad } from '@/utils/helper'
+import { createNamespacedHelpers } from "vuex";
+const { mapActions } = createNamespacedHelpers("shortMessage");
+export default {
+    components: {
+        MyTable,
+    },
+    data() {
+        return {
+            context: '',
+            status:0,
+            options: [
+                {
+                    value: 0,
+                    label: '绂荤嚎',
+                },
+                {
+                    value: 1,
+                    label: '鍦ㄧ嚎',
+                }
+            ],
+            list: [],
+            current: 1,
+            pageSize: 10,
+            total:1,
+            tableOption: {
+                group: [
+                    {
+                        label: 'ID',
+                        type: 'text',
+                        prop: 'messageId',
+                        'min-width':8
+                    },
+                    {
+                        label: '鐭俊鏍囬',
+                        type: 'text',
+                        prop: 'latitude',
+                        'min-width':12
+                    },
+                    {
+                        label: '鐭俊鍐呭',
+                        type: 'text',
+                        prop: 'text',
+                        'min-width':12
+                    },
+                    {
+                        label: '鐭俊绛惧悕',
+                        type: 'text',
+                        prop: 'ipAddress',
+                        'min-width':10
+                    },
+                    {
+                        label: '鏇存柊鏃堕棿',
+                        type: 'time',
+                        prop: 'updateTime',
+                        'min-width':12
+                    },
+                    {
+                        label: '鏇存柊浜�',
+                        type: 'text',
+                        prop: 'updateUser',
+                        'min-width':8
+                    },
+                    {
+                        label: '鎿嶄綔',
+                        type: 'operation',
+                        prop: 'operation',
+                        'min-width':15
+                    },
+                ]
+            },
+        }
+    },
+    created() {
+        const { setTableData } = this;
+        setTableData();
+    },
+    methods: {
+        // 寮圭獥鍏抽棴
+        handleClose(done) {
+            this.$confirm('纭鍏抽棴?')
+                .then(_ => {
+                    done();
+                })
+        },
+        ...mapActions(['getMessageList']),
+        // 璁剧疆tableData
+        async setTableData() {
+            const { current, pageSize, context } = this;
+            let arr = await this.getMessageList({
+                current,pageSize,messageId:parseFloat(context)
+            })
+            this.list = arr.data.data.records
+            this.total = arr.data.data.total
+        },
+    }
+}
+</script>
+<style lang="scss" scoped>
+.message {
+    text-align: left;
+    margin: 10px 20px;
+    color: #4b9bb7;
+
+    header {
+        background-color: #09152f;
+        border: 1pox solid #fff;
+        .header-title{
+            line-height: 40px;
+            padding: 0 20px;
+            border-bottom: 1px solid #4b9bb7;
+        }
+        .header-content {
+            padding: 0 40px;
+            display: flex;
+            line-height: 100px;
+            justify-content: space-between;
+            align-items: center;
+
+            .search {
+                display: flex;
+                justify-content: flex-start;
+
+                span {
+                    flex: 1;
+                }
+
+                .el-input {
+                    flex: 2;
+                    color: #1d3f57;
+
+                    &::v-deep .el-input__inner {
+                        background-color: #09152f;
+                        border: 1px solid #17324c;
+                    }
+                }
+
+            }
+        }
+    }
+
+    main {
+        background-color: #09152f;
+        margin-top: 20px;
+        padding-bottom: 50px;
+        border: 1pox solid #fff;
+
+        .main-title {
+            line-height: 60px;
+            padding: 10px 20px;
+        }
+
+        .tools {
+            display: flex;
+            justify-content: space-between;
+            align-items: center;
+            padding: 0 20px;
+
+            .funs {
+                display: flex;
+
+                .funsItem {
+                    line-height: 28px;
+                    display: flex;
+                    align-items: center;
+                    border: 1px solid #17324c;
+                    border-radius: 4px;
+                    font-size: 12px;
+                    margin-left: 10px;
+
+                    .el-checkbox {
+                        width: 80px;
+                        padding: 0 10px;
+                    }
+
+                    .el-select {
+                        width: 120px;
+                    }
+
+                    &::v-deep .el-input__inner {
+                        border: none;
+                        background-color: #09152f;
+                    }
+
+                    &:hover {
+                        border: 1px solid #4b9bb7;
+                    }
+
+                    &:hover .el-checkbox {
+                        color: #4b9bb7;
+                    }
+                }
+
+            }
+
+            .pagination {
+                margin-top: 50px;
+                display: flex;
+                line-height: 50px;
+                justify-content: center;
+
+                .el-pagination {
+
+                    &::v-deep li,
+                    &::v-deep .btn-prev,
+                    &::v-deep .btn-next {
+                        background-color: #071f39;
+                        color: #4b9bb7;
+                    }
+
+                    &::v-deep .active {
+                        background-color: #409eff;
+                        color: #fff;
+                    }
+                }
+            }
+        }
+
+        .el-table {
+            color: #4b9bb7;
+            font-size: 10px;
+
+            .operation {
+                display: flex;
+
+                .line {
+                    padding: 0 5px;
+                }
+
+                span:hover {
+                    cursor: pointer;
+                }
+            }
+        }
+    }
+}
+</style>
\ No newline at end of file
diff --git a/src/views/operate/management/mydetail/index.vue b/src/views/operate/management/mydetail/index.vue
deleted file mode 100644
index d21e829..0000000
--- a/src/views/operate/management/mydetail/index.vue
+++ /dev/null
@@ -1,5 +0,0 @@
-<template>
-    <div>
-        璇︽儏椤�
-    </div>
-</template>
\ No newline at end of file
diff --git a/src/views/operate/management/mysovle/index.vue b/src/views/operate/management/mysovle/index.vue
deleted file mode 100644
index 95edd3e..0000000
--- a/src/views/operate/management/mysovle/index.vue
+++ /dev/null
@@ -1,5 +0,0 @@
-<template>
-    <div>
-        缁撴
-    </div>
-</template>
\ No newline at end of file
diff --git a/src/views/operate/message/myIndex/createUser/index.vue b/src/views/operate/message/myIndex/createUser/index.vue
index a3e141e..9b2fdc5 100644
--- a/src/views/operate/message/myIndex/createUser/index.vue
+++ b/src/views/operate/message/myIndex/createUser/index.vue
@@ -238,6 +238,7 @@
                             sendTime: new Date(),
                             targetTo: checkedList.join(','),
                             targetFrom:`${role.targetFrom}`,
+                            status:1,
                         }
                     })
                     .then(res=>{
diff --git a/src/views/operate/myWait/index.vue b/src/views/operate/myWait/index.vue
index 6efd191..fb682ce 100644
--- a/src/views/operate/myWait/index.vue
+++ b/src/views/operate/myWait/index.vue
@@ -25,14 +25,20 @@
                     </el-table-column>
                     <el-table-column prop="code" label="浜嬩欢缂栧彿" min-width="10">
                     </el-table-column>
-                    <el-table-column prop="category" label="闂灏忕被" min-width="10">
-                    </el-table-column>
-                    <el-table-column prop="eventSource" label="闂鎻忚堪" min-width="10">
+                    <el-table-column prop="eventSource" label="闂鏉ユ簮" min-width="10">
                         <template slot-scope="scope">
-                            <span>{{scope.row.eventSource===1 ? '杩濊': '杩濆缓'}}</span>
+                            <span>{{scope.row.eventSource===1 ? '瑙嗛宸℃煡': '浜哄伐涓婃姤'}}</span>
+                        </template>
+                    </el-table-column>
+                    <el-table-column prop="category" label="闂绫诲埆" min-width="10">
+                        <template slot-scope="scope">
+                            <span>{{scope.row.category===1 ? '杩濊': '杩濆缓'}}</span>
                         </template>
                     </el-table-column>
                     <el-table-column prop="createTime" label="鍒涘缓鏃堕棿" min-width="10">
+                        <template slot-scope="scope">
+                            <span>{{changeTime(scope.row.createTime)}}</span>
+                        </template>
                     </el-table-column>
                     <el-table-column prop="type" label="鍓╀綑鏃堕棿" min-width="10">
                         <template slot-scope="scope">
@@ -91,6 +97,7 @@
 import updateUser from "./updateUser"
 import createUser from "./createUser"
 import {computeTime} from '@/utils/helper'
+import filterTime from '@/utils/mydate'
 export default {
     components: {
         updateUser,createUser
@@ -266,8 +273,13 @@
         },
         // 璁$畻鏃堕棿
         getRestTime(time2){
-            console.log(time2);
             return computeTime(time2);
+        },
+        // 鏀瑰彉鏃ユ湡鏍煎紡
+        changeTime(time){
+            if(time){
+                return filterTime(time);
+            }
         }
     }
 }
diff --git a/src/views/systemSetting/baseSetting/department/index.vue b/src/views/systemSetting/baseSetting/department/index.vue
index 8d1a6b9..cec4db5 100644
--- a/src/views/systemSetting/baseSetting/department/index.vue
+++ b/src/views/systemSetting/baseSetting/department/index.vue
@@ -57,11 +57,8 @@
           </el-table-column>
           <el-table-column prop="departDes" label="閮ㄩ棬鎻忚堪" min-width="30">
           </el-table-column>
-          <!-- <el-table-column prop="createTime" label="鍒涘缓鏃堕棿" min-width="10">
-                    </el-table-column> -->
           <el-table-column prop="status" label="鍚敤" min-width="5">
             <template slot-scope="scope">
-              <!-- @change="handleChangeStatus(scope.row)" -->
               <el-switch
                 class="switchStyle"
                 v-model="scope.row.status"
diff --git a/src/views/systemSetting/baseSetting/role/index.vue b/src/views/systemSetting/baseSetting/role/index.vue
index 04857a4..cad254b 100644
--- a/src/views/systemSetting/baseSetting/role/index.vue
+++ b/src/views/systemSetting/baseSetting/role/index.vue
@@ -13,7 +13,7 @@
                     <el-button class="addBtn" type="primary" @click="dialogCreate = true">鏂板缓瑙掕壊</el-button>
                     <el-dialog :visible.sync="dialogCreate" title="鏂板瑙掕壊" width="45%" v-if="dialogCreate"
                         :before-close="handleClose2">
-                        <createUser :refresh="context==='' ? getUserList : search" />
+                        <createUser :refresh="context==='' ? getRoleList : search" />
                     </el-dialog>
                 </div>
             </div>
@@ -27,20 +27,14 @@
                     @selection-change="tableChange">
                     <el-table-column type="selection" min-width="5">
                     </el-table-column>
-                    <!-- <el-table-column label="鐢ㄦ埛ID" min-width="5">
-                        <template slot-scope="scope">{{ scope.row.id }}</template>
-                    </el-table-column> -->
                     <el-table-column prop="name" label="瑙掕壊鍚嶇О" min-width="10">
                     </el-table-column>
                     <el-table-column prop="typeText" label="瑙掕壊绫诲瀷" min-width="10">
                     </el-table-column>
-                    <!-- <el-table-column prop="adminCount" label="榛樿瑙掕壊" min-width="10">
-                    </el-table-column> -->
                     <el-table-column prop="description" label="澶囨敞" min-width="10">
                     </el-table-column>
                     <el-table-column prop="status" label="鍚敤" min-width="5">
                         <template slot-scope="scope">
-                            <!-- active-text="寮�" inactive-text="鍏�" -->
                             <el-switch class="switchStyle" v-model="scope.row.status" 
                                 active-color="#3fef9a" inactive-color="#000212" disabled>
                             </el-switch>
@@ -49,11 +43,8 @@
                     <el-table-column prop="operation" label="鎿嶄綔" min-width="15">
                         <template slot-scope="scope">
                             <div class="operation">
-                                <!-- <span @click="handleChangeRole(scope.row)">淇敼瑙掕壊</span> -->
                                 <span @click="handleFind(scope.row)">鏌ョ湅</span>
                                 <span class="line">|</span>
-                                <!-- <span>淇敼瀵嗙爜</span> -->
-                                <!-- <span>鍒犻櫎</span> -->
                                 <span @click="handleUpdate(scope.row)">鏉冮檺璁剧疆</span>
                                 <span class="line">|</span>
                                 <span @click="handleChangeStatus(scope.row)">{{scope.row.status === true ?'鍋滅敤':'鍚敤' }}</span>
@@ -62,25 +53,25 @@
                             </div>
                         </template>
                     </el-table-column>
-                </el-table>
+                </el-table> 
                 <!-- 淇敼椤甸潰 -->
                 <el-dialog :visible.sync="dialogUpdate" width="45%" :title="updateFlag ? '鏉冮檺璁剧疆' :'鏌ョ湅瑙掕壊淇℃伅'"
                     v-if="dialogUpdate" :before-close="handleClose">
                     <updateUser :updateFlag="updateFlag" :userInfo=userInfo
-                        :getUserList=" context ? getUserList : getUserList" @changeDialog="changeDialog" />
+                        :getRoleList=" context ? getRoleList : getRoleList" @changeDialog="changeDialog" />
                 </el-dialog>
                 <!-- 鏌ョ湅椤甸潰 -->
-                <el-dialog :visible.sync="dialogView" width="45%" title="鏌ョ湅瑙掕壊淇℃伅"
-                    v-if="dialogView" :before-close="handleClose">
+                <el-dialog :visible.sync="dialogView" width="45%" title="鏌ョ湅瑙掕壊淇℃伅" v-if="dialogView"
+                    :before-close="handleClose">
                     <MyView :userInfo=userInfo @changeDialog="changeDialog" />
                 </el-dialog>
                 <!-- tools -->
                 <div class="tools">
                     <div class="funs">
-                        <!-- <div class="funsItem">
+                         <div class="funsItem funs-sp">
                             <el-checkbox v-model="all" @change="selectAll()">鍏ㄩ��</el-checkbox>
                         </div>
-                        <div class="funsItem">
+                        <div class="funsItem funs-sp">
                             <el-checkbox v-model="unsame" @change="disSame(tableData)">鍙嶉��</el-checkbox>
                         </div>
                         <div class="funsItem">
@@ -89,7 +80,7 @@
                                     :value="item.value" :disabled="item.disabled">
                                 </el-option>
                             </el-select>
-                        </div> -->
+                        </div> 
                     </div>
                     <div class="pagination">
                         <el-pagination background :current-page="currentPage" layout="prev, pager, next"
@@ -107,9 +98,10 @@
 import updateUser from "./updateUser"
 import helper from "@/utils/mydate.js"
 import MyView from './viewRole'
+import MyTable from '@/components/Table'
 export default {
     components: {
-        createUser, updateUser,MyView
+        createUser, updateUser, MyView, MyTable
     },
     data() {
         return {
@@ -117,7 +109,7 @@
             context: "",
             dialogCreate: false,
             dialogUpdate: false,
-            dialogView:false,
+            dialogView: false,
             updateFlag: false,
             userInfo: '',
             totalNum: null,
@@ -146,11 +138,11 @@
                     label: '鎵归噺鍒犻櫎',
                 }
             ],
-            tempList: []
+            tempList: [],
         }
     },
     created() {
-        this.getUserList();
+        this.getRoleList();
     },
     methods: {
         async selectChange(list) {
@@ -186,7 +178,7 @@
                                     type: 'success',
                                     message: '鏇存敼鐢ㄦ埛鐘舵�佹垚鍔�',
                                 })
-                                this.getUserList();
+                                this.getRoleList();
                             } else {
                                 this.$message({
                                     type: 'error',
@@ -239,7 +231,7 @@
                                 message: res.message
                             })
 
-                            this.getUserList();
+                            this.getRoleList();
                         })
                 })
                 .catch(_ => { });
@@ -255,14 +247,13 @@
             let { id, status } = obj;
             status == true ? status = 0 : status = 1;
             this.$axios.post(`/sccg/role/updateStatus/` + id + '?status=' + status).then(res => {
-                if(res.code ===200){
+                if (res.code === 200) {
                     this.search();
                 }
             })
         },
         // 鑾峰彇鐢ㄦ埛鍒楄〃
-        getUserList() {
-            const that = this;
+        getRoleList() {
             this.dialogCreate = false;
             // 鑾峰彇鎵�鏈夌敤鎴蜂俊鎭�
             this.$axios.get('sccg/role/listAll').then(res => {
@@ -337,26 +328,26 @@
             this.currentPage = page;
             this.search();
         },
-        changeDialog({flag}) {
+        changeDialog({ flag }) {
             this.dialogUpdate = flag;
             this.dialogCreate = flag;
             this.dialogView = flag;
         },
         handleClose(done) {
-            if(this.updateFlag){
+            if (this.updateFlag) {
                 this.$confirm('纭鍏抽棴锛�')
-                .then(_ => {
-                    this.dialogUpdate = false;
-                    this.dialogCreate = false;
-                    this.updateFlag = false;
-                    done();
-                })
-                .catch(_ => { });
-            }else{
+                    .then(_ => {
+                        this.dialogUpdate = false;
+                        this.dialogCreate = false;
+                        this.updateFlag = false;
+                        done();
+                    })
+                    .catch(_ => { });
+            } else {
                 done();
             }
         },
-        handleClose2(done){
+        handleClose2(done) {
             this.$confirm('纭鍏抽棴锛�')
                 .then(_ => {
                     done();
@@ -440,7 +431,9 @@
             justify-content: space-between;
             align-items: center;
             padding: 0 20px;
-
+            .funs-sp{
+                border: 1px solid #17324c;
+            }
             .funs {
                 display: flex;
 
@@ -448,7 +441,6 @@
                     line-height: 28px;
                     display: flex;
                     align-items: center;
-                    border: 1px solid #17324c;
                     border-radius: 4px;
                     font-size: 12px;
                     margin-left: 10px;
@@ -504,6 +496,7 @@
         .el-table {
             color: #4b9bb7;
             font-size: 10px;
+
             .operation {
                 display: flex;
 
@@ -516,6 +509,7 @@
                 }
             }
         }
+
         // &::v-deep .switchStyle .el-switch__label {
         //     position: absolute;
         //     display: none;
diff --git a/src/views/systemSetting/baseSetting/user/components/main/index.vue b/src/views/systemSetting/baseSetting/user/components/main/index.vue
index 803720a..755ab53 100644
--- a/src/views/systemSetting/baseSetting/user/components/main/index.vue
+++ b/src/views/systemSetting/baseSetting/user/components/main/index.vue
@@ -55,9 +55,14 @@
                     </template>
                 </el-table-column>
             </el-table>
-            <!-- 鏌ョ湅淇敼椤甸潰 -->
+            <!-- 鏌ョ湅椤甸潰 -->
+            <el-dialog :visible.sync="dialogView" width="45%" v-if="dialogView"
+                title="鏌ョ湅鐢ㄦ埛淇℃伅">
+                <MyView :userInfo=userInfo></MyView>
+            </el-dialog>
+            <!-- 淇敼椤甸潰 -->
             <el-dialog :visible.sync="dialogUpdate" width="45%" v-if="dialogUpdate"
-                :title="updateFlag ? flag.role ? '淇敼鐢ㄦ埛瑙掕壊淇℃伅' : flag.depart ? '淇敼鐢ㄦ埛閮ㄩ棬淇℃伅': '淇敼鐢ㄦ埛瀵嗙爜' :'鏌ョ湅鐢ㄦ埛淇℃伅'"
+                :title="updateFlag ? flag.role ? '淇敼鐢ㄦ埛瑙掕壊淇℃伅' : flag.depart ? '淇敼鐢ㄦ埛閮ㄩ棬淇℃伅': '淇敼鐢ㄦ埛瀵嗙爜' :''"
                 :before-close="handleClose">
                 <updateUser :updateFlag="updateFlag" :userInfo=userInfo :flag=flag @closeDialog="closeDialog"
                     :getUserList="getUserList" v-if="!flag.password" />
@@ -94,15 +99,17 @@
 import helper from '@/utils/mydate'
 import updateUser from '../updateUser';
 import MyPwd from '../password'
+import MyView from '../myView'
 export default {
     components: {
-        updateUser, MyPwd
+        updateUser, MyPwd,MyView
     },
     data() {
         return {
             tableData: [],
             search: "",
             dialogUpdate: false,
+            dialogView:false,
             updateFlag: false,
             userInfo: '',
             totalNum: 200,
@@ -327,13 +334,8 @@
         },
         // 鏌ョ湅鐢ㄦ埛淇℃伅(涓嶅彲淇敼)
         handleFind(rowData) {
-            this.dialogUpdate = true;
-            this.updateFlag = false;
+            this.dialogView = true;
             this.userInfo = rowData;
-            const { flag } = this;
-            for (let key in flag) {
-                flag[key] = false;
-            }
         },
         // 璁剧疆琛ㄦ牸鏂戦┈绾�
         tableRowClassName({ row, rowIndex }) {
diff --git a/src/views/systemSetting/baseSetting/user/components/myView/index.vue b/src/views/systemSetting/baseSetting/user/components/myView/index.vue
new file mode 100644
index 0000000..8608360
--- /dev/null
+++ b/src/views/systemSetting/baseSetting/user/components/myView/index.vue
@@ -0,0 +1,202 @@
+<template>
+    <div class="updateUser">
+        <main>
+            <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="username">
+                        <el-input v-model="user.username" placeholder="濉啓鐢ㄦ埛鍚嶇О" disabled></el-input>
+                    </el-form-item>
+                    <!-- 鐢ㄦ埛瀵嗙爜 -->
+                    <el-form-item class="optionItems" label="鐢ㄦ埛瀵嗙爜:" prop="password">
+                        <el-input v-model="user.password" type="password" placeholder="璇疯緭鍏ョ敤鎴峰瘑鐮�" disabled>
+                        </el-input>
+                    </el-form-item>
+                    <!-- 鎵�灞炵敤鎴峰鍚� -->
+                    <el-form-item class="optionItem" label="鎵�灞炵敤鎴峰鍚�:" prop="nickName">
+                        <el-input v-model="user.nickName" placeholder="璇峰~鍐欑敤鎴峰鍚�" disabled></el-input>
+                    </el-form-item>
+                    <!-- 鎬у埆 -->
+                    <el-form-item class="optionItem" label="鎬у埆:" prop="sex">
+                        <el-radio-group v-model="user.sex" disabled>
+                            <el-radio :label="1">鐢�</el-radio>
+                            <el-radio :label="0">濂�</el-radio>
+                        </el-radio-group>
+                    </el-form-item>
+                    <!-- 鏄惁鍏氬憳 -->
+                    <el-form-item class="optionItem" label="鏄惁鍏氬憳:" prop="isDy">
+                        <el-radio-group v-model="user.isDy" disabled>
+                            <el-radio :label="1">鏄�</el-radio>
+                            <el-radio :label="0">鍚�</el-radio>
+                        </el-radio-group>
+                    </el-form-item>
+                    <!-- 鎵�灞炴墜鏈哄彿鐮� -->
+                    <el-form-item class="optionItem" label="鎵�灞炴墜鏈哄彿鐮�:" prop="mobile">
+                        <el-input v-model="user.mobile" placeholder="璇峰~鍐欐墜鏈哄彿鐮�" disabled></el-input>
+                    </el-form-item>
+                    <!-- 閭鍦板潃 -->
+                    <el-form-item class="optionItem" label="閭鍦板潃:" prop="email">
+                        <el-input v-model="user.email" placeholder="璇峰~鍐欓偖绠卞湴鍧�" disabled></el-input>
+                    </el-form-item>
+                    <!-- 閫夋嫨瑙掕壊 -->
+                    <el-form-item class="optionItem" label="閫夋嫨瑙掕壊:" prop="role">
+                        <el-select v-model="user.role" placeholder="璇烽�夋嫨鎵�灞炶鑹�" multiple collapse-tags
+                        disabled>
+                            <el-option v-for="item in roleList" :key="item.id" :label="item.name" :value="item.id">
+                            </el-option>
+                        </el-select>
+                    </el-form-item>
+                    <!-- 鐢ㄦ埛绫诲瀷 -->
+                    <el-form-item class="optionItem" label="鐢ㄦ埛绫诲瀷:" prop="userType">
+                        <el-select v-model="user.userType" placeholder="璇烽�夋嫨鐢ㄦ埛绫诲瀷" disabled>
+                            <el-option v-for="item in typeList" :key="item.id" :label="item.name" :value="item.id">
+                            </el-option>
+                        </el-select>
+                    </el-form-item>
+                    <!-- 鎵�灞為儴闂� -->
+                    <el-form-item class="optionItem" label="鎵�灞為儴闂�:" prop="departmentId">
+                        <el-input  v-model="user.departName"></el-input>
+                    </el-form-item>
+                    <!-- 褰撳墠鑱屽姟 -->
+                    <el-form-item class="optionItem" label="褰撳墠鑱屽姟:" prop="jobTitle">
+                        <el-input v-model="user.jobTitle" placeholder="璇疯緭鍏ュ綋鍓嶈亴鍔�" disabled></el-input>
+                    </el-form-item>
+                    <!-- 濉啓鎵�灞瀖ac鍦板潃 -->
+                    <el-form-item class="optionItem" label="濉啓鎵�灞瀖ac鍦板潃:" prop="mac">
+                        <el-input v-model="user.mac" placeholder="璇峰~鍐欐墍灞瀖ac鍦板潃" disabled></el-input>
+                    </el-form-item>
+                    <!-- 濉啓鎵�灞瀒p鍦板潃 -->
+                    <el-form-item class="optionItem" label="濉啓鎵�灞瀒p鍦板潃:" prop="ip">
+                        <el-input v-model="user.ip" placeholder="璇峰~鍐欐墍灞瀒p鍦板潃" disabled></el-input>
+                    </el-form-item>
+                </el-form>
+            </div>
+        </main>
+    </div>
+</template>
+<script>
+export default {
+    data() {
+        return {
+            user: {
+            },
+            createUserRules: {
+            },
+            roleList: [
+               
+            ],
+            typeList: [],
+            departList: [],
+        }
+    },
+    created() {
+        const that = this;
+        this.user = JSON.parse(JSON.stringify(that.userInfo));
+        this.user.departName  = this.user.departName ? this.user.departName : '鏆傛棤鎵�灞為儴闂�'
+        // 鑾峰彇鎵�鏈夎鑹插垪琛�
+        this.getRoleList();
+        // 鑾峰彇褰撳墠鐢ㄦ埛瑙掕壊鍒楄〃
+        this.getUserRole(this.user.id)
+        // 鑾峰彇鍏ㄩ儴閮ㄩ棬鍒楄〃
+        this.$axios.get('/sccg/depart/tree').then(res => {
+            this.departList = res.data;
+        })
+    },
+    methods: {
+        // 鑾峰彇瑙掕壊鍒楄〃
+        getRoleList() {
+            this.$axios({
+                method: 'get',
+                url: 'sccg/role/listAll',
+            })
+                .then(res => {
+                    this.roleList = res.data;
+                })
+        },
+        // 鑾峰彇鐢ㄦ埛鐨勮鑹插垪琛�
+        getUserRole(id) {
+            this.$axios({
+                method: 'get',
+                url: `sccg/admin/role/${id}`
+            })
+                .then(res => {
+                    const arr = [];
+                    res.data.forEach(item => {
+                        arr.push(item.id);
+                    })
+                    this.user.role = arr;
+                })
+        },
+    },
+    props: ['userInfo']
+}
+</script>
+<style lang="scss" scoped>
+.updateUser {
+    border-radius: 1px;
+    background-color: #09152f;
+
+    :deep(.el-tag) {
+        background-color: #09152f;
+    }
+
+    .el-select-dropdown.is-multiple .el-select-dropdown__item.selected {
+        background-color: #09152f;
+        color: #4b9bb7;
+    }
+
+    main {
+        text-align: left;
+        padding: 0 55px;
+        background-color: #09152f;
+        padding-bottom: 50px;
+
+        .mainContent {
+            display: flex;
+            justify-content: center;
+            padding-top: 50px;
+
+            .el-form-item__content {
+                width: 400px;
+
+                .el-select {
+                    width: 100%;
+                }
+            }
+
+            .optionHandleSp {
+                display: flex;
+
+                .areaNumber,
+                .moreNumber {
+                    flex: 1;
+                }
+
+                .telNumber {
+                    flex: 2;
+                }
+            }
+
+            .optionBtn {
+                display: flex;
+                margin-top: 20px;
+
+                .btn {
+                    padding: 12px 50px;
+                }
+            }
+
+        }
+    }
+}
+
+.updateUser::v-deep .el-form-item__label {
+    color: #4b9bb7;
+}
+
+.updateUser::v-deep .el-input__inner {
+    background-color: #09152f;
+    border: 1px solid #17324c;
+}
+</style>
\ No newline at end of file
diff --git a/src/views/systemSetting/baseSetting/user/components/updateUser/index.vue b/src/views/systemSetting/baseSetting/user/components/updateUser/index.vue
index bdb2020..86f30f7 100644
--- a/src/views/systemSetting/baseSetting/user/components/updateUser/index.vue
+++ b/src/views/systemSetting/baseSetting/user/components/updateUser/index.vue
@@ -4,94 +4,25 @@
             <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="username">
-                        <el-input v-model="user.username" placeholder="濉啓鐢ㄦ埛鍚嶇О" :disabled="true"></el-input>
-                    </el-form-item>
-                    <!-- 鐢ㄦ埛瀵嗙爜 -->
-                    <el-form-item class="optionItems" label="鐢ㄦ埛瀵嗙爜:" prop="password">
-                        <el-input v-model="user.password" type="password" placeholder="璇疯緭鍏ョ敤鎴峰瘑鐮�" disabled>
-                        </el-input>
-                    </el-form-item>
-                    <!-- 鎵�灞炵敤鎴峰鍚� -->
-                    <!-- <el-form-item class="optionItem" label="鎵�灞炵敤鎴峰鍚�:" prop="true_name">
-                        <el-input v-model="user.true_name" placeholder="璇峰~鍐欑敤鎴峰鍚�"></el-input>
-                    </el-form-item> -->
-                    <!-- 鎬у埆 -->
-                    <el-form-item class="optionItem" label="鎬у埆:" prop="sex">
-                        <el-radio-group v-model="user.sex" :disabled="!flag.role">
-                            <el-radio :label="1">鐢�</el-radio>
-                            <el-radio :label="0">濂�</el-radio>
-                        </el-radio-group>
-                    </el-form-item>
-                    <!-- 鏄惁鍏氬憳 -->
-                    <el-form-item class="optionItem" label="鏄惁鍏氬憳:" prop="isDy">
-                        <el-radio-group v-model="user.isDy" disabled>
-                            <el-radio :label="1">鏄�</el-radio>
-                            <el-radio :label="0">鍚�</el-radio>
-                        </el-radio-group>
-                    </el-form-item>
-                    <!-- 鎵�灞炴墜鏈哄彿鐮� -->
-                    <el-form-item class="optionItem" label="鎵�灞炴墜鏈哄彿鐮�:" prop="mobile">
-                        <el-input v-model="user.mobile" placeholder="璇峰~鍐欐墜鏈哄彿鐮�" :disabled="true"></el-input>
-                    </el-form-item>
-                    <!-- 閭鍦板潃 -->
-                    <el-form-item class="optionItem" label="閭鍦板潃:" prop="email">
-                        <el-input v-model="user.email" placeholder="璇峰~鍐欓偖绠卞湴鍧�" :disabled="true"></el-input>
-                    </el-form-item>
                     <!-- 閫夋嫨瑙掕壊 -->
-                    <el-form-item class="optionItem" label="閫夋嫨瑙掕壊:" prop="role">
-                        <el-select v-model="user.role" placeholder="璇烽�夋嫨鎵�灞炶鑹�" multiple collapse-tags
-                            @change="handleChangeRole" :disabled="!flag.role">
+                    <el-form-item class="optionItem" label="閫夋嫨瑙掕壊:" prop="role" v-if="flag.role">
+                        <el-select v-model="user.role" placeholder="璇烽�夋嫨鎵�灞炶鑹�" multiple collapse-tags>
                             <el-option v-for="item in roleList" :key="item.id" :label="item.name" :value="item.id">
                             </el-option>
                         </el-select>
-                        <!-- <el-select v-model="user.role" placeholder="璇烽�夋嫨鎵�灞炶鑹�" :disabled="!flag.role">
-                            <el-option v-for="item in roleList" :key="item.id" :label="item.name" :value="item.id"
-                                :disabled="item.disabled">
-                            </el-option>
-                        </el-select> -->
                     </el-form-item>
-                    <!-- 鐢ㄦ埛绫诲瀷 -->
-                    <el-form-item class="optionItem" label="鐢ㄦ埛绫诲瀷:" prop="userType">
-                        <el-select v-model="user.userType" placeholder="璇烽�夋嫨鐢ㄦ埛绫诲瀷" disabled>
-                            <el-option v-for="item in typeList" :key="item.id" :label="item.name" :value="item.id">
-                            </el-option>
-                        </el-select>
-                    </el-form-item>
-                    <!-- 搴ф満/鍒嗘満 -->
-                    <!-- <el-form-item class="optionItem" label="搴ф満/鍒嗘満:" prop="zj">
-                        <div class="optionHandleSp">
-                            <el-input class="areaNumber" v-model="user.zj.areaNumber" placeholder="鐢佃瘽鍖哄彿">
-                            </el-input>
-                            <el-input class="telNumber" v-model="user.zj.phoneNumber" placeholder="鐢佃瘽鍙风爜">
-                            </el-input>
-                            <el-input class="moreNumber" v-model="user.zj.moreNumber" placeholder="鍒嗘満鍙风爜">
-                            </el-input>
-                        </div>
-                    </el-form-item> -->
                     <!-- 鎵�灞為儴闂� -->
-                    <el-form-item class="optionItem" label="鎵�灞為儴闂�:" prop="departmentId">
-                        <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-form-item class="optionItem" label="鎵�灞為儴闂�:" prop="departmentId" v-else>
+                        <el-select v-model="user.departName" placeholder="璇烽�夋嫨鎵�灞為儴闂�" :disabled="!flag.depart">
+                            <el-option :value="mylabel">
+                                <el-tree ref="tree" :check-strictly="true" :data="departList" :props="defaultProps"
+                                    show-checkbox @check-change="handleCheck"
+                                    :default-checked-keys="[selectOrg.orgsid[0],]" default-expand-all node-key="id">
+                                </el-tree>
                             </el-option>
                         </el-select>
                     </el-form-item>
-                    <!-- 褰撳墠鑱屽姟 -->
-                    <el-form-item class="optionItem" label="褰撳墠鑱屽姟:" prop="jobTitle">
-                        <el-input v-model="user.jobTitle" placeholder="璇疯緭鍏ュ綋鍓嶈亴鍔�" :disabled="true"></el-input>
-                    </el-form-item>
-                    <!-- 濉啓鎵�灞瀖ac鍦板潃 -->
-                    <el-form-item class="optionItem" label="濉啓鎵�灞瀖ac鍦板潃:" prop="mac">
-                        <el-input v-model="user.mac" placeholder="璇峰~鍐欐墍灞瀖ac鍦板潃" disabled></el-input>
-                    </el-form-item>
-                    <!-- 濉啓鎵�灞瀒p鍦板潃 -->
-                    <el-form-item class="optionItem" label="濉啓鎵�灞瀒p鍦板潃:" prop="ip">
-                        <el-input v-model="user.ip" placeholder="璇峰~鍐欐墍灞瀒p鍦板潃" disabled></el-input>
-                    </el-form-item>
-                    <el-form-item v-if="updateFlag">
+                    <el-form-item>
                         <div class="optionBtn">
                             <el-button type="primary" class="btn submit" @click.native.prevent="handleUser">鎻愪氦
                             </el-button>
@@ -106,194 +37,43 @@
 <script>
 export default {
     data() {
-        const validateNickname = (rule, value, callback) => {
-            if (!value) {
-                callback(new Error("璇峰~鍐欑敤鎴峰悕绉�"));
-            } else {
-                callback();
-            }
-        };
-        const validatePass = (rule, value, callback) => {
-            if (!value) {
-                callback(new Error("璇峰~鍐欑櫥褰曞瘑鐮�"));
-            } else {
-                callback();
-                // const rep = /^\w+$/;
-                // if (!rep.test(value)) {
-                //     callback(new Error("瀵嗙爜鍙兘鏄互鏁板瓧銆�26涓嫳鏂囧瓧姣嶆垨鑰呬笅鍒掔嚎缁勬垚鐨勫瓧绗︿覆"));
-                // } else {
-                //     callback();
-                // }
-            }
-        };
-        const validateTruename = (rule, value, callback) => {
-            if (!value) {
-                callback(new Error("璇峰~鍐欑敤鎴峰鍚�"));
-            } else {
-                callback();
-                // const rep = /^[\u4E00-\u9FA5]{2,4}$/;
-                // if (!rep.test(value)) {
-                //     callback("璇疯緭鍏ユ纭殑鐢ㄦ埛濮撳悕");
-                // } else {
-                //     callback();
-                // }
-            }
-        };
-        const validatePhone = (rule, value, callback) => {
-            if (!value) {
-                callback(new Error("璇峰~鍐欐墜鏈哄彿鐮�"));
-            } else {
-                const rep = /(^1[3|4|5|7|8|9]\d{9}$)|(^09\d{8}$)/
-                if (!rep.test(value)) {
-                    callback("璇疯緭鍏ユ纭殑鎵嬫満鍙风爜");
-                } else {
-                    callback();
-                }
-            }
-        };
-        const validateMail = (rule, value, callback) => {
-            if (value) {
-                const rep = /^([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+@([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+\.[a-zA-Z]{2,3}$/;
-                if (!rep.test(value)) {
-                    callback(new Error("璇疯緭鍏ユ纭殑閭"))
-                } else {
-                    callback();
-                }
-            } else {
-                callback();
-            }
-        };
-        // const validateRole = (rule, value, callback) => {
-        //     console.log(value);
-        //     if (!value) {
-        //         callback(new Error("璇烽�夋嫨鐢ㄦ埛瑙掕壊"));
-        //     } else {
-        //         callback();
-        //     }
-        // };
-        const validateType = (rule, value, callback) => {
-            if (!value && value !== 0) {
-                callback(new Error("璇烽�夋嫨鐢ㄦ埛绫诲瀷"));
-            } else {
-                callback();
-            }
-        };
-        const validateDepartment = (rule, value, callback) => {
-            if (!value && value !== 0) {
-                callback(new Error("璇烽�夋嫨鎵�灞為儴闂�"));
-            } else {
-                callback();
-            }
-        };
-        const validateWork = (rule, value, callback) => {
-            if (!value) {
-                callback(new Error("璇峰~鍐欏綋鍓嶈亴鍔�"));
-            } else {
-                callback();
-            }
-        };
-        const validateMac = (rule, value, callback) => {
-            if (!value) {
-                callback();
-            } else {
-                callback();
-            }
-        };
-        const validateIp = (rule, value, callback) => {
-            if (!value) {
-                callback();
-            } else {
-                callback();
-            }
-        };
         return {
             user: {
-                nickName: '',
-                password: '',
-                username: '',
-                sex: 1,
-                isDy: 1,
-                mobile: '',
-                email: '',
-                // role: null,
-                userType: null,
-                zj: {
-                    areaNumber: '',
-                    phoneNumber: "",
-                    moreNumber: "",
-                },
-                // departmentId: null,
-                // jobTitle: null,
-                mac: '',
-                ip: '',
             },
             createUserRules: {
-                nickName: [
-                    { required: true, trigger: "blur", validator: validateNickname },
-                ],
-                password: [
-                    { required: true, trigger: "blur", validator: validatePass },
-                ],
-                username: [
-                    { required: true, trigger: "blur", validator: validateTruename },
-                ],
-                sex: [
-                    { required: true, trigger: "blur" },
-                ],
-                isDy: [
-                    { required: true, trigger: "blur" },
-                ],
-                mobile: [
-                    { required: true, trigger: "blur", validator: validatePhone },
-                ],
-                email: [
-                    { required: false, trigger: "blur", validator: validateMail },
-                ],
-                // role: [
-                //     { required: true, trigger: "change", validator: validateRole },
-                // ],
-                userType: [
-                    { required: true, trigger: "change", validator: validateType },
-                ],
-                zj: [
-                    { required: false, trigger: "blur" },
-                ],
-                departmentId: [
-                    { required: true, trigger: "change", validator: validateDepartment },
-                ],
-                jobTitle: [
-                    { required: true, trigger: "blur", validator: validateWork },
-                ],
-                // mac: [
-                //     { required: false, trigger: "blur", validator: validateMac },
-                // ],
-                // ip: [
-                //     { required: false, trigger: "blur", validator: validateIp },
-                // ],
             },
             roleList: [
-                { name: '瑙掕壊1', value: 1 }, { name: '瑙掕壊2', value: 2 }
+
             ],
-            typeList: [],
-            departList: []
+            departList: [],
+            mylabel: "",
+            defaultProps: {
+                children: "children",
+                label: "departName",
+            },
+            selectOrg: {
+                orgsid: [],
+            },
+            tempName: '',
+            tempRole: []
         }
     },
     created() {
-        const that = this;
-        this.user = JSON.parse(JSON.stringify(that.userInfo));
-        console.log(this.user);
+        this.user = JSON.parse(JSON.stringify(this.userInfo));
+        this.tempName = this.user.departName;
+        this.selectOrg.orgsid.push(this.user.departmentId);
         // 鑾峰彇鎵�鏈夎鑹插垪琛�
         this.getRoleList();
         // 鑾峰彇褰撳墠鐢ㄦ埛瑙掕壊鍒楄〃
         this.getUserRole(this.user.id)
         // 鑾峰彇鍏ㄩ儴閮ㄩ棬鍒楄〃
-        this.$axios.get('sccg/depart/page').then(res => {
-            that.departList = res.data.records;
+        this.$axios.get('/sccg/depart/tree').then(res => {
+            this.departList = res.data;
         })
     },
     methods: {
+        // 淇敼閮ㄩ棬
         changeDepart(data) {
-            console.log(data);
             this.departList.forEach(item => {
                 if (item.id === data) {
                     this.user.departName = item.departName;
@@ -302,60 +82,87 @@
         },
         // 淇敼鐢ㄦ埛淇℃伅
         handleUser() {
-            const { depart, role } = this.flag;
+            const { flag, user, tempName, selectOrg, tempRole, isArraySame } = this;
             this.$refs.user.validate((valid) => {
                 if (valid) {
-                    const { user } = this;
                     user.isDy = `${user.isDy}`;
-                    if (depart) {
-                        console.log(this.user);
-                        this.$axios({
-                            method: 'post',
-                            url: `sccg/admin/update/${user.id}`,
-                            data: {
-                                "id": user.id,
-                                "username": user.username,
-                                "password": user.password,
-                                "icon": user.icon,
-                                "email": user.email,
-                                "nickName": user.nickName,
-                                "note": user.note,
-                                "createTime": user.createTime,
-                                "loginTime": user.loginTime,
-                                "status": user.status ? 1 : 0,
-                                "macAddress": user.macAddress,
-                                "ipAddress": user.ipAddress,
-                                "isDy": `${user.isDy}`,
-                                "sex": `${user.sex}`,
-                                "jobTitle": user.jobTitle,
-                                "departmentId": user.departmentId,
-                                "departName": user.departName,
-                                "userType": user.userType,
-                                "zj": user.zj,
-                                "mobile": user.mobile,
+                    if (flag.depart) {
+                        if (tempName === user.departName) {
+                            this.$message({
+                                type: 'warning',
+                                message: '鎮ㄧ殑閮ㄩ棬杩樻湭鏇存敼'
+                            })
+                        } else {
+                            if (user.departName) {
+                                this.$axios({
+                                    method: 'post',
+                                    url: `sccg/admin/update/${user.id}`,
+                                    data: {
+                                        "id": user.id,
+                                        "username": user.username,
+                                        "password": user.password,
+                                        "icon": user.icon,
+                                        "email": user.email,
+                                        "nickName": user.nickName,
+                                        "note": user.note,
+                                        "createTime": user.createTime,
+                                        "loginTime": user.loginTime,
+                                        "status": user.status ? 1 : 0,
+                                        "macAddress": user.macAddress,
+                                        "ipAddress": user.ipAddress,
+                                        "isDy": `${user.isDy}`,
+                                        "sex": `${user.sex}`,
+                                        "jobTitle": user.jobTitle,
+                                        "departmentId": selectOrg.orgsid[0],
+                                        "departName": user.departName,
+                                        "userType": user.userType,
+                                        "zj": user.zj,
+                                        "mobile": user.mobile,
+                                    }
+                                })
+                                    .then(res => {
+                                        this.$message({
+                                            type: res.code === 200 ? 'success' : 'warning',
+                                            message: res.message,
+                                        })
+                                        this.getUserList();
+                                        this.$emit('closeDialog', { flag: false });
+                                    })
+                            } else {
+                                this.$message({
+                                    type: 'warning',
+                                    message: '鐢ㄦ埛閮ㄩ棬涓嶈兘涓虹┖'
+                                })
                             }
-                        })
-                            .then(res => {
-                                this.$message({
-                                    type: res.code === 200 ? 'success' : 'warning',
-                                    message: res.message,
-                                })
-                                this.getUserList();
-                                this.$emit('closeDialog', { flag: false });
-                            })
+                        }
+
                     } else {
-                        this.$axios({
-                            method: 'post',
-                            url: 'sccg/admin/role/update?adminId=' + user.id + '&roleIds=' + user.role,
-                        })
-                            .then(res => {
-                                this.$message({
-                                    type: res.code === 200 ? 'success' : 'warning',
-                                    message: res.message,
-                                })
-                                this.getUserList();
-                                this.$emit('closeDialog', { flag: false });
+                        if (user.role.length === 0) {
+                            this.$message({
+                                type: 'warning',
+                                message: '鐢ㄦ埛瑙掕壊涓嶈兘涓虹┖',
                             })
+                        }
+                        else if (isArraySame(tempRole, user.role) && tempRole.length === user.role.length) {
+                            this.$message({
+                                type: 'warning',
+                                message: '鎮ㄨ繕鏈洿鏀硅鑹�',
+                            })
+                        }
+                        else {
+                            this.$axios({
+                                method: 'post',
+                                url: 'sccg/admin/role/update?adminId=' + user.id + '&roleIds=' + user.role,
+                            })
+                                .then(res => {
+                                    this.$message({
+                                        type: res.code === 200 ? 'success' : 'warning',
+                                        message: res.message,
+                                    })
+                                    this.getUserList();
+                                    this.$emit('closeDialog', { flag: false });
+                                })
+                        }
                     }
                 } else {
                     return false;
@@ -372,11 +179,6 @@
                     this.roleList = res.data;
                 })
         },
-        // 鏀瑰彉鐢ㄦ埛瑙掕壊
-        handleChangeRole(data) {
-            console.log(this.user.role);
-            // console.log(data);
-        },
         // 鑾峰彇鐢ㄦ埛鐨勮鑹插垪琛�
         getUserRole(id) {
             this.$axios({
@@ -384,16 +186,59 @@
                 url: `sccg/admin/role/${id}`
             })
                 .then(res => {
-                    console.log(res);
                     const arr = [];
                     res.data.forEach(item => {
                         arr.push(item.id);
                     })
                     this.user.role = arr;
+                    this.tempRole = arr;
                 })
+        },
+        // 閮ㄩ棬淇敼
+        handleCheck(data, checked) {
+            this.user.departName = data.departName;
+            // 鑾峰彇褰撳墠閫夋嫨鐨刬d鍦ㄦ暟缁勪腑鐨勭储寮�
+            const indexs = this.selectOrg.orgsid.indexOf(data.id);
+            // 濡傛灉涓嶅瓨鍦ㄦ暟缁勪腑锛屽苟涓旀暟缁勪腑宸茬粡鏈変竴涓猧d骞朵笖checked涓簍rue鐨勬椂鍊欙紝浠h〃涓嶈兘鍐嶆閫夋嫨銆�
+            if (indexs < 0 && this.selectOrg.orgsid.length === 1 && checked) {
+                this.$message({
+                    message: "鍙兘閫夋嫨涓�涓儴闂紒",
+                    type: "warning",
+                    showClose: true,
+                });
+                // 璁剧疆宸查�夋嫨鐨勮妭鐐逛负false 寰堥噸瑕�
+                this.$refs.tree.setChecked(data, false);
+            } else if (this.selectOrg.orgsid.length === 0 && checked) {
+                // 鍙戠幇鏁扮粍涓虹┖ 骞朵笖鏄凡閫夋嫨
+                // 闃叉鏁扮粍鏈夊�硷紝棣栧厛娓呯┖锛屽啀push
+                this.selectOrg.orgsid = [];
+                this.selectOrg.orgsid.push(data.id);
+            } else if (
+                indexs >= 0 &&
+                this.selectOrg.orgsid.length === 1 &&
+                !checked
+            ) {
+                // 鍐嶆鐩存帴杩涜璧嬪�间负绌烘搷浣�
+                this.selectOrg.orgsid = [];
+                this.user.departName = ''
+            }
+        },
+        // 鍒ゆ柇鏁扮粍鏄惁鐩哥瓑
+        isArraySame(arr1, arr2) {
+            let flag = true
+            arr1.sort((a, b) => a - b)
+            arr2.sort((a, b) => a - b)
+            arr1.forEach(item => {
+                arr2.forEach(child => {
+                    if (item !== child) {
+                        flag = false
+                    }
+                })
+            })
+            return flag
         }
     },
-    props: ['userInfo', 'updateFlag', 'flag', 'closeDialog', 'getUserList']
+    props: ['userInfo', 'flag', 'closeDialog', 'getUserList']
 }
 </script>
 <style lang="scss" scoped>
@@ -409,6 +254,7 @@
         background-color: #09152f;
         color: #4b9bb7;
     }
+
     main {
         text-align: left;
         padding: 0 55px;
diff --git a/src/views/systemSetting/device/bayonet/create/index.vue b/src/views/systemSetting/device/bayonet/create/index.vue
index 9995ea1..a97553f 100644
--- a/src/views/systemSetting/device/bayonet/create/index.vue
+++ b/src/views/systemSetting/device/bayonet/create/index.vue
@@ -89,14 +89,14 @@
     data() {
         return {
             bayonet: {
-                name: '',
+                bayonetName: '',
                 latitude: '',
                 longitude: '',
                 area: '',
-                domainName: '',
+                ipAddress: '',
                 port: '',
-                webType: '',
-                cityType: '',
+                frontEndType: '',
+                inOutCityType: '',
                 description: '',
             },
             rules: {
diff --git a/src/views/systemSetting/device/bayonet/index.vue b/src/views/systemSetting/device/bayonet/index.vue
index 23b3a98..00ff0a4 100644
--- a/src/views/systemSetting/device/bayonet/index.vue
+++ b/src/views/systemSetting/device/bayonet/index.vue
@@ -8,7 +8,6 @@
                         <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value">
                         </el-option>
                     </el-select>
-                    <!-- <el-input placeholder="璇疯緭鍏ュ唴瀹�" v-model="context"></el-input> -->
                 </div>
             </div>
         </header>
@@ -16,90 +15,41 @@
             <div class="main-content">
                 <div class="main-title">
                     <el-button class="el-icon-plus" type="primary" @click="dialogCreate = true">娣诲姞</el-button>
-                    <el-button class="">瀵煎嚭鍗″彛</el-button>
+                    <el-button @click="handleExport">瀵煎嚭鍗″彛</el-button>
                 </div>
                 <!-- 鏁版嵁灞曠ず -->
-                <el-table ref="multipleTable"
-                    :header-cell-style="{background:'#06122c','font-size':'12px',color:'#4b9bb7','font-weight':'650','line-height':'45px'}"
-                    :data="tableData" style="width: 100%" :row-class-name="tableRowClassName"
-                    @selection-change="tableChange">
-                    <el-table-column type="selection" min-width="5">
-                    </el-table-column>
-                    <el-table-column prop="name" label="鍗″彛鍚嶇О" min-width="10">
-                    </el-table-column>
-                    <el-table-column prop="sort" label="缁忕含搴︿綅缃�" min-width="10">
-                    </el-table-column>
-                    <el-table-column prop="adminCount" label="鎵�灞炲尯鍩�" min-width="10">
-                    </el-table-column>
-                    <el-table-column prop="description" label="鍩熷悕/IP" min-width="10">
-                    </el-table-column>
-                    <el-table-column prop="description" label="绔彛鍙�" min-width="10">
-                    </el-table-column>
-                    <el-table-column prop="description" label="鍓嶇绫诲瀷" min-width="10">
-                    </el-table-column>
-                    <el-table-column prop="description" label="鍑哄叆鍩庣被鍨�" min-width="10">
-                    </el-table-column>
-                    <el-table-column prop="operation" label="鎿嶄綔" min-width="15">
-                        <template slot-scope="scope">
-                            <div class="operation">
-                                <span>缂栬緫</span>
-                            </div>
-                        </template>
-                    </el-table-column>
-                </el-table>
-                <!-- tools -->
-                <!-- <div class="tools">
-                    <div class="funs">
-                        <div class="funsItem">
-                            <el-checkbox v-model="all" @change="selectAll()">鍏ㄩ��</el-checkbox>
-                        </div>
-                        <div class="funsItem">
-                            <el-checkbox v-model="unsame" @change="disSame(tableData)">鍙嶉��</el-checkbox>
-                        </div>
-                        <div class="funsItem">
-                            <el-select v-model="myIdx" placeholder="鎵归噺鎿嶄綔" @change="selectChange">
-                                <el-option v-for="item in options" :key="item.value" :label="item.label"
-                                    :value="item.value" :disabled="item.disabled">
-                                </el-option>
-                            </el-select>
-                        </div>
-                    </div>
-                    <div class="pagination">
-                        <el-pagination background :current-page="currentPage" layout="prev, pager, next"
-                            :total="totalNum" :page-size="pageSize" @current-change="changeCurrentPage"
-                            @prev-click="handlePrev" @next-click="handleNext">
-                        </el-pagination>
-                    </div>
-                </div> -->
+                <MyTable 
+                    :tableOption="tableOption" 
+                    :tableData="list" 
+                    :pageShow="false">
+                    <template #operation="info">
+                        <el-link :underline="false" style="color:#4b9bb7">缂栬緫</el-link>
+                    </template>
+                </MyTable>
             </div>
         </main>
         <footer>
             <!-- 娣诲姞鍗″彛 -->
             <el-dialog title="娣诲姞鍗″彛" :visible.sync="dialogCreate" width="60%" :before-close="handleClose">
-                <MyCreate></MyCreate>
+                <MyCreate :addBayonet="addBayonet"></MyCreate>
             </el-dialog>
         </footer>
     </div>
 </template>
 <script>
-import helper from "@/utils/mydate.js"
 import MyCreate from './create'
+import MyTable from '@/components/Table'
+import {myDownLoad} from '@/utils/helper'
+import { createNamespacedHelpers } from "vuex";
+const { mapActions } = createNamespacedHelpers("bayonet");
 export default {
     components: {
-        MyCreate
+        MyCreate, MyTable,
     },
     data() {
         return {
-            tableData: [],
-            context: 0,
             dialogCreate: false,
-            totalNum: null,
-            pageSize: 10,
-            currentPage: 1,
-            all: false,
-            unsame: false,
-            myIdx: 0,
-            preMyIdx: 0,
+            context: 0,
             options: [
                 {
                     value: 0,
@@ -110,131 +60,85 @@
                     label: '鍦ㄧ嚎',
                 }
             ],
-            tempList: []
+            list: [],
+            current: 1,
+            size: 10,
+            tableOption: {
+                group: [
+                    {
+                        label: '鍗″彛鍚嶇О',
+                        type: 'text',
+                        prop: 'bayonetName',
+                    },
+                    {
+                        label: '缁忕含搴︿綅缃�',
+                        type: 'text',
+                        prop: 'latitude',
+                    },
+                    // {
+                    //     label: '鎵�灞炲尯鍩�',
+                    //     type: 'text',
+                    //     prop: '',
+                    // },
+                    {
+                        label: '鍩熷悕/IP',
+                        type: 'text',
+                        prop: 'ipAddress',
+                    },
+                    {
+                        label: '绔彛鍙�',
+                        type: 'text',
+                        prop: 'port',
+                    },
+                    {
+                        label: '鍓嶇绫诲瀷',
+                        type: 'text',
+                        prop: 'frontEndType',
+                    },
+                    {
+                        label: '鍑哄叆鍩庣被鍨�',
+                        type: 'text',
+                        prop: 'inOutCityType',
+                    },
+                    {
+                        label: '鎿嶄綔',
+                        type: 'operation',
+                        prop: 'operation',
+                    },
+                ]
+            },
         }
     },
     created() {
+        const { setTableData } = this;
+        setTableData();
     },
     methods: {
-        async selectChange(list) {
-            console.log(this.tempList);
-            if (this.tempList.length !== 0) {
-                this.preMyIdx = list;
-                if (list === 3) {
-                    await this.handleDelete(this.tempList);
-                } else if (list === 2) {
-                    await this.mulUpdateStatus(this.tempList, 0);
-                } else {
-                    await this.mulUpdateStatus(this.tempList, 1);
-                }
-                this.myIdx = 0;
-            } else {
-                this.myIdx = this.preMyIdx;
-                this.$message({
-                    type: 'warning',
-                    message: '鎮ㄨ繕娌¢�変腑浠讳綍鏁版嵁',
-                })
-            }
-        },
-        mulUpdateStatus(idArr, flag) {
-            this.$confirm(flag === 1 ? "鎮ㄧ‘瀹氳杩涜鎵归噺鍚敤瑙掕壊鍚�?" : '鎮ㄧ‘瀹氳杩涜鎵归噺绂佺敤瑙掕壊鍚�?')
-                .then(_ => {
-                    this.$axios({
-                        method: 'post',
-                        url: 'sccg/role/updateStatusBatch?ids=' + idArr + '&status=' + flag,
-                    })
-                        .then(res => {
-                            if (res.code === 200) {
-                                this.$message({
-                                    type: 'success',
-                                    message: '鏇存敼鐢ㄦ埛鐘舵�佹垚鍔�',
-                                })
-                                this.getUserList();
-                            } else {
-                                this.$message({
-                                    type: 'error',
-                                    message: res.message
-                                })
-                            }
-                            console.log(res);
-                        })
-                })
-                .catch(err => { console.log(err) })
-        },
-        tableChange(list) {
-            this.tempList = [];
-            list.forEach(item => {
-                this.tempList.push(item.id);
-            })
-            if (list.length === this.tableData.length) {
-                this.all = true;
-            } else {
-                this.all = false
-            }
-        },
-        changeTime({ createTime }) {
-            return helper(createTime);
-        },
-        selectAll() {
-            this.$refs.multipleTable.toggleAllSelection();
-        },
-        disSame(list) {
-            list.forEach(row => {
-                this.$refs.multipleTable.toggleRowSelection(row)
-            })
-        },
-        handleDelete(id) {
-            const that = this;
-            // let arr = [];
-            // arr.push(id);
-            this.$confirm('纭鍒犻櫎锛�')
-                .then(_ => {
-                    that.$axios({
-                        method: 'post',
-                        url: 'sccg/role/delete?ids=' + id,
-                    })
-                        .then(res => {
-                            this.myIdx = 0;
-                            this.preMyIdx = 0;
-                            console.log(res);
-                            this.$message({
-                                type: 'success',
-                                message: res.message
-                            })
-
-                            this.getUserList();
-                        })
-                })
-                .catch(_ => { });
-        },
-        // 璁剧疆琛ㄦ牸鏂戦┈绾�
-        tableRowClassName({ row, rowIndex }) {
-            if ((rowIndex + 1) % 2 == 0) {
-                return 'warning-row';
-            } else {
-                return 'success-row';
-            }
-            return '';
-        },
-        // 褰撳墠椤垫敼鍙樿Е鍙戜簨浠�
-        changeCurrentPage(page) {
-            this.currentPage = page;
-        },
-        // 涓婁竴椤电偣鍑讳簨浠�
-        handlePrev(page) {
-            this.currentPage = page;
-        },
-        // 涓嬩竴椤电偣鍑讳簨浠�
-        handleNext(page) {
-            this.currentPage = page;
-        },
-        // 鍏抽棴寮圭獥
+        // 寮圭獥鍏抽棴
         handleClose(done) {
-            this.$confirm('纭鍏抽棴锛�')
+            this.$confirm('纭鍏抽棴?')
                 .then(_ => {
                     done();
                 })
-                .catch(_ => { });
+        },
+        ...mapActions(['getBayonetList', 'exportBayonetList','addBayonet']),
+        // 璁剧疆tableData
+        async setTableData() {
+            const { current, size, context } = this;
+            let arr = await this.getBayonetList({
+                // bayonetName:context,
+                current, size
+            })
+            this.list = arr.data.data
+        },
+        // 瀵煎嚭
+        async handleExport(){
+            const { current, size, context } = this;
+            let arr = await this.exportBayonetList({
+                current, size
+            })
+            myDownLoad(arr);
+            console.log(arr);
         }
     }
 }

--
Gitblit v1.8.0