schedule.js 7.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220
  1. $(function () {
  2. $("#jqGrid").jqGrid({
  3. url: '../sys/schedule/list',
  4. datatype: "json",
  5. colModel: [
  6. {label: '任务ID', name: 'jobId', width: 60, key: true},
  7. {label: 'bean名称', name: 'beanName', width: 100},
  8. {label: '方法名称', name: 'methodName', width: 100},
  9. {label: '参数', name: 'params', width: 100},
  10. {label: 'cron表达式 ', name: 'cronExpression', width: 100},
  11. {label: '备注 ', name: 'remark', width: 100},
  12. {
  13. label: '状态', name: 'status', width: 60, formatter: function (value, options, row) {
  14. return value === 0 ?
  15. '<span class="label label-success">正常</span>' :
  16. '<span class="label label-danger">暂停</span>';
  17. }
  18. }
  19. ],
  20. viewrecords: true,
  21. height: 385,
  22. rowNum: 10,
  23. rowList: [10, 30, 50],
  24. rownumbers: true,
  25. rownumWidth: 25,
  26. autowidth: true,
  27. multiselect: true,
  28. pager: "#jqGridPager",
  29. jsonReader: {
  30. root: "page.list",
  31. page: "page.currPage",
  32. total: "page.totalPage",
  33. records: "page.totalCount"
  34. },
  35. prmNames: {
  36. page: "page",
  37. rows: "limit",
  38. order: "order"
  39. },
  40. gridComplete: function () {
  41. //隐藏grid底部滚动条
  42. $("#jqGrid").closest(".ui-jqgrid-bdiv").css({"overflow-x": "hidden"});
  43. }
  44. });
  45. });
  46. var vm = new Vue({
  47. el: '#rrapp',
  48. data: {
  49. q: {
  50. methodName: null
  51. },
  52. showList: true,
  53. title: null,
  54. schedule: {},
  55. ruleValidate: {
  56. beanName: [
  57. {required: true, message: 'bean名称不能为空', trigger: 'blur'}
  58. ],
  59. methodName: [
  60. {required: true, message: '方法名称不能为空', trigger: 'blur'}
  61. ],
  62. cronExpression: [
  63. {required: true, message: 'cron表达式不能为空', trigger: 'blur'}
  64. ]
  65. }
  66. },
  67. methods: {
  68. query: function () {
  69. vm.reload();
  70. },
  71. add: function () {
  72. vm.showList = false;
  73. vm.title = "新增";
  74. vm.schedule = {};
  75. },
  76. update: function () {
  77. var jobId = getSelectedRow();
  78. if (jobId == null) {
  79. return;
  80. }
  81. $.get("../sys/schedule/info/" + jobId, function (r) {
  82. vm.showList = false;
  83. vm.title = "修改";
  84. vm.schedule = r.schedule;
  85. });
  86. },
  87. saveOrUpdate: function (event) {
  88. var url = vm.schedule.jobId == null ? "../sys/schedule/save" : "../sys/schedule/update";
  89. $.ajax({
  90. type: "POST",
  91. url: url,
  92. contentType: "application/json",
  93. data: JSON.stringify(vm.schedule),
  94. success: function (r) {
  95. if (r.code === 0) {
  96. alert('操作成功', function (index) {
  97. vm.reload();
  98. });
  99. } else {
  100. alert(r.msg);
  101. }
  102. }
  103. });
  104. },
  105. del: function (event) {
  106. var jobIds = getSelectedRows();
  107. if (jobIds == null) {
  108. return;
  109. }
  110. confirm('确定要删除选中的记录?', function () {
  111. $.ajax({
  112. type: "POST",
  113. url: "../sys/schedule/delete",
  114. contentType: "application/json",
  115. data: JSON.stringify(jobIds),
  116. success: function (r) {
  117. if (r.code == 0) {
  118. alert('操作成功', function (index) {
  119. vm.reload();
  120. });
  121. } else {
  122. alert(r.msg);
  123. }
  124. }
  125. });
  126. });
  127. },
  128. pause: function (event) {
  129. var jobIds = getSelectedRows();
  130. if (jobIds == null) {
  131. return;
  132. }
  133. confirm('确定要暂停选中的记录?', function () {
  134. $.ajax({
  135. type: "POST",
  136. url: "../sys/schedule/pause",
  137. contentType: "application/json",
  138. data: JSON.stringify(jobIds),
  139. success: function (r) {
  140. if (r.code == 0) {
  141. alert('操作成功', function (index) {
  142. vm.reload();
  143. });
  144. } else {
  145. alert(r.msg);
  146. }
  147. }
  148. });
  149. });
  150. },
  151. resume: function (event) {
  152. var jobIds = getSelectedRows();
  153. if (jobIds == null) {
  154. return;
  155. }
  156. confirm('确定要恢复选中的记录?', function () {
  157. $.ajax({
  158. type: "POST",
  159. url: "../sys/schedule/resume",
  160. contentType: "application/json",
  161. data: JSON.stringify(jobIds),
  162. success: function (r) {
  163. if (r.code == 0) {
  164. alert('操作成功', function (index) {
  165. vm.reload();
  166. });
  167. } else {
  168. alert(r.msg);
  169. }
  170. }
  171. });
  172. });
  173. },
  174. runOnce: function (event) {
  175. var jobIds = getSelectedRows();
  176. if (jobIds == null) {
  177. return;
  178. }
  179. confirm('确定要立即执行选中的记录?', function () {
  180. $.ajax({
  181. type: "POST",
  182. url: "../sys/schedule/run",
  183. contentType: "application/json",
  184. data: JSON.stringify(jobIds),
  185. success: function (r) {
  186. if (r.code == 0) {
  187. alert('操作成功', function (index) {
  188. vm.reload();
  189. });
  190. } else {
  191. alert(r.msg);
  192. }
  193. }
  194. });
  195. });
  196. },
  197. reload: function (event) {
  198. vm.showList = true;
  199. var page = $("#jqGrid").jqGrid('getGridParam', 'page');
  200. $("#jqGrid").jqGrid('setGridParam', {
  201. postData: {'methodName': vm.q.methodName},
  202. page: page
  203. }).trigger("reloadGrid");
  204. },
  205. handleSubmit: function (name) {
  206. handleSubmitValidate(this, name, function () {
  207. vm.saveOrUpdate()
  208. });
  209. },
  210. handleReset: function (name) {
  211. handleResetForm(this, name);
  212. }
  213. }
  214. });