From 8efbcfef1ccb88c0f4020dc5bbfd271ab403ac1d Mon Sep 17 00:00:00 2001 From: luxiaotao1123 <t1341870251@63.com> Date: 星期二, 29 三月 2022 16:30:09 +0800 Subject: [PATCH] # --- src/main/webapp/views/tpl/theme/img/theme-cyan.png | 0 src/main/webapp/static/css/loader.css | 59 ++ src/main/webapp/views/tpl/theme/img/theme-pink.png | 0 src/main/webapp/views/tpl/theme/img/ic_loading.gif | 0 src/main/webapp/views/tpl/alarm-detl.html | 52 ++ src/main/webapp/views/tpl/theme/img/theme-admin.png | 0 src/main/webapp/views/tpl/theme/img/theme-colorful.png | 0 src/main/webapp/views/tpl/tpl-theme.html | 229 +++++++++ src/main/webapp/views/tpl/theme/img/theme-red.png | 0 src/main/webapp/views/tpl/theme/img/theme-green.png | 0 src/main/webapp/views/order/order.html | 19 src/main/webapp/views/tpl/theme/img/theme-my.png | 0 src/main/webapp/views/tpl/theme/img/icon_date.png | 0 src/main/webapp/views/tpl/tpl-note.html | 206 ++++++++ src/main/webapp/static/image/favicon.ico | 0 src/main/webapp/static/layui/lay/modules/contextMenu.js | 228 +++++++++ src/main/webapp/views/index.html | 371 ++++++-------- src/main/webapp/views/tpl/theme/img/theme-blue.png | 0 src/main/webapp/views/tpl/theme/img/theme-white.png | 0 src/main/webapp/views/tpl/theme/img/icon_search.png | 0 src/main/webapp/views/tpl/theme/img/theme-purple.png | 0 src/main/webapp/static/layui/lay/modules/index.js | 302 ++++++++++++ 22 files changed, 1,249 insertions(+), 217 deletions(-) diff --git a/src/main/webapp/static/css/loader.css b/src/main/webapp/static/css/loader.css new file mode 100644 index 0000000..6990738 --- /dev/null +++ b/src/main/webapp/static/css/loader.css @@ -0,0 +1,59 @@ +/**鍒濆鍖栧姞杞藉眰*/ +.layuimini-loader { + position: fixed; + top: 0; + left: 0; + width: 100%; + height: 100%; + background-color: #ffffff; + z-index: 999999; +} + +.layuimini-loader .layuimini-loader-inner { + display: block; + position: relative; + left: 50%; + top: 50%; + width: 150px; + height: 150px; + margin: -75px 0 0 -75px; + border-radius: 50%; + border: 3px solid transparent; + border-top-color: #1E9FFF; + animation: spin 2s linear infinite; +} + +.layuimini-loader .layuimini-loader-inner:before { + content: ""; + position: absolute; + top: 5px; + left: 5px; + right: 5px; + bottom: 5px; + border-radius: 50%; + border: 3px solid transparent; + border-top-color: #1E9FFF; + animation: spin 3s linear infinite; +} + +.layuimini-loader .layuimini-loader-inner:after { + content: ""; + position: absolute; + top: 15px; + left: 15px; + right: 15px; + bottom: 15px; + border-radius: 50%; + border: 3px solid transparent; + border-top-color: #1E9FFF; + animation: spin 1.5s linear infinite; +} + +@keyframes spin { + 0% { + transform: rotate(0deg); + } + to { + transform: rotate(1turn); + } +} diff --git a/src/main/webapp/static/image/favicon.ico b/src/main/webapp/static/image/favicon.ico new file mode 100644 index 0000000..86d5e0a --- /dev/null +++ b/src/main/webapp/static/image/favicon.ico Binary files differ diff --git a/src/main/webapp/static/layui/lay/modules/contextMenu.js b/src/main/webapp/static/layui/lay/modules/contextMenu.js new file mode 100644 index 0000000..2655031 --- /dev/null +++ b/src/main/webapp/static/layui/lay/modules/contextMenu.js @@ -0,0 +1,228 @@ +/** 鍙抽敭鑿滃崟妯″潡 date:2019-02-08 License By http://easyweb.vip */ +layui.define(["jquery"], function (exports) { + var $ = layui.jquery; + + var contextMenu = { + // 缁戝畾鍏冪礌 + bind: function (elem, items) { + $(elem).bind('contextmenu', function (e) { + contextMenu.show(items, e.clientX, e.clientY, e); + return false; + }); + }, + // 鍦ㄦ寚瀹氬潗鏍囨樉绀鸿彍鍗� + show: function (items, x, y, e) { + var xy = 'left: ' + x + 'px; top: ' + y + 'px;'; + var htmlStr = '<div class="ctxMenu" style="' + xy + '">'; + htmlStr += contextMenu.getHtml(items, ''); + htmlStr += ' </div>'; + contextMenu.remove(); + $('body').append(htmlStr); + // 璋冩暣婧㈠嚭浣嶇疆 + var $ctxMenu = $('.ctxMenu'); + if (x + $ctxMenu.outerWidth() > contextMenu.getPageWidth()) { + x -= $ctxMenu.outerWidth(); + } + if (y + $ctxMenu.outerHeight() > contextMenu.getPageHeight()) { + y = y - $ctxMenu.outerHeight(); + if (y < 0) { + y = 0; + } + } + $ctxMenu.css({'top': y, 'left': x}); + // 娣诲姞item鐐瑰嚮浜嬩欢 + contextMenu.setEvents(items, e); + // 鏄剧ず瀛愯彍鍗曚簨浠� + $('.ctxMenu-item').on('mouseenter', function (e) { + e.stopPropagation(); + $(this).parent().find('.ctxMenu-sub').css('display', 'none'); + if (!$(this).hasClass('haveMore')) return; + var $item = $(this).find('>a'); + var $sub = $(this).find('>.ctxMenu-sub'); + var top = $item.offset().top - $('body,html').scrollTop(); + var left = $item.offset().left + $item.outerWidth() - $('body,html').scrollLeft(); + if (left + $sub.outerWidth() > contextMenu.getPageWidth()) { + left = $item.offset().left - $sub.outerWidth(); + } + if (top + $sub.outerHeight() > contextMenu.getPageHeight()) { + top = top - $sub.outerHeight() + $item.outerHeight(); + if (top < 0) { + top = 0; + } + } + $(this).find('>.ctxMenu-sub').css({ + 'top': top, + 'left': left, + 'display': 'block' + }); + })/*.on('mouseleave', function () { + $(this).find('>.ctxMenu-sub').css('display', 'none'); + })*/; + }, + // 绉婚櫎鎵�鏈� + remove: function () { + var ifs = parent.window.frames; + for (var i = 0; i < ifs.length; i++) { + var tif = ifs[i]; + try { + tif.layui.jquery('body>.ctxMenu').remove(); + } catch (e) { + } + } + try { + parent.layui.jquery('body>.ctxMenu').remove(); + } catch (e) { + } + }, + // 璁剧疆浜嬩欢鐩戝惉 + setEvents: function (items, event) { + $('.ctxMenu').off('click').on('click', '[lay-id]', function (e) { + var itemId = $(this).attr('lay-id'); + var item = getItemById(itemId, items); + item.click && item.click(e, event); + }); + + function getItemById(id, list) { + for (var i = 0; i < list.length; i++) { + var one = list[i]; + if (id == one.itemId) { + return one; + } else if (one.subs && one.subs.length > 0) { + var temp = getItemById(id, one.subs); + if (temp) { + return temp; + } + } + } + } + }, + // 鏋勫缓鏃犻檺绾� + getHtml: function (items, pid) { + var htmlStr = ''; + for (var i = 0; i < items.length; i++) { + var item = items[i]; + item.itemId = 'ctxMenu-' + pid + i; + if (item.subs && item.subs.length > 0) { + htmlStr += '<div class="ctxMenu-item haveMore" lay-id="' + item.itemId + '">'; + htmlStr += '<a>'; + if (item.icon) { + htmlStr += '<i class="' + item.icon + ' ctx-icon"></i>'; + } + htmlStr += item.name; + htmlStr += '<i class="layui-icon layui-icon-right icon-more"></i>'; + htmlStr += '</a>'; + htmlStr += '<div class="ctxMenu-sub" style="display: none;">'; + htmlStr += contextMenu.getHtml(item.subs, pid + i); + htmlStr += '</div>'; + } else { + htmlStr += '<div class="ctxMenu-item" lay-id="' + item.itemId + '">'; + htmlStr += '<a>'; + if (item.icon) { + htmlStr += '<i class="' + item.icon + ' ctx-icon"></i>'; + } + htmlStr += item.name; + htmlStr += '</a>'; + } + htmlStr += '</div>'; + if (item.hr == true) { + htmlStr += '<hr/>'; + } + } + return htmlStr; + }, + // 鑾峰彇css浠g爜 + getCommonCss: function () { + var cssStr = '.ctxMenu, .ctxMenu-sub {'; + cssStr += ' max-width: 250px;'; + cssStr += ' min-width: 110px;'; + cssStr += ' background: white;'; + cssStr += ' border-radius: 2px;'; + cssStr += ' padding: 5px 0;'; + cssStr += ' white-space: nowrap;'; + cssStr += ' position: fixed;'; + cssStr += ' z-index: 2147483647;'; + cssStr += ' box-shadow: 0 2px 4px rgba(0, 0, 0, .12);'; + cssStr += ' border: 1px solid #d2d2d2;'; + cssStr += ' overflow: visible;'; + cssStr += ' }'; + + cssStr += ' .ctxMenu-item {'; + cssStr += ' position: relative;'; + cssStr += ' }'; + + cssStr += ' .ctxMenu-item > a {'; + cssStr += ' font-size: 14px;'; + cssStr += ' color: #666;'; + cssStr += ' padding: 0 26px 0 35px;'; + cssStr += ' cursor: pointer;'; + cssStr += ' display: block;'; + cssStr += ' line-height: 36px;'; + cssStr += ' text-decoration: none;'; + cssStr += ' position: relative;'; + cssStr += ' }'; + + cssStr += ' .ctxMenu-item > a:hover {'; + cssStr += ' background: #f2f2f2;'; + cssStr += ' color: #666;'; + cssStr += ' }'; + + cssStr += ' .ctxMenu-item > a > .icon-more {'; + cssStr += ' position: absolute;'; + cssStr += ' right: 5px;'; + cssStr += ' top: 0;'; + cssStr += ' font-size: 12px;'; + cssStr += ' color: #666;'; + cssStr += ' }'; + + cssStr += ' .ctxMenu-item > a > .ctx-icon {'; + cssStr += ' position: absolute;'; + cssStr += ' left: 12px;'; + cssStr += ' top: 0;'; + cssStr += ' font-size: 15px;'; + cssStr += ' color: #666;'; + cssStr += ' }'; + + cssStr += ' .ctxMenu hr {'; + cssStr += ' background-color: #e6e6e6;'; + cssStr += ' clear: both;'; + cssStr += ' margin: 5px 0;'; + cssStr += ' border: 0;'; + cssStr += ' height: 1px;'; + cssStr += ' }'; + + cssStr += ' .ctx-ic-lg {'; + cssStr += ' font-size: 18px !important;'; + cssStr += ' left: 11px !important;'; + cssStr += ' }'; + return cssStr; + }, + // 鑾峰彇娴忚鍣ㄩ珮搴� + getPageHeight: function () { + return document.documentElement.clientHeight || document.body.clientHeight; + }, + // 鑾峰彇娴忚鍣ㄥ搴� + getPageWidth: function () { + return document.documentElement.clientWidth || document.body.clientWidth; + }, + }; + + // 鐐瑰嚮浠绘剰浣嶇疆鍏抽棴鑿滃崟 + $(document).off('click.ctxMenu').on('click.ctxMenu', function () { + contextMenu.remove(); + }); + + // 鐐瑰嚮鏈夊瓙鑿滃崟鐨勮妭鐐逛笉鍏抽棴鑿滃崟 + $(document).off('click.ctxMenuMore').on('click.ctxMenuMore', '.ctxMenu-item', function (e) { + if ($(this).hasClass('haveMore')) { + if (e !== void 0) { + e.preventDefault(); + e.stopPropagation(); + } + } else { + contextMenu.remove(); + } + }); + + $('head').append('<style id="ew-css-ctx">' + contextMenu.getCommonCss() + '</style>'); + exports("contextMenu", contextMenu); +}); \ No newline at end of file diff --git a/src/main/webapp/static/layui/lay/modules/index.js b/src/main/webapp/static/layui/lay/modules/index.js new file mode 100644 index 0000000..93d9297 --- /dev/null +++ b/src/main/webapp/static/layui/lay/modules/index.js @@ -0,0 +1,302 @@ +/** EasyWeb iframe v3.1.8 date:2020-05-04 License By http://easyweb.vip */ + +layui.define(['layer', 'element', 'admin'], function (exports) { + var $ = layui.jquery; + var layer = layui.layer; + var element = layui.element; + var admin = layui.admin; + var setter = admin.setter; + var headerDOM = '.layui-layout-admin>.layui-header'; + var sideDOM = '.layui-layout-admin>.layui-side>.layui-side-scroll'; + var bodyDOM = '.layui-layout-admin>.layui-body'; + var tabDOM = bodyDOM + '>.layui-tab'; + var titleDOM = bodyDOM + '>.layui-body-header'; + var tabFilter = 'admin-pagetabs'; + var navFilter = 'admin-side-nav'; + var tabEndCall = {}; // Tab鍏抽棴鐨勪簨浠跺洖璋� + var mIsAddTab = false; // 鏄惁鏄坊鍔燭ab锛屾坊鍔燭ab鐨勬椂鍊欏垏鎹笉鑷姩鍒锋柊 + var index = {homeUrl: undefined, mTabPosition: undefined, mTabList: []}; + + /** 娓叉煋涓讳綋閮ㄥ垎 */ + index.loadView = function (param) { + if (!param.menuPath) return layer.msg('url涓嶈兘涓虹┖', {icon: 2, anim: 6}); + if (setter.pageTabs) { // 澶氭爣绛炬ā寮� + var flag; // 閫夐」鍗℃槸鍚﹀凡娣诲姞 + $(tabDOM + '>.layui-tab-title>li').each(function () { + if ($(this).attr('lay-id') === param.menuPath) flag = true; + }); + if (!flag) { // 娣诲姞閫夐」鍗� + if (index.mTabList.length + 1 >= setter.maxTabNum) { + layer.msg('鏈�澶氭墦寮�' + setter.maxTabNum + '涓�夐」鍗�', {icon: 2, anim: 6}); + return admin.activeNav(index.mTabPosition); + } + mIsAddTab = true; + element.tabAdd(tabFilter, { + id: param.menuPath, title: '<span class="title">' + (param.menuName || '') + '</span>', + content: '<iframe class="admin-iframe" lay-id="' + param.menuPath + '" src="' + param.menuPath + + '" onload="layui.index.hideLoading(this);" frameborder="0"></iframe>' + }); + admin.showLoading({elem: $('iframe[lay-id="' + param.menuPath + '"]').parent(), size: ''}); + if (param.menuPath !== index.homeUrl) index.mTabList.push(param); // 璁板綍tab + if (setter.cacheTab) admin.putTempData('indexTabs', index.mTabList); // 缂撳瓨tab + } + if (!param.noChange) element.tabChange(tabFilter, param.menuPath); // 鍒囨崲鍒版tab + } else { // 鍗曟爣绛炬ā寮� + admin.activeNav(param.menuPath); + var $contentDom = $(bodyDOM + '>div>.admin-iframe'); + if ($contentDom.length === 0) { + $(bodyDOM).html([ + '<div class="layui-body-header">', + ' <span class="layui-body-header-title"></span>', + ' <span class="layui-breadcrumb pull-right" lay-filter="admin-body-breadcrumb" style="visibility: visible;"></span>', + '</div>', + '<div style="-webkit-overflow-scrolling: touch;">', + ' <iframe class="admin-iframe" lay-id="', param.menuPath, '" src="', param.menuPath, '"', + ' onload="layui.index.hideLoading(this);" frameborder="0"></iframe>', + '</div>'].join('')); + admin.showLoading({elem: $('iframe[lay-id="' + param.menuPath + '"]').parent(), size: ''}); + } else { + admin.showLoading({elem: $contentDom.parent(), size: ''}); + $contentDom.attr('lay-id', param.menuPath).attr('src', param.menuPath); + } + $('[lay-filter="admin-body-breadcrumb"]').html(index.getBreadcrumbHtml(param.menuPath)); + index.mTabList.splice(0, index.mTabList.length); + if (param.menuPath === index.homeUrl) { + index.mTabPosition = undefined; + index.setTabTitle($(param.menuName).text() || $(sideDOM + ' [lay-href="' + index.homeUrl + '"]').text() || '涓婚〉'); + } else { + index.mTabPosition = param.menuPath; + index.mTabList.push(param); + index.setTabTitle(param.menuName); + } + if (!setter.cacheTab) return; + admin.putTempData('indexTabs', index.mTabList); + admin.putTempData('tabPosition', index.mTabPosition); + } + if (admin.getPageWidth() <= 768) admin.flexible(true); // 绉诲姩绔嚜鍔ㄦ敹璧蜂晶瀵艰埅 + }; + + /** 鍔犺浇涓婚〉 */ + index.loadHome = function (param) { + var cacheTabs = admin.getTempData('indexTabs'); // 鑾峰彇缂撳瓨tab + var cachePosition = admin.getTempData('tabPosition'); + var recover = (param.loadSetting === undefined || param.loadSetting) && (setter.cacheTab && cacheTabs && cacheTabs.length > 0); + index.homeUrl = param.menuPath; + param.noChange = cachePosition ? recover : false; + if (setter.pageTabs || !recover) index.loadView(param); + if (recover) { // 鎭㈠缂撳瓨tab + for (var i = 0; i < cacheTabs.length; i++) { + cacheTabs[i].noChange = cacheTabs[i].menuPath !== cachePosition; + if (!cacheTabs[i].noChange || (setter.pageTabs && !param.onlyLast)) index.loadView(cacheTabs[i]); + } + } + admin.removeLoading(undefined, false); + }; + + /** 鎵撳紑tab */ + index.openTab = function (param) { + if (window !== top && !admin.isTop() && top.layui && top.layui.index) return top.layui.index.openTab(param); + if (param.end) tabEndCall[param.url] = param.end; + index.loadView({menuPath: param.url, menuName: param.title}); + }; + + /** 鍏抽棴tab */ + index.closeTab = function (url) { + if (window !== top && !admin.isTop() && top.layui && top.layui.index) return top.layui.index.closeTab(url); + element.tabDelete(tabFilter, url); + }; + + /** 璁剧疆鏄惁璁板繂Tab */ + index.setTabCache = function (isCache) { + if (window !== top && !admin.isTop() && top.layui && top.layui.index) return top.layui.index.setTabCache(isCache); + admin.putSetting('cacheTab', isCache); + if (!isCache) return index.clearTabCache(); + admin.putTempData('indexTabs', index.mTabList); + admin.putTempData('tabPosition', index.mTabPosition); + }; + + /** 娓呴櫎tab璁板繂 */ + index.clearTabCache = function () { + admin.putTempData('indexTabs', null); + admin.putTempData('tabPosition', null); + }; + + /** 璁剧疆tab鏍囬 */ + index.setTabTitle = function (title, tabId) { + if (window !== top && !admin.isTop() && top.layui && top.layui.index) return top.layui.index.setTabTitle(title, tabId); + if (setter.pageTabs) { + if (!tabId) tabId = $(tabDOM + '>.layui-tab-title>li.layui-this').attr('lay-id'); + if (tabId) $(tabDOM + '>.layui-tab-title>li[lay-id="' + tabId + '"] .title').html(title || ''); + } else if (title) { + $(titleDOM + '>.layui-body-header-title').html(title); + $(titleDOM).addClass('show'); + $(headerDOM).css('box-shadow', '0 1px 0 0 rgba(0, 0, 0, .03)'); + } else { + $(titleDOM).removeClass('show'); + $(headerDOM).css('box-shadow', ''); + } + }; + + /** 鑷畾涔塼ab鏍囬 */ + index.setTabTitleHtml = function (html) { + if (window !== top && !admin.isTop() && top.layui && top.layui.index) return top.layui.index.setTabTitleHtml(html); + if (setter.pageTabs) return; + if (!html) return $(titleDOM).removeClass('show'); + $(titleDOM).html(html); + $(titleDOM).addClass('show'); + }; + + /** 鑾峰彇闈㈠寘灞� */ + index.getBreadcrumb = function (tabId) { + if (!tabId) tabId = $(bodyDOM + '>div>.admin-iframe').attr('lay-id'); + var breadcrumb = []; + var $href = $(sideDOM).find('[lay-href="' + tabId + '"]'); + if ($href.length > 0) breadcrumb.push($href.text().replace(/(^\s*)|(\s*$)/g, '')); + while (true) { + $href = $href.parent('dd').parent('dl').prev('a'); + if ($href.length === 0) break; + breadcrumb.unshift($href.text().replace(/(^\s*)|(\s*$)/g, '')); + } + return breadcrumb; + }; + + /** 鑾峰彇闈㈠寘灞戠粨鏋� */ + index.getBreadcrumbHtml = function (tabId) { + var breadcrumb = index.getBreadcrumb(tabId); + var htmlStr = tabId === index.homeUrl ? '' : ('<a ew-href="' + index.homeUrl + '">棣栭〉</a>'); + for (var i = 0; i < breadcrumb.length - 1; i++) { + if (htmlStr) htmlStr += '<span lay-separator="">/</span>'; + htmlStr += ('<a><cite>' + breadcrumb[i] + '</cite></a>'); + } + return htmlStr; + }; + + /** 鍏抽棴loading */ + index.hideLoading = function (url) { + if (typeof url !== 'string') url = $(url).attr('lay-id'); + admin.removeLoading($('iframe[lay-id="' + url + '"],' + bodyDOM + ' iframe[lay-id]').parent(), false); + }; + + /** 绉诲姩璁惧閬僵灞� */ + var siteShadeDom = '.layui-layout-admin .site-mobile-shade'; + if ($(siteShadeDom).length === 0) $('.layui-layout-admin').append('<div class="site-mobile-shade"></div>'); + $(siteShadeDom).click(function () { + admin.flexible(true); + }); + + /** 琛ュ厖tab鐨刣om */ + if (setter.pageTabs && $(tabDOM).length === 0) { + $(bodyDOM).html([ + '<div class="layui-tab" lay-allowClose="true" lay-filter="', tabFilter, '" lay-autoRefresh="', setter.tabAutoRefresh == 'true', '">', + ' <ul class="layui-tab-title"></ul><div class="layui-tab-content"></div>', + '</div>', + '<div class="layui-icon admin-tabs-control layui-icon-prev" ew-event="leftPage"></div>', + '<div class="layui-icon admin-tabs-control layui-icon-next" ew-event="rightPage"></div>', + '<div class="layui-icon admin-tabs-control layui-icon-down">', + ' <ul class="layui-nav" lay-filter="admin-pagetabs-nav">', + ' <li class="layui-nav-item" lay-unselect>', + ' <dl class="layui-nav-child layui-anim-fadein">', + ' <dd ew-event="closeThisTabs" lay-unselect><a>鍏抽棴褰撳墠鏍囩椤�</a></dd>', + ' <dd ew-event="closeOtherTabs" lay-unselect><a>鍏抽棴鍏跺畠鏍囩椤�</a></dd>', + ' <dd ew-event="closeAllTabs" lay-unselect><a>鍏抽棴鍏ㄩ儴鏍囩椤�</a></dd>', + ' </dl>', + ' </li>', + ' </ul>', + '</div>' + ].join('')); + element.render('nav', 'admin-pagetabs-nav'); + } + + /** 渚у鑸偣鍑荤洃鍚� */ + element.on('nav(' + navFilter + ')', function (elem) { + var $that = $(elem); + var href = $that.attr('lay-href'); + if (!href || href === '#') return; + if (href.indexOf('javascript:') === 0) return new Function(href.substring(11))(); + var name = $that.attr('ew-title') || $that.text().replace(/(^\s*)|(\s*$)/g, ''); + var end = $that.attr('ew-end'); + try { + if (end) end = new Function(end); + else end = undefined; + } catch (e) { + console.error(e); + } + index.openTab({url: href, title: name, end: end}); + layui.event.call(this, 'admin', 'side({*})', {href: href}); + }); + + /** tab鍒囨崲鐩戝惉 */ + element.on('tab(' + tabFilter + ')', function () { + var layId = $(this).attr('lay-id'); + index.mTabPosition = (layId !== index.homeUrl ? layId : undefined); // 璁板綍褰撳墠Tab浣嶇疆 + if (setter.cacheTab) admin.putTempData('tabPosition', index.mTabPosition); + admin.activeNav(layId); + admin.rollPage('auto'); + if ($(tabDOM).attr('lay-autoRefresh') == 'true' && !mIsAddTab) admin.refresh(layId, true); // 鍒囨崲tab鍒锋柊 + mIsAddTab = false; + layui.event.call(this, 'admin', 'tab({*})', {layId: layId}); + }); + + /** tab鍒犻櫎鐩戝惉 */ + element.on('tabDelete(' + tabFilter + ')', function (data) { + var mTab = index.mTabList[data.index - 1]; + if (mTab) { + index.mTabList.splice(data.index - 1, 1); + if (setter.cacheTab) admin.putTempData('indexTabs', index.mTabList); + tabEndCall[mTab.menuPath] && tabEndCall[mTab.menuPath].call(); + layui.event.call(this, 'admin', 'tabDelete({*})', {layId: mTab.menuPath}); + } + if ($(tabDOM + '>.layui-tab-title>li.layui-this').length === 0) + $(tabDOM + '>.layui-tab-title>li:last').trigger('click'); // 瑙e喅鍒犻櫎鍚庡彲鑳芥棤閫変腑bug + }); + + /** 澶氱郴缁熷垏鎹簨浠� */ + $(document).off('click.navMore').on('click.navMore', '[nav-bind]', function () { + var navId = $(this).attr('nav-bind'); + $('ul[lay-filter="' + navFilter + '"]').addClass('layui-hide'); + $('ul[nav-id="' + navId + '"]').removeClass('layui-hide'); + $(headerDOM + '>.layui-nav .layui-nav-item').removeClass('layui-this'); + $(this).parent('.layui-nav-item').addClass('layui-this'); + if (admin.getPageWidth() <= 768) admin.flexible(false); // 灞曞紑渚ц竟鏍� + layui.event.call(this, 'admin', 'nav({*})', {navId: navId}); + }); + + /** 寮�鍚疶ab鍙抽敭鑿滃崟 */ + if (setter.openTabCtxMenu && setter.pageTabs) { + layui.use('contextMenu', function () { + if (!layui.contextMenu) return; + $(tabDOM + '>.layui-tab-title').off('contextmenu.tab').on('contextmenu.tab', 'li', function (e) { + var layId = $(this).attr('lay-id'); + layui.contextMenu.show([{ + icon: 'layui-icon layui-icon-refresh', + name: '鍒锋柊褰撳墠', + click: function () { + element.tabChange(tabFilter, layId); + if ('true' != $(tabDOM).attr('lay-autoRefresh')) admin.refresh(layId); + } + }, { + icon: 'layui-icon layui-icon-close-fill ctx-ic-lg', + name: '鍏抽棴褰撳墠', + click: function () { + admin.closeThisTabs(layId); + } + }, { + icon: 'layui-icon layui-icon-unlink', + name: '鍏抽棴鍏朵粬', + click: function () { + admin.closeOtherTabs(layId); + } + }, { + icon: 'layui-icon layui-icon-close ctx-ic-lg', + name: '鍏抽棴鍏ㄩ儴', + click: function () { + admin.closeAllTabs(); + } + }], e.clientX, e.clientY); + return false; + }); + }); + } + + exports('index', index); +}); diff --git a/src/main/webapp/views/index.html b/src/main/webapp/views/index.html index 730b818..680cb5b 100644 --- a/src/main/webapp/views/index.html +++ b/src/main/webapp/views/index.html @@ -1,240 +1,179 @@ <!DOCTYPE html> -<html> +<html lang="en"> <head> <meta charset="utf-8"> - <title>鑷姩浠撳偍 - 绠$悊绯荤粺</title> + <title>涓壃 - 杩愮淮绯荤粺骞冲彴</title> <meta name="renderer" content="webkit"> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=0"> - <link rel="icon" type="image/x-icon" href="../static/image/log.png" /> - <link rel="stylesheet" href="../static/layuiadmin/layui/css/layui.css" media="all"> - <link rel="stylesheet" href="../static/layuiadmin/style/admin.css" media="all"> - <script type="text/javascript" src="../static/js/jquery/jquery-3.3.1.min.js"></script> - <script type="text/javascript" src="../static/js/common.js"></script> - <script type="text/javascript" src="../static/layuiadmin/layui/layui.js"></script> + <link rel="icon" type="image/x-icon" href="../static/image/favicon.ico" /> + <link rel="stylesheet" href="../static/layui/css/layui.css" media="all"> + <link rel="stylesheet" href="../static/css/admin.css?v=318" media="all"> + <link rel="stylesheet" href="../static/css/loader.css" media="all"> <style> - .layui-layout-admin .layui-footer { - box-sizing: border-box; - background-color: #fff; - z-index: 999; - height: 30px; - padding: 0; - font-size: 13px; - margin: 0; - line-height: 30px; + .layui-logo img { + width: 25px; } - .layui-layout-admin .layui-footer a { - color: #3573ab; - font-weight: bold - } - - .layui-layout-admin .layui-logo { - letter-spacing: 2px; - font-size: 22px; - height: 110px; - padding: 20px 10px; - font-weight: bolder; - /*color: #2c7dc2;*/ - color: #f3f3f3; - text-align: center; - line-height: 40px; - } - .layadmin-side-shrink .layui-layout-admin .layui-logo { - background-image: none; - } - .layui-side-menu .layui-nav { - margin-top: 110px; + .layui-logo cite { + font-size: 18px; + font-weight: 400; + /*margin-left: 5px;*/ } </style> </head> <body class="layui-layout-body"> +<div class="layui-layout layui-layout-admin"> + <!-- 澶撮儴 --> + <div class="layui-header"> + <div class="layui-logo"> + <img src="../static/image/logo.png" style="display: inline-block; width: 60%;height: auto"> + <!-- <span style="margin-top: 0; letter-spacing: 10px">涓壃绔嬪簱</span>--> + <!-- <img src="../static/image/logo.svg"/>--> + <!-- <cite>涓壃 - Zoneyung</cite>--> + </div> - <div id="LAY_app"> - <div class="layui-layout layui-layout-admin"> - <div class="layui-header"> - <!-- 澶撮儴鍖哄煙 --> - <ul id="cool-header-left" class="layui-nav layui-layout-left"> - <li class="layui-nav-item layadmin-flexible" lay-unselect> - <a href="javascript:;" layadmin-event="flexible" title="渚ц竟浼哥缉"> - <i class="layui-icon layui-icon-shrink-right" id="LAY_app_flexible"></i> - </a> - </li> - <!--<li class="layui-nav-item layui-hide-xs" lay-unselect>--> - <!--<a lay-href="report/viewLocMap.html?resourceId=10286" title="Map">--> - <!--<i class="layui-icon layui-icon-website"></i>--> - <!--</a>--> - <!--</li>--> - <li class="layui-nav-item" lay-unselect> - <a href="javascript:;" layadmin-event="refresh" title="鍒锋柊"> - <i class="layui-icon layui-icon-refresh-3"></i> - </a> - </li> - <!--<li class="layui-nav-item layui-hide-xs" lay-unselect>--> - <!--<input type="text" placeholder="鎼滅储..." autocomplete="off" class="layui-input layui-input-search" layadmin-event="serach" lay-action="template/search.html?keywords=">--> - <!--</li>--> - </ul> - <ul id="cool-header-right" class="layui-nav layui-layout-right" lay-filter="layadmin-layout-right"> - - <li class="layui-nav-item layui-hide-xs" lay-unselect> - <a href="javascript:;" layadmin-event="theme"> - <i class="layui-icon layui-icon-theme"></i> - </a> - </li> - <li class="layui-nav-item layui-hide-xs" lay-unselect> - <a id="activation-icon" href="javascript:;" layadmin-event="note"> - <i class="layui-icon layui-icon-note"></i> - </a> - </li> - <li class="layui-nav-item layui-hide-xs" lay-unselect> - <a href="javascript:;" layadmin-event="fullscreen"> - <i class="layui-icon layui-icon-screen-full"></i> - </a> - </li> - <li class="layui-nav-item" lay-unselect> - <a href="javascript:;"> - <cite id="person-username">绠$悊鍛�</cite> - </a> - <dl class="layui-nav-child"> - <dd><a lay-href="detail.html">鍩烘湰璧勬枡</a></dd> - <!--<dd><a lay-href="set/user/password.html">淇敼瀵嗙爜</a></dd>--> - <hr> - <dd style="text-align: center;"><a id="logout" href="/">閫�鍑�</a></dd> - </dl> - </li> - </ul> - </div> - - <!-- 渚ц竟鑿滃崟 --> - <div class="layui-side layui-side-menu"> - <div class="layui-side-scroll"> - <div class="layui-logo" lay-href="home/console.html"> - <img src="../static/image/logo.png" style="display: inline-block; width: 90%;height: auto"> - <span style="margin-top: 0;letter-spacing: 10px">涓壃绔嬪簱</span> - </div> + <ul class="layui-nav layui-layout-left"> + <li class="layui-nav-item" lay-unselect> + <a ew-event="flexible" title="渚ц竟浼哥缉"><i class="layui-icon layui-icon-shrink-right"></i></a> + </li> + <li class="layui-nav-item" lay-unselect> + <a ew-event="refresh" title="鍒锋柊"><i class="layui-icon layui-icon-refresh-3"></i></a> + </li> + </ul> + <ul class="layui-nav layui-layout-right"> + <li class="layui-nav-item" lay-unselect> + <a ew-event="note" title="渚跨"><i class="layui-icon layui-icon-note"></i></a> + </li> + <li class="layui-nav-item layui-hide-xs" lay-unselect> + <a ew-event="fullScreen" title="鍏ㄥ睆"><i class="layui-icon layui-icon-screen-full"></i></a> + </li> + <li class="layui-nav-item" lay-unselect> + <a> + <cite id="username" style="margin-right: 5px">绠$悊鍛�</cite> + </a> + <dl class="layui-nav-child"> + <dd lay-unselect><a ew-href="detail.html?resourceId=8">鍩烘湰璧勬枡</a></dd> + <hr> + <dd lay-unselect><a id="logout">閫�鍑�</a></dd> + </dl> + </li> + <li class="layui-nav-item" lay-unselect> + <a ew-event="theme" title="涓婚"><i class="layui-icon layui-icon-more-vertical"></i></a> + </li> + </ul> + </div> - <ul class="layui-nav layui-nav-tree" lay-shrink="all" id="LAY-system-side-menu" lay-filter="layadmin-system-side-menu"> - </ul> - </div> - </div> - <!-- 椤甸潰鏍囩 --> - <div class="layadmin-pagetabs" id="LAY_app_tabs"> - <div class="layui-icon layadmin-tabs-control layui-icon-prev" layadmin-event="leftPage"></div> - <div class="layui-icon layadmin-tabs-control layui-icon-next" layadmin-event="rightPage"></div> - <div class="layui-icon layadmin-tabs-control layui-icon-down"> - <ul class="layui-nav layadmin-tabs-select" lay-filter="layadmin-pagetabs-nav"> - <li class="layui-nav-item" lay-unselect> - <a href="javascript:;"></a> - <dl class="layui-nav-child layui-anim-fadein"> - <dd layadmin-event="closeThisTabs"><a href="javascript:;">鍏抽棴褰撳墠鏍囩椤�</a></dd> - <dd layadmin-event="closeOtherTabs"><a href="javascript:;">鍏抽棴鍏跺畠鏍囩椤�</a></dd> - <dd layadmin-event="closeAllTabs"><a href="javascript:;">鍏抽棴鍏ㄩ儴鏍囩椤�</a></dd> - </dl> - </li> - </ul> - </div> - <div class="layui-tab" lay-unauto lay-allowClose="true" lay-filter="layadmin-layout-tabs"> - <ul class="layui-tab-title" id="LAY_app_tabsheader"> - <li lay-id="home/console.html" lay-attr="home/console.html" class="layui-this"><i class="layui-icon layui-icon-home"></i></li> - </ul> - </div> - </div> - - <!-- 涓讳綋鍐呭 --> - <div class="layui-body" id="LAY_app_body"> - <div class="layadmin-tabsbody-item layui-show"> - <iframe src="home/console.html" frameborder="0" class="layadmin-iframe"></iframe> - </div> - </div> - - <div class="layui-footer"> - Copyright 漏 2015 All Rights Reserved. <a href="http://www.zoneyung.com" target="_blank">娴欐睙涓壃绔嬪簱鎶�鏈湁闄愬叕鍙�</a> 淇濈暀鎵�鏈夋潈鍒� - </div> - <!-- 杈呭姪鍏冪礌锛屼竴鑸敤浜庣Щ鍔ㄨ澶囦笅閬僵 --> - <div class="layadmin-body-shade" layadmin-event="shade"></div> + <!-- 渚ц竟鏍� --> + <div class="layui-side"> + <div class="layui-side-scroll"> + <ul id="menu-main" class="layui-nav layui-nav-tree arrow2" lay-filter="admin-side-nav" lay-shrink="_all"> + </ul> </div> </div> - <script> - layui.config({ - base: '../static/layuiadmin/' //闈欐�佽祫婧愭墍鍦ㄨ矾寰� - }).extend({ - index: 'lib/index' //涓诲叆鍙fā鍧� - }).use(['index','element'], function () { - var element = layui.element; - var $ = layui.jquery; + <!-- 涓讳綋閮ㄥ垎 --> + <div class="layui-body"></div> + <!-- 搴曢儴 --> + <div class="layui-footer layui-text"> + copyright 漏 2022 <a href="http://www.zoneyung.com" target="_blank">娴欐睙涓壃绔嬪簱鎶�鏈湁闄愬叕鍙�</a> all rights reserved. + <span class="pull-right">Version 1.0.0</span> + </div> - // 鏇挎崲閫�鍑烘寜閽彉閲� - var logout = document.getElementById('logout'); - var url = logout.getAttribute('href'); - logout.setAttribute('href', baseUrl + url); +</div> - $('#person-username').text(localStorage.getItem('username')); +<!--鍒濆鍖栧姞杞藉眰--> +<div class="layuimini-loader"> + <div class="layuimini-loader-inner"></div> +</div> - $(function () { - if ("" === localStorage.getItem('token')){ - top.location.href = baseUrl+"/login"; - } - - // 婵�娲荤爜楠岃瘉 - $.ajax({ - url: baseUrl+"/system/activation/auth", - dataType:'json', - method: 'GET', - async: false, - success: function (res) { - if (res.code === 200) { - $("#activation-icon").hide(); - } else { - $("#activation-icon").click(); - } - } - }); - - getMenu() - - // 娉ㄩ攢 - $(document).on('click','#logout',function () { - localStorage.removeItem("token"); - }); - - }); - - // 鍔犺浇鑿滃崟 - function getMenu() { - $.ajax({ - url: baseUrl+ "/menu/auth", - headers: {'token': localStorage.getItem('token')}, - method: 'POST', - success: function (res) { - if (res.code === 200){ - var menuHtml = ""; - if (res.data != null){ - for (var i = 0; i < res.data.length; i++) { - menuHtml += '<li data-name="' + res.data[i].menuCode +'" class="layui-nav-item">\n'; - menuHtml += '<a href="javascript:;" lay-tips=' +res.data[i].menu+ ' lay-direction="2">\n'; - menuHtml += '<i class="layui-icon '+ res.data[i].menuIcon +'"></i>\n'; - menuHtml += ' <cite>' +res.data[i].menu+ '</cite>\n'; - menuHtml += '</a>\n'; - menuHtml += '<dl class="layui-nav-child">\n'; - for (var j = 0; j < res.data[i].subMenu.length; j++) { - menuHtml += '<dd><a lay-href="' +res.data[i].subMenu[j].code+ '?resourceId='+ res.data[i].subMenu[j].id + '">' + res.data[i].subMenu[j].name + '</a></dd>\n'; - } - menuHtml += '</dl>\n'; - menuHtml += '</li>\n'; - } - } - $('#LAY-system-side-menu').append(menuHtml); - element.init(); - } else if (res.code === 403){ - top.location.href = baseUrl+"/login"; - }else { - layer.alert(res.msg) - } - } - }); - } +<script type="text/javascript" src="../static/js/jquery/jquery-3.3.1.min.js"></script> +<script type="text/javascript" src="../static/layui/layui.js"></script> +<script type="text/javascript" src="../static/js/handlebars/handlebars-v4.5.3.js"></script> +<script type="text/javascript" src="../static/js/common.js"></script> +<script> + console.log('%c 涓壃绔嬪簱骞冲彴 %c 1.0.0','background-color:rgb(53,73,94);color: #fff;border-radius:2px 0 0 2px;padding:2px 4px;','background-color:rgb(25,190,107);color: #fff;border-radius:0 2px 2px 0;padding:2px 4px;font: 9pt "Apercu Regular", Georgia, "Times New Roman", Times, serif;'); + $(function () { + if ("" === localStorage.getItem('token')) { + top.location.href = baseUrl + "/login"; + } }); - </script> + + layui.config({ + base: baseUrl + "/static/layui/lay/modules/" + }).extend({ + notice: 'notice/notice', + }).use(['index', 'element', 'layer', 'admin', 'notice'], function () { + var $ = layui.jquery; + var index = layui.index; + var element = layui.element; + var layer = layui.layer; + var admin = layui.admin; + var notice = layui.notice; + + var easywebIframeMsg = localStorage.getItem("easyweb-iframe"); + if (!isEmpty(easywebIframeMsg)) { + var easywebIframeObj = JSON.parse(easywebIframeMsg); + if (easywebIframeObj.defaultTheme === undefined) { + admin.changeTheme("theme-colorful"); + } + } + + $.ajax({ + url: baseUrl + "/menu/auth", + headers: {'token': localStorage.getItem('token')}, + method: 'POST', + // async: false, + success: function (res) { + // 鍏抽棴鍔犺浇鍔ㄧ敾 + $('.layuimini-loader').fadeOut(); + if (res.code === 200) { + var tpl = $('#menuTpl').html(); + var template = Handlebars.compile(tpl); + var html = template(res); + $("#menu-main").html(html); + element.init(); + } else if (res.code === 403) { + top.location.href = baseUrl + "/login"; + } else { + layer.msg(res.msg, {icon: 2}); + } + } + }); + + // 榛樿鍔犺浇涓婚〉 + index.loadHome({ + menuPath: baseUrl+'/views/home/console.html', + menuName: '<i class="layui-icon layui-icon-home"></i>' + }); + + $('#username').text(localStorage.getItem('username')); + + $(document).on('click','#logout', function () { + window.location.href = "login.html"; + localStorage.removeItem('token'); + localStorage.removeItem('username'); + admin.closeAllTabs(); + }); + + // 鏇挎崲閫�鍑烘寜閽彉閲� + var logout = document.getElementById('logout'); + var url = logout.getAttribute('href'); + logout.setAttribute('href', baseUrl + "/login"); + + }); +</script> +<script type="text/html" id="menuTpl"> + {{#each data}} + <li class="layui-nav-item"> + <a><i class="layui-icon {{this.menuIcon}}"></i> <cite>{{this.menu}}</cite></a> + <dl class="layui-nav-child"> + {{#each this.subMenu}} + <dd><a lay-href="{{this.code}}?resourceId={{this.id}}">{{this.name}}</a></dd> + {{/each}} + </dl> + </li> + {{/each}} +</script> </body> </html> diff --git a/src/main/webapp/views/order/order.html b/src/main/webapp/views/order/order.html index f540f1e..101cce5 100644 --- a/src/main/webapp/views/order/order.html +++ b/src/main/webapp/views/order/order.html @@ -66,8 +66,25 @@ </a> </span> </script> +<!--<script type="text/html" id="settleTpl">--> +<!-- <span name="settle" class="layui-badge layui-badge-gray">{{d.settle$}}</span>--> +<!--</script>--> <script type="text/html" id="settleTpl"> - <span name="settle" class="layui-badge layui-badge-gray">{{d.settle$}}</span> + <span name="settle" + {{# if( d.settle === 1){ }} + class="layui-badge layui-badge-red" + {{# }else if(d.settle === 2){ }} + class="layui-badge layui-badge-green" + {{# }else if(d.settle === 3){ }} + class="layui-badge layui-badge-gray" + {{# }else if(d.settle === 4){ }} + class="layui-badge layui-badge-blue" + {{# }else if(d.settle === 5){ }} + class="layui-badge layui-badge-gray" + {{# }else if(d.settle === 6){ }} + class="layui-badge layui-badge-gray" + {{# } }} + >{{d.settle$}}</span> </script> <!-- 琛ㄥ崟寮圭獥 --> <script type="text/html" id="editDialog"> diff --git a/src/main/webapp/views/tpl/alarm-detl.html b/src/main/webapp/views/tpl/alarm-detl.html new file mode 100644 index 0000000..1539922 --- /dev/null +++ b/src/main/webapp/views/tpl/alarm-detl.html @@ -0,0 +1,52 @@ +<style> + pre { + font-family: 'DejaVu Sans Mono','Courier New',monospace; + padding: 15px 10px; + line-height: 17px; + margin: 5px; + word-wrap: break-word; + border: solid 1px #9e9e9e; + border-radius: 3px; + color: #729fcf; + } + .string { color: #4e9a06; } + .number { color: #ad7fa8; } + .boolean { color: #c4a000; } + .null { color: #babdb6; } + .key { color: #204a87; } +</style> + +<div style="padding: 25px 25px 15px 25px;" id="callbackDialog"> + <fieldset class="layui-elem-field layui-field-title"> + <legend>鍩虹淇℃伅</legend> + </fieldset> + <div class="layui-text" style="margin-bottom: 5px;"> + 浜嬩欢缂栧彿锛歿{d.request}}<br /> + 璁惧缂栧彿锛歿{d.response.sensorId$}}<br /> + 璁惧绫诲瀷锛歿{d.response.sensorType$}}<br /> + </div> + <fieldset class="layui-elem-field layui-field-title" style="margin-top: 30px;"> + <legend>鎶ヨ淇℃伅</legend> + </fieldset> + <div class="layui-text" style="margin-bottom: 5px;"> + 鍙戦�佹椂闂达細{{d.response.createTime$}}<br /> + 鏁呴殰鎻忚堪锛歿{d.response.desc}}<br /> + </div> + <div class="text-center" style="padding-top: 15px;text-align: right"> + <button class="layui-btn layui-btn-normal" ew-event="closeDialog">鍏抽棴</button> + </div> +</div> + +<!-- js閮ㄥ垎 --> +<script> + layui.config({ + base: baseUrl + "/static/layui/lay/modules/" + }).use(['layer', 'admin'], function () { + var $ = layui.jquery; + var layer = layui.layer; + var admin = layui.admin; + + var layerData = admin.getLayerData('#callbackDialog'); + }); + +</script> diff --git a/src/main/webapp/views/tpl/theme/img/ic_loading.gif b/src/main/webapp/views/tpl/theme/img/ic_loading.gif new file mode 100644 index 0000000..071ecd6 --- /dev/null +++ b/src/main/webapp/views/tpl/theme/img/ic_loading.gif Binary files differ diff --git a/src/main/webapp/views/tpl/theme/img/icon_date.png b/src/main/webapp/views/tpl/theme/img/icon_date.png new file mode 100644 index 0000000..5a50673 --- /dev/null +++ b/src/main/webapp/views/tpl/theme/img/icon_date.png Binary files differ diff --git a/src/main/webapp/views/tpl/theme/img/icon_search.png b/src/main/webapp/views/tpl/theme/img/icon_search.png new file mode 100644 index 0000000..7db69d2 --- /dev/null +++ b/src/main/webapp/views/tpl/theme/img/icon_search.png Binary files differ diff --git a/src/main/webapp/views/tpl/theme/img/theme-admin.png b/src/main/webapp/views/tpl/theme/img/theme-admin.png new file mode 100644 index 0000000..6b4696f --- /dev/null +++ b/src/main/webapp/views/tpl/theme/img/theme-admin.png Binary files differ diff --git a/src/main/webapp/views/tpl/theme/img/theme-blue.png b/src/main/webapp/views/tpl/theme/img/theme-blue.png new file mode 100644 index 0000000..33c9d24 --- /dev/null +++ b/src/main/webapp/views/tpl/theme/img/theme-blue.png Binary files differ diff --git a/src/main/webapp/views/tpl/theme/img/theme-colorful.png b/src/main/webapp/views/tpl/theme/img/theme-colorful.png new file mode 100644 index 0000000..2cbeba0 --- /dev/null +++ b/src/main/webapp/views/tpl/theme/img/theme-colorful.png Binary files differ diff --git a/src/main/webapp/views/tpl/theme/img/theme-cyan.png b/src/main/webapp/views/tpl/theme/img/theme-cyan.png new file mode 100644 index 0000000..368c04f --- /dev/null +++ b/src/main/webapp/views/tpl/theme/img/theme-cyan.png Binary files differ diff --git a/src/main/webapp/views/tpl/theme/img/theme-green.png b/src/main/webapp/views/tpl/theme/img/theme-green.png new file mode 100644 index 0000000..f7a5ca5 --- /dev/null +++ b/src/main/webapp/views/tpl/theme/img/theme-green.png Binary files differ diff --git a/src/main/webapp/views/tpl/theme/img/theme-my.png b/src/main/webapp/views/tpl/theme/img/theme-my.png new file mode 100644 index 0000000..9fd7419 --- /dev/null +++ b/src/main/webapp/views/tpl/theme/img/theme-my.png Binary files differ diff --git a/src/main/webapp/views/tpl/theme/img/theme-pink.png b/src/main/webapp/views/tpl/theme/img/theme-pink.png new file mode 100644 index 0000000..6088b1e --- /dev/null +++ b/src/main/webapp/views/tpl/theme/img/theme-pink.png Binary files differ diff --git a/src/main/webapp/views/tpl/theme/img/theme-purple.png b/src/main/webapp/views/tpl/theme/img/theme-purple.png new file mode 100644 index 0000000..072f439 --- /dev/null +++ b/src/main/webapp/views/tpl/theme/img/theme-purple.png Binary files differ diff --git a/src/main/webapp/views/tpl/theme/img/theme-red.png b/src/main/webapp/views/tpl/theme/img/theme-red.png new file mode 100644 index 0000000..db9922e --- /dev/null +++ b/src/main/webapp/views/tpl/theme/img/theme-red.png Binary files differ diff --git a/src/main/webapp/views/tpl/theme/img/theme-white.png b/src/main/webapp/views/tpl/theme/img/theme-white.png new file mode 100644 index 0000000..4b4cb1f --- /dev/null +++ b/src/main/webapp/views/tpl/theme/img/theme-white.png Binary files differ diff --git a/src/main/webapp/views/tpl/tpl-note.html b/src/main/webapp/views/tpl/tpl-note.html new file mode 100644 index 0000000..5910e86 --- /dev/null +++ b/src/main/webapp/views/tpl/tpl-note.html @@ -0,0 +1,206 @@ +<div class="layui-card-header">鏈湴渚跨</div> +<div class="note-wrapper"></div> +<div class="note-empty"> + <i class="layui-icon layui-icon-face-surprised"></i> + <p>娌℃湁渚跨</p> +</div> +<div class="btn-circle" id="noteAddBtn" title="娣诲姞渚跨" style="position: absolute;"> + <i class="layui-icon layui-icon-add-1"></i> +</div> + +<script> + layui.use(['layer', 'form', 'util', 'admin'], function () { + var $ = layui.jquery; + var layer = layui.layer; + var util = layui.util; + var admin = layui.admin; + var dataList = []; // 渚跨鍒楄〃 + var $noteWrapper = $('.note-wrapper'); + + /* 娓叉煋鍒楄〃 */ + function renderList() { + $noteWrapper.empty(); + dataList = layui.data(admin.setter.tableName).notes; + if (dataList === undefined) dataList = []; + for (var i = 0; i < dataList.length; i++) { + var item = dataList[i]; + $noteWrapper.prepend([ + '<div class="note-item" data-id="', item.id, '">', + ' <div class="note-item-content">', util.escape(item.content), '</div>', + ' <div class="note-item-time">', item.time, '</div>', + ' <i class="layui-icon layui-icon-close-fill note-item-del"></i>', + '</div>' + ].join('')); + } + $('.note-empty').css('display', dataList.length === 0 ? 'block' : 'none'); + // 鐐瑰嚮淇敼 + $('.note-item').click(function () { + var index = parseInt($(this).attr('data-id')); + showNote(dataList[index]); + }); + // 鐐瑰嚮鍒犻櫎 + $('.note-item-del').click(function (e) { + var id = parseInt($(this).parent().attr('data-id')); + layer.confirm('纭鍒犻櫎鍚楋紵', { + skin: 'layui-layer-admin', + shade: .1, + shadeClose: true + }, function (index) { + layer.close(index); + dataList.splice(id, 1); + for (var i = 0; i < dataList.length; i++) dataList[i].id = i; + putDataList(); + renderList(); + }); + e.stopPropagation(); + }); + } + + renderList(); + + /* 娣诲姞 */ + $('#noteAddBtn').click(function () { + showNote(); + }); + + // 鏄剧ず缂栬緫寮圭獥 + function showNote(data) { + var id = data ? data.id : undefined, content = data ? data.content : ''; + admin.open({ + id: 'layer-note-edit', + title: '渚跨', + type: 1, + area: 'auto', + offset: '50px', + shadeClose: true, + content: '<textarea id="noteEditText" placeholder="璇疯緭鍏ュ唴瀹�" style="width: 280px;height: 150px;border: none;color: #666666;word-wrap: break-word;padding: 10px 20px;resize: vertical;">' + content + '</textarea>', + success: function () { + $('#noteEditText').change(function () { + content = $(this).val(); + }); + }, + end: function () { + if (id !== undefined) { + if (!content) { + dataList.splice(id, 1); + for (var i = 0; i < dataList.length; i++) dataList[i].id = i; + } else if (content !== dataList[id].content) { + dataList[id].content = content; + dataList[id].time = util.toDateString(new Date(), 'yyyy-MM-dd HH:mm'); + } + } else if (content) { + dataList.push({ + id: dataList.length, content: content, + time: util.toDateString(new Date(), 'yyyy-MM-dd HH:mm') + }); + } + putDataList(); + renderList(); + } + }); + } + + /* 鏇存柊鏈湴缂撳瓨 */ + function putDataList() { + layui.data(admin.setter.tableName, {key: 'notes', value: dataList}); + } + + }); +</script> + +<style> + .note-wrapper { + padding: 15px 0 15px 15px; + background-color: #fbfbfb; + position: absolute; + top: 43px; + left: 0; + right: 0; + bottom: 0; + overflow-y: auto; + -webkit-overflow-scrolling: touch; + } + + .note-wrapper .note-item { + display: inline-block; + width: 110px; + padding: 12px; + cursor: pointer; + position: relative; + border-radius: 8px; + margin: 0 15px 15px 0; + border: 1px solid #eeeeee; + background-color: #ffffff; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + -webkit-transition: all .3s ease; + -moz-transition: all .3s ease; + -ms-transition: all .3s ease; + -o-transition: all .3s ease; + transition: all .3s ease; + } + + .note-wrapper .note-item:hover { + box-shadow: 0 0 8px rgba(0, 0, 0, .05); + -webkit-transform: scale(1.02); + -moz-transform: scale(1.02); + -ms-transform: scale(1.02); + -o-transform: scale(1.02); + transform: scale(1.02); + } + + .note-wrapper .note-item .note-item-content { + color: #666; + height: 80px; + font-size: 14px; + overflow: hidden; + word-break: break-all; + } + + .note-wrapper .note-item .note-item-time { + color: #999; + font-size: 12px; + margin-top: 8px; + } + + .note-wrapper .note-item .note-item-del { + position: absolute; + top: 2px; + right: 2px; + color: #FF5722; + font-size: 24px; + height: 24px; + width: 24px; + background-color: #fff; + border-radius: 50%; + visibility: hidden; + -webkit-transition: all .3s ease; + -moz-transition: all .3s ease; + -ms-transition: all .3s ease; + -o-transition: all .3s ease; + transition: all .3s ease; + opacity: 0; + } + + .note-wrapper .note-item:hover .note-item-del { + visibility: visible; + opacity: 1; + } + + .note-empty { + color: #999; + padding: 80px 0; + text-align: center; + display: none; + position: relative; + z-index: 1 + } + + .note-empty .layui-icon { + font-size: 60px; + margin-bottom: 10px; + display: inline-block; + } +</style> \ No newline at end of file diff --git a/src/main/webapp/views/tpl/tpl-theme.html b/src/main/webapp/views/tpl/tpl-theme.html new file mode 100644 index 0000000..7a1add0 --- /dev/null +++ b/src/main/webapp/views/tpl/tpl-theme.html @@ -0,0 +1,229 @@ +<div class="layui-card-header">涓婚璁剧疆</div> +<div class="more-theme-list"> + <div class="more-theme-item" data-theme="theme-normal"> + <img src="tpl/theme/img/theme-admin.png"/> + </div> + <div class="more-theme-item" data-theme="theme-cyan"> + <img src="tpl/theme/img/theme-cyan.png"/> + </div> + <div class="more-theme-item" data-theme="theme-white"> + <img src="tpl/theme/img/theme-white.png"/> + </div> + <div class="more-theme-item" data-theme="theme-pink"> + <img src="tpl/theme/img/theme-pink.png"/> + </div> + <div class="more-theme-item active" data-theme="theme-colorful"> + <img src="tpl/theme/img/theme-colorful.png"/> + </div> + <div class="more-theme-item" data-theme="theme-blue"> + <img src="tpl/theme/img/theme-blue.png"/> + </div> + <div class="more-theme-item" data-theme="theme-green"> + <img src="tpl/theme/img/theme-green.png"/> + </div> + <div class="more-theme-item" data-theme="theme-purple"> + <img src="tpl/theme/img/theme-purple.png"/> + </div> +<!-- <div class="more-theme-item" data-theme="theme-red">--> +<!-- <img src="tpl/theme/img/theme-red.png"/>--> +<!-- </div>--> + <div class="more-theme-item" data-theme="theme-my"> + <img src="tpl/theme/img/theme-my.png"/> + </div> +</div> +<!-- 瀵艰埅 --> +<div class="more-menu-list"> +<!-- <a class="more-menu-item" href="https://easyweb.vip/doc/" target="_blank">--> +<!-- <i class="layui-icon layui-icon-read" style="font-size: 19px;"></i> 寮�鍙戞枃妗�--> +<!-- </a>--> +<!-- <a class="more-menu-item" href="https://demo.easyweb.vip/spa" target="_blank">--> +<!-- <i class="layui-icon layui-icon-tabs" style="font-size: 16px;"></i> spa鐗堟湰--> +<!-- </a>--> +<!-- <a class="more-menu-item" href="https://demo.easyweb.vip/theme" target="_blank">--> +<!-- <i class="layui-icon layui-icon-theme"></i> 涓婚鐢熸垚鍣�--> +<!-- </a>--> +</div> +<!-- 鎺у埗寮�鍏� --> +<div class="layui-form" style="margin: 25px 0;" lay-filter="more-set-form"> + <div class="layui-form-item"> + <label class="set-item-label">椤� 鑴氾細</label> + <div class="set-item-ctrl"> + <input id="setFooter" lay-filter="setFooter" type="checkbox" lay-skin="switch" lay-text="寮�鍚瘄鍏抽棴"> + </div> + <label class="set-item-label"> Tab 璁板繂锛�</label> + <div class="set-item-ctrl"> + <input id="setTab" lay-filter="setTab" type="checkbox" lay-skin="switch" lay-text="寮�鍚瘄鍏抽棴"> + </div> + </div> + <div class="layui-form-item"> + <label class="set-item-label">澶氭爣绛撅細</label> + <div class="set-item-ctrl"> + <input id="setMoreTab" lay-filter="setMoreTab" type="checkbox" lay-skin="switch" lay-text="寮�鍚瘄鍏抽棴"> + </div> + <label class="set-item-label">鍒囨崲鍒锋柊锛�</label> + <div class="set-item-ctrl"> + <input id="setRefresh" lay-filter="setRefresh" type="checkbox" lay-skin="switch" lay-text="寮�鍚瘄鍏抽棴"> + </div> + </div> + <div class="layui-form-item"> + <label class="set-item-label">瀵艰埅绠ご锛�</label> + <div class="set-item-ctrl"> + <input lay-filter="navArrow" type="radio" value="" title="榛樿" name="navArrow"> + <input lay-filter="navArrow" type="radio" value="arrow2" title="绠ご" name="navArrow"> + <input lay-filter="navArrow" type="radio" value="arrow3" title="鍔犲彿" name="navArrow"> + </div> + </div> +</div> + +<script> + layui.use(['form', 'admin'], function () { + var $ = layui.jquery; + var form = layui.form; + var admin = layui.admin; + var setter = admin.setter; + var $body = $('body'); + + // 鍒囨崲涓婚 + var $themItem = $('.more-theme-item'); + $themItem.click(function () { + $themItem.removeClass('active'); + $(this).addClass('active'); + admin.changeTheme($(this).data('theme')); + }); + var theme = $body.data('theme'); + if (theme) { + $themItem.removeClass('active'); + $themItem.filter('[data-theme="' + theme + '"]').addClass('active'); + } + + // 鍏抽棴/寮�鍚〉鑴� + form.on('switch(setFooter)', function (data) { + var checked = data.elem.checked; + admin.putSetting('closeFooter', !checked); + checked ? $body.removeClass('close-footer') : $body.addClass('close-footer'); + }); + $('#setFooter').prop('checked', !$body.hasClass('close-footer')); + + // 鍏抽棴/寮�鍚疶ab璁板繂鍔熻兘 + form.on('switch(setTab)', function (data) { + layui.index.setTabCache(data.elem.checked); + }); + $('#setTab').prop('checked', setter.cacheTab); + + // 鍏抽棴/寮�鍚鏍囩 + form.on('switch(setMoreTab)', function (data) { + var checked = data.elem.checked; + admin.putSetting('pageTabs', checked); + admin.putTempData('indexTabs', undefined); + location.reload(); + }); + $('#setMoreTab').prop('checked', setter.pageTabs); + + // 鍒囨崲Tab鑷姩鍒锋柊 + var $mainTab = $('.layui-body>.layui-tab[lay-filter="admin-pagetabs"]'); + form.on('switch(setRefresh)', function (data) { + var checked = data.elem.checked; + admin.putSetting('tabAutoRefresh', checked); + checked ? $mainTab.attr('lay-autoRefresh', 'true') : $mainTab.removeAttr('lay-autoRefresh'); + }); + $('#setRefresh').prop('checked', setter.tabAutoRefresh === true); + + // 瀵艰埅灏忎笁瑙� + var $leftNav = $('.layui-layout-admin>.layui-side>.layui-side-scroll>.layui-nav'); + form.on('radio(navArrow)', function (data) { + $leftNav.removeClass('arrow2 arrow3'); + data.value && $leftNav.addClass(data.value); + admin.putSetting('navArrow', data.value); + }); + var navArrow = $leftNav.hasClass('arrow2') ? 'arrow2' : $leftNav.hasClass('arrow3') ? 'arrow3' : ''; + $('[name="navArrow"][value="' + navArrow + '"]').prop('checked', true); + + form.render('radio', 'more-set-form'); + form.render('checkbox', 'more-set-form'); + }); +</script> + +<style> + /* theme */ + .more-theme-list { + padding-left: 15px; + padding-top: 20px; + margin-bottom: 10px; + } + + .more-theme-item { + padding: 4px; + margin: 0 6px 15px 0; + display: inline-block; + border: 1px solid transparent; + } + + .more-theme-item img { + width: 80px; + height: 50px; + background: #f5f7f9; + box-sizing: border-box; + border: 1px solid #f5f7f9; + cursor: pointer; + } + + .more-theme-item:hover, .more-theme-item.active { + border-color: #5FB878; + } + + .more-menu-item { + color: #595959; + height: 50px; + line-height: 50px; + font-size: 16px; + padding: 0 25px; + border-bottom: 1px solid #e8e8e8; + font-style: normal; + display: block; + } + + /* menu */ + .more-menu-item:first-child { + border-top: 1px solid #e8e8e8; + } + + .more-menu-item:hover { + color: #595959; + background: #f6f6f6; + } + + .more-menu-item .layui-icon { + font-size: 18px; + padding-right: 10px; + } + + .more-menu-item:after { + color: #8c8c8c; + right: 16px; + content: "\e602"; + position: absolute; + font-family: layui-icon !important; + } + + .more-menu-item.no-icon:after { + display: none; + } + + /* setting from */ + .set-item-label { + height: 38px; + line-height: 38px; + padding-left: 20px; + display: inline-block; + } + + .set-item-ctrl { + height: 38px; + line-height: 38px; + display: inline-block; + } + + .set-item-ctrl > * { + margin: 0 !important; + } +</style> -- Gitblit v1.9.1