'use strict'; app.controller('cmdbauditdetailCtrl', ["$scope", "$http", "i18nService", "$rootScope", "$state", "$timeout", "moment", "$interval", "$modal", "$stateParams", "SweetAlert", "uiGridConstants", "uiGridGroupingConstants", "Restangular", "api_bpm_domain", "api_text", "api_bpm_data", "api_bpm", "api_user_data", "api_cmdb", "api_cmdb2", "api_cmdb3", "api_cmdb4", function ($scope, $http, i18nService, $rootScope, $state, $timeout, moment, $interval, $modal, $stateParams, SweetAlert, uiGridConstants, uiGridGroupingConstants, Restangular, api_bpm_domain, api_text, api_bpm_data, api_bpm, api_user_data, api_cmdb, api_cmdb2, api_cmdb3, api_cmdb4) { $scope.langs = i18nService.getAllLangs(); $scope.lang = 'zh-cn'; i18nService.setCurrentLang($scope.lang); $scope.myDatalingbei = []; $scope.model = {}; var loginUser = $rootScope.user; var pdKey = $state.current.pdKey; $scope.memoryfilterDatashe = { "idx": 0, "sum": 10 } $scope.width = { 'width': document.getElementById("form").scrollWidth }; window.onresize = function () { if (document.getElementById("form")) { $scope.width = { 'width': document.getElementById("form").scrollWidth }; } } $scope.gridOptions = {}; $scope.gridOptions.data = 'myDatalingbei'; $scope.gridOptions.enableColumnResizing = true; $scope.gridOptions.enableFiltering = false; $scope.gridOptions.enableGridMenu = false; $scope.gridOptions.enableSelectAll = true; $scope.gridOptions.enableRowSelection = true; $scope.gridOptions.showGridFooter = true; $scope.gridOptions.showColumnFooter = false; $scope.gridOptions.fastWatch = true; $scope.gridOptions.enableSorting = true; $scope.gridOptions.useExternalSorting = true; $scope.gridOptions.useExternalFiltering = false; $scope.gridOptions.useExternalPagination = true; $scope.gridOptions.paginationPageSizes = [10, 20, 50, 100]; $scope.gridOptions.paginationPageSize = 10; $scope.gridOptions.multiSelect = true; // $scope.gridOptions.rowTemplate = "
"; $scope.gridOptions.columnDefs = [{ name: 'item', displayName: '序号', width: 80 }, { name: 'uuid', displayName: '配置项ID', width: 220, enableFiltering: false }, { name: 'props.hw_cifilterClassic', displayName: '配置项类型', width: 200, enableFiltering: false }, { name: 'props.hw_mingcheng', width: 200, displayName: '配置项名称', enableFiltering: false }, { name: '操作', cellTemplate: '
' + '删除' + '
', enableFiltering: false }, ]; $scope.myDatalingbeiall = []; $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.loadData(filtersData); $scope.memoryfilterDatashe.idx = newPage - 1; $scope.memoryfilterDatashe.sum = pageSize; $scope.myDatalingbei = $scope.interceptMydata($scope.myDatalingbeiall, $scope.memoryfilterDatashe.idx, 10) }); // gridApi.selection.on.rowSelectionChanged($scope, function(data) { // $scope.selected.items = data.entity; // //console.log(data); // }); // gridApi.selection.on.rowSelectionChangedBatch($scope, function(data) { // $scope.selected.items = data.entity; // //console.log(data); // }); // gridApi.core.on.filterChanged($scope, function() { // var grid = this.grid; // var filtersData = { // idx: 0, // sum: 20, // "user": { "roledata": { "rolecode": "roleset" }, "selectType": "1" } // }; // angular.forEach(grid.columns, function(item) { // if (item.enableFiltering) { // // console.log("item.filters[0]=" + JSON.stringify(item.filters)); // if (angular.isDefined(item.filters[0].term) && item.filters[0].term != '') { // if (angular.isUndefined(filtersData['user'])) { // filtersData['user'] = {}; // } // filtersData['user'][item.field] = item.filters[0].term; // } // } // }); // $scope.memoryfilterDatashe = filtersData; // // $scope.loadData(filtersData); // }); }; //时间 $scope.model.time = moment(new Date()).format('YYYY-MM-DD HH:mm:ss'); $scope.mindata = new Date(); $scope.endOpen = true; $scope.datepicker = {}; $scope.datepicker.opened = false; $scope.datepicker.open = function ($event) { $scope.datepicker.opened = true; }; $scope.datepickerPopup = "yyyy-MM-dd HH:mm:ss"; $scope.options = { 'key': "time" } //管理员 $scope.audituser = []; var fieldatas = { "idx": 0, "sum": 1000, "user": { "roledata": { "rolecode": "3ff5dd43-0a0b-44d9-a36e-2b5417f41242" }, "selectType": "1", engineer: 1, } } api_user_data.fetchDataList('user', fieldatas).then(function (data) { if (data.status == 200) { $scope.audituser = data.list; } }); //单号 var fieldatas = { "idx": 0, "sum": 1000, "user": { "roledata": { "rolecode": "change petitor" }, "selectType": "1" } } api_bpm_domain.workernumber('PZSJ').then(function (data) { if (data.status == 200) { $scope.model.orderId = data.data; } }); $scope.interceptMydata = function (mydate, idx, sum) { return mydate.slice(idx * sum, (idx + 1) * sum) } $scope.removeshebei = function (item) { event.preventDefault(); var modalInstance = $modal.open({ templateUrl: 'assets/views/delete.html', controller: function ($scope, $modalInstance, scope) { $scope.title = '删除配置项'; $scope.connect = '确定要删除此配置项?'; $scope.consumptive = item; $scope.ok = function () { $modalInstance.close($scope.consumptive); }; $scope.cancel = function () { $modalInstance.dismiss('cancel'); }; }, size: 'sm', resolve: { scope: function () { return $scope; }, } }); modalInstance.result.then(function (selectedItem) { angular.forEach($scope.myDatalingbeiall, function (items, index) { if (items.id == selectedItem.id) { $scope.myDatalingbeiall.splice(index, 1); } }) // $scope.myData3.push(selectedItem); $scope.model.comptrollerAssets = $scope.myDatalingbeiall; $scope.gridOptions['totalItems'] = $scope.myDatalingbeiall.length; for (var i = 0; i < $scope.myDatalingbeiall.length; i++) { $scope.myDatalingbeiall[i]['item'] = i + 1 + $scope.memoryfilterDatashe.idx * $scope.memoryfilterDatashe.sum } $scope.myDatalingbei = $scope.interceptMydata($scope.myDatalingbeiall, 0, 10) }) } $scope.addshebei = function () { event.preventDefault(); var modalInstance = $modal.open({ templateUrl: 'assets/views/means/tpl/cmdbauadd.html', controller: function ($scope, i18nService, $modalInstance, api_configure_data, api_configure_form) { $scope.langs = i18nService.getAllLangs(); $scope.lang = 'zh-cn'; i18nService.setCurrentLang($scope.lang); $scope.gridOptions = {}; $scope.gridOptions.data = 'myDatatwo'; $scope.gridOptions.enableColumnResizing = true; $scope.gridOptions.enableFiltering = false; $scope.gridOptions.enableGridMenu = false; $scope.gridOptions.showGridFooter = true; $scope.gridOptions.showColumnFooter = false; $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; $scope.gridOptions.rowIdentity = function (row) { return row.id; }; $scope.gridOptions.getRowIdentity = function (row) { return row.id; }; // $scope.gridOptions.rowTemplate = "
"; $scope.gridOptions.columnDefs = [{ name: 'item', displayName: '序号', width: 60, enableFiltering: false }, { name: 'uuid', displayName: '内部编号', width: 170 }, { name: 'props.hw_mingcheng', displayName: '资产名称', width: 140 }, { name: 'props.hw_cifilterClassic', displayName: '资产类型', width: 110, enableFiltering: false }, { name: 'props.hw_state', displayName: '资产状态', width: 120, enableFiltering: false }, { name: 'props.hwnw_area', displayName: '资产地点', width: 130, enableFiltering: false }, { name: 'createtime', displayName: '申请时间', enableFiltering: false, cellTemplate: '
{{grid.appScope.transferTime(row.entity.createtime)}}
' } ]; // $scope.selectButtonClick var defaultFilterData = { // "assignee":2, // "sign":"basehwitndl", // "applicationForm": { "hw_state": "在线" }, // "hw_state": "在库", "idx": 0, "sum": 10 }; $scope.transferTime = function (time) { return moment(time).format('YYYY-MM-DD HH:mm'); } $scope.memoryfilterData = { // "assignee":2, // "sign":"basehwitndl", // "applicationForm": { "hw_state": "在线" }, // "hw_state": "在库", "idx": 0, "sum": 10 } $scope.refreshData = function (style, filterData) { if (angular.isUndefined(filterData)) { filterData = defaultFilterData; } $scope.myDatatwo = []; // $scope.gridOptions['sum']=filterData.sum; api_cmdb.query(filterData).then(function (data) { // $scope.callsPending--; var filterData = $scope.memoryfilterData; var myDatatwo = Restangular.stripRestangular(data); $scope.gridOptions['totalItems'] = data.total; for (var i = 0; i < myDatatwo.data.node.length; i++) { myDatatwo.data.node[i].createtime = moment(myDatatwo.data.node[i].createtime).format('YYYY-MM-DD'); } $scope.myDatatwo = myDatatwo.data.node; for (var i = 0; i < $scope.myDatatwo.length; i++) { $scope.myDatatwo[i]['item'] = i + 1 + filterData.idx * filterData.sum } }, function () {}); }; $scope.refreshData('expand-right', defaultFilterData); $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.loadData(filtersData); $scope.refreshData('expand-right', filtersData); //console.log(pageSize); // $scope.loadData({"idx":newPage-1,"sum":pageSize}); }); // gridApi.selection.on.rowSelectionChanged($scope, function(data) { // $scope.selected.items.push(data.entity); //console.log(data); gridApi.selection.on.rowSelectionChanged($scope, function (scope, ect) { if (scope.isSelected) { scope.grid.appScope.selected.items.push(scope.entity) } else { for (var i = 0; i <= scope.grid.appScope.selected.items.length; i++) { if (scope.grid.appScope.selected.items[i].id == scope.entity.id) { scope.grid.appScope.selected.items.splice(i, 1); break; } } } $scope.mySelectedRows = $scope.gridApi.selection.getSelectedRows(); }); // }); gridApi.selection.on.rowSelectionChangedBatch($scope, function (rows) { // $scope.selected.items = data.entity; //console.log(data); var selectitem = []; selectitem = angular.copy($scope.selected.items); for (var j = 0; j < rows.length; j++) { if (rows[j].isSelected == true) { selectitem.push(rows[j].entity); } else { delete selectitem[j]; // rows.splice(j, 1); } } $scope.selected.items = []; for (var i = 0; i < selectitem.length; i++) { if (selectitem[i]) { $scope.selected.items.push(selectitem[i]); } } }); // gridApi.selection.on.selectAllRows = function(row) { //GridRow // // if (row.entity.age > 45) { // row.grid.api.selection.selectRow(row.entity); // 选中行 // // } // }; gridApi.core.on.filterChanged($scope, function () { var grid = this.grid; var filtersData = { idx: 0, sum: 10, "user": { "roledata": { "rolecode": "roleset" }, "selectType": "1" } }; angular.forEach(grid.columns, function (item) { if (item.enableFiltering) { // console.log("item.filters[0]=" + JSON.stringify(item.filters)); if (angular.isDefined(item.filters[0].term) && item.filters[0].term != '') { if (angular.isUndefined(filtersData['user'])) { filtersData['user'] = {}; } filtersData['user'][item.field] = item.filters[0].term; } } }); $scope.memoryfilterData = filtersData; // $scope.loadData(filtersData); }); }; $scope.onDblClick = function (data, event) { // $scope.selected.items = data.entity; $scope.selectButtonClick(data, event); }; // $scope.loadData = function(filterData) { // // console.log("filtersData=111" + JSON.stringify(filterData)) // items.fetchItems(filterData, APIService).then(function(data) { // var myDatatwo = Restangular.stripRestangular(data); // $scope.gridOptions.totalItems = myDatatwo.totalNum; // $scope.myDatatwo = myDatatwo.list; // }); // }; //树形图--开始 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; $scope.memoryfilterData.sign = tempclassify; // $scope.loadData($scope.memoryfilterData); } } // 树形图--结束 // 资产状态开始 $scope.lb_state_data = {}; $scope.state_data = [{ "name": "全部状态", "value": "" }, { "name": "在库", "value": "1" }, { "name": "在线", "value": "2" }, { "name": "借出", "value": "3" }, { "name": "报修", "value": "4" }, { "name": "报废", "value": "5" }, ] //资产状态结束 // 条件搜索开始 $scope.lb_tiaojian = {}; $scope.tiaojian = [{ "name": "资产编码", "value": "uuid" }, { "name": "资产名称", "value": "hw_mingcheng" }, { "name": "责任人", "value": "hw_zherenren" }, ] // 条件搜索结束 $scope.searchSolutionInput = ""; // 刷新按钮 $scope.new_data = function () { $scope.myData = []; $scope.memoryfilterData.idx = 0; // $scope.loadData($scope.memoryfilterData); $scope.refreshData('expand-right', $scope.memoryfilterData); } // 重置按钮 $scope.reset = function () { $scope.propTypeOptions = []; $scope.lb_state_data = {}; $scope.lb_tiaojian = {}; $scope.searchSolutionInput = ""; $scope.try_async_load(); $scope.memoryfilterData = { "idx": 0, "sum": 10 }; // $scope.loadData($scope.memoryfilterData); $scope.refreshData('expand-right', $scope.memoryfilterData); } // 搜索按钮 $scope.serch = function () { // console.log($scope.lb_state_data) $scope.memoryfilterData.idx = 0; if ($scope.lb_state_data.state_data != undefined) { $scope.memoryfilterData.hw_state = $scope.lb_state_data.state_data.name } if ($scope.lb_tiaojian.tiaojian != undefined) { $scope.memoryfilterData.searchCriteria = $scope.lb_tiaojian.tiaojian.value } if ($scope.searchSolutionInput != "") { $scope.memoryfilterData.keys = $scope.searchSolutionInput } // $scope.loadData($scope.memoryfilterData); $scope.refreshData('expand-right', $scope.memoryfilterData); } $scope.applicadata = []; // $scope.onFilterCallback = function(item) { // var tempclassify = item.prefix.toLowerCase() + item.sign; // api_configure_form.renderTabForm(tempclassify).then(function(data) { // var myData = Restangular.stripRestangular(data); // $scope.applicadata = myData[0].form.fields; // }); // // } // } // $scope.loadData({ // idx: 0, // sum: 10, // "user": { "roledata": { "rolecode": "roleset" }, "selectType": "1" } // }); $scope.selected = { items: [] }; $scope.ok = function () { $modalInstance.close($scope.selected.items); }; $scope.cancel = function () { $modalInstance.dismiss('cancel'); }; }, size: 'lg' }); modalInstance.result.then(function (selectedItem) { // console.log(selectedItem); // options.value(selectedItem); var filterData = $scope.memoryfilterDatashe; $scope.myDatalingbeiall = selectedItem; $scope.gridOptions['totalItems'] = $scope.myDatalingbeiall.length; for (var i = 0; i < $scope.myDatalingbeiall.length; i++) { $scope.myDatalingbeiall[i]['item'] = i + 1 + filterData.idx * filterData.sum } $scope.myDatalingbei = $scope.interceptMydata($scope.myDatalingbeiall, 0, 10) $scope.model.comptrollerAssets = $scope.myDatalingbeiall; // if (options.templateOptions.callback && angular.isFunction(options.templateOptions.callback)) { // options.templateOptions.callback(selectedItem, options.templateOptions.that); // } // if (options.templateOptions.linkData && angular.isFunction(options.templateOptions.linkData)) { // options.templateOptions.linkData(selectedItem, options.templateOptions.that); // } }, function () { //console.log('Modal dismissed at: ' + new Date()); }); } $scope.onDblClick = function (data, event) { $scope.selectButtonClick(data, event); }; //关闭 $scope.closeModel = function () { $state.go('app.means.auditlist', {}); } //提交 $scope.addaudsubmit = function (data) { $rootScope.loading = true; if (!data.user || data.user == "") { $rootScope.loading = false; SweetAlert.swal({ title: "提交失败", text: "审计管理员!", type: "error" }, function () {}); } else { if (!data.time || data.time == "") { $rootScope.loading = false; SweetAlert.swal({ title: "提交失败", text: "审计日期!", type: "error" }, function () { }); } else { if (!data.comptrollerAssets || data.comptrollerAssets == "") { $rootScope.loading = false; SweetAlert.swal({ title: "提交失败", text: "配置项未填!", type: "error" }, function () { }); } else { if (data.comptrollerAssets) { angular.forEach(data.comptrollerAssets, function (item, index) { data.comptrollerAssets[index]['assetId'] = data.comptrollerAssets[index].uuid; data.comptrollerAssets[index]['assetName'] = data.comptrollerAssets[index].props.hw_mingcheng; }) // for (var i = 0; i < data.comptrollerAssets; i++) { // data.comptrollerAssets[i]['assetId'] = data.comptrollerAssets[i].id; // data.comptrollerAssets[i]['assetName'] = data.comptrollerAssets[i].props.hw_mingcheng; // } } var filterData = { 'comptroller': data }; moment(filterData.time).format('YYYY-MM-DD hh:mm:ss'); filterData.comptroller.status = 1; api_bpm.addData('comptroller', filterData).then(function (data) { if (data.status == 200) { $rootScope.loading = false; SweetAlert.swal({ title: "保存成功!", type: "success", confirmButtonColor: "#007AFF" }, function () { $state.go("app.means.auditlist"); }); } else { $rootScope.loading = false; SweetAlert.swal({ title: "系统错误", text: "请稍后再试!", type: "error" }); } // $scope.ldloading[style.replace('-', '_')] = false; }, function () { // $scope.ldloading[style.replace('-', '_')] = false; }); } } } } }])