systemFormCtrl.js 89 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642
  1. var sysFormly = angular.module('formlySystem', [
  2. 'formly', 'formlyBootstrap', 'ui.bootstrap',
  3. 'ngSanitize', 'ui.select', 'ui.grid'
  4. ]);
  5. app.requires.push('formlySystem');
  6. // var appFormly = angular.module('formlyExample', [
  7. // 'formly', 'formlyBootstrap','ui.bootstrap',
  8. // 'ngSanitize','ui.select','ui.grid'],
  9. sysFormly.config(
  10. function config(formlyConfigProvider) {
  11. //格式转换方法 XXX-XXX转驼峰命名
  12. });
  13. sysFormly.controller('SystemformCtrl', ['$rootScope', '$scope', '$parse', '$filter', '$injector', '$http', '$q', '$state', '$stateParams', '$modal', '$timeout', '$interval', 'SweetAlert', 'FileUploader', 'i18nService', 'moment', 'Restangular', 'UserRestangular', 'BpmRestangular', 'WechatRestangular', 'api_configure_form', 'api_bpm_domain', 'api_bpm_data', 'api_user_data', 'api_apply', 'api_solution',
  14. function ($rootScope, $scope, $parse, $filter, $injector, $http, $q, $state, $stateParams, $modal, $timeout, $interval, SweetAlert, FileUploader, i18nService, moment, Restangular, UserRestangular, BpmRestangular, WechatRestangular, api_configure_form, api_bpm_domain, api_bpm_data, api_user_data, api_apply, api_solution) {
  15. // console.log($stateParams,'999999999999999999');
  16. //获取报修主体识别seimin
  17. $scope.repairMain = JSON.parse(sessionStorage.getItem("repair_main"));
  18. var vm = this;
  19. vm.options = {};
  20. vm.exampleTitle = ['expressionProperties', 'model property'];
  21. vm.fields = [];
  22. vm.model = {};
  23. $scope.langs = i18nService.getAllLangs();
  24. $scope.lang = 'zh-cn';
  25. //alert($rootScope.user.id,null,2);
  26. vm.model["loginUser"] = $rootScope.user;
  27. var loginUser = $rootScope.user;
  28. var that = $injector;
  29. var parse = $parse;
  30. var modelWatch = "";
  31. var fieldsWatch = [];
  32. var serviceWatch = null;
  33. var formWatch = {};
  34. if (angular.isDefined($stateParams.model) && $stateParams.model != "") {
  35. modelWatch = JSON.parse($stateParams.model);
  36. //增加识别报修主体seimin
  37. modelWatch.model.repairType = $scope.repairMain.valueconfig;
  38. console.log(modelWatch, 'repairType')
  39. // console.log("modelWatch:"+ JSON.stringify(modelWatch));
  40. if(modelWatch.model.company && modelWatch.model.company.serviceTypeIds && modelWatch.model.company.serviceTypeNames){
  41. //如果是第三方公司管理
  42. modelWatch.model.company.serviceTypeIds = modelWatch.model.company.serviceTypeIds.split(',').map(v=>v-0);
  43. modelWatch.model.company.xxx = angular.copy(modelWatch.model.company.serviceTypeIds).map(v=>Number(v));
  44. modelWatch.model.company.serviceTypeNames = modelWatch.model.company.serviceTypeNames.split(',');
  45. modelWatch.model.company.serviceTypeIds = modelWatch.model.company.serviceTypeIds.map(function(v,i){
  46. return {id:v,name:modelWatch.model.company.serviceTypeNames[i]}
  47. })
  48. console.log(modelWatch.model.company.serviceTypeIds)
  49. }
  50. if(modelWatch.model.company && modelWatch.model.company.categoryTypeIds){
  51. modelWatch.model.company.categoryTypeIds = modelWatch.model.company.categoryTypeIds.split(',').map(v=>v-0);
  52. modelWatch.model.company.categoryTypeIds = modelWatch.model.company.categoryTypeIds.map(function(v,i){
  53. return {id:v}
  54. })
  55. }
  56. }
  57. if (angular.isDefined($stateParams.fields) && $stateParams.fields != "") {
  58. fieldsWatch = JSON.parse($stateParams.fields);
  59. }
  60. if (angular.isDefined($stateParams.extjson) && $stateParams.extjson != "") {
  61. formWatch.extjson = JSON.parse($stateParams.extjson);
  62. }
  63. if (angular.isDefined($stateParams.cancelUrl) && $stateParams.cancelUrl != "") {
  64. formWatch.cancelUrl = $stateParams.cancelUrl;
  65. }
  66. if (angular.isDefined($stateParams.url) && $stateParams.url != "") {
  67. formWatch.url = $stateParams.url;
  68. }
  69. if (angular.isDefined($stateParams.service) && $stateParams.service != "") {
  70. if (that.has($stateParams.service)) {
  71. serviceWatch = that.get($stateParams.service);
  72. } else {
  73. serviceWatch = $stateParams.service;
  74. }
  75. }
  76. //用户测试数据,后续从header的auth中获取
  77. var userId = 2;
  78. userId = $rootScope.user.id;
  79. //==============处理表单设计数据 开始====================
  80. //处理组件加载后台数据选项的方法
  81. function refreshSelectOptions(searchVal, field) {
  82. if (field.templateOptions.optionsUrl && !field.templateOptions.isnosearch) {
  83. var process = BpmRestangular.all("");
  84. if (field.templateOptions.ApiService) {
  85. process = UserRestangular.all("");
  86. }
  87. if (field.templateOptions.Apicommon) {
  88. process = WechatRestangular.all("");
  89. }
  90. var datakey = {
  91. "idx": 0,
  92. "sum": 1000
  93. };
  94. if (field.templateOptions.modelreasondata) {
  95. datakey = field.templateOptions.modelreasondata
  96. }
  97. process.customPOST(datakey, field.templateOptions.optionsUrl).then(function (result) {
  98. if (!field.templateOptions.options) {
  99. field.templateOptions.options = [];
  100. }
  101. if (field.templateOptions.optionsDataKey) {
  102. field.templateOptions.options = result[field.templateOptions.optionsDataKey];
  103. } else {
  104. field.templateOptions.options = result;
  105. }
  106. });
  107. }
  108. }
  109. //获取表单后数据处理
  110. function formfield(field, result) {
  111. // angular.forEach(fields.fields, function(field) {
  112. if (field.key == "") {
  113. delete field.key;
  114. }
  115. if (angular.isDefined(field.extjson)) {
  116. var extObj = angular.fromJson(field.extjson); //JSON.parse(field.extjson);
  117. angular.extend(field.templateOptions, extObj.templateOptions);
  118. delete extObj.templateOptions;
  119. for (var prop in extObj) {
  120. if (new RegExp("Expression").test(prop)) {
  121. //var obj = $scope.$eval(extObj[prop]);
  122. //extObj[prop] = $scope.$eval(extObj[prop]);
  123. if (extObj[prop] != null) {
  124. if (new RegExp("function").test(extObj[prop])) {
  125. var propValue = eval(extObj[prop]);
  126. extObj[prop] = propValue;
  127. } else {
  128. //console.log(extObj[prop]);
  129. var obj = $scope.$eval(extObj[prop]);
  130. extObj[prop] = obj;
  131. //console.log(obj);
  132. }
  133. }
  134. } else if (new RegExp("expressionProperties").test(prop)) {
  135. for (var p in extObj[prop]) {
  136. if (new RegExp("function").test(extObj[prop][p])) {
  137. var propValue = eval(extObj[prop][p]);
  138. extObj[prop][p] = propValue;
  139. } else {
  140. //if(p.indexOf("'")>=0){
  141. // var obj = $scope.$eval(extObj[prop][p]);
  142. // extObj[prop][$scope.$eval(p)]=obj;
  143. //}
  144. }
  145. }
  146. } else if ("watcher" == prop) {
  147. if (angular.isArray(extObj[prop])) {
  148. angular.forEach(extObj[prop], function (item, index) {
  149. for (var p in item) {
  150. if (new RegExp("function").test(item[p])) {
  151. var propValue = eval(item[p]);
  152. extObj[prop][index][p] = propValue;
  153. }
  154. }
  155. });
  156. } else if (angular.isObject(extObj[prop])) {
  157. for (var p in extObj[prop]) {
  158. if (new RegExp("function").test(extObj[prop][p])) {
  159. var propValue = eval(extObj[prop][p]);
  160. extObj[prop][p] = propValue;
  161. }
  162. }
  163. }
  164. }
  165. }
  166. angular.extend(field, extObj);
  167. delete field.extjson;
  168. }
  169. if (angular.isDefined(field.templateOptions)) {
  170. var templateOs = field.templateOptions;
  171. for (var property in templateOs) {
  172. //console.log(angular.isString(templateOs[property]) +" "+property + " " + (!(new RegExp("[\u4e00-\u9fa5]").test(templateOs[property]))));
  173. if (angular.isString(templateOs[property])) { //&& !(new RegExp("[\u4e00-\u9fa5]").test(templateOs[property]))
  174. if (new RegExp("function").test(templateOs[property])) {
  175. var propValue = eval(templateOs[property]);
  176. field.templateOptions[property] = propValue;
  177. } else {
  178. if (that.has(templateOs[property])) {
  179. field.templateOptions[property] = that.get(templateOs[property]);
  180. } else {
  181. field.templateOptions[property] = templateOs[property];
  182. }
  183. }
  184. } else if (templateOs[property] == null) {
  185. //delete field.templateOptions[property];
  186. } else { }
  187. }
  188. }
  189. if (angular.isDefined(field.templateOptions) && angular.isDefined(field.templateOptions.extjson)) {
  190. var extObj = angular.fromJson(field.templateOptions.extjson); //JSON.parse(field.extjson);
  191. angular.extend(field.templateOptions, extObj);
  192. delete field.templateOptions.extjson;
  193. }
  194. // ...
  195. if (field.templateOptions) {
  196. //处理远程获取数据控件方法调用
  197. if (field.templateOptions.optionsUrl && !field.templateOptions.refresh) {
  198. // if (!field.templateOptions.isnoreash) {
  199. field.templateOptions.refresh = refreshSelectOptions;
  200. // }
  201. }
  202. //处理嵌套属性数据绑定/
  203. if (field.templateOptions.pkey) {
  204. var pmodel, i = 0;
  205. angular.forEach(field.templateOptions.pkey.split("."), function (p) {
  206. if (i == 0) {
  207. if (result.model[p] == null) {
  208. result.model[p] = {};
  209. }
  210. pmodel = result.model[p];
  211. i++;
  212. } else {
  213. if (pmodel[p] == null) {
  214. pmodel[p] = {};
  215. }
  216. pmodel = pmodel[p];
  217. }
  218. });
  219. if (pmodel != null) {
  220. field.model = pmodel;
  221. if (pmodel[field.key] == null) {
  222. pmodel[field.key] = null;
  223. }
  224. }
  225. } else {
  226. if (result.model[field.key] == null) {
  227. result.model[field.key] = null;
  228. }
  229. }
  230. //处理弹出框组件初始化
  231. if (field.type == "ui-input-selectmodal") {
  232. field.templateOptions.modal = $modal;
  233. //field.templateOptions.Restangular = Restangular;
  234. } else if (field.type == "ui-requesterselect") {
  235. //field.templateOptions.language = $scope.lang;
  236. field.templateOptions.modal = $modal;
  237. field.templateOptions.UserService = api_user_data;
  238. } else if (field.type == "ui-deptinformation") {
  239. // console.log($model)
  240. field.templateOptions.modal = $modal;
  241. field.templateOptions.UserService = api_user_data;
  242. } else if (field.type == "ui-requesterinformation") {
  243. field.templateOptions.modal = $modal;
  244. field.templateOptions.UserService = api_user_data;
  245. } else if (field.type == "ui-userselect") {
  246. field.templateOptions.modal = $modal;
  247. //field.templateOptions.Restangular = Restangular;
  248. } else if (field.type == "ui-userselectSearch") {
  249. field.templateOptions.modal = $modal;
  250. //field.templateOptions.Restangular = Restangular;
  251. } else if (field.type == "ui-multiuserselect") {
  252. field.templateOptions.modal = $modal;
  253. } else if (field.type == "ui-stringuserselect") {
  254. field.templateOptions.modal = $modal;
  255. } else if (field.type == "ui-search") {
  256. field.templateOptions.modal = $modal;
  257. } else if (field.type == "ui-modelselect") {
  258. field.templateOptions.modal = $modal;
  259. //console.log("$rootScope.user:" + JSON.stringify($rootScope.user));
  260. field.templateOptions.loginUser = $rootScope.user;
  261. //field.templateOptions.Restangular = Restangular;
  262. } else if (field.type == "ui-incidentmodelselect") {
  263. field.templateOptions.modal = $modal;
  264. //console.log("$rootScope.user:" + JSON.stringify($rootScope.user));
  265. field.templateOptions.loginUser = $rootScope.user;
  266. //field.templateOptions.Restangular = Restangular;
  267. } else if (field.type == "ui-dropfile") {
  268. $scope.fileUploader = field.templateOptions.fileUploader = new FileUploader({
  269. url: '/uploader'
  270. });
  271. field.templateOptions.taskId = $stateParams.taskId;
  272. field.templateOptions.processInstanceId = $stateParams.processInstanceId;
  273. field.templateOptions.userId = $rootScope.user.id;
  274. } else if (field.type == "ui-dropfielknow") {
  275. $scope.fileUploader = field.templateOptions.fileUploader = new FileUploader({
  276. url: '/uploader'
  277. });
  278. field.templateOptions.taskId = $stateParams.taskId;
  279. field.templateOptions.processInstanceId = $stateParams.processInstanceId;
  280. field.templateOptions.userId = $rootScope.user.id;
  281. } else if (field.type == "ui-upDropFile") {
  282. $scope.fileUploader = field.templateOptions.fileUploader = new FileUploader({
  283. url: '/uploader'
  284. });
  285. field.templateOptions.taskId = $stateParams.taskId;
  286. field.templateOptions.processInstanceId = $stateParams.processInstanceId;
  287. field.templateOptions.userId = $rootScope.user.id;
  288. } else if (field.type == "ui-dropfilenotup") {
  289. $scope.fileUploader = field.templateOptions.fileUploader = new FileUploader({
  290. url: '/uploader'
  291. });
  292. field.templateOptions.taskId = $stateParams.taskId;
  293. field.templateOptions.processInstanceId = $stateParams.processInstanceId;
  294. field.templateOptions.userId = $rootScope.user.id;
  295. //field.ApiService=api_bpm_domain;
  296. } else if (field.type == "ui-uploadFiles") {
  297. $scope.fileUploader = field.templateOptions.fileUploader = new FileUploader({
  298. url: '/uploader'
  299. });
  300. field.templateOptions.taskId = $stateParams.taskId;
  301. field.templateOptions.processInstanceId = $stateParams.processInstanceId;
  302. field.templateOptions.userId = $rootScope.user.id;
  303. //field.ApiService=api_bpm_domain;
  304. } else if (field.type == "ui-upDownFiles") {
  305. $scope.fileUploader = field.templateOptions.fileUploader = new FileUploader({
  306. url: '/uploader'
  307. });
  308. field.templateOptions.taskId = $stateParams.taskId;
  309. field.templateOptions.processInstanceId = $stateParams.processInstanceId;
  310. field.templateOptions.userId = $rootScope.user.id;
  311. //field.ApiService=api_bpm_domain;
  312. } else if (field.type == "ui-uploadImgs") {
  313. $scope.fileUploader = field.templateOptions.fileUploader = new FileUploader({
  314. url: '/uploader'
  315. });
  316. field.templateOptions.taskId = $stateParams.taskId;
  317. field.templateOptions.processInstanceId = $stateParams.processInstanceId;
  318. field.templateOptions.userId = $rootScope.user.id;
  319. //field.ApiService=api_bpm_domain;
  320. } else if (field.type == "ui-dropfiletable") {
  321. if (field.templateOptions.processInstanceId) {
  322. } else {
  323. field.templateOptions.processInstanceId = $stateParams.processInstanceId;
  324. }
  325. } else if (field.type == "ui-dropFiles") {
  326. if (field.templateOptions.processInstanceId) {
  327. } else {
  328. field.templateOptions.processInstanceId = $stateParams.processInstanceId;
  329. }
  330. } else if (field.type == "ui-showImgs") {
  331. if (field.templateOptions.processInstanceId) {
  332. } else {
  333. field.templateOptions.processInstanceId = $stateParams.processInstanceId;
  334. }
  335. } else if (field.type == "ui-repeatSection") {
  336. var repeatForm = {
  337. model: {
  338. },
  339. fields: field.templateOptions.fields
  340. };
  341. repeatForm.model[field.key] = [];
  342. decodeVMForm(repeatForm);
  343. } else if (field.type == "ui-currentuser") {
  344. field.templateOptions.user = vm.model["loginUser"];
  345. } else if (field.type == "ui-workernumbersign") {
  346. field.templateOptions.user = vm.model["loginUser"];
  347. } else if (field.type == "ui-repair-photos") {
  348. field.templateOptions.user = vm.model["loginUser"];
  349. }
  350. }
  351. }
  352. //解析自定义表单设计数据
  353. $scope.oldfromtype = true;
  354. function decodeVMForm(vmForm) {
  355. if (vmForm.formType == "1") {
  356. $scope.oldfromtype = false;
  357. } else {
  358. $scope.oldfromtype = true;
  359. }
  360. var result = {
  361. model: {},
  362. fields: []
  363. };
  364. //设置模型实体数据 begin
  365. // var mdata = vmForm.model;
  366. //解析数据实体
  367. var mdata = angular.fromJson(vmForm.model); //JSON.parse(field.extjson);
  368. angular.extend(result.model, mdata);
  369. if (modelWatch != null && modelWatch != '') {
  370. //angular.extend(result.model.incident,modelWatch.incident);
  371. //result.model.alarmType = modelWatch.alarmType;
  372. // vmForm.cancelUrl = modelWatch.cancelUrl;
  373. // console.log(modelWatch.cancelUrl)
  374. for (var index in modelWatch.model) {
  375. //console.log(JSON.stringify(index+" " +JSON.stringify( modelWatch.model[index])));
  376. if (result.model[index] != null) {
  377. angular.extend(result.model[index], modelWatch.model[index]);
  378. } else {
  379. result.model[index] = modelWatch.model[index];
  380. }
  381. }
  382. }
  383. //设置模型实体数据 end
  384. //解析设计数据生成表单项 begin
  385. var fields = [];
  386. //处理修改设计数据中展示设置
  387. angular.forEach(vmForm.fields, function (fields) {
  388. if (vmForm.formType == "1") {
  389. angular.forEach(fields.fields, function (field) {
  390. formfield(field, result);
  391. });
  392. } else {
  393. formfield(fields, result);
  394. }
  395. // console.log(field);
  396. result.fields.push(fields);
  397. });
  398. angular.extend($scope.vm.fields, result.fields);
  399. angular.extend($scope.vm.model, result.model);
  400. vm.model["loginUser"] = $rootScope.user;
  401. if (modelWatch != null && modelWatch != '' && modelWatch.cancelUrl != null && modelWatch.cancelUrl != '') {
  402. vmForm.cancelUrl = modelWatch.cancelUrl;
  403. }
  404. $scope.formData = vmForm;
  405. console.log($scope.formData.url);
  406. // console.log("$scope.formData="+JSON.stringify($scope.formData.url));
  407. if ($scope.formData.url == "start") {
  408. $scope.Reset = true;
  409. $scope.close = true;
  410. $rootScope.isMask = false;
  411. } else if ($scope.formData.url == "complete") {
  412. $scope.Reset = false;
  413. $scope.close = true;
  414. }
  415. //解析设计数据生成表单项 end
  416. return result;
  417. }
  418. //======================处理表单设计数据 结束========================
  419. $scope.ldloading = {};
  420. function filter(obj) {
  421. angular.forEach(obj, function (key, value) {
  422. if (value === "" || value === null) {
  423. delete obj[key];
  424. } else if (Object.prototype.toString.call(value) === '[object Object]') {
  425. filter(value);
  426. } else if (angular.isArray(value)) {
  427. angular.forEach(value, function (item) {
  428. filter(item);
  429. });
  430. }
  431. });
  432. }
  433. $scope.statego = function (data) {
  434. // data.state_model.model.incident.area = data.state_model.model.incident.place.areas;
  435. // $state.go(data.gourl, { 'model': JSON.stringify(data.state_model) });
  436. // event.preventDefault();
  437. // 示忙
  438. // $rootScope.setbusy();
  439. console.log(data, 1111)//seimin
  440. var formdata = {
  441. 'model': {
  442. 'incident': {
  443. 'requester': data.incident.requester,
  444. 'branch': data.incident.branch,
  445. 'area': data.incident.place.area,
  446. 'place': data.incident.place,
  447. 'houseNumber': data.incident.address,
  448. 'contacts': data.incident.contacts,
  449. 'contactsInformation': data.incident.contactsInformation,
  450. // 'category': data.incident.category,
  451. 'description': data.incident.incidentDescription,
  452. 'source': {
  453. 'id': 1549
  454. },
  455. 'department': {
  456. id: data.incident.departmentDTO.id
  457. },
  458. 'sourceType': data.incident.sourceType,
  459. 'fileUrl': data.incident.fileUrl,
  460. room:data.incident.room
  461. },
  462. 'requestershow': data.incident.requester,
  463. 'flow': data.incident.id
  464. }
  465. }
  466. if(data.incident.category){
  467. formdata.model.incident.category = data.incident.category;
  468. }
  469. $state.go(data.gourl, { 'model': JSON.stringify(formdata) });
  470. event.preventDefault();
  471. }
  472. console.log($scope);
  473. $scope.closeModel = function () {
  474. // console.log("$stateParams.formKey="+JSON.stringify($stateParams.formKey))
  475. if (angular.isDefined($stateParams.formKey) && $stateParams.formKey != "") {
  476. // if ($stateParams.formKey == "system_edit") {
  477. // $state.go('app.system.user.user', {});
  478. // } else if ($stateParams.formKey == "system_edit_role") {
  479. // $state.go('app.system.user.role', {});
  480. // } else if ($stateParams.formKey == "system_edit_roletype") {
  481. // $state.go('app.system.user.role', {});
  482. // } else if ($stateParams.formKey == "system_edit_navmanager") {
  483. // $state.go('app.system.navmanager', {});
  484. // } else if ($stateParams.formKey == "system_edit_requester") {
  485. // $state.go('app.system.userdesign.requester', {});
  486. // } else if ($stateParams.formKey == "noticeEditor") {
  487. // $state.go('app.system.notice.list', {});
  488. // } else if ($stateParams.formKey == "noticeDetail") {
  489. // $state.go('app.system.notice.list', {});
  490. // } else if ($stateParams.formKey == "desk_detail") {
  491. // $state.go('app.desk.chart', {});
  492. // } else if ($stateParams.formKey == "system_add_service") {
  493. // $state.go('app.system.navmanager', {});
  494. // } else if ($stateParams.formKey == "system_add_menu") {
  495. // // $state.go('app.system.user.power', {});
  496. // $state.go('app.system.navmanager', {});
  497. // } else if ($stateParams.formKey == "system_add_service") {
  498. // $state.go('app.system.navmanager', {});
  499. // }
  500. $state.go($scope.formData.cancelUrl, {});
  501. event.preventDefault();
  502. }
  503. }
  504. console.log(vm)
  505. $scope.submit = function (model) {
  506. if (model.rejectRemark && model.rejectRemark != "") {
  507. api_apply.wxIncidentReject(model.incident.id, { "rejectRemark": model.rejectRemark }).then(function (data) {
  508. if (data && data.state == 200) {
  509. SweetAlert.swal({
  510. title: "提交成功",
  511. text: '不受理提交成功',
  512. type: "success"
  513. }, function () {
  514. $state.go('app.desk.chart', {});
  515. });
  516. } else {
  517. SweetAlert.swal({
  518. title: "提交失败",
  519. text: '不受理提交失败',
  520. type: "error"
  521. });
  522. }
  523. });
  524. } else {
  525. SweetAlert.swal({
  526. title: "提交错误",
  527. text: "请填写不受理原因!",
  528. type: "error",
  529. confirmButtonColor: "#DD6B55"
  530. });
  531. }
  532. }
  533. $scope.zancunPushFn = function () {
  534. serviceWatch.addData($scope.formData.modelName, vm.model).then(function (response) {
  535. if (response) {
  536. var resData = Restangular.stripRestangular(response);
  537. if (resData && resData.status == 200) {
  538. SweetAlert.swal({
  539. title: "提交成功!",
  540. type: "success",
  541. confirmButtonColor: "#007AFF"
  542. }, function () {
  543. $state.go($scope.formData.cancelUrl);
  544. });
  545. } else {
  546. SweetAlert.swal({
  547. title: "系统错误",
  548. text: "系统错误,请稍后重试!",
  549. type: "error",
  550. confirmButtonColor: "#DD6B55"
  551. });
  552. $scope.zancunPushFn = false
  553. }
  554. } else {
  555. SweetAlert.swal({
  556. title: "系统错误",
  557. text: "系统错误,请稍后重试!",
  558. type: "error",
  559. confirmButtonColor: "#DD6B55"
  560. });
  561. $scope.zancunPushFn = false
  562. }
  563. $scope.ldloading[style.replace('-', '_')] = false;
  564. });
  565. }
  566. $scope.zancunDisplay = false;
  567. $scope.noticeZancun = function () {
  568. $scope.zancunDisplay = true;
  569. if ($scope.zancunDisplay == true) {
  570. if ($scope.formData.name == "system_edit") {
  571. if (vm.model.user.dept) {
  572. delete vm.model.user.dept.children;
  573. }
  574. }
  575. if ($scope.formData.name == "noticeEditor") {
  576. if (vm.model.notice.status) {
  577. } else {
  578. vm.model.notice["status"] = 3
  579. }
  580. if (!vm.model.notice.title || !vm.model.notice.content) {
  581. SweetAlert.swal({
  582. title: "暂存失败",
  583. text: "请填写必填项!",
  584. type: "error",
  585. confirmButtonColor: "#DD6B55"
  586. });
  587. $scope.zancunDisplay = false;
  588. } else {
  589. $scope.zancunPushFn()
  590. }
  591. }
  592. if ($scope.formData.name == "serviceGuideForm") {
  593. if (!vm.model.serviceGuide.title || !vm.model.serviceGuide.content || !vm.model.serviceGuide.serviceType) {
  594. SweetAlert.swal({
  595. title: "暂存失败",
  596. text: "请填写必填项!",
  597. type: "error",
  598. confirmButtonColor: "#DD6B55"
  599. });
  600. $scope.zancunDisplay = false;
  601. } else {
  602. vm.model.serviceGuide.createUser = loginUser;
  603. vm.model.serviceGuide.createTime = moment(new Date().getTime()).format('YYYY-MM-DD HH:mm:ss');
  604. vm.model.serviceGuide.status = 2;
  605. vm.model.serviceGuide.deleteflag = 0;
  606. $scope.zancunPushFn()
  607. }
  608. }
  609. event.preventDefault();
  610. }
  611. };
  612. $scope.fabuDisplay = false;
  613. // $scope.chehui=false;
  614. // if(vm.model.state_model&&vm.model.state_model.retractReason){
  615. // $scope.chehui=true;
  616. // }
  617. vm.submit = function (data, style) {
  618. $scope.fabuDisplay = true;
  619. $timeout(function () {
  620. $scope.fabuDisplay = false;
  621. }, 2000);
  622. if ($stateParams.formKey == "company_edit" ||$stateParams.formKey == "system_edit" || $stateParams.formKey == "system_edit_requester" || $stateParams.formKey == "system_add_menu" || $stateParams.formKey == "system_add_service" || $stateParams.formKey == "noticeEditor" || $stateParams.formKey == "noticeEdi" || $stateParams.formKey == "serviceGuideForm" || $stateParams.formKey == "serviceGuideEdi") {
  623. // console.log("roleid="+$scope.roleid);
  624. if (vm.form.$valid) {
  625. if ($scope.formData.name == "system_edit" && vm.model.user && vm.model.user.role.length == 0) {
  626. SweetAlert.swal({
  627. title: "提交失败",
  628. text: "必填项没有填写完整,请重新再填!",
  629. type: "error",
  630. confirmButtonColor: "#DD6B55"
  631. });
  632. } else if ($scope.formData.name == "system_edit_requester" && vm.model.requester && vm.model.requester.dept == undefined) {
  633. SweetAlert.swal({
  634. title: "提交失败",
  635. text: "必填项没有填写完整,请重新再填!",
  636. type: "error",
  637. confirmButtonColor: "#DD6B55"
  638. });
  639. } else if ($scope.formData.name == "company_edit" && !vm.model.company.serviceTypeIds.length) {
  640. SweetAlert.swal({
  641. title: "公司服务种类未填",
  642. text: "请填写此项!",
  643. type: "error",
  644. confirmButtonColor: "#DD6B55"
  645. });
  646. } else {
  647. vm.options.updateInitialValue();
  648. $scope.ldloading[style.replace('-', '_')] = true;
  649. // alert(JSON.stringify(vm.model), null, 2);
  650. var _ = window._;
  651. vm.model = (function filter(obj) { //过滤
  652. var dateTransKeys = [];
  653. var filtered = _.pick(obj, function (v, k, obj) {
  654. if (_.isDate(v)) {
  655. dateTransKeys.push(k);
  656. }
  657. return angular.isDefined(v) && v !== null && (angular.isArray(v) ? v.length > 0 : true) && (_.isPlainObject(v) ? (!_.isEmpty(v)) : true);
  658. });
  659. return _.cloneDeep(filtered, function (v, index, object) {
  660. if (angular.isArray(dateTransKeys) && dateTransKeys.length > 0) {
  661. angular.forEach(dateTransKeys, function (item) {
  662. v[item] = moment(v[item]).format('YYYY-MM-DD HH:mm:ss');
  663. });
  664. dateTransKey = [];
  665. return v;
  666. }
  667. return !(_.isEmpty(filtered)) && v !== filtered && _.isPlainObject(v) ? filter(v) : undefined;
  668. });
  669. })(vm.model);
  670. if ($scope.formData.modelName) {
  671. if (vm.model[$scope.formData.modelName]) {
  672. for (var key in vm.model[$scope.formData.modelName]) {
  673. if (vm.model[$scope.formData.modelName][key] &&
  674. (vm.model[$scope.formData.modelName][key] == null || vm.model[$scope.formData.modelName][key] == undefined || JSON.stringify(vm.model[$scope.formData.modelName][key]) == "{}")) {
  675. delete vm.model[$scope.formData.modelName][key];
  676. }
  677. }
  678. }
  679. }
  680. switch ($scope.formData.url) {
  681. case "create":
  682. //vm.model["initUser"]=$rootScope.user.id;
  683. //addData
  684. // if (vm.model.id) {
  685. // if ($stateParams.formKey == "system_add_menu") {
  686. // vm.model.parent = vm.model.menu.parent;
  687. // delete vm.model.menu;
  688. // }
  689. // serviceWatch.updData($scope.formData.modelName, vm.model).then(function(response) {
  690. // if (response && response.status == 200) {
  691. // SweetAlert.swal({
  692. // title: "修改成功!",
  693. // confirmButtonColor: "#007AFF"
  694. // }, function() {
  695. // // $state.go($scope.formData.cancelUrl);
  696. // });
  697. // } else {
  698. // SweetAlert.swal({
  699. // title: "系统错误",
  700. // text: "系统错误,请稍后重试!",
  701. // type: "error",
  702. // confirmButtonColor: "#DD6B55"
  703. // });
  704. // }
  705. // $scope.ldloading[style.replace('-', '_')] = false;
  706. // });
  707. // } else {
  708. if ($stateParams.formKey == "system_add_menu" && vm.model.menu) {
  709. vm.model.parent = vm.model.menu.parent;
  710. delete vm.model.menu;
  711. }
  712. if ($stateParams.formKey == "serviceGuideForm") {
  713. vm.model.serviceGuide.createUser = loginUser;
  714. vm.model.serviceGuide.deleteflag = 0;
  715. vm.model.serviceGuide.createTime = moment(new Date().getTime()).format('YYYY-MM-DD HH:mm:ss');
  716. vm.model.serviceGuide.status = 1
  717. }
  718. if ($stateParams.formKey == "system_add_service") {
  719. if (vm.model.menu) {
  720. vm.model.menu = vm.model.menu.menu;
  721. delete vm.model.menu.menu;
  722. }
  723. serviceWatch.addData("linkConfigure", vm.model).then(function (response) {
  724. if (response) {
  725. var resData = Restangular.stripRestangular(response);
  726. if (resData && resData.status == 200) {
  727. SweetAlert.swal({
  728. title: "提交成功!",
  729. type: "success",
  730. confirmButtonColor: "#007AFF"
  731. }, function () {
  732. $state.go($scope.formData.cancelUrl);
  733. });
  734. } else {
  735. SweetAlert.swal({
  736. title: "系统错误",
  737. text: "系统错误,请稍后重试!",
  738. type: "error",
  739. confirmButtonColor: "#DD6B55"
  740. });
  741. }
  742. } else {
  743. SweetAlert.swal({
  744. title: "系统错误",
  745. text: "系统错误,请稍后重试!",
  746. type: "error",
  747. confirmButtonColor: "#DD6B55"
  748. });
  749. }
  750. $scope.ldloading[style.replace('-', '_')] = false;
  751. });
  752. } else {
  753. serviceWatch.addData($scope.formData.modelName, vm.model).then(function (response) {
  754. if (response) {
  755. var resData = Restangular.stripRestangular(response);
  756. if (resData && resData.status == 200) {
  757. SweetAlert.swal({
  758. title: "提交成功!",
  759. type: "success",
  760. confirmButtonColor: "#007AFF"
  761. }, function () {
  762. $state.go($scope.formData.cancelUrl);
  763. });
  764. } else {
  765. SweetAlert.swal({
  766. title: "系统错误",
  767. text: "系统错误,请稍后重试!",
  768. type: "error",
  769. confirmButtonColor: "#DD6B55"
  770. });
  771. }
  772. } else {
  773. SweetAlert.swal({
  774. title: "系统错误",
  775. text: "系统错误,请稍后重试!",
  776. type: "error",
  777. confirmButtonColor: "#DD6B55"
  778. });
  779. }
  780. $scope.ldloading[style.replace('-', '_')] = false;
  781. });
  782. }
  783. // }
  784. break;
  785. case "save":
  786. //addData
  787. // if ($scope.formData.name == "system_edit" && !vm.model.user.role) {
  788. // vm.form.$valid = false;
  789. // SweetAlert.swal({
  790. // title: "校验错误",
  791. // text: "请填写必填项!",
  792. // type: "error",
  793. // confirmButtonColor: "#DD6B55"
  794. // });
  795. // angular.forEach(vm.form.$error.required, function(item) {
  796. // angular.forEach(vm.fields, function(f) {
  797. // if (f.name == item.$name) {
  798. // f.validation.show = true;
  799. // }
  800. // });
  801. // })
  802. // } else {
  803. console.log($scope);
  804. if ($stateParams.isNoticeEdit || $stateParams.isServiceGuideEdit) {
  805. serviceWatch.updData($scope.formData.modelName, vm.model).then(function (response) {
  806. if (response) {
  807. var resData = Restangular.stripRestangular(response);
  808. if (resData && resData.status == 200) {
  809. SweetAlert.swal({
  810. title: "提交成功!",
  811. type: "success",
  812. confirmButtonColor: "#007AFF"
  813. }, function () {
  814. $state.go($scope.formData.cancelUrl);
  815. });
  816. } else {
  817. SweetAlert.swal({
  818. title: "系统错误",
  819. text: "系统错误,请稍后重试!",
  820. type: "error",
  821. confirmButtonColor: "#DD6B55"
  822. });
  823. }
  824. } else {
  825. SweetAlert.swal({
  826. title: "系统错误",
  827. text: "系统错误,请稍后重试!",
  828. type: "error",
  829. confirmButtonColor: "#DD6B55"
  830. });
  831. }
  832. $scope.ldloading[style.replace('-', '_')] = false;
  833. });
  834. } else {
  835. if ($scope.formData.name == "system_edit") {
  836. if (vm.model.user.dept) {
  837. delete vm.model.user.dept.children;
  838. }
  839. }
  840. if ($scope.formData.name == "company_edit") {
  841. if(vm.model.company.serviceTypeIds && typeof vm.model.company.serviceTypeIds !== 'string'){
  842. vm.model.company.serviceTypeIds = vm.model.company.serviceTypeIds.map(function(v){
  843. return (v.id || v)-0;
  844. }).toString();
  845. }
  846. if(vm.model.company.categoryTypeIds && typeof vm.model.company.categoryTypeIds !== 'string'){
  847. vm.model.company.categoryTypeIds = vm.model.company.categoryTypeIds.map(function(v){
  848. return (v.id || v)-0;
  849. }).toString();
  850. }
  851. delete vm.model.incident;
  852. delete vm.model.loginUser;
  853. delete vm.model.repairType;
  854. delete vm.model.company.serviceTypeNames;
  855. // delete vm.model.company.xxx;
  856. if(vm.model.company.id){
  857. vm.model.company.deleteFlag = 0;
  858. }
  859. }
  860. console.log($scope);
  861. if ($scope.formData.name == "noticeEditor") {
  862. if (vm.model.notice.status) {
  863. } else {
  864. vm.model.notice["status"] = 1
  865. }
  866. }
  867. // if($scope.formData.name == "system_edit_requester"){
  868. // if(vm.model.requester){
  869. // if(vm.model.requester.dept==undefined){
  870. // SweetAlert.swal({
  871. // title: "提交失败",
  872. // text: "必填项没有填写完整,请重新再填!",
  873. // type: "error",
  874. // confirmButtonColor: "#DD6B55"
  875. // });
  876. // $state.go($scope.formData.cancelUrl);
  877. // return false;
  878. // }
  879. // }
  880. // }
  881. serviceWatch.addData($scope.formData.modelName, vm.model).then(function (response) {
  882. if (response) {
  883. var resData = Restangular.stripRestangular(response);
  884. if ((resData && resData.status == 200) || (resData.data&&resData.data.id&&!resData.status)) {
  885. if ($scope.formData.name == "system_edit") {
  886. if (!response.data.account) {
  887. SweetAlert.swal({
  888. title: "提交失败",
  889. text: "工号已存在,请重新填写!",
  890. type: "error",
  891. confirmButtonColor: "#DD6B55"
  892. }, function () {
  893. renderform();
  894. });
  895. } else if (!response.data.name) {
  896. SweetAlert.swal({
  897. title: "提交失败",
  898. text: "用户名已存在,请重新填写!",
  899. type: "error",
  900. confirmButtonColor: "#DD6B55"
  901. }, function () {
  902. renderform();
  903. });
  904. } else {
  905. SweetAlert.swal({
  906. title: "提交成功!",
  907. type: "success",
  908. confirmButtonColor: "#007AFF"
  909. }, function () {
  910. console.log(vm.model);
  911. $state.go($scope.formData.cancelUrl);
  912. // if (vm.fields[0].templateOptions.label == '新增/编辑用户') {
  913. // var modalInstance = $modal.open({
  914. // templateUrl: 'assets/views/system/qxts.html',
  915. // controller: function ($scope, $modalInstance, scope, state) {
  916. // $scope.wt_ok = function () {
  917. // state.go('app.system.qxgl');
  918. // $modalInstance.dismiss('cancel');
  919. // console.log(state);
  920. // }
  921. // $scope.wt_cancel = function () {
  922. // state.go(scope.formData.cancelUrl);
  923. // $modalInstance.dismiss('cancel');
  924. // console.log(state);
  925. // }
  926. // }, size: 'sm',
  927. // backdrop: 'static',
  928. // resolve: {
  929. // scope: function () {
  930. // return $scope
  931. // },
  932. // state: function () {
  933. // return $state
  934. // }
  935. // }
  936. // });
  937. // }
  938. // $state.go($scope.formData.cancelUrl);
  939. });
  940. }
  941. } else {
  942. SweetAlert.swal({
  943. title: "提交成功!",
  944. type: "success",
  945. confirmButtonColor: "#007AFF"
  946. }, function () {
  947. $state.go($scope.formData.cancelUrl);
  948. });
  949. }
  950. } else {
  951. SweetAlert.swal({
  952. title: resData.msg||"系统错误",
  953. text: resData.msg||"系统错误,请稍后重试!",
  954. type: "error",
  955. confirmButtonColor: "#DD6B55"
  956. });
  957. }
  958. } else {
  959. SweetAlert.swal({
  960. title: "系统错误",
  961. text: "系统错误,请稍后重试!",
  962. type: "error",
  963. confirmButtonColor: "#DD6B55"
  964. });
  965. }
  966. $scope.ldloading[style.replace('-', '_')] = false;
  967. });
  968. }
  969. // }
  970. break;
  971. case "close":
  972. $state.go($scope.formData.cancelUrl);
  973. break;
  974. default:
  975. $scope.ldloading[style.replace('-', '_')] = false;
  976. break;
  977. }
  978. }
  979. } else {
  980. SweetAlert.swal({
  981. title: "校验错误",
  982. text: "请填写必填项!",
  983. type: "error",
  984. confirmButtonColor: "#DD6B55"
  985. });
  986. angular.forEach(vm.form.$error.required, function (item) {
  987. angular.forEach(vm.fields, function (f) {
  988. if (f.name == item.$name) {
  989. f.validation.show = true;
  990. }
  991. });
  992. })
  993. }
  994. } else {
  995. var role = {};
  996. var data1 = {};
  997. // console.log("data.role="+JSON.stringify(data.role));
  998. role['rolecode'] = data.role.rolecode;
  999. role['id'] = data.role.id;
  1000. // console.log("role="+JSON.stringify(role));
  1001. data1['role'] = role;
  1002. // console.log("data1="+JSON.stringify(data1));
  1003. api_user_data.validate(data1, 'role').then(function (response) {
  1004. var resData = Restangular.stripRestangular(response);
  1005. // console.log("resData11="+JSON.stringify(resData));
  1006. if (resData.status == 200 && resData.data == "false" && vm.form.$valid) {
  1007. // if (vm.form.$valid ) {
  1008. vm.options.updateInitialValue();
  1009. $scope.ldloading[style.replace('-', '_')] = true;
  1010. // alert(JSON.stringify(vm.model), null, 2);
  1011. var _ = window._;
  1012. vm.model = (function filter(obj) {
  1013. var dateTransKeys = [];
  1014. var filtered = _.pick(obj, function (v, k, obj) {
  1015. if (_.isDate(v)) {
  1016. dateTransKeys.push(k);
  1017. }
  1018. return angular.isDefined(v) && v !== null && (angular.isArray(v) ? v.length > 0 : true) && (_.isPlainObject(v) ? (!_.isEmpty(v)) : true);
  1019. });
  1020. return _.cloneDeep(filtered, function (v, index, object) {
  1021. if (angular.isArray(dateTransKeys) && dateTransKeys.length > 0) {
  1022. angular.forEach(dateTransKeys, function (item) {
  1023. v[item] = moment(v[item]).format('YYYY-MM-DD HH:mm:ss');
  1024. });
  1025. dateTransKey = [];
  1026. return v;
  1027. }
  1028. return !(_.isEmpty(filtered)) && v !== filtered && _.isPlainObject(v) ? filter(v) : undefined;
  1029. });
  1030. })(vm.model);
  1031. // console.log("$scope.formData="+$scope.formData);
  1032. switch ($scope.formData.url) {
  1033. case "create":
  1034. //vm.model["initUser"]=$rootScope.user.id;
  1035. //addData
  1036. serviceWatch.addData($scope.formData.modelName, vm.model).then(function (response) {
  1037. if (response) {
  1038. var resData = Restangular.stripRestangular(response);
  1039. if (resData && resData.status == 200) {
  1040. SweetAlert.swal({
  1041. title: "提交成功!",
  1042. type: "success",
  1043. confirmButtonColor: "#007AFF"
  1044. }, function () {
  1045. $state.go($scope.formData.cancelUrl);
  1046. });
  1047. } else {
  1048. SweetAlert.swal({
  1049. title: "系统错误",
  1050. text: "系统错误,请稍后重试!",
  1051. type: "error",
  1052. confirmButtonColor: "#DD6B55"
  1053. });
  1054. }
  1055. } else {
  1056. SweetAlert.swal({
  1057. title: "系统错误",
  1058. text: "系统错误,请稍后重试!",
  1059. type: "error",
  1060. confirmButtonColor: "#DD6B55"
  1061. });
  1062. }
  1063. $scope.ldloading[style.replace('-', '_')] = false;
  1064. });
  1065. break;
  1066. case "save":
  1067. //addData
  1068. serviceWatch.addData($scope.formData.modelName, vm.model).then(function (response) {
  1069. if (response) {
  1070. var resData = Restangular.stripRestangular(response);
  1071. // console.log("resData="+JSON.stringify(resData.data));
  1072. // console.log("modelWatch.model="+JSON.stringify(modelWatch.model));
  1073. if (resData && resData.status == 200) {
  1074. SweetAlert.swal({
  1075. title: "提交成功!",
  1076. type: "success",
  1077. confirmButtonColor: "#007AFF"
  1078. }, function () {
  1079. $state.go($scope.formData.cancelUrl);
  1080. });
  1081. } else {
  1082. SweetAlert.swal({
  1083. title: "系统错误",
  1084. text: "系统错误,请稍后重试!",
  1085. type: "error",
  1086. confirmButtonColor: "#DD6B55"
  1087. });
  1088. }
  1089. } else {
  1090. SweetAlert.swal({
  1091. title: "系统错误",
  1092. text: "系统错误,请稍后重试!",
  1093. type: "error",
  1094. confirmButtonColor: "#DD6B55"
  1095. });
  1096. }
  1097. $scope.ldloading[style.replace('-', '_')] = false;
  1098. });
  1099. break;
  1100. case "close":
  1101. $state.go($scope.formData.cancelUrl);
  1102. break;
  1103. default:
  1104. $scope.ldloading[style.replace('-', '_')] = false;
  1105. break;
  1106. }
  1107. } else if (resData.status == 200 && resData.data == "true" && vm.form.$valid) {
  1108. SweetAlert.swal({
  1109. title: "角色代码以存在",
  1110. text: "请重新填写角色代码!",
  1111. type: "error",
  1112. confirmButtonColor: "#DD6B55"
  1113. });
  1114. } else {
  1115. SweetAlert.swal({
  1116. title: "校验错误",
  1117. text: "请填写必填项!",
  1118. type: "error",
  1119. confirmButtonColor: "#DD6B55"
  1120. });
  1121. angular.forEach(vm.form.$error.required, function (item) {
  1122. angular.forEach(vm.fields, function (f) {
  1123. if (f.name == item.$name) {
  1124. f.validation.show = true;
  1125. }
  1126. });
  1127. })
  1128. }
  1129. })
  1130. }
  1131. };
  1132. $scope.vm = vm;
  1133. function renderform() {
  1134. api_configure_form.renderForm($stateParams.formKey, '00000').then(function (responseData) {
  1135. if (responseData) {
  1136. //console.log("responseData>>>");console.log(responseData);
  1137. var vmForm = Restangular.stripRestangular(responseData);
  1138. if (vmForm) {
  1139. //console.log("vmForm>>>");console.log(vmForm);
  1140. var modelData = {};
  1141. //modelData=myData.data;
  1142. decodeVMForm(vmForm);
  1143. }
  1144. }
  1145. });
  1146. }
  1147. if (angular.isDefined($stateParams.formKey) && $stateParams.formKey != "") {
  1148. renderform();
  1149. // api_configure_form.renderForm($stateParams.formKey, '00000').then(function(responseData) {
  1150. // if (responseData) {
  1151. // //console.log("responseData>>>");console.log(responseData);
  1152. // var vmForm = Restangular.stripRestangular(responseData);
  1153. // if (vmForm) {
  1154. // //console.log("vmForm>>>");console.log(vmForm);
  1155. // var modelData = {};
  1156. // //modelData=myData.data;
  1157. // decodeVMForm(vmForm);
  1158. // }
  1159. // }
  1160. // });
  1161. } else {
  1162. //
  1163. if (angular.isDefined(fieldsWatch) && fieldsWatch.length > 0) {
  1164. var vmForm = {
  1165. fields: fieldsWatch,
  1166. model: modelWatch
  1167. }
  1168. angular.extend(vmForm, formWatch);
  1169. //$scope.formData = vmForm;
  1170. if (vmForm) {
  1171. decodeVMForm(vmForm);
  1172. }
  1173. } else { //for form
  1174. //TODO
  1175. //测试数据 开始
  1176. var testJson = {
  1177. fields: [{
  1178. key: 'formtitle',
  1179. type: 'ui-title',
  1180. noFormControl: true,
  1181. templateOptions: {
  1182. label: 'title is ',
  1183. placeholder: 'Formly is terrific!'
  1184. }
  1185. },
  1186. {
  1187. key: 'b',
  1188. type: 'ui-input',
  1189. className: 'col-xs-4',
  1190. templateOptions: {
  1191. type: 'input',
  1192. label: 'input a',
  1193. placeholder: 'search a...',
  1194. rBtn: {
  1195. icon: 'fa fa-phone',
  1196. onClick: function (val, opt, el, ev, model) { alert(val); }
  1197. },
  1198. lAddon: '<i class="fa fa-phone"/>'
  1199. }
  1200. },
  1201. {
  1202. key: 'id',
  1203. type: 'ui-select',
  1204. //initialValue:"false",
  1205. templateOptions: {
  1206. label: "测试默认值",
  1207. optionsUrl: "abc",
  1208. //options:[{"id":"false","name":"不取消"},{"id":"true","name":"取消"}],
  1209. // refresh:function(){
  1210. // return [{"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}];
  1211. // },
  1212. //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}],
  1213. valueProp: "id",
  1214. labelProp: "name",
  1215. pkey: "change.source"
  1216. }
  1217. },
  1218. {
  1219. key: 'systemType',
  1220. type: 'ui-multiselect',
  1221. className: 'col-xs-4',
  1222. templateOptions: {
  1223. label: "所属系统类型",
  1224. pkey: "change",
  1225. valueProp: "id",
  1226. labelProp: "source",
  1227. optionsUrl: "data/fetchDataList/changesystemtype",
  1228. optionsDataKey: "list",
  1229. onChange: function (value, options, that, event, model) {
  1230. var field = null;
  1231. angular.forEach(that.$parent.fields, function (item) {
  1232. if (item.key == 'influenceDepartment') {
  1233. field = item;
  1234. }
  1235. if (item.key == 'notificationDepartment') {
  1236. notifyField = item;
  1237. }
  1238. })
  1239. if (field != null) {
  1240. field.templateOptions.optionsPostData = {
  1241. 'systemIds': []
  1242. }
  1243. angular.forEach(value, function (vue) {
  1244. field.templateOptions.optionsPostData['systemIds'].push({ 'id': vue });
  1245. })
  1246. field.value([]);
  1247. if (value.length > 0) {
  1248. field.templateOptions.refreshData(null, field);
  1249. }
  1250. }
  1251. if (notifyField != null) {
  1252. notifyField.templateOptions.optionsPostData = {
  1253. 'systemIds': []
  1254. }
  1255. angular.forEach(value, function (vue) {
  1256. notifyField.templateOptions.optionsPostData['systemIds'].push({ 'id': vue });
  1257. })
  1258. notifyField.value([]);
  1259. if (value.length > 0) {
  1260. notifyField.templateOptions.refreshData(null, notifyField);
  1261. }
  1262. }
  1263. }
  1264. }
  1265. },
  1266. {
  1267. key: 'influenceDepartment',
  1268. type: 'ui-multiselectplus',
  1269. className: 'col-xs-4',
  1270. templateOptions: {
  1271. label: '所影响的应用系统、科室',
  1272. pkey: "change",
  1273. valueProp: '', //对应value
  1274. labelProp: 'dept', //对应key
  1275. optionsUrl: 'dept/findBySystemType', //对应后台地址,api/之前的部分省略
  1276. optionsDataKey: 'list', //对应返回数组数据的键值,
  1277. optionsPostData: function (options, model, scope) {
  1278. return { "systemIds": [] };
  1279. },
  1280. refreshData: function (search, options, model, that) {
  1281. options.templateOptions.options = [{ "id": 13, "dept": "村镇银行管理部" }, { "id": 14, "dept": "电子银行部" }];
  1282. options.value(options.templateOptions.options);
  1283. },
  1284. optionsChecked: true,
  1285. required: true,
  1286. ApiService: UserRestangular
  1287. }
  1288. },
  1289. {
  1290. key: 'notificationDepartment',
  1291. type: 'ui-multiselectplus',
  1292. className: 'col-xs-4',
  1293. templateOptions: {
  1294. label: '需通知科室',
  1295. pkey: "change",
  1296. valueProp: 'id', //对应value
  1297. labelProp: 'dept', //对应key
  1298. optionsUrl: 'dept/findBySystemType', //对应后台地址,api/之前的部分省略
  1299. optionsDataKey: 'list', //对应返回数组数据的键值,
  1300. optionsPostData: function (options, model, scope) {
  1301. return { "systemIds": [] };
  1302. },
  1303. optionsChecked: true,
  1304. required: true,
  1305. ApiService: UserRestangular
  1306. }
  1307. },
  1308. {
  1309. type: 'ui-label',
  1310. key: 'arrayData',
  1311. className: 'col-xs-4',
  1312. templateOptions: {
  1313. label: '数组label数据',
  1314. labelProp: 'dept'
  1315. }
  1316. },
  1317. {
  1318. key: 'selectUser',
  1319. type: 'ui-requesterselect',
  1320. className: 'col-xs-12',
  1321. templateOptions: {
  1322. label: '请求人信息',
  1323. modalTitle: '请求人列表',
  1324. fetchItems: function (filterData, APIService) {
  1325. return APIService.fetchDataList('requester', filterData);
  1326. },
  1327. Restangular: Restangular,
  1328. ApiService: api_user_data
  1329. // onClick:function(val, options, field, event , model){
  1330. // console.log(options);
  1331. // }
  1332. }
  1333. },
  1334. {
  1335. key: 'cabUser',
  1336. type: 'ui-multiuserselect',
  1337. className: 'col-xs-12',
  1338. templateOptions: {
  1339. label: 'CAB评审成员',
  1340. modalTitle: 'CAB成员列表',
  1341. fetchItems: function (filterData, APIService) {
  1342. return APIService.fetchDataList('user', filterData);
  1343. },
  1344. Restangular: Restangular,
  1345. ApiService: api_user_data,
  1346. onClick: function (val, options, field, event, model) {
  1347. console.log(model);
  1348. }
  1349. }
  1350. },
  1351. // {
  1352. // key:'incident',
  1353. // type:'ui-modelselect',
  1354. // className:'col-xs-3',
  1355. // templateOptions:{
  1356. // label:'关联事件工单',
  1357. // modalTitle:'事件列表',
  1358. // fetchItems:function(filterData,APIService){
  1359. // return APIService.fetchDataList('incident',filterData);
  1360. // },
  1361. // Restangular:"Restangular",
  1362. // ApiService:"api_bpm_data",
  1363. // columnDefs:[
  1364. // { name:'id', width:80, enableFiltering:false},
  1365. // { name:'title', displayName:'事件主题', width:140},
  1366. // { name:'type.name', displayName:'事件类型', width:140},
  1367. // { name:'emergency.name', displayName:'紧急度', width:80},
  1368. // { name:'state.name', displayName:'状态', width:100},
  1369. // { name:'emergency.name', displayName:'紧急度', width:80},
  1370. // { name:'influence.name', displayName:'影响度', width:80},
  1371. // { name:'priority.name', displayName:'优先级', width:80},
  1372. // { name:'handlerUser.name', displayName:'当前处理人', width:100},
  1373. // { name:'acceptDate', displayName:'创建时间', width:100}
  1374. // ],
  1375. // displayName:'title',
  1376. // onClick:function(val, options, field, event , model){
  1377. // //model.start_code++;
  1378. // console.log(options);
  1379. // }
  1380. // }
  1381. // },
  1382. // {
  1383. // key: 'worknumber',
  1384. // type: 'ui-workernumber',
  1385. // className:'col-xs-3',
  1386. // templateOptions: {
  1387. // label: 'work number',
  1388. // Restangular:Restangular,
  1389. // ApiService:api_bpm_domain,
  1390. // getWorkernumber: function(APIService){
  1391. // return APIService.workernumber('bg');
  1392. // }
  1393. // }
  1394. // },
  1395. // {
  1396. // key: 'chkme',
  1397. // type: 'ui-checkbox',
  1398. // className:'col-xs-3',
  1399. // templateOptions: {
  1400. // label: 'Check me out'
  1401. // }
  1402. // },
  1403. // {
  1404. // key: 'droplink',
  1405. // type: 'ui-link',
  1406. // className: 'col-xs-3',
  1407. // templateOptions:{
  1408. // label:'添加附件',
  1409. // onClick:function(val, options, field, event ,model){
  1410. // if(angular.isUndefined(field.form.dropState)){
  1411. // field.form.dropState=false;
  1412. // }
  1413. // field.form.dropState=!field.form.dropState;
  1414. // console.log(field);
  1415. // }
  1416. // }
  1417. // },
  1418. // {
  1419. // key: 'dropfile',
  1420. // type: 'ui-dropfile',
  1421. // className: 'col-xs-12',
  1422. // templateOptions:{
  1423. // label:'附件',
  1424. // uploadUrl:'http://127.0.0.1:9008/saveAttachments'
  1425. // }
  1426. // },
  1427. // {
  1428. // type: 'ui-label',
  1429. // key: 'changesign',
  1430. // className: 'col-xs-4',
  1431. // templateOptions: {
  1432. // label:'变更请求单号',
  1433. // pkey:'change'
  1434. // }
  1435. // },
  1436. // {
  1437. // type: 'ui-label',
  1438. // key: 'title',
  1439. // className: 'col-xs-4',
  1440. // templateOptions: {
  1441. // label:'变更标题',
  1442. // pkey:'change'
  1443. // }
  1444. // },
  1445. // //关联发布单号
  1446. // //新建发布
  1447. // {
  1448. // key: 'droplist',
  1449. // type: 'ui-dropfiletable',
  1450. // className: 'col-xs-12',
  1451. // templateOptions:{
  1452. // label:'附件下载列表',
  1453. // Restangular:Restangular,
  1454. // processInstanceId:'250033',
  1455. // ApiService:api_bpm_domain
  1456. // }
  1457. // },
  1458. // {
  1459. // type: 'ui-repeatSection',
  1460. // key: 'investments',
  1461. // className: 'col-xs-12',
  1462. // templateOptions: {
  1463. // btnText: '新增变更施工单',
  1464. // fields: [
  1465. // {
  1466. // className: 'col-xs-3',
  1467. // type: 'ui-input',
  1468. // key: 'aboutci',
  1469. // templateOptions: {
  1470. // label: '关联的配置项',
  1471. // required: true
  1472. // }
  1473. // },
  1474. // {
  1475. // className: 'col-xs-3',
  1476. // type: 'ui-datepicker',
  1477. // key: 'planbegintime',
  1478. // templateOptions: {
  1479. // label: '计划开始时间',
  1480. // required: true
  1481. // }
  1482. // },
  1483. // {
  1484. // className: 'col-xs-3',
  1485. // type: 'ui-datepicker',
  1486. // key: 'planendtime',
  1487. // templateOptions: {
  1488. // label: '计划完成时间',
  1489. // required: true
  1490. // }
  1491. // },
  1492. // {
  1493. // className: 'col-xs-12',
  1494. // type: 'ui-userselect',
  1495. // key: 'handleruser',
  1496. // templateOptions: {
  1497. // label: '实施人员信息',
  1498. // modalTitle:'实施人列表',
  1499. // required: true,
  1500. // fetchItems:function(filterData, APIService){
  1501. // return APIService.fetchDataList('user',filterData);
  1502. // },
  1503. // Restangular:Restangular,
  1504. // ApiService:api_user_data,
  1505. // onClick:function(val, options, field, event , model){
  1506. // //model.start_code++;
  1507. // console.log(options);
  1508. // }
  1509. // }
  1510. // },
  1511. // {
  1512. // className: 'col-xs-8',
  1513. // type: 'ui-textarea',
  1514. // key: 'handlerContent',
  1515. // templateOptions: {
  1516. // label: '实施内容',
  1517. // required: true,
  1518. // row:10
  1519. // }
  1520. // },{
  1521. // noFormControl: true,
  1522. // template:'<hr>'
  1523. // }]
  1524. // }
  1525. // },
  1526. // {
  1527. // key: 'droplist',
  1528. // type: 'ui-dropfiletable',
  1529. // className: 'col-xs-12',
  1530. // templateOptions:{
  1531. // label:'附件下载列表',
  1532. // Restangular:Restangular,
  1533. // processInstanceId:'250033',
  1534. // ApiService:api_bpm_domain
  1535. // }
  1536. // },
  1537. // {
  1538. // key: 'start_code',
  1539. // className:'col-xs-6',
  1540. // type: 'ui-hidden'
  1541. // },
  1542. // {
  1543. // key:'remark',
  1544. // type:'ui-textarea',
  1545. // className:'col-xs-12',
  1546. // templateOptions:{
  1547. // label:'remark is ',
  1548. // rows:3
  1549. // }
  1550. // },
  1551. // {
  1552. // key:'setStartCode',
  1553. // type:'ui-button',
  1554. // className:'col-xs-4',
  1555. // templateOptions:{
  1556. // label:'升级为变更',
  1557. // onClick:function(val, options, field, event ,model){
  1558. // console.log(options);
  1559. // event.preventDefault();
  1560. // //model.start_code++;
  1561. // //console.log(options);
  1562. // }
  1563. // }
  1564. // }
  1565. ],
  1566. model: {
  1567. username: "robin lau",
  1568. password: "123456",
  1569. change: { source: { id: 5 } },
  1570. chkme: false,
  1571. start_code: 0,
  1572. arrayData: [{ "id": 13, "dept": "村镇银行管理部" }, { "id": 14, "dept": "电子银行部" }],
  1573. formtitle: "Hey!I am title value!",
  1574. name: {
  1575. first: "robin",
  1576. last: "lau"
  1577. },
  1578. multiselectItem: []
  1579. //date:"2015-09-15 00:00:00"
  1580. }
  1581. };
  1582. setTimeout(function () {
  1583. decodeVMForm(testJson);
  1584. $scope.$apply();
  1585. }, 500);
  1586. //测试数据结束
  1587. }
  1588. }
  1589. console.log("end decode");
  1590. }
  1591. ]);