123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621 |
- BUI.use(["bui/menu", "bui/tab"], function(h, l) {
- var k = BUI.app("PageUtil");
- var p = "dl-selected",
- c = "ks-hidden",
- y = "dl-last",
- x = "dl-hover",
- n = "nav-item",
- s = "dl-second-slib",
- f = "dl-tab-item",
- t = "dl-collapse",
- v = "dl-hide-current",
- u = "data-index",
- j = 145;
- function g(z) {
- window.topManager = z
- }
- function b(z, A) {
- if (z.indexOf("?") !== -1) {
- return z + "&" + A
- } else {
- return z + "?" + A
- }
- }
- function i(B, E, H, F, A) {
- var I = this,
- C = new h.SideMenu(H),
- D = new l.NavTab(E),
- J = $(H.render),
- z = J.next("." + s + "-con"),
- G = J.parents("." + f);
- if (z) {
- z.on("click", function() {
- G.toggleClass(t)
- });
- z.parent().height(E.height+45);
- }
- if (F) {
- G.addClass(t)
- }
- C.on("menuclick", function(L) {
- var K = L.item;
- if (K) {
- I.tab.addTab({
- id: K.get("id"),
- title: K.get("text"),
- href: K.get("href"),
- closeable: K.get("closeable"),
- icon:K.get("icon")
- }, true)
- }
- });
- C.on("itemselected", function(L) {
- var K = L.item;
- if (K) {
- e(B, K.get("id"))
- }
- });
- D.on("activeChange", function(L) {
- var K = L.item;
- if (K) {
- I.menu.setSelectedByField(K.get("id"))
- } else {
- I.menu.clearSelection()
- }
- });
- I.tab = D;
- I.menu = C;
- I.homePage = A;
- D.render();
- C.render()
- }
- function e(A, z) {
- z = z || "";
- var B = "#" + A;
- if (z) {
- B += "/" + z
- }
- location.hash = B
- }
- function d() {
- var D = location.hash,
- C = 0,
- z = "",
- A = D.indexOf("/"),
- B = null;
- if (!D) {
- return null
- }
- if (A >= 0) {
- C = D.substring(1, A);
- z = D.substring(A + 1);
- B = r(z);
- if (B) {
- z = z.replace("?" + B, "")
- }
- } else {
- C = D.substring(1)
- }
- return {
- moduleId: C,
- pageId: z,
- search: B
- }
- }
- function r(z) {
- var A = z.indexOf("?");
- if (A >= 0) {
- return z.substring(A + 1)
- }
- return null
- }
- function m(z) {
- if (!$.isArray(z)) {
- return
- }
- var A = q(z);
- while (A !== -1) {
- z.splice(A, 1);
- A = q(z)
- }
- return z
- }
- function q(A) {
- var z = -1;
- $.each(A, function(B, C) {
- if (C === null || C === undefined) {
- z = B;
- return false
- }
- });
- return z
- }
- function a() {
- var z = BUI.viewportHeight(),
- A = 70;
- return z - A
- }
- function o(z) {
- var A = $(z);
- if (A.hasClass(n)) {
- return z
- }
- return A.parent("." + n)[0]
- }
- var w = function(z) {
- m(z);
- w.superclass.constructor.call(this, z);
- this._init();
- g(this)
- };
- w.ATTRS = {
- currentModelIndex: {},
- hideItmes: {
- value: []
- },
- hideList: {},
- modules: {
- value: []
- },
- modulesConfig: {},
- navList: {
- valueFn: function() {
- return $("#J_Nav")
- }
- },
- navContent: {
- valueFn: function() {
- return $("#J_NavContent")
- }
- },
- navItems: {
- valueFn: function() {
- return $("#J_Nav").children("." + n)
- }
- },
- navTabs: {
- valueFn: function() {
- return this.get("navContent").children("." + f)
- }
- },
- urlSuffix: {
- value: ".html"
- }
- };
- BUI.extend(w, BUI.Base);
- BUI.augment(w, {
- openPage: function(O) {
- var J = this,
- E = O.moduleId || J._getCurrentModuleId(),
- C = O.id,
- L = O.title || "\u65b0\u7684\u6807\u7b7e\u9875",
- B = O.href,
- N = O.isClose,
- D = O.closeable,
- A = O.reload,
- P = O.search,
- IO=O.icon;
- var G = J._getModule(E);
- if (G) {
- var H = G.tab,
- F = G.menu,
- z = F.getItem(C),
- K = H.getActivedItem(),
- M = K ? K.get("id") : null,
- I = J._getModuleIndex(E);
- if (E != J._getCurrentModuleId()) {
- J._setModuleSelected(I)
- }
- if (z) {
- J._setPageSelected(I, C, A, P)
- } else {
- H.addTab({
- id: C,
- title: L,
- href: B,
- sourceId: M,
- icon:IO,
- closeable: D
- }, A)
- } if (N) {
- K.close()
- }
- }
- },
- closePage: function(A, z) {
- this.operatePage(z, A, "close")
- },
- reloadPage: function(A, z) {
- this.operatePage(z, A, "reload")
- },
- setPageTitle: function(A, B, z) {
- this.operatePage(z, B, "setTitle", [A])
- },
- operatePage: function(E, G, F, A) {
- E = E || this._getCurrentModuleId();
- A = A || [];
- var z = this,
- B = z._getModule(E);
- if (B) {
- var C = B.tab,
- D = G ? C.getItemById(G) : C.getActivedItem();
- if (D && D[F]) {
- D[F].apply(D, A)
- }
- }
- },
- _createModule: function(E) {
- var z = this,
- C = z._getModuleConfig(E),
- B = z.get("modules");
- if (!C) {
- return null
- }
- var E = C.id,
- A = "#J_" + E + "Tab",
- D = "#J_" + E + "Tree";
- module = new i(E, {
- render: A,
- height: a() - 5
- }, {
- render: D,
- items: C.menu,
- height: a() - 5
- }, C.collapsed, C.homePage);
- B[E] = module;
- return module
- },
- _hideHideList: function() {
- this.get("hideList").hide()
- },
- _init: function() {
- var z = this;
- z._initDom();
- z._initNavItems();
- z._initEvent()
- },
- _initNavItems: function() {
- var I = this,
- C = I.get("navItems"),
- B = I.get("hideItmes");
- if (C.length === 0) {
- return
- }
- $('<div class="nav-item-mask"></div>').appendTo($(C));
- var G = C.length,
- K = BUI.viewportWidth(),
- H = j,
- F = H * G,
- z = 0;
- if (F <= K) {
- return
- }
- $.each(C, function(L, M) {
- $(M).attr(u, L);
- $(M).removeClass(y)
- });
- z = parseInt(K / H);
- var A = C[z - 1];
- I._setLastItem(A);
- B.push($(A).clone()[0]);
- for (var E = z; E < G; E++) {
- var J = $(C[E]),
- D = null;
- D = J.clone()[0];
- B.push(D);
- J.addClass(c)
- }
- I._initHideList()
- },
- _initHideList: function() {
- var B = this,
- A = B.get("hideList"),
- z = B.get("hideItmes");
- if (A) {
- return
- }
- var D = '<ul class="dl-hide-list ks-hidden"></ul>',
- C = $(D).appendTo("body");
- A = C;
- $.each(z, function(E, F) {
- $(F).appendTo(A)
- });
- B.set("hideList", A);
- B._initHideListEvent()
- },
- _initHideListEvent: function() {
- var A = this,
- z = A.get("hideList");
- if (z == null) {
- return
- }
- z.on("mouseleave", function() {
- A._hideHideList()
- });
- z.on("click", function(E) {
- var D = o(E.target),
- C = null,
- B = 0;
- if (D) {
- C = $(D);
- B = C.attr(u);
- A._setModuleSelected(B);
- A._hideHideList()
- }
- })
- },
- _initContents: function() {
- var z = this,
- B = z.get("modulesConfig"),
- A = z.get("navContent");
- A.children().remove();
- $.each(B, function(D, E) {
- var F = E.id,hTip=$(".nav-item").eq(D).find("span").html(),
- C = ['<li class="dl-tab-item ks-hidden"><div class="dl-second-nav"></div><div class="dl_nav_titles"><i class="im-home3"></i><span>', hTip, '</span></div><div class="dl-second-tree" id="J_', F, 'Tree"></div><div class="', s, '-con"><div class="', s, '"></div></div></div><div class="dl-inner-tab" id="J_', F, 'Tab"></div></li>'].join("");
- new $(C).appendTo(A)
- })
- },
- _initDom: function() {
- var z = this;
- z._initContents();
- z._initLocation()
- },
- _initEvent: function() {
- var z = this,
- A = z.get("navItems");
- A.each(function(B, C) {
- var C = $(C);
- C.on("click", function() {
- var D = $(this);
- if (D.hasClass(p)) {
- return
- }
- z._setModuleSelected(B, D)
- }).on("mouseenter", function() {
- $(this).addClass(x)
- }).on("mouseleave", function() {
- $(this).removeClass(x)
- })
- });
- z._initNavListEvent()
- },
- _initNavListEvent: function() {
- var A = this,
- z = A.get("hideList"),
- B = A.get("navList");
- B.on("mouseover", function(E) {
- var D = o(E.target),
- C = $(D),
- F = null;
- if (C && C.hasClass(y) && z) {
- F = C.offset();
- F.top += 37;
- F.left += 2;
- A._showHideList(F)
- }
- }).on("mouseout", function(D) {
- var C = D.toElement;
- if (C && z && !$.contains(z[0], C) && C !== z[0]) {
- A._hideHideList()
- }
- })
- },
- _initLocation: function() {
- var z = this,
- D = d();
- if (D) {
- var B = D.pageId,
- E = D.search,
- C = z._getModuleIndex(D.moduleId);
- z._setModuleSelected(C);
- z._setPageSelected(C, B, true, E)
- } else {
- var A = z.get("currentModelIndex"),
- F = z._getModuleId(A);
- if (A == null) {
- z._setModuleSelected(0)
- } else {
- e(F)
- }
- }
- },
- _getModule: function(B) {
- var z = this,
- A = z.get("modules")[B];
- if (!A) {
- A = z._createModule(B)
- }
- return A
- },
- _getModuleIndex: function(B) {
- var A = this,
- z = 0;
- $.each(A.get("modulesConfig"), function(D, C) {
- if (C.id === B) {
- z = D;
- return false
- }
- });
- return z
- },
- _getModuleConfig: function(B) {
- var A = this,
- z = null;
- $.each(A.get("modulesConfig"), function(D, C) {
- if (C.id === B) {
- z = C;
- return false
- }
- });
- return z
- },
- _getModuleId: function(z) {
- var A = this.get("modulesConfig");
- if (A[z]) {
- return A[z].id
- } else {
- return z
- }
- },
- _getCurrentPageId: function() {
- var z = this,
- D = z._getCurrentModuleId(),
- B = z._getModule(D),
- A = "";
- if (B) {
- var C = B.menu.getSelected();
- if (C) {
- A = C.get("id")
- }
- }
- return A
- },
- _getCurrentModuleId: function() {
- return this._getModuleId(this.get("currentModelIndex"))
- },
- _isModuleInitial: function(z) {
- return !!this.get("modules")[z]
- },
- _setLastItem: function(D) {
- var z = this,
- A = z.get("lastShowItem");
- if (A === D) {
- return
- }
- var B = null,
- C = $(A);
- itemEl = $(D);
- if (A) {
- B = C.find("." + v);
- C.removeClass(y);
- C.addClass(c)
- }
- itemEl.addClass(y);
- itemEl.removeClass(c);
- if (!B) {
- B = $('<span class="icon icon-white icon-caret-down ' + v + '"> </span>')
- }
- B.appendTo(itemEl.children(".nav-item-inner"));
- z.set("lastShowItem", D)
- },
- _setModuleSelected: function(F, E) {
- var H = this,
- D = H.get("navItems"),
- B = H.get("navTabs"),
- G = H.get("currentModelIndex");
- if (G !== F) {
- var z = H._getModuleId(F),
- A = null,
- C = H.get("lastShowItem"),
- I = true;
- if (!H._isModuleInitial(z)) {
- I = false
- }
- A = H._getModule(z);
- E = E || $(H.get("navItems")[F]);
- if (E.hasClass(c) && C) {
- H._setLastItem(E[0]);
- H._setSelectHideItem(F)
- }
- D.removeClass(p);
- E.addClass(p);
- B.addClass(c);
- $(B[F]).removeClass(c);
- G = F;
- H.set("currentModelIndex", G);
- curPageId = H._getCurrentPageId();
- e(z, curPageId);
- if (!curPageId && A.homePage) {
- H._setPageSelected(F, A.homePage)
- }
- }
- },
- _setPageSelected: function(E, F, G, K) {
- var H = this,
- B = H._getModuleId(E) || E,
- C = H._getModule(B);
- if (C && F) {
- C.menu.setSelectedByField(F);
- var J = C.menu.getSelected(),
- D = C.tab,
- A = "",
- z = -1;
- if (J && J.get("id") === F) {
- A = J.get("href");
- A = K ? (b(A, K)) : A;
- C.tab.addTab({
- id: J.get("id"),
- title: J.get("text"),
- closeable: J.get("closeable"),
- href: A
- }, !!G)
- } else {
- if (F) {
- var I = F.replace("-", "/");
- if (I.indexOf("/") === -1) {
- I = B + "/" + I
- }
- if ((z = F.indexOf(".")) === -1) {
- I += H.get("urlSuffix")
- }
- A = K ? (I + "?" + K) : I;
- D.addTab({
- id: F,
- title: "",
- href: A
- }, !!G)
- }
- }
- }
- },
- _showHideList: function(B) {
- var A = this,
- z = A.get("hideList");
- z.css("left", B.left);
- z.css("top", B.top);
- z.show()
- },
- _setSelectHideItem: function(D) {
- var B = this,
- A = B.get("hideList"),
- z = B.get("hideItmes"),
- E = null,
- C = null,
- G = null,
- F = null;
- BUI.each(z, function(I) {
- var H = $(I);
- if (H.attr(u) == D) {
- C = I
- }
- if (H.hasClass(y)) {
- E = I
- }
- });
- if (E !== C) {
- if (E) {
- F = $(E).find(".dl-hide-current");
- $(E).removeClass(y)
- }
- $(C).addClass(y);
- if (!F) {
- F = new Node('<span class="dl-hide-current"> </span>')
- }
- G = $(C);
- F.appendTo(G.children(".nav-item-inner"));
- G.prependTo(A)
- }
- }
- });
- k.MainPage = w
- });
|