Common.js 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330
  1. layui.isEmpty = function (arg) {
  2. if (arg != null && arg != undefined && arg != "" && arg != "undefined" && arg != "null") {
  3. return false;
  4. }
  5. return true;
  6. }
  7. layui.translater = function (key) {
  8. var lan = localStorage.getItem(localStorage.getItem("CurrentLan"));
  9. var lanJson = JSON.parse(lan);
  10. var filterData = lanJson.filter(function (f) { return f.Key == key; });
  11. if (filterData.length > 0) {
  12. return filterData[0].Content;
  13. }
  14. return key;
  15. }
  16. layui.initLanguage = function () {
  17. layui.$.ajaxSettings.async = false;
  18. if (localStorage.getItem("Chinese") == null) {
  19. layui.$.getJSON("/layuiadmin/language/Chinese.json", function (data) {
  20. localStorage.setItem("Chinese", JSON.stringify(data));
  21. });
  22. }
  23. if (localStorage.getItem("English") == null) {
  24. layui.$.getJSON("/layuiadmin/language/English.json", function (data) {
  25. localStorage.setItem("English", JSON.stringify(data));
  26. });
  27. }
  28. if (localStorage.getItem("CurrentLan") == null) {
  29. localStorage.setItem("CurrentLan", "English");
  30. }
  31. localStorage.setItem("LanGetDate", new Date())
  32. layui.setCookie("lang", localStorage.getItem("CurrentLan"));
  33. layui.$.ajaxSettings.async = true;
  34. }
  35. layui.getCurrentLan = function () {
  36. return localStorage.getItem("CurrentLan");
  37. }
  38. layui.setCurrentLan = function (language) {
  39. localStorage.setItem("CurrentLan", language);
  40. layui.setCookie("lang", localStorage.getItem("CurrentLan"));
  41. }
  42. layui.clearLanguage = function () {
  43. localStorage.removeItem("Chinese");
  44. localStorage.removeItem("English");
  45. localStorage.removeItem("LanGetDate");
  46. }
  47. layui.showTPLbyScript = function (ui, tpl, data, callback) {
  48. var $ = layui.jquery;
  49. var laytpl = layui.laytpl;
  50. var element = layui.element;
  51. var form = layui.form;
  52. if (!layui.isEmpty(tpl)) {
  53. var getTpl = tpl, view = $(ui);
  54. laytpl(getTpl).render(data, function (html) {
  55. view.html(html);
  56. element.render();
  57. form.render();
  58. if (callback) {
  59. callback();
  60. }
  61. });
  62. }
  63. }
  64. layui.showTPL = function(ui, url, data, callback) {
  65. var $ = layui.jquery;
  66. var laytpl = layui.laytpl;
  67. var element = layui.element;
  68. var form = layui.form;
  69. $.get(url, function (tpl) {
  70. if (!layui.isEmpty(tpl)) {
  71. var getTpl = tpl, view = $(ui);
  72. laytpl(getTpl).render(data, function (html) {
  73. view.html(html);
  74. element.render();
  75. form.render();
  76. if (callback) {
  77. callback();
  78. }
  79. });
  80. }
  81. });
  82. }
  83. layui.showTable = function (ui, toolbarId, url, cols, response, parseData, toolfuns, donefun) {
  84. var guid = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {
  85. var r = Math.random() * 16 | 0, v = c == 'x' ? r : (r & 0x3 | 0x8);
  86. return v.toString(16);
  87. });
  88. var table = layui.table;
  89. var $ = layui.jquery;
  90. $(ui).append("<table id='" + guid + "' lay-filter='" + guid + "'></table>");
  91. table.render({
  92. elem: "#" + guid,
  93. url: url, //数据接口
  94. toolbar: toolbarId,
  95. defaultToolbar: [],
  96. page: { //支持传入 laypage 组件的所有参数(某些参数除外,如:jump/elem) - 详见文档
  97. //layout: ['limit', 'count', 'prev', 'page', 'next', 'skip'] //自定义分页布局
  98. curr: 1 //设定初始在第 1 页
  99. , groups: 5 //只显示 1 个连续页码
  100. , first: false //不显示首页
  101. , last: false //不显示尾页, //开启分页
  102. , limit: (response != null && response.limit != null) ? response.limit : 17
  103. },
  104. cols: cols,
  105. id: guid,
  106. response: response != null ? response : { statusCode: 200 },
  107. parseData: parseData != null ? parseData : (res) => {
  108. return {
  109. "code": res.code,
  110. "msg": res.msg,
  111. "count": res.count,
  112. "data": res.data
  113. }
  114. },
  115. done: function (res, curr, count) {
  116. $('.layui-table-tool').css({ 'background-color': '#EDEDED' });
  117. $('.layui-table>thead').css({ 'background-color': '#EDEDED' });
  118. if (donefun) {
  119. donefun(res, curr, count);
  120. }
  121. var coutnText = $('.layui-laypage-count').text();
  122. if (localStorage.getItem("CurrentLan") != "Chinese") {
  123. $('.layui-laypage-count').text(coutnText.replace("共", "Count:").replace("条", ""));
  124. }
  125. $(".layui-table-cell").find(".layui-form-checkbox").removeClass("layui-unselect")
  126. }
  127. });
  128. table.on('tool(' + guid + ')', function (obj) {
  129. var arg = obj.data; //获得当前行数据
  130. var layEvent = obj.event; //获得 lay-event 对应的值(也可以是表头的 event 参数对应的值)
  131. toolfuns.toolfun(layEvent, arg);
  132. });
  133. table.on('toolbar(' + guid + ')', function (obj) {
  134. var checkStatus = table.checkStatus(obj.config.id);
  135. var arg = checkStatus.data; //获得当前行数据
  136. var layEvent = obj.event; //获得 lay-event 对应的值(也可以是表头的 event 参数对应的值)
  137. toolfuns.toolbarfun(layEvent, arg);
  138. });
  139. return guid;
  140. }
  141. layui.doPost = function (url, data, success, complete, error, contentType) {
  142. if (layui.isEmpty(contentType)) {
  143. contentType = "application/x-www-form-urlencoded";
  144. }
  145. if (contentType == "multipart/form-data") {
  146. layui.$.ajax({
  147. type: "POST",
  148. url: url,
  149. data: data,
  150. cache: false,
  151. processData: false,
  152. contentType: false,
  153. success: function (res) {
  154. success ? success(res) : "";
  155. },
  156. complete: function (xhr, ts) {
  157. var redirectUrl = xhr.getResponseHeader("RedirectLocation");
  158. if (redirectUrl && xhr.status == 401) {
  159. window.top.location = redirectUrl;
  160. } else {
  161. complete ? complete(xhr, ts) : "";
  162. }
  163. },
  164. error: function (xhr, err, errthrowed) {
  165. error ? error(xhr, err, errthrowed) : "";
  166. }
  167. });
  168. } else {
  169. layui.$.ajax({
  170. type: "POST",
  171. url: url,
  172. data: data,
  173. contentType: contentType,
  174. dataType: "json",
  175. success: function (res) {
  176. success ? success(res) : "";
  177. },
  178. complete: function (xhr, ts) {
  179. var redirectUrl = xhr.getResponseHeader("RedirectLocation");
  180. if (redirectUrl && xhr.status == 401) {
  181. window.top.location = redirectUrl;
  182. } else {
  183. complete ? complete(xhr, ts) : "";
  184. }
  185. },
  186. error: function (xhr, err, errthrowed) {
  187. error ? error(xhr, err, errthrowed) : "";
  188. }
  189. });
  190. }
  191. }
  192. layui.doGet = function (url, data, callback, complete, error) {
  193. layui.$.ajax({
  194. type: "GET",
  195. url: url,
  196. data: data,
  197. dataType: "json",
  198. success: function (res) {
  199. callback ? callback(res) : "";
  200. },
  201. complete: function (xhr, ts) {
  202. var redirectUrl = xhr.getResponseHeader("RedirectLocation");
  203. if (redirectUrl && xhr.status == 401) {
  204. window.top.location = redirectUrl;
  205. } else {
  206. complete ? complete(xhr, ts) : "";
  207. }
  208. },
  209. error: function (xhr, err, errthrowed) {
  210. error ? error(xhr, err, errthrowed) : "";
  211. }
  212. });
  213. }
  214. layui.getParams = function () {
  215. var url = location.search;
  216. var theRequest = new Object();
  217. if (url.indexOf("?") != -1) {
  218. var str = url.substr(1);
  219. strs = str.split("&");
  220. for (var i = 0; i < strs.length; i++) {
  221. theRequest[strs[i].split("=")[0]] = (strs[i].split("=")[1]);
  222. }
  223. }
  224. return theRequest;
  225. }
  226. layui.formOnSubmit = function (filter, back) {
  227. layui.form.on('submit(' + filter + ')', function (data) {
  228. back(data);
  229. });
  230. }
  231. layui.formOnSwitch = function (filter, back) {
  232. layui.form.on('switch(' + filter + ')', back);
  233. }
  234. layui.formOnSelect = function (filter, back) {
  235. layui.form.on('select(' + filter + ')', back);
  236. }
  237. layui.formOnCheck = function (filter, back) {
  238. layui.form.on('checkbox(' + filter + ')', back);
  239. }
  240. layui.formOnClick = function (filter, type, back) {
  241. layui.form.on(type + '(' + filter + ')', back);
  242. }
  243. layui.elementOn = function (id, action, back) {
  244. layui.$(document).on(action, id, back);
  245. }
  246. layui.tableReload = function (id, page, where) {
  247. layui.table.reload(id, page, where);
  248. }
  249. //语言文件读取
  250. layui.translater = function (key) {
  251. var lan = localStorage.getItem(localStorage.getItem("CurrentLan"));
  252. var lanJson = JSON.parse(lan);
  253. var filterData = lanJson.filter(function (f) { return f.Key == key; });
  254. if (filterData.length > 0) {
  255. return filterData[0].Content;
  256. }
  257. return key;
  258. }
  259. layui.initLanguage = function () {
  260. layui.$.ajaxSettings.async = false;
  261. if (localStorage.getItem("Chinese") == null) {
  262. layui.$.getJSON("/Language/Chinese.json", function (data) {
  263. localStorage.setItem("Chinese", JSON.stringify(data));
  264. });
  265. }
  266. if (localStorage.getItem("English") == null) {
  267. layui.$.getJSON("/Language/English.json", function (data) {
  268. localStorage.setItem("English", JSON.stringify(data));
  269. });
  270. }
  271. if (localStorage.getItem("CurrentLan") == null) {
  272. localStorage.setItem("CurrentLan", "English");
  273. }
  274. localStorage.setItem("LanGetDate", new Date())
  275. layui.setCookie("lang", localStorage.getItem("CurrentLan"));
  276. layui.$.ajaxSettings.async = true;
  277. }
  278. layui.setCookie = function (name, value) {
  279. var Days = 30;
  280. var exp = new Date();
  281. exp.setTime(exp.getTime() + Days * 24 * 60 * 60 * 1000);
  282. document.cookie = name + "=" + escape(value) + ";path=/;expires=" + exp.toGMTString();
  283. }
  284. layui.getCookie = function (name) {
  285. var arr, reg = new RegExp("(^| )" + name + "=([^;]*)(;|$)");
  286. if (arr = document.cookie.match(reg))
  287. return unescape(arr[2]);
  288. else
  289. return null;
  290. }
  291. layui.delCookie = function (name) {
  292. var exp = new Date();
  293. exp.setTime(exp.getTime() - 1);
  294. var cval = getCookie(name);
  295. if (cval != null)
  296. document.cookie = name + "=" + cval + ";expires=" + exp.toGMTString();
  297. }
  298. layui.initLanguage();
  299. layui.passVerify = "";
  300. layui.form.verify({
  301. name: function (value, item) { //value:表单的值、item:表单的DOM对象
  302. if (!new RegExp("^[a-zA-Z0-9. _\u4e00-\u9fa5]+$").test(value)) {
  303. return layui.translater('NoSpecialChar');
  304. }
  305. if (/(^\_)|(\__)|(\_+$)/.test(value)) {
  306. return layui.translater('TrimUnderlined');
  307. }
  308. }
  309. , inputMaxLen: function (value) {
  310. if (value.length > 50) {
  311. return layui.translater("MaxLen50")
  312. }
  313. }
  314. , pass: [
  315. /^[\S]{6,12}$/
  316. , layui.translater("PasswordEntry")
  317. ]
  318. , passOrEmpty: [
  319. /^([\S]{6,12}|)$/
  320. , layui.translater("PasswordEntry")
  321. ]
  322. , passValue: function (value, item) {
  323. if (value != layui.passVerify) {
  324. return layui.translater("WrongPassword");
  325. }
  326. }
  327. });