editorJobJs.jsp 38 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961
  1. <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="utf-8"%>
  2. <%@include file="/WEB-INF/ehr/commons/jsp/commonInclude.jsp" %>
  3. <script src="${contextRoot}/develop/lib/plugin/steps/jquery.steps.min.js"></script>
  4. <script>
  5. var editorJob={
  6. flowTempId:'${model.flowTempId}',
  7. flowArrays:[],
  8. beforeServeTime:false,
  9. archiveCollect:"0",
  10. crawlerFlowUpload:"1",
  11. $form:$("#div_form"),
  12. $listPlan:null,//适配方案列表
  13. $listDataset:null,//数据集列表
  14. $crawlerFlowDataset:null,//任务编排数据集列表
  15. $conditionDialog:null,//数据集配置条件弹窗
  16. $condition:null,//条件选择控件
  17. needReload:true, //需要刷新关联数据集
  18. needReloadCrawlerDst:false,//判断是否类名为任务编排上传类
  19. actionUrl:"${contextRoot}/datacollect/addJob",
  20. //初始化
  21. init: function ()
  22. {
  23. var me = this;
  24. me.getFlowList();
  25. //表单向导
  26. $("#div_form").show().steps({
  27. //transitionEffect: "fade",
  28. onStepChanging:function(d,from,to){
  29. if(from>to){
  30. return true;
  31. }
  32. else{
  33. return me.verify(to);
  34. }
  35. },
  36. onStepChanged:function(b,to,from){
  37. if(to==1){
  38. me.$listPlan._setData($.parseJSON('${schemeList}'));
  39. me.$listPlan.reRender();
  40. }
  41. else if(to==2){
  42. //接口为档案上传时,数据集不可编辑
  43. me.$listDataset.set("columns", [
  44. { display: '数据集代码', name: 'jobDatasetCode' },
  45. { display: '数据集名称', name: 'jobDatasetName' },
  46. { display: '执行条件', name: 'jobDatasetCondition', render: function (row,rowIndex) {
  47. var html = '<div class="m-inline-buttons" style="width:55px;">';
  48. html += "<a href=\"javascript:void(0)\" onclick=\"javascript:editorJob.setCondition("+rowIndex+");\">设置筛选</a>";
  49. return html;
  50. } }
  51. ]);
  52. $("#listDataset").show();
  53. $("#crawlerListDataset").hide();
  54. //刷新数据集
  55. if(me.needReload)
  56. {
  57. me.$listDataset.set({
  58. parms: {jobId:$('#txtId').val(),schemeId:$("#txtSchemeId").val(),schemeVersion:$("#txtSchemeVersion").val()}
  59. });
  60. me.$listDataset.reload();
  61. me.needReload=false;
  62. }
  63. if(me.needRender)
  64. {
  65. me.$listDataset.setData($("#txtJobDataset").val());
  66. me.$listDataset.reRender();
  67. }
  68. }
  69. else if(to==3)
  70. {
  71. me.setAchiveUploadType();
  72. }else{
  73. liger.get("jobContentClass").selectValue(me.flowTempId);
  74. }
  75. },
  76. onFinishing:function(c,a){
  77. editorJob.setCheckVal();
  78. return me.verify(4);
  79. },
  80. onFinished:function(c,a){
  81. me.save();
  82. },
  83. onCanceled:function(){
  84. if(parent.trackJob != undefined)
  85. parent.trackJob.dialog.close();
  86. else
  87. parent.configJob.dialog.close();
  88. }
  89. });
  90. $("#divCondition").show();
  91. me.initForm();
  92. $("#divCondition").hide();
  93. },
  94. //初始化表单控件
  95. initForm:function(){
  96. var me = this;
  97. //按钮控件
  98. $("a[href='#finish']").addClass("l-button-green");
  99. $("a[href='#cancel']").addClass("l-button-no");
  100. //业务类型
  101. // $('#jobContentClass').ligerComboBox({
  102. // dict:true,
  103. // dictName:'JOB_CONTENT_CLASS',
  104. // onChange:function(){
  105. // me.needRender = true;
  106. // }
  107. // });
  108. $("#jobContentClass").ligerComboBox({data : editorJob.flowArrays,
  109. cancelable:false,
  110. onSuccess:function(data){
  111. }});
  112. $('input[name="jobContentType"]').ligerRadio();
  113. $(document).on('click','input[name="jobContentType"]',function(){
  114. var value = $(this).val();
  115. me.setJobContentType(value,"");
  116. });
  117. //适配方案列表
  118. me.$listPlan = $("#listPlan").ligerGrid({
  119. data: $.parseJSON('${schemeList}'),
  120. columns: [
  121. { display: '版本号', name: 'name' }
  122. ],
  123. groupColumnName:'schemeName',
  124. groupColumnDisplay:'方案',
  125. alternatingRow:true,
  126. selectRowButtonOnly:true,
  127. rownumbers:false,
  128. usePager:false,
  129. isSingleCheck:true,
  130. checkbox:true,
  131. height:340,
  132. width:360,
  133. hideHeader:true,
  134. isChecked:function(row){
  135. if($("#txtSchemeVersion").val()==row.version)
  136. {
  137. if(me.needReloadCrawlerDst && $('input[name="jobContentType"]').ligerComboBox("getValue")==me.crawlerFlowUpload){//类名为任务编排上传类
  138. me.$crawlerFlowDataset.setOptions({parms: [{ name: 'version', value:row.id}],checkbox:false});
  139. me.$crawlerFlowDataset.loadData(true);
  140. me.needReloadCrawlerDst = false;
  141. }
  142. return true;
  143. }
  144. else{
  145. return false;
  146. }
  147. },
  148. onCheckRow:function(checked,data,rowid,rowdata)
  149. {
  150. var selected = me.$listPlan.getSelectedRow();
  151. if(selected!=null)
  152. {
  153. $("#txtSchemeId").val(selected.schemeId);
  154. $("#txtSchemeVersion").val(selected.version);
  155. }
  156. else{
  157. $("#txtSchemeId").val("");
  158. }
  159. me.needReload=true;
  160. }
  161. });
  162. //数据集列表
  163. $("#jobDatasetKey").ligerComboBox({
  164. textField:"text",
  165. extendField:"type",
  166. onSelected:function(value,text,row){
  167. if(row!=null)
  168. {
  169. $("#jobDatasetKeytype").ligerComboBox("setValue",row.type);
  170. }
  171. }
  172. });
  173. $("#jobDatasetKeytype").ligerComboBox({data:[{value:"字符串",code:"VARCHAR"},{value:"数值",code:"NUMERIC"},{value:"时间",code:"DATE"}]});
  174. me.$listDataset = $("#listDataset").ligerGrid({
  175. url:"${contextRoot}/datacollect/getSchemeDataset",
  176. dataType : "json",
  177. cache:false,
  178. columns: [
  179. { display: '数据集代码', name: 'jobDatasetCode' },
  180. { display: '数据集名称', name: 'jobDatasetName' },
  181. { display: '执行条件', name: 'jobDatasetCondition', render: function (row,rowIndex) {
  182. var html = '<div class="m-inline-buttons" style="width:55px;">';
  183. html += "<a href=\"javascript:void(0)\" onclick=\"javascript:editorJob.setCondition("+rowIndex+");\">设置筛选</a>";
  184. return html;
  185. } }
  186. ],
  187. delayLoad:true,//初始化不加载
  188. alternatingRow:true,
  189. selectRowButtonOnly:true,
  190. rownumbers:false,
  191. usePager:false,
  192. checkbox:true,
  193. height:340,
  194. width:360,
  195. //默认选中
  196. isChecked:function(row){
  197. if(row.checked=="1")
  198. {
  199. return true;
  200. }
  201. else{
  202. return false;
  203. }
  204. },
  205. //选中修改值
  206. onCheckRow:function(checked,data,rowid,rowdata)
  207. {
  208. //修改行checked值
  209. if(checked)
  210. data.checked ="1";
  211. else
  212. data.checked ="0";
  213. editorJob.setCheckVal();
  214. },
  215. //全选事件
  216. onCheckAllRow:function(){
  217. me.setCheckVal();
  218. },
  219. //加载完成后赋值$("#txtJobDataset")
  220. onAfterShowData:function(grid)
  221. {
  222. editorJob.setCheckVal();
  223. }
  224. });
  225. //任务编排上传类的数据集列表
  226. me.$crawlerFlowDataset = $("#crawlerListDataset").ligerGrid({
  227. url: '${contextRoot}/crawler/savedJobData',
  228. dataType : "json",
  229. cache:false,
  230. columns: [
  231. { display: '数据集代码', name: 'jobDatasetCode' },
  232. { display: '数据集名称', name: 'jobDatasetName' }
  233. ],
  234. delayLoad:true,//初始化不加载
  235. alternatingRow:true,
  236. selectRowButtonOnly:true,
  237. rownumbers:false,
  238. usePager:false,
  239. checkbox:false,
  240. height:340,
  241. width:360
  242. });
  243. //初始化条件选择控件
  244. $('#jobDatasetCondition').ligerCondition({
  245. stdDictUrl:"${contextRoot}/std/getDictByScheme"
  246. });
  247. $('#btnCancelCondition').click(function () {
  248. $("#divCondition").hide();
  249. });
  250. $('#btnSaveCondition').click(function () {
  251. $("#divCondition").hide();
  252. var key = $("#jobDatasetKey").ligerComboBox("getValue");
  253. var dataType = $("#jobDatasetKeytype").ligerComboBox("getValue");
  254. var dataKey = $("#jobDatasetKeyvalue").val();
  255. var condition = $('#jobDatasetCondition').ligerCondition("getValue");
  256. me.callbackCondition(key,dataType,dataKey,condition);
  257. });
  258. //执行计划
  259. $("#dateNextTime").ligerDateEditor({
  260. width: 240,
  261. showTime: true
  262. });
  263. $('input[name="jobType"]').ligerRadio();
  264. $('input[name="interval_type"]').ligerRadio();
  265. $(document).on('click','input[name="jobType"]',function(){
  266. var value = $(this).val();
  267. me.setAchiveUploadType(value);
  268. });
  269. $(document).on('click','input[name="interval_type"]',function(){
  270. //清空数据
  271. $("#txtCronExpression").val("");
  272. me.initInterval();
  273. $(".divIntervalOption").hide();
  274. $("#divIntervalOption"+$(this).val()).show();
  275. });
  276. $("#txtM").ligerSpinner({width: 208,type: 'int',minValue:1});
  277. $("#txtH").ligerSpinner({width: 208,type: 'int',minValue:1});
  278. $("#txtD").ligerSpinner({width: 208,type: 'int',minValue:1});
  279. $("#txtMD").ligerSpinner({width: 160,type: 'int',minValue:1});
  280. $('input[name="week_day"]').ligerCheckBox();
  281. $('input[name="month_day"]').ligerRadio();
  282. $(document).on('click','input[name="month_day"]',function(){
  283. var val = $(this).val();
  284. if(val=="2")
  285. {
  286. $("#txtMD").removeAttr("disabled");
  287. }
  288. else
  289. {
  290. $("#txtMD").attr("disabled",true);
  291. }
  292. });
  293. /** 档案上传参数 **/
  294. $("#txtDelayTime").ligerSpinner({width: 240,type: 'int',minValue:1});
  295. $("#repeatStartTime").ligerDateEditor({
  296. width: 240,
  297. showTime: true
  298. });
  299. $("#repeatEndTime").ligerDateEditor({
  300. width: 240,
  301. showTime: true
  302. });
  303. me.initData();
  304. },
  305. //初始化数据
  306. initData:function(){
  307. var me = this;
  308. var modelString = "${model.id}";
  309. if(modelString!=undefined && modelString!=null && modelString.length>0)
  310. {
  311. me.actionUrl = "${contextRoot}/datacollect/updateJob";
  312. flowTempId = "${model.flowTempId}";
  313. liger.get("jobContentClass").selectValue(flowTempId);
  314. $('#flowId').val( '${model.flowId}');
  315. var model ={
  316. id:'${model.id}',
  317. jobName: '${model.jobName}',
  318. jobInfo: '${model.jobInfo}',
  319. jobContent: '${model.jobContent}',
  320. jobContentType: '${model.jobContentType}',
  321. jobType:'${model.jobType}',
  322. schemeId: '${model.schemeId}',
  323. schemeVersion: '${model.schemeVersion}',
  324. valid: '${model.valid}',
  325. flowId: '${model.flowId}',
  326. flowTempId: '${model.flowTempId}',
  327. cronExpression: '${cronExpression}',
  328. jobNextTime: '${model.jobNextTime}',
  329. repeatStartTime:'${model.repeatStartTime}',
  330. repeatEndTime:'${model.repeatEndTime}',
  331. delayTime:'${model.delayTime}',
  332. jobCron:'${model.jobCron}',
  333. };
  334. $('#txtId').val(model.id);
  335. $('#txtJobName').val(model.jobName);
  336. $('#txtJobInfo').val(model.jobInfo);
  337. $("#jobDatasetKeyvalue").val();
  338. $('input[name="jobContentType"]').ligerRadio('setValue',model.jobContentType);
  339. me.setJobContentType(model.jobContentType,model.jobContent);
  340. $('input[name="jobType"]').ligerRadio('setValue',model.jobType);
  341. //非档案上传时隐藏
  342. if($('input[name="jobContentType"]').ligerComboBox("getValue")==me.crawlerFlowUpload) {
  343. $("#divDelayTime").show();
  344. $("#divRepeat").show();
  345. }
  346. if(model.jobType=="0")//单次执行
  347. {
  348. $("#divTimeInterval").hide();
  349. //接口为档案上传时
  350. if( $('input[name="jobContentType"]').ligerComboBox("getValue")==me.crawlerFlowUpload) {
  351. $("#divDelayTime").show();
  352. $("#divRepeat").show();
  353. $("#repeatStartTime").ligerDateEditor("setValue",model.repeatStartTime);
  354. $("#repeatEndTime").ligerDateEditor("setValue",model.repeatEndTime);
  355. }
  356. }
  357. else{
  358. $("#divTimeInterval").show();
  359. //接口为档案上传时
  360. if( $('input[name="jobContentType"]').ligerComboBox("getValue")==me.crawlerFlowUpload) {
  361. $("#divDelayTime").show();
  362. // $("#divRepeat").hide();
  363. $("#repeatStartTime").ligerDateEditor("setValue",model.repeatStartTime);
  364. $("#txtDelayTime").val(model.delayTime);
  365. }
  366. }
  367. $('#txtSchemeId').val(model.schemeId);
  368. $('#txtSchemeVersion').val(model.schemeVersion);
  369. $('#txtCronExpression').val(model.jobCron);
  370. $('#txtValid').val(model.valid);
  371. $("#dateNextTime").ligerDateEditor('setValue',model.jobNextTime);
  372. me.skip(3);//跳到最后面板
  373. //赋值执行计划
  374. me.initInterval();
  375. }
  376. },
  377. //获取数据
  378. getData:function(){
  379. var me = this;
  380. var type = $('input[name="jobContentType"]').ligerRadio('getValue');
  381. var content = $("#jobContentClass").ligerComboBox("getValue");
  382. // if($('input[name="jobContentType"]').ligerRadio("getValue")==me.crawlerFlowUpload) {//任务编排上传类,不需要选择数据集,直接设值
  383. // $("#txtJobDataset").val(JSON.stringify(me.$crawlerFlowDataset.getData()));
  384. // }
  385. var model ={
  386. id:$('#txtId').val(),
  387. jobName: $('#txtJobName').val(),
  388. jobInfo: $('#txtJobInfo').val(),
  389. jobContent: content,
  390. jobContentType: type,
  391. jobType: $('input[name="jobType"]').ligerRadio('getValue'),
  392. schemeId: $('#txtSchemeId').val(),
  393. schemeVersion: $('#txtSchemeVersion').val(),
  394. valid: $('#txtValid').val(),
  395. cronExpression: $('#txtCronExpression').val(),
  396. jobNextTime: $("#dateNextTime").ligerDateEditor('getValue'),
  397. jobDataset: $('#txtJobDataset').val(),
  398. flowTempId: $('#jobContentClass').ligerDateEditor('getValue'),
  399. flowId: $('#flowId').val(),
  400. repeatStartTime: $("#repeatStartTime").ligerDateEditor('getValue'),
  401. repeatEndTime: $("#repeatEndTime").ligerDateEditor('getValue'),
  402. delayTime: $('#txtDelayTime').val(),
  403. jobCron:$('#txtCronExpression').val(),
  404. dataKey:$('#jobDatasetKeyvalue').val(),
  405. delayTime:$('#txtDelayTime').val()
  406. };
  407. return model;
  408. },
  409. //改变为档案上传接口,执行方式修改时触发,清空数据
  410. setAchiveUploadType:function(jobType){
  411. var me = this;
  412. if(jobType==undefined)
  413. {
  414. jobType = $('input[name="jobType"]').ligerRadio("getValue");
  415. }
  416. if( $('input[name="jobContentType"]').ligerComboBox("getValue")!=me.crawlerFlowUpload) {
  417. $("#divDelayTime").hide();
  418. $("#divRepeatStart").hide();
  419. $("#divRepeatEnd").hide();
  420. $("#txtM").val("");
  421. $("#repeatStartTime").ligerDateEditor("setValue","");
  422. $("#repeatEndTime").ligerDateEditor("setValue","");
  423. }
  424. if(jobType=="0")//单次执行
  425. {
  426. $("#divTimeInterval").hide();
  427. //接口为档案上传时
  428. if($('input[name="jobContentType"]').ligerComboBox("getValue")==me.crawlerFlowUpload) {
  429. $("#divDelayTime").show();
  430. $("#divRepeatStart").show();
  431. $("#divRepeatEnd").show();
  432. $("#txtDelayTime").val("");
  433. }
  434. }
  435. else{
  436. $("#divTimeInterval").show();
  437. //接口为档案上传时
  438. if( $('input[name="jobContentType"]').ligerComboBox("getValue")==me.crawlerFlowUpload) {
  439. $("#divDelayTime").show();
  440. $("#repeatEndTime").ligerDateEditor("setValue","");
  441. $("#divRepeatStart").show();
  442. $("#divRepeatEnd").show();
  443. }
  444. }
  445. },
  446. //设置任务执行类型
  447. setJobContentType:function(jobContentType,jobContent){
  448. $("#lbJobContent").html("关联流程模板:")
  449. $("#txtJobContent").val("").hide();
  450. $("#jobContentClass").parent().parent().show();
  451. $("#jobContentClass").ligerComboBox("setValue",jobContent);
  452. },
  453. //设置数据集条件
  454. setCondition:function(rowIndex)
  455. {
  456. var me = this;
  457. //获取选中行
  458. var row = me.$listDataset.getRow(rowIndex);
  459. if(row == null)
  460. {
  461. return;
  462. }
  463. me.rowIndex = rowIndex;
  464. var schemeId = $("#txtSchemeId").val();
  465. var schemeVersion = $("#txtSchemeVersion").val();
  466. var condition="",key="",type = "",dataKey="",datasetId=row.jobDatasetId;
  467. if(row.jobDatasetKey!=undefined&&row.jobDatasetKey.length>0)
  468. {
  469. key = row.jobDatasetKey;
  470. }
  471. if(row.jobDatasetKeytype!=undefined&&row.jobDatasetKeytype.length>0)
  472. {
  473. type=row.jobDatasetKeytype;
  474. }
  475. if(row.jobDatasetCondition!=undefined&&row.jobDatasetCondition.length>0)
  476. {
  477. condition=row.jobDatasetCondition;
  478. }
  479. if(row.jobDatasetKeyvalue!=undefined&&row.jobDatasetKeyvalue.length>0){
  480. dataKey = row.jobDatasetKeyvalue;
  481. }
  482. $("#jobDatasetKey").ligerComboBox("setValue",key);
  483. $("#jobDatasetKeytype").ligerComboBox("setValue",type);
  484. $("#jobDatasetKeyvalue").val(dataKey);
  485. $.ajax({ //获取表的字段列表
  486. type: "POST",
  487. url : "${contextRoot}/datacollect/getSchemeDatasetCol",
  488. dataType : "json",
  489. data:{schemeId:schemeId,schemeVersion:schemeVersion,datasetId:datasetId},
  490. cache:false,
  491. success :function(data){
  492. if(data.successFlg) {
  493. //展示条件设置面板
  494. $("#divCondition").show();
  495. //设置下拉控件数据
  496. $("#jobDatasetKey").ligerComboBox("setData",data.detailModelList);
  497. //设置条件选择控件值
  498. $("#jobDatasetCondition").ligerCondition("setFields",data.detailModelList);
  499. $('#jobDatasetCondition').ligerCondition("setDictParms",{version:schemeVersion});
  500. if(condition.length>0)
  501. {
  502. $("#jobDatasetCondition").ligerCondition("setValue",condition);
  503. }
  504. }
  505. else{
  506. $.ligerDialog.error(data.message);
  507. }
  508. },
  509. error :function(data){
  510. $.ligerDialog.error("Status:"+data.status +"(" +data.statusText+")");
  511. }
  512. });
  513. },
  514. //条件选择配置返回事件
  515. callbackCondition:function(key,type,dataKey,condition){
  516. var me= this;
  517. var rowIndex = me.rowIndex;
  518. me.$listDataset.updateRow(rowIndex,{
  519. jobDatasetKey:key,
  520. jobDatasetKeytype:type,
  521. jobDatasetKeyvalue:dataKey,
  522. jobDatasetCondition:condition
  523. });
  524. me.setCheckVal();
  525. },
  526. //表单校验
  527. verify:function(tabIndex)
  528. {
  529. var me = this;
  530. var data = me.getData();
  531. switch (tabIndex)
  532. {
  533. case 0:
  534. {
  535. return true;
  536. }
  537. case 4:
  538. {
  539. //任务类型不能为空
  540. if(data.jobType == null)
  541. {
  542. $.ligerDialog.error("请选择任务类型!");
  543. return false;
  544. }
  545. //下次执行时间不能为空
  546. if(data.jobNextTime == null || data.jobNextTime == 0)
  547. {
  548. $.ligerDialog.error("请输入任务触发时间!");
  549. return false;
  550. }
  551. if(data.jobType != "0") {
  552. me.setInterval();
  553. var interval = $("#txtCronExpression").val();
  554. //执行周期不能为空
  555. if (interval == "" || interval.length == 0) {
  556. $.ligerDialog.error("请输入执行周期!");
  557. return false;
  558. }
  559. }
  560. else{
  561. $("#txtCronExpression").val("");
  562. }
  563. //档案上传接口值校验
  564. if($('input[name="jobContentType"]').ligerComboBox("getValue")==me.crawlerFlowUpload)
  565. {
  566. if(data.jobType == "0") {
  567. if($("#repeatStartTime").ligerDateEditor("getValue")==""&&$("#repeatEndTime").ligerDateEditor("getValue")=="")
  568. {
  569. $.ligerDialog.error("请输采集上传时间!");
  570. return false;
  571. }
  572. }
  573. }
  574. }
  575. case 1:
  576. {
  577. //任务名称不能为空
  578. if(data.jobName == null || data.jobName.length==0)
  579. {
  580. $.ligerDialog.error("请输入任务名称!");
  581. return false;
  582. }
  583. if(data.jobContent == null || data.jobContent.length==0)
  584. {
  585. $.ligerDialog.error("请选择关联的流程!");
  586. return false;
  587. }
  588. return true;
  589. }
  590. case 2:
  591. {
  592. var schemeVersion = $("#txtSchemeId").val();
  593. //适配方案不能为空
  594. if(schemeVersion == null || schemeVersion.length==0)
  595. {
  596. $.ligerDialog.error("请选择适配方案!");
  597. return false;
  598. }
  599. else
  600. return true;
  601. }
  602. case 3:
  603. {
  604. // if($('input[name="jobContentType"]').ligerComboBox("getValue")!=me.crawlerFlowUpload) {//不是任务编排上传类
  605. var dataset = $("#txtJobDataset").val();
  606. //数据集不能为空
  607. if(dataset == null || dataset =="[]")
  608. {
  609. me.setCheckVal();
  610. dataset = $("#txtJobDataset").val();
  611. if(dataset == null || dataset =="[]") {
  612. $.ligerDialog.error("请选择数据集!");
  613. return false;
  614. }
  615. }
  616. //判断是否设置轮询字段和字段类型 档案上传不校验 @modify by cyj
  617. // if($('input[name="jobContentType"]').ligerComboBox("getValue")!=me.archiveCollect) {
  618. var selected = me.$listDataset.getSelectedRows();
  619. for(var i=0;i<selected.length;i++)
  620. {
  621. if(selected[i].jobDatasetKey!= undefined && selected[i].jobDatasetKey.length>0 && selected[i].jobDatasetKeytype!= undefined && selected[i].jobDatasetKeytype.length>0)
  622. {
  623. }
  624. else{
  625. $.ligerDialog.error(selected[i].jobDatasetName+"未设置轮询字段!");
  626. return false;
  627. }
  628. }
  629. // }
  630. // }
  631. return true;
  632. }
  633. default :
  634. return true;
  635. }
  636. },
  637. //根据周期类型显示周期面板
  638. showInterval:function(tab){
  639. $('input[name="interval_type"]').ligerRadio("setValue", tab);
  640. $(".divIntervalOption").hide();
  641. $("#divIntervalOption"+tab).show();
  642. },
  643. //初始化时间间隔
  644. initInterval:function(){
  645. var me = this;
  646. var val= $("#txtCronExpression").val();
  647. if(val!=null&&val.length>0)
  648. {
  649. try {
  650. //反解析cron表达式
  651. var arry = val.split(' ');
  652. if (arry[5] !="?") //周
  653. {
  654. $('input[name="interval_type"]').ligerRadio("setValue", "3");
  655. me.showInterval(3);
  656. $('input[name="week_day"]').ligerCheckBox("setValue", arry[5]);
  657. }
  658. else{
  659. if (arry[3] !="*")
  660. {
  661. var v = arry[3];
  662. if(v.indexOf('/')>0) //天
  663. {
  664. me.showInterval(2);
  665. var varry = v.split('/');
  666. $("#txtD").val(varry[1]);
  667. }
  668. else{//月
  669. me.showInterval(4);
  670. if(v=="1")
  671. {
  672. $('input[name="month_day"]').ligerRadio("setValue", "0");
  673. }
  674. else if(v=="L"){
  675. $('input[name="month_day"]').ligerRadio("setValue", "1");
  676. }
  677. else{
  678. $('input[name="month_day"]').ligerRadio("setValue", "2");
  679. $("#txtMD").val(v);
  680. }
  681. }
  682. }
  683. else{
  684. var v1 = arry[1];
  685. var v2 = arry[2];
  686. if(v1.indexOf('/')>0) //分
  687. {
  688. me.showInterval(0);
  689. var varry = v1.split('/');
  690. $("#txtM").val(varry[1]);
  691. }
  692. else{ //时
  693. me.showInterval(1);
  694. var varry = v2.split('/');
  695. $("#txtH").val(varry[1]);
  696. }
  697. }
  698. }
  699. }
  700. catch(e){
  701. return;
  702. }
  703. }
  704. else{
  705. // //清空数据
  706. // $("#txtM").val("");
  707. // $("#txtH").val("");
  708. // $("#txtD").val("");
  709. // $("#txtMD").val("");
  710. // $('input[name="week_day"]').ligerCheckBox("setValue",null);
  711. // $('input[name="month_day"]').ligerRadio("setValue",null);
  712. }
  713. },
  714. //设置时间间隔
  715. setInterval:function(){
  716. var val = "";
  717. //解析cron表达式
  718. var interval_type = $('input[name="interval_type"]').ligerRadio("getValue");
  719. var cronTime = new Date($("#dateNextTime").ligerDateEditor('getValue'));
  720. var minute = cronTime.getMinutes(),hour = cronTime.getHours();
  721. if(interval_type =="0") //分钟
  722. {
  723. var num = $("#txtM").val();
  724. if(num!=null && num.length>0) {
  725. val = "0 0/" + num + " * * * ?";
  726. }
  727. }
  728. else if(interval_type =="1"){ //时钟
  729. var num = $("#txtH").val();
  730. if(num!=null && num.length>0) {
  731. val = "0 "+ minute +" 0/" + num + " * * ?";
  732. }
  733. }
  734. else if(interval_type =="2"){ //天
  735. var num = $("#txtD").val();
  736. if(num!=null && num.length>0) {
  737. val = "0 "+ minute +" "+ hour +" 1/" + num + " * ?";
  738. }
  739. }
  740. else if(interval_type =="3"){ //周
  741. var week_day = $('input[name="week_day"]').ligerCheckBox("getValue");
  742. if(week_day!=null && week_day.length>0) {
  743. val = "0 "+ minute +" "+ hour +" ? * " + week_day;
  744. }
  745. }
  746. else if(interval_type =="4"){ //月
  747. var month_day = $('input[name="month_day"]').ligerRadio("getValue");
  748. if(month_day == "0") //每月第一天
  749. {
  750. val = "0 "+ minute +" "+ hour +" 1 * ?";
  751. }
  752. else if(month_day == "1") //每月最后一天
  753. {
  754. val = "0 "+ minute +" "+ hour +" L * ?";
  755. }
  756. else{
  757. var num = $("#txtMD").val();
  758. if(num!=null && num.length>0)
  759. {
  760. val = "0 "+ minute +" "+ hour +" "+num+" * ?";
  761. }
  762. }
  763. }
  764. $("#txtCronExpression").val(val);
  765. },
  766. //设置数据集选中值
  767. setCheckVal:function(){
  768. var me = this;
  769. var selected = me.$listDataset.getSelectedRows();
  770. if(selected!=null)
  771. {
  772. $("#txtJobDataset").val(JSON.stringify(selected));
  773. }
  774. else{
  775. $("#txtJobDataset").val("");
  776. }
  777. },
  778. //保存操作
  779. save:function(){
  780. var me = this;
  781. me.setCheckVal();
  782. var data = me.getData();
  783. console.log(data);
  784. //按钮失效
  785. $("a[href='#finish']").unbind("click");
  786. $.ajax({ //ajax处理
  787. type: "POST",
  788. url : me.actionUrl,
  789. dataType : "json",
  790. data:data,
  791. cache:false,
  792. success :function(data){
  793. if(data.successFlg) {
  794. if(parent.trackJob != undefined)
  795. parent.trackJob.callbackDialog(data.message);
  796. else
  797. parent.configJob.callbackDialog(data.message);
  798. }
  799. else{
  800. $.ligerDialog.error(data.message);
  801. //按钮恢复
  802. $("a[href='#finish']").bind("click",function(){editorJob.save();});
  803. }
  804. },
  805. error :function(data){
  806. $.ligerDialog.error("Status:"+data.status +"(" +data.statusText+")");
  807. //按钮恢复
  808. $("a[href='#finish']").bind("click",function(){editorJob.save();});
  809. }
  810. });
  811. },
  812. //跳转步骤
  813. skip:function(to){
  814. var me = this;
  815. var index = me.$form.steps("getCurrentIndex");
  816. if(index>to)
  817. {
  818. for(var i =index-to;i>0;i--)
  819. {
  820. if(!me.$form.steps("previous"))
  821. {
  822. return;
  823. }
  824. }
  825. }
  826. else{
  827. for(var i =to-index;i>0;i--)
  828. {
  829. if(!me.$form.steps("next"))
  830. {
  831. return;
  832. }
  833. }
  834. }
  835. },
  836. compareServeTime:function(time){
  837. $.ajax({ //获取表的字段列表
  838. type: "POST",
  839. url : "${contextRoot}/datacollect/compareServeTime",
  840. dataType : "json",
  841. data:{time:time},
  842. cache:false,
  843. async:false,
  844. success :function(data){
  845. if(data.successFlg) {
  846. editorJob.beforeServeTime=true;
  847. $.ligerDialog.error("采集时间不能小于当前时间!");
  848. }
  849. else{
  850. }
  851. },
  852. error :function(data){
  853. editorJob.beforeServeTime=true;
  854. $.ligerDialog.error("Status:"+data.status +"(" +data.statusText+")");
  855. }
  856. });
  857. },
  858. getFlowList:function(){
  859. $.ajax({ //获取表的字段列表
  860. type: "POST",
  861. url : "${contextRoot}/flow/flowTempList",
  862. dataType : "json",
  863. data:{type:'java'},
  864. cache:false,
  865. async:false,
  866. success :function(data){
  867. if(data.successFlg) {
  868. editorJob.flowArrays=data.data;
  869. }
  870. else{
  871. alert("获取流程列表错误");
  872. }
  873. },
  874. error :function(data){
  875. editorJob.beforeServeTime=true;
  876. $.ligerDialog.error("Status:"+data.status +"(" +data.statusText+")");
  877. }
  878. });
  879. },
  880. }
  881. //轮回最大值只能输入正整数
  882. $("#jobDatasetKeyvalue").on("keyup afterpaste",function(){
  883. if(this.value.length==1){
  884. this.value=this.value.replace(/[^1-9]/g,'')
  885. }else{
  886. this.value=this.value.replace(/\D/g,'')
  887. }
  888. })
  889. $(function () {
  890. editorJob.init();
  891. });
  892. </script>