app.controller('knowledgecateCtrl', ["$rootScope","$scope", "$state", "$timeout", "$interval", "SweetAlert", "$modal", "FileUploader", "i18nService", "uiGridConstants", "uiGridGroupingConstants", "Restangular","api_bpm_data","api_solution", function ($rootScope, $scope, $state, $timeout, $interval, SweetAlert, $modal, FileUploader, i18nService, uiGridConstants, uiGridGroupingConstants, Restangular, api_bpm_data, api_solution) { $scope.langs=i18nService.getAllLangs(); $scope.lang = 'zh-cn'; var loginUser = $rootScope.user; // $scope.gridOptions = {}; // $scope.gridOptions.data = 'myData'; // $scope.gridOptions.enableColumnResizing = true; // $scope.gridOptions.enableFiltering = false; // $scope.gridOptions.enableGridMenu = false; // $scope.gridOptions.enableRowSelection = true; // $scope.gridOptions.showGridFooter = true; // $scope.gridOptions.showColumnFooter = false; // $scope.gridOptions.fastWatch = true; // $scope.gridOptions.useExternalPagination = true; // $scope.gridOptions.paginationPageSizes = [10]; // $scope.gridOptions.paginationPageSize = 10; // $scope.gridOptions.multiSelect = true; var apple_selected, tree, treedata_avm, treedata_geography; //$scope.selectedTreeNode = {};ssss var i=0; $scope.out=[]; $scope.outdata=[]; var systemtype=[]; $scope.addcate=false; $scope.changecate=false; // $scope.refreshListData = function(){ // var data ={"idx":0,"sum":1000}; // api_bpm_data.fetchDataList('incidentcategory',data).then(function(response){ // if(response){ // if(response.status=200){ // $scope.outdata = response.list; // } // } // }) // } // $scope.refreshListData(); $scope.addType = function(element){ $scope.addcate=true $scope.changecate=false // var modalInstance = $modal.open({ // templateUrl: 'assets/views/system/tpl/systemclose.html', // controller: function($scope, $modalInstance, api_bpm_data){ // // api_bpm_data.fetchDataList('closecode',filterData).then(function(data){ // // var myData = Restangular.stripRestangular(data); // // } // } // }); } $scope.remove = function(element){ var filedata=[element.id] api_solution.rmModels('solutionType',filedata).then(function(response){ if(response){ if(response.status==200){ $scope.try_async_load() SweetAlert.swal({ title:"删除成功!", type:"success" },function(){ $scope.$apply($scope.my_data); }) }else{ SweetAlert.swal({ title:"删除失败!", text: response.msg+"!", type:"error" }) } } }); } var childdata={} ; $scope.subdata={}; $scope.my_tree_handler = function (branch) { $scope.changecate=true; $scope.addcate=false; // console.log($scope.tree_data) filterData.treeIds = branch.id; for(var i=0;i<$scope.parentdata.length;i++){ if(branch.id==$scope.parentdata[i].id){ $scope.subdata=$scope.parentdata[i]; } } // console.log($scope.parentdata) // $scope.subdata=branch // for(var i=0;i<$scope.parentdata.length;i++){ // for(var j=0;j<$scope.parentdata.length;j++){ // if($scope.parentdata[i].pid!=0&&$scope.parentdata[i].id==branch.id){ // if($scope.parentdata[i].pid==$scope.parentdata[j].id){ // $scope.subdata['parent']=$scope.parentdata[j]; // } // } // } // } // if(branch.children.length>0){ // // angular.forEach($scope.parentdata,function(item, index){ // // if(branch.id==item.id){ // // $scope.subdata['parent']=item; // // } // // }); // for(var i=0;i<$scope.parentdata.length;i++){ // if(branch.children.id){ // } // } // }else{ // } $scope.selectedTreeNode = branch; $scope.output = branch ; convertchildToTree(branch); // console.log($scope.subdata) var eqflag = false; angular.forEach($scope.outdata,function(item){ if(item.id==$scope.output.id) eqflag = true; }); if(eqflag){ }else{ $scope.outdata.push({ 'name': $scope.output.label, 'id' : $scope.output.id }); var postData = { typeList:[] }; if($scope.outdata.length>0){ angular.forEach($scope.outdata, function(data){ postData.typeList.push({id:data.id}); }) } // api_solution.findSolutionTypesUser(postData).then(function(response){ // //Restangular. // $scope.userdata = response.data; // }); } }; function convertchildToTree(datum){ // $scope.subdata={}; // console.log($scope.parentdata) // if(datum.children.length==0){ // angular.forEach($scope.parentdata,function(item, index){ // if(datum.id==item.id) return $scope.subdata=item; // }); // }else{ // $scope.subdata={id:datum.id,typeName:datum.label} // } } 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? 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]; //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.onFilterCallback = function(item){ // $scope.addcategory.parent=item.label; // } $scope.parentdata={}; $scope.try_async_load = function () { $scope.my_data = []; $scope.doing_async = true; var data ={"idx":0,"sum":1000}; api_solution.findSolutionTypeActions(loginUser.id).then(function(response){ if(response&&response.status==200){ var data = response.data; // console.log('data='+JSON.stringify(data)); var objects = []; $scope.parentdata=data; for (var i = 0; i < data.length; i++) { var object = {}; object.id = data[i].id; if(data[i].pid != 0){ object.parent = data[i].pid; } // if (object.parent == 0) { // object.parent = "#"; // } object.label = data[i].typeName; object.actions = data[i].actions; //权限部分 object.group = "1"; object.user = "2"; object.state = { "opened": true }; object.typeName = "type"; // if() // if (object.actions.indexOf("2") >= 0) { //知识库类型 具有增加权限--系统管理员 // $scope.showAddSolutionType = true; // } // if (object.actions.indexOf("5") >= 0) { //知识库类型 具有授权权限--系统管理员 // $scope.showReviewKnowledgeType = true; // } 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" }); } }); }; // $scope.parentpid={} // $scope.onFilterCallback = function(item){ // $scope.parentpid=item // } $scope.cancel = function() { $scope.userdata=[]; $scope.outdata=[]; }; //修改 $scope.submitchange= function(formdata) { angular.forEach($scope.my_data, function(data){ if(formdata.id==data.id){ data.category=formdata.category; } }) if(angular.isDefined(formdata.parent_uid)){ filedata={'solutionType':{"id":formdata.id,'typeName':formdata.label}} }else{ filedata={'solutionType':{"id":formdata.id,"pid":0,'typeName':formdata.label}}; } // var paret=""; // if(angular.isDefined(formdata.parent)){ // paret=formdata.parent.id // filedata={"incidentcategory":{"id":formdata.id,"category":formdata.category,"parent":{"id":paret}}} // }else{filedata={"incidentcategory":{"id":formdata.id,"category":formdata.category}}} api_solution.updModel('solutionType',filedata).then(function(response){ if(response){ if(response.status==200){ $scope.try_async_load() SweetAlert.swal({ title:"修改成功!", type:"success" },function(){ $scope.$apply($scope.my_data); }) }else{ SweetAlert.swal({ title:"修改失败!", type:"error" }) } } }); }; //新增 $scope.submitadd= function(formdata) { var paret={} var filedata={} if(angular.isDefined(formdata.parent)){ filedata={'solutionType':{"pid":formdata.parent.id,'typeName':formdata.category}} }else{ filedata={'solutionType':{"pid":0,'typeName':formdata.category}}; } // var filedata={"incidentcategory":{"category":formdata.category,"parent":{"id":paret}}} api_solution.addModel('solutionType',filedata).then(function(response){ if(response){ if(response.status==200){ $scope.userdata=[]; $scope.outdata=[]; $scope.try_async_load(); SweetAlert.swal({ title:"增加成功!", type:"success" }) }else{ SweetAlert.swal({ title:"增加失败!", type:"error" }) } } }); }; $scope.try_async_load(); // $scope.ldloading={}; var filterData = { key:'null', status:0, pageIndex:0, pageSum:10, //treeIds:'[]', userId:loginUser.id } }]);