¶Ô±ÈÐÂÎļþ |
| | |
| | | /** |
| | | * date:2020/02/27 |
| | | * author:Mr.Chung |
| | | * version:2.0 |
| | | * description:layuimini 䏻使¡æ¶æ©å± |
| | | */ |
| | | layui.define(["jquery", "miniMenu", "element","miniTab", "miniTheme"], function (exports) { |
| | | var $ = layui.$, |
| | | layer = layui.layer, |
| | | miniMenu = layui.miniMenu, |
| | | miniTheme = layui.miniTheme, |
| | | element = layui.element , |
| | | miniTab = layui.miniTab; |
| | | |
| | | if (!/http(s*):\/\//.test(location.href)) { |
| | | var tips = "请å
å°é¡¹ç®é¨ç½²è³web容å¨ï¼Apache/Tomcat/Nginx/IIS/çï¼ï¼å¦åé¨åæ°æ®å°æ æ³æ¾ç¤º"; |
| | | return layer.alert(tips); |
| | | } |
| | | |
| | | var miniAdmin = { |
| | | |
| | | /** |
| | | * åå°æ¡æ¶åå§å |
| | | * @param options.iniUrl åå°åå§åæ¥å£å°å |
| | | * @param options.clearUrl åå°æ¸
çç¼åæ¥å£ |
| | | * @param options.urlHashLocation URLå°åhashå®ä½ |
| | | * @param options.bgColorDefault é»è®¤ç®è¤ |
| | | * @param options.multiModule æ¯å¦å¼å¯å¤æ¨¡å |
| | | * @param options.menuChildOpen æ¯å¦å±å¼åèå |
| | | * @param options.loadingTime åå§åå è½½æ¶é´ |
| | | * @param options.pageAnim iframeçªå£å¨ç» |
| | | * @param options.maxTabNum æå¤§çtabæå¼æ°é |
| | | */ |
| | | render: function (options) { |
| | | options.iniUrl = options.iniUrl || null; |
| | | options.clearUrl = options.clearUrl || null; |
| | | options.urlHashLocation = options.urlHashLocation || false; |
| | | options.bgColorDefault = options.bgColorDefault || 0; |
| | | options.multiModule = options.multiModule || false; |
| | | options.menuChildOpen = options.menuChildOpen || false; |
| | | options.loadingTime = options.loadingTime || 1; |
| | | options.pageAnim = options.pageAnim || false; |
| | | options.maxTabNum = options.maxTabNum || 20; |
| | | $.getJSON(options.iniUrl, function (data) { |
| | | if (data == null) { |
| | | miniAdmin.error('ææ èåä¿¡æ¯') |
| | | } else { |
| | | miniAdmin.renderLogo(data.logoInfo); |
| | | miniAdmin.renderClear(options.clearUrl); |
| | | miniAdmin.renderHome(data.homeInfo); |
| | | miniAdmin.renderAnim(options.pageAnim); |
| | | miniAdmin.listen(); |
| | | miniMenu.render({ |
| | | menuList: data.menuInfo, |
| | | multiModule: options.multiModule, |
| | | menuChildOpen: options.menuChildOpen |
| | | }); |
| | | miniTab.render({ |
| | | filter: 'layuiminiTab', |
| | | urlHashLocation: options.urlHashLocation, |
| | | multiModule: options.multiModule, |
| | | menuChildOpen: options.menuChildOpen, |
| | | maxTabNum: options.maxTabNum, |
| | | menuList: data.menuInfo, |
| | | homeInfo: data.homeInfo, |
| | | listenSwichCallback: function () { |
| | | miniAdmin.renderDevice(); |
| | | } |
| | | }); |
| | | miniTheme.render({ |
| | | bgColorDefault: options.bgColorDefault, |
| | | listen: true, |
| | | }); |
| | | miniAdmin.deleteLoader(options.loadingTime); |
| | | } |
| | | }).fail(function () { |
| | | miniAdmin.error('èåæ¥å£æè¯¯'); |
| | | }); |
| | | }, |
| | | |
| | | /** |
| | | * åå§ålogo |
| | | * @param data |
| | | */ |
| | | renderLogo: function (data) { |
| | | var html = '<a href="' + data.href + '"><img src="' + data.image + '" alt="logo"><h1>' + data.title + '</h1></a>'; |
| | | $('.layuimini-logo').html(html); |
| | | }, |
| | | |
| | | /** |
| | | * åå§åé¦é¡µ |
| | | * @param data |
| | | */ |
| | | renderHome: function (data) { |
| | | sessionStorage.setItem('layuiminiHomeHref', data.href); |
| | | $('#layuiminiHomeTabId').html('<span class="layuimini-tab-active"></span><span class="disable-close">' + data.title + '</span><i class="layui-icon layui-unselect layui-tab-close">á</i>'); |
| | | $('#layuiminiHomeTabId').attr('lay-id', data.href); |
| | | $('#layuiminiHomeTabIframe').html('<iframe width="100%" height="100%" frameborder="no" border="0" marginwidth="0" marginheight="0" src="' + data.href + '"></iframe>'); |
| | | }, |
| | | |
| | | /** |
| | | * åå§åç¼åå°å |
| | | * @param clearUrl |
| | | */ |
| | | renderClear: function (clearUrl) { |
| | | $('.layuimini-clear').attr('data-href',clearUrl); |
| | | }, |
| | | |
| | | /** |
| | | * åå§åiframeçªå£å¨ç» |
| | | * @param anim |
| | | */ |
| | | renderAnim: function (anim) { |
| | | if (anim) { |
| | | $('#layuimini-bg-color').after('<style id="layuimini-page-anim">' + |
| | | '.layui-tab-item.layui-show {animation:moveTop 1s;-webkit-animation:moveTop 1s;animation-fill-mode:both;-webkit-animation-fill-mode:both;position:relative;height:100%;-webkit-overflow-scrolling:touch;}\n' + |
| | | '@keyframes moveTop {0% {opacity:0;-webkit-transform:translateY(30px);-ms-transform:translateY(30px);transform:translateY(30px);}\n' + |
| | | ' 100% {opacity:1;-webkit-transform:translateY(0);-ms-transform:translateY(0);transform:translateY(0);}\n' + |
| | | '}\n' + |
| | | '@-o-keyframes moveTop {0% {opacity:0;-webkit-transform:translateY(30px);-ms-transform:translateY(30px);transform:translateY(30px);}\n' + |
| | | ' 100% {opacity:1;-webkit-transform:translateY(0);-ms-transform:translateY(0);transform:translateY(0);}\n' + |
| | | '}\n' + |
| | | '@-moz-keyframes moveTop {0% {opacity:0;-webkit-transform:translateY(30px);-ms-transform:translateY(30px);transform:translateY(30px);}\n' + |
| | | ' 100% {opacity:1;-webkit-transform:translateY(0);-ms-transform:translateY(0);transform:translateY(0);}\n' + |
| | | '}\n' + |
| | | '@-webkit-keyframes moveTop {0% {opacity:0;-webkit-transform:translateY(30px);-ms-transform:translateY(30px);transform:translateY(30px);}\n' + |
| | | ' 100% {opacity:1;-webkit-transform:translateY(0);-ms-transform:translateY(0);transform:translateY(0);}\n' + |
| | | '}' + |
| | | '</style>'); |
| | | } |
| | | }, |
| | | |
| | | fullScreen: function () { |
| | | var el = document.documentElement; |
| | | var rfs = el.requestFullScreen || el.webkitRequestFullScreen; |
| | | if (typeof rfs != "undefined" && rfs) { |
| | | rfs.call(el); |
| | | } else if (typeof window.ActiveXObject != "undefined") { |
| | | var wscript = new ActiveXObject("WScript.Shell"); |
| | | if (wscript != null) { |
| | | wscript.SendKeys("{F11}"); |
| | | } |
| | | } else if (el.msRequestFullscreen) { |
| | | el.msRequestFullscreen(); |
| | | } else if (el.oRequestFullscreen) { |
| | | el.oRequestFullscreen(); |
| | | } else if (el.webkitRequestFullscreen) { |
| | | el.webkitRequestFullscreen(); |
| | | } else if (el.mozRequestFullScreen) { |
| | | el.mozRequestFullScreen(); |
| | | } else { |
| | | miniAdmin.error('æµè§å¨ä¸æ¯æå
¨å±è°ç¨ï¼'); |
| | | } |
| | | }, |
| | | |
| | | /** |
| | | * éåºå
¨å± |
| | | */ |
| | | exitFullScreen: function () { |
| | | var el = document; |
| | | var cfs = el.cancelFullScreen || el.webkitCancelFullScreen || el.exitFullScreen; |
| | | if (typeof cfs != "undefined" && cfs) { |
| | | cfs.call(el); |
| | | } else if (typeof window.ActiveXObject != "undefined") { |
| | | var wscript = new ActiveXObject("WScript.Shell"); |
| | | if (wscript != null) { |
| | | wscript.SendKeys("{F11}"); |
| | | } |
| | | } else if (el.msExitFullscreen) { |
| | | el.msExitFullscreen(); |
| | | } else if (el.oRequestFullscreen) { |
| | | el.oCancelFullScreen(); |
| | | }else if (el.mozCancelFullScreen) { |
| | | el.mozCancelFullScreen(); |
| | | } else if (el.webkitCancelFullScreen) { |
| | | el.webkitCancelFullScreen(); |
| | | } else { |
| | | miniAdmin.error('æµè§å¨ä¸æ¯æå
¨å±è°ç¨ï¼'); |
| | | } |
| | | }, |
| | | |
| | | /** |
| | | * åå§å设å¤ç«¯ |
| | | */ |
| | | renderDevice: function () { |
| | | if (miniAdmin.checkMobile()) { |
| | | $('.layuimini-tool i').attr('data-side-fold', 1); |
| | | $('.layuimini-tool i').attr('class', 'fa fa-outdent'); |
| | | $('.layui-layout-body').removeClass('layuimini-mini'); |
| | | $('.layui-layout-body').addClass('layuimini-all'); |
| | | } |
| | | }, |
| | | |
| | | |
| | | /** |
| | | * åå§åå è½½æ¶é´ |
| | | * @param loadingTime |
| | | */ |
| | | deleteLoader: function (loadingTime) { |
| | | setTimeout(function () { |
| | | $('.layuimini-loader').fadeOut(); |
| | | }, loadingTime * 1000) |
| | | }, |
| | | |
| | | /** |
| | | * æå |
| | | * @param title |
| | | * @returns {*} |
| | | */ |
| | | success: function (title) { |
| | | return layer.msg(title, {icon: 1, shade: this.shade, scrollbar: false, time: 2000, shadeClose: true}); |
| | | }, |
| | | |
| | | /** |
| | | * 失败 |
| | | * @param title |
| | | * @returns {*} |
| | | */ |
| | | error: function (title) { |
| | | return layer.msg(title, {icon: 2, shade: this.shade, scrollbar: false, time: 3000, shadeClose: true}); |
| | | }, |
| | | |
| | | /** |
| | | * 夿æ¯å¦ä¸ºææº |
| | | * @returns {boolean} |
| | | */ |
| | | checkMobile: function () { |
| | | var ua = navigator.userAgent.toLocaleLowerCase(); |
| | | var pf = navigator.platform.toLocaleLowerCase(); |
| | | var isAndroid = (/android/i).test(ua) || ((/iPhone|iPod|iPad/i).test(ua) && (/linux/i).test(pf)) |
| | | || (/ucweb.*linux/i.test(ua)); |
| | | var isIOS = (/iPhone|iPod|iPad/i).test(ua) && !isAndroid; |
| | | var isWinPhone = (/Windows Phone|ZuneWP7/i).test(ua); |
| | | var clientWidth = document.documentElement.clientWidth; |
| | | if (!isAndroid && !isIOS && !isWinPhone && clientWidth > 1024) { |
| | | return false; |
| | | } else { |
| | | return true; |
| | | } |
| | | }, |
| | | |
| | | /** |
| | | * çå¬ |
| | | */ |
| | | listen: function () { |
| | | |
| | | /** |
| | | * æ¸
ç |
| | | */ |
| | | $('body').on('click', '[data-clear]', function () { |
| | | var loading = layer.load(0, {shade: false, time: 2 * 1000}); |
| | | sessionStorage.clear(); |
| | | |
| | | // 夿æ¯å¦æ¸
çæå¡ç«¯ |
| | | var clearUrl = $(this).attr('data-href'); |
| | | if (clearUrl != undefined && clearUrl != '' && clearUrl != null) { |
| | | $.getJSON(clearUrl, function (data, status) { |
| | | layer.close(loading); |
| | | if (data.code != 1) { |
| | | return miniAdmin.error(data.msg); |
| | | } else { |
| | | return miniAdmin.success(data.msg); |
| | | } |
| | | }).fail(function () { |
| | | layer.close(loading); |
| | | return miniAdmin.error('æ¸
çç¼åæ¥å£æè¯¯'); |
| | | }); |
| | | } else { |
| | | layer.close(loading); |
| | | return miniAdmin.success('æ¸
é¤ç¼åæå'); |
| | | } |
| | | }); |
| | | |
| | | /** |
| | | * å·æ° |
| | | */ |
| | | $('body').on('click', '[data-refresh]', function () { |
| | | $(".layui-tab-item.layui-show").find("iframe")[0].contentWindow.location.reload(); |
| | | miniAdmin.success('å·æ°æå'); |
| | | }); |
| | | |
| | | /** |
| | | * çå¬æç¤ºä¿¡æ¯ |
| | | */ |
| | | $("body").on("mouseenter", ".layui-nav-tree .menu-li", function () { |
| | | if (miniAdmin.checkMobile()) { |
| | | return false; |
| | | } |
| | | var classInfo = $(this).attr('class'), |
| | | tips = $(this).prop("innerHTML"), |
| | | isShow = $('.layuimini-tool i').attr('data-side-fold'); |
| | | if (isShow == 0 && tips) { |
| | | tips = "<ul class='layuimini-menu-left-zoom layui-nav layui-nav-tree layui-this'><li class='layui-nav-item layui-nav-itemed'>"+tips+"</li></ul>" ; |
| | | window.openTips = layer.tips(tips, $(this), { |
| | | tips: [2, '#2f4056'], |
| | | time: 300000, |
| | | skin:"popup-tips", |
| | | success:function (el) { |
| | | var left = $(el).position().left - 10 ; |
| | | $(el).css({ left:left }); |
| | | element.render(); |
| | | } |
| | | }); |
| | | } |
| | | }); |
| | | |
| | | $("body").on("mouseleave", ".popup-tips", function () { |
| | | if (miniAdmin.checkMobile()) { |
| | | return false; |
| | | } |
| | | var isShow = $('.layuimini-tool i').attr('data-side-fold'); |
| | | if (isShow == 0) { |
| | | try { |
| | | layer.close(window.openTips); |
| | | } catch (e) { |
| | | console.log(e.message); |
| | | } |
| | | } |
| | | }); |
| | | |
| | | |
| | | /** |
| | | * å
¨å± |
| | | */ |
| | | $('body').on('click', '[data-check-screen]', function () { |
| | | var check = $(this).attr('data-check-screen'); |
| | | if (check == 'full') { |
| | | miniAdmin.fullScreen(); |
| | | $(this).attr('data-check-screen', 'exit'); |
| | | $(this).html('<i class="fa fa-compress"></i>'); |
| | | } else { |
| | | miniAdmin.exitFullScreen(); |
| | | $(this).attr('data-check-screen', 'full'); |
| | | $(this).html('<i class="fa fa-arrows-alt"></i>'); |
| | | } |
| | | }); |
| | | |
| | | /** |
| | | * ç¹å»é®ç½©å± |
| | | */ |
| | | $('body').on('click', '.layuimini-make', function () { |
| | | miniAdmin.renderDevice(); |
| | | }); |
| | | |
| | | } |
| | | }; |
| | | |
| | | |
| | | exports("miniAdmin", miniAdmin); |
| | | }); |