'use strict'; /** * controller for User Profile Example */ app.controller('adminNavmanagerListCtrl', ["$rootScope", "$scope", "$state", "$timeout", "$interval", "$modal", "SweetAlert", "Restangular", "api_configure_data", "api_conversation", "api_user_data", function($rootScope, $scope, $state, $timeout, $interval, $modal, SweetAlert, Restangular, api_configure_data, api_conversation, api_user_data) { //button $scope.showAddservice = false; $scope.showAddmenu = false; $scope.showchange = false; $scope.showremove = false; api_user_data.pageEvent({ "userId": $rootScope.user.id, "menuCode": "app.system.navmanager" }).then(function(response) { if (response.status == 200) { var data = response.data; angular.forEach(data, function(item) { if (item.event == "service") { $scope.showAddservice = true; } else if (item.event == "menu") { $scope.showAddmenu = true; } else if (item.event == "change") { $scope.showchange = true; } else if (item.event == "remove") { $scope.showremove = true; } }) } else { SweetAlert.swal({ title: "系统权限错误!", text: "请刷新重试!", type: "error" }); } }); //树形图 $scope.bodyHeight = Math.max((window.innerHeight - 290), 500); var apple_selected, tree, treedata_avm, treedata_geography; $scope.my_tree = {}; $scope.my_power = {}; 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 //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 var parentNode = idToNodeMap[datum.parent.id]; //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); } } return root; } function convertParentToChildList(data) { var treeMap = {}; var list = []; convertListToTree(data, treeMap); angular.forEach(treeMap, function(item) { list.push(item); }); return list; } $scope.try_async_powerload = function(items) { $scope.getbranchs = items; $scope.my_power = []; var objects = []; api_configure_data.fetchDataList('menu', { "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.title; objects.push(object); } angular.forEach(objects, function(index, i) { angular.forEach(items, function(item) { if (index.id == item.id) { objects[i].checks = true; } }) }) $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" }); } }); }; //start click the user // $scope.role = {}; // $scope.my_tree_handler = function(branch) { // $scope.role = { 'id': branch.id, 'role': branch.role, 'rolecode': branch.rolecode, 'roletype': branch.roletype }; // $scope.try_async_powerload(branch.menu); // } $scope.try_async_powerload() //start remove // $scope.getbranchs = []; // $scope.formbranch = function(branchData) { // $scope.getbranchs = branchData; // } //add menu $scope.addData = function() { $state.go('app.system.navmanager.form', { formKey: 'system_add_menu', service: 'api_configure_data' }); } //add service $scope.addService = function() { $state.go('app.system.navmanager.form', { formKey: 'system_add_service', service: 'api_configure_data' }); } //change menu $scope.choiceMenu = []; $scope.showHandler = function(branch) { $scope.choiceMenu = branch; } $scope.changeMenu = function() { var fildata = {}; if ($scope.choiceMenu.service) { // fildata = $scope.choiceMenu.service; api_configure_data.fetchDataById('linkConfigure', $scope.choiceMenu.service).then(function(response) { if (response.status == 200) { response.data['menu'] = { menu: response.data.menu }; var modelData = { model: response.data } $state.go('app.system.navmanager.form', { formKey: 'system_add_service', service: 'api_configure_data', model: JSON.stringify(modelData) }); } }) } else { // fildata = $scope.choiceMenu.id; api_configure_data.fetchDataById('menu', $scope.choiceMenu.id).then(function(response) { if (response.status == 200) { if (response.data.link != null) { response.data.type = "link"; var modelData = { model: response.data } $state.go('app.system.navmanager.form', { formKey: 'system_add_menu', service: 'api_configure_data', model: JSON.stringify(modelData) }); var modelData = { model: response.data } } else if (response.data.service) { // response.data.type = "service"; response.data['menu'] = { menu: response.data.menu }; var modelData = { model: response.data } $state.go('app.system.navmanager.form', { formKey: 'system_add_service', service: 'api_configure_data', model: JSON.stringify(modelData) }); } 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.navmanager.form', { formKey: 'system_add_menu', service: 'api_configure_data', model: JSON.stringify(modelData) }); } else if (response.data.wechat) { response.data.type = "wechat"; response.data['menu'] = { parent: response.data.parent }; var modelData = { model: response.data } $state.go('app.system.navmanager.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 = []; // $scope.modelstring = {}; // angular.forEach(scope.getbranchs, function(item) { // $scope.rmvList.push(item); // }) $scope.ok = function() { // $modalInstance.close($scope.rmvList, $scope.modelstring); if (scope.choiceMenu.children && scope.choiceMenu.children.length > 0) { SweetAlert.swal({ title: "操作异常!", text: "请先删除菜单子类", type: "error" }); } else { $modalInstance.close(scope.choiceMenu); } }; $scope.cancel = function() { $modalInstance.dismiss('cancel'); }; }, size: 'sm', resolve: { scope: function() { return $scope; } } }); modalInstance.result.then(function(selectedItem) { if (selectedItem) { // if (selectedItem.length > 0) { var dataservice = []; var datamenu = []; if (selectedItem.service && selectedItem.service != null) { dataservice.push(selectedItem.service); } else { datamenu.push(selectedItem.id); } // angular.forEach(selectedItem, function(item) { // if (item.service) { // dataservice.push(item.service); // } else { // datamenu.push(item.id); // } // }) if (datamenu.length > 0) { api_configure_data.rmvData("menu", datamenu).then(function(response) { if (response.data) { SweetAlert.swal({ title: "删除成功!", type: "success", confirmButtonColor: "#007AFF" }, function() { $scope.try_async_powerload() }); } else { if (dataservice.length > 0) { } else { SweetAlert.swal({ title: "操作异常!", text: "系统异常,请稍后重试,或者联系管理员!", type: "error" }); } } }) } if (dataservice.length > 0) { api_configure_data.rmvData("linkConfigure", dataservice).then(function(response) { if (response.data) { SweetAlert.swal({ title: "删除成功!", type: "success", confirmButtonColor: "#007AFF" }, function() { $scope.try_async_powerload() $scope.getbranchs = []; }); } else { if (dataservice.length > 0) { } else { SweetAlert.swal({ title: "操作异常!", text: "系统异常,请稍后重试,或者联系管理员!", type: "error" }); } } }) } // } } }) } }])