'use strict'; app.controller('cmdbcontrastCtrl', ['$rootScope', '$scope', '$parse', '$injector', '$http', '$q', '$state', '$stateParams', '$modal', '$timeout', '$interval', 'i18nService', 'SweetAlert', 'FileUploader', 'Restangular', 'UserRestangular', 'BpmRestangular', 'api_configure_form', 'api_configure_data', 'api_bpm_domain', 'api_bpm_data', 'api_user_data', 'api_cmdb', 'api_bpm', 'api_sysinfo', function($rootScope, $scope, $parse, $injector, $http, $q, $state, $stateParams, $modal, $timeout, $interval, i18nService, SweetAlert, FileUploader, Restangular, UserRestangular, BpmRestangular, api_configure_form, api_configure_data, api_bpm_domain, api_bpm_data, api_user_data, api_cmdb, api_bpm, api_sysinfo) { $scope.allcmdbdata = JSON.parse($stateParams.model); $scope.allcmdbdata.xdetails = JSON.parse($scope.allcmdbdata.xdetails); $scope.allcmdbdata.ydetails = JSON.parse($scope.allcmdbdata.ydetails); $scope.differencelist = $scope.allcmdbdata.difference.split(','); $scope.backpage = $stateParams.key; // angular.forEach($scope.differencelist, function(item) { // angular.forEach($scope.allcmdbdata.ydetails, function(item1, index1) { // $scope.allcmdbdata.xdetails // }) // angular.forEach($scope.allcmdbdata.ydetails, function(item2, index2) { // $scope.allcmdbdata.xdetails // }) // }) // if(){ // } console.log(document.getElementsByTagName("tr")); $scope.backlastpage = function() { // if ($scope.backpae == 2) { // $state.go('app.means.auditeditor', {}); // } else { // $state.go('app.means.auditeditor', { model: $stateParams.model }); // } $state.go('app.means.auditeditor', { model: $stateParams.model }); } $scope.events = [ // { // // badgeClass: 'info', // badgeIconClass: 'icon iconfont dsit-icon_liucheng', // title: '处理', // when: '2018-08-09', // content: '维修人【李工(13423423423)】已接单重在处理中' // }, { // // badgeClass: 'info', // badgeIconClass: 'icon iconfont dsit-icon_liucheng', // title: '受理', // when: '2018-08-09', // content: '您的报修服务台已受理,待维修人员接单' // }, { // // badgeClass: 'info', // badgeIconClass: 'icon iconfont dsit-icon_liucheng', // title: '申请', // when: '2018-08-09', // content: '您的报修服务台已受理,待维修人员接单您的报修服务台已受理,待维修人员接单您的报修服务台已受理,待维修人员接单您的报修服务台已受理,待维修人员接单您的报修服务台已受理,待维修人员接单' // // titleContentHtml: '', // // contentHtml: lorem, // // footerContentHtml: 'Continue Reading' // } ]; $scope.choicetype = ""; $scope.historylong = function(key) { $scope.choicetype = key.templateOptions.label; var filhistoryData = { "idx": 0, "sum": 10, "assetConsumablesHistory": { "assetConsumablesId": $scope.allcmdbdata.xdetails.id, "description": key.templateOptions.label } }; api_bpm.fetchDataList('assetConsumablesHistory', filhistoryData).then(function(data) { if (data.status == 200) { var myData = Restangular.stripRestangular(data); $scope.events = myData.list; } else { SweetAlert.swal({ title: "系统错误", text: "请稍后再试!", type: "error" }); } }, function() {}); } $scope.langs = i18nService.getAllLangs(); $scope.lang = 'zh-cn'; i18nService.setCurrentLang($scope.lang); var vm = this; vm.options = {}; vm.exampleTitle = ['expressionProperties', 'model property']; vm.fields = []; vm.models = {}; // vm.models["loginUser"] = $rootScope.user; var that = $injector; var parse = $parse; var formKey = ""; var pdKey = ""; if (angular.isDefined($state.current.pdKey) && $state.current.pdKey != "") { pdKey = $state.current.pdKey; //console.log("pdKey::"+$state.current.pdKey); } if (angular.isDefined($stateParams.formKey) && $stateParams.formKey != "") { formKey = $stateParams.formKey; //console.log("formKey::"+$stateParams.formKey); } //用户测试数据,后续从header的auth中获取 var userId = 2; userId = $rootScope.user.id; //==============处理表单设计数据 开始==================== //处理组件加载后台数据选项的方法 function refreshSelectOptions(searchVal, field) { if (field.templateOptions.optionsUrl) { var process = BpmRestangular.all(""); if (field.templateOptions.ApiService) { process = UserRestangular.all(""); } process.customPOST({ "idx": 0, "sum": 1000 }, field.templateOptions.optionsUrl).then(function(result) { if (!field.templateOptions.options) { field.templateOptions.options = []; } if (field.templateOptions.optionsDataKey) { field.templateOptions.options = result[field.templateOptions.optionsDataKey]; } else { field.templateOptions.options = result; } }); } } function decodeVMTabForm(model, tabs) { var result = { model: {}, tabs: [] }; var mdata = angular.fromJson(model); angular.extend(result.model, mdata); angular.forEach(tabs, function(tab) { tab.form.model = vm.models; angular.forEach(tab.form.fields, function(field) { if (field.key == "") { delete field.key; } field.type = "ui-otherlisttab"; if (angular.isDefined(field.extjson) && field.extjson != "") { var extObj = angular.fromJson(field.extjson); angular.extend(field.templateOptions, extObj.templateOptions); delete extObj.templateOptions; for (var prop in extObj) { if (new RegExp("Expression").test(prop)) { //var obj = $scope.$eval(extObj[prop]); //extObj[prop] = $scope.$eval(extObj[prop]); if (extObj[prop] != null) { if (new RegExp("function").test(extObj[prop])) { var propValue = eval(extObj[prop]); extObj[prop] = propValue; } else { //console.log(extObj[prop]); var obj = $scope.$eval(extObj[prop]); extObj[prop] = obj; //console.log(obj); } } } else if (new RegExp("expressionProperties").test(prop)) { for (var p in extObj[prop]) { if (new RegExp("function").test(extObj[prop][p])) { var propValue = eval(extObj[prop][p]); extObj[prop][p] = propValue; } else { //if(p.indexOf("'")>=0){ // var obj = $scope.$eval(extObj[prop][p]); // extObj[prop][$scope.$eval(p)]=obj; //} } } } else if ("watcher" == prop) { if (angular.isArray(extObj[prop])) { angular.forEach(extObj[prop], function(item, index) { for (var p in item) { if (new RegExp("function").test(item[p])) { var propValue = eval(item[p]); extObj[prop][index][p] = propValue; } } }); } else if (angular.isObject(extObj[prop])) { for (var p in extObj[prop]) { if (new RegExp("function").test(extObj[prop][p])) { var propValue = eval(extObj[prop][p]); extObj[prop][p] = propValue; } } } } } angular.extend(field, extObj); delete field.extjson; } if (field.extjson == "") { delete field.extjson; } if (angular.isDefined(field.templateOptions)) { var templateOs = field.templateOptions; for (var property in templateOs) { //console.log(property); if (angular.isString(templateOs[property]) && !(new RegExp("[\u4e00-\u9fa5]").test(templateOs[property]))) { if (new RegExp("function").test(templateOs[property])) { var propValue = eval(templateOs[property]); field.templateOptions[property] = propValue; } else { if (that.has(templateOs[property])) { field.templateOptions[property] = that.get(templateOs[property]); } else { field.templateOptions[property] = templateOs[property]; } } } else if (templateOs[property] == null) { //delete field.templateOptions[property]; } else {} } } if (angular.isDefined(field.templateOptions) && angular.isDefined(field.templateOptions.extjson)) { var extObj = angular.fromJson(field.templateOptions.extjson); //JSON.parse(field.extjson); angular.extend(field.templateOptions, extObj); delete field.templateOptions.extjson; } //... if (field.templateOptions) { //处理远程获取数据控件方法调用 if (field.templateOptions.optionsUrl) { field.templateOptions.refresh = refreshSelectOptions; } //处理嵌套属性数据绑定/ if (field.templateOptions.pkey) { var pmodel, i = 0; angular.forEach(field.templateOptions.pkey.split("."), function(p) { if (i == 0) { if (result.model[p] == null) { result.model[p] = {}; } pmodel = result.model[p]; i++; } else { if (pmodel[p] == null) { pmodel[p] = {}; } pmodel = pmodel[p]; } }); if (pmodel != null) { field.model = pmodel; if (pmodel[field.key] == null) { pmodel[field.key] = null; } } } else { if (result.model[field.key] == null) { result.model[field.key] = null; } } //处理弹出框组件初始化 if (field.type == "ui-input-selectmodal") { field.templateOptions.modal = $modal; //field.templateOptions.Restangular = Restangular; } else if (field.type == "ui-userselect") { field.templateOptions.modal = $modal; //field.templateOptions.Restangular = Restangular; } else if (field.type == "ui-multiuserselect") { field.templateOptions.modal = $modal; } else if (field.type == "ui-modelselect") { field.templateOptions.modal = $modal; //field.templateOptions.Restangular = Restangular; } else if (field.type == "ui-cmdbuplode") { $scope.fileUploader = field.templateOptions.fileUploader = new FileUploader({ url: '/uploader', queueLimit: 1, //文件个数 autoUpload: true }); // $scope.fileUploadermeans = field.templateOptions.fileUploadermeans; } else if (field.type == "ui-dropfile") { field.templateOptions.fileUploader = new FileUploader({ url: '/uploader' }); field.templateOptions.taskId = $stateParams.taskId; field.templateOptions.processInstanceId = $stateParams.processInstanceId; field.templateOptions.userId = $rootScope.user.id; //field.ApiService=api_bpm_domain; } else if (field.type == "ui-dropfiletable") { if (field.templateOptions.processInstanceId) { } else { field.templateOptions.processInstanceId = $stateParams.processInstanceId; } } else if (field.type == "ui-repeatSection") { var repeatForm = { model: { }, fields: field.templateOptions.fields }; repeatForm.model[field.key] = []; decodeVMTabForm(repeatForm); } } // console.log(field); //field //result.fields.push(field); }) }); vm.originalTabs = angular.copy(vm.form); } //======================处理表单设计数据 结束======================== $scope.ldloading = {}; function filter(obj) { angular.forEach(obj, function(key, value) { if (value === "" || value === null) { delete obj[key]; } else if (Object.prototype.toString.call(value) === '[object Object]') { filter(value); } else if (angular.isArray(value)) { angular.forEach(value, function(item) { filter(item); }); } }); } function invokeOnAllFormOptions(fn) { angular.forEach(vm.tabs, function(tab) { if (tab.form.options && tab.form.options[fn]) { tab.form.options[fn](); } }); } function encodeCIData(data, ciId) { /* create/update state:未审核 create createtime:系统时间 create/update lastupdatetime : 系统时间 label:ci分类 */ if (ciId) { var baseprop = ['uuid', 'name', 'type', 'label', 'status', 'createtime', 'lastupdatetime', 'props']; //state|audittime//createtime//removeflag|removetime//configperson//lastupdateperson//manager//useradmin var extraprop = 'props'; data[extraprop] = {}; for (var key in data) { console.log(data[key]); if (_.indexOf(baseprop, key) >= 0) { continue; } else { data[extraprop][key] = data[key]; delete data[key]; } } if ($rootScope.user) { data[extraprop]['lastupdateperson'] = $rootScope.user.name; data[extraprop]['configperson'] = $rootScope.user.name; var isCMAdminFlag = false; angular.forEach($rootScope.user.role, function(roleItem) { if (roleItem.rolecode == "cmdb charge") { isCMAdminFlag = true; } }) if (!isCMAdminFlag) { data[extraprop]['state'] = '1'; } } if (data.props.id) { } else { data.label = ciId; } return data; } return undefined; } function decodeCIModel(data) { var extraprop = 'props'; if (data[extraprop]) { for (var key in data[extraprop]) { data[key] = data[extraprop][key]; } delete data[extraprop]; } data['iscmadmin'] = false; angular.forEach($rootScope.user.role, function(roleItem) { if (roleItem.rolecode == "cmdb charge") { data['iscmadmin'] = true; } }) return data; } function formValid() { angular.forEach(vm.tabs, function(item) { //item. }) } $scope.vm = vm; $scope.refreshcmdbform = function(item) { // var tempclassify = item.prefix.toLowerCase() + item.sign; api_configure_form.renderTabForm(item).then(function(data) { var myData = Restangular.stripRestangular(data); $scope.propTypeOptions = myData; $scope.templateProps = myData; $scope.vm.tabs = myData; vm.models = {} // if ($scope.model.assets) { // vm.models = JSON.parse($scope.model.assets); // } // if (angular.isDefined(vm.models.vtvmvtm_kaiji)) { // if (vm.models.vtvmvtm_kaiji) { // vm.models.vtvmvtm_kaiji = "是"; // } else { // vm.models.vtvmvtm_kaiji = "否"; // } // } decodeVMTabForm(vm.models, vm.tabs); }); // } } var cifilterClassic = {}; // if ($scope.$parent.$parent.$parent.model.cifilterClassic && cifilterClassic.id != $scope.$parent.$parent.$parent.model.cifilterClassic.id) { // cifilterClassic = $scope.$parent.$parent.$parent.model.cifilterClassic; $scope.refreshcmdbform('basehwnwswt'); //高度 changeDivHeight();          window.onresize = function() {  changeDivHeight(); }               function  changeDivHeight() {                                var  h  =  document.documentElement.clientHeight; //获取页面可见高度   $scope.textheight = { "height": h - 46 + "px" };   } // $scope.wangfont = { "height": h - 46 + "px" }; $scope.wangfont = function(tabsdata) { // angular.forEach($scope.differencelist, function(item) { // if (item == tabsdata) { // return true; // } // })  for (var i = 0; i < $scope.differencelist.length; i++) {  if ($scope.differencelist[i] == tabsdata) { return true; } } } }])