inspectForm.1.js 17 KB

1
  1. var sysFormly=angular.module("formlySystem",["formly","formlyBootstrap","ui.bootstrap","ngSanitize","ui.select","ui.grid"]);app.requires.push("formlySystem"),sysFormly.config(["formlyConfigProvider",function(e){}]),sysFormly.controller("SystemformCtrl",["$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",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){function refreshSelectOptions(e,t){var a={};if("id"==t.key&&"change.source"==t.templateOptions.pkey)t.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(t.templateOptions.optionsUrl){var l=BpmRestangular.all("");a={idx:0,sum:100},t.templateOptions.ApiService&&(l=UserRestangular.all(""),a={user:{roledata:{rolecode:"inspectman"}},idx:0,sum:1e3}),l.customPOST(a,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);if(angular.extend(result.model,mdata),null!=modelWatch&&""!=modelWatch)for(var index in modelWatch.model)null!=result.model[index]?angular.extend(result.model[index],modelWatch.model[index]):result.model[index]=modelWatch.model[index];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])&&!new RegExp("[一-龥]").test(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-dropfile"==field.type)$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;else if("ui-dropfilenotup"==field.type)$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;else if("ui-dropfiletable"==field.type)field.templateOptions.processInstanceId||(field.templateOptions.processInstanceId=$stateParams.processInstanceId);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),null!=modelWatch&&""!=modelWatch&&null!=modelWatch.cancelUrl&&""!=modelWatch.cancelUrl&&(vmForm.cancelUrl=modelWatch.cancelUrl),$scope.formData=vmForm,result}function filter(e){angular.forEach(e,function(t,a){""===a||null===a?delete e[t]:"[object Object]"===Object.prototype.toString.call(a)?filter(a):angular.isArray(a)&&angular.forEach(a,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";var that=$injector,parse=$parse,modelWatch="",fieldsWatch=[],serviceWatch=null,formWatch={};angular.isDefined($stateParams.model)&&""!=$stateParams.model&&(modelWatch=JSON.parse($stateParams.model)),angular.isDefined($stateParams.fields)&&""!=$stateParams.fields&&(fieldsWatch=JSON.parse($stateParams.fields)),angular.isDefined($stateParams.extjson)&&""!=$stateParams.extjson&&(formWatch.extjson=JSON.parse($stateParams.extjson)),angular.isDefined($stateParams.cancelUrl)&&""!=$stateParams.cancelUrl&&(formWatch.cancelUrl=$stateParams.cancelUrl),angular.isDefined($stateParams.url)&&""!=$stateParams.url&&(formWatch.url=$stateParams.url),angular.isDefined($stateParams.service)&&""!=$stateParams.service&&(serviceWatch=that.has($stateParams.service)?that.get($stateParams.service):$stateParams.service);var userId=2;if(userId=$rootScope.user.id,$scope.ldloading={},$scope.closeModel=function(){angular.isDefined($stateParams.formKey)&&""!=$stateParams.formKey&&("inspectionform"==$stateParams.formKey?$state.go("app.inspection.inspectPlan",{}):"inspection__detailform"==$stateParams.formKey&&$state.go("app.inspection.inspectPlan",{}),event.preventDefault())},vm.submit=function(e,t){if(vm.form.$valid)if(e.inspection.planStrategy&&1==e.inspection.planStrategy.id)if(Date.parse(e.inspection.planStartTime)>(new Date).setMinutes((new Date).getMinutes()+1)){vm.options.updateInitialValue(),$scope.ldloading[t.replace("-","_")]=!0;var a=window._;switch(vm.model=function e(t){var l=[],o=a.pick(t,function(e,t,o){return a.isDate(e)&&l.push(t),angular.isDefined(e)&&null!==e&&(!angular.isArray(e)||e.length>0)&&(!a.isPlainObject(e)||!a.isEmpty(e))});return a.cloneDeep(o,function(t,r,s){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):!a.isEmpty(o)&&t!==o&&a.isPlainObject(t)?e(t):void 0})}(vm.model),$scope.formData.url){case"start":vm.model.inspection.id?(vm.model.inspection.requestCategoryDTO&&(vm.model.inspection.requestCategoryDTO={id:vm.model.inspection.requestCategoryDTO.id}),vm.model.inspection,serviceWatch.updData($scope.formData.modelName,vm.model).then(function(e){if(e){var a=Restangular.stripRestangular(e);null!=$scope.fileUploader&&($scope.fileUploader.onBeforeUploadItem=function(e){angular.extend(e.headers,$rootScope.getSession()),e.url=api_bpm_domain.uploadAttachment(a.data.id).getRequestedUrl(),e.formData.push({fileName:e.file.name})},$scope.fileUploader.uploadAll()),a&&200==a.status?SweetAlert.swal({title:"提交成功!",confirmButtonColor:"#007AFF"},function(){$state.go($scope.formData.cancelUrl)}):SweetAlert.swal({title:"提交失败",text:"提交失败,请稍后重试!",type:"error",confirmButtonColor:"#DD6B55"})}else SweetAlert.swal({title:"系统错误",text:"系统错误,请稍后重试!",type:"error",confirmButtonColor:"#DD6B55"});$scope.ldloading[t.replace("-","_")]=!1})):(vm.model.inspection.createUser=$rootScope.user,serviceWatch.addData($scope.formData.modelName,vm.model).then(function(e){if(e){var a=Restangular.stripRestangular(e);null!=$scope.fileUploader&&$scope.fileUploader.getNotUploadedItems().length>0&&a.data.id&&($scope.fileUploader.onBeforeUploadItem=function(e){angular.extend(e.headers,$rootScope.getSession()),e.url=api_bpm_domain.uploadAttachment(a.data.id).getRequestedUrl(),e.formData.push({filename:e.file.name})},$scope.fileUploader.uploadAll()),a&&200==a.status?SweetAlert.swal({title:"提交成功!",confirmButtonColor:"#007AFF"},function(){$state.go($scope.formData.cancelUrl)}):SweetAlert.swal({title:"系统错误",text:"系统错误,请稍后重试!",type:"error",confirmButtonColor:"#DD6B55"})}else SweetAlert.swal({title:"系统错误",text:"系统错误,请稍后重试!",type:"error",confirmButtonColor:"#DD6B55"});$scope.ldloading[t.replace("-","_")]=!1}));break;case"save":serviceWatch.addData($scope.formData.modelName,vm.model).then(function(e){if(e){var a=Restangular.stripRestangular(e);modelWatch.model,a&&200==a.status?SweetAlert.swal({title:"提交成功!",confirmButtonColor:"#007AFF"},function(){$state.go($scope.formData.cancelUrl)}):SweetAlert.swal({title:"系统错误",text:"系统错误,请稍后重试!",type:"error",confirmButtonColor:"#DD6B55"})}else SweetAlert.swal({title:"系统错误",text:"系统错误,请稍后重试!",type:"error",confirmButtonColor:"#DD6B55"});$scope.ldloading[t.replace("-","_")]=!1});break;case"close":$state.go($scope.formData.cancelUrl);break;default:$scope.ldloading[t.replace("-","_")]=!1}}else SweetAlert.swal({title:"提交失败",text:"执行时间有误,请确认执行时间大于当前时间!",type:"error",confirmButtonColor:"#DD6B55"});else{vm.options.updateInitialValue(),$scope.ldloading[t.replace("-","_")]=!0;var a=window._;switch(vm.model=function e(t){var l=[],o=a.pick(t,function(e,t,o){return a.isDate(e)&&l.push(t),angular.isDefined(e)&&null!==e&&(!angular.isArray(e)||e.length>0)&&(!a.isPlainObject(e)||!a.isEmpty(e))});return a.cloneDeep(o,function(t,r,s){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):!a.isEmpty(o)&&t!==o&&a.isPlainObject(t)?e(t):void 0})}(vm.model),$scope.formData.url){case"start":vm.model.inspection.id?(vm.model.inspection.requestCategoryDTO&&(vm.model.inspection.requestCategoryDTO={id:vm.model.inspection.requestCategoryDTO.id}),vm.model.inspection,serviceWatch.updData($scope.formData.modelName,vm.model).then(function(e){if(e){var a=Restangular.stripRestangular(e);a&&200==a.status?SweetAlert.swal({title:"提交成功!",confirmButtonColor:"#007AFF"},function(){$state.go($scope.formData.cancelUrl)}):SweetAlert.swal({title:"提交失败",text:"提交失败,请稍后重试!",type:"error",confirmButtonColor:"#DD6B55"})}else SweetAlert.swal({title:"系统错误",text:"系统错误,请稍后重试!",type:"error",confirmButtonColor:"#DD6B55"});$scope.ldloading[t.replace("-","_")]=!1})):(vm.model.inspection.createUser=$rootScope.user,serviceWatch.addData($scope.formData.modelName,vm.model).then(function(e){if(e){var a=Restangular.stripRestangular(e);a&&200==a.status?SweetAlert.swal({title:"提交成功!",confirmButtonColor:"#007AFF"},function(){$state.go($scope.formData.cancelUrl)}):SweetAlert.swal({title:"系统错误",text:"系统错误,请稍后重试!",type:"error",confirmButtonColor:"#DD6B55"})}else SweetAlert.swal({title:"系统错误",text:"系统错误,请稍后重试!",type:"error",confirmButtonColor:"#DD6B55"});$scope.ldloading[t.replace("-","_")]=!1}));break;case"save":serviceWatch.addData($scope.formData.modelName,vm.model).then(function(e){if(e){var a=Restangular.stripRestangular(e);modelWatch.model,a&&200==a.status?SweetAlert.swal({title:"提交成功!",confirmButtonColor:"#007AFF"},function(){$state.go($scope.formData.cancelUrl)}):SweetAlert.swal({title:"系统错误",text:"系统错误,请稍后重试!",type:"error",confirmButtonColor:"#DD6B55"})}else SweetAlert.swal({title:"系统错误",text:"系统错误,请稍后重试!",type:"error",confirmButtonColor:"#DD6B55"});$scope.ldloading[t.replace("-","_")]=!1});break;case"close":$state.go($scope.formData.cancelUrl);break;default:$scope.ldloading[t.replace("-","_")]=!1}}else SweetAlert.swal({title:"校验错误",text:"请填写必填项!",type:"error",confirmButtonColor:"#DD6B55"}),angular.forEach(vm.form.$error.required,function(e){angular.forEach(vm.fields,function(t){t.name==e.$name&&(t.validation.show=!0)})})},$scope.vm=vm,angular.isDefined($stateParams.formKey)&&""!=$stateParams.formKey)api_configure_form.renderForm($stateParams.formKey,"00000").then(function(e){if(e){var t=Restangular.stripRestangular(e);if(t){decodeVMForm(t)}}});else if(angular.isDefined(fieldsWatch)&&fieldsWatch.length>0){var vmForm={fields:fieldsWatch,model:modelWatch};angular.extend(vmForm,formWatch),vmForm&&decodeVMForm(vmForm)}else{var testJson={fields:[{key:"formtitle",type:"ui-title",noFormControl:!0,templateOptions:{label:"title is ",placeholder:"Formly is terrific!"}},{key:"b",type:"ui-input",className:"col-xs-4",templateOptions:{type:"input",label:"input a",placeholder:"search a...",rBtn:{icon:"fa fa-phone",onClick:function(e,t,a,l,o){}},lAddon:'<i class="fa fa-phone"/>'}},{key:"id",type:"ui-select",templateOptions:{label:"测试默认值",optionsUrl:"abc",valueProp:"id",labelProp:"name",pkey:"change.source"}},{key:"systemType",type:"ui-multiselect",className:"col-xs-4",templateOptions:{label:"所属系统类型",pkey:"change",valueProp:"id",labelProp:"source",optionsUrl:"data/fetchDataList/changesystemtype",optionsDataKey:"list",onChange:function(e,t,a,l,o){var r=null;angular.forEach(a.$parent.fields,function(e){"influenceDepartment"==e.key&&(r=e),"notificationDepartment"==e.key&&(notifyField=e)}),null!=r&&(r.templateOptions.optionsPostData={systemIds:[]},angular.forEach(e,function(e){r.templateOptions.optionsPostData.systemIds.push({id:e})}),r.value([]),e.length>0&&r.templateOptions.refreshData(null,r)),null!=notifyField&&(notifyField.templateOptions.optionsPostData={systemIds:[]},angular.forEach(e,function(e){notifyField.templateOptions.optionsPostData.systemIds.push({id:e})}),notifyField.value([]),e.length>0&&notifyField.templateOptions.refreshData(null,notifyField))}}},{key:"influenceDepartment",type:"ui-multiselectplus",className:"col-xs-4",templateOptions:{label:"所影响的应用系统、科室",pkey:"change",valueProp:"",labelProp:"dept",optionsUrl:"dept/findBySystemType",optionsDataKey:"list",optionsPostData:function(e,t,a){return{systemIds:[]}},refreshData:function(e,t,a,l){t.templateOptions.options=[{id:13,dept:"村镇银行管理部"},{id:14,dept:"电子银行部"}],t.value(t.templateOptions.options)},optionsChecked:!0,required:!0,ApiService:UserRestangular}},{key:"notificationDepartment",type:"ui-multiselectplus",className:"col-xs-4",templateOptions:{label:"需通知科室",pkey:"change",valueProp:"id",labelProp:"dept",optionsUrl:"dept/findBySystemType",optionsDataKey:"list",optionsPostData:function(e,t,a){return{systemIds:[]}},optionsChecked:!0,required:!0,ApiService:UserRestangular}},{type:"ui-label",key:"arrayData",className:"col-xs-4",templateOptions:{label:"数组label数据",labelProp:"dept"}},{key:"selectUser",type:"ui-requesterselect",className:"col-xs-12",templateOptions:{label:"请求人信息",modalTitle:"请求人列表",fetchItems:function(e,t){return t.fetchDataList("requester",e)},Restangular:Restangular,ApiService:api_user_data}},{key:"cabUser",type:"ui-multiuserselect",className:"col-xs-12",templateOptions:{label:"CAB评审成员",modalTitle:"CAB成员列表",fetchItems:function(e,t){return t.fetchDataList("user",e)},Restangular:Restangular,ApiService:api_user_data,onClick:function(e,t,a,l,o){}}}],model:{username:"robin lau",password:"123456",change:{source:{id:5}},chkme:!1,start_code:0,arrayData:[{id:13,dept:"村镇银行管理部"},{id:14,dept:"电子银行部"}],formtitle:"Hey!I am title value!",name:{first:"robin",last:"lau"},multiselectItem:[]}};setTimeout(function(){decodeVMForm(testJson),$scope.$apply()},500)}}]);