Эх сурвалжийг харах

用户管理、组织管理、权限管理更新

chuwuya 2 жил өмнө
parent
commit
af4e4aeb3d
45 өөрчлөгдсөн 4932 нэмэгдсэн , 3 устгасан
  1. 814 3
      package-lock.json
  2. 7 0
      package.json
  3. 36 0
      src/components/Checkbox/index.vue
  4. 43 0
      src/components/Hamburger/index.vue
  5. 56 0
      src/components/SvgIcon/index.vue
  6. 61 0
      src/components/home/MainFrame.vue
  7. 53 0
      src/components/pagination/index.vue
  8. 7 0
      src/icons/index.js
  9. 1 0
      src/icons/svg/at-sign.svg
  10. 205 0
      src/layout/Navbar.vue
  11. 70 0
      src/layout/Sidebar.vue
  12. 4 0
      src/main.js
  13. 87 0
      src/utils/validate.js
  14. 4 0
      src/views/HomeView.vue
  15. 30 0
      src/views/permissionManagement/decisiongroup/index.vue
  16. 285 0
      src/views/permissionManagement/decisiongroup/permissionDetail.vue
  17. 165 0
      src/views/permissionManagement/decisiongroup/rolemembersList.vue
  18. 126 0
      src/views/permissionManagement/index.vue
  19. 22 0
      src/views/permissionManagement/messageDialog/delete.vue
  20. 284 0
      src/views/permissionManagement/messageDialog/roleUpdate.vue
  21. 142 0
      src/views/permissionManagement/messageDialog/userInfo.vue
  22. 142 0
      src/views/permissionManagement/roleOverview.vue
  23. 52 0
      src/views/systemManagement/index.vue
  24. 138 0
      src/views/systemManagement/infoConfiguration/infoConfigure.vue
  25. 113 0
      src/views/userManagement/groupManagement/forms/corporationdetailEdit.vue
  26. 113 0
      src/views/userManagement/groupManagement/forms/corporationdetailStore.vue
  27. 122 0
      src/views/userManagement/groupManagement/forms/departmentdetailEdit.vue
  28. 98 0
      src/views/userManagement/groupManagement/index.vue
  29. 138 0
      src/views/userManagement/groupManagement/messageDialog/corporationAdd.vue
  30. 130 0
      src/views/userManagement/groupManagement/messageDialog/departmentNew.vue
  31. 22 0
      src/views/userManagement/groupManagement/messageDialog/update.vue
  32. 147 0
      src/views/userManagement/groupManagement/tables/corporationOverview.vue
  33. 52 0
      src/views/userManagement/index.vue
  34. 143 0
      src/views/userManagement/personManagement/index.vue
  35. 0 0
      src/views/userManagement/personManagement/messageDialog/activate.vue
  36. 22 0
      src/views/userManagement/personManagement/messageDialog/delete.vue
  37. 22 0
      src/views/userManagement/personManagement/messageDialog/disabled.vue
  38. 22 0
      src/views/userManagement/personManagement/messageDialog/failed.vue
  39. 22 0
      src/views/userManagement/personManagement/messageDialog/sucess.vue
  40. 142 0
      src/views/userManagement/personManagement/messageDialog/userInfo.vue
  41. 180 0
      src/views/userManagement/personManagement/tables/activeUser.vue
  42. 174 0
      src/views/userManagement/personManagement/tables/deactiveUser.vue
  43. 203 0
      src/views/userManagement/personManagement/tables/table3.vue
  44. 203 0
      src/views/userManagement/personManagement/tables/table4.vue
  45. 30 0
      vue.config.js

Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 814 - 3
package-lock.json


+ 7 - 0
package.json

@@ -19,8 +19,15 @@
     "@vue/cli-plugin-vuex": "~5.0.0",
     "@vue/cli-service": "~5.0.0",
     "babel-plugin-component": "^1.1.1",
+<<<<<<< HEAD
     "sass": "^1.32.7",
     "sass-loader": "^12.0.0",
+=======
+    "less-loader": "^11.1.0",
+    "sass": "^1.32.7",
+    "sass-loader": "^12.0.0",
+    "svg-sprite-loader": "^6.0.11",
+>>>>>>> 6d4aae2 (用户管理、组织管理、权限管理更新)
     "vue-template-compiler": "^2.6.14"
   }
 }

+ 36 - 0
src/components/Checkbox/index.vue

@@ -0,0 +1,36 @@
+<template>
+    <div>
+        <el-checkbox checked>已选择{{ total }}项
+        </el-checkbox>
+    </div>
+</template>
+  
+<script>
+export default {
+    name: 'Checkbox',
+    data() {
+        return {
+            total: 0
+        }
+    },
+    methods: {
+    }
+}
+
+</script>
+  
+<style lang="less" scoped>
+.el-checkbox {
+    height: 12px;
+    width: 12px;
+    line-height: 20px;
+    text-align: center;
+
+
+    /deep/.el-checkbox__inner {
+        width: 16px;
+        height: 16px;
+    }
+}
+</style>
+  

+ 43 - 0
src/components/Hamburger/index.vue

@@ -0,0 +1,43 @@
+<template>
+  <div style="padding: 0 15px;" @click="toggleClick">
+    <svg
+      :class="{'is-active':isActive}"
+      class="hamburger"
+      viewBox="0 0 1024 1024"
+      xmlns="http://www.w3.org/2000/svg"
+      width="64"
+      height="64"
+    >
+      <path d="M408 442h480c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H408c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm-8 204c0 4.4 3.6 8 8 8h480c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H408c-4.4 0-8 3.6-8 8v56zm504-486H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 632H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM142.4 642.1L298.7 519a8.84 8.84 0 0 0 0-13.9L142.4 381.9c-5.8-4.6-14.4-.5-14.4 6.9v246.3a8.9 8.9 0 0 0 14.4 7z" />
+    </svg>
+  </div>
+</template>
+
+<script>
+export default {
+  name: 'Hamburger',
+  props: {
+    isActive: {
+      default: false
+    }
+  },
+  methods: {
+    toggleClick() {
+      this.$emit('toggleClick')
+    }
+  }
+}
+</script>
+
+<style lang="less" scoped>
+.hamburger {
+  /* display: inline-block; */
+  vertical-align: middle;
+  width: 30px;
+  height: 30px;
+}
+
+.hamburger.is-active {
+  transform: rotate(180deg);
+}
+</style>

+ 56 - 0
src/components/SvgIcon/index.vue

@@ -0,0 +1,56 @@
+<template>
+    <svg :class="svgClass" aria-hidden="true" v-on="$listeners">
+        <use :xlink:href="iconName" />
+    </svg>
+</template>
+ 
+<script>
+    export default {
+        name: 'SvgIcon',
+        props: {
+            iconClass: {
+                type: String,
+                required: true
+            },
+            className: {
+                type: String,
+                default: ''
+            }
+        },
+        computed: {
+ 
+            iconName() {
+                return `#icon-${this.iconClass}`
+            },
+            svgClass() {
+                if (this.className) {
+                    return 'svg-icon ' + this.className
+                } else {
+                    return 'svg-icon'
+                }
+            },
+            styleExternalIcon() {
+                return {
+                    mask: `url(${this.iconClass}) no-repeat 50% 50%`,
+                    '-webkit-mask': `url(${this.iconClass}) no-repeat 50% 50%`
+                }
+            }
+        }
+    }
+</script>
+ 
+<style scoped>
+    .svg-icon {
+        width: 1.5em;
+        height: 1.5em;
+        vertical-align: -0.15em;
+        fill: currentColor;
+        overflow: hidden;
+    }
+ 
+    .svg-external-icon {
+        background-color: currentColor;
+        mask-size: cover!important;
+        display: inline-block;
+    }
+</style>

+ 61 - 0
src/components/home/MainFrame.vue

@@ -1,12 +1,25 @@
 <template>
   <div class="mainFrame">
     <el-container>
+<<<<<<< HEAD
       <el-header>Header</el-header>
       <el-container>
         <el-aside >Aside</el-aside>
         <el-container>
           <el-main>
             <router-view />
+=======
+      <el-header>
+        <navbar></navbar>
+      </el-header>
+      <el-container>
+        <el-aside>
+          <sidebar></sidebar>
+        </el-aside>
+        <el-container>
+          <el-main>
+            <test></test>
+>>>>>>> 6d4aae2 (用户管理、组织管理、权限管理更新)
           </el-main>
         </el-container>
       </el-container>
@@ -15,18 +28,37 @@
 </template>
 
 <script>
+<<<<<<< HEAD
 export default {
   data() {
     return {}
+=======
+import navbar from '@/layout/Navbar'
+import sidebar from '@/layout/Sidebar'
+import userManagement from '@/views/userManagement/index'
+import permissionManagement from '@/views/permissionManagement/index'
+import test from '@/views/systemManagement/index'
+export default {
+  components: { navbar, sidebar,userManagement,permissionManagement,test },
+  methods: {
+    toggleSideBar() {
+
+    },
+>>>>>>> 6d4aae2 (用户管理、组织管理、权限管理更新)
   }
 }
 </script>
 
+<<<<<<< HEAD
 <style scoped>
+=======
+<style lang="less" scoped>
+>>>>>>> 6d4aae2 (用户管理、组织管理、权限管理更新)
 .mainFrame {
   width: 100%;
   height: 100%;
 }
+<<<<<<< HEAD
 .el-container {
   height: 100%;
 }
@@ -40,6 +72,32 @@ export default {
   background-color: #D3DCE6;
   color: #333;
   height: 100%;
+=======
+
+.el-container {
+  height: 100%;
+}
+
+.el-header {
+  left: 0px;
+  top: 0px;
+  height: 64px !important;
+  line-height: 20px;
+  background-color: rgba(10, 35, 55, 1);
+  text-align: center;
+  box-shadow: 0px 1px 6px 0px rgba(0, 0, 0, 0.15);
+}
+
+.el-aside {
+  left: 0px;
+  top: 63px;
+  width: 200px !important;
+  line-height: 20px;
+  background-color: rgba(32, 55, 73, 1);
+  color: rgba(16, 16, 16, 1);
+  font-size: 14px;
+  text-align: center;
+>>>>>>> 6d4aae2 (用户管理、组织管理、权限管理更新)
 }
 
 .el-main {
@@ -47,5 +105,8 @@ export default {
   color: #333;
   height: 100%;
 }
+<<<<<<< HEAD
 
+=======
+>>>>>>> 6d4aae2 (用户管理、组织管理、权限管理更新)
 </style>

+ 53 - 0
src/components/pagination/index.vue

@@ -0,0 +1,53 @@
+<template>
+    <div>
+        <el-pagination background @size-change="handleSizeChange" @current-change="handleCurrentChange"
+            :current-page="currentPage" :page-sizes="[10, 20, 30, 40]" :page-size="10"
+            layout="total, prev, pager, next,sizes, jumper" :total="40">
+        </el-pagination>
+    </div>
+</template>
+
+<script>
+export default {
+    name:'page',
+    data() {
+        return {
+            currentPage: 1,
+        }
+    },
+    methods: {
+        handleSizeChange(val) {
+            console.log(`每页 ${val} 条`);
+        },
+        handleCurrentChange(val) {
+            console.log(`当前页: ${val}`);
+        },
+    }
+}
+</script>
+
+<style lang="less" scoped>
+.el-pagination {
+    position: absolute;
+    width: 200px;
+    top: 10px;
+    right: 350px;
+
+    /deep/.el-pagination__jump {
+        margin-left: 0;
+    }
+
+    /deep/.btn-prev {
+        border-radius: 5px;
+    }
+
+    /deep/.btn-next {
+        border-radius: 5px;
+    }
+
+    /deep/ .el-pager li {
+        border-radius: 5px;
+    }
+
+}
+</style>

+ 7 - 0
src/icons/index.js

@@ -0,0 +1,7 @@
+import Vue from 'vue'
+import SvgIcon from '@/components/SvgIcon' // svg组件
+// 注册为全局组件
+Vue.component('svg-icon', SvgIcon)
+const req = require.context('./svg', false, /\.svg$/)
+const requireAll = requireContext => requireContext.keys().map(requireContext)
+requireAll(req)

+ 1 - 0
src/icons/svg/at-sign.svg

@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-at-sign"><circle cx="12" cy="12" r="4"></circle><path d="M16 8v5a3 3 0 0 0 6 0v-1a10 10 0 1 0-3.92 7.94"></path></svg>

+ 205 - 0
src/layout/Navbar.vue

@@ -0,0 +1,205 @@
+<template>
+  <div>
+    <div class="left-menu">
+      <hamburger class="hamburger-container" 
+        @toggleClick="toggleSideBar" />
+      <div>
+        <img class="img" src="@/assets/logo.png" alt="">
+      </div>
+      <div class="title">
+        <div class="tit">智慧运营管理中心</div>
+        <div class="tit2">Intelligent operation and managenemnt center</div>
+      </div>
+      <el-select class="select-btn" v-model="value" placeholder="主语国际3号楼">
+        <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value">
+        </el-option>
+      </el-select>
+    </div>
+    <div class="right-menu">
+      <img class="phone" src="@/assets/logo.png" alt="">
+      <img class="help" src="@/assets/logo.png" alt="">
+      <img class="notification" src="@/assets/logo.png" alt="" @click="notify">
+      <div class="avatar"><el-avatar :size="50" :src="circleUrl"></el-avatar></div>
+      <div class="info">
+        <i class="el-icon-user"></i>
+        {{ name }}
+      </div>
+    </div>
+  </div>
+</template>
+
+<script>
+import hamburger from '@/components/Hamburger/'
+export default {
+  components: { hamburger },
+  name: "Navbar",
+  data() {
+    return {
+      options: {
+
+      },
+      name: "test",
+      circleUrl: "https://cube.elemecdn.com/0/88/03b0d39583f48206768a7534e55bcpng.png",
+      isCollapse: true
+    }
+  },
+  methods: {
+    notify() {
+
+    }
+  }
+}
+</script>
+
+<style lang="less" scoped>
+.left-menu {
+  float: left;
+  height: 100%;
+  line-height: 35px;
+  width: 700px;
+
+  .hamburger-container {
+    position: absolute;
+    line-height: 60px;
+    left: 0;
+    height: 60px;
+    float: left;
+    cursor: pointer;
+    transition: background .3s;
+    -webkit-tap-highlight-color:transparent;
+
+    &:hover {
+      background: rgba(0, 0, 0, .025)
+    }
+
+
+
+    &:hover {
+      background: rgba(247, 243, 243, 0.966)
+    }
+  }
+
+  .img {
+    display: flex;
+    position: absolute;
+    left: 70px;
+    top: 3px;
+    width: 58px;
+    height: 57px;
+    bottom: 4px;
+  }
+
+  .title {
+    position: absolute;
+    // margin-top: 4px;
+    // margin-bottom: 4px;
+    left: 130px;
+    // top: 4px;
+    width: 302px;
+    height: 64px;
+    color: rgba(255, 255, 255, 1);
+    // font-size: 18px;
+    text-align: left;
+
+    .tit {
+      left: 130px;
+      margin-top: 4px;
+      width: 302px;
+      height: 29px;
+      color: rgba(255, 255, 255, 1);
+      font-size: 18px;
+      text-align: left;
+    }
+
+    .tit2 {
+      left: 130px;
+      top: 33px;
+      width: 302px;
+      height: 29px;
+      color: rgba(255, 255, 255, 1);
+      font-size: 14px;
+      text-align: left;
+      align-content: center;
+    }
+  }
+
+  .select-btn {
+    position: absolute;
+    left: 442px;
+    top: 15px;
+    width: 205px;
+    height: 36px;
+    line-height: 23px;
+    border-radius: 4px;
+    color: rgba(226, 229, 231, 1);
+    font-size: 16px;
+    text-align: center;
+
+    /deep/.el-input__inner {
+      background-color: rgba(67, 86, 102, 1);
+      color: rgba(226, 229, 231, 1);
+      border: 1px solid rgba(67, 86, 102, 1);
+    }
+  }
+}
+
+.right-menu {
+  float: right;
+  height: 100%;
+  line-height: 50px;
+  width: 344px;
+
+  &:focus {
+    outline: none;
+  }
+
+  .phone {
+    position: absolute;
+    float: right;
+    right: 320px;
+    top: 20px;
+    width: 24px;
+    height: 24px;
+  }
+
+  .help {
+    position: absolute;
+    float: right;
+    right: 278px;
+    top: 20px;
+    width: 24px;
+    height: 24px;
+  }
+
+  .notification {
+    position: absolute;
+    float: right;
+    right: 236px;
+    top: 20px;
+    width: 24px;
+    height: 24px;
+  }
+
+  .avatar {
+    position: absolute;
+    float: right;
+    right: 166px;
+    top: 6px;
+    width: 50px;
+    height: 50px;
+  }
+
+  .info {
+    position: absolute;
+    float: right;
+    right: 86px;
+    width: 98px;
+    height: 50px;
+    top: 7px;
+    bottom: 7px;
+    color: rgba(255, 255, 255, 1);
+
+  }
+
+}
+</style>

+ 70 - 0
src/layout/Sidebar.vue

@@ -0,0 +1,70 @@
+<template>
+  <div>
+    <el-menu mode="vertical" @open="handOpen" @close="handClose" background-color="#203749"
+      text-color="rgba(255, 255, 255, 1)" active-text-color="#ffd04b">
+      <el-submenu index="1">
+        <span slot="title">用户管理</span>
+        <el-menu-item index="1-1">人员管理</el-menu-item>
+        <el-menu-item index="1-2">组织管理</el-menu-item>
+      </el-submenu>
+      <el-submenu index="2">
+        <span slot="title">角色管理</span>
+      </el-submenu>
+      <el-submenu index="3">
+        <span slot="title">权限管理</span>
+      </el-submenu>
+      <el-submenu index="4">
+        <span slot="title">系统配置</span>
+        <el-menu-item index="4-1">策略配置</el-menu-item>
+        <el-menu-item index="4-2">消息配置</el-menu-item>
+        <el-menu-item index="4-3">信息配置</el-menu-item>
+        <el-menu-item index="4-4">指标配置</el-menu-item>
+      </el-submenu>
+      <el-submenu index="5">
+        <span slot="title">设备管理</span>
+        <el-menu-item index="5-1">设备配置</el-menu-item>
+        <el-menu-item index="5-2">设备告警</el-menu-item>
+      </el-submenu>
+      <el-submenu index="6">
+        <span slot="title">数据管理</span>
+        <el-menu-item index="6-1">报表配置</el-menu-item>
+        <el-menu-item index="6-2">报告配置</el-menu-item>
+        <el-menu-item index="6-3">基础信息</el-menu-item>
+      </el-submenu>
+      <el-submenu index="7">
+        <span slot="title">服务管理</span>
+        <el-menu-item index="7-1">全部服务</el-menu-item>
+        <el-menu-item index="7-2">已安装服务</el-menu-item>
+        <el-menu-item index="7-3">未安装服务</el-menu-item>
+      </el-submenu>
+      <el-submenu index="8">
+        <span slot="title">安全管理</span>
+        <el-menu-item index="8-1">日志监控</el-menu-item>
+        <el-menu-item index="8-2">系统监控</el-menu-item>
+      </el-submenu>
+    </el-menu>
+  </div>
+</template>
+  
+<script>
+
+export default {
+  name: "sidebar",
+  methods: {
+
+
+  }
+}
+</script>
+  
+<style lang="less" scoped>
+.el-menu {
+  width: 200px;
+  border: 0;
+
+  /deep/.el-submenu__icon-arrow {
+    display: none;
+  }
+}
+</style>
+  

+ 4 - 0
src/main.js

@@ -9,6 +9,10 @@ import ElementUI from 'element-ui';
 import 'element-ui/lib/theme-chalk/index.css';
 import locale from 'element-ui/lib/locale/lang/zh-CN'
 
+<<<<<<< HEAD
+=======
+import '@/icons'
+>>>>>>> 6d4aae2 (用户管理、组织管理、权限管理更新)
 Vue.use(ElementUI, { locale });
 
 new Vue({

+ 87 - 0
src/utils/validate.js

@@ -0,0 +1,87 @@
+/**
+ * Created by PanJiaChen on 16/11/18.
+ */
+
+/**
+ * @param {string} path
+ * @returns {Boolean}
+ */
+export function isExternal(path) {
+  return /^(https?:|mailto:|tel:)/.test(path)
+}
+
+/**
+ * @param {string} str
+ * @returns {Boolean}
+ */
+export function validUsername(str) {
+  const valid_map = ['admin', 'editor']
+  return valid_map.indexOf(str.trim()) >= 0
+}
+
+/**
+ * @param {string} url
+ * @returns {Boolean}
+ */
+export function validURL(url) {
+  const reg = /^(https?|ftp):\/\/([a-zA-Z0-9.-]+(:[a-zA-Z0-9.&%$-]+)*@)*((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]?)(\.(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])){3}|([a-zA-Z0-9-]+\.)*[a-zA-Z0-9-]+\.(com|edu|gov|int|mil|net|org|biz|arpa|info|name|pro|aero|coop|museum|[a-zA-Z]{2}))(:[0-9]+)*(\/($|[a-zA-Z0-9.,?'\\+&%$#=~_-]+))*$/
+  return reg.test(url)
+}
+
+/**
+ * @param {string} str
+ * @returns {Boolean}
+ */
+export function validLowerCase(str) {
+  const reg = /^[a-z]+$/
+  return reg.test(str)
+}
+
+/**
+ * @param {string} str
+ * @returns {Boolean}
+ */
+export function validUpperCase(str) {
+  const reg = /^[A-Z]+$/
+  return reg.test(str)
+}
+
+/**
+ * @param {string} str
+ * @returns {Boolean}
+ */
+export function validAlphabets(str) {
+  const reg = /^[A-Za-z]+$/
+  return reg.test(str)
+}
+
+/**
+ * @param {string} email
+ * @returns {Boolean}
+ */
+export function validEmail(email) {
+  const reg = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/
+  return reg.test(email)
+}
+
+/**
+ * @param {string} str
+ * @returns {Boolean}
+ */
+export function isString(str) {
+  if (typeof str === 'string' || str instanceof String) {
+    return true
+  }
+  return false
+}
+
+/**
+ * @param {Array} arg
+ * @returns {Boolean}
+ */
+export function isArray(arg) {
+  if (typeof Array.isArray === 'undefined') {
+    return Object.prototype.toString.call(arg) === '[object Array]'
+  }
+  return Array.isArray(arg)
+}

+ 4 - 0
src/views/HomeView.vue

@@ -10,7 +10,11 @@ import MainFrame from "@/components/home/MainFrame.vue";
 export default {
   name: 'HomeView',
   components: {
+<<<<<<< HEAD
     MainFrame
+=======
+    MainFrame,
+>>>>>>> 6d4aae2 (用户管理、组织管理、权限管理更新)
   }
 }
 </script>

+ 30 - 0
src/views/permissionManagement/decisiongroup/index.vue

@@ -0,0 +1,30 @@
+<template>
+    <div>
+        <div class="header">
+            <el-button>权限详情</el-button>
+            <el-button>成员列表</el-button>
+        </div>
+        <test></test>
+    </div>
+</template>
+
+<script>
+import test from './permissionDetail'
+export default {
+    components: { test },
+    data() {
+        return {}
+    }
+}
+</script>
+<style lang="less" scoped>
+.header {
+    text-align: left;
+    padding: 15px;
+    font-size: 25px;
+
+    .el-button {
+        border-radius: 50px;
+    }
+}
+</style>

+ 285 - 0
src/views/permissionManagement/decisiongroup/permissionDetail.vue

@@ -0,0 +1,285 @@
+<template>
+    <div>
+        <el-form :model="form" label-position="left" label-width="80px">
+            <el-form-item :model="form.roleName" label="角色名称:">
+                <el-input placeholder="决策组-1" type="text"></el-input>
+            </el-form-item>
+            <el-form-item :model="form.roleDesc" label="角色描述:">
+                <el-input type="textarea" placeholder="请输入" v-model="textarea" maxlength="200" show-word-limit></el-input>
+            </el-form-item>
+            <div class="permissionType">
+                <el-tabs v-model="activeName" @tab-click="handleClick">
+                    <el-tab-pane label="PC端" name="pc"></el-tab-pane>
+                    <el-tab-pane label="移动端" name="mobile"></el-tab-pane>
+                </el-tabs>
+                <el-collapse v-model="activeNames" @change="handChange">
+                    <el-collapse-item name="1">
+                        <template slot="title">
+                            <i :class="isActive('1') !== -1 ? 'el-icon-caret-bottom' : 'el-icon-caret-right'"></i>前端
+                        </template>
+                        <div style="display: flex; margin-left: 20px;">
+                            <div>
+                                <el-tree :data="data1" :props="defaultProps" show-checkbox node-key="id"
+                                    @node-click="handleNodeClick">
+                                </el-tree>
+                                <el-tree :data="data2" :props="defaultProps" show-checkbox node-key="id"
+                                    @node-click="handleNodeClick">
+                                </el-tree>
+
+                                <el-tree :data="data3" :props="defaultProps" show-checkbox node-key="id"
+                                    @node-click="handleNodeClick">
+                                </el-tree>
+                            </div>
+                            <div style="margin-left: 200px">
+                                <el-tree :data="data4" :props="defaultProps" show-checkbox node-key="id"
+                                    @node-click="handleNodeClick">
+                                </el-tree>
+                                <el-tree :data="data5" :props="defaultProps" show-checkbox node-key="id"
+                                    @node-click="handleNodeClick">
+                                </el-tree>
+                                <el-tree :data="data6" :props="defaultProps" show-checkbox node-key="id"
+                                    @node-click="handleNodeClick">
+                                </el-tree>
+                            </div>
+                        </div>
+                    </el-collapse-item>
+                    <el-collapse-item name="2">
+                        <template slot="title">
+                            <i :class="isActive('2') !== -1 ? 'el-icon-caret-bottom' : 'el-icon-caret-right'"></i>后端
+                        </template>
+                        <div style="display: flex; margin-left: 20px;">
+                            <div>
+                                <el-tree :data="data7" :props="defaultProps" show-checkbox node-key="id"
+                                    @node-click="handleNodeClick">
+                                </el-tree>
+                                <el-tree :data="data8" :props="defaultProps" show-checkbox node-key="id"
+                                    @node-click="handleNodeClick">
+                                </el-tree>
+                            </div>
+                            <div style="margin-left: 137px;">
+                                <el-tree :data="data9" :props="defaultProps" show-checkbox node-key="id"
+                                    @node-click="handleNodeClick">
+                                </el-tree>
+                                <el-tree :data="data10" :props="defaultProps" show-checkbox node-key="id"
+                                    @node-click="handleNodeClick">
+                                </el-tree>
+                            </div>
+                        </div>
+                    </el-collapse-item>
+                </el-collapse>
+            </div>
+        </el-form>
+        <el-button>删除</el-button>
+        <el-button>编辑</el-button>
+    </div>
+</template>
+<script>
+export default {
+    data() {
+        return {
+            form: {},
+            textarea: '',
+            activeName: 'pc',
+            activeNames: ['1','2'],
+            data1: [{
+                label: '智能看板-[数据查看][数据导出]',
+                children: [{
+                    label: '数据查看',
+                }, {
+                    label: '数据导出',
+                }],
+            }],
+            data2: [{
+                label: '智慧办公-[数据查看][数据导出]',
+                children: [{
+                    label: '数据查看',
+                }, {
+                    label: '数据导出',
+                }],
+            }],
+            data3: [{
+                label: '智慧安防-[数据查看][数据导出][设备交互]',
+                children: [{
+                    label: '数据查看',
+                }, {
+                    label: '数据导出',
+                },
+                {
+                    label: '设备交互',
+                }],
+            }], 
+            data4: [{
+                label: '智享生活-[数据查看][数据导出]',
+                children: [{
+                    label: '数据查看',
+                }, {
+                    label: '数据导出',
+                }],
+            }],
+             data5: [{
+                label: '数智双碳-[数据查看][数据导出]',
+                children: [{
+                    label: '数据查看',
+                }, {
+                    label: '数据导出',
+                }],
+            }], 
+            data6: [{
+                label: '智慧场景-[数据查看][数据导出][策略配置][设备交互]',
+                children: [{
+                    label: '数据查看',
+                }, {
+                    label: '数据导出',
+                },
+                {
+                    label: '策略配置',
+                }, {
+                    label: '设备交互',
+                }],
+            }],
+            data7: [{
+                label: '人员管理-[信息查看][人员添加][人员更新][人员删除]',
+                children: [{
+                    label: '信息查看',
+                }, {
+                    label: '人员添加',
+                },
+                {
+                    label: '人员更新',
+                }, {
+                    label: '人员删除',
+                }],
+            }],
+            data8: [{
+                label: '角色管理-[信息查看][角色添加][角色更新][角色删除]',
+                children: [{
+                    label: '信息查看',
+                }, {
+                    label: '角色添加',
+                },
+                {
+                    label: '角色更新',
+                }, {
+                    label: '角色删除',
+                }],
+            }],
+            data9: [{
+                label: '组织管理-[信息查看][人员添加][人员更新][人员删除]',
+                children: [{
+                    label: '信息查看',
+                }, {
+                    label: '人员添加',
+                },
+                {
+                    label: '人员更新',
+                }, {
+                    label: '人员删除',
+                }],
+            }],
+            data10: [{
+                label: '权限管理-[信息查看][权限添加][权限更新][权限删除]',
+                children: [{
+                    label: '信息查看',
+                }, {
+                    label: '权限添加',
+                },
+                {
+                    label: '权限更新',
+                }, {
+                    label: '权限删除',
+                }],
+            }],
+            
+
+            defaultProps: {
+                children: 'children',
+                label: 'label'
+            }
+        }
+    },
+    methods: {
+        handleClick() {
+            //
+        },
+        isActive(data) {
+            return this.activeNames.indexOf(data);
+        }
+    }
+}
+</script>
+
+<style lang="less" scoped>
+.el-form {
+    //margin: 40px 0 0 0;
+
+    .el-form-item {
+        padding-top: 10px;
+        margin-inline: 20px;
+        margin-bottom: 10px;
+    }
+
+    /deep/.el-form-item__label {
+        padding: 0;
+        text-align: left;
+    }
+
+    /deep/.el-form-item__content {
+        display: flex;
+        width: 600px;
+    }
+
+    /deep/.el-textarea__inner {
+        height: 80px;
+        width: 1174px;
+        min-height: 50px !important;
+        max-height: 100px;
+    }
+}
+
+.permissionType {
+    margin-top: 20px;
+    width: 90%;
+    height: 460px;
+    margin-left: 5%;
+    background-color: rgb(247, 245, 243);
+
+    .el-collapse {
+        /deep/.el-collapse-item__arrow {
+            display: none;
+        }
+
+        /deep/.el-collapse-item__content {
+            height: 150px;
+            padding-bottom: 0;
+        }
+
+        /deep/.el-collapse-item__wrap {
+          border-bottom: 0;
+          background-color: rgb(247, 245, 243);
+        }
+
+        /deep/.el-collapse-item__header {
+            padding-left: 30px;
+            border-bottom: 0;
+            background-color: rgb(247, 245, 243);
+        }
+    }
+
+    /deep/.el-tabs__nav {
+        left: 25px;
+    }
+
+    .el-tree {
+        margin: 5px;
+        background-color: rgb(247, 245, 243);
+    }
+}
+
+.el-button {
+    height: 30px;
+    width: 100px;
+    margin-top: 20px;
+    margin-inline: 40px;
+    padding: 5px;
+}
+</style>

+ 165 - 0
src/views/permissionManagement/decisiongroup/rolemembersList.vue

@@ -0,0 +1,165 @@
+<template>
+    <div>
+        <el-table ref="multipleTable" border :data="tableData" tooltip-effect="dark"
+            :header-cell-style="{ textAlign: 'center' }" :cell-style="{ textAlign: 'center' }" style="width: 100%"
+            @selection-change="handleSelectionChange">
+            <el-table-column type="selection" width="50">
+            </el-table-column>
+            <el-table-column prop="rolename" label="角色名">
+            </el-table-column>
+            <el-table-column prop="phone_unm" label="手机号">
+            </el-table-column>
+            <el-table-column prop="e_mail" label="邮箱">
+            </el-table-column>
+            <el-table-column prop="working_address" label="单位">
+            </el-table-column>
+            <el-table-column prop="registed_time" label="注册时间">
+            </el-table-column>
+            <el-table-column prop="status" label="状态">
+                <template slot-scope="scope">
+                    <el-tag :color="scope.row.status == true ? '#06f77e' : '#757776'"></el-tag>
+                </template>
+            </el-table-column>
+            <el-table-column prop="operation" label="操作">
+                <el-button size="mini" type="text">编辑</el-button>
+                <el-button size="mini" type="text">删除</el-button>
+            </el-table-column>
+        </el-table>
+        <div class="bottom">
+            <div>
+                <checkbox class="checkbox"></checkbox>
+                <el-button class="check-cancel" size="mini" type="text" @click="cancleChecked">取消</el-button>
+            </div>
+            <div class="bottom_button" v-show="show">
+                <el-button class="delete" type="text">批量删除</el-button>
+            </div>
+            <page class="page"></page>
+        </div>
+    </div>
+</template>
+
+<script>
+import checkbox from '@/components/Checkbox/index'
+import page from '@/components/pagination/index'
+export default {
+    components: { checkbox, page },
+    data() {
+        return {
+            tableData: [{
+                rolename: 'admin',
+                phone_num: '12345678901',
+                e_mail: 'admin@xxxxx.com',
+                working_address: '北京电信规划设计院',
+                registed_time:'2022-01-01 18:00',
+                status:true
+            }, {
+                rolename: 'admin',
+                phone_num: '12345678901',
+                e_mail: 'admin@xxxxx.com',
+                working_address: '北京电信规划设计院',
+                registed_time:'2022-01-01 18:00',
+                status:false
+            }, {
+                rolename: 'admin',
+                phone_num: '12345678901',
+                e_mail: 'admin@xxxxx.com',
+                working_address: '北京电信规划设计院',
+                registed_time:'2022-01-01 18:00',
+                status:true
+            },{
+                rolename: 'admin',
+                phone_num: '12345678901',
+                e_mail: 'admin@xxxxx.com',
+                working_address: '北京电信规划设计院',
+                registed_time:'2022-01-01 18:00',
+                status:false
+            }],
+            multipleSelection: [],
+            show: true
+        }
+    },
+    methods: {
+        cancleChecked() {
+            //
+        },
+        handleClick() {
+            //
+        }
+    }
+}
+</script>
+<style lang="less" scoped>
+.info {
+    text-align: left;
+    padding: 20px;
+    font-size: 25px;
+}
+.el-tag {
+    width: 12px;
+    height: 12px;
+    border-radius: 100px;
+    padding: 0;
+}
+.bottom {
+    position: relative;
+    left: 20px;
+    top: 420px;
+    height: 50px;
+    line-height: 20px;
+    background-color: rgba(255, 255, 255, 1);
+    text-align: center;
+
+    .checkbox {
+        position: absolute;
+        left: 29px;
+        top: 15px;
+        font-size: 14px;
+    }
+
+    .check-cancel {
+        position: absolute;
+        // line-height: 20px;
+        font-size: 14px;
+        text-align: center;
+        left: 140px;
+        top: 10px;
+    }
+
+    .bottom_button {
+        position: absolute;
+        left: 200px;
+        top: 7px;
+
+        .delete {
+            width: 95px;
+            height: 30px;
+            font-size: 14px;
+            text-align: center;
+            padding: 1px;
+        }
+
+        .disabled {
+            width: 95px;
+            height: 30px;
+            font-size: 14px;
+            text-align: center;
+            padding: 1px;
+        }
+
+        .el-dropdown {
+            margin-left: 15px;
+
+            /deep/.el-button--primary {
+                height: 30px;
+                //background-color: rgba(255, 255, 255, 1);
+            }
+        }
+    }
+
+    .page {
+        position: absolute;
+        top: -10px;
+        right: 30px;
+    }
+}
+</style>

+ 126 - 0
src/views/permissionManagement/index.vue

@@ -0,0 +1,126 @@
+<template>
+    <div>
+        <div class="el-tab">
+            <el-tabs v-model="activeName" @tab-click="handleClick">
+                <el-tab-pane label="角色管理" name="role"></el-tab-pane>
+            </el-tabs>
+        </div>
+        <div class="container">
+            <div class="left-pane">
+                <el-input placeholder="请输入关键字" suffix-icon="el-icon-search" v-model="filterText"></el-input>
+                <el-tree ref="tree" :data="data" :props="defaultProps" node-key="id" default-expand-all
+                    :filter-node-method="filterNode" @node-click="handleNodeClick">
+                </el-tree>
+                <el-button><i class="el-icon-s-order"></i>新建角色</el-button>
+            </div>
+            <div class="right-pane">
+                <test></test>
+            </div>
+        </div>
+    </div>
+</template>
+
+<script >
+import test from './messageDialog/roleUpdate'
+export default {
+    components: { test },
+    data() {
+        return {
+            activeName: 'role',
+            filterText: '',
+            data: [{
+                label: '决策组',
+                children: [{
+                    label: '决策组',
+                }, {
+                    label: '管理员组'
+                }, {
+                    label: '普通用户组'
+                }]
+            }],
+            defaultProps: {
+                children: 'children',
+                label: 'label'
+            }
+        }
+    },
+    watch: {
+        filterText(val) {
+            this.$refs.tree.filter(val);
+        }
+    },
+    methods: {
+        handleClick() {
+            //
+        },
+        filterNode(value, data) {
+            if (!value) return true;
+            return data.label.indexOf(value) !== -1;
+        }
+    }
+};
+</script>
+<style lang="less" scoped>
+.el-tab {
+    position: absolute;
+    left: 218px;
+    right: 16px;
+    top: 77px;
+    height: 51px;
+    line-height: 20px;
+    background-color: rgba(255, 255, 255, 1);
+    text-align: center;
+    box-shadow: 0px 0px 4px 0px rgba(0, 0, 0, 0.15);
+
+    /deep/.el-tabs__nav {
+        left: 25px;
+    }
+
+    /deep/.el-tabs__nav-wrap::after {
+        height: 0;
+    }
+}
+
+.container {
+    position: absolute;
+    left: 218px;
+    top: 140px;
+    right: 16px;
+    //height: 800px;
+    line-height: 20px;
+    background-color: rgba(255, 255, 255, 1);
+    color: rgba(16, 16, 16, 1);
+    font-size: 14px;
+    text-align: center;
+    box-shadow: 0px 0px 4px 0px rgba(0, 0, 0, 0.15);
+
+    .left-pane {
+        width: 300px;
+        padding: 15px;
+
+        .el-tree {
+            height: 700px;
+            margin-top: 15px;
+            background-color: rgb(247, 245, 243);
+        }
+
+        .el-button {
+            position: absolute;
+            left: 35px;
+            bottom: 40px;
+            width: 250px;
+            background-color: rgb(131, 208, 243);
+            text-align: center;
+            font-size: 16px;
+        }
+    }
+
+    .right-pane {
+        width: 1340px;
+        position: absolute;
+        margin-left: 330px;
+        top: 0;
+        margin-right: 20px;
+    }
+}
+</style>

+ 22 - 0
src/views/permissionManagement/messageDialog/delete.vue

@@ -0,0 +1,22 @@
+<template>
+    <el-dialog :visible.sync="centerDialogVisible" width="30%" center style="display: flex;">
+        <div>/////</div>
+        <span slot="footer" class="dialog-footer">
+            <el-button @click="centerDialogVisible = false">取 消</el-button>
+            <el-button type="primary" @click="centerDialogVisible = false">确 认</el-button>
+        </span>
+    </el-dialog>
+</template>
+
+<script>
+export default {
+    data() {
+        return {
+            centerDialogVisible: false
+        };
+    }
+};
+</script>
+
+<script lang="less" scoped>
+</script>

+ 284 - 0
src/views/permissionManagement/messageDialog/roleUpdate.vue

@@ -0,0 +1,284 @@
+<template>
+    <div>
+        <el-form :model="form" label-position="left" label-width="80px">
+            <el-form-item :model="form.roleName" label="角色名称:">
+                <el-input placeholder="决策组-1" type="text"></el-input>
+            </el-form-item>
+            <el-form-item :model="form.roleDesc" label="角色描述:">
+                <el-input type="textarea" placeholder="请输入" v-model="textarea" maxlength="200" show-word-limit></el-input>
+            </el-form-item>
+            <div class="permissionType">
+                <el-tabs v-model="activeName" @tab-click="handleClick">
+                    <el-tab-pane label="PC端" name="pc"></el-tab-pane>
+                    <el-tab-pane label="移动端" name="mobile"></el-tab-pane>
+                </el-tabs>
+                <el-collapse v-model="activeNames" @change="handChange">
+                    <el-collapse-item name="1">
+                        <template slot="title">
+                            <i :class="isActive('1') !== -1 ? 'el-icon-caret-bottom' : 'el-icon-caret-right'"></i>前端
+                        </template>
+                        <div style="display: flex; margin-left: 20px;">
+                            <div>
+                                <el-tree :data="data1" :props="defaultProps" show-checkbox node-key="id"
+                                    @node-click="handleNodeClick">
+                                </el-tree>
+                                <el-tree :data="data2" :props="defaultProps" show-checkbox node-key="id"
+                                    @node-click="handleNodeClick">
+                                </el-tree>
+
+                                <el-tree :data="data3" :props="defaultProps" show-checkbox node-key="id"
+                                    @node-click="handleNodeClick">
+                                </el-tree>
+                            </div>
+                            <div style="margin-left: 200px">
+                                <el-tree :data="data4" :props="defaultProps" show-checkbox node-key="id"
+                                    @node-click="handleNodeClick">
+                                </el-tree>
+                                <el-tree :data="data5" :props="defaultProps" show-checkbox node-key="id"
+                                    @node-click="handleNodeClick">
+                                </el-tree>
+                                <el-tree :data="data6" :props="defaultProps" show-checkbox node-key="id"
+                                    @node-click="handleNodeClick">
+                                </el-tree>
+                            </div>
+                        </div>
+                    </el-collapse-item>
+                    <el-collapse-item name="2">
+                        <template slot="title">
+                            <i :class="isActive('2') !== -1 ? 'el-icon-caret-bottom' : 'el-icon-caret-right'"></i>后端
+                        </template>
+                        <div style="display: flex; margin-left: 20px;">
+                            <div>
+                                <el-tree :data="data7" :props="defaultProps" show-checkbox node-key="id"
+                                    @node-click="handleNodeClick">
+                                </el-tree>
+                                <el-tree :data="data8" :props="defaultProps" show-checkbox node-key="id"
+                                    @node-click="handleNodeClick">
+                                </el-tree>
+                            </div>
+                            <div style="margin-left: 137px;">
+                                <el-tree :data="data9" :props="defaultProps" show-checkbox node-key="id"
+                                    @node-click="handleNodeClick">
+                                </el-tree>
+                                <el-tree :data="data10" :props="defaultProps" show-checkbox node-key="id"
+                                    @node-click="handleNodeClick">
+                                </el-tree>
+                            </div>
+                        </div>
+                    </el-collapse-item>
+                </el-collapse>
+            </div>
+        </el-form>
+        <el-button>重置</el-button>
+        <el-button>保存</el-button>
+    </div>
+</template>
+<script>
+export default {
+    data() {
+        return {
+            form: {},
+            textarea: '',
+            activeName: 'pc',
+            activeNames: ['1'],
+            data1: [{
+                label: '智能看板-[数据查看][数据导出]',
+                children: [{
+                    label: '数据查看',
+                }, {
+                    label: '数据导出',
+                }],
+            }],
+            data2: [{
+                label: '智慧办公-[数据查看][数据导出]',
+                children: [{
+                    label: '数据查看',
+                }, {
+                    label: '数据导出',
+                }],
+            }],
+            data3: [{
+                label: '智慧安防-[数据查看][数据导出][设备交互]',
+                children: [{
+                    label: '数据查看',
+                }, {
+                    label: '数据导出',
+                },
+                {
+                    label: '设备交互',
+                }],
+            }],
+            data4: [{
+                label: '智享生活-[数据查看][数据导出]',
+                children: [{
+                    label: '数据查看',
+                }, {
+                    label: '数据导出',
+                }],
+            }],
+            data5: [{
+                label: '数智双碳-[数据查看][数据导出]',
+                children: [{
+                    label: '数据查看',
+                }, {
+                    label: '数据导出',
+                }],
+            }],
+            data6: [{
+                label: '智慧场景-[数据查看][数据导出][策略配置][设备交互]',
+                children: [{
+                    label: '数据查看',
+                }, {
+                    label: '数据导出',
+                },
+                {
+                    label: '策略配置',
+                }, {
+                    label: '设备交互',
+                }],
+            }],
+            data7: [{
+                label: '人员管理-[信息查看][人员添加][人员更新][人员删除]',
+                children: [{
+                    label: '信息查看',
+                }, {
+                    label: '人员添加',
+                },
+                {
+                    label: '人员更新',
+                }, {
+                    label: '人员删除',
+                }],
+            }],
+            data8: [{
+                label: '角色管理-[信息查看][角色添加][角色更新][角色删除]',
+                children: [{
+                    label: '信息查看',
+                }, {
+                    label: '角色添加',
+                },
+                {
+                    label: '角色更新',
+                }, {
+                    label: '角色删除',
+                }],
+            }],
+            data9: [{
+                label: '组织管理-[信息查看][人员添加][人员更新][人员删除]',
+                children: [{
+                    label: '信息查看',
+                }, {
+                    label: '人员添加',
+                },
+                {
+                    label: '人员更新',
+                }, {
+                    label: '人员删除',
+                }],
+            }],
+            data10: [{
+                label: '权限管理-[信息查看][权限添加][权限更新][权限删除]',
+                children: [{
+                    label: '信息查看',
+                }, {
+                    label: '权限添加',
+                },
+                {
+                    label: '权限更新',
+                }, {
+                    label: '权限删除',
+                }],
+            }],
+
+
+            defaultProps: {
+                children: 'children',
+                label: 'label'
+            }
+        }
+    },
+    methods: {
+        handleClick() {
+            //
+        },
+        isActive(data) {
+            return this.activeNames.indexOf(data);
+        }
+    }
+}
+</script>
+
+<style lang="less" scoped>
+.el-form {
+    //margin: 40px 0 0 0;
+
+    .el-form-item {
+        padding-top: 10px;
+        margin-inline: 20px;
+        margin-bottom: 10px;
+    }
+
+    /deep/.el-form-item__label {
+        padding: 0;
+        text-align: left;
+    }
+
+    /deep/.el-form-item__content {
+        display: flex;
+        width: 600px;
+    }
+
+    /deep/.el-textarea__inner {
+        height: 80px;
+        width: 1174px;
+        min-height: 50px !important;
+        max-height: 100px;
+    }
+}
+
+.permissionType {
+    margin-top: 20px;
+    width: 90%;
+    height: 460px;
+    margin-left: 5%;
+    background-color: rgb(247, 245, 243);
+
+    .el-collapse {
+        /deep/.el-collapse-item__arrow {
+            display: none;
+        }
+
+        /deep/.el-collapse-item__content {
+            height: 150px;
+            padding-bottom: 0;
+        }
+
+        /deep/.el-collapse-item__wrap {
+            border-bottom: 0;
+            background-color: rgb(247, 245, 243);
+        }
+
+        /deep/.el-collapse-item__header {
+            padding-left: 30px;
+            border-bottom: 0;
+            background-color: rgb(247, 245, 243);
+        }
+    }
+
+    /deep/.el-tabs__nav {
+        left: 25px;
+    }
+
+    .el-tree {
+        margin: 5px;
+        background-color: rgb(247, 245, 243);
+    }
+}
+
+.el-button {
+    height: 30px;
+    width: 100px;
+    margin-top: 20px;
+    margin-inline: 40px;
+    padding: 5px;
+}</style>

+ 142 - 0
src/views/permissionManagement/messageDialog/userInfo.vue

@@ -0,0 +1,142 @@
+<template>
+    <div class="form">
+        <div class="header">
+            <p style="text-align: left;margin-top: 10px;margin-left: 20px;">用户详情</p><span><i
+                    class="el-icon-close"></i></span>
+        </div>
+        <el-form :model="form" label-position="left" label-width="80px">
+            <el-form-item style="width: 350px;" :model="form.username" label="用户名:">
+                <el-input placeholder="test" type="text"></el-input>
+            </el-form-item>
+            <el-form-item style="width: 350px;" :model="form.password" label="密码:">
+                <el-input placeholder="test" show-password></el-input>
+            </el-form-item>
+            <el-form-item style="width: 350px;" :model="form.name" label="姓名:">
+                <el-input placeholder="test"></el-input>
+            </el-form-item>
+            <el-form-item style="width: 500px;" :model="form.phone" label="电话:">
+                <el-select style="width: 100px;">
+                    <el-option label="CN +86"></el-option>
+                </el-select><span><el-input style="width: 280px;" placeholder="test"></el-input></span>
+            </el-form-item>
+            <el-form-item :model="form.email" label="邮箱:">
+                <el-input style="width: 380px;" placeholder="test"></el-input>
+            </el-form-item>
+            <el-form-item :model="form.corporation" label="公司:">
+                <el-input style="width: 380px;" placeholder="test"></el-input>
+            </el-form-item>
+            <el-form-item :model="form.department" label="部门:">
+                <el-input style="width: 380px;" placeholder="test"></el-input>
+            </el-form-item>
+            <div style="display: flex;">
+                <el-form-item :model="form.role" label="角色:">
+                    <el-select style="width: 130px;">
+                        <el-option label="CN +86"></el-option>
+                    </el-select>
+                </el-form-item>
+                <el-form-item :model="form.permission" label="权限:">
+                    <el-select style="width: 130px;">
+                        <el-option label="CN +86"></el-option>
+                    </el-select>
+                </el-form-item>
+            </div>
+            <div style="display: flex;">
+                <el-form-item :model="form.working_status" label="在职状态:">
+                    <el-select style="width: 130px;">
+                        <el-option label="CN +86"></el-option>
+                    </el-select>
+                </el-form-item>
+                <el-form-item :model="form.post" label="职务:">
+                    <el-select style="width: 130px;">
+                        <el-option label="CN +86"></el-option>
+                    </el-select>
+                </el-form-item>
+            </div>
+            <div style="display: flex;">
+                <el-form-item :model="form.account_status" label="账户状态:">
+                    <el-select style="width: 130px;">
+                        <el-option label="CN +86"></el-option>
+                    </el-select>
+                </el-form-item>
+                <el-form-item :model="form.nationality" label="国籍:">
+                    <el-select style="width: 130px;">
+                        <el-option label="CN +86"></el-option>
+                    </el-select>
+                </el-form-item>
+            </div>
+            <div>
+                <el-button>下一个</el-button>
+                <el-button>移除</el-button>
+                <el-button>更新</el-button>
+            </div>
+            <el-avatar :size="122" :src="testUrl"></el-avatar>
+        </el-form>
+    </div>
+</template>
+
+<script>
+export default {
+    data() {
+        return {
+            form: {
+
+            },
+            testUrl: 'https://cube.elemecdn.com/0/88/03b0d39583f48206768a7534e55bcpng.png'
+        }
+    }
+
+}
+</script>
+<style lang="less" scoped>
+.form {
+    position: absolute;
+    left: 500px;
+    width: 586px;
+    height: 700px;
+    box-shadow: 0px 0px 4px 0px rgba(0, 0, 0, 0.15);
+}
+
+.el-form {
+    margin: 40px 0 0 0;
+
+    .el-form-item {
+        padding-top: 20px;
+        margin-inline: 20px;
+        margin-bottom: 0;
+    }
+    /deep/.el-form-item__label{
+        padding: 0;
+    }
+    /deep/.el-form-item__content{
+        display: flex;
+    }
+}
+
+.header {
+    position: absolute;
+    top: 0;
+    width: 586px;
+    height: 40px;
+    box-shadow: 0px 0px 4px 0px rgba(0, 0, 0, 0.15);
+
+    .el-icon-close {
+        position: absolute;
+        top: 10px;
+        right: 10px;
+    }
+}
+
+
+.el-button {
+    width: 80px;
+    height: 30px;
+    text-align: center;
+    margin: 20px;
+    padding: 5px;
+}
+.el-avatar {
+    position: absolute;
+    right: 60px;
+    top: 80px;
+}
+</style>

+ 142 - 0
src/views/permissionManagement/roleOverview.vue

@@ -0,0 +1,142 @@
+<template>
+    <div>
+        <p class="info">角色总览</p>
+        <el-table ref="multipleTable" border :data="tableData" tooltip-effect="dark"
+            :header-cell-style="{ textAlign: 'center' }" :cell-style="{ textAlign: 'center' }" style="width: 100%"
+            @selection-change="handleSelectionChange">
+            <el-table-column type="selection" width="50">
+            </el-table-column>
+            <el-table-column prop="rolename" label="角色名称">
+            </el-table-column>
+            <el-table-column prop="role_desc" label="角色描述">
+            </el-table-column>
+            <el-table-column prop="role_members" label="角色成员">
+            </el-table-column>
+            <el-table-column prop="associated_ORN" label="关联组织">
+            </el-table-column>
+            <el-table-column prop="operation" label="操作">
+                <el-button size="mini" type="text">查看</el-button>
+                <el-button size="mini" type="text">编辑</el-button>
+                <el-button size="mini" type="text">删除</el-button>
+            </el-table-column>
+        </el-table>
+        <div class="bottom">
+            <div>
+                <checkbox class="checkbox"></checkbox>
+                <el-button class="check-cancel" size="mini" type="text" @click="cancleChecked">取消</el-button>
+            </div>
+            <div class="bottom_button" v-show="show">
+                <el-button class="delete" type="text">批量删除</el-button>
+            </div>
+            <page class="page"></page>
+        </div>
+    </div>
+</template>
+
+<script>
+import checkbox from '@/components/Checkbox/index'
+import page from '@/components/pagination/index'
+export default {
+    components: { checkbox, page },
+    data() {
+        return {
+            tableData: [{
+                rolename: '决策组',
+                role_desc: '描述',
+                role_members: '300人',
+                associated_ORN: '3家',
+            }, {
+                rolename: '决策组-1',
+                role_desc: '描述',
+                role_members: '300人',
+                associated_ORN: '3家',
+            }, {
+                rolename: '决策组-2',
+                role_desc: '描述',
+                role_members: '300人',
+                associated_ORN: '3家',
+            }],
+            multipleSelection: [],
+            show: true
+        }
+    },
+    methods: {
+        cancleChecked() {
+            //
+        },
+        handleClick() {
+            //
+        }
+    }
+}
+</script>
+<style lang="less" scoped>
+.info {
+    text-align: left;
+    padding: 20px;
+    font-size: 25px;
+}
+
+.bottom {
+    position: relative;
+    left: 20px;
+    top: 420px;
+    height: 50px;
+    line-height: 20px;
+    background-color: rgba(255, 255, 255, 1);
+    text-align: center;
+
+    .checkbox {
+        position: absolute;
+        left: 29px;
+        top: 15px;
+        font-size: 14px;
+    }
+
+    .check-cancel {
+        position: absolute;
+        // line-height: 20px;
+        font-size: 14px;
+        text-align: center;
+        left: 140px;
+        top: 10px;
+    }
+
+    .bottom_button {
+        position: absolute;
+        left: 200px;
+        top: 7px;
+
+        .delete {
+            width: 95px;
+            height: 30px;
+            font-size: 14px;
+            text-align: center;
+            padding: 1px;
+        }
+
+        .disabled {
+            width: 95px;
+            height: 30px;
+            font-size: 14px;
+            text-align: center;
+            padding: 1px;
+        }
+
+        .el-dropdown {
+            margin-left: 15px;
+
+            /deep/.el-button--primary {
+                height: 30px;
+                //background-color: rgba(255, 255, 255, 1);
+            }
+        }
+    }
+
+    .page {
+        position: absolute;
+        top: -10px;
+        right: 30px;
+    }
+}
+</style>

+ 52 - 0
src/views/systemManagement/index.vue

@@ -0,0 +1,52 @@
+<template>
+    <div>
+        <div class="el-tab">
+            <el-tabs v-model="activeName" @tab-click="handleClick">
+                <el-tab-pane label="策略配置" name="strategy"></el-tab-pane>
+                <el-tab-pane label="消息配置" name="message"></el-tab-pane>
+                <el-tab-pane label="信息配置" name="information"></el-tab-pane>
+                <el-tab-pane label="指标配置" name="index"></el-tab-pane>
+            </el-tabs>
+        </div>
+        <test></test>
+    </div>
+</template>
+
+<script >
+import test from '@/views/systemManagement/infoConfiguration/infoConfigure'
+export default {
+    components:{test},
+    data(){
+        return{
+            activeName: 'information',  
+        }
+    },
+    methods: {
+        handleClick() {
+            //
+        },
+    }
+};
+</script>
+<style lang="less" scoped>
+.el-tab {
+    position: absolute;
+    left: 218px;
+    right: 16px;
+    top: 77px;
+    height: 51px;
+    line-height: 20px;
+    background-color: rgba(255, 255, 255, 1);
+    text-align: center;
+    box-shadow: 0px 0px 4px 0px rgba(0, 0, 0, 0.15);
+
+    /deep/.el-tabs__nav {
+        left: 25px;
+    }
+
+    /deep/.el-tabs__nav-wrap::after {
+        height: 0;
+    }
+}
+
+</style>

+ 138 - 0
src/views/systemManagement/infoConfiguration/infoConfigure.vue

@@ -0,0 +1,138 @@
+<template>
+    <div class="container">
+        <div class="left-pane">
+            <el-input placeholder="请输入关键字" suffix-icon="el-icon-search" v-model="filterText"></el-input>
+            <el-tree ref="tree" :data="data" :props="defaultProps" node-key="id" default-expand-all
+                :filter-node-method="filterNode" @node-click="handleNodeClick">
+            </el-tree>
+            <el-button class="newInfo_button"><i class="el-icon-s-order"></i>新建消息模块</el-button>
+        </div>
+        <div class="right-pane">
+            <div style="width: 100%; height: 100px;margin-top: 10px;">
+                <el-tag>{{ label }}</el-tag>
+                <el-button type="text">历史记录</el-button>
+            </div>
+            <div style="height: 600px;width: 100%; margin-top: 10px;">
+                <el-image style="height: 100%;" :src="testUrl" :fit="contain" :preview-src-list="srcList"></el-image>
+            </div>
+            <el-button>删除</el-button>
+            <el-button>更新</el-button>
+        </div>
+    </div>
+</template>
+
+<script>
+export default {
+    data() {
+        return {
+            label: "1F",
+            testUrl: "https://cube.elemecdn.com/0/88/03b0d39583f48206768a7534e55bcpng.png",
+            srcList: [
+                "https://cube.elemecdn.com/0/88/03b0d39583f48206768a7534e55bcpng.png",
+            ],
+            filterText: '',
+            data: [{
+                label: '楼层地图信息配置',
+                children: [{
+                    label: '1F',
+                }, {
+                    label: '20F'
+                }, {
+                    label: 'B1'
+                }]
+            },
+            {
+                label: '安保人员信息',
+                children: [{
+                    label: '前台人员排班信息',
+                }, {
+                    label: '安防人员排班信息'
+                }]
+            }],
+            defaultProps: {
+                children: 'children',
+                label: 'label'
+            }
+        }
+    },
+    watch: {
+        filterText(val) {
+            this.$refs.tree.filter(val);
+        }
+    },
+    methods: {
+        filterNode(value, data) {
+            if (!value) return true;
+            return data.label.indexOf(value) !== -1;
+        }
+    }
+}
+</script>
+
+<style lang="less" scoped>
+.container {
+    position: absolute;
+    left: 218px;
+    top: 140px;
+    right: 16px;
+    //height: 800px;
+    line-height: 20px;
+    background-color: rgba(255, 255, 255, 1);
+    color: rgba(16, 16, 16, 1);
+    font-size: 14px;
+    text-align: center;
+    box-shadow: 0px 0px 4px 0px rgba(0, 0, 0, 0.15);
+
+    .left-pane {
+        width: 300px;
+        padding: 15px;
+
+        .el-tree {
+            height: 700px;
+            margin-top: 15px;
+            background-color: rgb(247, 245, 243);
+        }
+
+        .newInfo_button {
+            //position: absolute;
+            width: 250px;
+            background-color: rgb(131, 208, 243);
+            text-align: center;
+            font-size: 16px;
+            padding: 10px;
+        }
+    }
+
+    .right-pane {
+        width: 1340px;
+        position: absolute;
+        margin-left: 330px;
+        top: 0;
+        margin-right: 20px;
+    }
+}
+.el-tag {
+    position: absolute;
+    background-color: transparent;
+    border-color: transparent;
+    font-size: 25px;
+    color: #000;
+    top: 20px;
+    left: 20px;
+
+}
+
+.el-button--text {
+    position: absolute;
+    top: 70px;
+    right: 20px;
+}
+
+.el-button {
+    height: 30px;
+    width: 100px;
+    margin-top: 20px;
+    margin-inline: 40px;
+    padding: 5px;
+}
+</style>

+ 113 - 0
src/views/userManagement/groupManagement/forms/corporationdetailEdit.vue

@@ -0,0 +1,113 @@
+<template>
+    <div>
+        <p class="info">企业详情</p>
+        <img class="img" src="" alt="">
+        <div class="form">
+            <el-form :model="form" label-position="left" label-width="130px">
+                <el-form-item :model="form.fullName" label="公司全称:">
+                    <el-input placeholder="test" type="text"></el-input>
+                </el-form-item>
+                <el-form-item :model="form.abbreviateName" label="公司简称:">
+                    <el-input placeholder="test" type="text"></el-input>
+                </el-form-item>
+                <el-form-item :model="form.parentCorporation" label="上级公司:">
+                    <el-select style="width:400px">
+                        <el-option label=""></el-option>
+                    </el-select>
+                </el-form-item>
+                <el-form-item :model="form.sccide" label="统一社会信用代码:">
+                    <el-select style="width:400px">
+                        <el-option label=""></el-option>
+                    </el-select>
+                </el-form-item>
+                <el-form-item :model="form.registeredAddress" label="注册地址:">
+                    <el-select style="width:160px">
+                        <el-option label=""></el-option>
+                    </el-select><span><el-input style="margin-left: 10px; width: 230px;"
+                            placeholder="test"></el-input></span>
+                </el-form-item>
+                <el-form-item :model="form.businessAddress" label="经营地址:">
+                    <el-select style="width:160px">
+                        <el-option label=""></el-option>
+                    </el-select><span><el-input style="margin-left: 10px; width: 230px;"
+                            placeholder="test"></el-input></span>
+                </el-form-item>
+                <el-form-item :model="form.legalName" label="法人姓名:">
+                    <el-input placeholder="test" type="text"></el-input>
+                </el-form-item>
+                <el-form-item :model="form.copporationCode" label="公司编码:">
+                    <el-input placeholder="test" type="text"></el-input>
+                </el-form-item>
+                <el-form-item :model="form.complementCount" label="编制人数:">
+                    <el-input placeholder="test" type="text"></el-input>
+                </el-form-item>
+                <el-form-item :model="form.staffCount" label="在岗人数:">
+                    <el-input placeholder="test" type="text"></el-input>
+                </el-form-item>
+            </el-form>
+        </div>
+        <div>
+            <el-button>删除</el-button>
+            <el-button style="background-color: rgb(131, 208, 243);">编辑</el-button>
+        </div>
+    </div>
+</template>
+
+<script>
+export default {
+    data() {
+        return {
+            form: {
+
+            }
+        }
+    },
+    methods: {
+
+    }
+
+}
+</script>
+<style lang="less" scoped>
+.info {
+    text-align: left;
+    padding: 20px;
+    font-size: 25px;
+}
+
+.img {
+    width: 1300px;
+    height: 150px;
+}
+
+.form {
+    margin-left: 350px;
+
+    .el-form {
+        //margin: 40px 0 0 0;
+
+        .el-form-item {
+            padding-top: 10px;
+            margin-inline: 20px;
+            margin-bottom: 0;
+        }
+
+        /deep/.el-form-item__label {
+            padding: 0;
+            text-align: left;
+        }
+
+        /deep/.el-form-item__content {
+            display: flex;
+            width: 400px;
+        }
+    }
+}
+
+.el-button {
+    width: 100px;
+    height: 30px;
+    padding: 5px;
+    margin: 10px;
+}
+</style>

+ 113 - 0
src/views/userManagement/groupManagement/forms/corporationdetailStore.vue

@@ -0,0 +1,113 @@
+<template>
+    <div>
+        <p class="info">企业详情</p>
+        <img class="img" src="" alt="">
+        <div class="form">
+            <el-form :model="form" label-position="left" label-width="130px">
+                <el-form-item :model="form.fullName" label="公司全称:">
+                    <el-input placeholder="test" type="text"></el-input>
+                </el-form-item>
+                <el-form-item :model="form.abbreviateName" label="公司简称:">
+                    <el-input placeholder="test" type="text"></el-input>
+                </el-form-item>
+                <el-form-item :model="form.parentCorporation" label="上级公司:">
+                    <el-select style="width:400px">
+                        <el-option label=""></el-option>
+                    </el-select>
+                </el-form-item>
+                <el-form-item :model="form.sccide" label="统一社会信用代码:">
+                    <el-select style="width:400px">
+                        <el-option label=""></el-option>
+                    </el-select>
+                </el-form-item>
+                <el-form-item :model="form.registeredAddress" label="注册地址:">
+                    <el-select style="width:160px">
+                        <el-option label=""></el-option>
+                    </el-select><span><el-input style="margin-left: 10px; width: 230px;"
+                            placeholder="test"></el-input></span>
+                </el-form-item>
+                <el-form-item :model="form.businessAddress" label="经营地址:">
+                    <el-select style="width:160px">
+                        <el-option label=""></el-option>
+                    </el-select><span><el-input style="margin-left: 10px; width: 230px;"
+                            placeholder="test"></el-input></span>
+                </el-form-item>
+                <el-form-item :model="form.legalName" label="法人姓名:">
+                    <el-input placeholder="test" type="text"></el-input>
+                </el-form-item>
+                <el-form-item :model="form.copporationCode" label="公司编码:">
+                    <el-input placeholder="test" type="text"></el-input>
+                </el-form-item>
+                <el-form-item :model="form.complementCount" label="编制人数:">
+                    <el-input placeholder="test" type="text"></el-input>
+                </el-form-item>
+                <el-form-item :model="form.staffCount" label="在岗人数:">
+                    <el-input placeholder="test" type="text"></el-input>
+                </el-form-item>
+            </el-form>
+        </div>
+        <div>
+            <el-button>重置</el-button>
+            <el-button style="background-color: rgb(131, 208, 243);">保存</el-button>
+        </div>
+    </div>
+</template>
+
+<script>
+export default {
+    data() {
+        return {
+            form: {
+
+            }
+        }
+    },
+    methods: {
+
+    }
+
+}
+</script>
+<style lang="less" scoped>
+.info {
+    text-align: left;
+    padding: 20px;
+    font-size: 25px;
+}
+
+.img {
+    width: 1300px;
+    height: 150px;
+}
+
+.form {
+    margin-left: 350px;
+
+    .el-form {
+        //margin: 40px 0 0 0;
+
+        .el-form-item {
+            padding-top: 10px;
+            margin-inline: 20px;
+            margin-bottom: 0;
+        }
+
+        /deep/.el-form-item__label {
+            padding: 0;
+            text-align: left;
+        }
+
+        /deep/.el-form-item__content {
+            display: flex;
+            width: 400px;
+        }
+    }
+}
+
+.el-button {
+    width: 100px;
+    height: 30px;
+    padding: 5px;
+    margin: 10px;
+}
+</style>

+ 122 - 0
src/views/userManagement/groupManagement/forms/departmentdetailEdit.vue

@@ -0,0 +1,122 @@
+<template>
+    <div>
+        <p class="info">部门详情</p>
+        <img class="img" src="" alt=""><el-button class="alter">更换</el-button>
+        <div class="form">
+            <el-form :model="form" label-position="left" label-width="130px">
+                <el-form-item :model="form.fullName" label="部门级别:">
+                    <el-select style="width:400px">
+                        <el-option label=""></el-option>
+                    </el-select>
+                </el-form-item>
+                <el-form-item :model="form.abbreviateName" label="上级部门:">
+                    <el-select style="width:400px">
+                        <el-option label=""></el-option>
+                    </el-select>
+                </el-form-item>
+                <el-form-item :model="form.parentCorporation" label="部门负责人:">
+                    <el-select style="width:400px">
+                        <el-option label=""></el-option>
+                    </el-select>
+                </el-form-item>
+                <el-form-item :model="form.sccide" label="部门接口人:">
+                    <el-select style="width:400px">
+                        <el-option label=""></el-option>
+                    </el-select>
+                </el-form-item>
+                <el-form-item :model="form.registeredAddress" label="排重名:">
+                    <el-input placeholder="test" type="text"></el-input>
+                </el-form-item>
+                <el-form-item :model="form.businessAddress" label="在岗人数:">
+                    <el-input-number v-model="num" @change="handleChange" :min="1" :max="100"></el-input-number>
+                </el-form-item>
+                <el-form-item :model="form.legalName" label="自由员工:">
+                    <el-input placeholder="test" type="text"></el-input>
+                </el-form-item>
+                <el-form-item :model="form.copporationCode" label="协作员工:">
+                    <el-input placeholder="test" type="text"></el-input>
+                </el-form-item>
+                <el-form-item :model="form.complementCount" label="第三方员工:">
+                    <el-input placeholder="test" type="text"></el-input>
+                </el-form-item>
+                <el-form-item :model="form.staffCount" label="部门职责:">
+                    <el-input type="textarea" placeholder="请输入" v-model="textarea" maxlength="200"
+                        show-word-limit></el-input>
+                </el-form-item>
+            </el-form>
+        </div>
+        <div>
+            <el-button>删除</el-button>
+            <el-button style="background-color: rgb(131, 208, 243);">编辑</el-button>
+        </div>
+    </div>
+</template>
+
+<script>
+export default {
+    data() {
+        return {
+            form: {
+
+            },
+            num: 100,
+            textarea:''
+        }
+    },
+    methods: {
+        handleChange() {
+            //
+        }
+    }
+
+}
+</script>
+<style lang="less" scoped>
+.info {
+    text-align: left;
+    padding: 20px;
+    font-size: 25px;
+}
+
+.img {
+    width: 1300px;
+    height: 150px;
+}
+
+.alter{
+    position: absolute;
+    right:30px;
+    top: 155px;
+    background-color:rgb(131, 208, 243);
+}
+.form {
+    margin-left: 350px;
+
+    .el-form {
+        //margin: 40px 0 0 0;
+
+        .el-form-item {
+            padding-top: 10px;
+            margin-inline: 20px;
+            margin-bottom: 0;
+        }
+
+        /deep/.el-form-item__label {
+            padding: 0;
+            text-align: left;
+        }
+
+        /deep/.el-form-item__content {
+            display: flex;
+            width: 400px;
+        }
+    }
+}
+
+.el-button {
+    width: 100px;
+    height: 30px;
+    padding: 5px;
+    margin: 10px;
+}
+</style>

+ 98 - 0
src/views/userManagement/groupManagement/index.vue

@@ -0,0 +1,98 @@
+<template>
+    <div class="container">
+        <div class="left-pane">
+            <el-input placeholder="请输入关键字" suffix-icon="el-icon-search" v-model="filterText"></el-input>
+            <el-tree ref="tree" :data="data" :props="defaultProps" node-key="id" default-expand-all
+                :filter-node-method="filterNode" @node-click="handleNodeClick">
+            </el-tree>
+            <el-button><i class="el-icon-s-order"></i>添加公司</el-button>
+        </div>
+        <div class="right-pane">
+            <test></test>
+        </div>
+    </div>
+</template>
+
+<script>
+import test from './messageDialog/departmentNew'
+export default {
+    components: { test },
+    data() {
+        return {
+            filterText: '',
+            data: [{
+                label: '中讯邮电咨询设计院',
+                children: [{
+                    label: '北京电信规划设计院',
+                    children: [{
+                        label: '天津办事处'
+                    }]
+                }]
+            }],
+            defaultProps: {
+                children: 'children',
+                label: 'label'
+            }
+        }
+    },
+    watch: {
+        filterText(val) {
+            this.$refs.tree.filter(val);
+        }
+    },
+    methods: {
+        handleNodeClick() {
+            //
+        },
+        filterNode(value, data) {
+            if (!value) return true;
+            return data.label.indexOf(value) !== -1;
+        }
+    }
+}
+</script>
+
+<style lang="less" scoped>
+.container {
+    position: absolute;
+    left: 218px;
+    top: 140px;
+    right: 16px;
+    //height: 800px;
+    line-height: 20px;
+    background-color: rgba(255, 255, 255, 1);
+    color: rgba(16, 16, 16, 1);
+    font-size: 14px;
+    text-align: center;
+    box-shadow: 0px 0px 4px 0px rgba(0, 0, 0, 0.15);
+
+    .left-pane {
+        width: 300px;
+        padding: 15px;
+
+        .el-tree {
+            height: 700px;
+            margin-top: 15px;
+            background-color: rgb(247, 245, 243);
+        }
+
+        .el-button {
+            position: absolute;
+            left: 35px;
+            bottom: 40px;
+            width: 250px;
+            background-color: rgb(131, 208, 243);
+            text-align: center;
+            font-size: 16px;
+        }
+    }
+
+    .right-pane {
+        width: 1340px;
+        position: absolute;
+        margin-left: 330px;
+        top: 0;
+        margin-right: 20px;
+    }
+}
+</style>

+ 138 - 0
src/views/userManagement/groupManagement/messageDialog/corporationAdd.vue

@@ -0,0 +1,138 @@
+<template>
+    <div class="info">
+        <el-tabs>
+            <el-tab-pane style="height: 40px; padding: 10px; text-align: left; margin-left:10px; font-size: 16px;">添加公司
+                <span><i class="el-icon-close" @click="close"></i></span>
+            </el-tab-pane>
+        </el-tabs>
+        <div style="display: flex;">
+            <img class="img" src="" alt=""><span><el-button style="width: 60px; margin-left: -160px;
+            margin-top: 60px; background-color:rgb(131, 208, 243);">更换</el-button></span>
+        </div>
+        <div class="form">
+            <el-form :model="form" label-position="left" label-width="130px">
+                <el-form-item :model="form.fullName" label="公司全称:">
+                    <el-input placeholder="test" type="text"></el-input>
+                </el-form-item>
+                <el-form-item :model="form.abbreviateName" label="公司简称:">
+                    <el-input placeholder="test" type="text"></el-input>
+                </el-form-item>
+                <el-form-item :model="form.parentCorporation" label="上级公司:">
+                    <el-select style="width:400px">
+                        <el-option label=""></el-option>
+                    </el-select>
+                </el-form-item>
+                <el-form-item :model="form.sccide" label="统一社会信用代码:">
+                    <el-select style="width:400px">
+                        <el-option label=""></el-option>
+                    </el-select>
+                </el-form-item>
+                <el-form-item :model="form.registeredAddress" label="注册地址:">
+                    <el-select style="width:160px">
+                        <el-option label=""></el-option>
+                    </el-select><span><el-input style="margin-left: 10px; width: 230px;"
+                            placeholder="test"></el-input></span>
+                </el-form-item>
+                <el-form-item :model="form.businessAddress" label="经营地址:">
+                    <el-select style="width:160px">
+                        <el-option label=""></el-option>
+                    </el-select><span><el-input style="margin-left: 10px; width: 230px;"
+                            placeholder="test"></el-input></span>
+                </el-form-item>
+                <el-form-item :model="form.legalName" label="法人姓名:">
+                    <el-input placeholder="test" type="text"></el-input>
+                </el-form-item>
+                <el-form-item :model="form.copporationCode" label="公司编码:">
+                    <el-input placeholder="test" type="text"></el-input>
+                </el-form-item>
+                <el-form-item :model="form.complementCount" label="编制人数:">
+                    <el-input placeholder="test" type="text"></el-input>
+                </el-form-item>
+                <el-form-item :model="form.staffCount" label="在岗人数:">
+                    <el-input placeholder="test" type="text"></el-input>
+                </el-form-item>
+            </el-form>
+        </div>
+        <div style="margin-top: 30px;">
+            <el-button style="background-color:rgb(131, 208, 243);">下一个</el-button>
+            <el-button>重置</el-button>
+            <el-button style="background-color:rgb(131, 208, 243);">更新</el-button>
+        </div>
+    </div>
+</template>
+
+<script>
+export default {
+    data() {
+        return {
+            form: {
+
+            },
+        }
+    },
+    methods: {
+        close() {
+
+        }
+    }
+
+}
+</script>
+<style lang="less" scoped>
+.info {
+    margin-top: 10px;
+    margin-left: 300px;
+    left: 350px;
+    width: 600px;
+    height: 750px;
+    box-shadow: 0px 0px 4px 0px rgba(0, 0, 0, 0.15);
+
+    .img {
+        margin: 15px 50px 0 50px;
+        width: 500px;
+        height: 80px;
+    }
+
+
+    .el-icon-close {
+        margin-left: 480px;
+    }
+
+    /deep/.el-tabs__header {
+        height: 0;
+        margin-bottom: 0;
+    }
+
+
+    .form {
+        //margin-left: 350px;
+
+        .el-form {
+            //margin: 40px 0 0 0;
+
+            .el-form-item {
+                padding-top: 10px;
+                margin-inline: 20px;
+                margin-bottom: 0;
+            }
+
+            /deep/.el-form-item__label {
+                padding: 0;
+                text-align: left;
+            }
+
+            /deep/.el-form-item__content {
+                display: flex;
+                width: 400px;
+            }
+        }
+    }
+
+    .el-button {
+        width: 100px;
+        height: 30px;
+        padding: 5px;
+        margin: 10px;
+    }
+}
+</style>

+ 130 - 0
src/views/userManagement/groupManagement/messageDialog/departmentNew.vue

@@ -0,0 +1,130 @@
+<template>
+    <div class="info">
+        <el-tabs>
+            <el-tab-pane style="height: 40px; padding: 10px; text-align: left; margin-left:10px; font-size: 16px;">新建部门
+                <span><i class="el-icon-close" @click="close"></i></span>
+            </el-tab-pane>
+        </el-tabs>
+        <div style="display: flex;">
+            <img class="img" src="" alt=""><span><el-button style="width: 60px; margin-left: -160px;
+            margin-top: 60px; background-color:rgb(131, 208, 243);">更换</el-button></span>
+        </div>
+        <div class="form">
+            <el-form :model="form" label-position="left" label-width="130px">
+                <el-form-item :model="form.fullName" label="部门级别:">
+                    <el-select style="width:400px">
+                        <el-option label=""></el-option>
+                    </el-select>
+                </el-form-item>
+                <el-form-item :model="form.abbreviateName" label="上级部门:">
+                    <el-select style="width:400px">
+                        <el-option label=""></el-option>
+                    </el-select>
+                </el-form-item>
+                <el-form-item :model="form.registeredAddress" label="部门名称:">
+                    <el-input placeholder="test" type="text"></el-input>
+                </el-form-item>
+                <el-form-item :model="form.registeredAddress" label="排重名:">
+                    <el-input placeholder="test" type="text"></el-input>
+                </el-form-item>
+                <el-form-item :model="form.parentCorporation" label="部门负责人:">
+                    <el-select style="width:400px">
+                        <el-option label=""></el-option>
+                    </el-select>
+                </el-form-item>
+                <el-form-item :model="form.sccide" label="部门接口人:">
+                    <el-select style="width:400px">
+                        <el-option label=""></el-option>
+                    </el-select>
+                </el-form-item>
+                <el-form-item :model="form.businessAddress" label="在岗人数:">
+                    <el-input-number v-model="num" @change="handleChange" :min="1" :max="100"></el-input-number>
+                </el-form-item>
+                <el-form-item :model="form.staffCount" label="部门职责:">
+                    <el-input type="textarea" placeholder="请输入" v-model="textarea" maxlength="200"
+                        show-word-limit></el-input>
+                </el-form-item>
+            </el-form>
+        </div>
+        <div style="margin-top: 30px;">
+            <el-button style="background-color:rgb(131, 208, 243);">下一个</el-button>
+            <el-button>重置</el-button>
+            <el-button style="background-color:rgb(131, 208, 243);">更新</el-button>
+        </div>
+    </div>
+</template>
+
+<script>
+export default {
+    data() {
+        return {
+            form: {
+
+            },
+            num: 100,
+            textarea:''
+        }
+    },
+    methods: {
+        close() {
+
+        }
+    }
+
+}
+</script>
+<style lang="less" scoped>
+.info {
+    margin-top: 10px;
+    margin-left: 300px;
+    left: 350px;
+    width: 600px;
+    height: 750px;
+    box-shadow: 0px 0px 4px 0px rgba(0, 0, 0, 0.15);
+
+    .img {
+        margin: 15px 50px 0 50px;
+        width: 500px;
+        height: 80px;
+    }
+
+
+    .el-icon-close {
+        margin-left: 480px;
+    }
+
+    /deep/.el-tabs__header {
+        height: 0;
+        margin-bottom: 0;
+    }
+
+
+    .form {
+        .el-form {
+
+            .el-form-item {
+                padding-top: 10px;
+                margin-inline: 20px;
+                margin-bottom: 0;
+            }
+
+            /deep/.el-form-item__label {
+                padding: 0;
+                text-align: left;
+            }
+
+            /deep/.el-form-item__content {
+                display: flex;
+                width: 400px;
+            }
+        }
+    }
+
+    .el-button {
+        width: 100px;
+        height: 30px;
+        padding: 5px;
+        margin: 10px;
+    }
+}
+</style>

+ 22 - 0
src/views/userManagement/groupManagement/messageDialog/update.vue

@@ -0,0 +1,22 @@
+<template>
+    <el-dialog :visible.sync="centerDialogVisible" width="30%" center style="display: flex;">
+        <div>/////</div>
+        <span slot="footer" class="dialog-footer">
+            <el-button @click="centerDialogVisible = false">取 消</el-button>
+            <el-button type="primary" @click="centerDialogVisible = false">确 认</el-button>
+        </span>
+    </el-dialog>
+</template>
+
+<script>
+export default {
+    data() {
+        return {
+            centerDialogVisible: false
+        };
+    }
+};
+</script>
+
+<script lang="less" scoped>
+</script>

+ 147 - 0
src/views/userManagement/groupManagement/tables/corporationOverview.vue

@@ -0,0 +1,147 @@
+<template>
+    <div>
+        <p class="info">公司总览</p>
+        <el-table ref="multipleTable" border :data="tableData" tooltip-effect="dark"
+            :header-cell-style="{ textAlign: 'center' }" :cell-style="{ textAlign: 'center' }" style="width: 100%"
+            @selection-change="handleSelectionChange">
+            <el-table-column type="selection" width="50">
+            </el-table-column>
+            <el-table-column prop="corporation_name" label="公司名称">
+            </el-table-column>
+            <el-table-column prop="Sccode" label="社会信用代码">
+            </el-table-column>
+            <el-table-column prop="legal_person" label="公司法人">
+            </el-table-column>
+            <el-table-column prop="contact_person" label="联系人">
+            </el-table-column>
+            <el-table-column prop="contact_phone" label="联系电话">
+            </el-table-column>
+            <el-table-column prop="operation" label="操作">
+                <el-button size="mini" type="text">查看</el-button>
+                <el-button size="mini" type="text">编辑</el-button>
+                <el-button size="mini" type="text">删除</el-button>
+            </el-table-column>
+        </el-table>
+        <div class="bottom">
+            <div>
+                <checkbox class="checkbox"></checkbox>
+                <el-button class="check-cancel" size="mini" type="text" @click="cancleChecked">取消</el-button>
+            </div>
+            <div class="bottom_button" v-show="show">
+                <el-button class="delete" type="text">批量删除</el-button>
+            </div>
+            <page class="page"></page>
+        </div>
+    </div>
+</template>
+
+<script>
+import checkbox from '@/components/Checkbox/index'
+import page from '@/components/pagination/index'
+export default {
+    components: { checkbox, page },
+    data() {
+        return {
+            tableData: [{
+                corporation_name: '中讯邮电咨询设计院有限公司',
+                Sccode: '4032',
+                legal_person: '张三',
+                contact_person: '张三',
+                contact_phone: '12345678901',
+            }, {
+                corporation_name: '北京电信规划院有限公司',
+                Sccode: '9416',
+                legal_person: '李四',
+                contact_person: '李四',
+                contact_phone: '12345678901',
+            }, {
+                corporation_name: '北京电信规划院有限公司',
+                Sccode: '9416',
+                legal_person: '李四',
+                contact_person: '李四',
+                contact_phone: '12345678901',
+            }],
+            multipleSelection: [],
+            show: true
+        }
+    },
+    methods: {
+        cancleChecked() {
+            //
+        },
+        handleClick() {
+            //
+        }
+    }
+}
+</script>
+<style lang="less" scoped>
+.info {
+    text-align: left;
+    padding: 0px;
+    font-size: 25px;
+}
+
+.bottom {
+    position: relative;
+    left: 20px;
+    top: 420px;
+    height: 50px;
+    line-height: 20px;
+    background-color: rgba(255, 255, 255, 1);
+    text-align: center;
+
+    .checkbox {
+        position: absolute;
+        left: 29px;
+        top: 15px;
+        font-size: 14px;
+    }
+
+    .check-cancel {
+        position: absolute;
+        // line-height: 20px;
+        font-size: 14px;
+        text-align: center;
+        left: 140px;
+        top: 10px;
+    }
+
+    .bottom_button {
+        position: absolute;
+        left: 200px;
+        top: 7px;
+
+        .delete {
+            width: 95px;
+            height: 30px;
+            font-size: 14px;
+            text-align: center;
+            padding: 1px;
+        }
+
+        .disabled {
+            width: 95px;
+            height: 30px;
+            font-size: 14px;
+            text-align: center;
+            padding: 1px;
+        }
+
+        .el-dropdown {
+            margin-left: 15px;
+
+            /deep/.el-button--primary {
+                height: 30px;
+                //background-color: rgba(255, 255, 255, 1);
+            }
+        }
+    }
+
+    .page {
+        position: absolute;
+        top: -10px;
+        right: 30px;
+    }
+}
+</style>

+ 52 - 0
src/views/userManagement/index.vue

@@ -0,0 +1,52 @@
+<template>
+    <div>
+        <div class="el-tab">
+            <el-tabs v-model="activeName" @tab-click="handleClick">
+                <el-tab-pane label="人员管理" name="first"></el-tab-pane>
+                <el-tab-pane label="组织管理" name="second"></el-tab-pane>
+            </el-tabs>
+        </div>
+        <groupManagement></groupManagement>
+    </div>
+</template>
+
+<script >
+import groupManagement from './groupManagement/index';
+import personManagement from './personManagement/index';
+
+export default {
+    name: 'userManagement',
+    components: { personManagement,groupManagement },
+    data() {
+        return {
+            activeName: 'first'
+        }
+    },
+    methods:{
+        handleClick(){
+            //
+        }
+    }
+};
+</script>
+<style lang="less" scoped>
+.el-tab {
+    position: absolute;
+    left: 218px;
+    right: 16px;
+    top: 77px;
+    height: 51px;
+    line-height: 20px;
+    background-color: rgba(255, 255, 255, 1);
+    text-align: center;
+    box-shadow: 0px 0px 4px 0px rgba(0, 0, 0, 0.15);
+
+    /deep/.el-tabs__nav {
+        left: 25px;
+    }
+
+    /deep/.el-tabs__nav-wrap::after {
+        height: 0;
+    }
+}
+</style>

+ 143 - 0
src/views/userManagement/personManagement/index.vue

@@ -0,0 +1,143 @@
+<template>
+    <div class="container">
+        <div class="header">
+            <el-button class="onlineUser">
+                <i class="el-icon-user-solid"></i>在用账户
+            </el-button>
+            <el-button class="disableUser">
+                <i class="el-icon-user"></i>停用账户
+            </el-button>
+            <div class="searchBox">
+                <el-input placeholder="用户名;手机;单位" suffix-icon="el-icon-search"></el-input>
+            </div>
+            <el-button class="addUser" @click="addUser">
+                <i class="el-icon-user"></i>添加用户
+            </el-button>
+        </div>
+        <div class="active-userTable">
+            <activeuser></activeuser>
+        </div>
+    </div>
+</template>
+
+<script>
+import activeuser from './tables/activeUser'
+import table3 from './tables/table3'
+import userinfo from './messageDialog/userInfo'
+
+
+export default {
+    name: "personManagement",
+    components: { activeuser, table3, userinfo ,},
+    data() {
+        return {
+            activeName: 'first',
+            tabledata: [],
+            total: 0,
+            currentPage: 1
+        };
+    },
+    methods: {
+        handleSizeChange(val) {
+            console.log(`每页 ${val} 条`);
+        },
+        handleCurrentChange(val) {
+            console.log(`当前页: ${val}`);
+        },
+        addUser(){
+            
+        }
+    }
+};
+</script>
+
+<style lang="less" scoped>
+
+.container {
+    position: absolute;
+    left: 218px;
+    top: 140px;
+    right: 16px;
+    //height: 800px;
+    line-height: 20px;
+    background-color: rgba(255, 255, 255, 1);
+    color: rgba(16, 16, 16, 1);
+    font-size: 14px;
+    text-align: center;
+    box-shadow: 0px 0px 4px 0px rgba(0, 0, 0, 0.15);
+
+    .header {
+        height: 59px;
+        left: 218px;
+        top: 125px;
+        right: 16px;
+
+        .onlineUser {
+            position: absolute;
+            top: 15px;
+            left: 20px;
+            bottom: 4px;
+            width: 116px;
+            height: 40px;
+            line-height: 20px;
+            border-radius: 3px 3px 0px 0px;
+            //background-color: rgba(255, 255, 255, 1);
+            color: rgba(0, 0, 0, 0.973);
+            font-size: 14px;
+            text-align: center;
+            //border: 1px solid rgba(187, 187, 187, 1);
+        }
+
+        .disableUser {
+           position: absolute;
+            top: 15px;
+            left: 135px;
+            bottom: 4px;
+            width: 116px;
+            height: 40px;
+            line-height: 20px;
+            border-radius: 3px 3px 0px 0px;
+            //background-color: rgba(255, 255, 255, 1);
+            color: rgba(0, 0, 0, 0.973);
+            font-size: 14px;
+            text-align: center;
+            //border: 1px solid rgba(187, 187, 187, 1);
+        }
+
+        .searchBox {
+            position: absolute;
+            top: 16px;
+            right: 141px;
+            bottom: 11px;
+            width: 224px;
+            height: 30px;
+            line-height: 20px;
+            border-radius: 3px;
+            background-color: rgba(255, 255, 255, 1);
+            color: rgba(16, 16, 16, 1);
+            font-size: 14px;
+            text-align: center;
+            border: 1px solid rgba(217, 217, 217, 1);
+        }
+
+        .addUser {
+            position: absolute;
+            right: 16px;
+            top: 17px;
+            width: 113px;
+            height: 40px;
+            border-radius: 4px;
+            background-color: rgba(64, 149, 229, 1);
+            color: rgba(255, 255, 255, 1);
+            font-size: 14px;
+            text-align: center;
+        }
+    }
+
+    .active-userTable {
+        padding: 10px 16px 0 20px;
+        height: 700px;
+        //box-shadow: 0px 0px 4px 0px rgba(0, 0, 0, 0.15);
+    }
+}
+</style>

+ 0 - 0
src/views/userManagement/personManagement/messageDialog/activate.vue


+ 22 - 0
src/views/userManagement/personManagement/messageDialog/delete.vue

@@ -0,0 +1,22 @@
+<template>
+    <el-dialog :visible.sync="centerDialogVisible" width="30%" center style="display: flex;">
+        <div>/////</div>
+        <span slot="footer" class="dialog-footer">
+            <el-button @click="centerDialogVisible = false">取 消</el-button>
+            <el-button type="primary" @click="centerDialogVisible = false">确 认</el-button>
+        </span>
+    </el-dialog>
+</template>
+
+<script>
+export default {
+    data() {
+        return {
+            centerDialogVisible: false
+        };
+    }
+};
+</script>
+
+<script lang="less" scoped>
+</script>

+ 22 - 0
src/views/userManagement/personManagement/messageDialog/disabled.vue

@@ -0,0 +1,22 @@
+<template>
+    <el-dialog :visible.sync="centerDialogVisible" width="30%" center style="display: flex;">
+        <div>/////</div>
+        <span slot="footer" class="dialog-footer">
+            <el-button @click="centerDialogVisible = false">取 消</el-button>
+            <el-button type="primary" @click="centerDialogVisible = false">确 认</el-button>
+        </span>
+    </el-dialog>
+</template>
+
+<script>
+export default {
+    data() {
+        return {
+            centerDialogVisible: false
+        };
+    }
+};
+</script>
+
+<script lang="less" scoped>
+</script>

+ 22 - 0
src/views/userManagement/personManagement/messageDialog/failed.vue

@@ -0,0 +1,22 @@
+<template>
+    <el-dialog :visible.sync="centerDialogVisible" width="30%" center style="display: flex;">
+        <div>/////</div>
+        <span slot="footer" class="dialog-footer">
+            <el-button @click="centerDialogVisible = false">取 消</el-button>
+            <el-button type="primary" @click="centerDialogVisible = false">确 认</el-button>
+        </span>
+    </el-dialog>
+</template>
+
+<script>
+export default {
+    data() {
+        return {
+            centerDialogVisible: false
+        };
+    }
+};
+</script>
+
+<script lang="less" scoped>
+</script>

+ 22 - 0
src/views/userManagement/personManagement/messageDialog/sucess.vue

@@ -0,0 +1,22 @@
+<template>
+    <el-dialog :visible.sync="centerDialogVisible" width="30%" center style="display: flex;">
+        <div>/////</div>
+        <span slot="footer" class="dialog-footer">
+            <el-button @click="centerDialogVisible = false">取 消</el-button>
+            <el-button type="primary" @click="centerDialogVisible = false">确 认</el-button>
+        </span>
+    </el-dialog>
+</template>
+
+<script>
+export default {
+    data() {
+        return {
+            centerDialogVisible: false
+        };
+    }
+};
+</script>
+
+<script lang="less" scoped>
+</script>

+ 142 - 0
src/views/userManagement/personManagement/messageDialog/userInfo.vue

@@ -0,0 +1,142 @@
+<template>
+    <div class="form">
+        <div class="header">
+            <p style="text-align: left;margin-top: 10px;margin-left: 20px;">用户详情</p><span><i
+                    class="el-icon-close"></i></span>
+        </div>
+        <el-form :model="form" label-position="left" label-width="80px">
+            <el-form-item style="width: 350px;" :model="form.username" label="用户名:">
+                <el-input placeholder="test" type="text"></el-input>
+            </el-form-item>
+            <el-form-item style="width: 350px;" :model="form.password" label="密码:">
+                <el-input placeholder="test" show-password></el-input>
+            </el-form-item>
+            <el-form-item style="width: 350px;" :model="form.name" label="姓名:">
+                <el-input placeholder="test"></el-input>
+            </el-form-item>
+            <el-form-item style="width: 500px;" :model="form.phone" label="电话:">
+                <el-select style="width: 100px;">
+                    <el-option label="CN +86"></el-option>
+                </el-select><span><el-input style="width: 280px;" placeholder="test"></el-input></span>
+            </el-form-item>
+            <el-form-item :model="form.email" label="邮箱:">
+                <el-input style="width: 380px;" placeholder="test"></el-input>
+            </el-form-item>
+            <el-form-item :model="form.corporation" label="公司:">
+                <el-input style="width: 380px;" placeholder="test"></el-input>
+            </el-form-item>
+            <el-form-item :model="form.department" label="部门:">
+                <el-input style="width: 380px;" placeholder="test"></el-input>
+            </el-form-item>
+            <div style="display: flex;">
+                <el-form-item :model="form.role" label="角色:">
+                    <el-select style="width: 130px;">
+                        <el-option label="CN +86"></el-option>
+                    </el-select>
+                </el-form-item>
+                <el-form-item :model="form.permission" label="权限:">
+                    <el-select style="width: 130px;">
+                        <el-option label="CN +86"></el-option>
+                    </el-select>
+                </el-form-item>
+            </div>
+            <div style="display: flex;">
+                <el-form-item :model="form.working_status" label="在职状态:">
+                    <el-select style="width: 130px;">
+                        <el-option label="CN +86"></el-option>
+                    </el-select>
+                </el-form-item>
+                <el-form-item :model="form.post" label="职务:">
+                    <el-select style="width: 130px;">
+                        <el-option label="CN +86"></el-option>
+                    </el-select>
+                </el-form-item>
+            </div>
+            <div style="display: flex;">
+                <el-form-item :model="form.account_status" label="账户状态:">
+                    <el-select style="width: 130px;">
+                        <el-option label="CN +86"></el-option>
+                    </el-select>
+                </el-form-item>
+                <el-form-item :model="form.nationality" label="国籍:">
+                    <el-select style="width: 130px;">
+                        <el-option label="CN +86"></el-option>
+                    </el-select>
+                </el-form-item>
+            </div>
+            <div>
+                <el-button>下一个</el-button>
+                <el-button>重置</el-button>
+                <el-button>更新</el-button>
+            </div>
+            <el-avatar :size="122" :src="testUrl"></el-avatar>
+        </el-form>
+    </div>
+</template>
+
+<script>
+export default {
+    data() {
+        return {
+            form: {
+
+            },
+            testUrl: 'https://cube.elemecdn.com/0/88/03b0d39583f48206768a7534e55bcpng.png'
+        }
+    }
+
+}
+</script>
+<style lang="less" scoped>
+.form {
+    position: absolute;
+    left: 500px;
+    width: 586px;
+    height: 700px;
+    box-shadow: 0px 0px 4px 0px rgba(0, 0, 0, 0.15);
+}
+
+.el-form {
+    margin: 40px 0 0 0;
+
+    .el-form-item {
+        padding-top: 20px;
+        margin-inline: 20px;
+        margin-bottom: 0;
+    }
+    /deep/.el-form-item__label{
+        padding: 0;
+    }
+    /deep/.el-form-item__content{
+        display: flex;
+    }
+}
+
+.header {
+    position: absolute;
+    top: 0;
+    width: 586px;
+    height: 40px;
+    box-shadow: 0px 0px 4px 0px rgba(0, 0, 0, 0.15);
+
+    .el-icon-close {
+        position: absolute;
+        top: 10px;
+        right: 10px;
+    }
+}
+
+
+.el-button {
+    width: 80px;
+    height: 30px;
+    text-align: center;
+    margin: 20px;
+    padding: 5px;
+}
+.el-avatar {
+    position: absolute;
+    right: 60px;
+    top: 80px;
+}
+</style>

+ 180 - 0
src/views/userManagement/personManagement/tables/activeUser.vue

@@ -0,0 +1,180 @@
+<template>
+    <div>
+        <el-table ref="multipleTable" border :data="tableData" tooltip-effect="dark" :header-cell-style="{ textAlign: 'center' }"
+            :cell-style="{ textAlign: 'center' }" style="width: 100%" @selection-change="handleSelectionChange">
+            <el-table-column type="selection" width="50">
+            </el-table-column>
+            <el-table-column prop="username" label="用户名">
+            </el-table-column>
+            <el-table-column prop="phone_num" label="手机号">
+            </el-table-column>
+            <el-table-column prop="e_mail" label="邮箱">
+            </el-table-column>
+            <el-table-column prop="role" label="角色">
+            </el-table-column>
+            <el-table-column prop="permission" label="权限">
+            </el-table-column>
+            <el-table-column prop="working_address" label="单位">
+            </el-table-column>
+            <el-table-column prop="registed_time" label="注册时间">
+            </el-table-column>
+            <el-table-column prop="status" label="状态">
+                <template slot-scope="scope">
+                    <el-tag :color="scope.row.status == true ? '#06f77e' : '#757776'"></el-tag>
+                </template>
+            </el-table-column>
+            <el-table-column prop="operation" label="操作">
+                <el-button size="mini" type="text" @click="view">查看</el-button>
+                <el-button size="mini" type="text">编辑</el-button>
+                <el-button size="mini" type="text">删除</el-button>
+            </el-table-column>
+        </el-table>
+        <div class="bottom">
+            <div>
+                <checkbox class="checkbox"></checkbox>
+                <el-button class="check-cancel" size="mini" type="text" @click="cancleChecked">取消</el-button>
+            </div>
+            <div class="bottom_button" v-show="show">
+                <el-button class="delete">批量删除</el-button>
+                <el-button class="disabled">批量禁用</el-button>
+                <el-dropdown type="primary" @click="handleClick">导出数据
+                    <i class="el-icon-arrow-down el-icon--right"></i>
+                    <el-dropdown-menu slot="dropdown">
+                    </el-dropdown-menu>
+                </el-dropdown>
+            </div>
+            <page class="page"></page>
+        </div>
+    </div>
+</template>
+
+<script>
+import checkbox from '@/components/Checkbox/index'
+import page from '@/components/pagination/index'
+export default {
+    components: { checkbox, page },
+    data() {
+        return {
+            tableData: [{
+                username: 'admin',
+                phone_num: '12345678901',
+                e_mail: 'admin@xxxx.com',
+                role: '管理员',
+                permission: '1级',
+                working_address: '北京电信规划设计院',
+                registed_time: '2022-08-09  19:00',
+                status: true
+            }, {
+                username: 'admin',
+                phone_num: '12345678901',
+                e_mail: 'admin@xxxx.com',
+                role: '管理员',
+                permission: '1级',
+                working_address: '北京电信规划设计院',
+                registed_time: '2022-08-09  19:00',
+                status: false
+            }, {
+                username: 'admin',
+                phone_num: '12345678901',
+                e_mail: 'admin@xxxx.com',
+                role: '管理员',
+                permission: '1级',
+                working_address: '北京电信规划设计院',
+                registed_time: '2022-08-09  19:00',
+                status: true
+            }, {
+                username: 'admin',
+                phone_num: '12345678901',
+                e_mail: 'admin@xxxx.com',
+                role: '管理员',
+                permission: '1级',
+                working_address: '北京电信规划设计院',
+                registed_time: '2022-08-09  19:00',
+                status: false
+            },],
+            multipleSelection: [],
+            show:true
+        }
+    },
+    methods: {
+        cancleChecked(){
+            //
+        },
+        handleClick(){
+            //
+        }
+    }
+}
+</script>
+<style lang="less" scoped>
+.el-tag {
+    width: 12px;
+    height: 12px;
+    border-radius: 100px;
+    padding: 0;
+}
+
+.bottom {
+   position: absolute;
+    left: 20px;
+    right: 16px;
+    bottom: 20px;
+    height: 50px;
+    line-height: 20px;
+    background-color: rgba(255, 255, 255, 1);
+    text-align: center;
+
+    .checkbox {
+        position: absolute;
+        left: 29px;
+        top: 15px;
+        font-size: 14px;
+    }
+
+    .check-cancel {
+        position: absolute;
+        // line-height: 20px;
+        font-size: 14px;
+        text-align: center;
+        left: 140px;
+        top: 10px;
+    }
+
+    .bottom_button {
+        position: absolute;
+        left: 200px;
+        top: 7px;
+
+        .delete {
+            width: 95px;
+            height: 30px;
+            font-size: 14px;
+            text-align: center;
+            padding: 1px;
+        }
+
+        .disabled {
+            width: 95px;
+            height: 30px;
+            font-size: 14px;
+            text-align: center;
+            padding: 1px;
+        }
+
+        .el-dropdown {
+            margin-left: 15px;
+
+            /deep/.el-button--primary {
+                height: 30px;
+                //background-color: rgba(255, 255, 255, 1);
+            }
+        }
+    }
+
+    .page {
+        position: absolute;
+        top: -10px;
+        right: 30px;
+    }
+}
+</style>

+ 174 - 0
src/views/userManagement/personManagement/tables/deactiveUser.vue

@@ -0,0 +1,174 @@
+<template>
+    <div>
+        <el-table ref="multipleTable" :data="tableData" tooltip-effect="dark" :header-cell-style="{ textAlign: 'center' }"
+            :cell-style="{ textAlign: 'center' }" style="width: 100%" @selection-change="handleSelectionChange">
+            <el-table-column type="selection" width="50">
+            </el-table-column>
+            <el-table-column prop="username" label="用户名">
+            </el-table-column>
+            <el-table-column prop="phone" label="手机号">
+            </el-table-column>
+            <el-table-column prop="e_mail" label="邮箱">
+            </el-table-column>
+            <el-table-column prop="role" label="角色">
+            </el-table-column>
+            <el-table-column prop="permission" label="权限">
+            </el-table-column>
+            <el-table-column prop="working_address" label="单位">
+            </el-table-column>
+            <el-table-column prop="registed_time" label="注册时间">
+            </el-table-column>
+            <el-table-column prop="status" label="状态">
+                <template slot-scope="scope">
+                    <el-tag :color="scope.row.status == true ? '#06f77e' : '#757776'"></el-tag>
+                </template>
+            </el-table-column>
+            <el-table-column prop="operation" label="操作">
+                <el-button size="mini" type="text">查看</el-button>
+                <el-button size="mini" type="text">编辑</el-button>
+                <el-button size="mini" type="text">激活</el-button>
+            </el-table-column>
+        </el-table>
+        <div class="bottom">
+            <div>
+                <checkbox class="checkbox"></checkbox>
+                <el-button class="check-cancel" size="mini" type="text">取消</el-button>
+            </div>
+            <div class="bottom_button">
+                <el-button class="delete">批量删除</el-button>
+                <el-button class="disabled">批量激活</el-button>
+                <el-dropdown type="primary" @click="handleClick">导出数据
+                    <i class="el-icon-arrow-down el-icon--right"></i>
+                    <el-dropdown-menu slot="dropdown">
+                    </el-dropdown-menu>
+                </el-dropdown>
+            </div>
+            <page class="page"> </page>
+        </div>
+    </div>
+</template>
+
+<script >
+import checkbox from '@/components/Checkbox/index'
+import page from '@/components/pagination/index'
+export default {
+    components: { checkbox, page },
+    data() {
+        return {
+            tableData: [{
+                username: 'admin',
+                phone: '12345678901',
+                e_mail: 'admin@xxxx.com',
+                role: '管理员',
+                permission: '1级',
+                working_address: '北京电信规划设计院',
+                registed_time: '2022-08-09  19:00',
+                status: true
+            }, {
+                username: 'admin',
+                phone: '12345678901',
+                e_mail: 'admin@xxxx.com',
+                role: '管理员',
+                permission: '1级',
+                working_address: '北京电信规划设计院',
+                registed_time: '2022-08-09  19:00',
+                status: false
+            }, {
+                username: 'admin',
+                phone: '12345678901',
+                e_mail: 'admin@xxxx.com',
+                role: '管理员',
+                permission: '1级',
+                working_address: '北京电信规划设计院',
+                registed_time: '2022-08-09  19:00',
+                status: true
+            }, {
+                username: 'admin',
+                phone: '12345678901',
+                e_mail: 'admin@xxxx.com',
+                role: '管理员',
+                permission: '1级',
+                working_address: '北京电信规划设计院',
+                registed_time: '2022-08-09  19:00',
+                status: false
+            },],
+            multipleSelection: []
+        }
+    },
+    methods: {
+
+    }
+}
+</script>
+<style lang="less" scoped>
+.el-tag {
+    width: 12px;
+    height: 12px;
+    border-radius: 100px;
+    padding: 0;
+}
+
+.bottom {
+    position: absolute;
+    left: 20px;
+    right: 16px;
+    bottom: 20px;
+    height: 50px;
+    line-height: 20px;
+    background-color: rgba(255, 255, 255, 1);
+    text-align: center;
+
+    .checkbox {
+        position: absolute;
+        left: 29px;
+        top: 15px;
+        font-size: 14px;
+    }
+
+    .check-cancel {
+        position: absolute;
+        // line-height: 20px;
+        font-size: 14px;
+        text-align: center;
+        left: 140px;
+        top: 10px;
+    }
+
+    .bottom_button {
+        position: absolute;
+        left: 200px;
+        top: 7px;
+
+        .delete {
+            width: 95px;
+            height: 30px;
+            font-size: 14px;
+            text-align: center;
+            padding: 1px;
+        }
+
+        .disabled {
+            width: 95px;
+            height: 30px;
+            font-size: 14px;
+            text-align: center;
+            padding: 1px;
+        }
+
+        .el-dropdown {
+            margin-left: 15px;
+
+            /deep/.el-button--primary {
+                height: 30px;
+                //background-color: rgba(255, 255, 255, 1);
+            }
+        }
+    }
+
+    .page {
+        position: absolute;
+        top: -10px;
+        right: 30px;
+    }
+}
+</style>

+ 203 - 0
src/views/userManagement/personManagement/tables/table3.vue

@@ -0,0 +1,203 @@
+<template>
+    <div>
+        <el-table :data="tableData" tooltip-effect="dark" :header-cell-style="{ textAlign: 'center' }"
+            :cell-style="{ textAlign: 'center' }" style="width: 100%" border>
+            <el-table-column type="index" width="50" label="序列">
+            </el-table-column>
+            <el-table-column prop="username" label="用户名">
+            </el-table-column>
+            <el-table-column prop="phone" label="手机号">
+            </el-table-column>
+            <el-table-column prop="e_mail" label="邮箱">
+            </el-table-column>
+            <el-table-column prop="role" label="角色">
+            </el-table-column>
+            <el-table-column prop="process" label="进程">
+                <el-progress :percentage="100" :format="format"></el-progress>
+            </el-table-column>
+            <el-table-column prop="status">
+
+            </el-table-column>
+        </el-table>
+        <el-table  border :data="tableData2" tooltip-effect="dark"
+            :header-cell-style="{ textAlign: 'center' }" :cell-style="{ textAlign: 'center' }" style="width: 100%"
+            @selection-change="handleSelectionChange">
+            <el-table-column type="selection" width="50">
+            </el-table-column>
+            <el-table-column prop="username" label="用户名">
+            </el-table-column>
+            <el-table-column prop="phone" label="手机号">
+            </el-table-column>
+            <el-table-column prop="e_mail" label="邮箱">
+            </el-table-column>
+            <el-table-column prop="role" label="角色">
+            </el-table-column>
+            <el-table-column prop="permission" label="权限">
+            </el-table-column>
+            <el-table-column prop="working_address" label="单位">
+            </el-table-column>
+            <el-table-column prop="registed_time" label="注册时间">
+            </el-table-column>
+            <el-table-column prop="status" label="状态">
+                <template slot-scope="scope">
+                    <el-tag :color="scope.row.status == true ? '#06f77e' : '#757776'"></el-tag>
+                </template>
+            </el-table-column>
+            <el-table-column prop="operation" label="操作">
+                <el-button size="mini" type="text">查看</el-button>
+                <el-button size="mini" type="text">编辑</el-button>
+                <el-button size="mini" type="text">删除</el-button>
+            </el-table-column>
+        </el-table>
+        <div class="bottom">
+            <div>
+                <checkbox class="checkbox"></checkbox>
+                <el-button class="check-cancel" size="mini" type="text">取消</el-button>
+            </div>
+            <div class="bottom_button">
+                <el-button class="delete">批量删除</el-button>
+                <el-button class="disabled">批量禁用</el-button>
+                <el-dropdown type="primary" @click="handleClick">导出数据
+                    <i class="el-icon-arrow-down el-icon--right"></i>
+                    <el-dropdown-menu slot="dropdown">
+                    </el-dropdown-menu>
+                </el-dropdown>
+            </div>
+            <page class="page"> </page>
+        </div>
+    </div>
+</template>
+
+<script>
+import checkbox from '@/components/Checkbox/index'
+import page from '@/components/pagination/index'
+export default {
+    components: { checkbox, page },
+    data() {
+        return {
+            tableData: [{
+
+            }],
+            tableData2: [{
+                username: 'admin',
+                phone: '12345678901',
+                e_mail: 'admin@xxxx.com',
+                role: '管理员',
+                permission: '1级',
+                working_address: '北京电信规划设计院',
+                registed_time: '2022-08-09  19:00',
+                status: true
+            }, {
+                username: 'admin',
+                phone: '12345678901',
+                e_mail: 'admin@xxxx.com',
+                role: '管理员',
+                permission: '1级',
+                working_address: '北京电信规划设计院',
+                registed_time: '2022-08-09  19:00',
+                status: false
+            }, {
+                username: 'admin',
+                phone: '12345678901',
+                e_mail: 'admin@xxxx.com',
+                role: '管理员',
+                permission: '1级',
+                working_address: '北京电信规划设计院',
+                registed_time: '2022-08-09  19:00',
+                status: true
+            }, {
+                username: 'admin',
+                phone: '12345678901',
+                e_mail: 'admin@xxxx.com',
+                role: '管理员',
+                permission: '1级',
+                working_address: '北京电信规划设计院',
+                registed_time: '2022-08-09  19:00',
+                status: false
+            },],
+            multipleSelection: []
+        }
+    },
+    methods: {
+        format(percentage) {
+            return percentage === 100 ? '满' : `${percentage}%`;
+        }
+    }
+}
+</script>
+<style lang="less" scoped>
+.el-table {
+    margin-bottom: 25px;
+}
+
+.el-tag {
+    width: 12px;
+    height: 12px;
+    border-radius: 100px;
+    padding: 0;
+}
+
+.bottom {
+    position: absolute;
+    left: 20px;
+    right: 16px;
+    bottom: 20px;
+    height: 50px;
+    line-height: 20px;
+    background-color: rgba(255, 255, 255, 1);
+    text-align: center;
+
+    .checkbox {
+        position: absolute;
+        left: 29px;
+        top: 15px;
+        font-size: 14px;
+    }
+
+    .check-cancel {
+        position: absolute;
+        // line-height: 20px;
+        font-size: 14px;
+        text-align: center;
+        left: 140px;
+        top: 10px;
+    }
+
+    .bottom_button {
+        position: absolute;
+        left: 200px;
+        top: 7px;
+
+        .delete {
+            width: 95px;
+            height: 30px;
+            font-size: 14px;
+            text-align: center;
+            padding: 1px;
+        }
+
+        .disabled {
+            width: 95px;
+            height: 30px;
+            font-size: 14px;
+            text-align: center;
+            padding: 1px;
+        }
+
+        .el-dropdown {
+            margin-left: 15px;
+
+            /deep/.el-button--primary {
+                height: 30px;
+                //background-color: rgba(255, 255, 255, 1);
+            }
+        }
+    }
+
+    .page {
+        position: absolute;
+        top: -10px;
+        right: 30px;
+    }
+}
+</style>

+ 203 - 0
src/views/userManagement/personManagement/tables/table4.vue

@@ -0,0 +1,203 @@
+<template>
+    <div>
+        <el-table :data="tableData" tooltip-effect="dark" :header-cell-style="{ textAlign: 'center' }"
+            :cell-style="{ textAlign: 'center' }" style="width: 100%" border>
+            <el-table-column type="index" width="50" label="序列">
+            </el-table-column>
+            <el-table-column prop="username" label="用户名">
+            </el-table-column>
+            <el-table-column prop="phone" label="手机号">
+            </el-table-column>
+            <el-table-column prop="e_mail" label="邮箱">
+            </el-table-column>
+            <el-table-column prop="role" label="角色">
+            </el-table-column>
+            <el-table-column prop="process" label="进程">
+                <el-progress :percentage="100" :format="format"></el-progress>
+            </el-table-column>
+            <el-table-column prop="status">
+
+            </el-table-column>
+        </el-table>
+        <el-table border :data="tableData2" tooltip-effect="dark"
+            :header-cell-style="{ textAlign: 'center' }" :cell-style="{ textAlign: 'center' }" style="width: 100%"
+            @selection-change="handleSelectionChange">
+            <el-table-column type="selection" width="50">
+            </el-table-column>
+            <el-table-column prop="username" label="用户名">
+            </el-table-column>
+            <el-table-column prop="phone" label="手机号">
+            </el-table-column>
+            <el-table-column prop="e_mail" label="邮箱">
+            </el-table-column>
+            <el-table-column prop="role" label="角色">
+            </el-table-column>
+            <el-table-column prop="permission" label="权限">
+            </el-table-column>
+            <el-table-column prop="working_address" label="单位">
+            </el-table-column>
+            <el-table-column prop="registed_time" label="注册时间">
+            </el-table-column>
+            <el-table-column prop="status" label="状态">
+                <template slot-scope="scope">
+                    <el-tag :color="scope.row.status == true ? '#06f77e' : '#757776'"></el-tag>
+                </template>
+            </el-table-column>
+            <el-table-column prop="operation" label="操作">
+                <el-button size="mini" type="text">查看</el-button>
+                <el-button size="mini" type="text">编辑</el-button>
+                <el-button size="mini" type="text">删除</el-button>
+            </el-table-column>
+        </el-table>
+        <div class="bottom">
+            <div>
+                <checkbox class="checkbox"></checkbox>
+                <el-button class="check-cancel" size="mini" type="text">取消</el-button>
+            </div>
+            <div class="bottom_button">
+                <el-button class="delete">批量删除</el-button>
+                <el-button class="disabled">批量激活</el-button>
+                <el-dropdown type="primary" @click="handleClick">导出数据
+                    <i class="el-icon-arrow-down el-icon--right"></i>
+                    <el-dropdown-menu slot="dropdown">
+                    </el-dropdown-menu>
+                </el-dropdown>
+            </div>
+            <page class="page"> </page>
+        </div>
+    </div>
+</template>
+
+<script >
+import checkbox from '@/components/Checkbox/index'
+import page from '@/components/pagination/index'
+export default {
+    components: { checkbox, page },
+    data() {
+        return {
+            tableData: [{
+
+            }],
+            tableData2: [{
+                username: 'admin',
+                phone: '12345678901',
+                e_mail: 'admin@xxxx.com',
+                role: '管理员',
+                permission: '1级',
+                working_address: '北京电信规划设计院',
+                registed_time: '2022-08-09  19:00',
+                status: true
+            }, {
+                username: 'admin',
+                phone: '12345678901',
+                e_mail: 'admin@xxxx.com',
+                role: '管理员',
+                permission: '1级',
+                working_address: '北京电信规划设计院',
+                registed_time: '2022-08-09  19:00',
+                status: false
+            }, {
+                username: 'admin',
+                phone: '12345678901',
+                e_mail: 'admin@xxxx.com',
+                role: '管理员',
+                permission: '1级',
+                working_address: '北京电信规划设计院',
+                registed_time: '2022-08-09  19:00',
+                status: true
+            }, {
+                username: 'admin',
+                phone: '12345678901',
+                e_mail: 'admin@xxxx.com',
+                role: '管理员',
+                permission: '1级',
+                working_address: '北京电信规划设计院',
+                registed_time: '2022-08-09  19:00',
+                status: false
+            },],
+            multipleSelection: []
+        }
+    },
+    methods: {
+        format(percentage) {
+            return percentage === 100 ? '满' : `${percentage}%`;
+        }
+    }
+}
+</script>
+<style lang="less" scoped>
+.el-table {
+    margin-bottom: 25px;
+}
+
+.el-tag {
+    width: 12px;
+    height: 12px;
+    border-radius: 100px;
+    padding: 0;
+}
+
+.bottom {
+    position: absolute;
+    left: 20px;
+    right: 16px;
+    bottom: 20px;
+    height: 50px;
+    line-height: 20px;
+    background-color: rgba(255, 255, 255, 1);
+    text-align: center;
+
+    .checkbox {
+        position: absolute;
+        left: 29px;
+        top: 15px;
+        font-size: 14px;
+    }
+
+    .check-cancel {
+        position: absolute;
+        // line-height: 20px;
+        font-size: 14px;
+        text-align: center;
+        left: 140px;
+        top: 10px;
+    }
+
+    .bottom_button {
+        position: absolute;
+        left: 200px;
+        top: 7px;
+
+        .delete {
+            width: 95px;
+            height: 30px;
+            font-size: 14px;
+            text-align: center;
+            padding: 1px;
+        }
+
+        .disabled {
+            width: 95px;
+            height: 30px;
+            font-size: 14px;
+            text-align: center;
+            padding: 1px;
+        }
+
+        .el-dropdown {
+            margin-left: 15px;
+
+            /deep/.el-button--primary {
+                height: 30px;
+                //background-color: rgba(255, 255, 255, 1);
+            }
+        }
+    }
+
+    .page {
+        position: absolute;
+        top: -10px;
+        right: 30px;
+    }
+}
+</style>

+ 30 - 0
vue.config.js

@@ -1,4 +1,34 @@
 const { defineConfig } = require('@vue/cli-service')
 module.exports = defineConfig({
+<<<<<<< HEAD
   transpileDependencies: true
 })
+=======
+  transpileDependencies: true,
+})
+
+const path = require('path')
+module.exports = {
+  chainWebpack: config => {
+      const svgRule = config.module.rule('svg')
+      svgRule.uses.clear()
+      svgRule
+          .test(/.svg$/)
+          .include.add(path.resolve(__dirname, './src/icons')).end()
+          .use('svg-sprite-loader')
+          .loader('svg-sprite-loader')
+          .options({
+              symbolId: 'icon-[name]'
+          })
+      const fileRule = config.module.rule('file')
+      fileRule.uses.clear()
+      fileRule
+          .test(/.svg$/)
+          .exclude.add(path.resolve(__dirname, './src/icons'))
+          .end()
+          .use('file-loader')
+          .loader('file-loader')
+  }
+}
+
+>>>>>>> 6d4aae2 (用户管理、组织管理、权限管理更新)

Энэ ялгаанд хэт олон файл өөрчлөгдсөн тул зарим файлыг харуулаагүй болно