'use strict'; app.controller('qxgl_wtCtrl', ["$scope", "$http", "$rootScope", "$state", "$timeout", "moment", "$interval", "$modal", "$stateParams", "SweetAlert", "Restangular", "api_bpm_domain", "api_text", "api_bpm_data", "api_user_data", "api_configure_data", "api_configure_form", "api_cmdb", 'api_bpm', 'ngDraggable', 'api_solution', 'api_report_data', function ($scope, $http, $rootScope, $state, $timeout, moment, $interval, $modal, $stateParams, SweetAlert, Restangular, api_bpm_domain, api_text, api_bpm_data, api_user_data, api_configure_data, api_configure_form, api_cmdb, api_bpm, ngDraggable, api_solution, api_report_data) { var loginUser = $rootScope.user; console.log(loginUser); $scope.userDatas = []; $scope.userIndex = 9999; $scope.wt_names = ''; //获取人员数据 $scope.userData = function () { var data = { idx: 0, sum: 10000, flag: -1 } api_user_data.fetchDataList('user', data).then(function (response) { console.log(response) if (response) { if (response.status == 200) { $scope.userDatas = response.list; console.log($scope.userDatas) } } }) } $scope.userData(); //人员搜索 $scope.ss_name = function () { console.log($scope.wt_names); var data = { idx: 0, sum: 10000, flag: -1, user: { flag: -1, name: $scope.wt_names } } api_user_data.fetchDataList('user', data).then(function (response) { console.log(response) if (response) { if (response.status == 200) { $scope.userDatas = response.list; console.log($scope.userDatas) } } }) } //搜索按钮 $scope.wt_ss = function () { $scope.ss_name(); } var loginUser = $rootScope.user; //user tree var apple_selected, tree, treedata_avm, treedata_geography; var i = 0; $scope.bodyHeight = Math.max((window.innerHeight - 290), 500); $(window).resize(function () { $scope.bodyHeight = Math.max((window.innerHeight - 290), 500); }); $rootScope.isMask = false; //角色仪表权限 function dashboardaborad(branch) { $scope.dashboard_tree = angular.copy($scope.dashboard_data); angular.forEach($scope.dashboard_tree, function (index, i) { if (branch.dashboard && branch.dashboard.length > 0) { angular.forEach(branch.dashboard, function (item) { if (index.id == item.id) { $scope.dashboard_tree[i].checks = true; } }) } }) } //角色树 $scope.my_tree = {}; $scope.my_power = {}; $scope.try_async_load = function () { $scope.my_data = []; $scope.doing_async = true; api_user_data.fetchDataList('role', { "idx": 0, "sum": 1000 }).then(function (response) { if (response.status == 200) { var data = response.list; var objects = []; for (var i = 0; i < data.length; i++) { var object = {}; object.id = data[i].id; if (data[i].parent && data[i].parent.id != 0) { object.parent = data[i].parent.id; } angular.extend(object, data[i]); object.label = object.role; if (loginUser.id == 1) { objects.push(object); } else { if (object.rolecode != "system_menus") { objects.push(object); } } } $scope.my_data = convertParentToChildList(objects); $scope.tree_data = angular.copy($scope.my_data); if ($scope.my_data.length > 0) { $scope.doing_async = false; } } else { SweetAlert.swal({ title: "系统错误!", text: "请刷新重试!", type: "error" }); } }); }; function convertListToTree(data, treeMap) { var idToNodeMap = {}; //Keeps track of nodes using id as key, for fast lookup var root = null; //Initially set our loop to null var parentNode = null; //loop over data for (var i = 0; i < data.length; i++) { var datum = data[i]; //each node will have children, so let's give it a "children" poperty datum.children = []; //add an entry for this node to the map so that any future children can //lookup the parent idToNodeMap[datum.id] = datum; //Does this node have a parent? // console.log("datum="+JSON.stringify(datum)) if (typeof datum.parent === "undefined" || datum.parent === null) { //Doesn't look like it, so this node is the root of the tree root = datum; treeMap[datum.id] = root; } else { //This node has a parent, so let's look it up using the id parentNode = idToNodeMap[datum.parent.id]; // console.log(idToNodeMap) // console.log(parentNode.children) // console.log($scope.parentNode) //We don't need this property, so let's delete it. // delete datum.parent; //Let's add the current node as a child of the parent node. parentNode.children.push(datum); } } console.log(root) return root; } function convertParentToChildList(data) { console.log(data) var treeMap = {}; var list = []; convertListToTree(data, treeMap); angular.forEach(treeMap, function (item) { list.push(item); }); return list; } $scope.try_async_load(); //end power //普通用户菜单权限 $scope.try_async_powerload = function (items) { console.log(items) console.log(items.ciClassify) if (items) { $scope.getbranchs = items.ciClassify; } // $scope.my_power = []; var objects = []; var selected = []; // api_user_data.roleMenu(items.id).then(function(response) { // api_configure_data.fetchDataList('menu', { "idx": 0, "sum": 1000 }).then(function(response) { // if (response.status == 200) { // var data = response.data; // console.log(data) // var objects = []; // for (var i = 0; i < items.ciClassify.length; i++) { // var object = {}; // object.id = items.ciClassify[i].id; // if (items.ciClassify[i].parent && items.ciClassify[i].parent.id != 0) { // object.parent = items.ciClassify[i].parent.id; // } // angular.extend(object, items.ciClassify[i]); // object.label = object.label; // objects.push(object); // } // console.log(objects) // selected = angular.copy($scope.tile); selected = angular.copy(items.ciClassify); console.log(selected) // $scope.my_power = angular.copy($scope.tree_power); if (selected.length > 0) { // angular.forEach($scope.tile, function (index, i) { // angular.forEach(selected, function (item) { // // console.log(item) // // console.log(index) // $scope.tile[i].checks = false; // if (index.id == item.id) { // $scope.tile[i].checks = true; // console.log(ii++) // } // else{ // // $scope.tile[i].checks = false; // console.log(iii++) // } // }) // }) $scope.wwwwww = [] for (var i = 0; i < $scope.tile.length; i++) { $scope.tile[i].checks = false; for (var j = 0; j < selected.length; j++) { if (selected[j].id == $scope.tile[i].id) { $scope.tile[i].checks = true; } } } console.log($scope.tile) $scope.my_power = convertParentToChildList($scope.tile); } else { console.log(selected) angular.forEach($scope.tile, function (item, i) { $scope.tile[i].checks = false; }) $scope.my_power = convertParentToChildList($scope.tile); } if ($scope.my_power.length > 0) { $scope.doing_asyncpower = false; } // } else { // SweetAlert.swal({ // title: "系统错误!", // text: "请刷新重试!", // type: "error" // }); // } // }); }; //普通用户底菜单权限 $scope.my_power = []; $scope.tile = []; $scope.try_async_powerloadlow = function () { var objects = []; var data1 = { "idx": 0, "sum": 1000, "ciclassify": { id: 0 } }; api_report_data.fetchDataList1("ciclassify", data1).then(function (response) { if (response.status == 200) { var data = response.list; // $scope.my_power=response.list; var objects = []; for (var i = 0; i < data.length; i++) { var object = {}; object.id = data[i].id; if (data[i].parent && data[i].parent.id != 0) { object.parent = data[i].parent.id; } angular.extend(object, data[i]); object.label = object.label; objects.push(object); } $scope.tile = objects; $scope.my_power = convertParentToChildList(objects); $scope.tree_power = angular.copy($scope.my_power); if ($scope.my_data.length > 0) { $scope.doing_asyncpower = false; } } else { SweetAlert.swal({ title: "系统错误!", text: "请刷新重试!", type: "error" }); } }); }; //管理员 底菜单 $scope.try_async_powerloadadmin = function () { var objects = []; // api_conversation.pageMenuByCode("system_menus").then(function(response) { api_user_data.getMenu({}).then(function (response) { if (response.status == 200) { var data = response.data; var objects = []; for (var i = 0; i < data.length; i++) { var object = {}; object.id = data[i].id; if (data[i].parent && data[i].parent.id != 0) { object.parent = data[i].parent.id; } angular.extend(object, data[i]); object.label = object.title; objects.push(object); } $scope.tile = objects; $scope.my_power = convertParentToChildList(objects); $scope.tree_power = angular.copy($scope.my_power); if ($scope.tree_power.length > 0) { $scope.doing_asyncpower = false; } } else { SweetAlert.swal({ title: "系统错误!", text: "请刷新重试!", type: "error" }); } }); }; //点击角色 $scope.role = {}; $scope.change = true; $scope.my_tree_handler = function (branch, index) { console.log(branch) $scope.users = {}; $scope.userIndex $scope.users = branch console.log($scope.roledetail) console.log($scope.tree_power) console.log($scope.my_power) $scope.userIndex = index $scope.role = branch.role; // for (var i = 0; i < $scope.roledetail.length; i++) { // if ($scope.role.model == $scope.roledetail[i].name) { // $scope.role.model = { 'id': $scope.roledetail[i].id, 'name': $scope.roledetail[i].name } // } // } $scope.formlist = branch.dashboard;; dashboardaborad($scope.role); $scope.try_async_powerload(branch); $scope.change = false; } if (loginUser.id == 1) { $scope.try_async_powerloadadmin(); } else { $scope.try_async_powerloadlow(); } // $scope.try_async_powerloadadmin(); // console.log(loginUser); //start remove $scope.getbranchs = {}; $scope.formbranch = function (branchData) { console.log(branchData) if (!$scope.users) { for (var i = 0; i < branchData.length; i++) { branchData[i].checks = false } SweetAlert.swal({ title: "操作异常!", text: "请先选择人员,再进行分类权限操作!", type: "error" }); console.log(branchData) return; } else { $scope.getbranchs = branchData; } } //change right //修改权限 $scope.changeData = function () { console.log($scope.getbranchs) if ($scope.getbranchs.length > 0) { var menu = []; // $rootScope.isMask = true; var datas = { loginUser: loginUser, user: $scope.users } datas.user.ciClassify = $scope.getbranchs; for (var i = 0; i < datas.user.ciClassify.length; i++) { delete (datas.user.ciClassify[i].checks); delete (datas.user.ciClassify[i].children); delete (datas.user.ciClassify[i].classes); delete (datas.user.ciClassify[i].expanded); delete (datas.user.ciClassify[i].parent_uid); delete (datas.user.ciClassify[i].uid); } console.log(datas); // angular.forEach($scope.getbranchs, function (it) { // menu.push({ "id": it.id }); // }) // var branch = { 'menu': menu }; // angular.extend(branch, { 'id': $scope.role.id, 'role': $scope.role.role, 'rolecode': $scope.role.rolecode, 'roletype': $scope.role.roletype, 'dashboard': $scope.role.dashboard }) // var modelData = {role: branch}; api_user_data.addData('user', datas).then(function (response) { if (response && response.status == 200) { $scope.my_tree_handler($scope.users, $scope.userIndex); SweetAlert.swal({ title: "提交成功!", type: "success", confirmButtonColor: "#007AFF" }, function () { // $rootScope.isMask = false; // $scope.userData(); }); } else { SweetAlert.swal({ title: "系统错误", text: "系统错误,请稍后重试!", type: "error", confirmButtonColor: "#DD6B55" }, function () { // $rootScope.isMask = false; }); } }) } else { SweetAlert.swal({ title: "操作异常", text: "请先选择人员,再进行分类权限操作!", type: "error", confirmButtonColor: "#DD6B55" }, function () { // $rootScope.isMask = false; }); } // $state.go('app.system.form',{formKey:'system_add_menu', service:'api_configure_data', model : JSON.stringify(modelData)}); } //新增角色 // $scope.addData = function() { // $state.go('app.system.form', { formKey: 'system_add_menu', service: 'api_configure_data' }); // } //change menu // $scope.choiceMenu = []; // $scope.showHandler = function(branch) { // $scope.choiceMenu = branch; // } // $scope.changeMenu = function() { // // if ($scope.choiceMenu && $scope.choiceMenu != null) { // // } // api_configure_data.fetchDataById('menu', $scope.choiceMenu.id).then(function(response) { // if (response.status == 200) { // if (response.data.link != null) { // response.data.type = "link"; // } else if (response.data.service) { // response.data.type = "service"; // } else if (response.data.event) { // response.data.type = "event"; // } // response.data['menu'] = { parent: response.data.parent }; // var modelData = { model: response.data } // $state.go('app.system.form', { formKey: 'system_add_menu', service: 'api_configure_data', model: JSON.stringify(modelData) }); // } // }) // } //remove menu $scope.removeData = function () { var modalInstance = $modal.open({ templateUrl: 'assets/views/delete.html', controller: function ($scope, scope, $modalInstance) { $scope.rmvList = []; angular.forEach(scope.getbranchs, function (item) { $scope.rmvList.push(item.id); }) $scope.ok = function () { $modalInstance.close($scope.rmvList); }; $scope.cancel = function () { $modalInstance.dismiss('cancel'); }; }, size: 'sm', resolve: { scope: function () { return $scope; } } }); modalInstance.result.then(function (selectedItem) { if (selectedItem) { if (selectedItem.length > 0) { api_configure_data.rmvData('menu', selectedItem).then(function (response) { if (response.data) { SweetAlert.swal({ title: "删除成功!", type: "success", confirmButtonColor: "#007AFF" }, function () { if (loginUser.id == 1) { $scope.try_async_powerloadadmin(); } else { $scope.try_async_powerload(); } }); } else { SweetAlert.swal({ title: "操作异常!", text: "系统异常,请稍后重试,或者联系管理员!", type: "error" }); } }) } } }) } //add role $scope.addRole = function () { var modalInstance = $modal.open({ templateUrl: 'assets/views/system/tpl/addpower.html', controller: function ($scope, scope, $modalInstance, api_user_data) { $scope.roledetail = [{ 'id': 1, 'name': '事件流程' }, { 'id': 2, 'name': '问题流程' }, { 'id': 3, 'name': '变更流程' }, { 'id': 4, 'name': '发布流程' }, { 'id': 5, 'name': '知识库模块' }, { 'id': 6, 'name': '资产模块' }, { 'id': 7, 'name': '系统管理模块' }] $scope.cancel = function () { $modalInstance.dismiss('cancel'); }; $scope.ok = function (role) { if (role.role) { var roledisable = false; for (var i = 0; i < scope.my_data.length; i++) { if (scope.my_data[i].role == role.role) { roledisable = true; break; } } if (!roledisable) { angular.extend(role, { 'roletype': '0' }); if (role.model) { role.model = role.model.name; } var fildata = { loginUser: loginUser, role }; $modalInstance.close(fildata); } else { SweetAlert.swal({ title: "新增失败!", text: "该角色已存在", type: "error" }) } } else { SweetAlert.swal({ title: "新增失败!", text: "请填写角色名", type: "error" }) } } }, resolve: { scope: function () { return $scope; } } }); modalInstance.result.then(function (selectedItem) { if (selectedItem) { api_user_data.addData('role', selectedItem).then(function (response) { if (response) { if (response.status == 200) { SweetAlert.swal({ title: "新增成功!", type: "success" }, function () { $scope.try_async_load(); }) } else { SweetAlert.swal({ title: "新增失败!", type: "error" }) } // $modalInstance.close(); } }) } }) } // $scope.addRole = function(role) { // // $scope.roledetail = [{ 'id': 1, 'name': '事件流程' }, { 'id': 2, 'name': '问题流程' }, { 'id': 3, 'name': '变更流程' }] // angular.extend(role, { 'roletype': '0' }); // if (role.model) { // role.model = role.model.name; // } // var fildata = { loginUser: loginUser, role }; // // var fildata = { loginUser: loginUser, 'role': { 'id': $scope.role.id, 'role': $scope.role.role, 'roletype': $scope.role.roletype, 'model': model, 'remark': $scope.role.remark } }; // api_user_data.addData('role', fildata).then(function(response) { // if (response) { // if (response.status == 200) { // SweetAlert.swal({ // title: "新增成功!", // type: "success" // }, function() { // $scope.try_async_load(); // // $scope.refreshData('expand-right', defaultFilterData); // }) // } else { // SweetAlert.swal({ // title: "新增失败!", // type: "error" // }) // } // // $modalInstance.close(); // } // }) // } //角色详情 $scope.roledetail = [{ 'id': 1, 'name': '事件流程' }, { 'id': 2, 'name': '问题流程' }, { 'id': 3, 'name': '变更流程' }] //change role $scope.changerole = function (role) { var model = ""; if ($scope.role.model) { model = $scope.role.model.name } var fildata = { loginUser: loginUser, 'role': { 'id': $scope.role.id, 'role': $scope.role.role, 'roletype': $scope.role.roletype, 'model': model, 'remark': $scope.role.remark } }; api_user_data.addData('role', fildata).then(function (response) { if (response) { if (response.status == 200) { SweetAlert.swal({ title: "修改成功!", type: "success" }, function () { $scope.try_async_load(); // $scope.refreshData('expand-right', defaultFilterData); }) } else { SweetAlert.swal({ title: "修改失败!", type: "error" }) } // $modalInstance.close(); } }) } // }) // } //change role $scope.changeRole = function () { var modalInstance = $modal.open({ templateUrl: 'assets/views/system/tpl/addpower.html', controller: function ($scope, scope, $modalInstance, api_user_data) { $scope.role = scope.role; $scope.cancel = function () { $modalInstance.dismiss('cancel'); }; $scope.ok = function (item) { var fildata = { loginUser: loginUser, 'role': { 'id': item.id, 'role': item.role, 'roletype': item.roletype } }; $modalInstance.close(fildata); } }, resolve: { scope: function () { return $scope; } } }); modalInstance.result.then(function (selectedItem) { if (selectedItem) { api_user_data.addData('role', selectedItem).then(function (response) { if (response) { if (response.status == 200) { SweetAlert.swal({ title: "修改成功!", type: "success" }, function () { $scope.try_async_load(); // $scope.refreshData('expand-right', defaultFilterData); }) } else { SweetAlert.swal({ title: "修改失败!", type: "error" }) } // $modalInstance.close(); } }) } }) } //remove role $scope.removeRole = function () { if ($scope.role && $scope.role.roletype == 0) { var modalInstance = $modal.open({ templateUrl: 'assets/views/delete.html', controller: function ($scope, scope, $modalInstance) { var rmvList = []; // angular.forEach(scope.getbranchs, function(item) { // $scope.rmvList.push(item.id); // }) rmvList.push(scope.role.id); $scope.ok = function () { $modalInstance.close(rmvList); }; $scope.cancel = function () { $modalInstance.dismiss('cancel'); }; $scope.title = '角色删除'; $scope.connect = '是否删除该角色' }, size: 'sm', resolve: { scope: function () { return $scope; } } }); modalInstance.result.then(function (selectedItem) { if (selectedItem) { if (selectedItem.length > 0) { api_user_data.rmvData('role', selectedItem).then(function (response) { if (response.data) { SweetAlert.swal({ title: "删除成功!", type: "success", confirmButtonColor: "#007AFF" }, function () { $scope.try_async_load(); }); } else { SweetAlert.swal({ title: "操作异常!", text: "系统异常,请稍后重试,或者联系管理员!", type: "error" }); } }) } } }) } else { SweetAlert.swal({ title: "操作错误!", text: "该角色不能删除!", type: "error" }); } } //仪表盘 //查看仪表盘权限 $scope.doing_asyncdash = true; $scope.dashboard_tree = []; // $scope.try_async_dashboard = function () { // api_user_data.fetchDataList("dashboard", { "idx": 0, "sum": 1000 }).then(function (response) { // if (response.status == 200) { // var data = response.list; // var objects = []; // for (var i = 0; i < data.length; i++) { // var object = {}; // object.id = data[i].id; // object.label = data[i].name; // objects.push(object); // } // $scope.dashboard_tree = objects; // $scope.dashboard_data = angular.copy($scope.dashboard_tree); // if ($scope.dashboard_data.length > 0) { // $scope.doing_asyncdash = false; // } // } else { // SweetAlert.swal({ // title: "系统错误!", // text: "请刷新重试!", // type: "error" // }); // } // }); // } // $scope.try_async_dashboard(); $scope.formlist = {}; $scope.formdashboard = function (branchData) { // $scope.formlist = {}; $scope.formlist = branchData; } //修改仪表盘权限 // var dashboard = []; $scope.changeDashboard = function () { var firldata = {}; var dashboard = []; $rootScope.isMask = true; angular.forEach($scope.formlist, function (item) { dashboard.push({ 'id': item.id, 'name': item.label }); }) firldata = { 'dashboard': dashboard, 'id': $scope.role.id, 'role': $scope.role.role, 'rolecode': $scope.role.rolecode, 'roletype': $scope.role.roletype, 'menu': $scope.role.menu } api_user_data.addData('role', { 'role': firldata }).then(function (response) { if (response && response.status == 200) { $scope.try_async_load(); SweetAlert.swal({ title: "提交成功!", type: "success", confirmButtonColor: "#007AFF" }, function () { $rootScope.isMask = false; // $scope.formlist = {} }); } else { SweetAlert.swal({ title: "系统错误", text: "系统错误,请稍后重试!", type: "error", confirmButtonColor: "#DD6B55" }, function () { $rootScope.isMask = false; }); } }) } }])