소스 검색

2022-10-11 15:57 权限管理系统页面调整

沈永艺 3 년 전
부모
커밋
6f8089455f

+ 332 - 269
src/api/admin.js

@@ -1,363 +1,426 @@
 import axios from '@/utils/axios'
 
 export default {
-   /**
-   * 用户信息
-   */
+    /**
+     * 用户信息
+     */
     getUserInfo() {
-      return axios.get('/permission/api/system/userinfo')
+        return axios.get('/permission/api/system/userinfo')
     },
-  /**
-   * 修改密码
-   */
+    /**
+     * 修改密码
+     */
     ChangePassword(params) {
-      return axios({
-        url: '/permission/api/admin/changePassword',
-        method: 'post',
-        params: params
-      })
-    },
-  /**
-   * 重置密码
-   */
-   ResetPassword(params) {
         return axios({
-          url: '/permission/api/admin/resetPassword',
-          method: 'post',
-          params: params
+            url: '/permission/api/admin/changePassword',
+            method: 'post',
+            params: params
         })
-      },
-  /**
-   * 获取验证码
-   */
-   getVerifyCode() {
-    return axios.get('/permission/api/admin/verifyCode')
-  },
-    /**
-   * 获取用户权限
-   */
-     getPermissionList(params) {
-      return axios.get('/permission/api/system/getPermissionList',{params})
-    },
- /**
-   * 用户登录
-   */
-  adminLogin(data) {
-    return axios.post('/permission/api/admin/login', data)
-  },
-  /**
-   * 判断是否用户登录
-   */
-   IsadminLogin(params) {
-    return axios({
-      url: '/permission/api/system/getLoginStatusByToken',
-      method: 'post',
-      params: params
-    })
-    // return axios.post('/permission/api/system/getLoginStatusByToken', params)
-  },
-   /**
-   * 退出登录
-   */
+    },
+    /**
+     * 重置密码
+     */
+    ResetPassword(params) {
+        return axios({
+            url: '/permission/api/admin/resetPassword',
+            method: 'post',
+            params: params
+        })
+    },
+    /**
+     * 获取验证码
+     */
+    getVerifyCode() {
+        return axios.get('/permission/api/admin/verifyCode')
+    },
+    /**
+     * 获取用户权限
+     */
+    getPermissionList(params) {
+        return axios.get('/permission/api/system/getPermissionList', {params})
+    },
+    /**
+     * 用户登录
+     */
+    adminLogin(data) {
+        return axios.post('/permission/api/admin/login', data)
+    },
+    /**
+     * 判断是否用户登录
+     */
+    IsadminLogin(params) {
+        return axios({
+            url: '/permission/api/system/getLoginStatusByToken',
+            method: 'post',
+            params: params
+        })
+        // return axios.post('/permission/api/system/getLoginStatusByToken', params)
+    },
+    /**
+     * 退出登录
+     */
     adminLogout() {
-      return axios.post('/permission/api/admin/logout')
-    },
-    
-  /**
-   * 查询租户
-   */
-   getTenantList(params) {
-    return axios.get('/permission/api/tenant/queryPageList', { params })
-  },
-    /**
-   * 编辑租户
-   */
-  editTenant(data) {
-    return axios.post('/permission/api/tenant/update', data)
-  },
-  /**
-   * 新增租户
-   */
-  addTenant(data) {
-    return axios.post('/permission/api/tenant/add', data)
-  },
-  /**
-   * 删除租户
-   */
-  deleteTenant(params) {
-    return axios({
-      url: '/permission/api/tenant/delete',
-      method: 'post',
-      params: params
-    })
-  },
+        return axios.post('/permission/api/admin/logout')
+    },
+
+    /**
+     * 查询租户
+     */
+    getTenantList(params) {
+        return axios.get('/permission/api/tenant/queryPageList', {params})
+    },
+    /**
+     * 编辑租户
+     */
+    editTenant(data) {
+        return axios.post('/permission/api/tenant/update', data)
+    },
+    /**
+     * 新增租户
+     */
+    addTenant(data) {
+        return axios.post('/permission/api/tenant/add', data)
+    },
+    /**
+     * 删除租户
+     */
+    deleteTenant(params) {
+        return axios({
+            url: '/permission/api/tenant/delete',
+            method: 'post',
+            params: params
+        })
+    },
 
-  /**
-   * 查询应用
-   */
-  getApplyList(params) {
-    return axios.get('/permission/api/application/queryPageList', { params })
-  },
-   /**
-   * 通过应用ID查询关联租户
-   */
+    /**
+     * 查询应用
+     */
+    getApplyList(params) {
+        return axios.get('/permission/api/application/queryPageList', {params})
+    },
+    /**
+     * 通过应用ID查询关联租户
+     */
     getAllTenantByApplicationId(params) {
-      return axios.get('/permission/api/application/getAllTenantByApplicationId', { params })
-    },
-    /**
-   * 编辑应用
-   */
-  editApply(data) {
-    return axios.post('/permission/api/application/update', data)
-  },
-  /**
-   * 新增应用
-   */
-  addApply(data) {
-    return axios.post('/permission/api/application/add', data)
-  },
-  /**
-   * 删除应用
-   */
-  deleteApply(params) {
-    return axios({
-      url: '/permission/api/application/delete',
-      method: 'post',
-      params: params
-    })
-  },
+        return axios.get('/permission/api/application/getAllTenantByApplicationId', {params})
+    },
+    /**
+     * 编辑应用
+     */
+    editApply(data) {
+        return axios.post('/permission/api/application/update', data)
+    },
+    /**
+     * 新增应用
+     */
+    addApply(data) {
+        return axios.post('/permission/api/application/add', data)
+    },
+    /**
+     * 删除应用
+     */
+    deleteApply(params) {
+        return axios({
+            url: '/permission/api/application/delete',
+            method: 'post',
+            params: params
+        })
+    },
 
-  /**
-   * 查询功能
-   */
-  getFunctionList(params) {
-    return axios.get('/permission/api/function/queryPageList', { params })
-  },
-   /**
-   * 查询类型为展示的功能
-   */
+    /**
+     * 查询功能
+     */
+    getFunctionList(params) {
+        return axios.get('/permission/api/function/queryPageList', {params})
+    },
+    /**
+     * 查询类型为展示的功能
+     */
     getFuncListByTypeIsShow(params) {
-      return axios.get('/permission/api/function/getFuncListByTypeIsShow', { params })
-    },
-  /**
-   * 编辑功能
-   */
-  editFunction(data) {
-    return axios.post('/permission/api/function/update', data)
-  },
-  /**
-   * 新增功能
-   */
-  addFunction(data) {
-    return axios.post('/permission/api/function/add', data)
-  },
-  /**
-   * 删除功能
-   */
-  deleteFunction(params) {
-    return axios({
-      url: '/permission/api/function/delete',
-      method: 'post',
-      params: params
-    })
-  },
+        return axios.get('/permission/api/function/getFuncListByTypeIsShow', {params})
+    },
+    /**
+     * 编辑功能
+     */
+    editFunction(data) {
+        return axios.post('/permission/api/function/update', data)
+    },
+    /**
+     * 新增功能
+     */
+    addFunction(data) {
+        return axios.post('/permission/api/function/add', data)
+    },
+    /**
+     * 删除功能
+     */
+    deleteFunction(params) {
+        return axios({
+            url: '/permission/api/function/delete',
+            method: 'post',
+            params: params
+        })
+    },
 
-   /**
-   * 查询部门
-   */
+    /**
+     * 查询部门
+     */
     getDepartmentList(params) {
-      return axios.get('/permission/api/department/queryPageList', { params })
+        return axios.get('/permission/api/department/queryPageList', {params})
     },
     /**
      * 编辑部门
      */
     editDepartment(data) {
-      return axios.post('/permission/api/department/update', data)
+        return axios.post('/permission/api/department/update', data)
     },
     /**
      * 新增部门
      */
     addDepartment(data) {
-      return axios.post('/permission/api/department/add', data)
+        return axios.post('/permission/api/department/add', data)
     },
     /**
      * 删除部门
      */
     deleteDepartment(params) {
-      return axios({
-        url: '/permission/api/department/delete',
-        method: 'post',
-        params: params
-      })
+        return axios({
+            url: '/permission/api/department/delete',
+            method: 'post',
+            params: params
+        })
     },
 
     /**
-   * 查询职位
-   */
-     getPositionList(params) {
-      return axios.get('/permission/api/position/queryPageList', { params })
+     * 查询职位
+     */
+    getPositionList(params) {
+        return axios.get('/permission/api/position/queryPageList', {params})
     },
     /**
      * 编辑职位
      */
     editPosition(data) {
-      return axios.post('/permission/api/position/update', data)
+        return axios.post('/permission/api/position/update', data)
     },
     /**
      * 新增职位
      */
     addPosition(data) {
-      return axios.post('/permission/api/position/add', data)
+        return axios.post('/permission/api/position/add', data)
     },
     /**
      * 删除职位
      */
     deletePosition(params) {
-      return axios({
-        url: '/permission/api/position/delete',
-        method: 'post',
-        params: params
-      })
+        return axios({
+            url: '/permission/api/position/delete',
+            method: 'post',
+            params: params
+        })
     },
 
-  /**
-   * 查询人员
-   */
+    /**
+     * 查询人员
+     */
     getPersonnelList(params) {
-      return axios.get('/permission/api/personnel/queryPageList', { params })
+        return axios.get('/permission/api/personnel/queryPageList', {params})
     },
     /**
-      * 编辑人员
-      */
+     * 编辑人员
+     */
     editPersonnel(data) {
-      return axios.post('/permission/api/personnel/update', data)
+        return axios.post('/permission/api/personnel/update', data)
     },
     /**
-      * 新增人员
-      */
+     * 新增人员
+     */
     addPersonnel(data) {
-      return axios.post('/permission/api/personnel/add', data)
+        return axios.post('/permission/api/personnel/add', data)
     },
     /**
-      * 删除人员
-      */
+     * 删除人员
+     */
     deletePersonnel(params) {
-      return axios({
-        url: '/permission/api/personnel/delete',
-        method: 'post',
-        params: params
-      })
+        return axios({
+            url: '/permission/api/personnel/delete',
+            method: 'post',
+            params: params
+        })
     },
 
-      /**
-   * 查询角色
-   */
+    /**
+     * 查询角色
+     */
     getRoleList(params) {
-      return axios.get('/permission/api/role/queryPageList', { params })
+        return axios.get('/permission/api/role/queryPageList', {params})
     },
     /**
-      * 编辑角色
-      */
+     * 编辑角色
+     */
     editRole(data) {
-      return axios.post('/permission/api/role/update', data)
+        return axios.post('/permission/api/role/update', data)
     },
     /**
-      * 新增角色
-      */
+     * 新增角色
+     */
     addRole(data) {
-      return axios.post('/permission/api/role/add', data)
+        return axios.post('/permission/api/role/add', data)
     },
     /**
-      * 删除角色
-      */
+     * 删除角色
+     */
     deleteRole(params) {
-      return axios({
-        url: '/permission/api/role/delete',
-        method: 'post',
-        params: params
-      })
-    },
-    /**
-   * 获取功能数据列表
-   */
-       getDataList(params) {
-        return axios.post('/permission/api/data/getDataByFunctionIds',  params )
-      },
-    /**
-     * 
-   * 查询用户组
-   */
+        return axios({
+            url: '/permission/api/role/delete',
+            method: 'post',
+            params: params
+        })
+    },
+    /**
+     * 获取功能数据列表
+     */
+    getDataList(params) {
+        return axios.post('/permission/api/data/getDataByFunctionIds', params)
+    },
+    /**
+     *
+     * 查询用户组
+     */
     getGroupList(params) {
-      return axios.get('/permission/api/userGroup/queryPageList', { params })
+        return axios.get('/permission/api/userGroup/queryPageList', {params})
     },
     /**
-    * 编辑用户组
-    */
+     * 编辑用户组
+     */
     editGroup(data) {
-      return axios.post('/permission/api/userGroup/update', data)
+        return axios.post('/permission/api/userGroup/update', data)
     },
     /**
-    * 新增用户组
-    */
+     * 新增用户组
+     */
     addGroup(data) {
-      return axios.post('/permission/api/userGroup/add', data)
+        return axios.post('/permission/api/userGroup/add', data)
     },
     /**
-    * 删除用户组
-    */
+     * 删除用户组
+     */
     deleteGroup(params) {
-      return axios({
-        url: '/permission/api/userGroup/delete',
-        method: 'post',
-        params: params
-      })
-  },
+        return axios({
+            url: '/permission/api/userGroup/delete',
+            method: 'post',
+            params: params
+        })
+    },
 
     /**
-     * 
-   * 根据功能查字典
-  */
-     getDictList(params) {
-      return axios({
-        url:'/permission/api/data/getDataSources',
-        method:'post',
-        params: params
-      })
+     *
+     * 根据功能查字典
+     */
+    getDictList(params) {
+        return axios({
+            url: '/permission/api/data/getDataSources',
+            method: 'post',
+            params: params
+        })
     },
 
-  /**
-     * 
-   * 查询数据权限
-  */
+    /**
+     *
+     * 查询数据权限
+     */
     getDataList(params) {
-      return axios.get('/permission/api/data/queryList', { params })
+        return axios.get('/permission/api/data/queryList', {params})
     },
-  /**
-    * 编辑数据权限
-  */
+    /**
+     * 编辑数据权限
+     */
     editData(data) {
-      return axios.post('/permission/api/data/update', data)
+        return axios.post('/permission/api/data/update', data)
     },
-  /**
-    * 新增数据权限
-  */
+    /**
+     * 新增数据权限
+     */
     addData(data) {
-      return axios.post('/permission/api/data/add', data)
+        return axios.post('/permission/api/data/add', data)
     },
-  /**
-    * 删除数据权限
-  */
+    /**
+     * 删除数据权限
+     */
     deleteData(params) {
-      return axios({
-        url: '/permission/api/data/delete',
-        method: 'post',
-        params: params
-      })
-  },
-    /**
-    * 获取租户类型
-    */
-  getDict(params) {
-    return axios.get('/permission/api/system/getDict', { params })
-  }
+        return axios({
+            url: '/permission/api/data/delete',
+            method: 'post',
+            params: params
+        })
+    },
+    /**
+     * 获取租户类型
+     */
+    getDict(params) {
+        return axios.get('/permission/api/system/getDict', {params})
+    },
+
+    /**
+     * 获取所有部门
+     */
+    getAllDepartmentList(params) {
+        return axios.get('/permission/api/department/getDepartmentList', {params})
+    },
+
+    /**
+     * 获取所有职位
+     */
+    getAllPositionList(params) {
+        return axios.get('/permission/api/position/getPositionList', {params})
+    },
+
+    /**
+     * 获取所有人员
+     */
+    getAllPersonnelList(params) {
+        return axios.get('/permission/api/personnel/getPersonnelList', {params})
+    },
+
+    /**
+     * 获取所有角色
+     */
+    getAllRoleList(params) {
+        return axios.get('/permission/api/role/getRoleList', {params})
+    },
+
+    /**
+     * 获取所有用户组
+     */
+    getAllUserGroupList(params) {
+        return axios.get('/permission/api/userGroup/getUserGroupList', {params})
+    },
+    /**
+     * 获取所有租户
+     */
+    getAllTenantList(params) {
+        return axios.get('/permission/api/tenant/getTenantList', {params})
+    },
+
+    /**
+     * 获取所有应用
+     */
+    getAllApplicationList(params) {
+        return axios.get('/permission/api/application/getApplicationList', {params})
+    },
+
+    /**
+     * 获取所有功能
+     */
+    getAllFunctionList(params) {
+        return axios.get('/permission/api/function/getFunctionList', {params})
+    },
+
+    /**
+     * 获取所有功能
+     */
+    addRolePersonnelBatch(params) {
+        return axios.post('/permission/api/role/addRolePersonnelBatch', params)
+    },
+
 }

+ 1 - 1
src/views/client/index.vue

@@ -353,7 +353,7 @@ export default {
     },
 
     getFunction(val) {
-      this.$api.getFunctionList({type:val}).then(response => {
+      this.$api.getAllFunctionList({type:val}).then(response => {
         // console.log(response.data)
         this.authority = []
         this.authority = response.data

+ 206 - 191
src/views/dataPermission/index.vue

@@ -5,8 +5,11 @@
         <el-input v-model="queryParams.name" size="small" placeholder="请输入"></el-input>
       </el-form-item>
       <el-form-item>
-        <el-button type="" :disabled="!$permission('/admin/role/permissionCheck')" size="small" @click="getList2">查询</el-button>
-        <el-button :disabled="!$permission('/admin/role/permissionAdd')" type="primary" size="small" @click="handleAdd(func.fun.id)">新增</el-button>
+        <el-button type="" :disabled="!$permission('/admin/role/permissionCheck')" size="small" @click="getList2">查询
+        </el-button>
+        <el-button :disabled="!$permission('/admin/role/permissionAdd')" type="primary" size="small"
+                   @click="handleAdd(func.fun.id)">新增
+        </el-button>
       </el-form-item>
     </el-form>
     <el-table
@@ -21,17 +24,19 @@
         header-row-class-name="custom-table-header"
 
     >
-      <el-table-column type="selection" width="60" align="center" ></el-table-column>
+      <el-table-column type="selection" width="60" align="center"></el-table-column>
       <el-table-column prop="name" label="数据权限名称" align="" show-overflow-tooltip></el-table-column>
       <!-- <el-table-column prop="tenant" label="条件" align="center" show-overflow-tooltip></el-table-column> -->
       <el-table-column prop="remark" label="备注" align="center" show-overflow-tooltip></el-table-column>
       <el-table-column label="操作" align="center" width="150">
         <template slot-scope="scope">
           <el-dropdown split-button type="primary" size="small">
-          <p v-if="$permission('/admin/role/permissionModify')" @click="handleEdit(scope.row)">编辑</p>
+            <p v-if="$permission('/admin/role/permissionModify')" @click="handleEdit(scope.row)">编辑</p>
             <p v-else :disabled="true">编辑</p>
             <el-dropdown-menu slot="dropdown" class="text-align_center">
-              <el-dropdown-item :disabled="!$permission('/admin/role/permissionDelete')" class="color-red" @click.native="handleDelete(scope.row)" divided>删除</el-dropdown-item>
+              <el-dropdown-item :disabled="!$permission('/admin/role/permissionDelete')" class="color-red"
+                                @click.native="handleDelete(scope.row)" divided>删除
+              </el-dropdown-item>
             </el-dropdown-menu>
           </el-dropdown>
         </template>
@@ -39,84 +44,85 @@
     </el-table>
     <el-dialog :title="title" :visible.sync="visible" width="900px" :before-close="close" :append-to-body="true">
       <el-form v-if="visible" :model="ruleForm" :rules="rules" ref="ruleForm" label-width="120px" label-position="left">
-          <el-form-item label="所属功能" prop="func">
-            <el-input v-model="func.fun.name" size="small" :readonly="true" placeholder="请输入所属功能"></el-input>
+        <el-form-item label="所属功能" prop="func">
+          <el-input v-model="func.fun.name" size="small" :readonly="true" placeholder="请输入所属功能"></el-input>
         </el-form-item>
         <el-form-item label="数据权限名称" prop="name">
-            <el-input v-model="ruleForm.name" size="small" placeholder="请输入数据权限名称"></el-input>
+          <el-input v-model="ruleForm.name" size="small" placeholder="请输入数据权限名称"></el-input>
         </el-form-item>
         <el-form-item label="数据权限">
-             <template>
-              <div class="add">
-                <el-button type="primary" @click="addList()">添加</el-button>
-              </div>
-                <div style="border:1px solid #C0C0C0;border-radius:4px;overflow:auto;min-height:200px;padding: 10px 20px">
-                  <el-row :gutter="24" v-for="(items,i) in list" :key="i" class="listItem">
-                    <el-col :span="4" style="padding:0">
+          <template>
+            <div class="add">
+              <el-button type="primary" @click="addList()">添加</el-button>
+            </div>
+            <div style="border:1px solid #C0C0C0;border-radius:4px;overflow:auto;min-height:200px;padding: 10px 20px">
+              <el-row :gutter="24" v-for="(items,i) in list" :key="i" class="listItem">
+                <el-col :span="4" style="padding:0">
                       <span>
                         <span v-if="i==0" style="opacity: 0;"> 内容 </span>
                         <el-select v-else v-model="list[i].logicOpr">
                           <el-option
-                            v-for="item in dictionaries.LOGIC_OPERATOR"
-                            :key="item.dictChildValue"
-                            :label="item.dictChildLabel"
-                            :value="item.dictChildValue">
+                              v-for="item in dictionaries.LOGIC_OPERATOR"
+                              :key="item.dictChildValue"
+                              :label="item.dictChildLabel"
+                              :value="item.dictChildValue">
                           </el-option>
                         </el-select>
                       </span>
-                    </el-col>
+                </el-col>
 
-                    <el-col :span="7">
-                      <el-select v-model="list[i].field">
-                        <el-option
+                <el-col :span="7">
+                  <el-select v-model="list[i].field">
+                    <el-option
                         v-for="item in dictList"
                         :key="item.dataSourceField"
                         :label="item.dataSourceName"
                         :value="item.dataSourceField">
-                      </el-option>
-                      </el-select>
-                    </el-col>
-                    <el-col :span="3" style="padding:0">
-                      <el-select v-model="list[i].opr">
-                        <el-option
+                    </el-option>
+                  </el-select>
+                </el-col>
+                <el-col :span="3" style="padding:0">
+                  <el-select v-model="list[i].opr">
+                    <el-option
                         v-for="item in dictionaries.OPERATOR"
                         :key="item.dictChildValue"
                         :label="item.dictChildLabel"
                         :value="item.dictChildValue">
-                        </el-option>
-                      </el-select>
-                    </el-col>
-                      <el-col :span="7">
-                        <el-select v-model="list[i].value"
-                          filterable
-                          allow-create
-                          default-first-option
-                          placeholder="请选择">
-                             <!-- <el-option
-                             :value="userinfo.tenantName"
-                             >
-                               <el-tooltip class="item" effect="dark" :content="userinfo.tenantName" placement="top">
-                                 <span style="float: left;width:100px;white-space:nowrap;overflow:hidden;text-overflow: ellipsis;">{{userinfo.tenantName}}</span>
-                                </el-tooltip> 
-                                <span style="float: right; color: #8492a6; font-size: 13px;margin-left:30px">租户</span>
-                              </el-option> -->
-                              <el-option
-                              v-for="item in dict2List"
-                              :key="item.dataSourceField"
-                              :label="item.dataSourceName"
-                              :value="item.dataSourceField">
-                      </el-option>
-                        </el-select>
-                      </el-col>
-                      <el-col :span="3">
-                      <el-button @click="deleteList(i)"><i class="el-icon-delete"></i> </el-button>
-                      </el-col>
-                    </el-row>
-                  </div>
-                </template>
+                    </el-option>
+                  </el-select>
+                </el-col>
+                <el-col :span="7">
+                  <el-select v-model="list[i].value"
+                             filterable
+                             allow-create
+                             default-first-option
+                             placeholder="请选择">
+                    <!-- <el-option
+                    :value="userinfo.tenantName"
+                    >
+                      <el-tooltip class="item" effect="dark" :content="userinfo.tenantName" placement="top">
+                        <span style="float: left;width:100px;white-space:nowrap;overflow:hidden;text-overflow: ellipsis;">{{userinfo.tenantName}}</span>
+                       </el-tooltip>
+                       <span style="float: right; color: #8492a6; font-size: 13px;margin-left:30px">租户</span>
+                     </el-option> -->
+                    <el-option
+                        v-for="item in dict2List"
+                        :key="item.dataSourceField"
+                        :label="item.dataSourceName"
+                        :value="item.dataSourceField">
+                    </el-option>
+                  </el-select>
+                </el-col>
+                <el-col :span="3">
+                  <el-button @click="deleteList(i)"><i class="el-icon-delete"></i></el-button>
+                </el-col>
+              </el-row>
+            </div>
+          </template>
         </el-form-item>
         <el-form-item label="备注" prop="remark">
-          <el-input v-model="ruleForm.remark" placeholder="请输入备注" type="textarea" maxlength="100" show-word-limit></el-input>
+          <el-input v-model="ruleForm.remark" placeholder="请输入备注" type="textarea" maxlength="100"
+                    show-word-limit></el-input>
         </el-form-item>
       </el-form>
       <div slot="footer" class="dialog-footer">
@@ -131,6 +137,7 @@
 import Treeselect from '@riophae/vue-treeselect'
 import '@riophae/vue-treeselect/dist/vue-treeselect.css'
 import TreeItem from './components/TreeItem'
+
 export default {
   components: {
     Treeselect,
@@ -144,15 +151,15 @@ export default {
   data() {
     name: 'DataPermission'
     return {
-      dictList:[],
-      dict2List:[],
+      dictList: [],
+      dict2List: [],
       visible: false,
       loading: false,
       btnLoading: false,
       total: 0,
       tableData: [],
       title: '',
-      show:false,
+      show: false,
       disabled: false,
       lastName: '',
       func: this.fun,
@@ -163,21 +170,21 @@ export default {
       queryParams: {
         name: ''
       },
-      data:[],
+      data: [],
       ruleForm: {},
-      roleList:[],
+      roleList: [],
       rules: {
         // name: [{ required: true, message: '请输入部门名称', trigger: 'blur' },],
-        name: [{ required: true, message: '请输入数据权限名称', trigger: 'blur' },],
+        name: [{required: true, message: '请输入数据权限名称', trigger: 'blur'},],
       },
-      list:[],
-      times:0
+      list: [],
+      times: 0
     }
   },
-  created(){
-    
+  created() {
+
   },
- 
+
   mounted() {
     this.getList()
     this.getDictList()
@@ -197,74 +204,74 @@ export default {
       return this.$store.state.admin.userinfo
     }
   },
-  watch:{
-    fun(val){
+  watch: {
+    fun(val) {
       // console.log(val)
-        // this.$refs.dataTable.clearSelection()
+      // this.$refs.dataTable.clearSelection()
       this.func = val
       this.getDictList()
-      
+
       this.getList()
-      
+
     },
     // func(val,oldval){
     //   if(val!=oldval){
     //     this.getList()
     //   }
-      
+
     // }
   },
   methods: {
-     //根据条件查询
-     getList2(){
-        this.queryParams.current=1
-        this.getList()
-      },
-    getDictList(){
+    //根据条件查询
+    getList2() {
+      this.queryParams.current = 1
+      this.getList()
+    },
+    getDictList() {
       console.log(this.func)
-      this.$api.getDictList({tableName:this.func.fun.id}).then(response => {
+      this.$api.getDictList({tableName: this.func.fun.id}).then(response => {
         // console.log(response)
         this.dictList = response.data
       })
-      this.$api.getDictList({tableName:'local'}).then(response => {
+      this.$api.getDictList({tableName: 'local'}).then(response => {
         // console.log(response)
         this.dict2List = response.data
       })
     },
-      // toggleSelection(rows) {
-      //   console.log(rows)
-      //   if (rows) {
-      //     this.$nextTick(()=>{
-      //      rows.forEach(row => {
-      //       console.log(row)
-      //       this.$refs.dataTable.toggleRowSelection(row);
-      //     });
-      //     })
-         
-      //   } else {
-      //     this.$refs.multipleTable.clearSelection();
-      //   }
-      // },
-      // handleSelectionChange(val) {
-      //   this.multipleSelection = val;
-      // },
-    changeData(selection,row){
+    // toggleSelection(rows) {
+    //   console.log(rows)
+    //   if (rows) {
+    //     this.$nextTick(()=>{
+    //      rows.forEach(row => {
+    //       console.log(row)
+    //       this.$refs.dataTable.toggleRowSelection(row);
+    //     });
+    //     })
+
+    //   } else {
+    //     this.$refs.multipleTable.clearSelection();
+    //   }
+    // },
+    // handleSelectionChange(val) {
+    //   this.multipleSelection = val;
+    // },
+    changeData(selection, row) {
       if (selection.length > 1) {
         const del_row = selection.shift()
         this.$refs.dataTable.toggleRowSelection(del_row, false)
         // console.log(del_row)
       }
       this.multipleSelection = selection[0]
-      this.$emit('getPremissData', this.fun.fun.id, this.fun.fun.name,this.multipleSelection)
+      this.$emit('getPremissData', this.fun.fun.id, this.fun.fun.name, this.multipleSelection)
       // console.log(this.multipleSelection)
 
     },
     // getDataList(){
-     
+
     //   // var functionList = {
     //   //   functions:this.ruleForm.function 
     //   // }
-   
+
     //     this.$api.getDataList({functionId:this.fun.id}).then(response => {
     //     this.tableData = response.data
     //   })
@@ -275,9 +282,9 @@ export default {
     deleteList(i) {
       this.list.splice(i, 1)
     },
-    ListToTree(){
-      var a =[]
-      if(this.list.length==1){
+    ListToTree() {
+      var a = []
+      if (this.list.length == 1) {
         // a[0]={}
         // a[0].nodeType='logic'
         // a[0].logicOpr = 'and'
@@ -288,77 +295,81 @@ export default {
         //   opr: "=",
         //   value: "1"
         // }
-        a[0]=this.list[0]
-        a[0].nodeType="sql"
+        a[0] = this.list[0]
+        a[0].nodeType = "sql"
         //  a.nodeType='logic'
-      }else{
-        a[0]=this.list[0]
-          a[0].nodeType='exp'
-        for(var i =1;i<this.list.length;i++){
-          this.list[i].nodeType='exp'
-          a[i]={}
-          a[i].left=a[i-1]
-          a[i].nodeType='logic'
-          a[i].right=this.list[i]
+      } else {
+        a[0] = this.list[0]
+        a[0].nodeType = 'exp'
+        for (var i = 1; i < this.list.length; i++) {
+          this.list[i].nodeType = 'exp'
+          a[i] = {}
+          a[i].left = a[i - 1]
+          a[i].nodeType = 'logic'
+          a[i].right = this.list[i]
           a[i].logicOpr = this.list[i].logicOpr
         }
       }
       // console.log(a)
-      this.ruleForm.rule = JSON.stringify(a[a.length-1])
+      this.ruleForm.rule = JSON.stringify(a[a.length - 1])
     },
-    TreeToList(data){
-       var root = data
-    var a=[]
-     const result = [];
-    function l(root){
-      const stack = [];
-      let last = null;
-      let current = root;
-      while (current || stack.length > 0) {
-        while (current) {
-          stack.push(current);
-          current = current.left;
-        }
-        current = stack[stack.length - 1];
-        if (!current.right || current.right == last) {
-          current = stack.pop();
-          result.push(current);
-          last = current;
-          current = null;
-        } else {
-          current = current.right;
+    TreeToList(data) {
+      var root = data
+      var a = []
+      const result = [];
+
+      function l(root) {
+        const stack = [];
+        let last = null;
+        let current = root;
+        while (current || stack.length > 0) {
+          while (current) {
+            stack.push(current);
+            current = current.left;
+          }
+          current = stack[stack.length - 1];
+          if (!current.right || current.right == last) {
+            current = stack.pop();
+            result.push(current);
+            last = current;
+            current = null;
+          } else {
+            current = current.right;
+          }
         }
+        // console.log(result)
+        return result;
+
       }
+
+      l(root)
       // console.log(result)
-      return result;
+      var i = 0
+      var c = 0
 
-    }
-    l(root)
-          // console.log(result)
-        var i=0
-        var c=0
-        function s(i){
-        if(i<result.length){
-          if(i==0){
+      function s(i) {
+        if (i < result.length) {
+          if (i == 0) {
             a.push(result[i])
-            i+=1
-            c+=1
+            i += 1
+            c += 1
           }
-          if(i%2==1){
+          if (i % 2 == 1) {
             a.push(result[i])
             // console.log(a[c])
-            a[c]['logicOpr'] = result[i+1].logicOpr
-            i+=2
-             c+=1
+            a[c]['logicOpr'] = result[i + 1].logicOpr
+            i += 2
+            c += 1
           }
           s(i)
         }
       }
+
       s(i)
       // console.log(a)
-      this.list= a
+      this.list = a
     },
-    getNode(node){
+    getNode(node) {
       // console.log(node)
     },
     normalizer(node) {
@@ -371,46 +382,46 @@ export default {
       // console.log(id)
       this.title = '新增数据权限'
       this.visible = true
-      this.ruleForm={}
-      this.list=[]
+      this.ruleForm = {}
+      this.list = []
     },
     handleEdit(row) {
       this.title = '编辑数据权限'
       this.visible = true
       // console.log(row)
 // console.log(JSON.parse(row.rule).hasOwnProperty('left'))
-if(row.rule){
-  if(JSON.parse(row.rule).hasOwnProperty('left')){
-        this.TreeToList(JSON.parse(row.rule))
-      }else{
-        this.list.push(JSON.parse(row.rule))
+      if (row.rule) {
+        if (JSON.parse(row.rule).hasOwnProperty('left')) {
+          this.TreeToList(JSON.parse(row.rule))
+        } else {
+          this.list.push(JSON.parse(row.rule))
+        }
       }
-}
-      this.ruleForm = { ...row }
-      
+      this.ruleForm = {...row}
+
     },
     close() {
       this.visible = false
       this.list = []
     },
-     handleCurrentChange(val) {
+    handleCurrentChange(val) {
       this.queryParams.current = val;
       this.getList();
     },
     getList() {
-      this.times+=1
+      this.times += 1
       this.loading = true
       this.queryParams.functionId = this.func.fun.id
       this.$api.getDataList(this.queryParams).then(response => {
         this.tableData = response.data
-    
-       this.$nextTick(()=>{
-       if(this.func.permission){
-          this.$refs.dataTable.toggleRowSelection(this.tableData.find(item=>{
-      		return this.func.permission.id == item.id;  
-   		}),true)
-        }
-       })
+
+        this.$nextTick(() => {
+          if (this.func.permission) {
+            this.$refs.dataTable.toggleRowSelection(this.tableData.find(item => {
+              return this.func.permission.id == item.id;
+            }), true)
+          }
+        })
         // console.log(response.data)
         this.loading = false
       }).catch(error => {
@@ -418,19 +429,19 @@ if(row.rule){
       })
     },
     getFunctionList() {
-      this.$api.getFunctionList().then(response => {
+      this.$api.getAllFunctionList().then(response => {
         this.functionList = response.data
       })
     },
     submit() {
       this.$refs.ruleForm.validate((valid) => {
         if (valid) {
-          this.ruleForm.functionId=this.fun.fun.id
+          this.ruleForm.functionId = this.fun.fun.id
           this.btnLoading = true
-          if(this.list.length>0){
+          if (this.list.length > 0) {
             this.ListToTree()
           }
-          
+
           if (this.ruleForm.id) {
             this.$api.editData(this.ruleForm).then(response => {
               this.$message.success('编辑成功')
@@ -441,7 +452,7 @@ if(row.rule){
               this.btnLoading = false
             })
           } else {
-            this.ruleForm.tenant=this.userinfo.tenantId
+            this.ruleForm.tenant = this.userinfo.tenantId
             this.$api.addData(this.ruleForm).then(response => {
               this.$message.success('新增成功')
               this.btnLoading = false
@@ -467,9 +478,9 @@ if(row.rule){
         this.$refs.dataTable.clearSelection();
         delete this.func.permission
         this.multipleSelection = {}
-        this.$emit('getPremissData', this.fun.fun.id, this.fun.fun.name,this.multipleSelection)
-        this.$api.deleteData({ id: row.id }).then(response => {
-          
+        this.$emit('getPremissData', this.fun.fun.id, this.fun.fun.name, this.multipleSelection)
+        this.$api.deleteData({id: row.id}).then(response => {
+
           this.$message.success('删除成功')
           this.loading = false
           this.getList()
@@ -482,8 +493,8 @@ if(row.rule){
 }
 </script>
 <style lang="scss">
-  .el-table__header-wrapper  .el-checkbox{
-	display:none
+.el-table__header-wrapper .el-checkbox {
+  display: none
 }
 
 </style>
@@ -492,18 +503,22 @@ if(row.rule){
 .admin-department {
 
 }
+
 .add {
   display: flex;
   justify-content: right;
   margin-bottom: 10px;
 }
+
 .listItem {
   margin: 10px 0;
 }
+
 .normal {
 
 }
+
 .hidden {
- opacity: 0;
+  opacity: 0;
 }
 </style>

+ 2 - 2
src/views/department/index.vue

@@ -264,12 +264,12 @@ export default {
       })
     },
     getTenantList(){
-				this.$api.getTenantList().then(response => {
+				this.$api.getAllTenantList().then(response => {
 						this.tenantList = response.data
 					})
 			},
     getRoleList(){
-        this.$api.getRoleList().then(response => {
+        this.$api.getAllRoleList().then(response => {
         this.roleList = response.data
         var a = this.userinfo.rList.findIndex((item) => {
 							return item.roleId == 1;

+ 2 - 2
src/views/function/index.vue

@@ -158,7 +158,7 @@ export default {
             });
           }, 200);
         } else {
-          this.$api.getApplyList().then(response => {
+          this.$api.getAllApplicationList().then(response => {
         this.applyList=response.data
       }).catch(error => {
         this.loading = false
@@ -172,7 +172,7 @@ export default {
       }
     },
     getApplyList(){
-     this.$api.getApplyList().then(response => {
+     this.$api.getAllApplicationList().then(response => {
         this.applyList=response.data
       }).catch(error => {
         this.loading = false

+ 3 - 3
src/views/group/index.vue

@@ -193,17 +193,17 @@ export default {
       this.getList();
     },
     getUserList(){
-      this.$api.getPersonnelList().then(response => {
+      this.$api.getAllPersonnelList().then(response => {
         this.userList = response.data 
       })
     },
     getTenantList(){
-				this.$api.getTenantList().then(response => {
+				this.$api.getAllTenantList().then(response => {
 						this.tenantList = response.data
 					})
 			},
     getRoleList(){
-      this.$api.getRoleList().then(response => {
+      this.$api.getAllRoleList().then(response => {
         this.roleList = response.data 
         var a = this.userinfo.rList.findIndex((item) => {
 							return item.roleId == 1;

+ 2 - 2
src/views/position/index.vue

@@ -230,12 +230,12 @@ export default {
       })
     },
     getTenantList(){
-				this.$api.getTenantList().then(response => {
+				this.$api.getAllTenantList().then(response => {
 						this.tenantList = response.data
 					})
 			},
     getRoleList(){
-      this.$api.getRoleList().then(response => {
+      this.$api.getAllRoleList().then(response => {
         this.roleList = response.data
         var a = this.userinfo.rList.findIndex((item) => {
 							return item.roleId == 1;

+ 327 - 178
src/views/role/index.vue

@@ -5,14 +5,14 @@
         <el-input v-model="queryParams.name" size="small" placeholder="请输入"></el-input>
       </el-form-item>
       <el-form-item class="tenant" v-if="userinfo.rList?(userinfo.rList.filter(item=>item.roleId==1))[0]:''">
-        		<el-select v-model="queryParams.tenant" @change="getList2" clearable placeholder="根据租户查询">
-					<el-option
-						v-for="item in tenantList"
-						:key="item.id"
-						:label="item.name"
-						:value="item.id">
-					</el-option>
-				</el-select>
+        <el-select v-model="queryParams.tenant" @change="getList2" clearable placeholder="根据租户查询">
+          <el-option
+              v-for="item in tenantList"
+              :key="item.id"
+              :label="item.name"
+              :value="item.id">
+          </el-option>
+        </el-select>
       </el-form-item>
       <el-form-item>
         <el-button type="" size="small" @click="getList2" v-if="$permission('/admin/role/check')">查询</el-button>
@@ -31,13 +31,13 @@
       </el-table-column>
       <el-table-column label="功能权限" align="center" show-overflow-tooltip>
         <template slot-scope="scope">
-          <span v-for="item in scope.row.permissionData" :key="item.id">{{item.functionName}}
+          <span v-for="item in scope.row.permissionData" :key="item.id">{{ item.functionName }}
           </span>
         </template>
       </el-table-column>
       <el-table-column label="数据权限" align="center" show-overflow-tooltip>
-         <template slot-scope="scope">
-          <span v-for="item in scope.row.dataList" :key="item.id">{{item.name}}
+        <template slot-scope="scope">
+          <span v-for="item in scope.row.dataList" :key="item.id">{{ item.name }}
           </span>
         </template>
       </el-table-column>
@@ -46,11 +46,15 @@
       <el-table-column label="操作" align="center" width="150">
         <template slot-scope="scope">
           <el-dropdown split-button type="primary" size="small">
-            <p v-if="$permission('/admin/role/modify')"  @click="handleEdit(scope.row)" >编辑</p>
+            <p v-if="$permission('/admin/role/modify')" @click="handleEdit(scope.row)">编辑</p>
             <p v-else :disabled="true">编辑</p>
             <el-dropdown-menu slot="dropdown" class="text-align_center">
               <!-- <el-dropdown-item @click.native="handleAdd(scope.row.id)">新增</el-dropdown-item> -->
-              <el-dropdown-item class="color-red" @click.native="handleDelete(scope.row)" divided v-if="$permission('/admin/role/delete')">删除</el-dropdown-item>
+              <el-dropdown-item class="color-red" @click.native="handleDelete(scope.row)" divided
+                                v-if="$permission('/admin/role/delete')">删除
+              </el-dropdown-item>
+              <el-dropdown-item @click.native="distributionPersonnel(scope.row)" divided>分配人员
+              </el-dropdown-item>
             </el-dropdown-menu>
           </el-dropdown>
         </template>
@@ -58,31 +62,36 @@
     </el-table>
     <!-- 分页 -->
     <div class="pagination">
-      <el-pagination :current-page.sync="queryParams.current" :page-size="queryParams.size" :total="total" @current-change="handleCurrentChange" layout="total, prev, pager, next, jumper" background></el-pagination>
+      <el-pagination :current-page.sync="queryParams.current" :page-size="queryParams.size" :total="total"
+                     @current-change="handleCurrentChange" layout="total, prev, pager, next, jumper"
+                     background></el-pagination>
     </div>
     <!-- 新增/编辑弹窗 -->
     <el-dialog :title="title" :visible.sync="visible" width="1100px" max-height="800" :before-close="close">
       <div style="height: 500px">
-        <el-form v-if="visible" :model="ruleForm" :rules="rules" ref="ruleForm" label-width="80px" label-position="left">
+        <el-form v-if="visible" :model="ruleForm" :rules="rules" ref="ruleForm" label-width="80px"
+                 label-position="left">
           <el-form-item label="所属租户" prop="tenant">
-                <el-select style="width:100%" v-model="ruleForm.tenant" :disabled="(userinfo.rList?!(userinfo.rList.filter(item=>item.roleId==1))[0]:'')||disabled" placeholder="请选择">
-										<el-option
-										v-for="item in tenantList"
-										:key="item.id"
-										:label="item.name"
-										:value="item.id">
-										</el-option>
-									</el-select> 
-            </el-form-item>
+            <el-select style="width:100%" v-model="ruleForm.tenant"
+                       :disabled="(userinfo.rList?!(userinfo.rList.filter(item=>item.roleId==1))[0]:'')||disabled"
+                       placeholder="请选择">
+              <el-option
+                  v-for="item in tenantList"
+                  :key="item.id"
+                  :label="item.name"
+                  :value="item.id">
+              </el-option>
+            </el-select>
+          </el-form-item>
           <el-form-item label="角色名称" prop="name">
             <el-input v-model="ruleForm.name" placeholder="请输入角色名称"></el-input>
           </el-form-item>
           <el-form-item label="权限" prop="function">
             <el-table
-              :row-key="functionList.id"
-              :data="functionList"
-              v-loading="loading"
-              max-height="330"
+                :row-key="functionList.id"
+                :data="functionList"
+                v-loading="loading"
+                max-height="330"
             >
               <el-table-column type="expand">
                 <template style="width:80%;" slot-scope="scope">
@@ -92,16 +101,17 @@
                         :data="scope.row.children"
                         row-key="id"
                         ref="multiTable"
-                        
+
                         @selection-change="handleSelectionChange"
-                      >
+                    >
 
                       <el-table-column label="功能名称" align="left" prop="name">
                         <template slot-scope="scope">
-                          <el-checkbox-group v-model="checkList" style="display:inline-block" @change="handleCheckedCitiesChange(scope.row)">
+                          <el-checkbox-group v-model="checkList" style="display:inline-block"
+                                             @change="handleCheckedCitiesChange(scope.row)">
                             <el-checkbox :label="scope.row.id" @change="getFunInfo(scope.row.id)"
                             >
-                              {{scope.row.name}}
+                              {{ scope.row.name }}
                             </el-checkbox>
                           </el-checkbox-group>
                         </template>
@@ -109,12 +119,19 @@
                       <el-table-column label="操作" align="center">
                         <template slot-scope="scope">
                           <span v-if="checkList.filter(item=>item==scope.row.id)[0]">
-                            <span v-if="(permissionData.filter(item=>item.functionId == scope.row.id))[0]">{{(permissionData.filter(item=>item.functionId == scope.row.id))[0].data.name}}</span>
-                            <span class="hov" style="margin-left: 10px" :underline="false" v-if="(permissionData.filter(item=>item.functionId == scope.row.id))[0].data.id" @click="editpremissVisibale(scope.row,(permissionData.filter(item=>item.functionId == scope.row.id))[0].data)">修改</span>
-                            <span class="hov" style="margin-left:10px" :underline="false" v-else-if="checkList.filter(item=>item==scope.row.id)[0]" @click="addpremissVisibale(scope.row)">添加</span>
+                            <span
+                                v-if="(permissionData.filter(item=>item.functionId == scope.row.id))[0]">{{
+                                (permissionData.filter(item => item.functionId == scope.row.id))[0].data.name
+                              }}</span>
+                            <span class="hov" style="margin-left: 10px" :underline="false"
+                                  v-if="(permissionData.filter(item=>item.functionId == scope.row.id))[0].data.id"
+                                  @click="editpremissVisibale(scope.row,(permissionData.filter(item=>item.functionId == scope.row.id))[0].data)">修改</span>
+                            <span class="hov" style="margin-left:10px" :underline="false"
+                                  v-else-if="checkList.filter(item=>item==scope.row.id)[0]"
+                                  @click="addpremissVisibale(scope.row)">添加</span>
                           </span>
-                          
-                          
+
+
                         </template>
                       </el-table-column>
                     </el-table>
@@ -123,35 +140,118 @@
               </el-table-column>
               <el-table-column label="应用名称" align="left">
                 <template slot-scope="scope">
-                  <span>{{scope.row.name}}</span>
+                  <span>{{ scope.row.name }}</span>
                 </template>
               </el-table-column>
             </el-table>
           </el-form-item>
           <el-form-item label="备注" prop="remark">
-            <el-input v-model="ruleForm.remark" placeholder="请输入备注" type="textarea" maxlength="100" show-word-limit></el-input>
+            <el-input v-model="ruleForm.remark" placeholder="请输入备注" type="textarea" maxlength="100"
+                      show-word-limit></el-input>
           </el-form-item>
         </el-form>
-        </div>
-        <div slot="footer" class="dialog-footer">
-          <el-button @click="close">取 消</el-button>
-          <el-button type="primary" @click="submit" :loading="btnLoading">确 定</el-button>
-        </div>
+      </div>
+      <div slot="footer" class="dialog-footer">
+        <el-button @click="close">取 消</el-button>
+        <el-button type="primary" @click="submit" :loading="btnLoading">确 定</el-button>
+      </div>
     </el-dialog>
     <!-- 新增中选中功能后的添加弹窗 -->
-    <el-dialog :title="permissTitle" :visible.sync="permissVisible" width="1100px" :before-close="premissClose" custom-class="permiss">
-    <div style="height: 500px;">
-      <DataPermission 
-      :fun="fun"
-      @getPremissData="getPremissData"
-      >
-      </DataPermission>
-    </div>
-    <div slot="footer" class="dialog-footer">
-      <el-button @click="premissClose">取 消</el-button>
-      <el-button type="primary" @click="premissSubmit" :loading="btnLoading">确 定</el-button>
-    </div>
+    <el-dialog :title="permissTitle" :visible.sync="permissVisible" width="1100px" :before-close="premissClose"
+               custom-class="permiss">
+      <div style="height: 500px;">
+        <DataPermission
+            :fun="fun"
+            @getPremissData="getPremissData"
+        >
+        </DataPermission>
+      </div>
+      <div slot="footer" class="dialog-footer">
+        <el-button @click="premissClose">取 消</el-button>
+        <el-button type="primary" @click="premissSubmit" :loading="btnLoading">确 定</el-button>
+      </div>
     </el-dialog>
+
+    <el-drawer
+        title="分配人员"
+        :visible.sync="drawer"
+        direction="rtl"
+        append-to-body
+        destroy-on-close
+        size="800px">
+      <el-container class="project-form">
+        <el-main class="project-form-main">
+
+          <el-form label-width="110px" label-position="left">
+            <el-form-item label="角色名称">
+              <el-input v-model="distributionParam.roleName" placeholder="请输入专题库名称" :disabled="true"></el-input>
+            </el-form-item>
+            <el-form-item label="人员名称">
+              <el-input placeholder="请输入人员名称" style="width: 50%"></el-input>
+            </el-form-item>
+            <el-form-item label="租户">
+              <el-select v-model="queryParams.tenant" @change="getList2" clearable placeholder="根据租户查询">
+                <el-option
+                    v-for="item in tenantList"
+                    :key="item.id"
+                    :label="item.name"
+                    :value="item.id">
+                </el-option>
+              </el-select>
+            </el-form-item>
+            <el-form-item label="部门">
+              <el-cascader
+                  placeholder="请选择部门"
+              >
+              </el-cascader>
+            </el-form-item>
+            <el-form-item label="职位">
+              <el-select
+                  filterable
+                  placeholder="请选择职位"
+              >
+                <el-option
+                    v-for="item in positionList"
+                    :key="item.name"
+                    :label="item.position"
+                    :value="item.id"
+                ></el-option>
+              </el-select>
+            </el-form-item>
+          </el-form>
+
+          <el-table v-loading="loading" :data="personnelTableData" @selection-change="handleSelectionChange">
+            <el-table-column type="selection" width="55">
+            </el-table-column>
+            <el-table-column label="人员名称" prop="name" align="center" show-overflow-tooltip>
+            </el-table-column>
+            <el-table-column label="所属部门" align="center" show-overflow-tooltip>
+              <template slot-scope="scope">
+                <span v-for="item in scope.row.positions">{{ item.departmentName }},
+                </span>
+              </template>
+            </el-table-column>
+            <el-table-column label="所属职位" align="center" show-overflow-tooltip>
+              <template slot-scope="scope">
+                <span v-for="item in scope.row.positions">{{ item.positionName }},
+                </span>
+              </template>
+            </el-table-column>
+            <el-table-column label="所属租户" prop="tenantName" align="center" show-overflow-tooltip></el-table-column>
+            <el-table-column label="备注" prop="remark" align="center" show-overflow-tooltip></el-table-column>
+          </el-table>
+          <div class="pagination">
+            <el-pagination :current-page.sync="queryParams.current" :page-size="queryParams.size" :total="total"
+                           @current-change="getPerList" layout="total, prev, pager, next, jumper"
+                           background></el-pagination>
+          </div>
+        </el-main>
+        <el-footer class="footer-common">
+          <el-button @click="addRolePersonnelBatch" type="primary" :loading="loading">确 定</el-button>
+          <el-button @click="closeDrawer">取 消</el-button>
+        </el-footer>
+      </el-container>
+    </el-drawer>
   </div>
 </template>
 
@@ -159,6 +259,7 @@
 import Treeselect from '@riophae/vue-treeselect'
 import '@riophae/vue-treeselect/dist/vue-treeselect.css'
 import DataPermission from '../dataPermission'
+
 export default {
   components: {
     Treeselect,
@@ -166,16 +267,21 @@ export default {
   },
   data() {
     return {
+      distributionParam: {},
+      drawer: false,
+      direction: 'rtl',
+      labelPosition: 'right',
+      personnelTableData: [],
       defaultProps: {
-          children: 'children',
-          label: 'name'
-        },
+        children: 'children',
+        label: 'name'
+      },
       fun: [],
       functionName: '',
       functionInfo: [],
-      pdata:'',
-      permissionData:[],
-      checkList:[],
+      pdata: '',
+      permissionData: [],
+      checkList: [],
       checked: true,
       visible: false,
       loading: false,
@@ -183,26 +289,26 @@ export default {
       permissVisible: false,
       total: 0,
       tableData: [],
-      tenantList:[],
+      tenantList: [],
       title: '',
       permissTitle: '',
-      showDataList:false,
-      functionList:[],
+      showDataList: false,
+      functionList: [],
       dataList: [],
       multipleSelection: [],
-      expands:[],
-      disabled:false,
+      expands: [],
+      disabled: false,
       queryParams: {
         size: 10,
         current: 1,
         name: ''
       },
       ruleForm: {
-        function:[]
+        function: []
       },
       rules: {
-        name: [{ required: true, message: '请输入部门名称', trigger: 'blur' },],
-        tenant:[{ required: true, message: "请选择", trigger: "change" }],
+        name: [{required: true, message: '请输入部门名称', trigger: 'blur'},],
+        tenant: [{required: true, message: "请选择", trigger: "change"}],
       },
     }
   },
@@ -229,117 +335,117 @@ export default {
   methods: {
     getPremissData(id, name, data) {
       // console.log(id, name, data)
-        this.pdata={
-          functionId:id,
-          data:data
+      this.pdata = {
+        functionId: id,
+        data: data
       }
       // console.log(this.pdata)
     },
     premissSubmit() {
-      if(this.permissionData.filter(item=>item.functionId == this.pdata.functionId)[0]){
+      if (this.permissionData.filter(item => item.functionId == this.pdata.functionId)[0]) {
         // console.log(this.pdata.data)
-        if(this.pdata.data){
-          this.permissionData.filter(item=>item.functionId == this.pdata.functionId)[0].data = this.pdata.data
-        }else{
+        if (this.pdata.data) {
+          this.permissionData.filter(item => item.functionId == this.pdata.functionId)[0].data = this.pdata.data
+        } else {
           //  console.log(this.permissionData)
-        //   var index = this.permissionData.findIndex((item) => {
-        //       return item.functionId == this.pdata.functionId;
-        //     });
-        //     // console.log(index)
-        // this.permissionData.splice(index,1)
-        this.permissionData.filter(item=>item.functionId == this.pdata.functionId)[0].data = {}
+          //   var index = this.permissionData.findIndex((item) => {
+          //       return item.functionId == this.pdata.functionId;
+          //     });
+          //     // console.log(index)
+          // this.permissionData.splice(index,1)
+          this.permissionData.filter(item => item.functionId == this.pdata.functionId)[0].data = {}
         }
-        
-      }else{
+
+      } else {
         if (this.pdata.data) {
-        this.permissionData.push(this.pdata)
-      } 
+          this.permissionData.push(this.pdata)
+        }
 
       }
 
-      this.permissVisible=false
+      this.permissVisible = false
     },
     getFunInfo(val) {
-      if(!this.checkList.includes(val)){
-          var index = this.permissionData.findIndex((item) => {
-              return item.functionId == val;
-          });
-        if (index!=-1) {
-          this.permissionData.splice(index,1)
+      if (!this.checkList.includes(val)) {
+        var index = this.permissionData.findIndex((item) => {
+          return item.functionId == val;
+        });
+        if (index != -1) {
+          this.permissionData.splice(index, 1)
         }
-      }else{
+      } else {
         this.permissionData.push({
-          functionId:val,
-          data:{}
+          functionId: val,
+          data: {}
         })
       }
     },
     handleCheckedCitiesChange(value) {
-        // console.log(value,this.checkList.includes(71),this.checkList.includes(value.id))
-      
-        if(this.checkList.includes(value.id)){
-          // console.log(value.hasOwnProperty('children'))
-          if(value.hasOwnProperty('children') == true){
-            this.addCheck(value.children)
-          }
-          if(value.path!==0){
-            var aa = value.path.split(",")
-            aa.splice(0,1)
-            // console.log(aa)
-            for(var j=0;j<aa.length;j++){
-              // console.log(Number(aa[j]))
-              // console.log(this.checkList.indexOf(Number(aa[j])))
-              if(this.checkList.indexOf(Number(aa[j]))>-1){
+      // console.log(value,this.checkList.includes(71),this.checkList.includes(value.id))
+
+      if (this.checkList.includes(value.id)) {
+        // console.log(value.hasOwnProperty('children'))
+        if (value.hasOwnProperty('children') == true) {
+          this.addCheck(value.children)
+        }
+        if (value.path !== 0) {
+          var aa = value.path.split(",")
+          aa.splice(0, 1)
+          // console.log(aa)
+          for (var j = 0; j < aa.length; j++) {
+            // console.log(Number(aa[j]))
+            // console.log(this.checkList.indexOf(Number(aa[j])))
+            if (this.checkList.indexOf(Number(aa[j])) > -1) {
 
-              }else{
-                this.checkList.push(Number(aa[j]))
-                this.getFunInfo(Number(aa[j]))
-              }
-              // this.checkList.push(Number(aa[j]))
-              // this.getFunInfo(Number(aa[j]))
+            } else {
+              this.checkList.push(Number(aa[j]))
+              this.getFunInfo(Number(aa[j]))
             }
+            // this.checkList.push(Number(aa[j]))
+            // this.getFunInfo(Number(aa[j]))
           }
-         
-        }else if(!this.checkList.includes(value.id)){
-          // console.log(this.checkList.includes(value.id),value.id)
-          if(value.hasOwnProperty('children') == true){
-            this.delCheck(value.children)
-          }
         }
-      
-        // console.log(this.checkList,this.permissionData)
-        // this.checkList
+
+      } else if (!this.checkList.includes(value.id)) {
+        // console.log(this.checkList.includes(value.id),value.id)
+        if (value.hasOwnProperty('children') == true) {
+          this.delCheck(value.children)
+        }
+      }
+
+      // console.log(this.checkList,this.permissionData)
+      // this.checkList
     },
-    delCheck(vals){
-      for(var i = 0 ; i<vals.length ; i++){
-           this.checkList.splice(this.checkList.indexOf(vals[i].id),1)
-           this.getFunInfo(vals[i].id)
-           if(vals[i].hasOwnProperty('children') == true){
-             this.delCheck(vals[i].children)
-           }
-         }
+    delCheck(vals) {
+      for (var i = 0; i < vals.length; i++) {
+        this.checkList.splice(this.checkList.indexOf(vals[i].id), 1)
+        this.getFunInfo(vals[i].id)
+        if (vals[i].hasOwnProperty('children') == true) {
+          this.delCheck(vals[i].children)
+        }
+      }
     },
-    addCheck(vals){
-        //  console.log(vals)
-         for(var i = 0 ; i<vals.length ; i++){
-          // console.log(this.checkList.indexOf(vals[i].id))
-          if(this.checkList.indexOf(vals[i].id)>-1){
+    addCheck(vals) {
+      //  console.log(vals)
+      for (var i = 0; i < vals.length; i++) {
+        // console.log(this.checkList.indexOf(vals[i].id))
+        if (this.checkList.indexOf(vals[i].id) > -1) {
 
-          }else{
-            this.checkList.push(vals[i].id)
-            this.getFunInfo(vals[i].id)
-          }
-           
-           if(vals[i].hasOwnProperty('children') == true){
-             this.addCheck(vals[i].children)
-           }
-         }
-         
-       } ,
+        } else {
+          this.checkList.push(vals[i].id)
+          this.getFunInfo(vals[i].id)
+        }
+
+        if (vals[i].hasOwnProperty('children') == true) {
+          this.addCheck(vals[i].children)
+        }
+      }
+
+    },
     handleSelectionChange(val) {
       // console.log(val,this.$refs.multipleTable.selection)
       this.multipleSelection = val;
-      // console.log(val)
+      console.log(val)
     },
     normalizer(node) {
       return {
@@ -350,36 +456,36 @@ export default {
     handleAdd() {
       this.title = '新增角色'
       this.visible = true
-      this.checkList=[]
-      this.ruleForm={
-        tenant:this.userinfo.tenantId,
-        function:[]
+      this.checkList = []
+      this.ruleForm = {
+        tenant: this.userinfo.tenantId,
+        function: []
       }
-      this.disabled=false
+      this.disabled = false
     },
     handleEdit(row) {
       // console.log(row)
-      this.disabled=true
+      this.disabled = true
       this.title = '编辑角色'
       this.visible = true
-      this.ruleForm = { ...row }
+      this.ruleForm = {...row}
       for (let i = 0; i < row.permissionData.length; i++) {
         this.checkList.push(row.permissionData[i].functionId)
       }
       this.permissionData = row.permissionData
-      if((this.userinfo.rList.filter(item=>item.roleId==1))[0]){
+      if ((this.userinfo.rList.filter(item => item.roleId == 1))[0]) {
         this.getFunctionList(row.tenant)
       }
     },
     addpremissVisibale(val) {
       this.permissTitle = '添加数据权限管理'
       this.permissVisible = true
-      this.fun = {fun:val}
+      this.fun = {fun: val}
     },
-     editpremissVisibale(val,permission) {
+    editpremissVisibale(val, permission) {
       this.permissTitle = '修改数据权限管理'
       this.permissVisible = true
-      this.fun = {fun:val,permission:permission}
+      this.fun = {fun: val, permission: permission}
     },
     close() {
       this.visible = false
@@ -387,30 +493,30 @@ export default {
       this.checkList = []
       this.getList()
     },
-  
+
     premissClose() {
       this.permissVisible = false
     },
-     handleCurrentChange(val) {
+    handleCurrentChange(val) {
       this.queryParams.current = val;
       this.getList();
     },
-    
+
     getFunctionList(tenant) {
-      this.$api.getFuncListByTypeIsShow({tenant:tenant}).then(response => {
+      this.$api.getFuncListByTypeIsShow({tenant: tenant}).then(response => {
         this.functionList = response.data
       })
     },
-    getTenantList(){
-				this.$api.getTenantList().then(response => {
-						this.tenantList = response.data
-					})
-			},
-      //根据条件查询
-      getList2(){
-        this.queryParams.current=1
-        this.getList()
-      },
+    getTenantList() {
+      this.$api.getAllTenantList().then(response => {
+        this.tenantList = response.data
+      })
+    },
+    //根据条件查询
+    getList2() {
+      this.queryParams.current = 1
+      this.getList()
+    },
     getList() {
       this.loading = true
       this.$api.getRoleList(this.queryParams).then(response => {
@@ -461,7 +567,7 @@ export default {
         type: 'warning'
       }).then(() => {
         this.loading = true
-        this.$api.deleteRole({ id: row.id }).then(response => {
+        this.$api.deleteRole({id: row.id}).then(response => {
           this.$message.success('删除成功')
           this.loading = false
           this.getList()
@@ -469,6 +575,39 @@ export default {
           this.loading = false
         })
       })
+    },
+    getPerList() {
+      this.loading = true
+      this.$api.getPersonnelList(this.queryParams).then(response => {
+        this.personnelTableData = response.data
+        this.total = response.pageColumn.total
+        this.loading = false
+      }).catch(error => {
+        this.loading = false
+      })
+    },
+    distributionPersonnel(row) {
+      this.drawer = true
+      this.distributionParam.roleName = row.name
+      this.distributionParam.description = row.remark
+      this.distributionParam.id = row.id
+      console.log(this.distributionParam)
+      this.getPerList()
+    },
+    closeDrawer() {
+      this.drawer = false
+      this.multipleSelection = ''
+      console.log(this.distributionParam)
+      console.log(this.multipleSelection)
+    },
+    addRolePersonnelBatch() {
+      this.distributionParam.personnelIds = []
+      this.multipleSelection.forEach(item => {
+        this.distributionParam.personnelIds.push(item.id)
+      })
+      console.log(this.distributionParam)
+      this.$api.addRolePersonnelBatch(this.distributionParam).then(response => {
+      })
     }
   }
 }
@@ -478,14 +617,24 @@ export default {
 .admin-role {
 
 }
+
 .permiss {
   height: 2000px;
 }
+
 .hov {
   margin: auto 10px;
   cursor: pointer;
 }
+
 .hov:hover {
   color: #409EFF;
 }
+
+.project-form {
+  .project-form-main {
+    background: #fff;
+    padding: 20px;
+  }
+}
 </style>

+ 5 - 5
src/views/user/index.vue

@@ -678,27 +678,27 @@ import ret from "bluebird/js/release/util";
 				this.showvisible = false;
 			},
 			getDepartment() {
-				this.$api.getDepartmentList().then((response) => {
+				this.$api.getAllDepartmentList().then((response) => {
 					this.departmentList = response.data;
 				});
 			},
 			getPositionList() {
-				this.$api.getPositionList().then((response) => {
+				this.$api.getAllPositionList().then((response) => {
 					this.positionList = response.data;
 				});
 			},
 			getGroupList() {
-				this.$api.getGroupList().then((response) => {
+				this.$api.getAllUserGroupList().then((response) => {
 					this.groupList = response.data;
 				});
 			},
 			getTenantList(){
-				this.$api.getTenantList().then(response => {
+				this.$api.getAllTenantList().then(response => {
 						this.tenantList = response.data
 					})
 			},
 			getRoleList() {
-				this.$api.getRoleList().then((response) => {
+				this.$api.getAllRoleList().then((response) => {
 					this.roleList = response.data;
 					var a = this.userinfo.rList.findIndex((item) => {
 							return item.roleId == 1;