editorJobJs.jsp 37 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958
  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. };
  406. return model;
  407. },
  408. //改变为档案上传接口,执行方式修改时触发,清空数据
  409. setAchiveUploadType:function(jobType){
  410. var me = this;
  411. if(jobType==undefined)
  412. {
  413. jobType = $('input[name="jobType"]').ligerRadio("getValue");
  414. }
  415. if( $('input[name="jobContentType"]').ligerComboBox("getValue")!=me.crawlerFlowUpload) {
  416. $("#divDelayTime").hide();
  417. $("#divRepeatStart").hide();
  418. $("#divRepeatEnd").hide();
  419. $("#txtM").val("");
  420. $("#repeatStartTime").ligerDateEditor("setValue","");
  421. $("#repeatEndTime").ligerDateEditor("setValue","");
  422. }
  423. if(jobType=="0")//单次执行
  424. {
  425. $("#divTimeInterval").hide();
  426. //接口为档案上传时
  427. if($('input[name="jobContentType"]').ligerComboBox("getValue")==me.crawlerFlowUpload) {
  428. $("#divDelayTime").show();
  429. $("#divRepeatStart").show();
  430. $("#divRepeatEnd").show();
  431. $("#txtDelayTime").val("");
  432. }
  433. }
  434. else{
  435. $("#divTimeInterval").show();
  436. //接口为档案上传时
  437. if( $('input[name="jobContentType"]').ligerComboBox("getValue")==me.crawlerFlowUpload) {
  438. $("#divDelayTime").show();
  439. $("#repeatEndTime").ligerDateEditor("setValue","");
  440. $("#divRepeatStart").show();
  441. $("#divRepeatEnd").show();
  442. }
  443. }
  444. },
  445. //设置任务执行类型
  446. setJobContentType:function(jobContentType,jobContent){
  447. $("#lbJobContent").html("关联流程模板:")
  448. $("#txtJobContent").val("").hide();
  449. $("#jobContentClass").parent().parent().show();
  450. $("#jobContentClass").ligerComboBox("setValue",jobContent);
  451. },
  452. //设置数据集条件
  453. setCondition:function(rowIndex)
  454. {
  455. var me = this;
  456. //获取选中行
  457. var row = me.$listDataset.getRow(rowIndex);
  458. if(row == null)
  459. {
  460. return;
  461. }
  462. me.rowIndex = rowIndex;
  463. var schemeId = $("#txtSchemeId").val();
  464. var schemeVersion = $("#txtSchemeVersion").val();
  465. var condition="",key="",type = "",dataKey="",datasetId=row.jobDatasetId;
  466. if(row.jobDatasetKey!=undefined&&row.jobDatasetKey.length>0)
  467. {
  468. key = row.jobDatasetKey;
  469. }
  470. if(row.jobDatasetKeytype!=undefined&&row.jobDatasetKeytype.length>0)
  471. {
  472. type=row.jobDatasetKeytype;
  473. }
  474. if(row.jobDatasetCondition!=undefined&&row.jobDatasetCondition.length>0)
  475. {
  476. condition=row.jobDatasetCondition;
  477. }
  478. if(row.jobDatasetKeyvalue!=undefined&&row.jobDatasetKeyvalue.length>0){
  479. dataKey = row.jobDatasetKeyvalue;
  480. }
  481. $("#jobDatasetKey").ligerComboBox("setValue",key);
  482. $("#jobDatasetKeytype").ligerComboBox("setValue",type);
  483. $("#jobDatasetKeyvalue").val(dataKey);
  484. $.ajax({ //获取表的字段列表
  485. type: "POST",
  486. url : "${contextRoot}/datacollect/getSchemeDatasetCol",
  487. dataType : "json",
  488. data:{schemeId:schemeId,schemeVersion:schemeVersion,datasetId:datasetId},
  489. cache:false,
  490. success :function(data){
  491. if(data.successFlg) {
  492. //展示条件设置面板
  493. $("#divCondition").show();
  494. //设置下拉控件数据
  495. $("#jobDatasetKey").ligerComboBox("setData",data.detailModelList);
  496. //设置条件选择控件值
  497. $("#jobDatasetCondition").ligerCondition("setFields",data.detailModelList);
  498. $('#jobDatasetCondition').ligerCondition("setDictParms",{version:schemeVersion});
  499. if(condition.length>0)
  500. {
  501. $("#jobDatasetCondition").ligerCondition("setValue",condition);
  502. }
  503. }
  504. else{
  505. $.ligerDialog.error(data.message);
  506. }
  507. },
  508. error :function(data){
  509. $.ligerDialog.error("Status:"+data.status +"(" +data.statusText+")");
  510. }
  511. });
  512. },
  513. //条件选择配置返回事件
  514. callbackCondition:function(key,type,dataKey,condition){
  515. var me= this;
  516. var rowIndex = me.rowIndex;
  517. me.$listDataset.updateRow(rowIndex,{
  518. jobDatasetKey:key,
  519. jobDatasetKeytype:type,
  520. jobDatasetKeyvalue:dataKey,
  521. jobDatasetCondition:condition
  522. });
  523. me.setCheckVal();
  524. },
  525. //表单校验
  526. verify:function(tabIndex)
  527. {
  528. var me = this;
  529. var data = me.getData();
  530. switch (tabIndex)
  531. {
  532. case 0:
  533. {
  534. return true;
  535. }
  536. case 4:
  537. {
  538. debugger
  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 == "1" && $("#repeatStartTime").ligerDateEditor("getValue")=="") {
  567. $.ligerDialog.error("请输采集上传开始时间!");
  568. return false;
  569. }
  570. }
  571. }
  572. case 1:
  573. {
  574. //任务名称不能为空
  575. if(data.jobName == null || data.jobName.length==0)
  576. {
  577. $.ligerDialog.error("请输入任务名称!");
  578. return false;
  579. }
  580. if(data.jobContent == null || data.jobContent.length==0)
  581. {
  582. $.ligerDialog.error("请选择关联的流程!");
  583. return false;
  584. }
  585. return true;
  586. }
  587. case 2:
  588. {
  589. var schemeVersion = $("#txtSchemeId").val();
  590. //适配方案不能为空
  591. if(schemeVersion == null || schemeVersion.length==0)
  592. {
  593. $.ligerDialog.error("请选择适配方案!");
  594. return false;
  595. }
  596. else
  597. return true;
  598. }
  599. case 3:
  600. {
  601. // if($('input[name="jobContentType"]').ligerComboBox("getValue")!=me.crawlerFlowUpload) {//不是任务编排上传类
  602. var dataset = $("#txtJobDataset").val();
  603. //数据集不能为空
  604. if(dataset == null || dataset =="[]")
  605. {
  606. me.setCheckVal();
  607. dataset = $("#txtJobDataset").val();
  608. if(dataset == null || dataset =="[]") {
  609. $.ligerDialog.error("请选择数据集!");
  610. return false;
  611. }
  612. }
  613. //判断是否设置轮询字段和字段类型 档案上传不校验 @modify by cyj
  614. // if($('input[name="jobContentType"]').ligerComboBox("getValue")!=me.archiveCollect) {
  615. var selected = me.$listDataset.getSelectedRows();
  616. for(var i=0;i<selected.length;i++)
  617. {
  618. if(selected[i].jobDatasetKey!= undefined && selected[i].jobDatasetKey.length>0 && selected[i].jobDatasetKeytype!= undefined && selected[i].jobDatasetKeytype.length>0)
  619. {
  620. }
  621. else{
  622. $.ligerDialog.error(selected[i].jobDatasetName+"未设置轮询字段!");
  623. return false;
  624. }
  625. }
  626. // }
  627. // }
  628. return true;
  629. }
  630. default :
  631. return true;
  632. }
  633. },
  634. //根据周期类型显示周期面板
  635. showInterval:function(tab){
  636. $('input[name="interval_type"]').ligerRadio("setValue", tab);
  637. $(".divIntervalOption").hide();
  638. $("#divIntervalOption"+tab).show();
  639. },
  640. //初始化时间间隔
  641. initInterval:function(){
  642. var me = this;
  643. var val= $("#txtCronExpression").val();
  644. if(val!=null&&val.length>0)
  645. {
  646. try {
  647. //反解析cron表达式
  648. var arry = val.split(' ');
  649. if (arry[5] !="?") //周
  650. {
  651. $('input[name="interval_type"]').ligerRadio("setValue", "3");
  652. me.showInterval(3);
  653. $('input[name="week_day"]').ligerCheckBox("setValue", arry[5]);
  654. }
  655. else{
  656. if (arry[3] !="*")
  657. {
  658. var v = arry[3];
  659. if(v.indexOf('/')>0) //天
  660. {
  661. me.showInterval(2);
  662. var varry = v.split('/');
  663. $("#txtD").val(varry[1]);
  664. }
  665. else{//月
  666. me.showInterval(4);
  667. if(v=="1")
  668. {
  669. $('input[name="month_day"]').ligerRadio("setValue", "0");
  670. }
  671. else if(v=="L"){
  672. $('input[name="month_day"]').ligerRadio("setValue", "1");
  673. }
  674. else{
  675. $('input[name="month_day"]').ligerRadio("setValue", "2");
  676. $("#txtMD").val(v);
  677. }
  678. }
  679. }
  680. else{
  681. var v1 = arry[1];
  682. var v2 = arry[2];
  683. if(v1.indexOf('/')>0) //分
  684. {
  685. me.showInterval(0);
  686. var varry = v1.split('/');
  687. $("#txtM").val(varry[1]);
  688. }
  689. else{ //时
  690. me.showInterval(1);
  691. var varry = v2.split('/');
  692. $("#txtH").val(varry[1]);
  693. }
  694. }
  695. }
  696. }
  697. catch(e){
  698. return;
  699. }
  700. }
  701. else{
  702. // //清空数据
  703. // $("#txtM").val("");
  704. // $("#txtH").val("");
  705. // $("#txtD").val("");
  706. // $("#txtMD").val("");
  707. // $('input[name="week_day"]').ligerCheckBox("setValue",null);
  708. // $('input[name="month_day"]').ligerRadio("setValue",null);
  709. }
  710. },
  711. //设置时间间隔
  712. setInterval:function(){
  713. var val = "";
  714. //解析cron表达式
  715. var interval_type = $('input[name="interval_type"]').ligerRadio("getValue");
  716. var cronTime = new Date($("#dateNextTime").ligerDateEditor('getValue'));
  717. var minute = cronTime.getMinutes(),hour = cronTime.getHours();
  718. if(interval_type =="0") //分钟
  719. {
  720. var num = $("#txtM").val();
  721. if(num!=null && num.length>0) {
  722. val = "0 0/" + num + " * * * ?";
  723. }
  724. }
  725. else if(interval_type =="1"){ //时钟
  726. var num = $("#txtH").val();
  727. if(num!=null && num.length>0) {
  728. val = "0 "+ minute +" 0/" + num + " * * ?";
  729. }
  730. }
  731. else if(interval_type =="2"){ //天
  732. var num = $("#txtD").val();
  733. if(num!=null && num.length>0) {
  734. val = "0 "+ minute +" "+ hour +" 1/" + num + " * ?";
  735. }
  736. }
  737. else if(interval_type =="3"){ //周
  738. var week_day = $('input[name="week_day"]').ligerCheckBox("getValue");
  739. if(week_day!=null && week_day.length>0) {
  740. val = "0 "+ minute +" "+ hour +" ? * " + week_day;
  741. }
  742. }
  743. else if(interval_type =="4"){ //月
  744. var month_day = $('input[name="month_day"]').ligerRadio("getValue");
  745. if(month_day == "0") //每月第一天
  746. {
  747. val = "0 "+ minute +" "+ hour +" 1 * ?";
  748. }
  749. else if(month_day == "1") //每月最后一天
  750. {
  751. val = "0 "+ minute +" "+ hour +" L * ?";
  752. }
  753. else{
  754. var num = $("#txtMD").val();
  755. if(num!=null && num.length>0)
  756. {
  757. val = "0 "+ minute +" "+ hour +" "+num+" * ?";
  758. }
  759. }
  760. }
  761. $("#txtCronExpression").val(val);
  762. },
  763. //设置数据集选中值
  764. setCheckVal:function(){
  765. var me = this;
  766. var selected = me.$listDataset.getSelectedRows();
  767. if(selected!=null)
  768. {
  769. $("#txtJobDataset").val(JSON.stringify(selected));
  770. }
  771. else{
  772. $("#txtJobDataset").val("");
  773. }
  774. },
  775. //保存操作
  776. save:function(){
  777. var me = this;
  778. me.setCheckVal();
  779. var data = me.getData();
  780. console.log(data);
  781. //按钮失效
  782. $("a[href='#finish']").unbind("click");
  783. $.ajax({ //ajax处理
  784. type: "POST",
  785. url : me.actionUrl,
  786. dataType : "json",
  787. data:data,
  788. cache:false,
  789. success :function(data){
  790. if(data.successFlg) {
  791. if(parent.trackJob != undefined)
  792. parent.trackJob.callbackDialog(data.message);
  793. else
  794. parent.configJob.callbackDialog(data.message);
  795. }
  796. else{
  797. $.ligerDialog.error(data.message);
  798. //按钮恢复
  799. $("a[href='#finish']").bind("click",function(){editorJob.save();});
  800. }
  801. },
  802. error :function(data){
  803. $.ligerDialog.error("Status:"+data.status +"(" +data.statusText+")");
  804. //按钮恢复
  805. $("a[href='#finish']").bind("click",function(){editorJob.save();});
  806. }
  807. });
  808. },
  809. //跳转步骤
  810. skip:function(to){
  811. var me = this;
  812. var index = me.$form.steps("getCurrentIndex");
  813. if(index>to)
  814. {
  815. for(var i =index-to;i>0;i--)
  816. {
  817. if(!me.$form.steps("previous"))
  818. {
  819. return;
  820. }
  821. }
  822. }
  823. else{
  824. for(var i =to-index;i>0;i--)
  825. {
  826. if(!me.$form.steps("next"))
  827. {
  828. return;
  829. }
  830. }
  831. }
  832. },
  833. compareServeTime:function(time){
  834. $.ajax({ //获取表的字段列表
  835. type: "POST",
  836. url : "${contextRoot}/datacollect/compareServeTime",
  837. dataType : "json",
  838. data:{time:time},
  839. cache:false,
  840. async:false,
  841. success :function(data){
  842. if(data.successFlg) {
  843. editorJob.beforeServeTime=true;
  844. $.ligerDialog.error("采集时间不能小于当前时间!");
  845. }
  846. else{
  847. }
  848. },
  849. error :function(data){
  850. editorJob.beforeServeTime=true;
  851. $.ligerDialog.error("Status:"+data.status +"(" +data.statusText+")");
  852. }
  853. });
  854. },
  855. getFlowList:function(){
  856. $.ajax({ //获取表的字段列表
  857. type: "POST",
  858. url : "${contextRoot}/flow/flowTempList",
  859. dataType : "json",
  860. data:{type:'java'},
  861. cache:false,
  862. async:false,
  863. success :function(data){
  864. if(data.successFlg) {
  865. editorJob.flowArrays=data.data;
  866. }
  867. else{
  868. alert("获取流程列表错误");
  869. }
  870. },
  871. error :function(data){
  872. editorJob.beforeServeTime=true;
  873. $.ligerDialog.error("Status:"+data.status +"(" +data.statusText+")");
  874. }
  875. });
  876. },
  877. }
  878. //轮回最大值只能输入正整数
  879. $("#jobDatasetKeyvalue").on("keyup afterpaste",function(){
  880. if(this.value.length==1){
  881. this.value=this.value.replace(/[^1-9]/g,'')
  882. }else{
  883. this.value=this.value.replace(/\D/g,'')
  884. }
  885. })
  886. $(function () {
  887. editorJob.init();
  888. });
  889. </script>