var sysFormly = angular.module('formlySystem', [ 'formly', 'formlyBootstrap', 'ui.bootstrap', 'ngSanitize', 'ui.select', 'ui.grid' ]); app.requires.push('formlySystem'); // var appFormly = angular.module('formlyExample', [ // 'formly', 'formlyBootstrap','ui.bootstrap', // 'ngSanitize','ui.select','ui.grid'], sysFormly.config( function config(formlyConfigProvider) { //格式转换方法 XXX-XXX转驼峰命名 }); sysFormly.controller('cmdbformCtrl', ['$rootScope', '$scope', '$parse', '$filter', '$injector', '$http', '$q', '$state', '$stateParams', '$modal', '$timeout', '$interval', 'SweetAlert', 'FileUploader', 'i18nService', 'moment', 'Restangular', 'UserRestangular', 'BpmRestangular', 'api_configure_form', 'api_bpm_domain', 'api_bpm_data', 'api_user_data', 'up_down_file', function($rootScope, $scope, $parse, $filter, $injector, $http, $q, $state, $stateParams, $modal, $timeout, $interval, SweetAlert, FileUploader, i18nService, moment, Restangular, UserRestangular, BpmRestangular, api_configure_form, api_bpm_domain, api_bpm_data, api_user_data, up_down_file) { $scope.width = { 'width': document.getElementById("form").offsetWidth }; window.onresize = function() { if (document.getElementById("form")) { $scope.width = { 'width': document.getElementById("form").offsetWidth }; } } //console.log($stateParams); var vm = this; vm.options = {}; vm.exampleTitle = ['expressionProperties', 'model property']; vm.fields = []; vm.model = {}; $scope.langs = i18nService.getAllLangs(); $scope.lang = 'zh-cn'; //alert($rootScope.user.id,null,2); // vm.model["loginUser"] = $rootScope.user; var that = $injector; var parse = $parse; $scope.langs = i18nService.getAllLangs(); $scope.lang = 'zh-cn'; i18nService.setCurrentLang($scope.lang); 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; var modelWatch = ""; var fieldsWatch = []; var serviceWatch = null; var formWatch = {}; if (angular.isDefined($stateParams.model) && $stateParams.model != "") { modelWatch = JSON.parse($stateParams.model); // console.log("modelWatch:"+ JSON.stringify(modelWatch)); } if (angular.isDefined($stateParams.fields) && $stateParams.fields != "") { fieldsWatch = JSON.parse($stateParams.fields); } if (angular.isDefined($stateParams.extjson) && $stateParams.extjson != "") { formWatch.extjson = JSON.parse($stateParams.extjson); } if (angular.isDefined($stateParams.cancelUrl) && $stateParams.cancelUrl != "") { formWatch.cancelUrl = $stateParams.cancelUrl; } if (angular.isDefined($stateParams.url) && $stateParams.url != "") { formWatch.url = $stateParams.url; } if (angular.isDefined($stateParams.service) && $stateParams.service != "") { if (that.has($stateParams.service)) { serviceWatch = that.get($stateParams.service); } else { serviceWatch = $stateParams.service; } } //用户测试数据,后续从header的auth中获取 var userId = 2; userId = $rootScope.user.id; //==============处理表单设计数据 开始==================== //处理组件加载后台数据选项的方法 function refreshSelectOptions(searchVal, field) { //todo console.log(field); if (field.key == 'id' && field.templateOptions.pkey == 'change.source') { field.templateOptions.options = [{ "id": 1, "name": "事件", "code": 1 }, { "id": 2, "name": "问题", "code": 2 }, { "id": 3, "name": "配置", "code": 3 }, { "id": 4, "name": "服务级别", "code": 4 }, { "id": 5, "name": "内部需求", "code": 5 }]; } else if (field.templateOptions.optionsUrl) { var process = BpmRestangular.all(""); if (field.templateOptions.ApiService) { process = UserRestangular.all(""); } var datakey = { "idx": 0, "sum": 1000 }; if (field.templateOptions.modelreasondata) { datakey = field.templateOptions.modelreasondata } process.customPOST(datakey, 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 decodeVMForm(vmForm) { var result = { model: {}, fields: [] }; //设置模型实体数据 begin // var mdata = vmForm.model; //解析数据实体 var mdata = angular.fromJson(vmForm.model); //JSON.parse(field.extjson); angular.extend(result.model, mdata); if (modelWatch != null && modelWatch != '') { //angular.extend(result.model.incident,modelWatch.incident); //result.model.alarmType = modelWatch.alarmType; // vmForm.cancelUrl = modelWatch.cancelUrl; for (var index in modelWatch.model) { console.log(JSON.stringify(index + " " + JSON.stringify(modelWatch.model[index]))); if (result.model[index] != null) { angular.extend(result.model[index], modelWatch.model[index]); } else { result.model[index] = modelWatch.model[index]; } } } //设置模型实体数据 end //解析设计数据生成表单项 begin var fields = []; //处理修改设计数据中展示设置 angular.forEach(vmForm.fields, function(field) { if (field.key == "") { delete field.key; } if (angular.isDefined(field.extjson)) { var extObj = angular.fromJson(field.extjson); //JSON.parse(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 { } } } 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 (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 {} } } //console.log(field); 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-requesterselect") { //field.templateOptions.language = $scope.lang; field.templateOptions.modal = $modal; field.templateOptions.UserService = api_user_data; } 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-search") { field.templateOptions.modal = $modal; } else if (field.type == "ui-incidentmodelselect") { field.templateOptions.modal = $modal; //console.log("$rootScope.user:" + JSON.stringify($rootScope.user)); field.templateOptions.loginUser = $rootScope.user; //field.templateOptions.Restangular = Restangular; } else if (field.type == "ui-gridlist") { field.templateOptions.modal = $modal; field.templateOptions.loginUser = $rootScope.user; } else if (field.type == "ui-modelselect") { field.templateOptions.modal = $modal; //console.log("$rootScope.user:" + JSON.stringify($rootScope.user)); field.templateOptions.loginUser = $rootScope.user; //field.templateOptions.Restangular = Restangular; } else if (field.type == "ui-cmdbinformation") { field.templateOptions.modal = $modal; //console.log("$rootScope.user:" + JSON.stringify($rootScope.user)); field.templateOptions.loginUser = $rootScope.user; //field.templateOptions.Restangular = Restangular; } else if (field.type == "ui-cmdbuplode") { $scope.fileUploader = field.templateOptions.fileUploader = new FileUploader({ url: '/uploader', queueLimit: 1, //文件个数 // removeAfterUpload: true // autoUpload: true }); $scope.fileUploadermeans = field.templateOptions.fileUploadermeans = new FileUploader({ url: '/uploadermeans' }); field.templateOptions.modal = $modal; //console.log("$rootScope.user:" + JSON.stringify($rootScope.user)); field.templateOptions.loginUser = $rootScope.user; //field.templateOptions.Restangular = Restangular; } else if (field.type == "ui-uplodchange") { $scope.fileUploader = field.templateOptions.fileUploader = new FileUploader({ url: '/uploader' }); field.templateOptions.modal = $modal; field.templateOptions.loginUser = $rootScope.user; } else if (field.type == "ui-cmdbtype") { field.templateOptions.modal = $modal; //console.log("$rootScope.user:" + JSON.stringify($rootScope.user)); field.templateOptions.loginUser = $rootScope.user; //field.templateOptions.Restangular = Restangular; } else if (field.type == "ui-dropfile") { $scope.fileUploader = 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-dropupload") { 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] = []; decodeVMForm(repeatForm); } else if (field.type == "ui-currentuser") { field.templateOptions.user = vm.model["loginUser"]; } } // console.log(field); result.fields.push(field); }); angular.extend($scope.vm.fields, result.fields); angular.extend($scope.vm.model, result.model); console.log($rootScope.user); // vm.model["loginUser"] = $rootScope.user; if (modelWatch != null && modelWatch != '' && modelWatch.cancelUrl != null && modelWatch.cancelUrl != '') { vmForm.cancelUrl = modelWatch.cancelUrl; } $scope.formData = vmForm; //console.log($scope.vm); //解析设计数据生成表单项 end return result; } //======================处理表单设计数据 结束======================== $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); }); } }); } $scope.closeModel = function() { // if (angular.isDefined($stateParams.formKey) && $stateParams.formKey != "") { $state.go($scope.formData.cancelUrl); event.preventDefault(); // } } $scope.vaild = false; $rootScope.loading = false; vm.submit = function(data, style) { if (vm.form.$valid) { $rootScope.loading = true; $scope.vaild = true; // $scope.ldloading[style.replace('-', '_')] = true; vm.options.updateInitialValue(); var _ = window._; vm.model = (function filter(obj) { var dateTransKeys = []; var filtered = _.pick(obj, function(v, k, obj) { if (_.isDate(v)) { dateTransKeys.push(k); } return angular.isDefined(v) && v !== null && (angular.isArray(v) ? v.length > 0 : true) && (_.isPlainObject(v) ? (!_.isEmpty(v)) : true); }); return _.cloneDeep(filtered, function(v, index, object) { if (angular.isArray(dateTransKeys) && dateTransKeys.length > 0) { angular.forEach(dateTransKeys, function(item) { v[item] = moment(v[item]).format('YYYY-MM-DD HH:mm:ss'); }) dateTransKey = []; return v; } return !(_.isEmpty(filtered)) && v !== filtered && _.isPlainObject(v) ? filter(v) : undefined; }); })(vm.model); if (pdKey != "") { if ($scope.oprcode == "save") { //保存 api_bpm_domain.save(taskId, vm.model).then(function(response) { if (response) { // if (response.status && response.status != 400) { var resData = Restangular.stripRestangular(response); SweetAlert.swal({ title: "保存成功!", confirmButtonColor: "#007AFF" }, function() { $rootScope.loading = false; $state.go($scope.formData.cancelUri); }); // if(resData.status){ // resData // } } else { SweetAlert.swal({ title: "系统错误", text: "系统错误,请稍后重试!", type: "error", confirmButtonColor: "#DD6B55" }); $rootScope.loading = false; } $scope.vaild = false; $rootScope.loading = false; // $scope.ldloading[style.replace('-', '_')] = false; // } }); } else { switch ($scope.formData.url) { case "start": vm.model["initUser"] = $rootScope.user.id; if (vm.model.applicationForm && vm.model.applicationForm.sourceId && vm.model.applicationForm.sourceId != "") { if (vm.model.applicationForm.sourceId.incidentsign) { vm.model.applicationForm.sourceId = vm.model.applicationForm.sourceId.incidentsign; } else if (vm.model.applicationForm.sourceId.changesign) { vm.model.applicationForm.sourceId = vm.model.applicationForm.sourceId.changesign; } } if ($scope.formData.name == "applicationForm_subtract_add" || $scope.formData.name == "applicationForm_add") { if (vm.model.applicationForm.assets || ($scope.fileUploader && $scope.fileUploader.queue && $scope.fileUploader.queue.length > 0)) { // if($scope.formData.name == "applicationForm_subtract_add"){ // } if (vm.model.cifilterClassic) { delete vm.model.cifilterClassic.parent } api_bpm_domain.start(pdKey, vm.model).then(function(response) { // console.log("response="+JSON.stringify(response)); if (response) { // if (response.status && response.status != 400) { var resData = Restangular.stripRestangular(response); if (resData && pdKey == "bpm_applicationForm") { // if ($scope.fileUploader != null && $scope.fileUploader.getNotUploadedItems().length > 0) { $scope.fileUploader.onBeforeUploadItem = function(item) { // angular.extend(item.headers, { // 'access-token': $rootScope.getSession()["access-token"] // }); // item.url = up_down_file.saveAttachments('common/common/uploadAttachment', $scope.formData.model.bindType, resData.id).getRequestedUrl(); item.url = up_down_file.saveAttachments('common/common/uploadAttachment', "applicationForm", resData.id).getRequestedUrl(); item.formData.push({ 'filename': item.file.name }); }; if ($scope.fileUploader.queue[0]) { $scope.fileUploader.queue[0].isSuccess = false; $scope.fileUploader.queue[0].isUploaded = false; $scope.fileUploader.uploadAll(); } } SweetAlert.swal({ title: "提交成功!", type: "success", confirmButtonColor: "#007AFF" }, function() { $rootScope.loading = false; $state.go($scope.formData.cancelUrl); }); // } } else { SweetAlert.swal({ title: "系统错误", text: "系统错误,请稍后重试!", type: "error", confirmButtonColor: "#DD6B55" }); $scope.vaild = false; $rootScope.loading = false; $scope.ldloading[style.replace('-', '_')] = false; } }); } else { if (($scope.formData.name == "applicationForm_subtract_add" && vm.model.type.id == 1 && vm.model.applicationForm.consumables)||($scope.formData.name == "applicationForm_add" && vm.model.type.id == 1620 && vm.model.applicationForm.consumables)) { api_bpm_domain.start(pdKey, vm.model).then(function(response) { // console.log("response="+JSON.stringify(response)); if (response) { // if (response.status && response.status != 400) { var resData = Restangular.stripRestangular(response); if (resData && pdKey == "bpm_applicationForm") { // if ($scope.fileUploader != null && $scope.fileUploader.getNotUploadedItems().length > 0) { $scope.fileUploader.onBeforeUploadItem = function(item) { // angular.extend(item.headers, { // 'access-token': $rootScope.getSession()["access-token"] // }); // item.url = up_down_file.saveAttachments('common/common/uploadAttachment', $scope.formData.model.bindType, resData.id).getRequestedUrl(); item.url = up_down_file.saveAttachments('common/common/uploadAttachment', "applicationForm", resData.id).getRequestedUrl(); item.formData.push({ 'filename': item.file.name }); }; if ($scope.fileUploader.queue[0]) { $scope.fileUploader.queue[0].isSuccess = false; $scope.fileUploader.queue[0].isUploaded = false; $scope.fileUploader.uploadAll(); } } SweetAlert.swal({ title: "提交成功!", type: "success", confirmButtonColor: "#007AFF" }, function() { $state.go($scope.formData.cancelUrl); }); // } } else { SweetAlert.swal({ title: "系统错误", text: "系统错误,请稍后重试!", type: "error", confirmButtonColor: "#DD6B55" }); } $scope.vaild = false; $rootScope.loading = false; $scope.ldloading[style.replace('-', '_')] = false; }); } else { SweetAlert.swal({ title: "资产未填写", text: "请填写资产信息后再提交!", type: "error", confirmButtonColor: "#DD6B55" }); $scope.vaild = false; $rootScope.loading = false; $scope.ldloading[style.replace('-', '_')] = false; } } } else { api_bpm_domain.start(pdKey, vm.model).then(function(response) { // console.log("response="+JSON.stringify(response)); if (response) { // if (response.status && response.status != 400) { var resData = Restangular.stripRestangular(response); if (resData && pdKey == "bpm_applicationForm") { // if ($scope.fileUploader != null && $scope.fileUploader.getNotUploadedItems().length > 0) { $scope.fileUploader.onBeforeUploadItem = function(item) { // angular.extend(item.headers, { // 'access-token': $rootScope.getSession()["access-token"] // }); // item.url = up_down_file.saveAttachments('common/common/uploadAttachment', $scope.formData.model.bindType, resData.id).getRequestedUrl(); item.url = up_down_file.saveAttachments('common/common/uploadAttachment', "applicationForm", resData.id).getRequestedUrl(); item.formData.push({ 'filename': item.file.name }); }; if ($scope.fileUploader.queue[0]) { $scope.fileUploader.queue[0].isSuccess = false; $scope.fileUploader.queue[0].isUploaded = false; $scope.fileUploader.uploadAll(); } } SweetAlert.swal({ title: "提交成功!", type: "success", confirmButtonColor: "#007AFF" }, function() { $state.go($scope.formData.cancelUrl); }); // } } else { SweetAlert.swal({ title: "系统错误", text: "系统错误,请稍后重试!", type: "error", confirmButtonColor: "#DD6B55" }); } $scope.vaild = false; $rootScope.loading = false; $scope.ldloading[style.replace('-', '_')] = false; }); } break; case "complete": if ($scope.formData.name == "applicationForm_subtract_operation") { if ((vm.model.applicationForm.type == 4 && vm.model.applicationForm.oldAssets) || vm.model.applicationForm.type != 4) { // if (vm.model.applicationForm.type == 4 && vm.model.applicationForm.oldAssets) { // angular.forEach(vm.model.applicationForm.oldAssets, function(item, index) { // if (item) { // } // }) // } if (vm.model.applicationForm.assets) { var oldaset = true; angular.forEach(vm.model.applicationForm.assets, function(item, index) { if (item.props && item.props.hwnw_area && item.props.hwnw_place && item.props.hwnw_room && item.props.hwnwswt_jiguihao && item.props.hwnwswt_Ushu && item.props.snnum) { } else { oldaset = false } }) if (oldaset) { api_bpm_domain.complete($stateParams.taskId, userId, vm.model).then(function(response) { if (response) { var resData = Restangular.stripRestangular(response); SweetAlert.swal({ title: "提交成功!", type: "success", confirmButtonColor: "#007AFF" }, function() { // if($scope.uploader.getNotUploadedItems().length>0&&response.data.processInstanceId){ // // $scope.uploader.options.url(); // $scope.uploader.onBeforeUploadItem = function(item) { // item.url = api_bpm_domain.saveAttachments($stateParams.processInstanceId,$stateParams.taskId,$scope.user.id).getRequestedUrl(); // console.info('onBeforeUploadItem', item); // }; // $scope.uploader.uploadAll(); // } $state.go($scope.formData.cancelUrl); }); } else { SweetAlert.swal({ title: "系统错误", text: "系统错误,请稍后重试!", type: "error", confirmButtonColor: "#DD6B55" }); } $scope.vaild = false; $rootScope.loading = false; $scope.ldloading[style.replace('-', '_')] = false; }); } else { SweetAlert.swal({ title: "设备信息未填完整", text: "请补充完整设备信息后再提交!", type: "error", confirmButtonColor: "#DD6B55" }); $scope.vaild = false; $rootScope.loading = false; $scope.ldloading[style.replace('-', '_')] = false; } } else if (vm.model.applicationForm.type != 4) { api_bpm_domain.complete($stateParams.taskId, userId, vm.model).then(function(response) { if (response) { var resData = Restangular.stripRestangular(response); SweetAlert.swal({ title: "提交成功!", type: "success", confirmButtonColor: "#007AFF" }, function() { $state.go($scope.formData.cancelUrl); }); } else { SweetAlert.swal({ title: "系统错误", text: "系统错误,请稍后重试!", type: "error", confirmButtonColor: "#DD6B55" }); $scope.vaild = false; $rootScope.loading = false; $scope.ldloading[style.replace('-', '_')] = false; } $scope.vaild = false; $rootScope.loading = false; $scope.ldloading[style.replace('-', '_')] = false; }); } // api_bpm_domain.complete($stateParams.taskId, userId, vm.model).then(function(response) { // if (response) { // var resData = Restangular.stripRestangular(response); // SweetAlert.swal({ // title: "提交成功!", // type: "success", // confirmButtonColor: "#007AFF" // }, function() { // // if($scope.uploader.getNotUploadedItems().length>0&&response.data.processInstanceId){ // // // $scope.uploader.options.url(); // // $scope.uploader.onBeforeUploadItem = function(item) { // // item.url = api_bpm_domain.saveAttachments($stateParams.processInstanceId,$stateParams.taskId,$scope.user.id).getRequestedUrl(); // // console.info('onBeforeUploadItem', item); // // }; // // $scope.uploader.uploadAll(); // // } // $state.go($scope.formData.cancelUrl); // }); // } else { // SweetAlert.swal({ // title: "系统错误", // text: "系统错误,请稍后重试!", // type: "error", // confirmButtonColor: "#DD6B55" // }); // } // $scope.ldloading[style.replace('-', '_')] = false; // }); } else { SweetAlert.swal({ title: "旧设备信息未填", text: "请填写旧设备信息后再提交!", type: "error", confirmButtonColor: "#DD6B55" }); $scope.vaild = false; $rootScope.loading = false; $scope.ldloading[style.replace('-', '_')] = false; } } else { api_bpm_domain.complete($stateParams.taskId, userId, vm.model).then(function(response) { if (response) { var resData = Restangular.stripRestangular(response); SweetAlert.swal({ title: "提交成功!", type: "success", confirmButtonColor: "#007AFF" }, function() { // if($scope.uploader.getNotUploadedItems().length>0&&response.data.processInstanceId){ // // $scope.uploader.options.url(); // $scope.uploader.onBeforeUploadItem = function(item) { // item.url = api_bpm_domain.saveAttachments($stateParams.processInstanceId,$stateParams.taskId,$scope.user.id).getRequestedUrl(); // console.info('onBeforeUploadItem', item); // }; // $scope.uploader.uploadAll(); // } $state.go($scope.formData.cancelUrl); }); } else { SweetAlert.swal({ title: "系统错误", text: "系统错误,请稍后重试!", type: "error", confirmButtonColor: "#DD6B55" }); } $scope.vaild = false; $rootScope.loading = false; $scope.ldloading[style.replace('-', '_')] = false; }); } break; case "back": $state.go($scope.formData.cancelUrl); break; default: $scope.vaild = false; $rootScope.loading = false; $scope.ldloading[style.replace('-', '_')] = false; break; } } // var submitFunc = api_bpm_domain[$scope.formData.url] // if(anuglar.isFunction(submitFunc)){ // submitFunc.apply(null, pdKey) // } } } else { // console.log(data) // angular.forEach(vm.form.$error.required, function(item){ // var i=(item.$name).substring(item.$name.length-2) var i = Number((vm.form.$error.required[0].$name).split("_")[4]); // for(var i=0;i>>");console.log(myData); api_configure_form.renderForm(myData.data, userId, processInstanceId,$stateParams.id).then(function(responseData) { if (responseData) { //console.log("responseData>>>");//console.log(responseData); var vmForm = Restangular.stripRestangular(responseData); if (vmForm) { //console.log("vmForm>>>");//console.log(vmForm); decodeVMForm(vmForm); //console.log($scope); } } }); } }) } else { if (pdKey != "") { renderform(); } else { // if (angular.isDefined(fieldsWatch) && fieldsWatch.length > 0) { var vmForm = { fields: fieldsWatch, model: modelWatch } angular.extend(vmForm, formWatch); //$scope.formData = vmForm; if (vmForm) { decodeVMForm(vmForm); } } else { //for form //TODO //测试数据 开始 var testJson = { fields: [{ key: 'formtitle', type: 'ui-title', noFormControl: true, templateOptions: { label: 'title is ', placeholder: 'Formly is terrific!' } }, { key: 'b', type: 'ui-cmdbtab', className: 'col-xs-12', templateOptions: { type: 'input', label: 'input a', placeholder: '12', rBtn: { icon: 'fa fa-phone', onClick: function(val, opt, el, ev, model) { alert(val); } }, lAddon: '' } }, { key: 'b', type: 'ui-cmdbinformation', className: 'col-xs-4', templateOptions: { type: 'input', label: 'input a', placeholder: '12', rBtn: { icon: 'fa fa-phone', onClick: function(val, opt, el, ev, model) { alert(val); } }, lAddon: '' } }, { key: 'b', type: 'ui-cmdbtype', className: 'col-xs-4', templateOptions: { type: 'input', label: 'input a', placeholder: '12', rBtn: { icon: 'fa fa-phone', onClick: function(val, opt, el, ev, model) { alert(val); } }, lAddon: '' } }, { key: 'b', type: 'ui-form', className: 'col-xs-8', templateOptions: { type: 'input', label: 'input a', placeholder: '12', extjson: { "templateOptions": { "pkey": "cmdb", "isMultiSelect": false, "selLeafs": true, "refreshData": "(function(APIService){return APIService.fetchDataList('ciclassify',{'idx':0,'sum':1000});})", "APIService": "api_configure_data", "labelProp": "label", "optionsDataKey": "list", "refreshDelay": 1000, "onDataCallback": "(function(item,selectItems,options, field, model){var tempclassify = item.prefix.toLowerCase() + item.sign; $scope.cifilter_classic = tempclassify;$scope.templateitem = item;api_configure_form.renderTabForm(tempclassify).then(function(data) {var myData = Restangular.stripRestangular(data);$scope.propTypeOptions = myData;$scope.templateProps = myData;$scope.vm.tabs = myData;vm.model = {};}); })" }, "expressionProperties": { "templateOptions.required": "'(model.incident. category.id)'" } }, rBtn: { icon: 'fa fa-phone', onClick: function(val, opt, el, ev, model) { alert(val); } }, lAddon: '' } }, ], model: { username: "robin lau", password: "123456", change: { source: { id: 5 } }, chkme: false, start_code: 0, arrayData: [{ "id": 13, "dept": "村镇银行管理部" }, { "id": 14, "dept": "电子银行部" }], formtitle: "Hey!I am title value!", name: { first: "robin", last: "lau" }, multiselectItem: [] //date:"2015-09-15 00:00:00" } }; setTimeout(function() { decodeVMForm(testJson); $scope.$apply(); }, 500); //测试数据结束 } } console.log("end decode"); } } ]);