infrastructureModule .controller('UserDetailViewController', ['$window', '$location', 'userService', '$stateParams', '$location', '$scope', '$log', 'SweetAlert', 'permissionService', '$translate', 'areaRegionService', 'uiGridTreeViewConstants', '$timeout', 'areaService', 'uiGridConstants', '$interval', 'orgService', '$q', 'roleService', '$rootScope', '$state', 'userService', function ($window, $location, userService, $stateParams, $location, $scope, $log, SweetAlert, permissionService, $translate, areaRegionService, uiGridTreeViewConstants, $timeout, areaService, uiGridConstants, $interval, orgService, $q, roleService, $rootScope, $state, userService) { $scope.serviceType = constant.serviceType.VAT; var roleCardSelector = '#assign-user-box'; $scope.back = function () { if ($rootScope.previousLocation.indexOf('user') > 0) { //重新刷新数据 $state.go('user'); } else { $window.history.back(); } }; $scope.showOperateLogPop = function () { $scope.isShowLog = true; }; // 添加或者编辑机构层级成功之后,刷新当前页面的数据 $scope.$watch('userRolesIsUpdate', function (newValue, oldValue) { if (newValue) { $scope.getOrgRoleListView(); } }); //设置角色,可添加或取消原始角色,可添加和取消额外角色。可设置访问不可访问 $scope.setRoleToOrganization = function () { var selectedArr = []; var hasOneItem = false; $scope.roleList.forEach(function (item) { if (item.isChecked) { hasOneItem = true; } var selectedObject = { id: PWC.newGuid(), dimensionValueID: $scope.dimensionValueId, dimensionID: $scope.dimensionId, userID: $scope.userId, organizationID: $scope.organizationId, roleID: item.id, isAdd: item.isChecked, IsAccessible: $scope.roleEntity.isAccessible, hasOriginalRole: $scope.roleEntity.hasOriginalRole }; selectedArr.push(selectedObject); }); if (!hasOneItem && $scope.roleEntity.isAccessible && !$scope.roleEntity.hasOriginalRole) { showWarning("SelectAtLeastOneRole"); return false; }; userService.updateUserRoleOrganization(selectedArr).success(function (data) { if (data) { showSuccessMsg("SaveSuccess"); //刷新用户角色列表 loadUserRole(); } }); }; //用户角色框隐藏 $scope.closeSetRoleCard = function () { hideRoleInfoCard(); }; var hideRoleInfoCard = function () { $(roleCardSelector).hide(); }; //添加现有机构到当前用户权限控制 $scope.addExistOrg = function () { var selectedKeyItem = []; $scope.orgSettingList.data.forEach(function (row) { selectedKeyItem.push(row.orgID); }); $scope.selectedKeyItems = selectedKeyItem; $scope.addExistOrgOperateType = constant.Operation.Add; $scope.addExistOrgIsUpdate = false; }; //添加现有权限 $scope.popupRoleAddWin = function () { if (!$scope.hasEditPermission) { return; } var selectedKeyItem = []; $scope.roleInfoList.forEach(function (row) { selectedKeyItem.push(row.roleID); }); $scope.addExistRoleOperateType = constant.Operation.Add; $scope.addExistRoleIsUpdated = false; $scope.selectedRoleList = selectedKeyItem; }; $scope.$watch('addExistRoleIsUpdated', function (newValue, oldValue) { if (newValue) { if ($scope.selectedRoleList && $scope.selectedRoleList.length > 0) { var removedRoles = []; var addedRoles = []; var roleIdList = _.map($scope.roleInfoList, function (item) { return item.roleID; }); var userRoleUpdateModel = {}; roleIdList.forEach(function (item) { if ($scope.selectedRoleList.indexOf(item) < 0) { removedRoles.push(item); } }); $scope.selectedRoleList.forEach(function (item) { if (roleIdList.indexOf(item) < 0) { addedRoles.push(item); } }); var userID = $scope.selectedUser.id; userRoleUpdateModel.userID = userID; userRoleUpdateModel.removedRoles = []; //如果取消掉,根据现在的需求不需要删除 userRoleUpdateModel.addedRoles = addedRoles; if (addedRoles.length > 0) { roleService.updateUserRole(userRoleUpdateModel).success(function (data) { $scope.getUserRoleData(); $scope.getDimensionRoleListView(); $scope.getOrgRoleListView(); SweetAlert.success($translate.instant('addUserRoleTitle'), $translate.instant('addUserRoleSuccess')); }); } else { SweetAlert.success($translate.instant('operationSuccess'), $translate.instant('noAdditionalRoleAdded')); } } } }); // 添加范围确认之后触发数据库更新操作 $scope.$watch('addExistDimensionIsUpdated', function (newValue, oldValue) { if (newValue) { if ($scope.selectedDimensionValueList && $scope.selectedDimensionValueList.length > 0) { var addedDimensions = []; var dimensionValueUpdateModel = {}; $scope.selectedDimensionValueList.forEach(function (item) { if ($scope.originalDVlist == undefined || $scope.originalDVlist.indexOf(item) < 0) { addedDimensions.push(item); } }); var userID = $scope.selectedUser.id; dimensionValueUpdateModel.userID = userID; dimensionValueUpdateModel.addedDimensions = addedDimensions; var invalidItems = _.filter(addedDimensions, function (item) { return item.parentID == null; }); if (invalidItems.length == addedDimensions.length) { SweetAlert.warning($translate.instant('addDimensionValueFirstWarn')); return; } else { roleService.updateDimensionValues(dimensionValueUpdateModel).success(function (data) { $scope.getDimensionRoleListView(); SweetAlert.success($translate.instant('addDimensionTitle'), $translate.instant('addDimensionSuccess')); }); } } else { SweetAlert.warning($translate.instant('addDimensionValueFirstWarn')); return; } } }); $scope.$watch('isUpdateUser', function (newValue, oldValue) { if (newValue) { $scope.getUserRoleData(); $scope.getDimensionRoleListView(); $scope.getOrgRoleListView(); } }); var loadPermissionTree = function () { $scope.permissionTreeViewOptions = { bindingOptions: { dataSource: 'permissionTreeViewData', searchValue: 'searchValue', expandAllEnabled: 'expandAll' }, dataStructure: "plain", selection: { mode: "single" }, loadPanel: { enabled: true }, scrolling: { mode: "virtual" }, keyExpr: "id", showRowLines: true, showColumnLines: true, rowAlternationEnabled: true, showBorders: true, selectAllText: $translate.instant('SelectAll'), scrollDirection: 'vertical', //Accepted Values: 'vertical' | 'horizontal' | 'both' selectNodesRecursive: true, //级联选择 //showCheckBoxesMode: 'selectAll', //Accepted Values: 'none' | 'normal' | 'selectAll' noDataText: $translate.instant('NoDataText'), }; }; //显示角色卡片的时候,原始角色绑定,并绑定是否选中 var getOrignalUserRole = function (userID) { //getUserRoleListByUserID userService.getUserRoleListByUserID(userID).success(function (data) { if (data) { var subRoleList = data && data.roleInfoList || []; $scope.originalUserRoleList = subRoleList; //console.log(JSON.stringify("rolelist:" + JSON.stringify(data.RoleInfoList))); } }); }; //显示角色卡片的时候,获取所有当前用户的角色列表,如果在所有角色列表中有存在,则选中 var getRoleByService = function (row, enumSettingType) { roleService.getRoleListByRoleTypeId(constant.serviceType.VAT).success(function (roleData) { if (roleData) { //$scope.roleList = roleData; var selectedUserRole; if (enumSettingType == 1) { //当前维度行 selectedUserRole = _.find($scope.dimensionRoleList, function (item) { return item.dimensionID == row.dimensionID && item.dimensionValueID == row.dimensionValueID; }); } else { selectedUserRole = _.find($scope.orgRoleList, function (item) { return item.orgID == row.orgID; }); } //当前用户行的角色列表 var roleInfoList = selectedUserRole && selectedUserRole.extraRoleList; var hasAllCheck = true; if (roleInfoList && roleInfoList.length > 0) { roleData.forEach(function (roleItem) { var selectedRole = _.find(roleInfoList, function (item) { return item.roleID == roleItem.id; }); if (selectedRole) { roleItem.isChecked = true; } else { roleItem.isChecked = false; hasAllCheck = false; } }); } else { hasAllCheck = false; } $scope.roleEntity.isAllRoleChecked = hasAllCheck; $scope.roleEntity.isHeritable = row.hasOriginalRole; $scope.roleEntity.isAccessible = row.isAccessible; $scope.roleList = roleData; // console.log(JSON.stringify(roleData)); } }); }; //点击显示当前用户的角色卡片 $scope.showRoleInfoCard = function (row, enumSettingType) { $scope.enumSettingType = enumSettingType; $scope.roleEntity = {}; $scope.dimensionValueID = row.entity.dimensionValueID; $scope.orgID = row.entity.orgID; $scope.dimensionID = row.entity.dimensionID; var roleCard = $(roleCardSelector); var rowId = $('#' + (row.entity.dimensionValueID || row.entity.orgID)); getOrignalUserRole($scope.userID); getRoleByService(row.entity, enumSettingType); showOrgCard(roleCard, rowId, 40, 0); }; //全部选中 $scope.AllRoleChecked = function () { angular.forEach($scope.roleList, function (item) { item.isChecked = $scope.roleEntity.isAllRoleChecked; }); }; var showWarning = function (resultMsg) { var errMsg = $translate.instant(resultMsg); SweetAlert.warning(errMsg); }; //为事业部的值(其他维度的值)添加用户角色 $scope.setRoleToDimensionValue = function () { if ($scope.enumSettingType == 1) { saveUpdateRoleDimensionValue(); } else { saveUpateRoleOrg(); } $scope.closeSetRoleCard(); }; var saveUpateRoleOrg = function () { var selectedArr = []; var hasOneItem = false; $scope.roleList.forEach(function (item) { if (item.isChecked) { hasOneItem = true; } var selectedObject = { id: PWC.newGuid(), userID: $scope.userID, organizationID: $scope.orgID, roleID: item.id, isAdd: item.isChecked, IsAccessible: $scope.roleEntity.isAccessible, hasOriginalRole: $scope.roleEntity.isHeritable || false }; selectedArr.push(selectedObject); }); if (!hasOneItem && $scope.roleEntity.isAccessible && !$scope.roleEntity.hasOriginalRole) { showWarning("SelectAtLeastOneRole"); return false; }; userService.updateUserRoleOrganization(selectedArr).success(function (data) { if (data) { showSuccessMsg("SaveSuccess"); //刷新用户角色列表 $scope.getOrgRoleListView(); } }); }; var saveUpdateRoleDimensionValue = function () { var selectedArr = []; var hasOneItem = false; $scope.roleList.forEach(function (item) { if (item.isChecked) { hasOneItem = true; } var selectedObject = { id: PWC.newGuid(), dimensionValueID: $scope.dimensionValueID, dimensionID: $scope.dimensionID, userID: $scope.userID, roleID: item.id, isAdd: item.isChecked, IsAccessible: $scope.roleEntity.isAccessible, hasOriginalRole: $scope.roleEntity.isHeritable || false }; selectedArr.push(selectedObject); }); if (!hasOneItem && $scope.roleEntity.isAccessible && !$scope.roleEntity.isHeritable) { showWarning("SelectAtLeastOneRole"); return false; }; userService.updateUserRoleDimension(selectedArr).success(function (data) { if (data) { $scope.getDimensionRoleListView(); showSuccessMsg("SaveSuccess"); } }); }; var showSuccessMsg = function (resultMsg) { var errMsg = $translate.instant(resultMsg); SweetAlert.success(errMsg); }; //用户角色框隐藏 $scope.closeSetRoleCard = function () { hideRoleInfoCard(); }; var hideRoleInfoCard = function () { $(roleCardSelector).hide(); }; // 显示机构角色卡片 var showOrgCard = function (popCard, row, topOffset, leftOffset) { popCard.css("display", "block"); var top = row.offset().top + topOffset; if (top + popCard.height() > window.innerHeight) { top = window.innerHeight - popCard.height() - 20; } popCard.css('top', top + 'px'); var left = row.offset().left + leftOffset; if (left + popCard.width() > window.innerWidth) { left = row.offset().left - popCard.width() - 30; } popCard.css('left', left + 'px'); popCard.show(); event.stopPropagation(); }; $scope.loadPermissions = function (roleID, $event) { //如果点击的是x,就不需要加载其他数据了 var element = $event.target; var closeEle = $(element).hasClass('fa'); if (closeEle) { return; } //获取全部的权限 //前端选中该节点 $scope.selectedRoleID = roleID; if (roleID == '0') { getAllPermissionsByRoleIDList(); } else { $scope.getDevTreePermissionsByRoleID($scope.selectedRoleID, $scope.serviceType); } }; var getAllPermissionsByRoleIDList = function () { var roleIDList = _.map($scope.roleInfoList, function (item) { return item.roleID; }); $scope.getDevTreePermissionsByRoleIDList(roleIDList, $scope.serviceType); }; //获取指定角色ID的权限 $scope.getDevTreePermissionsByRoleID = function (roleID, serviceID) { permissionService.getDevTreePermissionsByRoleID(roleID, serviceID).success(function (data) { $scope.permissionTreeViewData = data.permissionDevTreeList;; }); }; //获取指定角色列表的权限合集 $scope.getDevTreePermissionsByRoleIDList = function (roleIDList, serviceID) { permissionService.getDevTreePermissionsByRoleIDList(roleIDList, serviceID).success(function (data) { $scope.permissionTreeViewData = data; }); }; // 修改用户 $scope.updateUser = function (user) { if (!$scope.hasEditPermission) { return; } if ($scope.userOperateType === constant.Operation.Edit) { $scope.userOperateType = null; } $scope.userOperateType = constant.Operation.Edit; $scope.isUpdateUser = false; $scope.selectedUser = { id: user.id }; }; // 禁用用户 $scope.disableUser = function (user) { if (!$scope.hasEditPermission) { return; } if ($scope.userOperateType === constant.Operation.Disable) { $scope.userOperateType = null; } $scope.userOperateType = constant.Operation.Disable; $scope.isUpdateUser = false; $scope.selectedUser = { id: user.id, userName: user.userName, currentStatus: user.status }; }; // 启用用户 $scope.enable = function (user) { if (!$scope.hasEditPermission) { return; } if ($scope.userOperateType === constant.Operation.Enable) { $scope.userOperateType = null; } $scope.userOperateType = constant.Operation.Enable; $scope.isUpdateUser = false; $scope.selectedUser = { id: user.id, userName: user.userName, currentStatus: user.status }; }; //删除用户角色 $scope.removeRole = function (role) { if (!$scope.hasEditPermission) { return; } var roleDeleteText; if (role.roleID !== '0') { roleDeleteText = $translate.instant('roleDeleteConfirm') + ' - ' + role.roleName + '?'; } else { roleDeleteText = $translate.instant('allRoleDeleteConfirm') + '?'; } SweetAlert.swal({ title: $translate.instant('ConfirmDelete') + '?', text: roleDeleteText, type: "warning", showCancelButton: true, confirmButtonColor: "#DD6B55", confirmButtonText: $translate.instant('Confirm'), cancelButtonText: $translate.instant('Cancel'), closeOnConfirm: false, closeOnCancel: true }, function (isConfirm) { if (isConfirm) { if (role.roleID == '0') { var roleIDList = _.map($scope.roleInfoList, function (item) { return item.roleID; }); roleService.removeUserRole($scope.userID, roleIDList, $scope.serviceType).success(function (data) { if (data) { //同时刷新上层维度设置和各机构设置 $scope.getUserRoleData(); $scope.getDimensionRoleListView(); $scope.getOrgRoleListView(); } }); $scope.roleInfoList = []; } else { var roleList = []; roleList.push(role.roleID); roleService.removeUserRole($scope.userID, roleList, $scope.serviceType).success(function (data) { if (data) { //同时刷新上层维度设置和各机构设置 $scope.getDimensionRoleListView(); $scope.getOrgRoleListView(); } }); $scope.roleInfoList = _.without($scope.roleInfoList, _.find($scope.roleInfoList, function (item) { return item.roleID === role.roleID })); if ($scope.roleInfoList.length === 1) { var singleRole = $scope.roleInfoList[0]; if (singleRole.roleID === '0') { getAllPermissionsByRoleIDList(); } } } SweetAlert.success($translate.instant('deleteUserRoleTitle'), $translate.instant('deleteUserRoleSuccess')); } }); }; $scope.getGridHeight = function () { return {}; }; $scope.getUserRoleData = function () { var userId = $stateParams.id; $scope.userID = userId; userService.GetUserById(userId).success(function (data) { $scope.user = data; var filterOperationObjectList = []; filterOperationObjectList.push(data.userName); $scope.filterOperationObjectList = filterOperationObjectList; console.log(data); }); $scope.selectedUser = { id: userId }; roleService.getAllRoleListByUserID(userId, $scope.serviceType).success(function (data) { //默认添加全部角色 data.unshift({ roleName: '全部角色', roleID: '0' }); $scope.roleInfoList = data; $scope.selectedRoleID = data !== undefined && data.length > 0 ? data[0].roleID : ''; //$scope.getDevTreePermissionsByRoleID($scope.selectedRoleID, $scope.serviceType); getAllPermissionsByRoleIDList(); }); }; $scope.toggleCallback = function (ivhNode, isExpand, ivhTree) { console.log(ivhNode); }; $scope.tickCheckbox = function (ivhNode, isExpand, ivhTree) { console.log(ivhNode); }; $scope.filter = function () { var searchValue = $scope.searchText; if (searchValue !== '') { var xx = $.extend(true, {}, $scope.data); var tempData = _.filter(xx, function (item) { return (item.orgName !== undefined && item.orgName.indexOf(searchValue) >= 0) || (item.businessUnit !== undefined && item.businessUnit.indexOf(searchValue) >= 0) || (item.areaName !== undefined && item.areaName.indexOf(searchValue) >= 0) || (item.industryName !== undefined && item.industryName.indexOf(searchValue) >= 0) || (item.userInfo !== undefined && item.userInfo.indexOf(searchValue) >= 0); }); tempData.forEach(function (item) { item.$$treeLevel = 0; }); $scope.areaORGGridList.data = tempData; } else { $scope.areaORGGridList.data = $scope.data; } }; $scope.AddOrg = function (buID) { $scope.orgOperateType = constant.Operation.Add; $scope.selectedOrg = null; $scope.isOrgUpdate = false; $scope.organization = { businessUnitID: buID }; }; //添加现有维度 $scope.popupDimensionAddWin = function () { $scope.addExisDimensionOperateType = constant.Operation.Add; $scope.addExistDimensionIsUpdated = false; $scope.selectedDimensionValueList = []; $scope.generalSettingList.data.forEach(function (item) { $scope.selectedDimensionValueList.push(item.dimensionValueID); $scope.originalDVlist = angular.copy($scope.selectedDimensionValueList); }); }; //获取机构上层维度设置 $scope.getDimensionRoleListView = function () { var userId = $stateParams.id; orgService.getOrgBuAreaIndustryUser(userId).success(function (data) { data.forEach(function (row) { var uniqueRoleList = _.uniq(row.roleList, function (item) { return item.roleID; }); if (row.isAccessible) { var roleNameList = _.map(uniqueRoleList, function (x) { return x.roleName; }).join(','); row.roleName = roleNameList; } else { row.roleName = $translate.instant('NonAccessible'); //不可访问 } row.extraRoleList = _.filter(row.roleList, function (item) { return item.roleSource == constant.roleSource.DimensionLevel; }); }); $scope.dimensionRoleList = data; $scope.generalSettingList.data = data; $scope.getOrgRoleListView(); }); }; //获取机构设置 $scope.getOrgRoleListView = function () { var userId = $stateParams.id; userService.getUserRoleByUserID(userId).success(function (data) { if (data && data.orgDtoList) data.orgDtoList.forEach(function (row) { //var uniqueRoleList = _.uniq(row.roleList, function (item) { // return item.id; //}); //var roleNameList = _.map(uniqueRoleList, function (x) { return x.name; }).join(','); //row.roleName = roleNameList; //row.extraRoleList = _.filter(row.roleList, function (item) { // return item.roleSource == constant.roleSource.OrganizationLevel; //}); var uniqRoleList = _.uniq(row.roleList, function (item) { return item.id }); if (row.isAccessible) { if (uniqRoleList && uniqRoleList.length > 0) { row.roleName = _.map(uniqRoleList, function (x) { return x.name; }).join(constant.comma); } else { row.roleName = $translate.instant('NoRole'); } } else { row.roleName = $translate.instant('NonAccessible'); //不可访问 } }); $scope.orgRoleList = data.orgDtoList; $scope.orgSettingList.data = data.orgDtoList; $scope.allOrgInfo = data.orgRoleInfoList; }); }; //添加现有机构 $scope.$watch('addExistOrgIsUpdate', function (newValue, oldValue) { if (newValue) { if ($scope.selectedExistOrgList && $scope.selectedExistOrgList.length > 0) { var orgList = []; var newAddedItems = []; $scope.orgSettingList.data.forEach(function (row) { orgList.push(row.orgID); }); var selectedOrgIdList = _.map($scope.selectedExistOrgList, function (item) { return item.id; }); selectedOrgIdList.forEach(function (orgId) { if (orgList.indexOf(orgId) < 0) { newAddedItems.push(orgId); } }); var userID = $stateParams.id; roleService.updateUserOrg(newAddedItems, userID).success(function (data) { $scope.getOrgRoleListView(); SweetAlert.success($translate.instant('addExistOrgTitle'), $translate.instant('addOrgListSuccess')); }); } } }); var areaORGGridInit = function () { $scope.areaORGGridList = { enableRowSelection: true, enableSelectAll: false, rowHeight: 40, enableRowHeaderSelection: false, modifierKeysToMultiSelect: false, enableHorizontalScrollbar: uiGridConstants.scrollbars.NEVER, enableVerticalScrollbar: uiGridConstants.scrollbars.enableVerticalScrollbar, enableSorting: true, enableColumnMenus: false, enableFiltering: false, showTreeExpandNoChildren: false, enableFullRowSelection: true, //是否点击行任意位置后选中,默认为false multiSelect: false, // 是否可以选择多个,默认为true; columnDefs: [{ field: 'orgName', name: $translate.instant('OrganizationName'), headerCellClass: '', cellTemplate: '<div ng-class="{true: \'text-align-left\', false: \'text-align-left-padding\'}[!row.entity.isOrganization]"><span title="{{row.entity.orgName}}">{{row.entity.orgName}}</span></div>' }, { field: 'businessUnit', name: $translate.instant('BusinessUnitTitleName'), headerCellClass: '', cellTemplate: '<div class="text-align-left"><span title="{{row.entity.businessUnit}}">{{row.entity.businessUnit}}</span></div>' }, { field: 'area', name: $translate.instant('AreaTitleName'), headerCellClass: '', cellTemplate: '<div class="text-align-left"><span>{{row.entity.areaName}}</span></div>' }, { field: 'industry', name: $translate.instant('IndustryTitleName'), headerCellClass: '', cellTemplate: '<div class="text-align-left"><span>{{row.entity.industryName}}</span></div>' }, { field: 'user', name: $translate.instant('UserTitleName'), headerCellClass: '', cellTemplate: '<div class="text-align-left"><span>{{row.entity.userInfo}}</span></div>' }], onRegisterApi: function (gridApi) { $scope.gridApi = gridApi; $scope.gridSelectCount = $scope.gridApi.selection.getSelectedRows().length; var onRowsRenderedOff = gridApi.core.on.rowsRendered(null, function () { onRowsRenderedOff(); // run once PWC.triggerRowSelectOnClick('#etsGrid'); // requires '.ui-grid-canvas' }); // call resize every 500 ms for 5 s after modal finishes opening - usually only necessary on a bootstrap modal $interval(function () { $scope.gridApi.core.handleWindowResize(); }, 500, 60 * 60 * 8); } }; $scope.getRoleListWithComma = function (roleList) { var nameList = _.map(roleList, function (item) { return item.roleName }); return nameList.join(','); }; var str = ''; if ($scope.hasEditPermission) { str = '<div class="text-align-left"><span> <i class="fa fa-trash" style="color:#ee7749" aria-hidden="true" ng-click="grid.appScope.deleteDimensionRole(row)"></i></span></div>'; } else { str = '<div class="text-align-left"><span class="no-permission"> <i class="fa fa-trash" style="color:#ee7749" aria-hidden="true"></i></span></div>'; } //机构上层维度设置 grid初始化 $scope.generalSettingList = { enableRowSelection: true, enableSelectAll: false, rowHeight: 40, enableRowHeaderSelection: false, modifierKeysToMultiSelect: false, enableHorizontalScrollbar: uiGridConstants.scrollbars.NEVER, enableVerticalScrollbar: uiGridConstants.scrollbars.enableVerticalScrollbar, enableSorting: true, enableColumnMenus: false, enableFiltering: false, showTreeExpandNoChildren: false, enableFullRowSelection: true, //是否点击行任意位置后选中,默认为false multiSelect: false, // 是否可以选择多个,默认为true; columnDefs: [{ field: 'roleObject', width: '20%', name: $translate.instant('RoleDimensionTitle'), headerCellClass: '', cellTemplate: '<div><span title="{{row.entity.dimensionName}}" style="padding-left:10px;">{{row.entity.dimensionName}}</span></div>' }, { field: 'accessControl', name: $translate.instant('DimensionName'), headerCellClass: '', width: '20%', cellTemplate: '<div><span title="{{row.entity.dimensionValueName}}" style="padding-left:10px;">{{row.entity.dimensionValueName}}</span></div>' }, { field: 'role', name: $translate.instant('RoleTitle'), headerCellClass: '', width: '39%', cellTemplate: '<div class="text-align-left" id="{{row.entity.dimensionValueID}}" aria-hidden="true" ng-click="grid.appScope.showRoleInfoCard(row,1)"><span title="{{row.entity.roleName}}">{{row.entity.roleName |limitString:32 }}</span></div>' }, { field: 'array', name: '', headerCellClass: '', width: '1%', cellTemplate: '<div class="text-align-left" id="{{row.entity.dimensionValueID}}" aria-hidden="true" ng-click="grid.appScope.showRoleInfoCard(row,1)"><i class="fa fa-caret-down icon-right" style="padding-left: 0px;"></i></div>' }, { field: 'role', name: $translate.instant('OrgUserAction'), headerCellClass: '', width: '20%', cellTemplate: str }], onRegisterApi: function (gridApi) { $scope.gridApi = gridApi; $scope.gridSelectCount = $scope.gridApi.selection.getSelectedRows().length; var onRowsRenderedOff = gridApi.core.on.rowsRendered(null, function () { onRowsRenderedOff(); // run once //PWC.triggerRowSelectOnClick('#etsGrid'); // requires '.ui-grid-canvas' }); // call resize every 500 ms for 5 s after modal finishes opening - usually only necessary on a bootstrap modal $interval(function () { $scope.gridApi.core.handleWindowResize(); }, 500, 60 * 60 * 8); } }; $scope.isChecked = true; $scope.switchCheck = function () { $scope.isChecked = !$scope.isChecked; }; var orgStr = ''; if ($scope.hasEditPermission) { orgStr = '<div class="text-align-left"><span><i style="color: #404041;" class="material-icons" ng-click="grid.appScope.modifyOrgRole(row)">create</i> <i class="fa fa-trash" style="color:#ee7749" aria-hidden="true" ng-click="grid.appScope.deleteOrgRole(row)"></i></span></div>'; } else { orgStr = '<div class="text-align-left"><span class="no-permission"><i class="material-icons">create</i> <i class="fa fa-trash" style="color:#ee7749" aria-hidden="true"></i></span></div>'; } //机构设置 grid初始化 $scope.orgSettingList = { enableRowSelection: true, enableSelectAll: false, rowHeight: 40, enableRowHeaderSelection: false, modifierKeysToMultiSelect: false, enableHorizontalScrollbar: uiGridConstants.scrollbars.NEVER, enableVerticalScrollbar: uiGridConstants.scrollbars.enableVerticalScrollbar, enableSorting: true, enableColumnMenus: false, //enableColumnResizing: true, enableFiltering: false, showTreeExpandNoChildren: false, enableFullRowSelection: true, //是否点击行任意位置后选中,默认为false multiSelect: false, // 是否可以选择多个,默认为true; columnDefs: [{ field: 'orgNameTitle', name: $translate.instant('OrgNameTitle'), headerCellClass: '', width: '35%', cellTemplate: '<div ng-class="{true: \'text-align-left\', false: \'text-align-left-padding\'}[!row.entity.isOrganization]"><span title="{{row.entity.orgName}}">{{row.entity.orgName | limitString:30}}</span></div>' }, { field: 'roleTitle', name: $translate.instant('RoleTitle'), headerCellClass: '', width: '40%', cellTemplate: '<div class="text-align-left" id="{{row.entity.orgID}}" aria-hidden="true"><span title="{{row.entity.roleName}}">{{row.entity.roleName |limitString:32 }}</span></div>' }, { field: 'roleAction', name: $translate.instant('OrgUserAction'), headerCellClass: '', width: '25%', cellTemplate: orgStr }], onRegisterApi: function (gridApi) { $scope.gridApi = gridApi; $scope.gridSelectCount = $scope.gridApi.selection.getSelectedRows().length; var onRowsRenderedOff = gridApi.core.on.rowsRendered(null, function () { onRowsRenderedOff(); // run once //PWC.triggerRowSelectOnClick('#etsGrid'); // requires '.ui-grid-canvas' }); // call resize every 500 ms for 5 s after modal finishes opening - usually only necessary on a bootstrap modal $interval(function () { $scope.gridApi.core.handleWindowResize(); }, 500, 60 * 60 * 8); } }; }; $scope.modifyDimensionRole = function (data) { console.log('modifyDimensionRole:', data); }; $scope.deleteDimensionRole = function (data) { var userId = $stateParams.id; SweetAlert.swal({ title: $translate.instant('ConfirmDelete') + '?', text: $translate.instant('userDimensionDeleteConfirm') + '?', type: "warning", showCancelButton: true, confirmButtonColor: "#DD6B55", confirmButtonText: $translate.instant('Confirm'), cancelButtonText: $translate.instant('Cancel'), closeOnConfirm: false, closeOnCancel: true }, function (isConfirm) { if (isConfirm) { orgService.deleteUserDimensionValue(data.entity, userId).success(function (data) { $scope.getDimensionRoleListView(); SweetAlert.success($translate.instant('deleteRoleUserDetailTitle'), $translate.instant('deleteUserDimensionSuccess')); }); } }); }; $scope.modifyOrgRole = function (row) { console.log(row); $scope.userRoleOperateType = constant.Operation.Edit; $scope.selectedOrgID = row.entity.orgID; $scope.selectedUserID = $scope.userID; $scope.userRolesIsUpdate = false; }; $scope.deleteOrgRole = function (data) { var userId = $stateParams.id; SweetAlert.swal({ title: $translate.instant('ConfirmDelete') + '?', text: $translate.instant('userOrgDeleteConfirm') + '?', type: "warning", showCancelButton: true, confirmButtonColor: "#DD6B55", confirmButtonText: $translate.instant('Confirm'), cancelButtonText: $translate.instant('Cancel'), closeOnConfirm: false, closeOnCancel: true }, function (isConfirm) { if (isConfirm) { var selectedArr = []; var allOrgInfo = _.filter($scope.allOrgInfo, function (item) { return item.organizationID == data.entity.orgID; }); if (allOrgInfo && allOrgInfo.length > 0) { allOrgInfo.forEach(function (row) { var selectedObject = { dimensionValueID: row.dimensionValueID, dimensionID: row.dimensionID, userID: userId, organizationID: row.organizationID, isHeritable: false //设置维度在机构上,是否可继承 }; selectedArr.push(selectedObject); }); } userService.deleteUserRoleOrg(selectedArr).success(function (data) { if (data) { SweetAlert.success($translate.instant('deleteRoleUserDetailTitle'), $translate.instant('deleteUserOrgSuccess')); $scope.getOrgRoleListView(); } }); //orgService.deleteUserOrg(data.entity, userId).success(function (data) { // $scope.getOrgRoleListView(); // SweetAlert.success($translate.instant('deleteRoleUserDetailTitle'), $translate.instant('deleteUserOrgSuccess')); //}); } }); }; var getUserPermission = function () { var list = []; var userManageTemp = constant.adminPermission.infrastructure.userManage; list.push(userManageTemp.addCode); list.push(userManageTemp.editCode); $scope.$root.checkUserPermissionList(list).success(function (data) { $scope.hasAddPermission = data[userManageTemp.addCode]; $scope.hasEditPermission = data[userManageTemp.editCode]; areaORGGridInit(); }); }; (function initialize() { $log.debug('UserDetailViewController.ctor()...'); $scope.roleEntity = {}; $scope.hasAddPermission = false; $scope.hasEditPermission = false; getUserPermission(); loadPermissionTree(); $scope.getDimensionRoleListView(); $scope.getOrgRoleListView(); $scope.getUserRoleData(); })(); } ]);