taskFormCtr.js 74 KB

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