boot.js 31 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983
  1. 
  2. __CreateJSPath = function (js) {
  3. var scripts = document.getElementsByTagName("script");
  4. var path = "";
  5. for (var i = 0, l = scripts.length; i < l; i++) {
  6. var src = scripts[i].src;
  7. if (src.indexOf(js) != -1) {
  8. var ss = src.split(js);
  9. path = ss[0];
  10. break;
  11. }
  12. }
  13. var href = location.href;
  14. href = href.split("#")[0];
  15. href = href.split("?")[0];
  16. var ss = href.split("/");
  17. ss.length = ss.length - 1;
  18. href = ss.join("/");
  19. if (path.indexOf("https:") == -1 && path.indexOf("http:") == -1 && path.indexOf("file:") == -1 && path.indexOf("\/") != 0) {
  20. path = href + "/" + path;
  21. }
  22. return path;
  23. }
  24. var bootPATH = __CreateJSPath("boot.js");
  25. //debugger
  26. mini_debugger = false;
  27. //miniui
  28. document.write('<script src="' + bootPATH + 'jquery-1.9.1.min.js" type="text/javascript"></sc' + 'ript>');
  29. document.write('<script src="' + bootPATH + 'miniui/miniui-source.min.js" type="text/javascript" ></sc' + 'ript>');
  30. document.write('<link href="' + bootPATH + 'miniui/themes/default/miniui3.css" rel="stylesheet" type="text/css" />');
  31. document.write('<link href="' + bootPATH + 'miniui/themes/bootstrap/skin.css" rel="stylesheet" type="text/css" />');
  32. document.write('<link href="' + bootPATH + 'miniui/themes/icons.css" rel="stylesheet" type="text/css" />');
  33. document.write('<link href="' + bootPATH + 'miniui/themes/default/large-mode.css?v=0.1" rel="stylesheet" type="text/css" />');
  34. document.write('<link href="' + bootPATH + 'miniui/datepicker/daterangepicker.css?v=0.1" rel="stylesheet" type="text/css" />');
  35. document.write('<script src="' + bootPATH + 'miniui/datepicker/moment.min.js" type="text/javascript" ></sc' + 'ript>');
  36. document.write('<script src="' + bootPATH + 'miniui/datepicker/daterangepicker.js" type="text/javascript" ></sc' + 'ript>');
  37. ////////////////////////////////////////////////////////////////////////////////////////
  38. var timeUrl = GetPrePath() + "handler/servertime.ashx";
  39. var _page_size = 10;
  40. var webCurDate = null;
  41. var w_offset = 0;
  42. function GetCurDate() {
  43. if (webCurDate == null) {
  44. webCurDate = new Date($.ajax({ url: timeUrl, async: false }).getResponseHeader("Date"));
  45. w_offset = webCurDate.getTime();
  46. w_offset -= (new Date).getTime();
  47. }
  48. var d = new Date();
  49. d.setTime(d.getTime() + w_offset);
  50. return d;
  51. }
  52. function getCookie(sName) {
  53. var aCookie = document.cookie.split("; ");
  54. var lastMatch = null;
  55. for (var i = 0; i < aCookie.length; i++) {
  56. var aCrumb = aCookie[i].split("=");
  57. if (sName == aCrumb[0]) {
  58. lastMatch = aCrumb;
  59. }
  60. }
  61. if (lastMatch) {
  62. var v = lastMatch[1];
  63. if (v === undefined) return v;
  64. return unescape(v);
  65. }
  66. return null;
  67. }
  68. //写cookies
  69. function setCookie(name, value) {
  70. delCookie(name);
  71. var Days = 200;
  72. var exp = new Date();
  73. exp.setTime(exp.getTime() + Days * 24 * 60 * 60 * 1000);
  74. document.cookie = name + "=" + escape(value) + ";path=/;expires=" + exp.toGMTString();
  75. }
  76. //写cookies
  77. function setCookies(value) {
  78. delCookie(name);
  79. var Days = 30;
  80. //var exp = new Date();
  81. //exp.setTime(exp.getTime() + Days * 24 * 60 * 60 * 1000);
  82. document.cookie = value + ";path=/;";
  83. }
  84. //读取cookies
  85. //function getCookie(name) {
  86. // var arr, reg = new RegExp("(^| )" + name + "=([^;]*)(;|$)");
  87. // if (arr = document.cookie.match(reg)) return unescape(arr[2]);
  88. // else return null;
  89. //}
  90. function delCookie(name) {
  91. var date = new Date();
  92. date.setTime(date.getTime() - 10000);
  93. document.cookie = name + "=a; expires=" + date.toGMTString() + ";path=/;";
  94. }
  95. var isOut = false;
  96. function loginOut() {
  97. if (isOut) return;
  98. isOut = true;
  99. progressShow("退出中,请稍候...");
  100. $.ajax({
  101. url: "handler/login.ashx?t=loginout",
  102. data: "",
  103. datatype: "json",
  104. success: function (result) {
  105. if (result == "") {
  106. alert("操作发生错误!");
  107. progressHide();
  108. return;
  109. }
  110. window.location = "Login.aspx";
  111. },
  112. error: function (data) {
  113. alert(data);
  114. }
  115. });
  116. return false;
  117. }
  118. var selfHeight = 0;
  119. function setSimpleCnterPosition(el) {
  120. var sH;
  121. if (document.body.scrollTop) {
  122. sH = document.body.scrollTop;
  123. }
  124. else {
  125. sH = document.documentElement.scrollTop;
  126. }
  127. var cW = document.body.clientWidth;
  128. var cH;
  129. cH = document.body.clientHeight;
  130. if (cH == 0) cH = document.body.scrollHeight;
  131. var cH = cH + 10;
  132. if (cH > 700) cH = 700;
  133. var x = (cW - parseInt(el.width())) / 2;
  134. var y = selfHeight + sH + cH / 2 - parseInt(el.height()) / 2;
  135. el.css("left", x + "px");
  136. el.css("top", y + "px");
  137. }
  138. function maskShow() {
  139. if (!$("#maskDiv").length > 0) {
  140. ie6 = /msie 6.0/.test(navigator.userAgent.toLowerCase());
  141. var pos = "fixed";
  142. if (ie6) pos = "absolute";
  143. $("<div>", { id: "maskDiv", "class": "mask", style: 'width:100%;height:100%;position:' + pos }).appendTo("body");
  144. }
  145. $("#maskDiv").show();
  146. }
  147. function maskHide() {
  148. if ($("#maskDiv").length > 0) {
  149. $("#maskDiv").hide();
  150. }
  151. }
  152. //结果显示
  153. function resultShow(rMsg, sFunc) {
  154. maskShow();
  155. if ($("#resultShowDiv").length < 1) {
  156. $("<div>", { id: "resultShowDiv", "class": "resultSuccess" }).appendTo("body");
  157. }
  158. var element = $("#resultShowDiv");
  159. rMsg = rMsg || "成功";
  160. element.html(rMsg);
  161. setSimpleCnterPosition(element);
  162. element.fadeIn(400, function () { setTimeout(function () { element.fadeOut(200, function () { maskHide(); if (sFunc || sFunc != "") eval(sFunc); }); }, 100); });
  163. }
  164. //进度条
  165. function progressShow(rMsg) {
  166. maskShow();
  167. if (!$("#progressShowDiv").length > 0) {
  168. $("<div>", { id: "progressShowDiv", "class": "progress" }).appendTo("body");
  169. }
  170. var element = $("#progressShowDiv");
  171. rMsg = rMsg || "请稍候...";
  172. element.html(rMsg);
  173. setSimpleCnterPosition(element);
  174. element.show();
  175. }
  176. //隐藏进度条
  177. function progressHide() {
  178. if ($("#progressShowDiv").length > 0) {
  179. maskHide();
  180. $("#progressShowDiv").hide();
  181. }
  182. }
  183. //获取当前目录绝对路径
  184. function GetPrePath() {
  185. var path = location.pathname.substring(1);
  186. var tmpArr = path.split('/');
  187. var len = tmpArr.length - 1;
  188. if (len < 1) return "";
  189. var str = "";
  190. for (var i = 0; i < len; i++) {
  191. str += "../";
  192. }
  193. return str;
  194. }
  195. var sync_url = GetPrePath() + "handler/sync.ashx?";
  196. function getAjax(type, queryString, sFn, eFn, hps,msg) {
  197. getUrlAjax(sync_url, type, queryString, sFn, eFn, hps,msg);
  198. }
  199. function getUrlAjax(_url,type, queryString, sFn, eFn, hps,msg) {
  200. if (hps != false) { progressShow(msg); }
  201. $.ajax({
  202. url: _url + "t=" + type,
  203. data: queryString,
  204. datatype: "json",
  205. success: function (result) {
  206. if (result == "") {
  207. alert("无法访问到服务器或系统错误中断,请稍候再试!");
  208. progressHide();
  209. return;
  210. }
  211. var data = $.parseJSON(result);
  212. if (data.type == "login") {
  213. alert("操作己过期,请重新登录");
  214. window.top.location = GetPrePath() + "login.aspx";
  215. return;
  216. } else if (data.type == "success") {
  217. progressHide();
  218. if (data.date != undefined) sFn(data.result, data.date);
  219. else sFn(data.result);
  220. } else {
  221. progressHide();
  222. if (eFn != undefined) eFn(data.result);
  223. else {
  224. if (data.result == undefined) {
  225. alert("系统发生错误了!");
  226. } else {
  227. alert(data.result);
  228. }
  229. }
  230. }
  231. },
  232. error: function (data) {
  233. progressHide();
  234. //alert("系统操作发生错误了!");
  235. }
  236. });
  237. }
  238. function getCheckAjax(type, queryString, sFn, eFn, hps) {
  239. if (hps != false) progressShow();
  240. $.ajax({
  241. url: check_url + "t=" + type,
  242. data: queryString,
  243. datatype: "json",
  244. success: function (result) {
  245. if (result == "") {
  246. alert("无法访问到服务器或系统错误中断,请稍候再试!");
  247. progressHide();
  248. return;
  249. }
  250. var data = $.parseJSON(result);
  251. if (data.type == "login") {
  252. alert("操作己过期,请重新登录");
  253. window.top.location = GetPrePath() + "login.aspx";
  254. return;
  255. } else if (data.type == "success") {
  256. progressHide();
  257. sFn(data.result);
  258. } else {
  259. progressHide();
  260. if (eFn != undefined) eFn();
  261. else alert(data.result);
  262. }
  263. },
  264. error: function (data) {
  265. progressHide();
  266. alert("系统程序错误," + data);
  267. }
  268. });
  269. }
  270. function postAjaxSync(type, queryString, sFn, eFn, hps) {
  271. postUrlAjaxSync(sync_url, type, queryString, sFn, eFn, hps);
  272. }
  273. function postUrlAjaxSync(urlStr, type, queryString, sFn, eFn, hps) {
  274. //if (hps != false) progressShow();
  275. $.ajax({
  276. url: urlStr + "t=" + type,
  277. type: "POST",
  278. data: queryString,
  279. datatype: "json",
  280. success: function (result) {
  281. if (result == "") {
  282. alert("操作发生错误!");
  283. //progressHide();
  284. return;
  285. }
  286. var data = $.parseJSON(result);
  287. if (data.type == "login") {
  288. alert("操作己过期,请重新登录");
  289. window.top.location = GetPrePath() + "login.aspx";
  290. return;
  291. } else if (data.type == "success") {
  292. //progressHide();
  293. sFn(data.result);
  294. } else {
  295. //progressHide();
  296. if (eFn != undefined) eFn(data.result + ",请联系技术人员!");
  297. else alert(data.result + ",请联系技术人员!");
  298. }
  299. },
  300. error: function (data) {
  301. //progressHide();
  302. alert("操作发生错误!");
  303. }
  304. });
  305. }
  306. function postAjax(type, queryString, sFn, eFn, hps) {
  307. postUrlAjax(sync_url, type, queryString, sFn, eFn, hps);
  308. }
  309. function postUrlAjax(urlStr,type, queryString, sFn, eFn, hps) {
  310. if (hps != false) progressShow();
  311. $.ajax({
  312. url: urlStr + "t=" + type,
  313. type: "POST",
  314. data: queryString,
  315. datatype: "json",
  316. success: function (result) {
  317. if (result == "") {
  318. alert("操作发生错误!");
  319. progressHide();
  320. return;
  321. }
  322. var data = $.parseJSON(result);
  323. if (data.type == "login") {
  324. alert("操作己过期,请重新登录");
  325. window.top.location = GetPrePath() + "login.aspx";
  326. return;
  327. } else if (data.type == "success") {
  328. progressHide();
  329. sFn(data.result);
  330. } else {
  331. progressHide();
  332. if (eFn != undefined) eFn(data.result+",请联系技术人员!");
  333. else alert(data.result + ",请联系技术人员!");
  334. }
  335. },
  336. error: function (data) {
  337. progressHide();
  338. alert("操作发生错误!");
  339. }
  340. });
  341. }
  342. function runAjax(type, queryString) {
  343. //progressShow("操作中...");
  344. progressShow();
  345. $.ajax({
  346. url: sync_url + "t=" + type,
  347. data: queryString,
  348. datatype: "json",
  349. success: function (result) {
  350. progressHide();
  351. if (result == "") {
  352. alert("服务器返回错误!");
  353. return;
  354. }
  355. var data = $.parseJSON(result);
  356. if (data.type == "login") {
  357. alert("操作己过期,请重新登录");
  358. window.top.location = GetPrePath() + "login.aspx";
  359. return;
  360. }else if (data.type == "success") {
  361. resultShow(data.result);
  362. if (grid == null) grid = mini.get("m_grid");
  363. if (grid != undefined) grid.reload();
  364. } else {
  365. alert(data.result);
  366. }
  367. },
  368. error: function (data) {
  369. progressHide();
  370. alert("操作发生错误!");
  371. }
  372. });
  373. }
  374. var rlFlag = false;
  375. function openWin(title, url, w, h,fn) {
  376. mini.open({
  377. url: "../"+url,
  378. title: title, width: w, height: h, style: "border:0px",
  379. onload: function () {
  380. //var iframe = this.getIFrameEl();
  381. //var data = { action: "new" };
  382. //iframe.contentWindow.SetData(data);
  383. },
  384. ondestroy: function (action) {
  385. if (fn == undefined) {
  386. if (action == "save") {
  387. var grid = mini.get("m_grid");
  388. if (grid != undefined && grid != "") {
  389. grid.reload();
  390. }
  391. }
  392. } else {
  393. fn(action);
  394. }
  395. }
  396. });
  397. }
  398. function openWaiWin(title, url, w, h, fn) {
  399. mini.open({
  400. url: url,
  401. title: title, width: w, height: h, style: "border:0px",
  402. onload: function () {
  403. //var iframe = this.getIFrameEl();
  404. //var data = { action: "new" };
  405. //iframe.contentWindow.SetData(data);
  406. },
  407. ondestroy: function (action) {
  408. if (fn == undefined) {
  409. if (action == "save") {
  410. var grid = mini.get("m_grid");
  411. if (grid != undefined && grid != "") {
  412. grid.reload();
  413. }
  414. }
  415. } else {
  416. fn(action);
  417. }
  418. }
  419. });
  420. }
  421. function cmdEditFn(url, query) {
  422. var grid = mini.get("m_grid");
  423. var p = grid.pageIndex;
  424. var parm = "";
  425. if ($("#hId").val() != "") parm = "&tId=" + $("#hId").val();
  426. if (p > 1) parm += (parm == "" ? "p=" + p : "&p=" + p);
  427. window.location = url + '?' + query + parm;
  428. }
  429. function cmdDelFn(action, query) {
  430. if (!confirm("确认删除该记录?")) return false;
  431. runAjax(action, query);
  432. }
  433. function comAddFn(url) {
  434. var grid = mini.get("m_grid");
  435. var p = grid.pageIndex;
  436. var parm = "";
  437. var tId = $("#hId").val();
  438. if (tId != "" && tId != "0") parm = "tId=" + tId;
  439. if (p > 1) parm += (parm == "" ? "p=" + p : "&p=" + p);
  440. if (parm != "") window.location = url + "?" + parm;
  441. else window.location = url;
  442. }
  443. function personNameFn(e) {
  444. return e.value == "" ? "管理员" : e.value;
  445. }
  446. function formatNumStyle(e) {
  447. if (e.value == "") return "<b style=\"color:#333\">0</b>";
  448. var m = parseFloat(e.value);
  449. if (m == 0) return "<b style=\"color:#333\">0</b>";
  450. return "<b style=\"color:#333\">"+Math.round(parseFloat(m) * 100) / 100+"</b>";
  451. }
  452. function getDouble2(v) {
  453. var m = parseFloat(v);
  454. if (m == 0) return 0;
  455. return Math.round(parseFloat(m) * 100) / 100;
  456. }
  457. function formatDoubleNullFn(e) {
  458. if (e.value == undefined || e.value == "" || parseFloat(e.value) ==0) return "";
  459. var m = parseFloat(e.value);
  460. return Math.round(parseFloat(m) * 100) / 100;
  461. }
  462. function formatDouble2Fn(e, bb) {
  463. if (e.value==undefined || e.value == "") return 0;
  464. var m = parseFloat(e.value);
  465. if (m == 0) return 0;
  466. return Math.round(parseFloat(m) * 100) / 100;
  467. }
  468. function formatDouble3Fn(e) {
  469. if (e.value == undefined || e.value == "") return 0;
  470. var m = parseFloat(e.value);
  471. if (m == 0) return 0;
  472. return Math.round(parseFloat(m) * 1000) / 1000;
  473. }
  474. function formatDouble3NullFn(e) {
  475. if (e.value == undefined || e.value == "" || e.value == "0") return "";
  476. var m = parseFloat(e.value);
  477. return Math.round(parseFloat(m) * 1000) / 1000;
  478. }
  479. function getCustomCode(tag, id, len) {
  480. len = len | 7;
  481. var tLen = tag.length;
  482. if (tLen > 0) len = len - tLen;
  483. var tmp = id.toString();
  484. var count = len - tmp.length;
  485. if (count > 0) {
  486. var arr = new Array(count + 1);
  487. return tag+arr.join("0") + tmp;
  488. }
  489. return tmp;
  490. }
  491. function contractCodeFn(e) {
  492. return getCustomCode("SY", e.value, 7);
  493. }
  494. function codeFn(e) {
  495. return getCustomCode("",e.value, 7);
  496. }
  497. var actionData = null;
  498. function getGridBtn(icon, name, fn,title) {
  499. title = title || name;
  500. //this.style.margin = '0px'; this.style.backgroundColor = '#D1E5D5'; this.style.border = 'solid 1px #ccc';
  501. str = "<span class=\"op_icon op_" + icon + " op_out\" onmouseover=\"this.className='op_icon op_" + icon + " op_over';\" onmouseout=\"this.className='op_icon op_" + icon + " op_out';\" onclick=\"" + fn + "\" title=\"" + title + "\">" + name + "</span>&nbsp;";
  502. return str;
  503. }
  504. function getGridNoTxtBtn(icon, name, fn, title) {
  505. title = title || name;
  506. str = "&nbsp;<span class=\"op_icon op_" + icon + " op_out\" onmouseover=\"this.className='op_icon op_" + icon + " op_over';\" onmouseout=\"this.className='op_icon op_" + icon + " op_out';\" onclick=\"" + fn + "\" title=\"" + title + "\"></span>&nbsp;";
  507. return str;
  508. }
  509. function getGridNoIcoBtn(icon, name, fn, title) {
  510. title = title || name;
  511. str = "&nbsp;<a href=\"javascript:void(0)\" onclick=\"" + fn + "\" title=\"" + title + "\">"+title+"</a>&nbsp;";
  512. return str;
  513. }
  514. function returnBtn(id,name,html) {
  515. var str = '<div class=\"op_div\"><span class=\"sp_en\">' + name + '</span>';
  516. str += '<div id=\"op_' + id + '\" class=\"op_btn\" style=\"display:none\">' + html + '</div>';
  517. return str;
  518. }
  519. /*selitem*/
  520. function selItemSelected(obj, v) {
  521. for (var i = 0; i < obj.options.length; i++) {
  522. if (obj.options[i].value == v) {
  523. obj.selectedIndex = i;
  524. break;
  525. }
  526. }
  527. }
  528. function getQueryString(key) {
  529. var qstr = window.location.search;
  530. qstr = qstr.replace("?", "");
  531. var qArr = qstr.split('&');
  532. var tmp = "";
  533. for (var i = 0; i < qArr.length; i++) {
  534. if (qArr[i].split('=')[0].toLowerCase() == key.toLowerCase()) {
  535. tmp = qArr[i].substring(qArr[i].indexOf("=") + 1);
  536. return tmp;
  537. }
  538. }
  539. return "";
  540. }
  541. /**
  542. * 时间对象的格式化;
  543. */
  544. function formatTdate(d,f)
  545. {
  546. if (d == undefined || d=="") return "";
  547. if (d instanceof Date) {//如果是日期
  548. if (f != undefined) return d.format(f);
  549. return d;
  550. }
  551. else {
  552. try{
  553. if (d.indexOf("GMT") != -1 || d.indexOf("UTC+") != -1) {
  554. d = new Date(d);
  555. if (f != undefined) return d.format(f);
  556. return d;
  557. }
  558. d = d.replace(/^([^\s]+).*$/, '$1').replace(/[^\d]/g, '-');
  559. var dArr=null, sArr=null, eArr = null;
  560. if (d.indexOf("T")!=-1) {
  561. dArr = d.split('T');
  562. sArr = dArr[0].split('-');
  563. } else if (d.indexOf("/") != -1) {
  564. dArr = d.split(' ');
  565. sArr = dArr[0].split('/');
  566. } else {
  567. dArr = d.split(' ');
  568. sArr = dArr[0].split('-');
  569. }
  570. if (dArr.length > 1) eArr = dArr[1].split(':');
  571. var dt = null;
  572. if (eArr != null) {
  573. var cYear = new Date().getFullYear();
  574. if (sArr.length > 2) {
  575. if (eArr.length > 2) {
  576. dt = new Date(sArr[0], getParseInt(sArr[1]) - 1, sArr[2], eArr[0], eArr[1], eArr[2]);
  577. }
  578. else {
  579. dt = new Date(sArr[0], getParseInt(sArr[1]) - 1, sArr[2], eArr[0], eArr[1]);
  580. }
  581. } else {
  582. if (eArr.length > 2) {
  583. dt = new Date(cYear, getParseInt(sArr[0]) - 1, sArr[1], eArr[0], eArr[1], eArr[2]);
  584. } else {
  585. dt = new Date(cYear, getParseInt(sArr[0]) - 1, sArr[1], eArr[0], eArr[1]);
  586. }
  587. }
  588. }
  589. else {
  590. if (sArr.length > 2) dt = new Date(sArr[0], getParseInt(sArr[1]) - 1, sArr[2]);
  591. else dt = new Date(sArr[0], getParseInt(sArr[1]) - 1);
  592. }
  593. if (f != undefined) return dt.format(f);
  594. return dt;
  595. }catch(e){
  596. return "";
  597. }
  598. }
  599. }
  600. //中国标准时间改成字符串时间
  601. function formatCommonDate(dtime) {
  602. if (dtime == null || dtime == undefined || dtime == "") return "";
  603. var d = new Date(dtime);
  604. return formatTime(d);
  605. }
  606. function formatTime(date) {
  607. var year = date.getFullYear()
  608. var month = date.getMonth() + 1
  609. var day = date.getDate()
  610. var hour = date.getHours()
  611. var minute = date.getMinutes()
  612. var second = date.getSeconds()
  613. return [year, month, day].map(formatNumber).join('/') + ' ' + [hour, minute, second].map(formatNumber).join(':')
  614. }
  615. function formatNumber(n) {
  616. n = n.toString()
  617. return n[1] ? n : '0' + n
  618. }
  619. function getParseInt(v) {
  620. if (v.length > 1) {
  621. if (v.substring(0, 1) == "0") {
  622. return parseFloat(v.substring(1));
  623. }
  624. }
  625. return parseInt(v);
  626. }
  627. function getNextDateByDate(curDate, addDay = 0) {
  628. var date = new Date(curDate);
  629. date.setDate(date.getDate() + addDay); //获取mingtian的日期
  630. var year = date.getFullYear()
  631. var month = date.getMonth() + 1
  632. var day = date.getDate()
  633. return [year, month, day].map(formatNumber).join('/') + " " + date.getHours() + ":" + date.getMinutes() + ":" + date.getSeconds();
  634. }
  635. Date.prototype.format = function (format) {
  636. /*
  637. * eg:format="YYYY-MM-dd hh:mm:ss";
  638. */
  639. var o = {
  640. "Y": this.getYear(), // year
  641. "M+": this.getMonth() + 1, // month
  642. "d+": this.getDate(), // day
  643. "h+": this.getHours(), // hour
  644. "m+": this.getMinutes(), // minute
  645. "s+": this.getSeconds(), // second
  646. "q+": Math.floor((this.getMonth() + 3) / 3), // quarter
  647. "S": this.getMilliseconds() // millisecond
  648. }
  649. if (/(y+)/.test(format)) {
  650. format = format.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
  651. }
  652. //alert(o["h+"]);
  653. for (var k in o) {
  654. if (new RegExp("(" + k + ")").test(format)) {
  655. format = format.replace(RegExp.$1, RegExp.$1.length == 1 ? o[k]
  656. : ("00" + o[k]).substr(("" + o[k]).length));
  657. }
  658. }
  659. return format;
  660. }
  661. function showKB(tObj,istime) {
  662. var _offset = $(tObj).offset();
  663. var _left = _offset.left;
  664. var _right = _offset.right;
  665. var _top = _offset.top + $(tObj).height() +6;
  666. var _it = "";
  667. if (istime != undefined) _it = "id=\"key_time_tb\"";
  668. else _it = "id=\"key_num_tb\"";
  669. var flag = false;
  670. //alert($(".keyboard").find("#time_tb").length);
  671. if (istime != undefined) {
  672. if ($("#key_time_tb").length > 0) { flag = true; }
  673. else $(".keyboard").empty();
  674. } else {
  675. if ($("#key_num_tb").length > 0) flag = true;
  676. else $(".keyboard").empty();
  677. }
  678. if (!flag) {
  679. var str = "<div class=\"keyboard\" tag=\"kb\"><table " + _it + " border=\"0\" tag=\"kb\" cellpadding=\"0\" cellspacing=\"0\">";
  680. var kArr = null;
  681. if (istime == undefined) kArr = ["7", "8", "9", "C", "4", "5", "6", "←", "1", "2", "3", "OK", "0", "."];
  682. else kArr = ["7", "8", "9", "C", "4", "5", "6", "←", "1", "2", "3", "OK", "0", ":", "到"];
  683. for (var i = 0; i < kArr.length; i++) {
  684. if (i % 4 == 0) {
  685. if (i > 0) str += "</tr><tr>";
  686. else str += "<tr>";
  687. }
  688. if (kArr[i] == "OK") str += "<td rowspan=\"2\"><input type=\"button\" tag=\"kb\" class=\"ok\" value=\"" + kArr[i] + "\" /></td>";
  689. else if (kArr[i] == "0" && istime==undefined) str += "<td colspan=\"2\"><input type=\"button\" tag=\"kb\" class=\"zero\" value=\"" + kArr[i] + "\" /></td>";
  690. else str += "<td><input type=\"button\" tag=\"kb\" value=\"" + kArr[i] + "\" /></td>";
  691. }
  692. str += "</table></div>";
  693. $(str).appendTo("body");
  694. $(".keyboard").find("input").bind({
  695. click: function () {
  696. var v = this.value;
  697. var tId = $(".keyboard").attr("target");
  698. var obj = $("#" + tId)[0];
  699. switch (v) {
  700. case "←": {
  701. if (v == "") return;
  702. var tmp = obj.value;
  703. tmp = tmp.substring(0, tmp.length - 1);
  704. obj.value = tmp;
  705. break;
  706. }
  707. case "OK": {
  708. hideKB();
  709. return;
  710. }
  711. case "C": {
  712. obj.value = "";
  713. break;
  714. }
  715. case ".": {
  716. var tmp = obj.value;
  717. if (tmp.indexOf(".") != -1) return;
  718. $(obj).insertContent(v);
  719. //obj.value += v;
  720. break;
  721. }
  722. default: {
  723. $(obj).insertContent(v);
  724. //obj.value += v;
  725. }
  726. }
  727. obj.focus();
  728. }
  729. });
  730. $(document).bind({
  731. click: function (e) {
  732. var targ = null;
  733. if (e.target) targ = e.target;
  734. else targ = e.srcElement;
  735. if (targ.type != "text" && targ.getAttribute("tag") != "kb" && $(".keyboard")[0].style.display != "none") {
  736. hideKB();
  737. }
  738. }
  739. });
  740. }
  741. $(".keyboard").attr("target", tObj.id).css({ left: _left + "px", top: _top + "px", display: 'block' });
  742. }
  743. function hideKB() {
  744. if ($(".keyboard").length > 0) {
  745. $(".keyboard").hide();
  746. }
  747. }
  748. /*提示*/
  749. var tipFlag = null;
  750. function showTipMsg(msg,pn) {
  751. if ($("#tip_win").length < 1) {
  752. var str = "<div class=\"tw_panel\" id=\"tip_win\"><div class=\"tw_border\">";
  753. str += "<div class=\"tw_header\"><div class=\"tw_title\">[提示信息]</div></div>";
  754. str += "<div id=\"tip_win_msg\" class=\"tw_con\"></div>";
  755. str += "</div></div>";
  756. $(str).appendTo("body");
  757. }
  758. if (msg != "") {
  759. if (pn==undefined)playNotify();
  760. $("#tip_win_msg").html(msg + $("#tip_win_msg").html());
  761. }
  762. $("#tip_win").height("190px");
  763. $("#tip_win").show();
  764. var obj = $(".tw_header");
  765. obj.unbind("click");
  766. obj.bind({
  767. click: function () {
  768. switchTipMsg();
  769. }
  770. });
  771. $("#tip_win").animate({ height: "show" }, 800);
  772. }
  773. function switchTipMsg() {
  774. if ($("#tip_win").height() != "27") {
  775. $("#tip_win").height("27px");
  776. } else {
  777. showTipMsg("");
  778. }
  779. }
  780. function hideTipMsg() {
  781. $("#tip_win").height("27px");
  782. }
  783. var _web_alert = window.alert;
  784. window.alert = function (msg) {
  785. if (msg == undefined || msg == null) {
  786. _web_alert(msg);
  787. return;
  788. }
  789. if (msg.toString().indexOf("试用到期") != -1) return;
  790. _web_alert(msg);
  791. }
  792. //月初
  793. function getMonthStartDate(year,month) {
  794. return new Date(year, month, 1);
  795. }
  796. //月末。下月初-1天
  797. function getMonthEndDate(year,month) {
  798. return AddDays(AddMonths(getMonthStartDate(year,month), 1), -1);
  799. }
  800. //日期+天
  801. function AddDays(d, n) {
  802. var t = new Date(d);//复制并操作新对象,避免改动原对象
  803. t.setDate(t.getDate() + n);
  804. return t;
  805. }
  806. function AddMonths(d, n) {
  807. var t = new Date(d);
  808. t.setMonth(t.getMonth() + n);
  809. if (t.getDate() != d.getDate()) { t.setDate(0); }
  810. return t;
  811. }
  812. Date.prototype.addHours = function (h) {
  813. this.setTime(this.getTime() + (h * 60 * 60 * 1000));
  814. return this;
  815. }
  816. function getDiffMinute(dt2) {
  817. var dt = GetCurDate();
  818. return (dt - dt2) / (1000 * 60)
  819. }
  820. function setDateRange(obj) {
  821. var controls = mini.findControls(function (o) {
  822. if (o.otype == 'daterange') return true;
  823. return false;
  824. });
  825. for (var i = 0; i < controls.length;i++) {
  826. var obj = $(controls[i]._textEl);
  827. var hTime = false;
  828. var opt = controls[i]["data-options"];
  829. var op = mini.decode(opt);
  830. if (op.havetime == "1") hTime = true;
  831. obj.daterangepicker({
  832. "singleDatePicker": true,
  833. "showDropdowns": true,
  834. "timePicker": hTime,
  835. "timePicker24Hour": hTime,
  836. "timePickerSeconds": hTime,
  837. "autoApply": true,
  838. "autoUpdateInput": false,
  839. "locale": {
  840. "direction": "ltr",
  841. "format": "YYYY-MM-DD HH:mm:ss",
  842. "separator": " - ",
  843. "applyLabel": "确定",
  844. "cancelLabel": "取消",
  845. "fromLabel": "From",
  846. "toLabel": "To",
  847. "customRangeLabel": "Custom",
  848. "daysOfWeek": [
  849. "日",
  850. "一",
  851. "二",
  852. "三",
  853. "四",
  854. "五",
  855. "六"
  856. ],
  857. "monthNames": [
  858. "一月",
  859. "二月",
  860. "三月",
  861. "四月",
  862. "五月",
  863. "六月",
  864. "七月",
  865. "八月",
  866. "九月",
  867. "十月",
  868. "十一月",
  869. "十二月"
  870. ],
  871. "firstDay": 1
  872. }
  873. }, function (start, end) {
  874. var picker = this;
  875. var elm = $(this.element);
  876. var mid = elm.attr("id");
  877. if (mid != "") mid = mid.substring(0, mid.indexOf("$"));
  878. var fmt = "YYYY-MM-DD HH:mm";
  879. if (!picker.timePicker) fmt = "YYYY-MM-DD";
  880. if (picker.singleDatePicker) {
  881. //elm.val(picker.startDate.format(fmt));
  882. mini.get(mid).setValue(picker.startDate.format(fmt));
  883. } else {
  884. //elm.val(picker.startDate.format(fmt) + ' - ' + picker.endDate.format(fmt));
  885. mini.get(mid).setValue(picker.startDate.format(fmt) + ' - ' + picker.endDate.format(fmt));
  886. }
  887. });
  888. obj.on('apply.daterangepicker', function (ev, picker) {
  889. var mid = $(this).attr("id");
  890. if (mid != "") mid = mid.substring(0, mid.indexOf("$"));
  891. var fmt = "YYYY-MM-DD HH:mm";
  892. if (!picker.timePicker) fmt = "YYYY-MM-DD";
  893. if (picker.singleDatePicker) {
  894. //$(this).val(picker.startDate.format(fmt));
  895. mini.get(mid).setValue(picker.startDate.format(fmt));
  896. } else {
  897. mini.get(mid).setValue(picker.startDate.format(fmt) + ' - ' + picker.endDate.format(fmt));
  898. //$(this).val(picker.startDate.format(fmt) + ' - ' + picker.endDate.format(fmt));
  899. }
  900. });
  901. //$('input[ctrl="daterange"]')
  902. obj.on('cancel.daterangepicker', function (ev, picker) {
  903. $(this).val("");
  904. });
  905. }
  906. }