SchedulerMgr.js 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305
  1. var SchedulerMgr = function() {
  2. var exports = {};
  3. exports.options = {};
  4. exports.options.ItemId = "";
  5. exports.options.ItemName = "";
  6. //任务状态
  7. exports.options.TaskStatusTypes = {
  8. 0: "label label-default",
  9. 1: "label label-info",
  10. 2: "label label-warning",
  11. 3: "label label-danger",
  12. 4: "label label-success"
  13. };
  14. //任务类型
  15. exports.options.JobTypes= {
  16. 0: "label label-success",
  17. 1: "label label-info"
  18. }
  19. //初始化数据
  20. exports.initGridPage = function () {
  21. //初始化
  22. $(window).resize(function (e) {
  23. window.setTimeout(function () {
  24. $('#gridTable').setGridWidth(($('.gridPanel').width()));
  25. $("#gridTable").setGridHeight($.fn.getGridHeight(true));
  26. }, 100);
  27. e.stopPropagation();
  28. });
  29. //查询条件
  30. $("#taskStatusCondition .dropdown-menu li").click(function () {
  31. var text = $(this).find('a').html();
  32. var value = $(this).find('a').attr('data-value');
  33. $("#taskStatusCondition .dropdown-text").html(text).attr('data-value', value);
  34. });
  35. $("#taskTypeCondition .dropdown-menu li").click(function () {
  36. var text = $(this).find('a').html();
  37. var value = $(this).find('a').attr('data-value');
  38. $("#taskTypeCondition .dropdown-text").html(text).attr('data-value', value);
  39. });
  40. //查询回车
  41. $('#txt_Keyword').bind('keypress', function (event) {
  42. if (event.keyCode == "13") {
  43. $('.lr-search').trigger("click");
  44. }
  45. });
  46. //注册事件
  47. $(".titlePanel").on("click", ".lr-replace,.lr-add,.lr-edit,.lr-search,.lr-viewlog,.lr-start,.lr-stop,.lr-delete", function () {
  48. var $this = $(this);
  49. //刷新
  50. if ($this.hasClass('lr-replace')) {
  51. reload();
  52. }
  53. else if ($this.hasClass('lr-search')) {
  54. exports.SearchEvent();
  55. }
  56. else if ($this.hasClass('lr-add')) {
  57. exports.btnAdd();
  58. }
  59. else if ($this.hasClass('lr-edit')) {
  60. exports.btnEdit();
  61. }
  62. else if ($this.hasClass('lr-removelog')) {
  63. exports.btnRemoveLog();
  64. }
  65. else if ($this.hasClass('lr-viewlog')) {
  66. exports.btnViewTaskLog();
  67. }
  68. else if ($this.hasClass('lr-start')) {
  69. exports.btnEnabled();
  70. }
  71. else if ($this.hasClass('lr-stop')) {
  72. exports.btnDiabled();
  73. }
  74. else if ($this.hasClass("lr-delete")) {
  75. exports.btnDelete();
  76. };
  77. });
  78. };
  79. //编辑
  80. exports.btnEdit = function () {
  81. var keyValue = $("#gridTable").jqGridRowValue("Id");
  82. var taskName = $("#gridTable").jqGridRowValue("TaskName");
  83. if (checkedRow(keyValue)) {
  84. $.fn.modalOpen({
  85. id: "jobDetailForm",
  86. title: '编辑【'+taskName+'】任务',
  87. url: '/pages/supermgr/JobDetailForm.html?keyValue=' + keyValue,
  88. width: "750px",
  89. height: "550px",
  90. callBack: function (iframeId) {
  91. top.frames[iframeId].AcceptClick();
  92. }
  93. });
  94. }
  95. }
  96. //添加
  97. exports.btnAdd = function () {
  98. $.fn.modalOpen({
  99. id: "jobDetailForm",
  100. title: '添加任务',
  101. url: '/pages/supermgr/JobDetailForm.html',
  102. width: "750px",
  103. height: "550px",
  104. callBack: function (iframeId) {
  105. top.frames[iframeId].AcceptClick();
  106. }
  107. });
  108. }
  109. //查看任务日志
  110. exports.btnViewTaskLog = function () {
  111. var keyValue = $("#gridTable").jqGridRowValue("Id");
  112. var jobName = $("#gridTable").jqGridRowValue("TaskName");
  113. if (checkedRow(keyValue)) {
  114. $.fn.modalOpen({
  115. id: "Form",
  116. title: '查看【'+jobName+'】任务日志',
  117. url: '/pages/supermgr/ViewJobLog.html?keyValue=' + keyValue,
  118. width: "900px",
  119. height: "650px",
  120. callBack: function (iframeId) {
  121. // top.frames[iframeId].AcceptClick();
  122. }
  123. });
  124. }
  125. }
  126. //加载Grid
  127. exports.loadGrid = function () {
  128. var selectedRowIndex = 0;
  129. exports.options.$gridTable = $("#gridTable");
  130. exports.options.$gridTable.jqGrid({
  131. datatype: "json",
  132. url: "/content/supermgr/json/JobDetailGrid.json",
  133. height: $.fn.getGridHeight(true),
  134. autowidth: true,
  135. colModel: [
  136. { label: "主键", name: "Id", hidden: true },
  137. { label: "任务名称", name: "TaskName", index: "TaskName", width: 100, align: "left" },
  138. { label: "任务分组", name: "TaskGroupName", index: "TaskGroupName", width: 100, align: "center" },
  139. { label: "任务类型", name: "JobTypeName", index: "JobTypeName", width: 70, align: "center" },
  140. {
  141. label: "执行状态", name: "TaskStatusName", index: "TaskStatusName", width: 70, align: "center",
  142. formatter: function (cellvalue, options, rowObject) {
  143. var index = rowObject["TaskStatus"];
  144. var className = exports.options.TaskStatusTypes[index];
  145. return '<span class="label ' + className + '">' + cellvalue + '</span>';
  146. }
  147. },
  148. { label: "执行频率", name: "CronDescriptor", index: "CronDescriptor", width: 200, align: "left" },
  149. { label: "程序集", name: "AssemblyDll", index: "AssemblyDll", width: 150, align: "left" },
  150. { label: "类名", name: "Class", index: "Class", width: 250, align: "center" },
  151. {
  152. label: "最近运行时间", name: "RecentRunTime", index: "RecentRunTime", width: 150, align: "left",
  153. formatter: function (cellvalue, options, rowObject) {
  154. return formatDate(cellvalue, 'yyyy-MM-dd hh:mm:ss');
  155. }
  156. },
  157. {
  158. label: "下次运行时间", name: "LastRunTime", index: "LastRunTime", width: 150, align: "left",
  159. formatter: function (cellvalue, options, rowObject) {
  160. return formatDate(cellvalue, 'yyyy-MM-dd hh:mm:ss');
  161. }
  162. }
  163. ],
  164. pager: "#gridPager",
  165. sortname: 'RecentRunTime',
  166. rowList: [20, 50, 100, 500, 1000],
  167. rowNum: "20",
  168. sortorder: "desc",
  169. rownumbers: true,
  170. onSelectRow: function () {
  171. selectedRowIndex = $("#" + this.id).getGridParam('selrow');
  172. },
  173. gridComplete: function () {
  174. $("#" + this.id).setSelection(selectedRowIndex, false);
  175. }
  176. });
  177. exports.SearchEvent(0);
  178. }
  179. //查询表格函数
  180. exports.SearchEvent=function () {
  181. var queryJson = $("#form1").GetWebControls();
  182. var taskType = $("#taskTypeCondition .dropdown-text").attr('data-value');
  183. var taskStatus = $("#taskStatusCondition .dropdown-text").attr('data-value');
  184. queryJson["TaskType"] = taskType;
  185. queryJson["TaskStatus"] = taskStatus;
  186. $("#gridTable").jqGrid('setGridParam', {
  187. url: "/content/supermgr/json/JobDetailGrid.json",
  188. postData: queryJson,
  189. page: 1
  190. }).trigger('reloadGrid');
  191. }
  192. //验证:项目值、项目名 不能重复
  193. exports.OverrideExistField = function (id, url) {
  194. $.fn.existField(id, url, { itemId: itemId });
  195. }
  196. //删除
  197. exports.btnDelete = function (keyValue) {
  198. if (keyValue == undefined) {
  199. keyValue = $("#gridTable").jqGridRowValue("Id");
  200. }
  201. if (checkedRow(keyValue)) {
  202. $.fn.confirmAjax({
  203. msg: "注:您确定要【删除】该定时任务么?该删除操作会级联删除任务日志,请谨慎操作!",
  204. url: "/SysMgr/SchedulerMgr/DeleteJobStatus",
  205. param: { keyValue: keyValue },
  206. success: function (data) {
  207. $("#gridTable").trigger("reloadGrid");
  208. }
  209. });
  210. }
  211. }
  212. //启用
  213. exports.btnEnabled = function (keyValue) {
  214. if (keyValue == undefined) {
  215. keyValue = $("#gridTable").jqGridRowValue("Id");
  216. }
  217. if (checkedRow(keyValue)) {
  218. $.fn.confirmAjax({
  219. msg: "注:您确定要【启动】该定时任务么?",
  220. url: "/SysMgr/SchedulerMgr/ManageJobStatus",
  221. param: { keyValue: keyValue, jobStatus:1 },
  222. success: function (data) {
  223. $("#gridTable").trigger("reloadGrid");
  224. }
  225. });
  226. }
  227. }
  228. //禁用
  229. exports.btnDiabled = function (keyValue) {
  230. if (keyValue == undefined) {
  231. keyValue = $("#gridTable").jqGridRowValue("Id");
  232. }
  233. if (checkedRow(keyValue)) {
  234. $.fn.confirmAjax({
  235. msg: "注:您确定要【停止】该定时任务么?",
  236. url: "/SysMgr/SchedulerMgr/ManageJobStatus",
  237. param: { keyValue: keyValue, jobStatus: 2 },
  238. success: function (data) {
  239. $("#gridTable").trigger("reloadGrid");
  240. }
  241. });
  242. }
  243. }
  244. //保存表单
  245. exports.AcceptClick = function() {
  246. if (!$('#form1').Validform()) {
  247. return false;
  248. }
  249. var postData = $("#form1").GetWebControls(exports.options.KeyValue);
  250. $.fn.submitForm({
  251. url: "/SysMgr/SchedulerMgr/Save?keyValue=" + exports.options.KeyValue,
  252. param: postData,
  253. loading: "正在保存数据...",
  254. success: function() {
  255. $.currentIframe().$("#gridTable").resetSelection();
  256. $.currentIframe().$("#gridTable").trigger("reloadGrid");
  257. }
  258. });
  259. };
  260. //初始化表单
  261. exports.initFormControl = function (readonly) {
  262. exports.options.KeyValue = $.fn.request("keyValue");
  263. $("#TaskType").ComboBox({
  264. description: "==请选择=="
  265. });
  266. //获取表单
  267. if (!!exports.options.KeyValue) {
  268. $.fn.setForm({
  269. url: "/SysMgr/SchedulerMgr/GetJobDetailEntity",
  270. param: { keyValue: exports.options.KeyValue },
  271. success: function (data) {
  272. $("#form1").SetWebControls(data);
  273. if (readonly) {
  274. // $("#form1").find('.form-control,.ui-select,input,textarea').attr('disabled', 'disabled');
  275. $("#form1").find("#BeginTime,#AssemblyDll,#Class,#TaskType,#CronExpressionString").attr("disabled", 'disabled');
  276. // $("#TaskName,#TaskGroup,#TaskType")
  277. }
  278. }
  279. });
  280. }
  281. }
  282. return exports;
  283. };