'use strict'; /** * controller for User Profile Example */ // "$aside", "toaster", "api_bpm_domain", "api_configure_data", "api_cmdb", "api_configure_form", app.controller('meansCtrl', ["$rootScope","$scope","$http", "$state", "$timeout","$injector",'$parse', "$interval", "$modal","$stateParams", "$aside", "SweetAlert", "toaster", "FileUploader","i18nService", "uiGridConstants", "uiGridGroupingConstants", "Restangular", "api_bpm_domain", "api_configure_data", "api_cmdb", "api_configure_form", function ($rootScope, $scope,$http, $state, $timeout,$parse,$injector, $interval, $modal,$stateParams, $aside, SweetAlert, toaster,FileUploader, i18nService, uiGridConstants, uiGridGroupingConstants, Restangular,api_bpm_domain, api_configure_data, api_cmdb, api_configure_form) { $scope.langs=i18nService.getAllLangs(); $scope.lang = 'zh-cn'; i18nService.setCurrentLang($scope.lang); $scope.show=function(j){ if(j>2){ if(j%30==27||j%30==28||j%30==29){ return true; } } } // $scope.heights = (document.body.scrollWidth-245)*12/100; $scope.stamp=function(){ var modalInstance = $modal.open({ templateUrl: 'assets/views/means/tpl/uuidprint.html', controller: function($scope,$modalInstance,scope ){ $(".qrcanvas").empty(); $scope.stampable=true; $scope.selected=scope.selected; setInterval(function(){ if($scope.stampable){ $scope.stampable=false; angular.forEach(scope.selected.items,function(item){ function $(selector) { return document.querySelector(selector); } $scope.q= $('.qrcanvas'); var canvas; var colorIn = "#191970"; var colorOut = "#cd5c5c"; var colorFore = "#4169e1"; var colorBack = "#ffffff"; var options = { cellSize: 4, foreground: [ // foreground color {style: colorFore}, // outer squares of the positioner {row: 0, rows: 7, col: 0, cols: 7, style: colorOut}, {row: -7, rows: 7, col: 0, cols: 7, style: colorOut}, {row: 0, rows: 7, col: -7, cols: 7, style: colorOut}, // inner squares of the positioner {row: 2, rows: 3, col: 2, cols: 3, style: colorIn}, {row: -5, rows: 3, col: 2, cols: 3, style: colorIn}, {row: 2, rows: 3, col: -5, cols: 3, style: colorIn}, ], background: colorBack, data: item.uuid, typeNumber: 1, }; var effect = 'none'; if (effect !== 'none') { options.effect = {key: effect, value: 1}; if (effect === 'image') { options.background = [colorBack, effectImg]; } } options.reuseCanvas = canvas; canvas = qrgen.canvas(options); $scope.q.appendChild(canvas); angular.element("canvas").addClass("canvasclass") // for(var i=0;i<$scope.selected.items.length;i++){ // if(i>0&&i%4==0&&item.id==$scope.selected.items[i].id){ // var par = document.getElementsByTagName('canvas')[i]; // par.class='cancaspadd'; // document.body.appendChild(canvas); // } // } }) for(var i=0;i<$scope.selected.items.length;i++){ if(i>2){ if(i%30==27||i%30==28||i%30==29){ document.getElementsByTagName('canvas')[i].setAttribute("class", "cancaspadd"); } } } } },500); $scope.ok = function() { $modalInstance.dismiss(''); }; }, resolve: { scope: function(){ return $scope; }, } }); modalInstance.result.then(function() { }) } // $scope.printDiv = function() { // $(".qrcanvas").empty(); // angular.forEach($scope.selected.items,function(item){ // function $(selector) { // return document.querySelector(selector); // } // $scope.q= $('.qrcanvas'); // var canvas; // var colorIn = "#191970"; // var colorOut = "#cd5c5c"; // var colorFore = "#4169e1"; // var colorBack = "#ffffff"; // var options = { // cellSize: 4, // foreground: [ // // foreground color // {style: colorFore}, // // outer squares of the positioner // {row: 0, rows: 7, col: 0, cols: 7, style: colorOut}, // {row: -7, rows: 7, col: 0, cols: 7, style: colorOut}, // {row: 0, rows: 7, col: -7, cols: 7, style: colorOut}, // // inner squares of the positioner // {row: 2, rows: 3, col: 2, cols: 3, style: colorIn}, // {row: -5, rows: 3, col: 2, cols: 3, style: colorIn}, // {row: 2, rows: 3, col: -5, cols: 3, style: colorIn}, // ], // background: colorBack, // data: item.uuid, // typeNumber: 1, // }; // var effect = 'none'; // if (effect !== 'none') { // options.effect = {key: effect, value: 1}; // if (effect === 'image') { // options.background = [colorBack, effectImg]; // } // } // // $scope.q.tital=item.uuid; // // $scope.q.textContent=item.uuid; // options.reuseCanvas = canvas; // canvas = qrgen.canvas(options); // // canvas.outerText=item.uuid; // // $scope.q.innerHTML=$scope.q.innerHTML+"
"+item.uuid+"
" // $scope.q.appendChild(canvas); // angular.element("canvas").addClass("canvasclass") // // for(var i=0;i<$scope.selected.items.length;i++){ // // if(i>0&&i%4==0&&item.id==$scope.selected.items[i].id){ // // var par = document.getElementsByTagName('canvas')[i]; // // par.class='cancaspadd'; // // document.body.appendChild(canvas); // // } // // } // }) // for(var i=0;i<$scope.selected.items.length;i++){ // if(i>2){ // if(i%30==27||i%30==28||i%30==29){ // document.getElementsByTagName('canvas')[i].setAttribute("class", "cancaspadd"); // } // // document.getElementsByTagName('canvas')[i].setAttribute("class", "cancaspadd"); // // angular.element("canvas")[i].addClass("cancaspadd") // } // } // } var loginUser=$rootScope.user; $scope.gridOptions = {}; $scope.gridOptions.data = 'myData'; $scope.gridOptions.enableColumnResizing = true; $scope.gridOptions.enableFiltering = true; $scope.gridOptions.enableGridMenu = true; $scope.gridOptions.enableRowSelection = true; $scope.gridOptions.showGridFooter = false; $scope.gridOptions.showColumnFooter = true; $scope.gridOptions.fastWatch = true; $scope.gridOptions.useExternalFiltering=true; $scope.gridOptions.useExternalPagination = true; $scope.gridOptions.paginationPageSizes =[10, 20, 50,100]; $scope.gridOptions.paginationPageSize = 10; $scope.gridOptions.multiSelect = true; var mun=$scope.gridOptions.paginationPageSize; $scope.gridOptions.rowIdentity = function(row) { return row.id; }; $scope.gridOptions.getRowIdentity = function(row) { return row.id; }; $scope.gridOptions.columnDefs = [ { name:'操作', width:50,enableFiltering:false, cellTemplate:'' }, { name:'uuid',enableSorting: false, displayName:'内部编码', width:150,enableFiltering:false,cellTemplate:'
{{row.entity.uuid}}
'}, { name:'name',enableSorting: false, displayName:'资产名称', width:100,enableFiltering:false,cellTemplate:'
{{row.entity.name}}
'}, { name:'dept',enableSorting: false, displayName:'资产类型', width:100,enableFiltering:false,cellTemplate:'
{{row.entity.title}}
'}, { name:'state',enableSorting: false, displayName:'资产状态', width:100,enableFiltering:false,cellTemplate:'
{{row.entity.status}}
'}, { name:'placeBasehw',enableSorting: false, displayName:'资产地点', width:120,enableFiltering:false,cellTemplate:'
{{row.entity.placeBasehw}}
'}, { name:'createtime',enableSorting: false, displayName:'创建时间', width:120,enableFiltering:false,cellTemplate:'
{{row.entity.createtime}}
'}, { name:'plantime',enableSorting: false, displayName:'预计报废时间', width:120,enableFiltering:false,cellTemplate:'
{{row.entity.plantime}}
'}, { name:'props.meansmanager',enableSorting: false, displayName:'管理员', width:80,enableFiltering:false,cellTemplate:'
{{row.entity.props.meansmanager}}
'}, ]; $scope.gridOptions.rowTemplate= "
"; // $scope.configdata; // var width = $scope.width = 650; // var height = $scope.height = 400; // var apple_selected, tree, treedata_avm, treedata_geography; //修改 $scope.onClick = function(row){ // $scope.classify="basehwntwsv"; var data={"model":row}; $state.go('app.means.bill',{formKey:'means_edit',service:'api_cmdb','model':JSON.stringify(data)}) }; //查看 $scope.onview = function(row){ var data={"model":row}; $state.go('app.means.view',{formKey:'means_edit',service:'api_cmdb','model':JSON.stringify(data)}) }; // if(configdata&&configdata.length>0){redrawSvg(configdata)}; // $scope.gridOptions.onRegisterApi = function(gridApi){ // $scope.gridApi = gridApi; // gridApi.pagination.on.paginationChanged($scope, function (newPage, pageSize) { // var filtersData = $scope.memoryfilterData; // filtersData.idx=newPage-1; // filtersData.sum=pageSize; // $rootScope['idxchange']=newPage-1; // $scope.refreshData('expand-right',filtersData); // // $scope.refreshData('expand-right', {"assignee":$rootScope.user.id, "candidateGroups":$rootScope.user.group[0].id, "idx":newPage-1,"sum":pageSize}); // }); // $scope.gridOptions.onRegisterApi = function(gridApi) { // $scope.gridApi = gridApi; // gridApi.selection.on.rowSelectionChanged($scope, function(data) { // //$scope.selected.item = data.entity; // $scope.entity = angular.copy(data.entity); // $scope.ciId = data.entity.id; // //TODO // vm.model=$scope.vm.model=decodeCIModel($scope.entity); // angular.forEach($scope.vm.tabs, function(tab){ // tab.form.model = vm.model; // }); // //decodeVMTabForm($scope.entity, vm.tabs); // //console.log(data); // }); // }; $scope.gridOptions.onRegisterApi = function(gridApi) { $scope.gridApi = gridApi; gridApi.pagination.on.paginationChanged($scope, function (newPage, pageSize) { var filtersData = $scope.memoryfilterData; filtersData.idx=newPage-1; filtersData.sum=pageSize; $scope.refreshData('expand-right',filtersData); // $scope.refreshData('expand-right', {"assignee":$rootScope.user.id, "candidateGroups":$rootScope.user.group[0].id, "idx":newPage-1,"sum":pageSize}); }); gridApi.selection.on.rowSelectionChanged($scope, function(scope){ var j=0; for(var i=0;i<=scope.grid.appScope.selected.items.length;i++){ if(scope.grid.appScope.selected.items[i]==scope.entity){ j++; break; } } // console.log("j="+j) if(j==1){ scope.grid.appScope.selected.items.splice(i,1); }else{ scope.grid.appScope.selected.items.push(scope.entity) } }); }; $scope.searchSolution = function(type,key){ $scope.gridApi.grid.options.paginationCurrentPage=1; var memoryfilterData = { "idx":0, "sum":mun }; angular.extend($scope.memoryfilterData,memoryfilterData); $scope.memoryfilterData['searchCriteria'] = type; $scope.memoryfilterData['keys'] = key; // $scope.memoryfilterData=defaultFilterData; // api_cmdb.searchkey(defaultFilterData.type,defaultFilterData.key,defaultFilterData.idx,defaultFilterData.sum).then(function(data){ // var myData = Restangular.stripRestangular(data); // if(myData.data&&myData.status==200){ // $scope.gridOptions.totalItems = myData.total; // $scope.myData = myData.data; // } // }); $scope.refreshData('expand-right',$scope.memoryfilterData); } $scope.onChangestatus= function(searchType){ // defaultFilterData['status'] = searchType; $scope.gridApi.grid.options.paginationCurrentPage=1; var memoryfilterData = { "idx":0, "sum":mun }; angular.extend($scope.memoryfilterData,memoryfilterData); $scope.memoryfilterData['status']=searchType; $scope.refreshData('expand-right', $scope.memoryfilterData); } this.selectRowFunction = function(data) { $scope.ciId = data.id; console.log(data); }; //树形图 var apple_selected, tree, treedata_avm, treedata_geography; $scope.my_tree_handler = function (branch) { //var _ref; var classify=$scope.classify=branch.prefix.toLowerCase()+branch.sign; api_cmdb.query({'sign':classify}).then(function(data){ var myData = Restangular.stripRestangular(data); // console.log(myData.data.node); if(myData.data&&myData.status==200){ var ret = myData.data; redrawSvg(myData); } }); }; $scope.my_data = []; 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.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.my_tree = tree = {}; $scope.try_async_load = function () { $scope.my_data = []; $scope.select_treedata = []; $scope.doing_async = true; api_configure_data.fetchDataList('ciclassify',{'idx':0,'sum':100}).then(function(result){ //console.log(result['list']); $scope.select_treedata = $scope.my_data = convertParentToChildList(result['list']); $scope.doing_async = false; // tree.expand_all(); //console.log(treelist); }); }; $scope.select_treedata = []; $scope.propTypeOptions = []; $scope.try_async_load(); $scope.onFilterremove = function(item){ console.log(item) } $scope.onFilterCallback = function(item){ //console.log(item); if(angular.isDefined(item.children)&&item.children.length>=1){ //not valid }else{ var tempclassify=item.prefix.toLowerCase()+item.sign; $scope.gridApi.grid.options.paginationCurrentPage=1; $scope.cifilter_classic=tempclassify; var memoryfilterData = { "sign":tempclassify, "idx":0, "sum":mun } angular.extend($scope.memoryfilterData,memoryfilterData) // $scope.memoryfilterData=memoryfilterData; $scope.refreshData('expand-right',$scope.memoryfilterData); // api_configure_form.renderTabForm(tempclassify).then(function(data){ // var myData = Restangular.stripRestangular(data); // $scope.propTypeOptions = myData; // }); } } //关系下载模版 api_configure_data.fetchDataList('ciedgetype',{'idx':0,'sum':100}).then(function(response){ if(response){ $scope.linktypeOptions = response.list; // angular.forEach($scope.linktypeOptions,function(item){ // if(item.type==$scope.modelData.name){ // $scope.modelData.linkName=item; // } // }) } }) $scope.rela={}; $scope.onChange=function(rela){ $scope.rela=rela; } $scope.getdown=function(){ if(angular.isDefined($scope.rela)&&angular.isDefined($scope.rela.type)){ var type=2; // api_configure_data.fetchDataList('ciedgetype',{'idx':0,'sum':100}).then(function(data){ // if(data.status==200){ // var myData = Restangular.stripRestangular(data).list; // for(var i=0;i0){ api_cmdb.put($scope.selected.items,rmvList).then(function(response){ if(response.status==200){ SweetAlert.swal({ title: "删除成功!", type: "success", confirmButtonColor: "#007AFF" },function(){ $scope.myData = _.reject($scope.myData, function(o) { return _.includes(rmvList,o.id); }); $scope.selected = { items:[] }; }); }else{ SweetAlert.swal({ title: "操作异常!", text: "系统异常,请稍后重试,或者联系管理员!", type: "error" }); } }) // } } $scope.selected = { items:[] } $scope.editted = { items:[] } // $scope.stamp = function(){ // var modalInstance = $modal.open({ // templateUrl: 'assets/views/means/tpl/uuidprint.html', // controller: function($scope,$modalInstance ){ // // $scope.stamp = function(){ // $scope.stampable=true; // setInterval(function(){ // if($scope.stampable){ // $scope.stampable=false; // // $scope.selected=scope.selected; // angular.forEach($scope.selected.items,function(item){ // function $(selector) { // return document.querySelector(selector); // } // $scope.q= $('#qrcanvas'); // var canvas; // var colorIn = "#191970"; // var colorOut = "#cd5c5c"; // var colorFore = "#4169e1"; // var colorBack = "#ffffff"; // var options = { // cellSize: 6, // foreground: [ // // foreground color // {style: colorFore}, // // outer squares of the positioner // {row: 0, rows: 7, col: 0, cols: 7, style: colorOut}, // {row: -7, rows: 7, col: 0, cols: 7, style: colorOut}, // {row: 0, rows: 7, col: -7, cols: 7, style: colorOut}, // // inner squares of the positioner // {row: 2, rows: 3, col: 2, cols: 3, style: colorIn}, // {row: -5, rows: 3, col: 2, cols: 3, style: colorIn}, // {row: 2, rows: 3, col: -5, cols: 3, style: colorIn}, // ], // background: colorBack, // data: item.uuid, // typeNumber: 1, // }; // var effect = 'none'; // if (effect !== 'none') { // options.effect = {key: effect, value: 1}; // if (effect === 'image') { // options.background = [colorBack, effectImg]; // } // } // options.reuseCanvas = canvas; // canvas = qrgen.canvas(options); // $scope.q.appendChild(canvas); // }) // }else{ // } // },500); // $scope.ok = function() { // $modalInstance.close($scope.entity); // }; // $scope.cancel = function() { // $modalInstance.dismiss('cancel'); // }; // }, // size:'lg', // resolve: { // $scope: function(){ // return $scope; // } // } // }) // }; var defaultFilterData = { // "assignee":2, // "sign":"basehwitndl", "idx":0, "sum":mun }; $scope.memoryfilterData = { // "assignee":2, // "sign":"basehwitndl", "idx":0, "sum":mun } $scope.ldloading = {}; var pdKey = $state.current.pdKey; $scope.refreshData = function(style,filterData){ if(angular.isUndefined(filterData)){ filterData = defaultFilterData; } $scope.myData = []; // $scope.gridOptions['sum']=filterData.sum; api_cmdb.query(filterData).then(function(data){ // $scope.callsPending--; var myData = Restangular.stripRestangular(data); $scope.gridOptions['totalItems'] = data.total; $scope.myData = myData.data.node; },function(){ }); }; $scope.refreshData('expand-right', defaultFilterData); }]); app.controller('MeansOperCtrl', ['$rootScope','$http', '$scope', function ($rootScope,$http, $scope) { // console.log('$rootScope.user3='+JSON.stringify($scope.item)); // if( $scope.item.handlerUser!=null){ // if ($rootScope.user.id==$scope.item.handlerUser.id) { // $scope.item.chaozuoPower=true; // } // } $scope.look = function(){ $scope.colobject.grid.appScope.lookFunction($scope.item); // console.log('$scope.item='+JSON.stringify($scope.item)); } $scope.edit = function(){ $scope.colobject.grid.appScope.selectRowFunction($scope.item); console.log('$scope.item='+JSON.stringify($scope.item)); // $scope.doEdit($scope.item.id); } }]); app.directive('meansoperator', function () { return { restrict: 'E', scope: { item: '=', colobject: '=' }, controller: 'MeansOperCtrl', template: '' }; });