editorJobJs.jsp 37 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942
  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:0,
  7. flowArrays:[],
  8. beforeServeTime:false,
  9. archiveUpload:"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 condition = $('#jobDatasetCondition').ligerCondition("getValue");
  255. me.callbackCondition(key,dataType,condition);
  256. });
  257. //执行计划
  258. $("#dateNextTime").ligerDateEditor({
  259. width: 240,
  260. showTime: true
  261. });
  262. $('input[name="jobType"]').ligerRadio();
  263. $('input[name="interval_type"]').ligerRadio();
  264. $(document).on('click','input[name="jobType"]',function(){
  265. var value = $(this).val();
  266. me.setAchiveUploadType(value);
  267. });
  268. $(document).on('click','input[name="interval_type"]',function(){
  269. //清空数据
  270. $("#txtCronExpression").val("");
  271. me.initInterval();
  272. $(".divIntervalOption").hide();
  273. $("#divIntervalOption"+$(this).val()).show();
  274. });
  275. $("#txtM").ligerSpinner({width: 208,type: 'int',minValue:1});
  276. $("#txtH").ligerSpinner({width: 208,type: 'int',minValue:1});
  277. $("#txtD").ligerSpinner({width: 208,type: 'int',minValue:1});
  278. $("#txtMD").ligerSpinner({width: 160,type: 'int',minValue:1});
  279. $('input[name="week_day"]').ligerCheckBox();
  280. $('input[name="month_day"]').ligerRadio();
  281. $(document).on('click','input[name="month_day"]',function(){
  282. var val = $(this).val();
  283. if(val=="2")
  284. {
  285. $("#txtMD").removeAttr("disabled");
  286. }
  287. else
  288. {
  289. $("#txtMD").attr("disabled",true);
  290. }
  291. });
  292. /** 档案上传参数 **/
  293. $("#txtDelayTime").ligerSpinner({width: 240,type: 'int',minValue:1});
  294. $("#repeatStartTime").ligerDateEditor({
  295. width: 240,
  296. showTime: true
  297. });
  298. $("#repeatEndTime").ligerDateEditor({
  299. width: 240,
  300. showTime: true
  301. });
  302. me.initData();
  303. },
  304. //初始化数据
  305. initData:function(){
  306. var me = this;
  307. var modelString = "${model.id}";
  308. if(modelString!=undefined && modelString!=null && modelString.length>0)
  309. {
  310. me.actionUrl = "${contextRoot}/datacollect/updateJob";
  311. flowTempId = "${model.flowTempId}";
  312. liger.get("jobContentClass").selectValue(flowTempId);
  313. $('#flowId').val( '${model.flowId}');
  314. var model ={
  315. id:'${model.id}',
  316. jobName: '${model.jobName}',
  317. jobInfo: '${model.jobInfo}',
  318. jobContent: '${model.jobContent}',
  319. jobContentType: '${model.jobContentType}',
  320. jobType:'${model.jobType}',
  321. schemeId: '${model.schemeId}',
  322. schemeVersion: '${model.schemeVersion}',
  323. valid: '${model.valid}',
  324. flowId: '${model.flowId}',
  325. flowTempId: '${model.flowTempId}',
  326. cronExpression: '${cronExpression}',
  327. jobNextTime: '${model.jobNextTime}',
  328. repeatStartTime:'${model.repeatStartTime}',
  329. repeatEndTime:'${model.repeatEndTime}',
  330. delayTime:'${model.delayTime}'
  331. };
  332. $('#txtId').val(model.id);
  333. $('#txtJobName').val(model.jobName);
  334. $('#txtJobInfo').val(model.jobInfo);
  335. $('input[name="jobContentType"]').ligerRadio('setValue',model.jobContentType);
  336. me.setJobContentType(model.jobContentType,model.jobContent);
  337. $('input[name="jobType"]').ligerRadio('setValue',model.jobType);
  338. //非档案上传时隐藏
  339. if($('input[name="jobContentType"]').ligerComboBox("getValue")==me.crawlerFlowUpload) {
  340. $("#divDelayTime").show();
  341. $("#divRepeat").show();
  342. }
  343. if(model.jobType=="0")//单次执行
  344. {
  345. $("#divTimeInterval").hide();
  346. //接口为档案上传时
  347. if( $('input[name="jobContentType"]').ligerComboBox("getValue")==me.crawlerFlowUpload) {
  348. $("#divDelayTime").show();
  349. $("#divRepeat").show();
  350. $("#repeatStartTime").ligerDateEditor("setValue",model.repeatStartTime);
  351. $("#repeatEndTime").ligerDateEditor("setValue",model.repeatEndTime);
  352. }
  353. }
  354. else{
  355. $("#divTimeInterval").show();
  356. //接口为档案上传时
  357. if( $('input[name="jobContentType"]').ligerComboBox("getValue")==me.crawlerFlowUpload) {
  358. $("#divDelayTime").show();
  359. // $("#divRepeat").hide();
  360. $("#repeatStartTime").ligerDateEditor("setValue",model.repeatStartTime);
  361. $("#txtDelayTime").val(model.delayTime);
  362. }
  363. }
  364. $('#txtSchemeId').val(model.schemeId);
  365. $('#txtSchemeVersion').val(model.schemeVersion);
  366. $('#txtCronExpression').val(model.cronExpression);
  367. $('#txtValid').val(model.valid);
  368. $("#dateNextTime").ligerDateEditor('setValue',model.jobNextTime);
  369. me.skip(3);//跳到最后面板
  370. //赋值执行计划
  371. me.initInterval();
  372. }
  373. },
  374. //获取数据
  375. getData:function(){
  376. var me = this;
  377. var type = $('input[name="jobContentType"]').ligerRadio('getValue');
  378. var content = $("#jobContentClass").ligerComboBox("getValue");
  379. // if($('input[name="jobContentType"]').ligerRadio("getValue")==me.crawlerFlowUpload) {//任务编排上传类,不需要选择数据集,直接设值
  380. // $("#txtJobDataset").val(JSON.stringify(me.$crawlerFlowDataset.getData()));
  381. // }
  382. var model ={
  383. id:$('#txtId').val(),
  384. jobName: $('#txtJobName').val(),
  385. jobInfo: $('#txtJobInfo').val(),
  386. jobContent: content,
  387. jobContentType: type,
  388. jobType: $('input[name="jobType"]').ligerRadio('getValue'),
  389. schemeId: $('#txtSchemeId').val(),
  390. schemeVersion: $('#txtSchemeVersion').val(),
  391. valid: $('#txtValid').val(),
  392. cronExpression: $('#txtCronExpression').val(),
  393. jobNextTime: $("#dateNextTime").ligerDateEditor('getValue'),
  394. jobDataset: $('#txtJobDataset').val(),
  395. flowTempId: $('#jobContentClass').ligerDateEditor('getValue'),
  396. flowId: $('#flowId').val(),
  397. repeatStartTime: $("#repeatStartTime").ligerDateEditor('getValue'),
  398. repeatEndTime: $("#repeatEndTime").ligerDateEditor('getValue'),
  399. delayTime: $('#txtDelayTime').val(),
  400. };
  401. return model;
  402. },
  403. //改变为档案上传接口,执行方式修改时触发,清空数据
  404. setAchiveUploadType:function(jobType){
  405. var me = this;
  406. if(jobType==undefined)
  407. {
  408. jobType = $('input[name="jobType"]').ligerRadio("getValue");
  409. }
  410. if( $('input[name="jobContentType"]').ligerComboBox("getValue")!=me.crawlerFlowUpload) {
  411. $("#divDelayTime").hide();
  412. $("#divRepeatStart").hide();
  413. $("#divRepeatEnd").hide();
  414. $("#txtM").val("");
  415. $("#repeatStartTime").ligerDateEditor("setValue","");
  416. $("#repeatEndTime").ligerDateEditor("setValue","");
  417. }
  418. if(jobType=="0")//单次执行
  419. {
  420. $("#divTimeInterval").hide();
  421. //接口为档案上传时
  422. if($('input[name="jobContentType"]').ligerComboBox("getValue")==me.crawlerFlowUpload) {
  423. $("#divDelayTime").show();
  424. $("#divRepeatStart").show();
  425. $("#divRepeatEnd").show();
  426. $("#txtDelayTime").val("");
  427. }
  428. }
  429. else{
  430. $("#divTimeInterval").show();
  431. //接口为档案上传时
  432. if( $('input[name="jobContentType"]').ligerComboBox("getValue")==me.crawlerFlowUpload) {
  433. $("#divDelayTime").show();
  434. $("#repeatEndTime").ligerDateEditor("setValue","");
  435. $("#divRepeatStart").show();
  436. $("#divRepeatEnd").show();
  437. }
  438. }
  439. },
  440. //设置任务执行类型
  441. setJobContentType:function(jobContentType,jobContent){
  442. $("#lbJobContent").html("关联流程模板:")
  443. $("#txtJobContent").val("").hide();
  444. $("#jobContentClass").parent().parent().show();
  445. $("#jobContentClass").ligerComboBox("setValue",jobContent);
  446. },
  447. //设置数据集条件
  448. setCondition:function(rowIndex)
  449. {
  450. var me = this;
  451. //获取选中行
  452. var row = me.$listDataset.getRow(rowIndex);
  453. if(row == null)
  454. {
  455. return;
  456. }
  457. me.rowIndex = rowIndex;
  458. var schemeId = $("#txtSchemeId").val();
  459. var schemeVersion = $("#txtSchemeVersion").val();
  460. var condition="",key="",type = "",datasetId=row.jobDatasetId;
  461. if(row.jobDatasetKey!=undefined&&row.jobDatasetKey.length>0)
  462. {
  463. key = row.jobDatasetKey;
  464. }
  465. if(row.jobDatasetKeytype!=undefined&&row.jobDatasetKeytype.length>0)
  466. {
  467. type=row.jobDatasetKeytype;
  468. }
  469. if(row.jobDatasetCondition!=undefined&&row.jobDatasetCondition.length>0)
  470. {
  471. condition=row.jobDatasetCondition;
  472. }
  473. $("#jobDatasetKey").ligerComboBox("setValue",key);
  474. $("#jobDatasetKeytype").ligerComboBox("setValue",type);
  475. $.ajax({ //获取表的字段列表
  476. type: "POST",
  477. url : "${contextRoot}/datacollect/getSchemeDatasetCol",
  478. dataType : "json",
  479. data:{schemeId:schemeId,schemeVersion:schemeVersion,datasetId:datasetId},
  480. cache:false,
  481. success :function(data){
  482. if(data.successFlg) {
  483. //展示条件设置面板
  484. $("#divCondition").show();
  485. //设置下拉控件数据
  486. $("#jobDatasetKey").ligerComboBox("setData",data.detailModelList);
  487. //设置条件选择控件值
  488. $("#jobDatasetCondition").ligerCondition("setFields",data.detailModelList);
  489. $('#jobDatasetCondition').ligerCondition("setDictParms",{version:schemeVersion});
  490. if(condition.length>0)
  491. {
  492. $("#jobDatasetCondition").ligerCondition("setValue",condition);
  493. }
  494. }
  495. else{
  496. $.ligerDialog.error(data.message);
  497. }
  498. },
  499. error :function(data){
  500. $.ligerDialog.error("Status:"+data.status +"(" +data.statusText+")");
  501. }
  502. });
  503. },
  504. //条件选择配置返回事件
  505. callbackCondition:function(key,type,condition){
  506. var me= this;
  507. var rowIndex = me.rowIndex;
  508. me.$listDataset.updateRow(rowIndex,{
  509. jobDatasetKey:key,
  510. jobDatasetKeytype:type,
  511. jobDatasetCondition:condition
  512. });
  513. me.setCheckVal();
  514. },
  515. //表单校验
  516. verify:function(tabIndex)
  517. {
  518. var me = this;
  519. var data = me.getData();
  520. switch (tabIndex)
  521. {
  522. case 0:
  523. {
  524. return true;
  525. }
  526. case 4:
  527. {
  528. //任务类型不能为空
  529. if(data.jobType == null)
  530. {
  531. $.ligerDialog.error("请选择任务类型!");
  532. return false;
  533. }
  534. //下次执行时间不能为空
  535. if(data.jobNextTime == null || data.jobNextTime == 0)
  536. {
  537. $.ligerDialog.error("请输入任务开始执行时间!");
  538. return false;
  539. }
  540. if(data.jobType != "0") {
  541. me.setInterval();
  542. var interval = $("#txtCronExpression").val();
  543. //执行周期不能为空
  544. if (interval == "" || interval.length == 0) {
  545. $.ligerDialog.error("请输入执行周期!");
  546. return false;
  547. }
  548. }
  549. else{
  550. $("#txtCronExpression").val("");
  551. }
  552. //档案上传接口值校验
  553. if($('input[name="jobContentType"]').ligerComboBox("getValue")==me.archiveUpload)
  554. {
  555. if(data.jobType == "0") {
  556. if($("#repeatStartTime").ligerDateEditor("getValue")==""&&$("#repeatEndTime").ligerDateEditor("getValue")=="")
  557. {
  558. $.ligerDialog.error("请输采集时间!");
  559. return false;
  560. }
  561. }
  562. }
  563. }
  564. case 1:
  565. {
  566. //任务名称不能为空
  567. if(data.jobName == null || data.jobName.length==0)
  568. {
  569. $.ligerDialog.error("请输入任务名称!");
  570. return false;
  571. }
  572. if(data.jobContent == null || data.jobContent.length==0)
  573. {
  574. $.ligerDialog.error("请输入任务内容!");
  575. return false;
  576. }
  577. return true;
  578. }
  579. case 2:
  580. {
  581. var schemeVersion = $("#txtSchemeId").val();
  582. //适配方案不能为空
  583. if(schemeVersion == null || schemeVersion.length==0)
  584. {
  585. $.ligerDialog.error("请选择适配方案!");
  586. return false;
  587. }
  588. else
  589. return true;
  590. }
  591. case 3:
  592. {
  593. if($('input[name="jobContentType"]').ligerComboBox("getValue")!=me.crawlerFlowUpload) {//不是任务编排上传类
  594. var dataset = $("#txtJobDataset").val();
  595. //数据集不能为空
  596. if(dataset == null || dataset =="[]")
  597. {
  598. me.setCheckVal();
  599. dataset = $("#txtJobDataset").val();
  600. if(dataset == null || dataset =="[]") {
  601. $.ligerDialog.error("请选择数据集!");
  602. return false;
  603. }
  604. }
  605. //判断是否设置轮询字段和字段类型 档案上传不校验 @modify by cyj
  606. if($('input[name="jobContentType"]').ligerComboBox("getValue")!=me.archiveUpload) {
  607. var selected = me.$listDataset.getSelectedRows();
  608. for(var i=0;i<selected.length;i++)
  609. {
  610. if(selected[i].jobDatasetKey!= undefined && selected[i].jobDatasetKey.length>0 && selected[i].jobDatasetKeytype!= undefined && selected[i].jobDatasetKeytype.length>0)
  611. {
  612. }
  613. else{
  614. $.ligerDialog.error(selected[i].jobDatasetName+"未设置轮询字段!");
  615. return false;
  616. }
  617. }
  618. }
  619. }
  620. return true;
  621. }
  622. default :
  623. return true;
  624. }
  625. },
  626. //根据周期类型显示周期面板
  627. showInterval:function(tab){
  628. $('input[name="interval_type"]').ligerRadio("setValue", tab);
  629. $(".divIntervalOption").hide();
  630. $("#divIntervalOption"+tab).show();
  631. },
  632. //初始化时间间隔
  633. initInterval:function(){
  634. var me = this;
  635. var val= $("#txtCronExpression").val();
  636. if(val!=null&&val.length>0)
  637. {
  638. try {
  639. //反解析cron表达式
  640. var arry = val.split(' ');
  641. if (arry[5] !="?") //周
  642. {
  643. $('input[name="interval_type"]').ligerRadio("setValue", "3");
  644. me.showInterval(3);
  645. $('input[name="week_day"]').ligerCheckBox("setValue", arry[5]);
  646. }
  647. else{
  648. if (arry[3] !="*")
  649. {
  650. var v = arry[3];
  651. if(v.indexOf('/')>0) //天
  652. {
  653. me.showInterval(2);
  654. var varry = v.split('/');
  655. $("#txtD").val(varry[1]);
  656. }
  657. else{//月
  658. me.showInterval(4);
  659. if(v=="1")
  660. {
  661. $('input[name="month_day"]').ligerRadio("setValue", "0");
  662. }
  663. else if(v=="L"){
  664. $('input[name="month_day"]').ligerRadio("setValue", "1");
  665. }
  666. else{
  667. $('input[name="month_day"]').ligerRadio("setValue", "2");
  668. $("#txtMD").val(v);
  669. }
  670. }
  671. }
  672. else{
  673. var v1 = arry[1];
  674. var v2 = arry[2];
  675. if(v1.indexOf('/')>0) //分
  676. {
  677. me.showInterval(0);
  678. var varry = v1.split('/');
  679. $("#txtM").val(varry[1]);
  680. }
  681. else{ //时
  682. me.showInterval(1);
  683. var varry = v2.split('/');
  684. $("#txtH").val(varry[1]);
  685. }
  686. }
  687. }
  688. }
  689. catch(e){
  690. return;
  691. }
  692. }
  693. else{
  694. //清空数据
  695. $("#txtM").val("");
  696. $("#txtH").val("");
  697. $("#txtD").val("");
  698. $("#txtMD").val("");
  699. $('input[name="week_day"]').ligerCheckBox("setValue",null);
  700. $('input[name="month_day"]').ligerRadio("setValue",null);
  701. }
  702. },
  703. //设置时间间隔
  704. setInterval:function(){
  705. var val = "";
  706. //解析cron表达式
  707. var interval_type = $('input[name="interval_type"]').ligerRadio("getValue");
  708. var cronTime = new Date($("#dateNextTime").ligerDateEditor('getValue'));
  709. var minute = cronTime.getMinutes(),hour = cronTime.getHours();
  710. if(interval_type =="0") //分钟
  711. {
  712. var num = $("#txtM").val();
  713. if(num!=null && num.length>0) {
  714. val = "0 0/" + num + " * * * ?";
  715. }
  716. }
  717. else if(interval_type =="1"){ //时钟
  718. var num = $("#txtH").val();
  719. if(num!=null && num.length>0) {
  720. val = "0 "+ minute +" 0/" + num + " * * ?";
  721. }
  722. }
  723. else if(interval_type =="2"){ //天
  724. var num = $("#txtD").val();
  725. if(num!=null && num.length>0) {
  726. val = "0 "+ minute +" "+ hour +" 1/" + num + " * ?";
  727. }
  728. }
  729. else if(interval_type =="3"){ //周
  730. var week_day = $('input[name="week_day"]').ligerCheckBox("getValue");
  731. if(week_day!=null && week_day.length>0) {
  732. val = "0 "+ minute +" "+ hour +" ? * " + week_day;
  733. }
  734. }
  735. else if(interval_type =="4"){ //月
  736. var month_day = $('input[name="month_day"]').ligerRadio("getValue");
  737. if(month_day == "0") //每月第一天
  738. {
  739. val = "0 "+ minute +" "+ hour +" 1 * ?";
  740. }
  741. else if(month_day == "1") //每月最后一天
  742. {
  743. val = "0 "+ minute +" "+ hour +" L * ?";
  744. }
  745. else{
  746. var num = $("#txtMD").val();
  747. if(num!=null && num.length>0)
  748. {
  749. val = "0 "+ minute +" "+ hour +" "+num+" * ?";
  750. }
  751. }
  752. }
  753. $("#txtCronExpression").val(val);
  754. },
  755. //设置数据集选中值
  756. setCheckVal:function(){
  757. var me = this;
  758. var selected = me.$listDataset.getSelectedRows();
  759. if(selected!=null)
  760. {
  761. $("#txtJobDataset").val(JSON.stringify(selected));
  762. }
  763. else{
  764. $("#txtJobDataset").val("");
  765. }
  766. },
  767. //保存操作
  768. save:function(){
  769. var me = this;
  770. me.setCheckVal();
  771. var data = me.getData();
  772. //按钮失效
  773. $("a[href='#finish']").unbind("click");
  774. $.ajax({ //ajax处理
  775. type: "POST",
  776. url : me.actionUrl,
  777. dataType : "json",
  778. data:data,
  779. cache:false,
  780. success :function(data){
  781. if(data.successFlg) {
  782. if(parent.trackJob != undefined)
  783. parent.trackJob.callbackDialog(data.message);
  784. else
  785. parent.configJob.callbackDialog(data.message);
  786. }
  787. else{
  788. $.ligerDialog.error(data.message);
  789. //按钮恢复
  790. $("a[href='#finish']").bind("click",function(){editorJob.save();});
  791. }
  792. },
  793. error :function(data){
  794. $.ligerDialog.error("Status:"+data.status +"(" +data.statusText+")");
  795. //按钮恢复
  796. $("a[href='#finish']").bind("click",function(){editorJob.save();});
  797. }
  798. });
  799. },
  800. //跳转步骤
  801. skip:function(to){
  802. var me = this;
  803. var index = me.$form.steps("getCurrentIndex");
  804. if(index>to)
  805. {
  806. for(var i =index-to;i>0;i--)
  807. {
  808. if(!me.$form.steps("previous"))
  809. {
  810. return;
  811. }
  812. }
  813. }
  814. else{
  815. for(var i =to-index;i>0;i--)
  816. {
  817. if(!me.$form.steps("next"))
  818. {
  819. return;
  820. }
  821. }
  822. }
  823. },
  824. compareServeTime:function(time){
  825. $.ajax({ //获取表的字段列表
  826. type: "POST",
  827. url : "${contextRoot}/datacollect/compareServeTime",
  828. dataType : "json",
  829. data:{time:time},
  830. cache:false,
  831. async:false,
  832. success :function(data){
  833. if(data.successFlg) {
  834. editorJob.beforeServeTime=true;
  835. $.ligerDialog.error("采集时间不能小于当前时间!");
  836. }
  837. else{
  838. }
  839. },
  840. error :function(data){
  841. editorJob.beforeServeTime=true;
  842. $.ligerDialog.error("Status:"+data.status +"(" +data.statusText+")");
  843. }
  844. });
  845. },
  846. getFlowList:function(){
  847. $.ajax({ //获取表的字段列表
  848. type: "POST",
  849. url : "${contextRoot}/flow/flowTempList",
  850. dataType : "json",
  851. data:{type:'java'},
  852. cache:false,
  853. async:false,
  854. success :function(data){
  855. if(data.successFlg) {
  856. editorJob.flowArrays=data.data;
  857. }
  858. else{
  859. alert("获取流程列表错误");
  860. }
  861. },
  862. error :function(data){
  863. editorJob.beforeServeTime=true;
  864. $.ligerDialog.error("Status:"+data.status +"(" +data.statusText+")");
  865. }
  866. });
  867. },
  868. }
  869. $(function () {
  870. editorJob.init();
  871. });
  872. </script>