Utils.js 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376
  1. function getData() {
  2. var rows = [];
  3. for (var i = 1; i <= 800; i++) {
  4. var amount = Math.floor(Math.random() * 1000);
  5. var price = Math.floor(Math.random() * 1000);
  6. rows.push({
  7. inv: 'Inv No ' + i,
  8. date: $.fn.datebox.defaults.formatter(new Date()),
  9. name: 'Name ' + i,
  10. amount: amount,
  11. price: price,
  12. cost: amount * price,
  13. note: 'Note ' + i
  14. });
  15. }
  16. return rows;
  17. }
  18. function pagerFilter(data) {
  19. console.log("222,", data);
  20. if (typeof data.length == 'number' && typeof data.splice == 'function') { // is array
  21. data = {
  22. total: data.length,
  23. rows: data
  24. }
  25. }
  26. var dg = $(this);
  27. var opts = dg.datagrid('options');
  28. var pager = dg.datagrid('getPager');
  29. pager.pagination({
  30. onSelectPage: function (pageNum, pageSize) {
  31. opts.pageNumber = pageNum;
  32. opts.pageSize = pageSize;
  33. pager.pagination('refresh', {
  34. pageNumber: pageNum,
  35. pageSize: pageSize
  36. });
  37. dg.datagrid('loadData', data);
  38. }
  39. });
  40. if (!data.originalRows) {
  41. data.originalRows = (data.rows);
  42. }
  43. var start = (opts.pageNumber - 1) * parseInt(opts.pageSize);
  44. var end = start + parseInt(opts.pageSize);
  45. if (data.originalRows) {
  46. data.rows = (data.originalRows.slice(start, end));
  47. } else {
  48. data.rows = [];
  49. }
  50. return data;
  51. }
  52. function FilterAjaxResponse(data) {
  53. var lcResult = "";
  54. var msg = data.responseJSON;
  55. if (msg != null && msg.Success === "false") {
  56. var state = msg.State;
  57. if (state === "0"||state === "1") {
  58. lcResult = "true";
  59. }
  60. }
  61. return lcResult;
  62. }
  63. /**
  64. * 设置未来(全局)的AJAX请求默认选项
  65. * 主要设置了AJAX请求遇到Session过期的情况
  66. */
  67. $.ajaxSetup({
  68. //type: 'POST',
  69. //contentType: "application/x-www-form-urlencoded;charset=utf-8",
  70. //dataType:"json",
  71. complete: function (data) {
  72. //console.log("111111,",data);
  73. var msg = data.responseText;
  74. if (msg === "Oper_TimeOut") {
  75. var top = getTopWinow();
  76. top.location.href = "/Login/index?timeout=true";
  77. }
  78. }
  79. });
  80. function BeforeSend(idStr) {
  81. idStr = idStr || "#form";
  82. var lbRetval = true;
  83. var form = $(idStr);
  84. if (form[0] != null) {
  85. form.validate({
  86. errorPlacement: function (error, element) {
  87. $(".onfocus").removeClass("onfocus");
  88. $("#err_hid").remove();
  89. element.addClass("onfocus");
  90. $("body").append("<p id=\"err_hid\" style=\"display:none\">" + element.prev().text() + error.text() + "!</p>");
  91. }
  92. });
  93. lbRetval= form.valid();
  94. }
  95. if (!lbRetval) {
  96. var msg = $("#err_hid").html();
  97. $("#err_hid").remove();
  98. layer.alert(msg, { icon: 5, title: '验证提示' }, function (index) {
  99. $(".onfocus").focus().removeClass("onfocus");
  100. layer.close(index);
  101. });
  102. }
  103. return lbRetval;
  104. }
  105. function CheckAajxData(data) {
  106. var msg, success, state;
  107. console.log(111,data);
  108. if (typeof data == 'string') {
  109. try {
  110. msg = JSON.parse(data);
  111. // console.log(msg);
  112. } catch(e) {
  113. msg = data;
  114. }
  115. } else {
  116. msg = data;
  117. }
  118. if (msg == null) {
  119. layer.alert("未知错误!", { icon: 7, title: '信息提示' });
  120. return false;
  121. } else {
  122. try {
  123. state = msg.State; success = msg.Success;
  124. } catch (e) {
  125. layer.alert("未知错误!", { icon: 7, title: '信息提示' });
  126. return false;
  127. }
  128. }
  129. if (state!==0&&success === false) {
  130. if (state === 2) {
  131. var top = getTopWinow();
  132. top.location.href = msg.ErrorInfo + "?timeout=true";
  133. return false;
  134. } else if (state === 1) {
  135. layer.alert(msg.ErrorInfo, { icon: 7, title: '信息提示' });
  136. return false;
  137. } else {
  138. return true;
  139. }
  140. }
  141. return true;
  142. }
  143. /**
  144. * 在页面中任何嵌套层次的窗口中获取顶层窗口
  145. * @return 当前页面的顶层窗口对象
  146. */
  147. function getTopWinow() {
  148. var p = window;
  149. while (p !== p.parent) {
  150. p = p.parent;
  151. }
  152. return p;
  153. }
  154. function MyBrowser() {
  155. var userAgent = navigator.userAgent; //取得浏览器的userAgent字符串
  156. if (userAgent.indexOf("Opera") > -1) {
  157. return "Opera";
  158. }; //判断是否Opera浏览器
  159. if (userAgent.indexOf("Firefox") > -1) {
  160. return "FF";
  161. } //判断是否Firefox浏览器
  162. if (userAgent.indexOf("Chrome") > -1) {
  163. return "Chrome";
  164. }
  165. if (userAgent.indexOf("Safari") > -1) {
  166. return "Safari";
  167. } //判断是否Safari浏览器
  168. if (userAgent.indexOf("compatible") > -1 && userAgent.indexOf("MSIE") > -1 && !isOpera) {
  169. return "IE";
  170. }; //判断是否IE浏览器
  171. return "";
  172. }
  173. function FileDownload(idStr) {
  174. var url = $(idStr).attr("href");
  175. if (url === "") {
  176. layer.alert('当前没有附件可以下载查看!', { title: '提示信息' });
  177. return false;
  178. } else {
  179. var mb = MyBrowser();
  180. if ("FF" === mb||"Chrome" === mb) {
  181. return true;
  182. }else {
  183. window.win = open(url);
  184. setTimeout('win.document.execCommand("SaveAs")', 500);
  185. return false;
  186. }
  187. }
  188. }
  189. //以下是调用上面的函数
  190. //var mb = MyBrowser();
  191. //if ("IE" === mb) {
  192. // alert("我是 IE");
  193. //}
  194. //if ("FF" === mb) {
  195. // alert("我是 Firefox");
  196. //}
  197. //if ("Chrome" === mb) {
  198. // alert("我是 Chrome");
  199. //}
  200. //if ("Opera" === mb) {
  201. // alert("我是 Opera");
  202. //}
  203. //if ("Safari" === mb) {
  204. // alert("我是 Safari");
  205. //}
  206. //获取当前时间
  207. function GetNowFormatDate(time) {
  208. time = time || false;
  209. var currentdate;
  210. var seperator1 = "-";
  211. var seperator2 = ":";
  212. var date = new Date();
  213. var month = date.getMonth() + 1;
  214. var strDate = date.getDate();
  215. if (month >= 1 && month <= 9) {
  216. month = "0" + month;
  217. }
  218. if (strDate >= 0 && strDate <= 9) {
  219. strDate = "0" + strDate;
  220. }
  221. if (time) {
  222. currentdate = date.getFullYear() +
  223. seperator1 +
  224. month +
  225. seperator1 +
  226. strDate +
  227. " " +
  228. date.getHours() +
  229. seperator2 +
  230. date.getMinutes() +
  231. seperator2 +
  232. date.getSeconds();
  233. } else {
  234. currentdate = date.getFullYear() +
  235. seperator1 +
  236. month +
  237. seperator1 +
  238. strDate;
  239. }
  240. return currentdate;
  241. }
  242. //select根据Text值动态选中
  243. function SelectByText(idstr, text) {
  244. var count = $(idstr + " option").length;
  245. for (var i = 0; i < count; i++) {
  246. if ($(idstr).get(0).options[i].text === text) {
  247. $(idstr).get(0).options[i].selected = true;
  248. break;
  249. }
  250. }
  251. }
  252. //清空文件域
  253. function ClearFile(idStr) {
  254. var file = $(idStr);
  255. file.after(file.clone().val(""));
  256. file.remove();
  257. }
  258. //检查文件
  259. function FileInputCheck(that, idStr, isImage, maxSize, callback, checkFileType) {
  260. if (CheckFileMaxSize($(that).attr("id"), maxSize)) {
  261. //var filePath = $(that).val();
  262. var fileName = $(that).val().split("\\").pop();
  263. //$(that).closest('.upload').addClass("file-success").find(".showFileName").html(fileName);
  264. //$(that).closest('.custom-file ').addClass("file-success").find("label").text(fileName);
  265. var file = document.getElementById($(that).attr("id")).files[0];
  266. if (checkFileType && typeof (checkFileType) === "function") {
  267. checkFileType(fileName);
  268. }
  269. if (idStr) {
  270. ReadFile(file, idStr, isImage, checkFileType);
  271. }
  272. if (callback && typeof (callback) === "function") {
  273. callback(fileName, file);
  274. }
  275. } else {
  276. // $(that).closest('.upload').addClass("file-error");
  277. $(that).closest('.custom-file ').addClass("file-error");
  278. }
  279. }
  280. function ReadFile(file, idStr, isImage) {
  281. //判断是否是图片类型
  282. //console.log(file.type);
  283. if (isImage && !/image\/\w+/.test(file.type)) {
  284. //abp.message.warn("只能选择图片");
  285. return false;
  286. }
  287. var reader = new FileReader();
  288. reader.readAsDataURL(file);
  289. reader.onload = function (e) {
  290. //txshow.src = this.result;
  291. //console.log(this.result);
  292. $("#" + idStr).val(this.result.substring(this.result.indexOf(',') + 1));
  293. };
  294. }
  295. //清空文件域
  296. function ClearFile2(idStr) {
  297. var file = $("#" + idStr);
  298. file.closest('.upload').removeClass("file-success").removeClass("file-error").find(".showFileName").html("");
  299. file.after(file.clone().val(""));
  300. file.remove();
  301. }
  302. //检查文件大小
  303. function CheckFileMaxSize(idStr, maxSize) {
  304. maxSize = maxSize || 2;
  305. var maxsize = maxSize * 1024 * 1024;
  306. var errMsg = "上传的附件文件不能超过" + maxSize + "M。";
  307. var tipMsg = "您的浏览器暂不支持计算上传文件的大小,确保上传文件不要超过2M,建议使用IE、FireFox、Chrome浏览器。";
  308. var browserCfg = {};
  309. var ua = window.navigator.userAgent;
  310. if (ua.indexOf("MSIE") >= 1) {
  311. browserCfg.ie = true;
  312. } else if (ua.indexOf("Firefox") >= 1) {
  313. browserCfg.firefox = true;
  314. } else if (ua.indexOf("Chrome") >= 1) {
  315. browserCfg.chrome = true;
  316. }
  317. try {
  318. var objFile = document.getElementById(idStr);
  319. if (objFile.value === "") {
  320. //layer.alert("请先选择上传文件", { icon: 7, title: "提示信息" });
  321. return false;
  322. }
  323. var filesize;
  324. if (browserCfg.firefox || browserCfg.chrome) {
  325. filesize = objFile.files[0].size;
  326. } else if (browserCfg.ie) {
  327. var objImg = document.createElement("img");
  328. objImg.id = "tempImg";
  329. objImg.style.display = "none";
  330. document.body.appendChild(objImg);
  331. objImg.dynsrc = objFile.value;
  332. filesize = objImg.fileSize;
  333. } else {
  334. ClearFile2(idStr);
  335. //abp.message.warn(tipMsg);
  336. return false;
  337. }
  338. if (filesize === -1) {
  339. ClearFile2(idStr);
  340. //abp.message.warn(tipMsg);
  341. return false;
  342. } else if (filesize > maxsize) {
  343. ClearFile2(idStr);
  344. //abp.message.warn(errMsg);
  345. return false;
  346. } else {
  347. return true;
  348. }
  349. } catch (e) {
  350. ClearFile2(idStr);
  351. //abp.message.error(e);
  352. }
  353. }