diff --git a/basic-interface/src/main/java/ink/wgink/interfaces/department/IDepartmentUserBaseService.java b/basic-interface/src/main/java/ink/wgink/interfaces/department/IDepartmentUserBaseService.java index 529e9583..77af4a2e 100644 --- a/basic-interface/src/main/java/ink/wgink/interfaces/department/IDepartmentUserBaseService.java +++ b/basic-interface/src/main/java/ink/wgink/interfaces/department/IDepartmentUserBaseService.java @@ -1,6 +1,7 @@ package ink.wgink.interfaces.department; import ink.wgink.pojo.ListPage; +import ink.wgink.pojo.dtos.department.DepartmentContainUserDTO; import ink.wgink.pojo.dtos.department.DepartmentDTO; import ink.wgink.pojo.dtos.department.DepartmentUserDTO; import ink.wgink.pojo.dtos.user.UserDTO; @@ -210,4 +211,12 @@ public interface IDepartmentUserBaseService { * @return */ SuccessResultList> listPageUserByExcludeDepartmentId(List excludeDepartmentIds, ListPage page); + + /** + * 获取组织详情(包含本级用户列表与下级部门列表) + * + * @param departmentId 部门ID + * @return + */ + DepartmentContainUserDTO getDepartmentContainUserAndSubByDepartmentId(String departmentId); } diff --git a/basic-pojo/src/main/java/ink/wgink/pojo/dtos/department/DepartmentContainUserDTO.java b/basic-pojo/src/main/java/ink/wgink/pojo/dtos/department/DepartmentContainUserDTO.java new file mode 100644 index 00000000..7062d583 --- /dev/null +++ b/basic-pojo/src/main/java/ink/wgink/pojo/dtos/department/DepartmentContainUserDTO.java @@ -0,0 +1,37 @@ +package ink.wgink.pojo.dtos.department; + +import ink.wgink.pojo.dtos.user.UserDTO; +import io.swagger.annotations.ApiModel; + +import java.util.ArrayList; +import java.util.List; + +/** + * @ClassName: DepartmentWithSubListAndUserListDTO + * @Description: 部门类带下级用户列表 + * @Author: wanggeng + * @Date: 2022/5/7 14:40 + * @Version: 1.0 + */ +@ApiModel +public class DepartmentContainUserDTO extends DepartmentDTO { + + private List users; + + public List getUsers() { + return users == null ? new ArrayList() : users; + } + + public void setUsers(List users) { + this.users = users; + } + + @Override + public String toString() { + final StringBuilder sb = new StringBuilder("{"); + sb.append("\"users\":") + .append(users); + sb.append('}'); + return sb.toString(); + } +} diff --git a/login-oauth2-client/src/main/java/ink/wgink/login/oauth2/client/remote/department/IDepartmentUserRemoteService.java b/login-oauth2-client/src/main/java/ink/wgink/login/oauth2/client/remote/department/IDepartmentUserRemoteService.java index b3efb6b0..df14d276 100644 --- a/login-oauth2-client/src/main/java/ink/wgink/login/oauth2/client/remote/department/IDepartmentUserRemoteService.java +++ b/login-oauth2-client/src/main/java/ink/wgink/login/oauth2/client/remote/department/IDepartmentUserRemoteService.java @@ -4,6 +4,7 @@ import ink.wgink.annotation.rpc.rest.RemoteService; import ink.wgink.annotation.rpc.rest.method.RemoteGetMethod; import ink.wgink.annotation.rpc.rest.method.RemotePostMethod; import ink.wgink.annotation.rpc.rest.params.*; +import ink.wgink.pojo.dtos.department.DepartmentContainUserDTO; import ink.wgink.pojo.dtos.department.DepartmentDTO; import ink.wgink.pojo.dtos.department.DepartmentUserDTO; import ink.wgink.pojo.dtos.user.UserDTO; @@ -85,4 +86,8 @@ public interface IDepartmentUserRemoteService { @RemotePostMethod("/listpage-user/exclude-department-ids") SuccessResultList> listPageUserByExcludeDepartmentIds(@RemoteServerParams String userCenter, @RemoteQueryParams("access_token") String accessToken, @RemoteJsonBodyParams IdsVO idsVO, @RemoteQueryParams("page") int page, @RemoteQueryParams("rows") int rows, @RemoteQueryParamsMap Map params); + + @RemotePostMethod("/get-department-contain-user-and-sub/department-id/{departmentId}") + DepartmentContainUserDTO getDepartmentContainUserAndSubByDepartmentId(@RemoteServerParams String userCenter, @RemoteQueryParams("access_token") String accessToken, @RemotePathParams("departmentId") String departmentId); + } diff --git a/login-oauth2-client/src/main/java/ink/wgink/login/oauth2/client/service/department/impl/DepartmentUserServiceImpl.java b/login-oauth2-client/src/main/java/ink/wgink/login/oauth2/client/service/department/impl/DepartmentUserServiceImpl.java index fb1173bc..b3fc84c2 100644 --- a/login-oauth2-client/src/main/java/ink/wgink/login/oauth2/client/service/department/impl/DepartmentUserServiceImpl.java +++ b/login-oauth2-client/src/main/java/ink/wgink/login/oauth2/client/service/department/impl/DepartmentUserServiceImpl.java @@ -6,6 +6,7 @@ import ink.wgink.login.oauth2.client.remote.department.IDepartmentUserRemoteServ import ink.wgink.login.oauth2.client.service.department.IDepartmentUserService; import ink.wgink.module.oauth2.manager.OAuth2ClientTokenManager; import ink.wgink.pojo.ListPage; +import ink.wgink.pojo.dtos.department.DepartmentContainUserDTO; import ink.wgink.pojo.dtos.department.DepartmentDTO; import ink.wgink.pojo.dtos.department.DepartmentSimpleDTO; import ink.wgink.pojo.dtos.department.DepartmentUserDTO; @@ -220,4 +221,12 @@ public class DepartmentUserServiceImpl extends DefaultBaseService implements IDe return departmentUserRemoteService.listPageUserByExcludeDepartmentIds(apiPathProperties.getUserCenter(), OAuth2ClientTokenManager.getInstance().getToken().getAccessToken(), idsVO, page.getPage(), page.getRows(), page.getParams()); } + @Override + public DepartmentContainUserDTO getDepartmentContainUserAndSubByDepartmentId(String departmentId) { + if (StringUtils.isBlank(departmentId)) { + return null; + } + return departmentUserRemoteService.getDepartmentContainUserAndSubByDepartmentId(apiPathProperties.getUserCenter(), OAuth2ClientTokenManager.getInstance().getToken().getAccessToken(), departmentId); + } + } diff --git a/service-department/src/main/java/ink/wgink/service/department/controller/api/DepartmentUserController.java b/service-department/src/main/java/ink/wgink/service/department/controller/api/DepartmentUserController.java index 49a1243f..074fbeef 100644 --- a/service-department/src/main/java/ink/wgink/service/department/controller/api/DepartmentUserController.java +++ b/service-department/src/main/java/ink/wgink/service/department/controller/api/DepartmentUserController.java @@ -4,6 +4,7 @@ import ink.wgink.common.base.DefaultBaseController; import ink.wgink.exceptions.ParamsException; import ink.wgink.interfaces.consts.ISystemConstant; import ink.wgink.pojo.ListPage; +import ink.wgink.pojo.dtos.department.DepartmentContainUserDTO; import ink.wgink.pojo.dtos.department.DepartmentUserDTO; import ink.wgink.pojo.dtos.user.UserDTO; import ink.wgink.pojo.result.ErrorResult; @@ -190,4 +191,14 @@ public class DepartmentUserController extends DefaultBaseController { return departmentUserService.listPageUser(page); } + @ApiOperation(value = "获取组织详情(包含本级用户列表与下级部门列表)", notes = "获取组织详情(包含本级用户列表与下级部门列表)") + @ApiImplicitParams({ + @ApiImplicitParam(name = "departmentId", value = "部门ID", paramType = "path"), + }) + @ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)}) + @GetMapping("get-department-contain-user-and-sub/department-id/{departmentId}") + public DepartmentContainUserDTO getDepartmentContainUserAndSubByDepartmentId(@PathVariable("departmentId") String departmentId) { + return departmentUserService.getDepartmentContainUserAndSubByDepartmentId(departmentId); + } + } diff --git a/service-department/src/main/java/ink/wgink/service/department/controller/resources/DepartmentUserResourceController.java b/service-department/src/main/java/ink/wgink/service/department/controller/resources/DepartmentUserResourceController.java index bafa98a6..65890182 100644 --- a/service-department/src/main/java/ink/wgink/service/department/controller/resources/DepartmentUserResourceController.java +++ b/service-department/src/main/java/ink/wgink/service/department/controller/resources/DepartmentUserResourceController.java @@ -4,6 +4,7 @@ import ink.wgink.common.base.DefaultBaseController; import ink.wgink.exceptions.ParamsException; import ink.wgink.interfaces.consts.ISystemConstant; import ink.wgink.pojo.ListPage; +import ink.wgink.pojo.dtos.department.DepartmentContainUserDTO; import ink.wgink.pojo.dtos.department.DepartmentDTO; import ink.wgink.pojo.dtos.department.DepartmentUserDTO; import ink.wgink.pojo.dtos.user.UserDTO; @@ -222,4 +223,14 @@ public class DepartmentUserResourceController extends DefaultBaseController { return departmentUserService.listPageUser(page); } + @ApiOperation(value = "获取组织详情(包含本级用户列表与下级部门列表)", notes = "获取组织详情(包含本级用户列表与下级部门列表)") + @ApiImplicitParams({ + @ApiImplicitParam(name = "departmentId", value = "部门ID", paramType = "path"), + }) + @ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)}) + @GetMapping("get-department-contain-user-and-sub/department-id/{departmentId}") + public DepartmentContainUserDTO getDepartmentContainUserAndSubByDepartmentId(@PathVariable("departmentId") String departmentId) { + return departmentUserService.getDepartmentContainUserAndSubByDepartmentId(departmentId); + } + } diff --git a/service-department/src/main/java/ink/wgink/service/department/service/impl/DepartmentUserServiceImpl.java b/service-department/src/main/java/ink/wgink/service/department/service/impl/DepartmentUserServiceImpl.java index 27a4d715..279c275c 100644 --- a/service-department/src/main/java/ink/wgink/service/department/service/impl/DepartmentUserServiceImpl.java +++ b/service-department/src/main/java/ink/wgink/service/department/service/impl/DepartmentUserServiceImpl.java @@ -9,6 +9,7 @@ import ink.wgink.interfaces.department.IDepartmentUserDeleteAfterHandler; import ink.wgink.interfaces.department.IDepartmentUserSaveAfterHandler; import ink.wgink.interfaces.user.IUserBaseService; import ink.wgink.pojo.ListPage; +import ink.wgink.pojo.dtos.department.DepartmentContainUserDTO; import ink.wgink.pojo.dtos.department.DepartmentDTO; import ink.wgink.pojo.dtos.department.DepartmentSimpleDTO; import ink.wgink.pojo.dtos.department.DepartmentUserDTO; @@ -536,4 +537,31 @@ public class DepartmentUserServiceImpl extends DefaultBaseService implements IDe page.getParams().put("excludeDepartmentIds", excludeDepartmentIds); return listPageUser(page); } + + @Override + public DepartmentContainUserDTO getDepartmentContainUserAndSubByDepartmentId(String departmentId) { + // 如果是根节点 + if (StringUtils.equals(departmentId, ISystemConstant.TREE_BASE_ROOT_ID_VALUE)) { + DepartmentContainUserDTO departmentContainUserDTO = new DepartmentContainUserDTO(); + departmentContainUserDTO.setDepartmentId("0"); + departmentContainUserDTO.setDepartmentParentId("-1"); + departmentContainUserDTO.setDepartmentName("根节点"); + departmentContainUserDTO.setDepartmentCode(""); + departmentContainUserDTO.setSubDepartments(departmentService.listByParentId(ISystemConstant.TREE_BASE_ROOT_ID_VALUE)); + return departmentContainUserDTO; + } + // 不是根节点 + DepartmentPO departmentPO = departmentService.getPO(departmentId); + if (departmentPO == null) { + throw new SearchException("部门不存在"); + } + DepartmentContainUserDTO departmentContainUserDTO = new DepartmentContainUserDTO(); + departmentContainUserDTO.setDepartmentId(departmentPO.getDepartmentId()); + departmentContainUserDTO.setDepartmentParentId(departmentPO.getDepartmentParentId()); + departmentContainUserDTO.setDepartmentName(departmentPO.getDepartmentName()); + departmentContainUserDTO.setDepartmentCode(departmentPO.getDepartmentCode()); + departmentContainUserDTO.setSubDepartments(departmentService.listByParentId(departmentPO.getDepartmentId())); + departmentContainUserDTO.setUsers(listUserByDepartmentId(departmentPO.getDepartmentId())); + return departmentContainUserDTO; + } } diff --git a/service-department/src/main/resources/templates/department/user/list.html b/service-department/src/main/resources/templates/department/user/list.html index 62c0978c..ed63b01e 100644 --- a/service-department/src/main/resources/templates/department/user/list.html +++ b/service-department/src/main/resources/templates/department/user/list.html @@ -200,14 +200,28 @@ var checkStatus = table.checkStatus('dataTable'); var checkDatas = checkStatus.data; if(layEvent === 'saveEvent') { + // top.dialog.open({ + // url: top.restAjax.path('route/department/user/save-exclude?departmentId={departmentId}', [departmentId]), + // title: '添加部门用户', + // width: '800px', + // height: '500px', + // closeBtn: 1, + // onClose: function() { + // reloadTable(); + // } + // }); + top.dialog.dialogData.selectedUserIdArray = ['e48e9c4a-995e-4061-abcd-a3c260c11333'] top.dialog.open({ - url: top.restAjax.path('route/department/user/save-exclude?departmentId={departmentId}', [departmentId]), + url: top.restAjax.path('route/department/user/select-user-v2?departmentId={departmentId}&selectType=radio', [departmentId]), title: '添加部门用户', - width: '800px', + width: '500px', height: '500px', closeBtn: 1, onClose: function() { - reloadTable(); + var selectedUserArray = top.dialog.dialogData.selectedUserArray; + if(selectedUserArray) { + + } } }); } else if(layEvent === 'removeEvent') { diff --git a/service-department/src/main/resources/templates/department/user/select-user-v2.html b/service-department/src/main/resources/templates/department/user/select-user-v2.html index 7b50eb87..0eedcae9 100644 --- a/service-department/src/main/resources/templates/department/user/select-user-v2.html +++ b/service-department/src/main/resources/templates/department/user/select-user-v2.html @@ -12,29 +12,33 @@ @@ -42,79 +46,24 @@
-
- - - - - - - - - - -
+
-
- 1级部门 - 2级部门 - 3级部门 - 4级部门 - 4级部门 - 4级部门 - 4级部门 - 4级部门 - 4级部门 - 4级部门 - 4级部门 - 4级部门 - 4级部门 - 4级部门 - 4级部门 - 4级部门 - 4级部门 -
+
-
-
1
-
2
-
3
-
4
-
5
-
6
-
7
-
8
-
9
-
10
-
+
-
-
-
- -
-
-
管理员(admin)
-
18688888888
-
-
-
-
-
- -
-
-
管理员(admin)
-
18688888888
-
-
-
-
+
+
+
+
@@ -127,56 +76,289 @@ }).use(['index'], function() { var $ = layui.$; var $win = $(window); - var requestParams = top.restAjax.path(window.location.href); + var requestParams = top.restAjax.params(window.location.href); + var selectType = requestParams.selectType; + selectType = selectType && (selectType === 'checkbox' || selectType === 'radio') ? 'radio' : 'checkbox'; + var departmentRootId = requestParams.departmentRootId; departmentRootId = !departmentRootId ? '0' : departmentRootId; - var winWidth = window.innerWidth; - var winHeight = window.innerHeight; - var containerWidth = winWidth +'px'; - var containerTopSelectedUserListWidth = (winWidth - 2) + 'px'; - var containerBottomLeftWidth = (winWidth * (2 / 5) - 2) +'px'; - var containerBottomLeftListWidth = (winWidth * (2 / 5) + 16) +'px'; - var containerBottomLeftListHeight = (winHeight - 126) +'px'; - var containerBottomRightWidth = (winWidth * (3 / 5) - 1) +'px'; - var containerBottomRightListWidth = (winWidth * (3 / 5) + 16) +'px'; - var containerBottomRightListHeight = (winHeight - 126) +'px'; - var containerBottomRightListUserItemInfoDivWidth = (winWidth * (3 / 5) - 56) +'px'; + var selectedUserIdArray = top.dialog.dialogData.selectedUserIdArray; + selectedUserIdArray = selectedUserIdArray ? selectedUserIdArray : []; - // 初始化整体样式 - function initStyle() { - document.querySelectorAll('.container').forEach(function(item) { - item.style.width = containerWidth; - }); - document.querySelectorAll('.container .top .selected-user .list').forEach(function(item) { - item.style.width = containerTopSelectedUserListWidth; - }); - document.querySelectorAll('.container .bottom .left').forEach(function(item) { - item.style.width = containerBottomLeftWidth; - }); - document.querySelectorAll('.container .bottom .left .list').forEach(function(item) { - item.style.width = containerBottomLeftListWidth; - item.style.height = containerBottomLeftListHeight; - }); - document.querySelectorAll('.container .bottom .right').forEach(function(item) { - item.style.width = containerBottomRightWidth; - }); - document.querySelectorAll('.container .bottom .right .list').forEach(function(item) { - item.style.width = containerBottomRightListWidth; - item.style.height = containerBottomRightListHeight; - }); + // 置空传递的中间参数,关闭处校验null,不处理,点提交时不会为null + top.dialog.dialogData.selectedUserArray = null; + + // 常量 + var Consts = { + winWidth: window.innerWidth, + winHeight: window.innerHeight, + avatarColorArray: [ + { + bgColor: '#b4b4c4', + color: '#fff' + }, + { + bgColor: '#7182e7', + color: '#fff' + }, + { + bgColor: '#304eff', + color: '#fff' + }, + { + bgColor: '#ff75ef', + color: '#fff' + }, + { + bgColor: '#ff7878', + color: '#fff' + }, + { + bgColor: '#d2d2d2', + color: '#000' + }, + { + bgColor: '#b8c926', + color: '#fff' + }, + { + bgColor: '#8d3434', + color: '#fff' + } + ] + } + // 变量 + var Properties = { + containerWidth : Consts.winWidth +'px', + containerTopSelectedUserListWidth : (Consts.winWidth - 2) + 'px', + containerBottomLeftWidth : (Consts.winWidth * (2 / 5) - 2) +'px', + containerBottomLeftListWidth : (Consts.winWidth * (2 / 5) + 16) +'px', + containerBottomLeftListHeight : (Consts.winHeight - 166) +'px', + containerBottomRightWidth : (Consts.winWidth * (3 / 5) - 1) +'px', + containerBottomRightListWidth : (Consts.winWidth * (3 / 5) + 16) +'px', + containerBottomRightListHeight : (Consts.winHeight - 166) +'px', + containerBottomRightListUserItemInfoDivWidth : (Consts.winWidth * (3 / 5) - 56) +'px', + selectedDepartmentArray: [], + subDepartmentArray: [], + userArray: [], + selectedUserArray: [], + } + // 方法 + var Methods = { + // 初始化整体样式 + initStyle: function() { + document.querySelectorAll('.container').forEach(function(item) { + item.style.width = Properties.containerWidth; + }); + document.querySelectorAll('.container .top .selected-user .list').forEach(function(item) { + item.style.width = Properties.containerTopSelectedUserListWidth; + }); + document.querySelectorAll('.container .bottom .left').forEach(function(item) { + item.style.width = Properties.containerBottomLeftWidth; + }); + document.querySelectorAll('.container .bottom .left .list').forEach(function(item) { + item.style.width = Properties.containerBottomLeftListWidth; + item.style.height = Properties.containerBottomLeftListHeight; + }); + document.querySelectorAll('.container .bottom .right').forEach(function(item) { + item.style.width = Properties.containerBottomRightWidth; + }); + document.querySelectorAll('.container .bottom .right .list').forEach(function(item) { + item.style.width = Properties.containerBottomRightListWidth; + item.style.height = Properties.containerBottomRightListHeight; + }); + }, + // 初始化用户列表样式 + initUserListStyle: function() { + document.querySelectorAll('.container .bottom .right .list .user-item .info div').forEach(function(item) { + item.style.width = Properties.containerBottomRightListUserItemInfoDivWidth; + }); + }, + // 用户是否被选择 + getSelectedUserIndex: function (userId) { + for(var i = 0; i < Properties.selectedUserArray.length; i++) { + var item = Properties.selectedUserArray[i]; + if(userId === item.userId) { + return i; + } + } + return -1; + }, + // 刷新已选择的用户 + refreshSelectedUser: function() { + var doms = ''; + for(var i = 0, item; item = Properties.selectedUserArray[i++];) { + doms += ''+ item.userName +' '; + } + $('#selectedUsers').empty(); + $('#selectedUsers').append(doms); + }, + // 刷新选择的部门 + refreshSelectedDepartments: function() { + var doms = ''; + for(var i = 0, item; item = Properties.selectedDepartmentArray[i++];) { + doms += ''+ item.departmentName +''; + } + $('#selectedDepartments').empty(); + $('#selectedDepartments').append(doms); + }, + // 刷新下级部门 + refreshSubDepartments: function() { + var doms = ''; + for(var i = 0, item; item = Properties.subDepartmentArray[i++];) { + doms += '
'+ item.departmentName +'
' + } + $('#subDepartments').empty(); + $('#subDepartments').append(doms); + }, + // 刷新用户 + refreshUsers: function() { + var doms = ''; + + for(var i = 0, item; item = Properties.userArray[i++];) { + var color = Consts.avatarColorArray[(i - 1) % Consts.avatarColorArray.length]; + + doms += [ + '
', + '
'+ item.userName.substring(0, 1) +'
', + '
', + '
'+ item.userName +'('+ item.userUsername +')
', + '
'+ item.userPhone +'
', + '
', + '
', + '
' + ].join(''); + } + $('#users').empty(); + $('#users').append(doms); + Methods.initUserListStyle(); + }, + // 清除选择的部门 + clearSelectedDepartment: function(departmentId) { + for(var i = 0; i < Properties.selectedDepartmentArray.length; i++) { + var item = Properties.selectedDepartmentArray[i]; + if(departmentId === item.departmentId) { + Properties.selectedDepartmentArray.splice(i, Properties.selectedDepartmentArray.length - i); + return; + } + } + }, + close: function() { + parent.layer.close(parent.layer.getFrameIndex(window.name)); + } + } + // 初始化 + var Init = { + // 初始化选择的用户 + initSelectedUser: function () { + if(selectedUserIdArray.length == 0) { + Methods.refreshSelectedUser(); + return; + } + top.restAjax.post(top.restAjax.path('api/user/listbyids', []), { + ids: selectedUserIdArray + }, null, function(code, data) { + for(var i = 0, item; item = data[i++];) { + var user = { + userId: item.userId, + userName: item.userName + }; + Properties.selectedUserArray.push(user); + Methods.refreshSelectedUser(); + } + }, function(code, data) { + top.dialog.msg(data.msg); + }); + }, + // 刷新部门和用户 + refreshDepartmentUser: function () { + Methods.refreshSelectedDepartments(); + Methods.refreshSubDepartments(); + Methods.refreshUsers(); + }, + // 初始化部门与部门用户 + initDepartmentAndUser: function(parentDepartmentId) { + var loadLayerIndex; + top.restAjax.get(top.restAjax.path('api/department/user/get-department-contain-user-and-sub/department-id/{departmentId}', [parentDepartmentId]), {}, null, function(code, data) { + Properties.selectedDepartmentArray.push({ + departmentId: data.departmentId, + departmentName: data.departmentName, + departmentCode: data.departmentCode + }); + Properties.subDepartmentArray = data.subDepartments; + Properties.userArray = data.users; + Init.refreshDepartmentUser(); + }, function(code, data) { + top.dialog.msg(data.msg); + }, function() { + loadLayerIndex = top.dialog.msg(top.dataMessage.loading, {icon: 16, time: 0, shade: 0.3}); + }, function() { + top.dialog.close(loadLayerIndex); + }); + } } - // 初始化用户列表样式 - function initUserListStyle() { - document.querySelectorAll('.container .bottom .right .list .user-item .info div').forEach(function(item) { - item.style.width = containerBottomRightListUserItemInfoDivWidth; - }); - } + Methods.initStyle(); + Methods.initUserListStyle(); + Init.initSelectedUser(); + Init.initDepartmentAndUser(departmentRootId); - - initStyle(); - initUserListStyle(); + $(document).on('click', '.selected-department', function() { + var departmentId = this.dataset.departmentId; + Methods.clearSelectedDepartment(departmentId); + Init.initDepartmentAndUser(departmentId); + }) + // 部门列表点击 + $(document).on('click', '.sub-department', function() { + var departmentId = this.dataset.departmentId; + Init.initDepartmentAndUser(departmentId); + }) + // 用户列表点击 + $(document).on('click', '.user-item', function() { + var userId = this.dataset.userId; + var userName = this.dataset.userName; + if(selectType === 'radio') { + // 单选 + Properties.selectedUserArray = []; + Properties.selectedUserArray.push({ + userId: userId, + userName: userName + }); + } else { + // 多选 + var selectedIndex = Methods.getSelectedUserIndex(userId); + if(selectedIndex == -1) { + // 不存在,添加 + Properties.selectedUserArray.push({ + userId: userId, + userName: userName + }); + } else { + // 存在,移除 + Properties.selectedUserArray.splice(selectedIndex, 1); + } + } + Methods.refreshSelectedUser(); + Methods.refreshUsers(); + }) + // 移除 + $(document).on('click', '.remove-user', function() { + var userId = this.dataset.userId; + var selectedIndex = Methods.getSelectedUserIndex(userId); + Properties.selectedUserArray.splice(selectedIndex, 1); + Methods.refreshSelectedUser(); + Methods.refreshUsers(); + }) + // 确定 + $('#confirmBtn').on('click', function(e) { + top.dialog.dialogData.selectedUserArray = Properties.selectedUserArray; + Methods.close(); + }); + // 关闭 + $('#closeBtn').on('click', function(e) { + Methods.close(); + }); });