tianyabing %!s(int64=2) %!d(string=hai) anos
pai
achega
502e4e376c

+ 7 - 1
src/api/role/role.js

@@ -63,7 +63,12 @@ const removeMember = (params) => {
 
 // 批量移除成员
 const batchRemoveMember = (params) => {
-  return delform('/role/member', params)
+  return del('/role/batch_delete_role', params)
+}
+
+// 批量修改用户角色
+const batchUpdUserRole = (param) => {
+  return put('/users/batch_modify_user_role', param);
 }
 
 // 获取权限信息
@@ -81,5 +86,6 @@ export {
     removeMember,
     batchRemoveMember,
     updateRoleInfo,
+    batchUpdUserRole,
 
 }

+ 31 - 26
src/views/permissionManagement/decisiongroup/permissionDetail.vue

@@ -13,11 +13,11 @@
                     <el-tab-pane label="移动端" name="mobile"></el-tab-pane>
                 </el-tabs>
                 <el-collapse v-model="activeNames" @change="handleChange">
-                    <el-collapse-item name="1">
+                    <el-collapse-item name="1" v-show="showPc">
                         <template slot="title">
                             <i :class="isActive('1') !== -1 ? 'el-icon-caret-bottom' : 'el-icon-caret-right'"></i>前端
                         </template>
-                        <el-row align="left" :gutter="8" style="text-align: left;box-sizing: border-box;padding: 0 30px;height: 200px;overflow-y: auto">
+                        <el-row align="left" :gutter="8" style="text-align: left;box-sizing: border-box;padding: 0 30px;height: 160px;overflow-y: auto">
                             <el-col :span="8" v-for="(item,index) in frontPermissions" :key="item.id">
                                 <el-tree :ref="'tree'" :default-checked-keys="checkedKeys" :data="[item]" :props="defaultProps" show-checkbox node-key="id"
                                          @node-click="handleNodeClick">
@@ -25,28 +25,17 @@
                             </el-col>
                         </el-row>
                     </el-collapse-item>
-                    <el-collapse-item name="2">
+                    <el-collapse-item name="2" v-show="showPc">
                         <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-row align="left" :gutter="8" style="text-align: left;box-sizing: border-box;padding: 0 30px;height: 160px;overflow-y: auto">
+                            <el-col :span="8" v-for="(item,index) in adminPermissions" :key="item.id">
+                                <el-tree :ref="'tree'" :default-checked-keys="checkedKeys" :data="[item]" :props="defaultProps" show-checkbox node-key="id"
+                                         @node-click="handleNodeClick">
+                                </el-tree>
+                            </el-col>
+                        </el-row>
                     </el-collapse-item>
                 </el-collapse>
             </div>
@@ -75,12 +64,14 @@ export default {
             activeName: 'pc',
             activeNames: ['1', '2'],
             frontPermissions: [],
-
+            adminPermissions: [],
 
             defaultProps: {
                 children: 'children',
                 label: 'name'
-            }
+            },
+
+            showPc: true,
         }
     },
     watch: {
@@ -100,8 +91,9 @@ export default {
         })
     },
     methods: {
-        handleClick() {
-            //
+        handleClick(tab, event) {
+            let name = tab.name;
+            this.showPc = name=='pc'
         },
         isActive(data) {
             return this.activeNames.indexOf(data);
@@ -120,9 +112,22 @@ export default {
             })
         },
         getPermissions() {
+            this.frontPermissions = [];
+            this.adminPermissions = [];
             getPermissionList().then(res=>{
                 let data = res.data;
-                this.frontPermissions = data.data
+                if (data.code==0) {
+                    data.data.forEach(item=>{
+                        if (item.menu_type=='A') {
+                            this.adminPermissions.push(item)
+                        } else if (item.menu_type=='C') {
+                            this.frontPermissions.push(item)
+                        }
+                    })
+                } else {
+                    this.$message.error(data.message)
+                }
+
             })
         },
         getRoleInfo() {

+ 27 - 2
src/views/permissionManagement/decisiongroup/rolemembersList.vue

@@ -47,7 +47,12 @@
                 :before-close="handleClose"
                 center
         >
-            <RoleUserAdd/>
+            <RoleUserAdd ref="roleAdd"/>
+            <template>
+                <div style="text-align: right;height: 40px">
+                    <el-button type="primary" style="height: 24px;padding: 0 20px" @click="confirmAdd">确定</el-button>
+                </div>
+            </template>
         </el-dialog>
     </div>
 </template>
@@ -56,7 +61,7 @@
 import checkbox from '@/components/Checkbox/index'
 import page from '@/components/pagination/index'
 import RoleUserAdd from "@/views/permissionManagement/messageDialog/roleUserAdd.vue";
-import {batchRemoveMember, getRoleMember, removeMember} from "@/api/role/role";
+import {batchRemoveMember, batchUpdUserRole, getRoleMember, removeMember} from "@/api/role/role";
 
 export default {
     components: {checkbox, page, RoleUserAdd,},
@@ -124,6 +129,25 @@ export default {
         handleClick() {
             //
         },
+        confirmAdd() {
+            if (this.$refs.roleAdd.userIds && this.$refs.roleAdd.userIds.length<1) {
+                this.$message.warning('请选择用户后操作')
+                return;
+            }
+            let params = {
+                users_id: '['+this.$refs.roleAdd.userIds.join(',')+']',
+                role_id: this.item.id
+            }
+            batchUpdUserRole(params).then(res=>{
+                let data = res.data;
+                if (data.code==0) {
+                    this.roleAddMemberVisible = false;
+                    this.$message.success('添加成功')
+                } else {
+                    this.$message.error(data.message)
+                }
+            })
+        },
         getTableData(page) {
             getRoleMember(this.item.id).then(res => {
                 let data = res.data;
@@ -148,6 +172,7 @@ export default {
                 ids.push(item.id)
             })
             let params = {
+                role_ids: '[' + this.item.id + ']',
                 users_id: '[' + ids.join(',') + ']'
             }
             let app = this;

+ 10 - 1
src/views/permissionManagement/messageDialog/roleUserAdd.vue

@@ -12,7 +12,7 @@
           </el-tree>
       </div>
       <div class="right">
-          <el-table :data="tableData">
+          <el-table :data="tableData" @selection-change="handleSelectChange">
               <el-table-column type="selection" width="50"></el-table-column>
               <el-table-column prop="user_name" label="用户名"></el-table-column>
               <el-table-column prop="phone" label="手机号"></el-table-column>
@@ -32,6 +32,7 @@ export default {
         return {
             filterText: '',
             tableData: [],
+            userIds: [],
             data: [{
                 id:2,
                 label: '北京电信规划设计院',
@@ -70,6 +71,14 @@ export default {
                     this.$message.error(data.message);
                 }
             })
+        },
+        handleSelectChange(val) {
+            this.userIds = [];
+            if (val) {
+                val.forEach(item=>{
+                    this.userIds.push(item.id)
+                })
+            }
         }
     }
 }

+ 20 - 2
src/views/userManagement/groupManagement/forms/corporationdetailEdit.vue

@@ -3,8 +3,17 @@
         <departmentNew ref="departmentNew"></departmentNew>
         <p class="info">企业详情</p>
         <div class="company-banner" style="height: 100px;overflow-y: hidden;position: relative">
-            <el-image style="height: 100px" :src="require('@/assets/background/banner.png')"></el-image>
-            <el-button type="primary" class="company-alter">更换</el-button>
+            <el-image style="height: 100px" :src="companyImage"></el-image>
+
+            <el-button type="primary" class="company-alter">
+                <el-upload
+                    style=""
+                    ref="upload"
+                    action=""
+                    :show-file-list="false"
+                    :on-change="handleUploadChange"
+                    :auto-upload="false">更换</el-upload>
+            </el-button>
         </div>
         <el-form :model="form" label-position="right" label-width="200px">
             <el-form-item label="公司全称:">
@@ -74,6 +83,7 @@ export default {
     data() {
         return {
             province,
+            companyImage: require('@/assets/background/banner.png'),
             show: false,
             disabled: true,
             registered_address: {
@@ -164,6 +174,14 @@ export default {
         addDepartment() {
             this.$refs.departmentNew.dialogVisible = true;
         },
+        handleUploadChange(file, fileList) {
+            let reader = new FileReader();
+            reader.readAsDataURL(file.raw);
+            let app = this;
+            reader.onload = function (e) {
+                app.companyImage = this.result;
+            }
+        },
         getCompanyInfo() {
             getCompanyInfo(this.item.id).then(res => {
                 let data = res.data;

+ 4 - 1
src/views/userManagement/groupManagement/index.vue

@@ -15,7 +15,7 @@
             </el-tree>
             <el-button class="addDepartment" @click="addDepartment" style="color: #fff; background: #3da0d6">
                 <i class="el-icon-s-order" style="padding-right: 4px"></i>
-                新建企业/部门
+                新建企业
             </el-button>
         </div>
         <div class="right-pane">
@@ -187,6 +187,9 @@ export default {
             .el-image {
                 vertical-align: middle;
             }
+            /deep/ .el-image__inner {
+                vertical-align: baseline;
+            }
 
             /deep/.el-tree-node__content {
                 align-items: center;

+ 5 - 5
src/views/userManagement/groupManagement/messageDialog/corporationAdd.vue

@@ -4,10 +4,10 @@
                    append-to-body>
             <el-divider></el-divider>
 
-            <el-radio-group v-model="addType" style="margin: 20px 200px">
-                <el-radio label="1">企业</el-radio>
-                <el-radio label="2">部门</el-radio>
-            </el-radio-group>
+            <!--<el-radio-group v-model="addType" style="margin: 20px 200px">-->
+            <!--    <el-radio label="1">企业</el-radio>-->
+            <!--    <el-radio label="2">部门</el-radio>-->
+            <!--</el-radio-group>-->
 
             <el-form v-if="show.company" :model="companyForm" :rules="formRules" label-position="right" label-width="200px">
                 <el-form-item label="公司全称:" prop="company_name">
@@ -18,7 +18,7 @@
                 </el-form-item>
                 <el-form-item label="上级公司:">
                     <el-select v-model="companyForm.parentCorporation" placeholder="请选择上级公司">
-                        <el-option v-for="item in superiorOptions" :value="item.value" :key="item.value"
+                        <el-option v-for="item in companyList" :value="item.value" :key="item.value"
                                    :label="item.label"></el-option>
                     </el-select>
                 </el-form-item>

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

@@ -98,7 +98,10 @@ export default {
             getCompanyList('', this.paginationData.currentPage, this.paginationData.pageSize).then(res=>{
                 let data = res.data;
                 if (data.code == '0') {
+                    this.paginationData.total = data.total
                     this.tableData = data.data
+                } else {
+                    this.$message.error(data.message);
                 }
             })
         },

+ 14 - 14
vue.config.js

@@ -18,20 +18,20 @@ module.exports = defineConfig({
   devServer: {
     port: 8080,
     proxy: {
-      // '/api':{
-      //     target:'http://121.43.55.7:5000',
-      //     changeOrigin:true,
-      //     pathRewrite:{
-      //       '^/api':''
-      //     }
-      // }
-      '/api': {
-        target: 'http://192.168.3.32:5000',
-        changeOrigin: true,
-        pathRewrite: {
-          '^/api': ''
-        }
-      }
+       '/api':{
+           target:'http://121.43.55.7:5000',
+           changeOrigin:true,
+           pathRewrite:{
+             '^/api':''
+           }
+       }
+      //'/api': {
+      //  target: 'http://192.168.3.32:5000',
+      //  changeOrigin: true,
+      //  pathRewrite: {
+      //    '^/api': ''
+      //  }
+      //}
     }
   }
 })