taskFormCtr.js 73 KB

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