2
3
huahaiyan преди 6 години
родител
ревизия
8e8d5de9fc
променени са 2 файла, в които са добавени 89 реда и са изтрити 35 реда
  1. 50 15
      src/dashoo.cn/backend/api/controllers/casbin/role.go
  2. 39 20
      src/dashoo.cn/frontend_web/src/pages/system/userrole.vue

+ 50 - 15
src/dashoo.cn/backend/api/controllers/casbin/role.go

@@ -6,12 +6,13 @@ import (
 	"strconv"
 	"strings"
 
+	"dashoo.cn/backend/api/business/organize"
 	"dashoo.cn/backend/api/business/role"
 
 	. "dashoo.cn/backend/api/controllers"
 	"dashoo.cn/business2/district"
 	"dashoo.cn/business2/module"
-	"dashoo.cn/business2/organize"
+	commonorgnize "dashoo.cn/business2/organize"
 	"dashoo.cn/business2/permission"
 	"dashoo.cn/business2/userRole"
 	"dashoo.cn/utils"
@@ -32,8 +33,8 @@ type RolePerAjaxModel struct {
 	Selecteoperation []permission.Base_Permissionstrtree
 }
 type OrganizeAjaxModel struct {
-	Organize         []organize.Base_Organizetree
-	SelectedOrganize []organize.Base_Organizetree
+	Organize         []commonorgnize.Base_Organizetree
+	SelectedOrganize []commonorgnize.Base_Organizetree
 }
 type DistrictAjaxModel struct {
 	District         []district.Base_Districttree
@@ -56,10 +57,10 @@ func (this *RoleController) RoleList() {
 	svrUser := userRole.GetUserService(utils.DBE)
 	rids := svrUser.GetUserRoleIds(this.User.Id)
 	permisvc := permission.GetPermissionService(utils.DBE)
-	if permisvc.IsAdmin(this.User.Id) == false{
+	if permisvc.IsAdmin(this.User.Id) == false {
 		var roleofrole string
-		for i:=0; i<len(rids); i++ {
-			roleofrole += permisvc.GetManRoleForRole(rids[i])+ ","
+		for i := 0; i < len(rids); i++ {
+			roleofrole += permisvc.GetManRoleForRole(rids[i]) + ","
 		}
 		roleofrole = strings.Trim(roleofrole, ",")
 		where = where + " and Id in (" + roleofrole + ")"
@@ -76,7 +77,7 @@ func (this *RoleController) RoleList() {
 // @Description 获取角色列表
 // @Success 200 {object} controllers.Request
 // @router /getAdminPermi [get]
-func (this *RoleController) GetAdminPermision(){
+func (this *RoleController) GetAdminPermision() {
 	var datainfo ErrorDataInfo
 	//判断超级管理员和有查看所有数据权限的用户
 	svcPerm := permission.GetPermissionService(utils.DBE)
@@ -86,13 +87,43 @@ func (this *RoleController) GetAdminPermision(){
 		this.Data["json"] = &datainfo
 		this.ServeJSON()
 		return
-	}else {
+	} else {
 		datainfo.Code = 0
 		this.Data["json"] = &datainfo
 		this.ServeJSON()
 		return
 	}
 }
+
+// @Title 部门表
+// @Description
+// @Success 200 {object} business.device.DeviceChannels
+// @router /orgalllist [get]
+func (this *RoleController) OrgAllList() {
+	svc := organize.GetOrganizeService(utils.DBE)
+
+	var user userRole.Base_User
+	svc.GetEntityById(this.User.Id, &user)
+	ids := ""
+	//判断超级管理员和有查看所有数据权限的用户
+	svcPerm := permission.GetPermissionService(utils.DBE)
+	isauth := svcPerm.IsAuthorized(this.User.Id, "oil_supplier.marketAccess.AllRecord")
+	if svcPerm.IsAdmin(this.User.Id) || isauth {
+		ids = svc.GetAllChildById("100000000")
+	} else {
+		unitId := svc.GetMyUnitDepartmentId(this.User.DepartmentId)
+		ids = svc.GetAllChildById(unitId)
+	}
+	where := " and Id in ( " + ids + " )"
+
+	list := make([]organize.Base_Organize, 0)
+	svc.GetEntities(&list, where)
+	var datainfo DataInfo
+	datainfo.Items = list
+	this.Data["json"] = &datainfo
+	this.ServeJSON()
+}
+
 // @Title 根据部门获取人员
 // @Description 根据部门获取人员
 // @router /getauditerbydept/:deptId [get]
@@ -107,10 +138,10 @@ func (this *RoleController) GetAuditerByDept() {
 	svcPerm := permission.GetPermissionService(utils.DBE)
 	isauth := svcPerm.IsAuthorized(this.User.Id, "oil_supplier.marketAccess.AllRecord")
 	if !svcPerm.IsAdmin(this.User.Id) && !isauth {
-		depids := organsvc.GetChildByTopId(Id)
+		depids := organsvc.GetAllChildById(Id)
 		where += " and DepartmentId in (" + depids + ")"
-	}else {
-		depids := organsvc.GetChildByTopId("0")
+	} else {
+		depids := organsvc.GetAllChildById("100000000")
 		where += " and DepartmentId in (" + depids + ")"
 	}
 	where += " and IsCompanyUser = 0"
@@ -155,7 +186,7 @@ func (this *RoleController) RoleAllList() {
 func (this *RoleController) GetManRole() {
 	userid := this.Ctx.Input.Param(":id")
 	svc := permission.GetPermissionService(utils.DBE)
-	roleofrole := svc.GetManRoleForRole("rid_"+userid)
+	roleofrole := svc.GetManRoleForRole("rid_" + userid)
 	roleid := strings.Split(roleofrole, ",")
 	this.Data["json"] = &roleid
 	this.ServeJSON()
@@ -516,7 +547,7 @@ func (this *RoleController) GetUsersForRole() {
 	svcPerm := permission.GetPermissionService(utils.DBE)
 	isauth := svcPerm.IsAuthorized(this.User.Id, "oil_supplier.marketAccess.AllRecord")
 	if !svcPerm.IsAdmin(this.User.Id) && !isauth {
-		where += " and Unit = '" + this.User.Uint+"'"
+		where += " and Unit = '" + this.User.Uint + "'"
 	}
 	total, users := svc.GetUserListForRole(page.CurrentPage, page.Size, roleid, "Id", where)
 
@@ -565,9 +596,13 @@ func (this *RoleController) UserRoleAddUser() {
 func (this *RoleController) UserDelete() {
 	inputstr := this.Ctx.Input.Param(":id")
 	serial := strings.Split(inputstr, "_")
-	id := serial[0]
+	userids := strings.Split(serial[0], ",")
 	roleid := serial[1]
-	utils.RBAC.DeleteRoleForUserInDomain("uid_"+id, "rid_"+roleid, utils.DOMAIN)
+	for i := 0; i < len(userids); i++ {
+		if userids[i] != "0" && userids[i] != "" {
+			utils.RBAC.DeleteRoleForUserInDomain("uid_"+userids[i], "rid_"+roleid, utils.DOMAIN)
+		}
+	}
 	var errinfo ErrorInfo
 	var err error = nil
 	if err == nil {

+ 39 - 20
src/dashoo.cn/frontend_web/src/pages/system/userrole.vue

@@ -10,7 +10,8 @@
           <el-breadcrumb-item :to="{ path: '/system/userrole' }">角色管理</el-breadcrumb-item>
         </el-breadcrumb>
         <span style="float: right;">
-          <el-button size="mini" type="primary" style="margin-left:10px; margin-top: -4px;" @click="opendialog(null)">添加
+          <el-button size="mini" type="primary" v-if="adminpermission == 1" style="margin-left:10px; margin-top: -4px;"
+            @click="opendialog(null)">添加
           </el-button>
         </span>
         <el-form ref="form" :inline="true" style="float: right; margin-top: -10px">
@@ -31,10 +32,11 @@
       <el-table :data="list" size="mini" tooltip-effect="dark" border>
         <el-table-column label="操作" min-width="150px" align="center" fixed="right">
           <template slot-scope="scope">
-            <el-button size="small" @click="opendialog(scope.row)" type="text" icon="el-icon-edit" title="编辑">
+            <el-button size="small" @click="opendialog(scope.row)" v-if="adminpermission == 1" type="text"
+              icon="el-icon-edit" title="编辑">
             </el-button>
-            <el-button size="small" type="text" style="margin-left:6px" icon="el-icon-delete" title="删除"
-              @click="deleteroledata(scope.row)"></el-button>
+            <el-button size="small" type="text" v-if="adminpermission == 1" style="margin-left:6px"
+              icon="el-icon-delete" title="删除" @click="deleteroledata(scope.row)"></el-button>
             <el-button size="small" type="text" style="margin-left:6px" title="用户列表" @click="showUserList(scope.row)"><i
                 class="icon icon-user"></i></el-button>
             <el-button size="small" type="text" v-if="adminpermission == 1" style="margin-left:6px" title="菜单权限"
@@ -84,24 +86,21 @@
     <!-- 用户列表 -->
     <el-dialog title="包含用户列表" :visible.sync="userDialogVisible">
       <el-button type="primary" size="mini" style="float: right; margin-top: -10px;margin-left :5px"
-        @click="deleteuserdataall()">删除所有关联用户</el-button>
-      <!-- <el-button type="primary" size="mini" style="float: right; margin-top: -10px" v-if="adminpermission == 0"
-        @click="roleadduser()">添加
-      </el-button> -->
-      <el-button type="primary" size="mini" style="float: right; margin-top: -10px"
-        @click="roleadduseradmin()">添加
+        @click="deleteuserdata()">删除</el-button>
+      <el-button type="primary" size="mini" style="float: right; margin-top: -10px" @click="roleadduseradmin()">添加
       </el-button>
       <br />
-      <el-table :data="userList" border>
-        <el-table-column label="操作" align="center">
+      <el-table :data="userList" @selection-change="handleUserSelecChange" border>
+        <!-- <el-table-column label="操作" align="center">
           <template slot-scope="scope">
             <el-button size="small" type="text" style="margin-left:3px" icon="el-icon-delete" title="删除"
               @click="deleteuserdata(scope.row)"></el-button>
           </template>
-        </el-table-column>
+        </el-table-column> -->
+        <el-table-column type="selection" width="55"></el-table-column>
         <el-table-column prop="Username" align="center" label="账号" show-overflow-tooltip></el-table-column>
         <el-table-column prop="Realname" align="center" label="用户名"></el-table-column>
-        <el-table-column prop="Unit" align="center" label="二级单位名称"></el-table-column>
+        <el-table-column prop="Unit" align="center" label="单位名称"></el-table-column>
         <el-table-column prop="Departmentname" align="center" label="所属组织"></el-table-column>
         <el-table-column prop="Telephone" align="center" label="手机" show-overflow-tooltip></el-table-column>
         <el-table-column label="座机" align="center" prop="Mobile" show-overflow-tooltip></el-table-column>
@@ -295,6 +294,7 @@
         rolelistcheckall: [],
         mustrolelist: [],
         //添加用户
+        selectuser: [],
         addUserShow: false,
         partuserlist: [],
         OfficerList: [],
@@ -475,7 +475,7 @@
         let params = {
           IsInnerOrganize: 1,
         }
-        _this.$axios.get('organizes/orgalllist', {
+        _this.$axios.get('role/orgalllist', {
             params
           })
           .then(res => {
@@ -491,7 +491,7 @@
         this.$axios.get('role/getauditerbydept/' + data.id, ).then(res => {
           if (res.data.code === 1) {
             this.userOptions = res.data.item
-            console.log("--this.userOptions1---",this.userOptions)
+            console.log("--this.userOptions1---", this.userOptions)
             //this.adminuserlistfilter()
           }
         }).catch(err => {
@@ -518,14 +518,14 @@
           }
           this.seluserOptions = arr
           this.userOptions = this.seluserOptions
-          console.log("--this.userOptions2---",this.userOptions)
+          console.log("--this.userOptions2---", this.userOptions)
         } catch (e) {
           console.log(e)
         }
       },
       roleadduseradmin() {
         this.getorgtreelist()
-        this.selectedOptions=[]
+        this.selectedOptions = []
         this.adminadduser = true
       },
       roleadduser() {
@@ -556,6 +556,9 @@
           console.log(e)
         }
       },
+      handleUserSelecChange(val) {
+        this.selectuser = val
+      },
       handleSelectionChange(val) {
         this.selectedOptions = val
       },
@@ -758,12 +761,28 @@
 
       deleteuserdata(val) {
         let _this = this
+        let userselect = []
+        console.log("--this.selectuser---", _this.selectuser)
+        if (_this.selectuser) {
+          for (let i = 0; i < _this.selectuser.length; i++) {
+            userselect.push(_this.selectuser[i].Id)
+          }
+          console.log("--userselect--",userselect)
+        } else {
+          _this.$message({
+            type: 'warning',
+            message: "请先选择用户!再点击删除"
+          })
+          return
+        }
+        let useridlist = userselect.join(',');
+        let useridliststring = useridlist.toString()
         _this.$confirm('此操作将永久删除该数据, 是否继续?', '提示', {
           confirmButtonText: '确定',
           cancelButtonText: '取消',
           type: 'warning'
         }).then(() => {
-          _this.$axios.delete('role/deleteuser/' + val.Id + '_' + this.selectRoleId, null)
+          _this.$axios.delete('role/deleteuser/' + useridliststring + '_' + this.selectRoleId, null)
             .then(res => {
               // response
               if (res.data.code === 0) {
@@ -786,7 +805,7 @@
 
       deleteuserdataall() {
         let _this = this
-        _this.$confirm('此操作将永久删除所有数据, 是否继续?', '提示', {
+        _this.$confirm('此操作将永久删除数据, 是否继续?', '提示', {
           confirmButtonText: '确定',
           cancelButtonText: '取消',
           type: 'warning'