dashboardmanage.js 7.6 KB

1
  1. "use strict";var appFormly=angular.module("formlyDashboard",["formly","formlyBootstrap","ui.bootstrap","ngSanitize","ui.select","ui.grid"]);app.requires.push("formlyDashboard"),appFormly.config(["formlyConfigProvider",function(e){}]),appFormly.controller("DashboardformCtrl",["$rootScope","$scope","$parse","$injector","$http","$q","$state","$modal","$timeout","$interval","SweetAlert","i18nService","Restangular","UserRestangular","BpmRestangular","api_configure_form","api_bpm_domain","api_bpm_data","api_user_data",function($rootScope,$scope,$parse,$injector,$http,$q,$state,$modal,$timeout,$interval,SweetAlert,i18nService,Restangular,UserRestangular,BpmRestangular,api_configure_form,api_bpm_domain,api_bpm_data,api_user_data){function refreshSelectOptions(e,t){if(t.templateOptions.optionsUrl){var o=BpmRestangular.all("");t.templateOptions.ApiService&&(o=UserRestangular.all("")),o.customPOST({idx:0,sum:1e3},t.templateOptions.optionsUrl).then(function(e){t.templateOptions.options||(t.templateOptions.options=[]),t.templateOptions.optionsDataKey?t.templateOptions.options=e[t.templateOptions.optionsDataKey]:t.templateOptions.options=e})}}function decodeVMForm(vmForm){var result={model:{},fields:[]},mdata=angular.fromJson(vmForm.model);angular.extend(result.model,mdata);var fields=[];return angular.forEach(vmForm.fields,function(field){if(""==field.key&&delete field.key,angular.isDefined(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)){if(null!=extObj[prop])if(new RegExp("function").test(extObj[prop])){var propValue=eval(extObj[prop]);extObj[prop]=propValue}else{var obj=$scope.$eval(extObj[prop]);extObj[prop]=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("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)if(angular.isString(templateOs[property]))if(new RegExp("function").test(templateOs[property])){var propValue=eval(templateOs[property]);field.templateOptions[property]=propValue}else that.has(templateOs[property])?field.templateOptions[property]=that.get(templateOs[property]):field.templateOptions[property]=templateOs[property];else null==templateOs[property]}if(angular.isDefined(field.templateOptions)&&angular.isDefined(field.templateOptions.extjson)){var extObj=angular.fromJson(field.templateOptions.extjson);angular.extend(field.templateOptions,extObj),delete field.templateOptions.extjson}if(field.templateOptions){if(field.templateOptions.optionsUrl&&(field.templateOptions.refresh=refreshSelectOptions),field.templateOptions.pkey){var pmodel,i=0;angular.forEach(field.templateOptions.pkey.split("."),function(e){0==i?(null==result.model[e]&&(result.model[e]={}),pmodel=result.model[e],i++):(null==pmodel[e]&&(pmodel[e]={}),pmodel=pmodel[e])}),null!=pmodel&&(field.model=pmodel,null==pmodel[field.key]&&(pmodel[field.key]=null))}else null==result.model[field.key]&&(result.model[field.key]=null);if("ui-input-selectmodal"==field.type)field.templateOptions.modal=$modal;else if("ui-requesterselect"==field.type)field.templateOptions.modal=$modal,field.templateOptions.UserService=api_user_data;else if("ui-userselect"==field.type)field.templateOptions.modal=$modal;else if("ui-multiuserselect"==field.type)field.templateOptions.modal=$modal;else if("ui-search"==field.type)field.templateOptions.modal=$modal;else if("ui-modelselect"==field.type)field.templateOptions.modal=$modal,field.templateOptions.loginUser=$rootScope.user;else if("ui-incidentmodelselect"==field.type)field.templateOptions.modal=$modal,field.templateOptions.loginUser=$rootScope.user;else if("ui-repeatSection"==field.type){var repeatForm={model:{},fields:field.templateOptions.fields};repeatForm.model[field.key]=[],decodeVMForm(repeatForm)}else"ui-currentuser"==field.type&&(field.templateOptions.user=vm.model.loginUser)}result.fields.push(field)}),angular.extend($scope.vm.fields,result.fields),angular.extend($scope.vm.model,result.model),vm.model.loginUser=$rootScope.user,$scope.formData=vmForm,"start"==$scope.formData.url?($scope.Reset=!0,$scope.close=!1):"complete"==$scope.formData.url&&($scope.Reset=!1,$scope.close=!0),result}function filter(e){angular.forEach(e,function(t,o){""===o||null===o?delete e[t]:"[object Object]"===Object.prototype.toString.call(o)?filter(o):angular.isArray(o)&&angular.forEach(o,function(e){filter(e)})})}var vm=this;vm.options={},vm.exampleTitle=["expressionProperties","model property"],vm.fields=[],vm.model={},$scope.langs=i18nService.getAllLangs(),$scope.lang="zh-cn",i18nService.setCurrentLang($scope.lang),vm.model.loginUser=$rootScope.user;var that=$injector,parse=$parse,userId=2;userId=$rootScope.user.id,$scope.ldloading={},$scope.closeModel=function(){event.preventDefault()},vm.submit=function(e,t){if(vm.form.$valid){$scope.ldloading[t.replace("-","_")]=!0,vm.options.updateInitialValue();var o=window._;if(vm.model=function e(t){var l=[],r=o.pick(t,function(e,t,r){return o.isDate(e)&&l.push(t),angular.isDefined(e)&&null!==e&&(!angular.isArray(e)||e.length>0)&&(!o.isPlainObject(e)||!o.isEmpty(e))});return o.cloneDeep(r,function(t,p,a){return angular.isArray(l)&&l.length>0?(angular.forEach(l,function(e){t[e]=moment(t[e]).format("YYYY-MM-DD HH:mm:ss")}),dateTransKey=[],t):!o.isEmpty(r)&&t!==r&&o.isPlainObject(t)?e(t):void 0})}(vm.model),""!=pdKey)if("save"==$scope.oprcode)api_bpm_domain.save(taskId,vm.model).then(function(e){if(e){Restangular.stripRestangular(e);SweetAlert.swal({title:"保存成功!",confirmButtonColor:"#007AFF"},function(){$state.go($scope.formData.cancelUri)})}else SweetAlert.swal({title:"系统错误",text:"系统错误,请稍后重试!",type:"error",confirmButtonColor:"#DD6B55"});$scope.ldloading[t.replace("-","_")]=!1});else switch($scope.formData.url){case"start":vm.model.initUser=$rootScope.user.id,vm.model.assignee||vm.model.candidateGroups||(vm.model.assignee=$rootScope.user.id),api_bpm_domain.start(pdKey,vm.model).then(function(e){if(e){var o=Restangular.stripRestangular(e);o&&null!=$scope.fileUploader&&$scope.fileUploader.getNotUploadedItems().length>0&&o.id&&($scope.fileUploader.onBeforeUploadItem=function(e){angular.extend(e.headers,$rootScope.getSession()),e.url=api_bpm_domain.saveAttachments(o.id,"00000",$rootScope.user.id).getRequestedUrl(),e.formData.push({fileName:e.file.name})},$scope.fileUploader.uploadAll()),SweetAlert.swal({title:"提交成功!",confirmButtonColor:"#007AFF"},function(){$state.go($scope.formData.cancelUrl)})}else SweetAlert.swal({title:"系统错误",text:"系统错误,请稍后重试!",type:"error",confirmButtonColor:"#DD6B55"});$scope.ldloading[t.replace("-","_")]=!1})}}else{var l=Number(vm.form.$error.required[0].$name.split("_")[4]);vm.fields[l].name==vm.form.$error.required[0].$name&&SweetAlert.swal({title:vm.fields[l].templateOptions.label+"未填",text:"请填写此项!",type:"error",confirmButtonColor:"#DD6B55"})}},$scope.vm=vm,api_configure_form.renderForm("dashboard").then(function(e){if(e){var t=Restangular.stripRestangular(e);t&&decodeVMForm(t)}})}]);