FindWorker.js 58 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349
  1. var _worker = self;
  2. var _action = {
  3. _checkRequest: function(s,f){
  4. if (this.request.readyState === XMLHttpRequest.DONE) {
  5. if (this.request.status === 200) {
  6. this._doneRequest(s);
  7. } else {
  8. this._errorRequest(f);
  9. }
  10. }
  11. },
  12. _createRequest: function(s, f){
  13. var request = new XMLHttpRequest();
  14. request.addEventListener("readystatechange",function(){
  15. if (this.readyState === XMLHttpRequest.DONE) {
  16. if (this.status === 200) {
  17. var json = JSON.parse(this.responseText);
  18. var xToken = this.getResponseHeader("x-token");
  19. if (xToken){
  20. json.xToken = xToken;
  21. }
  22. if (s) s(json);
  23. } else {
  24. if (f) f(this, this.responseText);
  25. }
  26. }
  27. });
  28. return request
  29. },
  30. sendRequest: function(data){
  31. return new Promise(function(s, f){
  32. var request = this._createRequest(s, f);
  33. var method = data.method;
  34. var noCache = !!data.noCache;
  35. var async = !!data.loadAsync;
  36. var withCredentials = !!data.credentials;
  37. var url = data.address;
  38. var body = data.body;
  39. var debug = data.debug;
  40. var token = data.token;
  41. if (noCache) url = url+(((url.indexOf("?")!==-1) ? "&" : "?")+(new Date()).getTime());
  42. request.open(method, url, async);
  43. request.withCredentials = withCredentials;
  44. request.setRequestHeader("Content-Type", "application/json; charset=utf-8");
  45. request.setRequestHeader("Accept", "text/html,application/json,*/*");
  46. if (debug) request.setRequestHeader("x-debugger", "true");
  47. if (token){
  48. request.setRequestHeader("x-token", token);
  49. request.setRequestHeader("authorization", token);
  50. }
  51. request.send(body);
  52. }.bind(this));
  53. },
  54. _doneRequest: function(s){
  55. var json = JSON.parse(this.request.responseText);
  56. var xToken = this.request.getResponseHeader("x-token");
  57. if (xToken){
  58. json.xToken = xToken;
  59. }
  60. if (s) s(json);
  61. // _worker.postMessage({"type": "done", "data": json});
  62. // _worker.close();
  63. },
  64. _errorRequest: function(f){
  65. if (s) s(this.request, this.request.responseText);
  66. // _worker.postMessage({"type":"error", "data": {"status": this.request.status, "statusText": this.request.statusText, "responseText":this.request.responseText}});
  67. // _worker.close();
  68. }
  69. };
  70. _worker.action = _action;
  71. _worker._receiveMessageReply = function(){
  72. _worker.postMessage({
  73. "type": "receive"
  74. });
  75. };
  76. _worker._readyMessageReply = function(){
  77. _worker.postMessage({
  78. "type": "ready",
  79. "count": this.filterOptionList.length
  80. });
  81. };
  82. _worker._getRequestOption = function(data, par){
  83. if (par){
  84. Object.keys(par).forEach(function(k){
  85. data.url = data.url.replace("{"+k+"}", par[k]);
  86. });
  87. }
  88. return {
  89. "method": data.method||"get",
  90. "noCache": false,
  91. "loadAsync": true,
  92. "credentials": true,
  93. "address": data.url,
  94. "body": data.body || "",
  95. "debug": data.debug || _worker.findData.debug,
  96. "token": data.token || _worker.findData.token
  97. };
  98. };
  99. _worker._createFilterOption = function(moduleType, appId, designerType, desingerId){
  100. var filterOption = JSON.parse(_worker.filterOptionTemplete);
  101. filterOption.moduleList.push({
  102. "moduleType": moduleType,
  103. "moduleAppList": [{"appId": appId, "designerList": [{"designerType": designerType, "designerIdList": [desingerId]}]}]
  104. });
  105. this.filterOptionList.push(filterOption);
  106. return filterOption;
  107. };
  108. _worker._getDesingerModule = function(id, restful, par, moduleType, designerType){
  109. var p = _worker.action.sendRequest(_worker._getRequestOption({"url": restful, "debug": _worker.findData.debug, "token": _worker.findData.token }, par));
  110. return p.then(function(json){
  111. list = json.data;
  112. list.forEach(function(designer){
  113. _worker._createFilterOption(moduleType, id, designerType, designer.id)
  114. });
  115. }, function(){});
  116. };
  117. _worker._getDesinger_processPlatform = function(id){
  118. var promiseArr = [];
  119. if (_worker.findData.filterOption.designerTypes.indexOf("script")!=-1){ //所有脚本
  120. promiseArr.push(_worker._getDesingerModule(id, _worker.findData.actions.listProcessScript, {"applicationId": id}, "processPlatform", "script"));
  121. }
  122. if (_worker.findData.filterOption.designerTypes.indexOf("form")!=-1){ //所有表单
  123. promiseArr.push(_worker._getDesingerModule(id, _worker.findData.actions.listProcessForm, {"applicationId": id}, "processPlatform", "form"));
  124. }
  125. if (_worker.findData.filterOption.designerTypes.indexOf("process")!=-1){ //所有流程
  126. promiseArr.push(_worker._getDesingerModule(id, _worker.findData.actions.listProcessProcess, {"applicationId": id}, "processPlatform", "process"));
  127. }
  128. return promiseArr;
  129. };
  130. _worker._getDesinger_cms = function(id){
  131. var promiseArr = [];
  132. if (_worker.findData.filterOption.designerTypes.indexOf("script")!=-1){ //所有脚本
  133. promiseArr.push(_worker._getDesingerModule(id, _worker.findData.actions.listCmsScript, {"flag": id}, "cms", "script"));
  134. }
  135. if (_worker.findData.filterOption.designerTypes.indexOf("form")!=-1){ //所有表单
  136. promiseArr.push(_worker._getDesingerModule(id, _worker.findData.actions.listCmsForm, {"appId": id}, "cms", "form"));
  137. }
  138. return promiseArr;
  139. };
  140. _worker._getDesinger_portal = function(id){
  141. var promiseArr = [];
  142. if (_worker.findData.filterOption.designerTypes.indexOf("script")!=-1){ //所有脚本
  143. promiseArr.push(_worker._getDesingerModule(id, _worker.findData.actions.listPortalScript, {"portalId": id}, "portal", "script"));
  144. }
  145. if (_worker.findData.filterOption.designerTypes.indexOf("page")!=-1){ //所有表单
  146. promiseArr.push(_worker._getDesingerModule(id, _worker.findData.actions.listPortalPage, {"portalId": id}, "portal", "page"));
  147. }
  148. if (_worker.findData.filterOption.designerTypes.indexOf("widget")!=-1){ //所有流程
  149. promiseArr.push(_worker._getDesingerModule(id, _worker.findData.actions.listPortalWidget, {"portalId": id}, "portal", "widget"));
  150. }
  151. return promiseArr;
  152. };
  153. _worker._getDesinger_query = function(id){
  154. var promiseArr = [];
  155. if (_worker.findData.filterOption.designerTypes.indexOf("view")!=-1){ //所有脚本
  156. promiseArr.push(_worker._getDesingerModule(id, _worker.findData.actions.listQueryView, {"flag": id}, "query", "view"));
  157. }
  158. if (_worker.findData.filterOption.designerTypes.indexOf("stat")!=-1){ //所有表单
  159. promiseArr.push(_worker._getDesingerModule(id, _worker.findData.actions.listQueryStat, {"flag": id}, "query", "stat"));
  160. }
  161. if (_worker.findData.filterOption.designerTypes.indexOf("statement")!=-1){ //所有流程
  162. promiseArr.push(_worker._getDesingerModule(id, _worker.findData.actions.listQueryStatement, {"flag": id}, "query", "statement"));
  163. }
  164. return promiseArr;
  165. };
  166. _worker._getDesinger_service = function(id){
  167. var promiseArr = [];
  168. if (_worker.findData.filterOption.designerTypes.indexOf("script")!=-1){ //所有脚本
  169. if (id=="invoke"){
  170. promiseArr.push(_worker._getDesingerModule(id, _worker.findData.actions.listInvoke, null, "service", "script"));
  171. }else{
  172. promiseArr.push(_worker._getDesingerModule(id, _worker.findData.actions.listAgent, null, "service", "script"));
  173. }
  174. }
  175. return promiseArr;
  176. };
  177. _worker._listApplication = function(type){
  178. switch (type){
  179. case "processPlatform":
  180. return this.action.sendRequest(_worker._getRequestOption({"url": this.findData.actions.listProcess, "debug": this.findData.debug, "token": this.findData.token }));
  181. case "cms":
  182. return this.action.sendRequest(_worker._getRequestOption({"url": this.findData.actions.listCms, "debug": this.findData.debug, "token": this.findData.token }));
  183. case "portal":
  184. return this.action.sendRequest(_worker._getRequestOption({"url": this.findData.actions.listPortal, "debug": this.findData.debug, "token": this.findData.token }));
  185. case "query":
  186. return this.action.sendRequest(_worker._getRequestOption({"url": this.findData.actions.listQuery, "debug": this.findData.debug, "token": this.findData.token }));
  187. }
  188. };
  189. _worker._parseFindModule = function(moduleList){
  190. var promiseArr = [];
  191. moduleList.forEach(function(module){
  192. if (module.moduleType==="service"){
  193. if (!module.flagList || !module.flagList.length){
  194. var filterOption = JSON.parse(_worker.filterOptionTemplete);
  195. filterOption.moduleList.push({
  196. "moduleType": module.moduleType,
  197. "moduleAppList": [{"appId": "invoke"}]
  198. });
  199. this.filterOptionList.push(filterOption);
  200. var filterOption = JSON.parse(_worker.filterOptionTemplete);
  201. filterOption.moduleList.push({
  202. "moduleType": module.moduleType,
  203. "moduleAppList": [{"appId": "agent"}]
  204. });
  205. this.filterOptionList.push(filterOption);
  206. promiseArr.push(Promise.resolve(""));
  207. // promiseArr = promiseArr.concat(_worker["_getDesinger_"+module.moduleType]("invoke"));
  208. // promiseArr = promiseArr.concat(_worker["_getDesinger_"+module.moduleType]("agent"));
  209. }else{
  210. module.flagList.forEach(function(flag){
  211. if (!flag.designerList || !flag.designerList.length){
  212. promiseArr = promiseArr.concat(_worker["_getDesinger_"+module.moduleType](flag.id));
  213. }else{
  214. flag.designerList.forEach(function(designer){
  215. var filterOption = _worker._createFilterOption(module.moduleType, flag.id, designer.designerType, designer.id)
  216. promiseArr = promiseArr.concat(Promise.resolve(filterOption));
  217. });
  218. }
  219. });
  220. }
  221. }else{
  222. if (!module.flagList || !module.flagList.length){
  223. var p = _worker._listApplication(module.moduleType);
  224. promiseArr.push(p.then(function(json){
  225. json.data.forEach(function(app){
  226. var filterOption = JSON.parse(_worker.filterOptionTemplete);
  227. filterOption.moduleList.push({
  228. "moduleType": module.moduleType,
  229. "moduleAppList": [{"appId": app.id}]
  230. });
  231. this.filterOptionList.push(filterOption);
  232. });
  233. return Promise.resolve("");
  234. //临时处理
  235. // var pArr = [];
  236. // json.data.forEach(function(app){
  237. // pArr = pArr.concat(_worker["_getDesinger_"+module.moduleType](app.id));
  238. // });
  239. // return Promise.all(pArr);
  240. }, function(){}));
  241. }else{
  242. module.flagList.forEach(function(flag){
  243. if (!flag.designerList || !flag.designerList.length){
  244. promiseArr = promiseArr.concat(_worker["_getDesinger_"+module.moduleType](flag.id));
  245. }else{
  246. flag.designerList.forEach(function(designer){
  247. var filterOption = _worker._createFilterOption(module.moduleType, flag.id, designer.designerType, designer.id)
  248. promiseArr = promiseArr.concat(Promise.resolve(filterOption));
  249. });
  250. }
  251. });
  252. }
  253. }
  254. }.bind(this));
  255. return promiseArr;
  256. }
  257. _worker._findMessageReply = function(data, option){
  258. _worker.setTimeout(function(){
  259. _worker.postMessage({
  260. "type": "find",
  261. "data": data,
  262. "option": option
  263. });
  264. }, 200);
  265. };
  266. _worker._findOptionReply = function(){
  267. _worker.postMessage({
  268. "type": "done"
  269. });
  270. };
  271. _worker._createFindMessageReplyData = function(module, designer, aliase, pattern){
  272. return {
  273. "module": module,
  274. "appId": designer.appId,
  275. "appName": designer.appName,
  276. "designerId": designer.designerId,
  277. "designerName": designer.designerName,
  278. "designerType": designer.designerType,
  279. "designerAliase": aliase,
  280. "pattern": pattern
  281. };
  282. };
  283. _worker._setFilterOptionRegex = function(){
  284. var keyword = _worker.findData.filterOption.keyword;
  285. if (_worker.findData.filterOption.matchRegExp){
  286. var flag = (_worker.findData.filterOption.caseSensitive) ? "gm" : "gmi";
  287. this.keywordRegexp = new RegExp(keyword, flag);
  288. }else{
  289. var flag = (_worker.findData.filterOption.caseSensitive) ? "gm" : "gmi";
  290. keyword = (_worker.findData.filterOption.matchWholeWord) ? "\\b"+keyword+"\\b" : keyword;
  291. this.keywordRegexp = new RegExp(keyword, flag);
  292. }
  293. };
  294. _worker._findProcessPlatformParse_script = function(designer, option, module){
  295. if (designer.patternList && designer.patternList.length){
  296. // var action = this.findData.actions.getProcessScript;
  297. //
  298. // var p = _worker.action.sendRequest(_worker._getRequestOption({"url": action}, {"id": designer.designerId}));
  299. // p.then(function(json){
  300. designer.patternList.forEach(function(pattern){
  301. if (pattern.property=="text"){
  302. //var scriptLines = json.data.text.split(/\n/);
  303. pattern.lines.forEach(function(line){
  304. var scriptText = line.lineValue;
  305. _worker._findMessageReply(_worker._createFindMessageReplyData(module, designer, "", {
  306. "property": pattern.property,
  307. "value": scriptText,
  308. "line": line.line
  309. }), option);
  310. // var scriptText = scriptLines[line-1];
  311. // while ((arr = this.keywordRegexp.exec(scriptText)) !== null) {
  312. // var col = arr.index;
  313. // var key = arr[0];
  314. // var value = arr.input;
  315. // _worker._findMessageReply(_worker._createFindMessageReplyData("processPlatform", designer, json.data.aliase, {
  316. // "property": pattern.property,
  317. // "value": value,
  318. // "line": line,
  319. // "column": col,
  320. // "key": key
  321. // }), option);
  322. // }
  323. });
  324. }else{
  325. // _worker._findMessageReply(_worker._createFindMessageReplyData(module, designer, "", {
  326. // "property": pattern.property,
  327. // "value": pattern.propertyValue
  328. // }), option);
  329. }
  330. });
  331. //}, function(){});
  332. }
  333. };
  334. _worker.findScriptLineValue = function(result, code, preLine, preIndex, len){
  335. var lineRegexp = /\r\n|\n|\r/g;
  336. var preText = code.substring(preIndex, result.index);
  337. var m = preText.match(lineRegexp);
  338. preLine += (m) ? m.length : 0;
  339. var value = result[0];
  340. var n = result.index-1;
  341. var char = code.charAt(n);
  342. while (!lineRegexp.test(char) && n>=0){
  343. value = char+value;
  344. n--;
  345. char = code.charAt(n);
  346. }
  347. n = this.keywordRegexp.lastIndex;
  348. char = code.charAt(n);
  349. while (!lineRegexp.test(char) && n<len){
  350. value = value+char;
  351. n++;
  352. char = code.charAt(n);
  353. }
  354. preIndex = this.keywordRegexp.lastIndex = n;
  355. return {"value": value, "preLine": preLine, "preIndex": preIndex};
  356. };
  357. _worker.findInDesigner_script = function(formData, key, module, designer, propertyDefinition, option, mode){
  358. var code = formData[key].code || formData[key];
  359. if (code){
  360. this.keywordRegexp.lastIndex = 0;
  361. var len = code.length;
  362. var preLine = 0;
  363. var preIndex = 0;
  364. var result;
  365. while ((result = this.keywordRegexp.exec(code)) !== null){
  366. var obj = _worker.findScriptLineValue(result, code, preLine, preIndex, len);
  367. preLine = obj.preLine;
  368. preIndex = obj.preIndex;
  369. _worker._findMessageReply(_worker._createFindMessageReplyData(module, designer, "", {
  370. "type": formData.type,
  371. "propertyType": propertyDefinition.type || "text",
  372. "propertyName": propertyDefinition.name,
  373. "name": formData.name || formData.id,
  374. "key": key,
  375. "value": obj.value,
  376. "line": preLine+1,
  377. "mode": mode
  378. }), option);
  379. }
  380. }
  381. };
  382. _worker.findInDesigner_events = function(formData, key, module, designer, propertyDefinition, option, mode){
  383. var eventObj = formData[key];
  384. Object.keys(eventObj).forEach(function(evkey){
  385. var code = eventObj[evkey].code;
  386. this.keywordRegexp.lastIndex = 0;
  387. var len = code.length;
  388. var preLine = 0;
  389. var preIndex = 0;
  390. var result;
  391. while ((result = this.keywordRegexp.exec(code)) !== null){
  392. var obj = _worker.findScriptLineValue(result, code, preLine, preIndex, len);
  393. preLine = obj.preLine;
  394. preIndex = obj.preIndex;
  395. _worker._findMessageReply(_worker._createFindMessageReplyData(module, designer, "", {
  396. "type": formData.type,
  397. "propertyType": propertyDefinition.type || "text",
  398. "propertyName": propertyDefinition.name,
  399. "name": formData.name || formData.id,
  400. "key": key,
  401. "evkey": evkey,
  402. "value": obj.value,
  403. "line": preLine+1,
  404. "mode": mode
  405. }), option);
  406. }
  407. });
  408. };
  409. _worker.findInDesigner_map = function(formData, key, module, designer, propertyDefinition, option, mode){
  410. var map = formData[key];
  411. Object.keys(map).forEach(function(evkey) {
  412. this.keywordRegexp.lastIndex = 0;
  413. var text = map[evkey];
  414. if (text){
  415. if ((typeof text)=="string") {
  416. if (this.keywordRegexp.test(text)) {
  417. _worker._findMessageReply(_worker._createFindMessageReplyData(module, designer, "", {
  418. "type": formData.type,
  419. "propertyType": propertyDefinition.type || "text",
  420. "propertyName": propertyDefinition.name,
  421. "name": formData.name || formData.id,
  422. "key": key,
  423. "value": evkey + ": " + text,
  424. "mode": mode
  425. }), option);
  426. }
  427. }else{
  428. Object.keys(text).forEach(function (stylekey){
  429. this.keywordRegexp.lastIndex = 0;
  430. if (this.keywordRegexp.test(text[stylekey])) {
  431. _worker._findMessageReply(_worker._createFindMessageReplyData(module, designer, "", {
  432. "type": formData.type,
  433. "propertyType": propertyDefinition.type || "text",
  434. "propertyName": propertyDefinition.name+"-"+evkey,
  435. "name": formData.name || formData.id,
  436. "key": key,
  437. "value": stylekey + ": " + text,
  438. "mode": mode
  439. }), option);
  440. }
  441. });
  442. }
  443. }
  444. });
  445. };
  446. _worker.findInDesigner_array = function(formData, key, module, designer, propertyDefinition, option, mode){
  447. var arr = formData[key];
  448. arr.forEach(function(v, i) {
  449. this.keywordRegexp.lastIndex = 0;
  450. var text = v.toString();
  451. if (this.keywordRegexp.test(text)){
  452. _worker._findMessageReply(_worker._createFindMessageReplyData(module, designer, "", {
  453. "type": formData.type,
  454. "propertyType": propertyDefinition.type || "text",
  455. "propertyName": propertyDefinition.name,
  456. "name": formData.name || formData.id,
  457. "line": i+1,
  458. "key": key,
  459. "value": text,
  460. "mode": mode
  461. }), option);
  462. }
  463. });
  464. };
  465. _worker.findInDesigner_objectArray = function(formData, key, module, designer, propertyDefinition, option, mode){
  466. var arr = formData[key];
  467. arr.forEach(function(map, i) {
  468. Object.keys(map).forEach(function(evkey) {
  469. this.keywordRegexp.lastIndex = 0;
  470. var text = map[evkey];
  471. if (this.keywordRegexp.test(text)){
  472. _worker._findMessageReply(_worker._createFindMessageReplyData(module, designer, "", {
  473. "type": formData.type,
  474. "propertyType": propertyDefinition.type || "text",
  475. "propertyName": propertyDefinition.name,
  476. "name": formData.name || formData.id,
  477. "line": i+1,
  478. "key": key,
  479. "value": evkey+": "+text,
  480. "mode": mode
  481. }), option);
  482. }
  483. });
  484. });
  485. };
  486. _worker.findInDesigner_duty = function(formData, key, module, designer, propertyDefinition, option, mode){
  487. var text = formData[key];
  488. if (text){
  489. var json = JSON.parse(text);
  490. json.forEach(function(duty, i) {
  491. this.keywordRegexp.lastIndex = 0;
  492. var text = duty.name;
  493. if (text) if (this.keywordRegexp.test(text)){
  494. _worker._findMessageReply(_worker._createFindMessageReplyData(module, designer, "", {
  495. "type": formData.type,
  496. "propertyType": propertyDefinition.type || "text",
  497. "propertyName": propertyDefinition.name,
  498. "name": formData.name || formData.id,
  499. "key": key,
  500. "line": i+1,
  501. "value": "name:"+text,
  502. "mode": mode
  503. }), option);
  504. }
  505. var code = duty.code;
  506. if (code){
  507. this.keywordRegexp.lastIndex = 0;
  508. var len = code.length;
  509. var idx = i+1;
  510. var preLine = 0;
  511. var preIndex = 0;
  512. var result;
  513. while ((result = this.keywordRegexp.exec(code)) !== null){
  514. var obj = _worker.findScriptLineValue(result, code, preLine, preIndex, len);
  515. preLine = obj.preLine;
  516. preIndex = obj.preIndex;
  517. _worker._findMessageReply(_worker._createFindMessageReplyData(module, designer, "", {
  518. "type": formData.type,
  519. "propertyType": propertyDefinition.type || "text",
  520. "propertyName": propertyDefinition.name+"(code)&nbsp;"+idx+"."+duty.name,
  521. "name": formData.name || formData.id,
  522. "key": key,
  523. "value": obj.value,
  524. "line": preLine+1,
  525. "mode": mode
  526. }), option);
  527. }
  528. }
  529. });
  530. }
  531. };
  532. _worker.findInDesigner_actions = function(formData, key, module, designer, propertyDefinition, option, mode){
  533. var arr = formData[key];
  534. arr.forEach(function(action, i) {
  535. this.keywordRegexp.lastIndex = 0;
  536. var text = action.text;
  537. if (text) if (this.keywordRegexp.test(text)){
  538. _worker._findMessageReply(_worker._createFindMessageReplyData(module, designer, "", {
  539. "type": formData.type,
  540. "propertyType": propertyDefinition.type || "text",
  541. "propertyName": propertyDefinition.name,
  542. "name": formData.name || formData.id,
  543. "key": key,
  544. "line": i+1,
  545. "value": "text:"+text,
  546. "mode": mode
  547. }), option);
  548. }
  549. var code = action.actionScript;
  550. if (code){
  551. this.keywordRegexp.lastIndex = 0;
  552. var len = code.length;
  553. var idx = i+1;
  554. var preLine = 0;
  555. var preIndex = 0;
  556. var result;
  557. while ((result = this.keywordRegexp.exec(code)) !== null){
  558. var obj = _worker.findScriptLineValue(result, code, preLine, preIndex, len);
  559. preLine = obj.preLine;
  560. preIndex = obj.preIndex;
  561. _worker._findMessageReply(_worker._createFindMessageReplyData(module, designer, "", {
  562. "type": formData.type,
  563. "propertyType": propertyDefinition.type || "text",
  564. "propertyName": propertyDefinition.name+"(actionScript)&nbsp;"+action.text,
  565. "name": formData.name || formData.id,
  566. "key": key,
  567. "value": obj.value,
  568. "line": preLine+1,
  569. "mode": mode
  570. }), option);
  571. }
  572. }
  573. code = action.condition;
  574. if (code){
  575. this.keywordRegexp.lastIndex = 0;
  576. var len = code.length;
  577. var idx = i+1;
  578. var preLine = 0;
  579. var preIndex = 0;
  580. var result;
  581. while ((result = this.keywordRegexp.exec(code)) !== null){
  582. var obj = _worker.findScriptLineValue(result, code, preLine, preIndex, len);
  583. preLine = obj.preLine;
  584. preIndex = obj.preIndex;
  585. _worker._findMessageReply(_worker._createFindMessageReplyData(module, designer, "", {
  586. "type": formData.type,
  587. "propertyType": propertyDefinition.type || "text",
  588. "propertyName": propertyDefinition.name+"(condition)&nbsp;"+action.text,
  589. "name": formData.name || formData.id,
  590. "key": key,
  591. "value": obj.value,
  592. "line": preLine+1,
  593. "mode": mode
  594. }), option);
  595. }
  596. }
  597. });
  598. };
  599. _worker.findInDesigner_filter = function(formData, key, module, designer, propertyDefinition, option, mode){
  600. var arr = formData[key];
  601. arr.forEach(function(filter, i) {
  602. this.keywordRegexp.lastIndex = 0;
  603. var text = filter.path;
  604. if (text) if (this.keywordRegexp.test(text)){
  605. _worker._findMessageReply(_worker._createFindMessageReplyData(module, designer, "", {
  606. "type": formData.type,
  607. "propertyType": propertyDefinition.type || "text",
  608. "propertyName": propertyDefinition.name,
  609. "name": formData.name || formData.id,
  610. "key": key,
  611. "line": i+1,
  612. "value": "path:"+text,
  613. "mode": mode
  614. }), option);
  615. }
  616. var value = filter.value;
  617. if (value) if (this.keywordRegexp.test(value)){
  618. _worker._findMessageReply(_worker._createFindMessageReplyData(module, designer, "", {
  619. "type": formData.type,
  620. "propertyType": propertyDefinition.type || "text",
  621. "propertyName": propertyDefinition.name,
  622. "name": formData.name || formData.id,
  623. "key": key,
  624. "line": i+1,
  625. "value": "value:"+value,
  626. "mode": mode
  627. }), option);
  628. }
  629. var otherValue = filter.otherValue;
  630. if (otherValue) if (this.keywordRegexp.test(otherValue)){
  631. _worker._findMessageReply(_worker._createFindMessageReplyData(module, designer, "", {
  632. "type": formData.type,
  633. "propertyType": propertyDefinition.type || "text",
  634. "propertyName": propertyDefinition.name,
  635. "name": formData.name || formData.id,
  636. "key": key,
  637. "line": i+1,
  638. "value": "otherValue:"+otherValue,
  639. "mode": mode
  640. }), option);
  641. }
  642. var code = (filter.code) ? filter.code.code: "";
  643. if (code){
  644. this.keywordRegexp.lastIndex = 0;
  645. var len = code.length;
  646. var idx = i+1;
  647. var preLine = 0;
  648. var preIndex = 0;
  649. var result;
  650. while ((result = this.keywordRegexp.exec(code)) !== null){
  651. var obj = _worker.findScriptLineValue(result, code, preLine, preIndex, len);
  652. preLine = obj.preLine;
  653. preIndex = obj.preIndex;
  654. _worker._findMessageReply(_worker._createFindMessageReplyData(module, designer, "", {
  655. "type": formData.type,
  656. "propertyType": propertyDefinition.type || "text",
  657. "propertyName": propertyDefinition.name+"(code)&nbsp;"+filter.path,
  658. "name": formData.name || formData.id,
  659. "key": key,
  660. "value": obj.value,
  661. "line": preLine+1,
  662. "mode": mode
  663. }), option);
  664. }
  665. }
  666. code = (filter.valueScript) ? filter.valueScript.code : "";
  667. if (code){
  668. this.keywordRegexp.lastIndex = 0;
  669. var len = code.length;
  670. var idx = i+1;
  671. var preLine = 0;
  672. var preIndex = 0;
  673. var result;
  674. while ((result = this.keywordRegexp.exec(code)) !== null){
  675. var obj = _worker.findScriptLineValue(result, code, preLine, preIndex, len);
  676. preLine = obj.preLine;
  677. preIndex = obj.preIndex;
  678. _worker._findMessageReply(_worker._createFindMessageReplyData(module, designer, "", {
  679. "type": formData.type,
  680. "propertyType": propertyDefinition.type || "text",
  681. "propertyName": propertyDefinition.name+"(valueScript)&nbsp;"+filter.path,
  682. "name": formData.name || formData.id,
  683. "key": key,
  684. "value": obj.value,
  685. "line": preLine+1,
  686. "mode": mode
  687. }), option);
  688. }
  689. }
  690. });
  691. };
  692. _worker.findInDesigner_serial = function(formData, key, module, designer, propertyDefinition, option, mode){
  693. var text = formData[key];
  694. if (text) {
  695. var json = JSON.parse(text);
  696. json.forEach(function(serial, i) {
  697. this.keywordRegexp.lastIndex = 0;
  698. switch (serial.key){
  699. case "text":
  700. case "unitAttribute":
  701. if (this.keywordRegexp.test(serial.value)){
  702. _worker._findMessageReply(_worker._createFindMessageReplyData(module, designer, "", {
  703. "type": formData.type,
  704. "propertyType": propertyDefinition.type || "text",
  705. "propertyName": propertyDefinition.name+"&nbsp"+serial.key+"&nbsp",
  706. "name": formData.name || formData.id,
  707. "key": key,
  708. "value": serial.value
  709. }), option);
  710. }
  711. break;
  712. case "script":
  713. var code = serial.value;
  714. if (serial.value){
  715. if (code){
  716. this.keywordRegexp.lastIndex = 0;
  717. var len = code.length;
  718. var idx = i+1;
  719. var preLine = 0;
  720. var preIndex = 0;
  721. var result;
  722. while ((result = this.keywordRegexp.exec(code)) !== null){
  723. var obj = _worker.findScriptLineValue(result, code, preLine, preIndex, len);
  724. preLine = obj.preLine;
  725. preIndex = obj.preIndex;
  726. _worker._findMessageReply(_worker._createFindMessageReplyData(module, designer, "", {
  727. "type": formData.type,
  728. "propertyType": propertyDefinition.type || "text",
  729. "propertyName": propertyDefinition.name+"&nbsp"+serial.key+"&nbsp",
  730. "name": formData.name || formData.id,
  731. "key": key,
  732. "value": obj.value,
  733. "line": preLine+1
  734. }), option);
  735. }
  736. }
  737. }
  738. break;
  739. default:
  740. //nothing
  741. }
  742. });
  743. }
  744. };
  745. _worker.findInDesigner_projection = function(formData, key, module, designer, propertyDefinition, option, mode){
  746. var text = formData[key];
  747. if (text) {
  748. var json = JSON.parse(text);
  749. json.forEach(function(projection, i) {
  750. this.keywordRegexp.lastIndex = 0;
  751. var text = projection.path+"->"+projection.name;
  752. if (this.keywordRegexp.test(text)){
  753. _worker._findMessageReply(_worker._createFindMessageReplyData(module, designer, "", {
  754. "type": formData.type,
  755. "propertyType": propertyDefinition.type || "text",
  756. "propertyName": propertyDefinition.name,
  757. "name": formData.name || formData.id,
  758. "key": key,
  759. "value": text,
  760. "line": i
  761. }), option);
  762. }
  763. });
  764. }
  765. };
  766. _worker.findInDesigner_selectConfig_script = function(formData, key, module, designer, propertyDefinition, option, mode, code, propertyName){
  767. if (code){
  768. this.keywordRegexp.lastIndex = 0;
  769. var len = code.length;
  770. var preLine = 0;
  771. var preIndex = 0;
  772. var result;
  773. while ((result = this.keywordRegexp.exec(code)) !== null){
  774. var obj = _worker.findScriptLineValue(result, code, preLine, preIndex, len);
  775. preLine = obj.preLine;
  776. preIndex = obj.preIndex;
  777. _worker._findMessageReply(_worker._createFindMessageReplyData(module, designer, "", {
  778. "type": formData.type,
  779. "propertyType": propertyDefinition.type || "text",
  780. "propertyName": propertyName,
  781. "name": formData.name || formData.id,
  782. "key": key,
  783. "value": obj.value,
  784. "line": preLine+1
  785. }), option);
  786. }
  787. }
  788. };
  789. _worker.findInDesigner_selectConfig_events = function(formData, key, module, designer, propertyDefinition, option, mode, eventObj, propertyName){
  790. Object.keys(eventObj).forEach(function(evkey){
  791. var code = eventObj[evkey].code;
  792. this.keywordRegexp.lastIndex = 0;
  793. var len = code.length;
  794. var preLine = 0;
  795. var preIndex = 0;
  796. var result;
  797. while ((result = this.keywordRegexp.exec(code)) !== null){
  798. var obj = _worker.findScriptLineValue(result, code, preLine, preIndex, len);
  799. preLine = obj.preLine;
  800. preIndex = obj.preIndex;
  801. _worker._findMessageReply(_worker._createFindMessageReplyData(module, designer, "", {
  802. "type": formData.type,
  803. "propertyType": propertyDefinition.type || "text",
  804. "propertyName": propertyName,
  805. "name": formData.name || formData.id,
  806. "key": key,
  807. "evkey": evkey,
  808. "value": obj.value,
  809. "line": preLine+1,
  810. "mode": mode
  811. }), option);
  812. }
  813. });
  814. };
  815. _worker.findInDesigner_selectConfig = function(formData, key, module, designer, propertyDefinition, option, mode){
  816. var text = formData[key];
  817. if (text) {
  818. var json = JSON.parse(text);
  819. json.forEach(function(config, i) {
  820. var idx = i+1;
  821. var propertyName = propertyDefinition.name+"&nbsp"+idx+"-"+config.name+"&nbsp默认值脚本(defaultValue)&nbsp";
  822. _worker.findInDesigner_selectConfig_script(formData, key, module, designer, propertyDefinition, option, mode, config.defaultValue.code, propertyName);
  823. propertyName = propertyDefinition.name+"&nbsp"+idx+"-"+config.name+"&nbsp校验脚本(validation)&nbsp";
  824. _worker.findInDesigner_selectConfig_script(formData, key, module, designer, propertyDefinition, option, mode, config.validation.code, propertyName);
  825. propertyName = propertyDefinition.name+"&nbsp"+idx+"-"+config.name+"&nbsp隐藏脚本(hiddenScript)&nbsp";
  826. _worker.findInDesigner_selectConfig_script(formData, key, module, designer, propertyDefinition, option, mode, config.hiddenScript.code, propertyName);
  827. propertyName = propertyDefinition.name+"&nbsp"+idx+"-"+config.name+"&nbsp身份选择组织范围脚本(identityRangeKey)&nbsp";
  828. _worker.findInDesigner_selectConfig_script(formData, key, module, designer, propertyDefinition, option, mode, config.identityRangeKey.code, propertyName);
  829. propertyName = propertyDefinition.name+"&nbsp"+idx+"-"+config.name+"&nbsp职务范围脚本(rangeDutyKey)&nbsp";
  830. _worker.findInDesigner_selectConfig_script(formData, key, module, designer, propertyDefinition, option, mode, config.rangeDutyKey.code, propertyName);
  831. propertyName = propertyDefinition.name+"&nbsp"+idx+"-"+config.name+"&nbsp身份添加脚本(identityIncludeKey)&nbsp";
  832. _worker.findInDesigner_selectConfig_script(formData, key, module, designer, propertyDefinition, option, mode, config.identityIncludeKey.code, propertyName);
  833. propertyName = propertyDefinition.name+"&nbsp"+idx+"-"+config.name+"&nbsp组织选择组织范围脚本(unitRangeKey)&nbsp";
  834. _worker.findInDesigner_selectConfig_script(formData, key, module, designer, propertyDefinition, option, mode, config.unitRangeKey.code, propertyName);
  835. propertyName = propertyDefinition.name+"&nbsp"+idx+"-"+config.name+"&nbsp排除范围脚本(exclude)&nbsp";
  836. _worker.findInDesigner_selectConfig_script(formData, key, module, designer, propertyDefinition, option, mode, config.exclude.code, propertyName);
  837. var arr = config.rangeDuty;
  838. if (arr && arr.length) arr.forEach(function(v, i) {
  839. this.keywordRegexp.lastIndex = 0;
  840. var text = v.toString();
  841. if (this.keywordRegexp.test(text)){
  842. propertyName = propertyDefinition.name+"&nbsp"+idx+"-"+config.name+"&nbsp职务范围(rangeDuty)&nbsp";
  843. _worker._findMessageReply(_worker._createFindMessageReplyData(module, designer, "", {
  844. "type": formData.type,
  845. "propertyType": propertyDefinition.type || "text",
  846. "propertyName": propertyName,
  847. "name": formData.name || formData.id,
  848. "line": i+1,
  849. "key": key,
  850. "value": text,
  851. "mode": mode
  852. }), option);
  853. }
  854. });
  855. propertyName = propertyDefinition.name+"&nbsp"+idx+"-"+config.name+"&nbsp事件(events)&nbsp";
  856. _worker.findInDesigner_selectConfig_events(formData, key, module, designer, propertyDefinition, option, mode, config.events, propertyName);
  857. });
  858. }
  859. };
  860. _worker.findInDesigner_text = function(formData, key, module, designer, propertyDefinition, option, mode){
  861. this.keywordRegexp.lastIndex = 0;
  862. var text = formData[key];
  863. if (this.keywordRegexp.test(text)){
  864. _worker._findMessageReply(_worker._createFindMessageReplyData(module, designer, "", {
  865. "type": formData.type,
  866. "propertyType": propertyDefinition.type || "text",
  867. "propertyName": propertyDefinition.name,
  868. "name": formData.name || formData.id,
  869. "key": key,
  870. "value": text,
  871. "mode": mode
  872. }), option);
  873. }
  874. };
  875. _worker.findInDesignerProperty = function(key, propertyDefinition, formData, option, module, designer, mode){
  876. if (propertyDefinition){
  877. switch (propertyDefinition.type){
  878. case "html":
  879. _worker.findInDesigner_script(formData, key, module, designer, propertyDefinition, option, mode);
  880. break;
  881. case "script":
  882. case "css":
  883. case "sql":
  884. _worker.findInDesigner_script(formData, key, module, designer, propertyDefinition, option, mode);
  885. break;
  886. case "events":
  887. _worker.findInDesigner_events(formData, key, module, designer, propertyDefinition, option, mode);
  888. break;
  889. case "map":
  890. _worker.findInDesigner_map(formData, key, module, designer, propertyDefinition, option, mode);
  891. break;
  892. case "array":
  893. _worker.findInDesigner_array(formData, key, module, designer, propertyDefinition, option, mode);
  894. break;
  895. case "object-array":
  896. _worker.findInDesigner_objectArray(formData, key, module, designer, propertyDefinition, option, mode);
  897. break;
  898. case "duty":
  899. _worker.findInDesigner_duty(formData, key, module, designer, propertyDefinition, option, mode);
  900. break;
  901. case "actions":
  902. _worker.findInDesigner_actions(formData, key, module, designer, propertyDefinition, option, mode);
  903. break;
  904. case "filter":
  905. _worker.findInDesigner_filter(formData, key, module, designer, propertyDefinition, option, mode);
  906. break;
  907. case "serial":
  908. _worker.findInDesigner_serial(formData, key, module, designer, propertyDefinition, option, mode);
  909. break;
  910. case "projection":
  911. _worker.findInDesigner_projection(formData, key, module, designer, propertyDefinition, option, mode);
  912. break;
  913. case "selectConfig":
  914. _worker.findInDesigner_selectConfig(formData, key, module, designer, propertyDefinition, option, mode);
  915. break;
  916. default:
  917. _worker.findInDesigner_text(formData, key, module, designer, propertyDefinition, option, mode);
  918. }
  919. }
  920. }
  921. _worker.findInDesigner = function(formData, option, module, designer, mode){
  922. Object.keys(formData).forEach(function(key){
  923. var propertyDefinition = this.designerPropertysData.form[key];
  924. _worker.findInDesignerProperty(key, propertyDefinition, formData, option, module, designer, mode);
  925. });
  926. };
  927. _worker.decodeJsonString = function(str){
  928. var tmp = "[\""+str+"\"]";
  929. var dataObj = (JSON.parse(tmp));
  930. return dataObj[0];
  931. };
  932. _worker._getDesignerData = function(designer, module){
  933. var action = "";
  934. switch (designer.designerType){
  935. case "form":
  936. if (module=="processPlatform") action = this.findData.actions.getProcessForm
  937. else if (module=="cms") action = this.findData.actions.getCmsForm;
  938. break;
  939. case "process":
  940. action = this.findData.actions.getProcessProcess;
  941. break;
  942. case "page":
  943. action = this.findData.actions.getPortalPage;
  944. break;
  945. case "widget":
  946. action = this.findData.actions.getPortalWidget;
  947. case "view":
  948. action = this.findData.actions.getQueryView;
  949. break;
  950. }
  951. if (action){
  952. var formPromise = _worker.action.sendRequest(_worker._getRequestOption({"url": action}, {"id": designer.designerId}));
  953. if (!this.designerPropertysData) this.designerPropertysData = _worker.action.sendRequest(_worker._getRequestOption({"url": "../x_component_FindDesigner/propertys.json"}));
  954. return Promise.all([formPromise, this.designerPropertysData]);
  955. }
  956. };
  957. _worker._findInDesigner_form = function(formData, designer, option, module){
  958. var mode = formData.json.mode;
  959. _worker.findInDesigner(formData.json, option, module, designer, mode);
  960. for (key in formData.json.moduleList){
  961. if (formData.json.moduleList[key].recoveryStyles) formData.json.moduleList[key].styles = formData.json.moduleList[key].recoveryStyles;
  962. if (formData.json.moduleList[key].recoveryInputStyles) formData.json.moduleList[key].inputStyles = formData.json.moduleList[key].recoveryInputStyles;
  963. _worker.findInDesigner(formData.json.moduleList[key], option, module, designer, mode);
  964. }
  965. };
  966. _worker._findProcessPlatformParse_form = function(designer, option, module){
  967. if (designer.patternList && designer.patternList.length){
  968. var p = _worker._getDesignerData(designer, module);
  969. if (p){
  970. var patternPropertys = designer.patternList.map(function(a){return a.property;});
  971. p.then(function(arr){
  972. var formJson = arr[0];
  973. this.designerPropertysData = arr[1];
  974. if (patternPropertys.indexOf("data")!=-1){
  975. var formData = JSON.parse(_worker.decodeJsonString(formJson.data.data));
  976. _worker._findInDesigner_form(formData, designer, option, module);
  977. }
  978. if (patternPropertys.indexOf("mobileData")!=-1){
  979. var formData = JSON.parse(_worker.decodeJsonString(formJson.data.mobileData));
  980. _worker._findInDesigner_form(formData, designer, option, module)
  981. }
  982. }, function(){});
  983. }
  984. }
  985. };
  986. _worker._findProcessPlatformParse_View = function(designer, option, module){
  987. if (designer.patternList && designer.patternList.length){
  988. if (!this.designerPropertysData) this.designerPropertysData = _worker.action.sendRequest(_worker._getRequestOption({"url": "../x_component_FindDesigner/propertys.json"}));
  989. var patternPropertys = designer.patternList.map(function(a){return a.property;});
  990. if (patternPropertys.indexOf("data")!=-1){
  991. var p = _worker._getDesignerData(designer, module);
  992. if (p) {
  993. p.then(function (arr) {
  994. var viewJson = arr[0].data;
  995. this.designerPropertysData = arr[1];
  996. var viewData = JSON.parse(viewJson.data);
  997. viewData.type = "View";
  998. viewData.name = viewJson.name;
  999. Object.keys(viewData).forEach(function(key){
  1000. if (key!=="where" && key!=="selectList" && key!=="actionbarList" && key!=="pagingList" && key!=="type" && key!=="name" ){
  1001. var propertyDefinition = this.designerPropertysData.view[key];
  1002. _worker.findInDesignerProperty(key, propertyDefinition, viewData, option, module, designer);
  1003. }
  1004. });
  1005. viewData.where.type = "View";
  1006. viewData.where.name = viewJson.name;
  1007. Object.keys(viewData.where).forEach(function(key){
  1008. if ( key!=="type" && key!=="name"){
  1009. var propertyDefinition = this.designerPropertysData.view[key];
  1010. _worker.findInDesignerProperty(key, propertyDefinition, viewData.where, option, module, designer);
  1011. }
  1012. });
  1013. viewData.selectList.forEach(function(col){
  1014. col.type = "column";
  1015. col.name = col.displayName;
  1016. Object.keys(col).forEach(function(key){
  1017. if (key!=="name" && key!=="type"){
  1018. var propertyDefinition = this.designerPropertysData.view[key];
  1019. _worker.findInDesignerProperty(key, propertyDefinition, col, option, module, designer);
  1020. }
  1021. });
  1022. });
  1023. viewData.actionbarList.forEach(function(item){
  1024. item.type = "column";
  1025. item.name = item.type;
  1026. Object.keys(item).forEach(function(key){
  1027. if (key!=="name" && key!=="type"){
  1028. var propertyDefinition = this.designerPropertysData.view[key];
  1029. _worker.findInDesignerProperty(key, propertyDefinition, item, option, module, designer);
  1030. }
  1031. });
  1032. });
  1033. viewData.pagingList.forEach(function(item){
  1034. item.type = "column";
  1035. item.name = item.type;
  1036. Object.keys(item).forEach(function(key){
  1037. if (key!=="name" && key!=="type"){
  1038. var propertyDefinition = this.designerPropertysData.view[key];
  1039. _worker.findInDesignerProperty(key, propertyDefinition, item, option, module, designer);
  1040. }
  1041. });
  1042. });
  1043. }, function () {
  1044. });
  1045. }
  1046. }else{
  1047. Promise.resolve(this.designerPropertysData).then(function(data){
  1048. this.designerPropertysData = data;
  1049. designer.patternList.forEach(function(pattern){
  1050. var propertyDefinition = this.designerPropertysData.view[pattern.property];
  1051. if (propertyDefinition){
  1052. _worker._findMessageReply(_worker._createFindMessageReplyData(module, designer, "", {
  1053. "type": "View",
  1054. "propertyType": propertyDefinition.type || "text",
  1055. "propertyName": propertyDefinition.name,
  1056. "name": designer.designerName,
  1057. "key": pattern.property,
  1058. "value": pattern.propertyValue
  1059. }), option);
  1060. }
  1061. });
  1062. }, function(){});
  1063. }
  1064. }
  1065. }
  1066. _worker._findProcessPlatformParse_process = function(designer, option, module){
  1067. if (designer.patternList && designer.patternList.length){
  1068. var p = _worker._getDesignerData(designer, module);
  1069. if (p){
  1070. p.then(function(arr){
  1071. var processData = arr[0].data;
  1072. this.designerPropertysData = arr[1];
  1073. designer.patternList.forEach(function(pattern){
  1074. if (pattern.elementType === "process"){
  1075. debugger;
  1076. var propertyDefinition = this.designerPropertysData.process[pattern.property];
  1077. processData.type = pattern.elementType;
  1078. _worker.findInDesignerProperty(pattern.property, propertyDefinition, processData, option, module, designer);
  1079. }else if (pattern.elementType === "route") {
  1080. for (var i=0; i<processData.routeList.length; i++){
  1081. if (processData.routeList[i].id===pattern.elementId) break;
  1082. }
  1083. Object.keys(processData.routeList[i]).forEach(function(key){
  1084. var propertyDefinition = this.designerPropertysData.process[key];
  1085. processData.routeList[i].type = pattern.elementType;
  1086. _worker.findInDesignerProperty(key, propertyDefinition, processData.routeList[i], option, module, designer);
  1087. }.bind(this));
  1088. }else{
  1089. if (pattern.elementType=="begin" && pattern.elementId===processData.begin.id){
  1090. Object.keys(processData.begin).forEach(function(key){
  1091. var propertyDefinition = this.designerPropertysData.process[key];
  1092. processData.begin.type = pattern.elementType;
  1093. _worker.findInDesignerProperty(key, propertyDefinition, processData.begin, option, module, designer);
  1094. }.bind(this));
  1095. }else{
  1096. var arrKey = pattern.elementType+"List";
  1097. for (var i=0; i<processData[arrKey].length; i++){
  1098. if (processData[arrKey][i].id===pattern.elementId) break;
  1099. }
  1100. Object.keys(processData[arrKey][i]).forEach(function(key){
  1101. var propertyDefinition = this.designerPropertysData.process[key];
  1102. processData[arrKey][i].type = pattern.elementType;
  1103. _worker.findInDesignerProperty(key, propertyDefinition, processData[arrKey][i], option, module, designer);
  1104. }.bind(this));
  1105. }
  1106. }
  1107. });
  1108. }, function(){});
  1109. }
  1110. }
  1111. };
  1112. _worker._findProcessPlatformParse = function(resultList, option, module){
  1113. resultList.forEach(function(designer){
  1114. switch (designer.designerType){
  1115. case "script":
  1116. _worker._findProcessPlatformParse_script(designer, option, module);
  1117. break;
  1118. case "form":
  1119. case "page":
  1120. case "widget":
  1121. debugger;
  1122. _worker._findProcessPlatformParse_form(designer, option, module);
  1123. break;
  1124. case "process":
  1125. _worker._findProcessPlatformParse_process(designer, option, module);
  1126. case "view":
  1127. _worker._findProcessPlatformParse_View(designer, option, module);
  1128. break;
  1129. }
  1130. });
  1131. };
  1132. _worker._doFindDesigner = function(option, idx){
  1133. var option = this.filterOptionList[idx];
  1134. var res = _worker._getRequestOption({
  1135. "method": "post",
  1136. "url": this.findData.actions.findAction,
  1137. "body": JSON.stringify(option),
  1138. "debug": this.findData.debug,
  1139. "token": this.findData.token
  1140. });
  1141. this.action.sendRequest(res).then(function(json){
  1142. if (json.data.processPlatformList && json.data.processPlatformList.length){
  1143. // var worker = new Worker("../x_component_FindDesigner/PatternWorker.js");
  1144. // worker.onmessage = function(e) {
  1145. // if (e.data) _worker._findMessageReply(e.data, option);
  1146. // }.bind(this);
  1147. // worker.postMessage({
  1148. // "parser": "_findProcessPlatformParse",
  1149. // "actions": _worker.findData.actions,
  1150. // "option": option,
  1151. // "pattern": json.data.processPlatformList
  1152. // });
  1153. _worker._findProcessPlatformParse(json.data.processPlatformList, option, "processPlatform");
  1154. }
  1155. if (json.data.cmsList && json.data.cmsList.length){
  1156. _worker._findProcessPlatformParse(json.data.cmsList, option, "cms");
  1157. }
  1158. if (json.data.portalList && json.data.portalList.length){
  1159. _worker._findProcessPlatformParse(json.data.portalList, option, "portal");
  1160. }
  1161. if (json.data.queryList && json.data.queryList.length){
  1162. _worker._findProcessPlatformParse(json.data.queryList, option, "query");
  1163. }
  1164. if (json.data.serviceList && json.data.serviceList.length){
  1165. _worker._findProcessPlatformParse(json.data.serviceList, option, "service");
  1166. }
  1167. _worker._findOptionReply();
  1168. idx++;
  1169. if (this.filterOptionList.length>idx) _worker._doFindDesigner(null, idx);
  1170. //this.filterOptionList[idx];
  1171. //_worker._findMessageReply(json.data, option);
  1172. }, function(xhr){
  1173. _worker._findOptionReply(null);
  1174. _worker._findMessageReply(null);
  1175. idx++;
  1176. if (this.filterOptionList.length>idx) _worker._doFindDesigner(null, idx);
  1177. });
  1178. },
  1179. _worker._doFindDesignerFromFilterOption = function(){
  1180. var idx = 0;
  1181. //this.filterOptionList.forEach(function(option){
  1182. // _worker._doFindDesigner(option, idx);
  1183. //});
  1184. _worker._doFindDesigner(null, idx);
  1185. },
  1186. onmessage = function(e) {
  1187. this.findData = e.data;
  1188. var moduleList = this.findData.filterOption.moduleList;
  1189. this.findData.filterOption.moduleList = [];
  1190. _worker._setFilterOptionRegex();
  1191. this.filterOptionTemplete = JSON.stringify(this.findData.filterOption);
  1192. this.filterOptionList = [];
  1193. Promise.all(_worker._parseFindModule(moduleList)).then(function(){
  1194. // this.filterOptionList[0].moduleList=[];
  1195. // //_worker._doFindDesigner(this.filterOptionList[0]);
  1196. // this.filterOptionList = [this.filterOptionList[0]];
  1197. _worker._readyMessageReply();
  1198. _worker._doFindDesignerFromFilterOption();
  1199. });
  1200. //"moduleType": "cms", "flagList": [];
  1201. // designerTypes
  1202. // flagList = [{
  1203. // "id": "dddd",
  1204. // "desingerList": [
  1205. // {
  1206. // "desingerType": "脚本(script)表单(form)流程(process)页面(page)部件(widget)视图(view)脚本(statement)统计(stat",
  1207. // "id": ""
  1208. // },
  1209. // {
  1210. // "desingerType": "脚本(script)表单(form)流程(process)页面(page)部件(widget)视图(view)脚本(statement)统计(stat",
  1211. // "id": ""
  1212. // }
  1213. // ]
  1214. // }]
  1215. _worker._receiveMessageReply();
  1216. //_worker.action.sendRequest(e.data);
  1217. }