'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: ''
};
});