element.js 9.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273
  1. /** layui-v2.5.5 MIT License By https://www.layui.com */
  2. ;
  3. layui.define("jquery", function (t) {
  4. "use strict";
  5. var a = layui.$,
  6. i = (layui.hint(), layui.device()),
  7. e = "element",
  8. l = "layui-this",
  9. n = "layui-show",
  10. s = function () {
  11. this.config = {}
  12. };
  13. s.prototype.set = function (t) {
  14. var i = this;
  15. return a.extend(!0, i.config, t), i
  16. }, s.prototype.on = function (t, a) {
  17. return layui.onevent.call(this, e, t, a)
  18. }, s.prototype.tabAdd = function (t, i) {
  19. var e = ".layui-tab-title",
  20. l = a(".layui-tab[lay-filter=" + t + "]"),
  21. n = l.children(e),
  22. s = n.children(".layui-tab-bar"),
  23. o = l.children(".layui-tab-content"),
  24. r = '<li lay-id="' + (i.id || "") + '"' + (i.attr ? ' lay-attr="' + i.attr + '"' : "") + ">" + (i.title ||
  25. "unnaming") + "</li>";
  26. return s[0] ? s.before(r) : n.append(r), o.append('<div class="layui-tab-item">' + (i.content || "") + "</div>"),
  27. f.hideTabMore(!0), f.tabAuto(), this
  28. }, s.prototype.tabDelete = function (t, i) {
  29. var e = ".layui-tab-title",
  30. l = a(".layui-tab[lay-filter=" + t + "]"),
  31. n = l.children(e),
  32. s = n.find('>li[lay-id="' + i + '"]');
  33. return f.tabDelete(null, s), this
  34. }, s.prototype.tabChange = function (t, i) {
  35. var e = ".layui-tab-title",
  36. l = a(".layui-tab[lay-filter=" + t + "]"),
  37. n = l.children(e),
  38. s = n.find('>li[lay-id="' + i + '"]');
  39. return f.tabClick.call(s[0], null, null, s), this
  40. }, s.prototype.tab = function (t) {
  41. t = t || {}, b.on("click", t.headerElem, function (i) {
  42. var e = a(this).index();
  43. f.tabClick.call(this, i, e, null, t)
  44. })
  45. }, s.prototype.progress = function (t, i) {
  46. var e = "layui-progress",
  47. l = a("." + e + "[lay-filter=" + t + "]"),
  48. n = l.find("." + e + "-bar"),
  49. s = n.find("." + e + "-text");
  50. return n.css("width", i), s.text(i), this
  51. };
  52. var o = ".layui-nav",
  53. r = "layui-nav-item",
  54. c = "layui-nav-bar",
  55. u = "layui-nav-tree",
  56. d = "layui-nav-child",
  57. y = "layui-nav-more",
  58. h = "layui-anim layui-anim-upbit",
  59. f = {
  60. tabClick: function (t, i, s, o) {
  61. o = o || {};
  62. var r = s || a(this),
  63. i = i || r.parent().children("li").index(r),
  64. c = o.headerElem ? r.parent() : r.parents(".layui-tab").eq(0),
  65. u = o.bodyElem ? a(o.bodyElem) : c.children(".layui-tab-content").children(".layui-tab-item"),
  66. d = r.find("a"),
  67. y = c.attr("lay-filter");
  68. "javascript:;" !== d.attr("href") && "_blank" === d.attr("target") || (r.addClass(l).siblings().removeClass(l),
  69. u.eq(i).addClass(n).siblings().removeClass(n)), layui.event.call(this, e, "tab(" + y + ")", {
  70. elem: c,
  71. index: i
  72. })
  73. },
  74. tabDelete: function (t, i) {
  75. var n = i || a(this).parent(),
  76. s = n.index(),
  77. o = n.parents(".layui-tab").eq(0),
  78. r = o.children(".layui-tab-content").children(".layui-tab-item"),
  79. c = o.attr("lay-filter");
  80. n.hasClass(l) && (n.next()[0] ? f.tabClick.call(n.next()[0], null, s + 1) : n.prev()[0] && f.tabClick.call(n.prev()[
  81. 0], null, s - 1)), n.remove(), r.eq(s).remove(), setTimeout(function () {
  82. f.tabAuto()
  83. }, 50), layui.event.call(this, e, "tabDelete(" + c + ")", {
  84. elem: o,
  85. index: s
  86. })
  87. },
  88. tabAuto: function () {
  89. var t = "layui-tab-more",
  90. e = "layui-tab-bar",
  91. l = "layui-tab-close",
  92. n = this;
  93. a(".layui-tab").each(function () {
  94. var s = a(this),
  95. o = s.children(".layui-tab-title"),
  96. r = (s.children(".layui-tab-content").children(".layui-tab-item"), 'lay-stope="tabmore"'),
  97. c = a('<span class="layui-unselect layui-tab-bar" ' + r + "><i " + r +
  98. ' class="layui-icon">&#xe61a;</i></span>');
  99. if (n === window && 8 != i.ie && f.hideTabMore(!0), s.attr("lay-allowClose") && o.find("li").each(function () {
  100. var t = a(this);
  101. if (!t.find("." + l)[0]) {
  102. var i = a('<i class="layui-icon layui-unselect ' + l + '">&#x1006;</i>');
  103. i.on("click", f.tabDelete), t.append(i)
  104. }
  105. }), "string" != typeof s.attr("lay-unauto"))
  106. if (o.prop("scrollWidth") > o.outerWidth() + 1) {
  107. if (o.find("." + e)[0]) return;
  108. o.append(c), s.attr("overflow", ""), c.on("click", function (a) {
  109. o[this.title ? "removeClass" : "addClass"](t), this.title = this.title ? "" : "收缩"
  110. })
  111. } else o.find("." + e).remove(), s.removeAttr("overflow")
  112. })
  113. },
  114. hideTabMore: function (t) {
  115. var i = a(".layui-tab-title");
  116. t !== !0 && "tabmore" === a(t.target).attr("lay-stope") || (i.removeClass("layui-tab-more"), i.find(
  117. ".layui-tab-bar").attr("title", ""))
  118. },
  119. clickThis: function () {
  120. var t = a(this),
  121. i = t.parents(o),
  122. n = i.attr("lay-filter"),
  123. s = t.parent(),
  124. c = t.siblings("." + d),
  125. y = "string" == typeof s.attr("lay-unselect");
  126. //禁用
  127. if ((s.attr("lay-disabled") === "")) return;
  128. if (c[0]) {
  129. "javascript:;" !== t.attr("href") && "_blank" === t.attr("target") || y || c[0] || (i.find("." + l).removeClass(
  130. l), s.addClass(l)), i.hasClass(u) && (c.removeClass(h), c[0] && (s["none" === c.css("display") ? "addClass" :
  131. "removeClass"](r + "ed"), "all" === i.attr("lay-shrink") && s.siblings().removeClass(r + "ed"))), layui.event.call(
  132. this, e, "nav(" + n + ")", t)
  133. } else {
  134. "javascript:;" !== t.attr("href") && "_blank" === t.attr("target") || y || c[0] || i.hasClass(u) && (c.removeClass(h), c[0] && (s["none" === c.css("display") ? "addClass" :
  135. "removeClass"](r + "ed"), "all" === i.attr("lay-shrink") && s.siblings().removeClass(r + "ed"))), layui.event.call(
  136. this, e, "nav(" + n + ")", t)
  137. }
  138. },
  139. collapse: function () {
  140. var t = a(this),
  141. i = t.find(".layui-colla-icon"),
  142. l = t.siblings(".layui-colla-content"),
  143. s = t.parents(".layui-collapse").eq(0),
  144. o = s.attr("lay-filter"),
  145. r = "none" === l.css("display");
  146. if ("string" == typeof s.attr("lay-accordion")) {
  147. var c = s.children(".layui-colla-item").children("." + n);
  148. c.siblings(".layui-colla-title").children(".layui-colla-icon").html("&#xe602;"), c.removeClass(n)
  149. }
  150. l[r ? "addClass" : "removeClass"](n), i.html(r ? "&#xe61a;" : "&#xe602;"), layui.event.call(this, e, "collapse(" +
  151. o + ")", {
  152. title: t,
  153. content: l,
  154. show: r
  155. })
  156. }
  157. };
  158. s.prototype.init = function (t, e) {
  159. var l = function () {
  160. return e ? '[lay-filter="' + e + '"]' : ""
  161. }(),
  162. s = {
  163. tab: function () {
  164. f.tabAuto.call({})
  165. },
  166. nav: function () {
  167. var t = 200,
  168. e = {},
  169. s = {},
  170. p = {},
  171. b = function (l, o, r) {
  172. var c = a(this),
  173. f = c.find("." + d);
  174. o.hasClass(u) ? l.css({
  175. top: c.position().top,
  176. height: c.children("a").outerHeight(),
  177. opacity: 1
  178. }) : (f.addClass(h), l.css({
  179. left: c.position().left + parseFloat(c.css("marginLeft")),
  180. top: c.position().top + c.height() - l.height()
  181. }), e[r] = setTimeout(function () {
  182. l.css({
  183. width: c.width(),
  184. opacity: 1
  185. })
  186. }, i.ie && i.ie < 10 ? 0 : t), clearTimeout(p[r]), "block" === f.css("display") && clearTimeout(s[r]), s[r] =
  187. setTimeout(function () {
  188. f.addClass(n), c.find("." + y).addClass(y + "d")
  189. }, 300))
  190. };
  191. a(o + l).each(function (i) {
  192. var l = a(this),
  193. o = a('<span class="' + c + '"></span>'),
  194. h = l.find("." + r);
  195. l.find("." + c)[0] || (l.append(o), h.on("mouseenter", function () {
  196. b.call(this, o, l, i)
  197. }).on("mouseleave", function () {
  198. l.hasClass(u) || (clearTimeout(s[i]), s[i] = setTimeout(function () {
  199. l.find("." + d).removeClass(n), l.find("." + y).removeClass(y + "d")
  200. }, 300))
  201. }), l.on("mouseleave", function () {
  202. clearTimeout(e[i]), p[i] = setTimeout(function () {
  203. l.hasClass(u) ? o.css({
  204. height: 0,
  205. top: o.position().top + o.height() / 2,
  206. opacity: 0
  207. }) : o.css({
  208. width: 0,
  209. left: o.position().left + o.width() / 2,
  210. opacity: 0
  211. })
  212. }, t)
  213. })), h.find("a").each(function () {
  214. var t = a(this),
  215. i = (t.parent(), t.siblings("." + d));
  216. i[0] && !t.children("." + y)[0] && t.append('<span class="' + y + '"></span>'), t.off("click", f.clickThis)
  217. .on("click", f.clickThis)
  218. })
  219. })
  220. },
  221. breadcrumb: function () {
  222. var t = ".layui-breadcrumb";
  223. a(t + l).each(function () {
  224. var t = a(this),
  225. i = "lay-separator",
  226. e = t.attr(i) || "/",
  227. l = t.find("a");
  228. l.next("span[" + i + "]")[0] || (l.each(function (t) {
  229. t !== l.length - 1 && a(this).after("<span " + i + ">" + e + "</span>")
  230. }), t.css("visibility", "visible"))
  231. })
  232. },
  233. progress: function () {
  234. var t = "layui-progress";
  235. a("." + t + l).each(function () {
  236. var i = a(this),
  237. e = i.find(".layui-progress-bar"),
  238. l = e.attr("lay-percent");
  239. e.css("width", function () {
  240. return /^.+\/.+$/.test(l) ? 100 * new Function("return " + l)() + "%" : l
  241. }()), i.attr("lay-showPercent") && setTimeout(function () {
  242. e.html('<span class="' + t + '-text">' + l + "</span>")
  243. }, 350)
  244. })
  245. },
  246. collapse: function () {
  247. var t = "layui-collapse";
  248. a("." + t + l).each(function () {
  249. var t = a(this).find(".layui-colla-item");
  250. t.each(function () {
  251. var t = a(this),
  252. i = t.find(".layui-colla-title"),
  253. e = t.find(".layui-colla-content"),
  254. l = "none" === e.css("display");
  255. i.find(".layui-colla-icon").remove(), i.append('<i class="layui-icon layui-colla-icon">' + (l ?
  256. "&#xe602;" : "&#xe61a;") + "</i>"), i.off("click", f.collapse).on("click", f.collapse)
  257. })
  258. })
  259. }
  260. };
  261. return s[t] ? s[t]() : layui.each(s, function (t, a) {
  262. a()
  263. })
  264. }, s.prototype.render = s.prototype.init;
  265. var p = new s,
  266. b = a(document);
  267. p.render();
  268. var v = ".layui-tab-title li";
  269. b.on("click", v, f.tabClick), b.on("click", f.hideTabMore), a(window).on("resize", f.tabAuto), t(e, p)
  270. });