utils.js 9.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295
  1. Date.prototype.format = function (format) {
  2. /*
  3. * eg:format="YYYY-MM-dd hh:mm:ss";
  4. */
  5. var o = {
  6. "Y": this.getYear(), // year
  7. "M+": this.getMonth() + 1, // month
  8. "d+": this.getDate(), // day
  9. "h+": this.getHours(), // hour
  10. "m+": this.getMinutes(), // minute
  11. "s+": this.getSeconds(), // second
  12. "q+": Math.floor((this.getMonth() + 3) / 3), // quarter
  13. "S": this.getMilliseconds() // millisecond
  14. }
  15. if (/(y+)/.test(format)) {
  16. format = format.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
  17. }
  18. //alert(o["h+"]);
  19. for (var k in o) {
  20. if (new RegExp("(" + k + ")").test(format)) {
  21. format = format.replace(RegExp.$1, RegExp.$1.length == 1 ? o[k]
  22. : ("00" + o[k]).substr(("" + o[k]).length));
  23. }
  24. }
  25. return format;
  26. }
  27. function formatTdate(d, f) {
  28. if (d == undefined || d == "") return "";
  29. if (d instanceof Date) {//如果是日期
  30. if (f != undefined) return d.format(f);
  31. return d;
  32. }
  33. else {
  34. // try {
  35. if (d.indexOf("GMT") != -1 || d.indexOf("UTC+") != -1) {
  36. d = new Date(d);
  37. if (f != undefined) return d.format(f);
  38. return d;
  39. }
  40. //alert(d);
  41. var dArr = null, sArr = null, eArr = null;
  42. if (d.indexOf("T") != -1) {
  43. dArr = d.split('T');
  44. sArr = dArr[0].split('-');
  45. } else if (d.indexOf("/") != -1) {
  46. dArr = d.split(' ');
  47. sArr = dArr[0].split('/');
  48. } else {
  49. dArr = d.split(' ');
  50. sArr = dArr[0].split('-');
  51. }
  52. if (dArr.length > 1) eArr = dArr[1].split(':');
  53. var dt = null;
  54. if (eArr != null) {
  55. var cYear = new Date().getFullYear();
  56. if (sArr.length > 2) {
  57. if (eArr.length > 2) {
  58. dt = new Date(sArr[0], getParseInt(sArr[1]) - 1, sArr[2], eArr[0], eArr[1], eArr[2]);
  59. }
  60. else {
  61. dt = new Date(sArr[0], getParseInt(sArr[1]) - 1, sArr[2], eArr[0], eArr[1]);
  62. }
  63. } else {
  64. if (eArr.length > 2) {
  65. dt = new Date(cYear, getParseInt(sArr[0]) - 1, sArr[1], eArr[0], eArr[1], eArr[2]);
  66. } else {
  67. dt = new Date(cYear, getParseInt(sArr[0]) - 1, sArr[1], eArr[0], eArr[1]);
  68. }
  69. }
  70. }
  71. else {
  72. if (sArr.length > 2) dt = new Date(sArr[0], getParseInt(sArr[1]) - 1, sArr[2]);
  73. else dt = new Date(sArr[0], getParseInt(sArr[1]) - 1);
  74. }
  75. if (f != undefined) return dt.format(f);
  76. return dt;
  77. //} catch (e) {
  78. // return "";
  79. //}
  80. }
  81. }
  82. function getParseInt(v) {
  83. if (v.length > 1) {
  84. if (v.substring(0, 1) == "0") {
  85. return parseFloat(v.substring(1));
  86. }
  87. }
  88. return parseInt(v);
  89. }
  90. function maskShow() {
  91. if (!$("#maskDiv").length > 0) {
  92. ie6 = /msie 6.0/.test(navigator.userAgent.toLowerCase());
  93. var pos = "fixed";
  94. if (ie6) pos = "absolute";
  95. $("<div>", { id: "maskDiv", "class": "mask", style: 'width:100%;height:100%;position:' + pos }).appendTo("body");
  96. }
  97. $("#maskDiv").show();
  98. }
  99. function maskHide() {
  100. if ($("#maskDiv").length > 0) {
  101. $("#maskDiv").hide();
  102. }
  103. }
  104. var selfHeight = 0;
  105. function setSimpleCnterPosition(el) {
  106. var sH;
  107. if (document.body.scrollTop) {
  108. sH = document.body.scrollTop;
  109. }
  110. else {
  111. sH = document.documentElement.scrollTop;
  112. }
  113. var cW = document.body.clientWidth;
  114. var cH;
  115. cH = document.body.clientHeight;
  116. if (cH == 0) cH = document.body.scrollHeight;
  117. var cH = cH + 10;
  118. if (cH > 700) cH = 700;
  119. var x = (cW - parseInt(el.width())) / 2;
  120. var y = selfHeight + sH + cH / 2 - parseInt(el.height()) / 2;
  121. el.css("left", x + "px");
  122. el.css("top", y + "px");
  123. }
  124. //结果显示
  125. function resultShow(rMsg, sFunc) {
  126. maskShow();
  127. if ($("#resultShowDiv").length < 1) {
  128. $("<div>", { id: "resultShowDiv", "class": "resultSuccess" }).appendTo("body");
  129. }
  130. var element = $("#resultShowDiv");
  131. rMsg = rMsg || "成功";
  132. element.html(rMsg);
  133. setSimpleCnterPosition(element);
  134. element.fadeIn(400, function () { setTimeout(function () { element.fadeOut(200, function () { maskHide(); if (sFunc || sFunc != "") eval(sFunc); }); }, 100); });
  135. }
  136. //进度条
  137. function progressShow(rMsg) {
  138. maskShow();
  139. if (!$("#progressShowDiv").length > 0) {
  140. $("<div>", { id: "progressShowDiv", "class": "progress" }).appendTo("body");
  141. }
  142. var element = $("#progressShowDiv");
  143. rMsg = rMsg || "操作中,请稍候...";
  144. element.html(rMsg);
  145. setSimpleCnterPosition(element);
  146. element.show();
  147. }
  148. //隐藏进度条
  149. function progressHide() {
  150. if ($("#progressShowDiv").length > 0) {
  151. maskHide();
  152. $("#progressShowDiv").hide();
  153. }
  154. }
  155. //获取当前目录绝对路径
  156. function GetPrePath() {
  157. var path = location.pathname.substring(1);
  158. var tmpArr = path.split('/');
  159. var len = tmpArr.length - 1;
  160. if (len < 1) return "";
  161. var str = "";
  162. for (var i = 0; i < len; i++) {
  163. str += "../";
  164. }
  165. return str;
  166. }
  167. var sync_url = GetPrePath() + "handler/sync.ashx?";
  168. var timeUrl = GetPrePath() + "handler/servertime.ashx";
  169. var webCurDate = null;
  170. var w_offset = 0;
  171. function GetCurDate() {
  172. if (webCurDate == null) {
  173. webCurDate = new Date($.ajax({ url: timeUrl, async: false }).getResponseHeader("Date"));
  174. w_offset = webCurDate.getTime();
  175. w_offset -= (new Date).getTime();
  176. }
  177. var d = new Date();
  178. d.setTime(d.getTime() + w_offset);
  179. return d;
  180. }
  181. function getAjax(type, queryString, sFn, eFn, hps, msg) {
  182. getUrlAjax(sync_url, type, queryString, sFn, eFn, hps, msg);
  183. }
  184. function getUrlAjax(_url, type, queryString, sFn, eFn, hps, msg) {
  185. if (hps != false) { progressShow(msg); }
  186. $.ajax({
  187. url: _url + "t=" + type,
  188. data: queryString,
  189. datatype: "json",
  190. success: function (result) {
  191. if (result == "") {
  192. alert("无法访问到服务器或系统错误中断,请稍候再试!");
  193. progressHide();
  194. return;
  195. }
  196. var data = $.parseJSON(result);
  197. if (data.type == "login") {
  198. alert("操作己过期,请重新登录");
  199. window.top.location = GetPrePath() + "login.aspx";
  200. return;
  201. } else if (data.type == "success") {
  202. progressHide();
  203. sFn(data.result);
  204. } else {
  205. progressHide();
  206. if (eFn != undefined) eFn(data.result);
  207. else {
  208. if (data.result == undefined) {
  209. alert("系统发生错误了,请联系技术人员!");
  210. } else {
  211. alert(data.result);
  212. }
  213. }
  214. }
  215. },
  216. error: function (data) {
  217. progressHide();
  218. alert("系统操作发生错误了,请联系技术人员!");
  219. }
  220. });
  221. }
  222. function getCheckAjax(type, queryString, sFn, eFn, hps) {
  223. if (hps != false) progressShow();
  224. $.ajax({
  225. url: check_url + "t=" + type,
  226. data: queryString,
  227. datatype: "json",
  228. success: function (result) {
  229. if (result == "") {
  230. alert("无法访问到服务器或系统错误中断,请稍候再试!");
  231. progressHide();
  232. return;
  233. }
  234. var data = $.parseJSON(result);
  235. if (data.type == "login") {
  236. alert("操作己过期,请重新登录");
  237. window.top.location = GetPrePath() + "login.aspx";
  238. return;
  239. } else if (data.type == "success") {
  240. progressHide();
  241. sFn(data.result);
  242. } else {
  243. progressHide();
  244. if (eFn != undefined) eFn();
  245. else alert(data.result);
  246. }
  247. },
  248. error: function (data) {
  249. progressHide();
  250. alert("系统程序错误," + data);
  251. }
  252. });
  253. }
  254. function postAjax(type, queryString, sFn, eFn, hps) {
  255. postUrlAjax(sync_url, type, queryString, sFn, eFn, hps);
  256. }
  257. function postUrlAjax(urlStr, type, queryString, sFn, eFn, hps) {
  258. if (hps != false) progressShow();
  259. $.ajax({
  260. url: urlStr + "t=" + type,
  261. type: "POST",
  262. data: queryString,
  263. datatype: "json",
  264. success: function (result) {
  265. if (result == "") {
  266. alert("操作发生错误!");
  267. progressHide();
  268. return;
  269. }
  270. var data = $.parseJSON(result);
  271. if (data.type == "login") {
  272. alert("操作己过期,请重新登录");
  273. window.top.location = GetPrePath() + "login.aspx";
  274. return;
  275. } else if (data.type == "success") {
  276. progressHide();
  277. sFn(data.result);
  278. } else {
  279. progressHide();
  280. if (eFn != undefined) eFn(data.result + "请联系技术人员!");
  281. else alert(data.result + "请联系技术人员!");
  282. }
  283. },
  284. error: function (data) {
  285. progressHide();
  286. alert("操作发生错误!");
  287. }
  288. });
  289. }