diff --git a/common/common.js b/common/common.js index a1b1622..c13f444 100644 --- a/common/common.js +++ b/common/common.js @@ -222,6 +222,104 @@ $(function () { }, }); }; + // 根据插件配置重绘顶部导航(header_nav) + const renderHeaderNav = (commentObj) => { + var navData = commentObj && commentObj.header_nav; + if (!Array.isArray(navData) || navData.length === 0) { + return; + } + + // 更新 Logo 点击链接 + var home = navData[0] || {}; + if (home.file_address) { + $(".nav-icon a").attr("href", home.file_address); + } + + var $menu = $(".nav-menu"); + var $navContSection = $(".nav-cont .section-content"); + if (!$menu.length || !$navContSection.length) { + return; + } + + // 顶部一级导航 + $menu.empty(); + for (var i = 1; i < navData.length; i++) { + var item = navData[i] || {}; + var name = item.name || ""; + var file = item.file_address || ""; + var blank = Number(item.blank) === 1; + + if (!name) { + continue; + } + + if (file) { + var $a = $("") + .attr("href", file) + .attr("target", blank ? "_blank" : "_self"); + $a.append($("
").addClass("nav-item").text(name)); + $menu.append($a); + } else { + $menu.append($("").addClass("nav-item").text(name)); + } + } + + // 下拉菜单 + $navContSection.empty(); + for (var j = 1; j < navData.length; j++) { + var parent = navData[j] || {}; + var children = Array.isArray(parent.children) ? parent.children : []; + if (!children.length) { + $navContSection.append( + $("").addClass("nav-cont-menu nav-cont-empty") + ); + continue; + } + + var $menuWrap = $("").addClass( + "nav-cont-menu animated slideInDown" + ); + var $content = $("").addClass("nav-content"); + children.forEach(function (child) { + if (!child) return; + var cname = child.name || ""; + var curl = child.file_address || ""; + var cblank = Number(child.blank) === 1; + var cicon = child.icon || ""; + var cdesc = child.description || ""; + + if (!cname && !curl) return; + + var $link = $(""); + if (curl) { + $link.attr("href", curl).attr("target", cblank ? "_blank" : "_self"); + } else { + $link.attr("href", "javascript:;"); + } + + var $box = $("").addClass("nav-item-box"); + if (cicon) { + $box.append($("