style: pear admin layui 更新到 4.0 正式版

This commit is contained in:
zhengxinonly
2023-11-26 00:51:02 +08:00
parent 3086c1a1fa
commit 2ffddda02b
18 changed files with 3689 additions and 3044 deletions
+3
View File
@@ -203,13 +203,16 @@ body,
.pear-admin .auto-theme .layui-nav * { .pear-admin .auto-theme .layui-nav * {
color: white !important; color: white !important;
} }
.pear-admin .auto-theme .layui-nav.pear-nav-control .layui-this * { .pear-admin .auto-theme .layui-nav.pear-nav-control .layui-this * {
color: black !important; color: black !important;
} }
.pear-admin .auto-theme .layui-nav .layui-nav-child a { .pear-admin .auto-theme .layui-nav .layui-nav-child a {
color: #5f5f5f !important; color: #5f5f5f !important;
color: rgba(0, 0, 0, 0.8) !important; color: rgba(0, 0, 0, 0.8) !important;
} }
/** 收缩布局 */ /** 收缩布局 */
.pear-mini .layui-side .layui-logo .title { .pear-mini .layui-side .layui-logo .title {
display: none; display: none;
+5
View File
@@ -146,6 +146,11 @@
background-color: #0a0a0a; background-color: #0a0a0a;
} }
.pear-admin-dark .layui-body .layui-tab .layui-tab-close:hover {
border-radius: 50%;
background-color: #0a0a0a !important;
}
.pear-admin-dark .pear-tab-page-menu ul li { .pear-admin-dark .pear-tab-page-menu ul li {
color: #ffffff !important; color: #ffffff !important;
} }
+177 -9
View File
@@ -1,12 +1,180 @@
.demo-login-container { html,
width: 320px; body,
margin: 220px auto 0; .layui-row {
height: 100%;
} }
.demo-login-other .layui-icon { .login-page {
position: relative; width: 100%;
display: inline-block; height: 100%;
margin: 0 2px; overflow-x: hidden;
top: 2px; overflow-y: auto;
font-size: 26px; }
.login-bg {
height: 100%;
box-sizing: border-box;
background-color: rgb(250, 250, 250);
display: flex;
align-items: center;
justify-content: center;
}
.login-bg-img {
width: 90%;
display: inline-block;
margin: 0 auto;
}
.login-form {
height: 100%;
box-sizing: border-box;
display: flex;
align-items: center;
justify-content: center;
background-color: #fff;
}
.form-center {
background: #fff;
box-sizing: border-box;
flex-flow: row wrap;
width: 100%;
display: flex;
justify-content: center;
align-items: center;
text-align: center;
}
.form-center-box {
width: 360px;
}
.top-log-title {
align-items: center;
justify-content: center;
display: flex;
margin-bottom: 30px;
}
.top-log {
width: 50px;
border-radius: 12px;
margin-right: 20px;
height: 50px;
}
.top-log-title span {
font-size: 32px;
font-weight: 700;
color: var(--global-primary-color);
}
.top-desc {
font-size: 14px;
color: #808695;
}
.tab-log-method {
width: 100%;
display: flex;
padding: 20px 0px;
}
.tab-log-method-item {
flex: 1;
box-sizing: border-box;
padding: 5px 50px;
text-align: right;
color: #1f2225;
font-size: 16px;
}
.tab-log-method-item:nth-child(2) {
text-align: left;
}
.tab-log-method-item > span {
display: inline-block;
width: 40px;
text-align: center;
height: 30px;
border-bottom: 2px solid transparent;
}
.tab-log-method-item > span:hover {
cursor: pointer;
color: #16baaa;
border-bottom: 2px solid #16baaa;
}
.tab-log-verification {
width: 100%;
display: flex;
}
.verification-text {
flex: 2;
box-sizing: border-box;
margin-right: 20px;
}
.verification-img {
flex: 1;
box-sizing: border-box;
border: 1px solid #eeeeee;
border-radius: 4px;
height: 40px;
overflow: hidden;
text-align: center;
}
.remember-passsword {
margin: 20px 0;
width: 100%;
display: flex;
box-sizing: border-box;
}
.remember-cehcked {
flex: 1;
text-align: left;
}
.greenText {
color: #16baaa;
cursor: pointer;
}
.login-btn {
width: 100%;
box-sizing: border-box;
}
.login-btn > .layui-btn {
width: 100%;
}
.other-login {
width: 100%;
box-sizing: border-box;
margin: 20px 0 0;
text-align: left;
display: flex;
}
.other-login-methods {
display: inline-block;
flex: 1;
}
.layui-input {
border-radius: 4px;
line-height: 40px;
height: 40px;
}
.layui-btn {
border-radius: 4px;
background-color: var(--global-primary-color);
} }
+80
View File
@@ -0,0 +1,80 @@
.text-center {
text-align: center;
}
.user-info-head {
width: 110px;
height: 110px;
line-height: 110px;
position: relative;
display: inline-block;
border-radius: 50%;
overflow: hidden;
cursor: pointer;
margin: 0 auto;
}
.layui-line-dash {
border-bottom: 1px dashed #ccc;
margin: 15px 0;
}
.blog-title {
padding-left: 13.5px;
}
.blog-content {
padding-left: 13px;
font-size: 13px;
color: dimgray;
}
.layui-tab-title {
border-bottom: none;
}
.fl-item {
height: 30px;
font-size: 13.5;
}
.dot {
width: 10px;
height: 10px;
border-radius: 50px;
background-color: gray;
display: inline-block;
margin-right: 10px;
}
.message-board {
padding: 0 10px 10px;
}
.message-board li {
position: relative;
padding: 10px 0;
border-bottom: 1px solid #EEE;
}
.message-board li p {
padding-bottom: 10px;
padding-top: 3px;
}
.message-board li>span {
color: #999;
height: 24px;
line-height: 24px;
}
.message-board .message-board-reply {
position: absolute;
right: 20px;
bottom: 12px;
height: 24px;
line-height: 24px;
}
-12
View File
@@ -1,12 +0,0 @@
.demo-reg-container {
width: 320px;
margin: 220px auto 0;
}
.demo-reg-other .layui-icon {
position: relative;
display: inline-block;
margin: 0 2px;
top: 2px;
font-size: 26px;
}
+279
View File
@@ -22,5 +22,284 @@
"href": "view/console/index.html" "href": "view/console/index.html"
} }
] ]
},
{
"id": 9,
"title": "列表页面",
"icon": "layui-icon layui-icon-auz",
"type": 0,
"children": [
{
"id": 91,
"title": "查询表格",
"icon": "layui-icon layui-icon-face-smile",
"type": 1,
"openType": "_component",
"href": "view/listing/table.html"
}
]
},
{
"id": 2,
"title": "扩展组件",
"icon": "layui-icon layui-icon-auz",
"type": 0,
"children": [
{
"id": 23,
"title": "高级栅格",
"icon": "layui-icon layui-icon-face-smile",
"type": 1,
"openType": "_component",
"href": "view/component/grid.html"
},
{
"id": 24,
"title": "消息提示",
"icon": "layui-icon layui-icon-face-smile",
"type": 1,
"openType": "_component",
"href": "view/component/toast.html"
},
{
"id": 25,
"title": "路由过渡",
"icon": "layui-icon layui-icon-face-smile",
"type": 1,
"openType": "_component",
"href": "view/component/nprogress.html"
}
]
},
{
"id": "result",
"title": "结果页面",
"icon": "layui-icon layui-icon-auz",
"type": 0,
"href": "",
"children": [
{
"id": "success",
"title": "成功页面",
"icon": "layui-icon layui-icon-face-smile",
"type": 1,
"openType": "_component",
"href": "view/result/success.html"
},
{
"id": "failure",
"title": "失败页面",
"icon": "layui-icon layui-icon-face-cry",
"type": 1,
"openType": "_component",
"href": "view/result/error.html"
}
]
},
{
"id": "exception",
"title": "异常页面",
"icon": "layui-icon layui-icon-auz",
"type": 0,
"href": "",
"children": [
{
"id": "403",
"title": "403",
"icon": "layui-icon layui-icon-face-smile",
"type": 1,
"openType": "_component",
"href": "view/exception/403.html"
},
{
"id": "404",
"title": "404",
"icon": "layui-icon layui-icon-face-cry",
"type": 1,
"openType": "_component",
"href": "view/exception/404.html"
},
{
"id": "500",
"title": "500",
"icon": "layui-icon layui-icon-face-cry",
"type": 1,
"openType": "_component",
"href": "view/exception/500.html"
}
]
},
{
"id": "open",
"title": "菜单模式",
"icon": "layui-icon layui-icon-auz",
"type": 0,
"children": [
{
"id": "a",
"title": "普通路由",
"icon": "layui-icon layui-icon-face-smile",
"type": 1,
"openType": "_component",
"href": "view/result/success.html"
},
{
"id": "b",
"title": "嵌套网页",
"icon": "layui-icon layui-icon-face-cry",
"type": 1,
"openType": "_iframe",
"href": "http://www.layui-vue.com"
},
{
"id": "c",
"title": "新建标签",
"icon": "layui-icon layui-icon-face-cry",
"type": 1,
"openType": "_blank",
"href": "http://www.layui-vue.com"
},
{
"id": "d",
"title": "弹窗网页",
"icon": "layui-icon layui-icon-face-cry",
"type": 1,
"openType": "_layer",
"href": "http://www.layui-vue.com"
}
]
},
{
"id": "deep",
"title": "深度测试",
"icon": "layui-icon layui-icon-auz",
"type": 0,
"href": "",
"children": [
{
"id": "deep1-1",
"title": "二级菜单",
"icon": "layui-icon layui-icon-face-smile",
"type": 0,
"openType": "_component",
"href": "view/result/success.html",
"children": [
{
"id": "deep1-1-1",
"title": "三级菜单",
"icon": "layui-icon layui-icon-face-smile",
"type": 0,
"openType": "_component",
"href": "view/result/success.html",
"children": [
{
"id": "deep1-1-1-1",
"title": "四级菜单",
"icon": "layui-icon layui-icon-face-smile",
"type": 1,
"openType": "_component",
"href": "view/result/success.html"
},
{
"id": "deep1-1-1-2",
"title": "四级菜单",
"icon": "layui-icon layui-icon-face-cry",
"type": 1,
"openType": "_blank",
"href": "http://www.layui-vue.com"
}
]
},
{
"id": "deep1-1-2",
"title": "三级菜单",
"icon": "layui-icon layui-icon-face-cry",
"type": 0,
"openType": "_blank",
"href": "http://www.layui-vue.com",
"children": [
{
"id": "deep1-1-2-1",
"title": "四级菜单",
"icon": "layui-icon layui-icon-face-smile",
"type": 1,
"openType": "_component",
"href": "view/result/success.html"
},
{
"id": "deep1-1-2-2",
"title": "四级菜单",
"icon": "layui-icon layui-icon-face-cry",
"type": 1,
"openType": "_blank",
"href": "http://www.layui-vue.com"
}
]
}
]
},
{
"id": "deep1-2",
"title": "二级菜单",
"icon": "layui-icon layui-icon-face-cry",
"type": 0,
"openType": "_blank",
"href": "http://www.layui-vue.com",
"children": [
{
"id": "deep1-2-1",
"title": "三级菜单",
"icon": "layui-icon layui-icon-face-smile",
"type": 0,
"openType": "_component",
"href": "view/result/success.html",
"children": [
{
"id": "deep1-2-1-1",
"title": "四级菜单",
"icon": "layui-icon layui-icon-face-smile",
"type": 1,
"openType": "_component",
"href": "view/result/success.html"
},
{
"id": "deep1-2-1-2",
"title": "四级菜单",
"icon": "layui-icon layui-icon-face-cry",
"type": 1,
"openType": "_blank",
"href": "http://www.layui-vue.com"
}
]
},
{
"id": "deep1-2-2",
"title": "三级菜单",
"icon": "layui-icon layui-icon-face-cry",
"type": 0,
"openType": "_blank",
"href": "http://www.layui-vue.com",
"children": [
{
"id": "deep1-2-2-1",
"title": "四级菜单",
"icon": "layui-icon layui-icon-face-smile",
"type": 1,
"openType": "_component",
"href": "view/result/success.html"
},
{
"id": "deep1-2-2-2",
"title": "四级菜单",
"icon": "layui-icon layui-icon-face-cry",
"type": 1,
"openType": "_blank",
"href": "http://www.layui-vue.com"
}
]
}
]
}
]
} }
] ]
Binary file not shown.

After

Width:  |  Height:  |  Size: 9.9 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 197 KiB

+35 -23
View File
@@ -94,8 +94,8 @@ hr {
line-height: 0; line-height: 0;
margin: 10px 0; margin: 10px 0;
padding: 0; padding: 0;
border: none !important; border: none;
border-bottom: 1px solid #eee !important; border-bottom: 1px solid #eee;
clear: both; clear: both;
overflow: hidden; overflow: hidden;
background: 0 0; background: 0 0;
@@ -1926,6 +1926,15 @@ a cite {
border-color: #2f363c !important; border-color: #2f363c !important;
color: #2f363c !important; color: #2f363c !important;
} }
hr.layui-border-black,
hr.layui-border-blue,
hr.layui-border-cyan,
hr.layui-border-green,
hr.layui-border-orange,
hr.layui-border-purple,
hr.layui-border-red {
border-width: 0 0 1px;
}
.layui-timeline-item:before { .layui-timeline-item:before {
background-color: #eee; background-color: #eee;
} }
@@ -2413,6 +2422,9 @@ a cite {
.layui-input-wrap .layui-input:focus + .layui-input-split { .layui-input-wrap .layui-input:focus + .layui-input-split {
border-color: #16b777; border-color: #16b777;
} }
.layui-input-wrap .layui-input.layui-form-danger:focus + .layui-input-split {
border-color: #ff5722;
}
.layui-input-wrap .layui-input-prefix.layui-input-split { .layui-input-wrap .layui-input-prefix.layui-input-split {
border-width: 0; border-width: 0;
border-right-width: 1px; border-right-width: 1px;
@@ -3803,7 +3815,7 @@ body .layui-table-tips .layui-layer-content {
} }
.layui-menu li { .layui-menu li {
position: relative; position: relative;
margin: 1px 0; margin: 0 0 1px;
line-height: 26px; line-height: 26px;
color: rgba(0, 0, 0, 0.8); color: rgba(0, 0, 0, 0.8);
font-size: 14px; font-size: 14px;
@@ -3871,6 +3883,12 @@ body .layui-table-tips .layui-layer-content {
height: 0; height: 0;
overflow: hidden; overflow: hidden;
} }
.layui-menu .layui-menu-item-down > .layui-menu-body-title > .layui-icon-down {
transform: rotate(180deg);
}
.layui-menu .layui-menu-item-up > .layui-menu-body-title > .layui-icon-up {
transform: rotate(-180deg);
}
.layui-menu .layui-menu-item-down:hover > .layui-menu-body-title > .layui-icon, .layui-menu .layui-menu-item-down:hover > .layui-menu-body-title > .layui-icon,
.layui-menu .layui-menu-item-up > .layui-menu-body-title:hover > .layui-icon { .layui-menu .layui-menu-item-up > .layui-menu-body-title:hover > .layui-icon {
color: #000; color: #000;
@@ -3917,6 +3935,8 @@ body .layui-table-tips .layui-layer-content {
margin-top: -6px; margin-top: -6px;
line-height: normal; line-height: normal;
font-size: 14px; font-size: 14px;
transition: all 0.2s;
-webkit-transition: all 0.2s;
} }
.layui-menu-body-title > .layui-icon:hover { .layui-menu-body-title > .layui-icon:hover {
transition: all 0.3s; transition: all 0.3s;
@@ -4170,6 +4190,7 @@ body .layui-table-tips .layui-layer-content {
z-index: 0; z-index: 0;
top: 0; top: 0;
border: none; border: none;
background-color: rgba(0, 0, 0, 0.3);
box-shadow: none; box-shadow: none;
} }
.layui-nav-tree .layui-nav-child dd { .layui-nav-tree .layui-nav-child dd {
@@ -4179,15 +4200,11 @@ body .layui-table-tips .layui-layer-content {
color: #fff; color: #fff;
color: rgba(255, 255, 255, 0.7); color: rgba(255, 255, 255, 0.7);
} }
.layui-nav-tree .layui-nav-child,
.layui-nav-tree .layui-nav-child a:hover { .layui-nav-tree .layui-nav-child a:hover {
background: 0 0; background: 0 0;
color: #fff; color: #fff;
} }
.layui-nav-itemed > .layui-nav-child { .layui-nav-itemed > .layui-nav-child,
display: block;
background-color: rgba(0, 0, 0, 0.3) !important;
}
.layui-nav-itemed > .layui-nav-child > .layui-this > .layui-nav-child { .layui-nav-itemed > .layui-nav-child > .layui-this > .layui-nav-child {
display: block; display: block;
} }
@@ -4204,25 +4221,15 @@ body .layui-table-tips .layui-layer-content {
color: #373737; color: #373737;
color: rgba(0, 0, 0, 0.8); color: rgba(0, 0, 0, 0.8);
} }
.layui-nav-tree.layui-bg-gray {
padding: 6px 0;
}
.layui-nav-tree.layui-bg-gray .layui-nav-itemed > a { .layui-nav-tree.layui-bg-gray .layui-nav-itemed > a {
color: #000 !important; color: #000 !important;
} }
.layui-nav.layui-bg-gray .layui-this a { .layui-nav.layui-bg-gray .layui-this a {
color: #16b777; color: #16b777;
} }
.layui-nav-tree.layui-bg-gray .layui-nav-itemed > .layui-nav-child { .layui-nav-tree.layui-bg-gray .layui-nav-child {
padding-left: 11px; padding-left: 11px;
background: 0 0 !important; background: 0 0;
}
.layui-nav-tree.layui-bg-gray .layui-nav-item > a {
padding-top: 0;
padding-bottom: 0;
}
.layui-nav-tree.layui-bg-gray .layui-nav-item > a .layui-nav-more {
padding: 0;
} }
.layui-nav-tree.layui-bg-gray .layui-nav-child dd.layui-this, .layui-nav-tree.layui-bg-gray .layui-nav-child dd.layui-this,
.layui-nav-tree.layui-bg-gray .layui-nav-child dd.layui-this a, .layui-nav-tree.layui-bg-gray .layui-nav-child dd.layui-this a,
@@ -5838,10 +5845,13 @@ html #layuicss-skincodecss {
.layui-code-view:hover > .layui-code-fixbar .layui-code-lang-marker { .layui-code-view:hover > .layui-code-fixbar .layui-code-lang-marker {
display: none; display: none;
} }
.layui-code-theme-dark { .layui-code-theme-dark,
border-width: 1px; .layui-code-theme-dark > .layui-code-header {
border-color: rgb(126 122 122 / 15%); border-color: rgb(126 122 122 / 15%);
background-color: #1f1f1f; background-color: #1f1f1f;
}
.layui-code-theme-dark {
border-width: 1px;
color: #ccc; color: #ccc;
} }
.layui-code-theme-dark > .layui-code-ln-side { .layui-code-theme-dark > .layui-code-ln-side {
@@ -5870,7 +5880,6 @@ html #layuicss-skincodecss {
.layui-code-item-preview { .layui-code-item-preview {
position: relative; position: relative;
padding: 16px; padding: 16px;
overflow: auto;
} }
.layui-code-item-preview > iframe { .layui-code-item-preview > iframe {
position: absolute; position: absolute;
@@ -5918,6 +5927,9 @@ html #layuicss-skincodecss {
height: calc(100vh - 51px) !important; height: calc(100vh - 51px) !important;
box-sizing: border-box; box-sizing: border-box;
} }
.layui-code-full .layui-code-item-preview {
overflow: auto;
}
.layui-code-view.layui-code-hl { .layui-code-view.layui-code-hl {
line-height: 20px !important; line-height: 20px !important;
border-left-width: 1px; border-left-width: 1px;
File diff suppressed because it is too large Load Diff
+34 -2
View File
@@ -130,6 +130,8 @@ layui.define(
/** /**
* @since Pear Admin 4.0 * @since Pear Admin 4.0
*
* 菜单搜索
*/ */
this.menuSearchRender = function (options) { this.menuSearchRender = function (options) {
menuSearch.render({ menuSearch.render({
@@ -171,6 +173,11 @@ layui.define(
}); });
}; };
/**
* @since Pear Admin 4.0
*
* 消息中心
*/
this.messageCenterRender = function (options) { this.messageCenterRender = function (options) {
messageCenter.render({ messageCenter.render({
elem: ".message", elem: ".message",
@@ -184,6 +191,11 @@ layui.define(
$(".layui-logo .title").html(param.logo.title); $(".layui-logo .title").html(param.logo.title);
}; };
/**
* @since Pear Admin 4.0
*
* 侧边菜单
*/
this.menuRender = function (param) { this.menuRender = function (param) {
sideMenu = menu.render({ sideMenu = menu.render({
elem: "sideMenu", elem: "sideMenu",
@@ -210,6 +222,11 @@ layui.define(
}); });
}; };
/**
* @since Pear Admin 4.0
*
* 视图容器
*/
this.bodyRender = function (param) { this.bodyRender = function (param) {
body.on("click", ".refresh", function () { body.on("click", ".refresh", function () {
refresh(); refresh();
@@ -312,6 +329,11 @@ layui.define(
document.documentElement.style.setProperty(variableKey, variableVal); document.documentElement.style.setProperty(variableKey, variableVal);
}; };
/**
* @since Pear Admin 4.0
*
* 主题配置
*/
this.themeRender = function (option) { this.themeRender = function (option) {
if (option.theme.allowCustom === false) { if (option.theme.allowCustom === false) {
$(".setting").remove(); $(".setting").remove();
@@ -415,10 +437,10 @@ layui.define(
var footerDOM = $(".pear-admin .layui-footer"); var footerDOM = $(".pear-admin .layui-footer");
if (footer === true || footer === "true") { if (footer === true || footer === "true") {
footerDOM.removeClass("close"); footerDOM.removeClass("close");
bodyDOM.css("bottom", footerDOM.outerHeight()); bodyDOM.css("height", "calc(100% - 105px)");
} else { } else {
footerDOM.addClass("close"); footerDOM.addClass("close");
bodyDOM.css("bottom", ""); bodyDOM.css("height", "calc(100% - 60px)");
} }
}; };
@@ -466,6 +488,11 @@ layui.define(
}; };
})(); })();
/**
* @since Pear Admin 4.0
*
* 页面刷新
*/
function refresh() { function refresh() {
var refreshA = $(".refresh a"); var refreshA = $(".refresh a");
refreshA.removeClass("layui-icon-refresh-1"); refreshA.removeClass("layui-icon-refresh-1");
@@ -488,6 +515,11 @@ layui.define(
}, 600); }, 600);
} }
/**
* @since Pear Admin 4.0
*
* 菜单折叠
*/
function collapse() { function collapse() {
sideMenu.collapse(); sideMenu.collapse();
var admin = $(".pear-admin"); var admin = $(".pear-admin");
+3 -62
View File
@@ -358,7 +358,6 @@ layui.define(["table", "jquery", "element"], function (exports) {
} }
} }
element.init(); element.init();
downShow(option);
option.done(); option.done();
} }
@@ -368,7 +367,9 @@ layui.define(["table", "jquery", "element"], function (exports) {
option.theme + option.theme +
'"><ul lay-filter="' + '"><ul lay-filter="' +
option.elem + option.elem +
'" class="layui-nav arrow pear-menu layui-nav-tree pear-nav-tree">'; '" class="layui-nav arrow pear-menu layui-nav-tree pear-nav-tree" ' +
(option.accordion ? "lay-accordion" : "") +
">";
$.each(option.data, function (i, item) { $.each(option.data, function (i, item) {
var content = '<li class="layui-nav-item" >'; var content = '<li class="layui-nav-item" >';
if (i == option.defaultOpen) { if (i == option.defaultOpen) {
@@ -684,66 +685,6 @@ layui.define(["table", "jquery", "element"], function (exports) {
return content; return content;
} }
function downShow(option) {
$("body #" + option.elem).on("click", "a[menu-type='0']", function () {
if (!$("#" + option.elem).is(".pear-nav-mini")) {
var superEle = $(this).parent();
var ele = $(this).next(".layui-nav-child");
var heights = ele.children("dd").length * 48;
if ($(this).parent().is(".layui-nav-itemed")) {
if (option.accordion) {
var currentDom = $(this)
.parent()
.siblings(".layui-nav-itemed")
.children(".layui-nav-child");
currentDom.animate(
{
height: "0px",
},
240,
function () {
currentDom.css({
height: "auto",
});
$(this).parent().removeClass("layui-nav-itemed");
$(this)
.find(".layui-nav-itemed")
.removeClass("layui-nav-itemed");
},
);
}
ele.height(0);
ele.animate(
{
height: heights + "px",
},
240,
function () {
ele.css({
height: "auto",
});
},
);
} else {
$(this).parent().addClass("layui-nav-itemed");
ele.animate(
{
height: "0px",
},
240,
function () {
ele.css({
height: "auto",
});
$(this).parent().removeClass("layui-nav-itemed");
},
);
}
}
});
}
/** 二 级 悬 浮 菜 单*/ /** 二 级 悬 浮 菜 单*/
function isHoverMenu(b, option) { function isHoverMenu(b, option) {
if (b) { if (b) {
+7 -6
View File
@@ -121,16 +121,17 @@ layui.define(["jquery", "tools"], function (exports) {
}); });
// 监听键盘事件 // 监听键盘事件
$(document) $(".menu-search-content")
.off("keydown") .off("keydown")
.keydown(function (e) { .keydown(function (e) {
if (e.keyCode === 13 || e.keyCode === 32) { if (e.keyCode === 13 || e.keyCode === 32) {
e.preventDefault(); e.preventDefault();
var id = $(this).attr("smenu-id"); var that = $(".menu-search-list li.this");
var title = $(this).attr("smenu-title"); var id = that.attr("smenu-id");
var url = $(this).attr("smenu-url"); var title = that.attr("smenu-title");
var type = $(this).attr("smenu-type"); var url = that.attr("smenu-url");
var openType = $(this).attr("smenu-open-type"); var type = that.attr("smenu-type");
var openType = that.attr("smenu-open-type");
options.select({ id, title, url, type, openType }); options.select({ id, title, url, type, openType });
+1 -3
View File
@@ -78,7 +78,7 @@ layui.define(["jquery", "element", "dropdown"], function (exports) {
); );
dropdown.render({ dropdown.render({
elem: `#${option.elem} .layui-icon-down`, elem: `#${option.elem} .layui-tab-control > .layui-icon-down`,
trigger: "hover", trigger: "hover",
data: [ data: [
{ {
@@ -580,7 +580,6 @@ layui.define(["jquery", "element", "dropdown"], function (exports) {
*/ */
function createTab(option) { function createTab(option) {
var type = ""; var type = "";
var types = option.type + " ";
if (option.roll == true) { if (option.roll == true) {
type = "layui-tab-roll"; type = "layui-tab-roll";
} }
@@ -592,7 +591,6 @@ layui.define(["jquery", "element", "dropdown"], function (exports) {
} }
var tab = var tab =
'<div class="pear-tab-page ' + '<div class="pear-tab-page ' +
types +
type + type +
' layui-tab" lay-filter="' + ' layui-tab" lay-filter="' +
option.elem + option.elem +
+1 -1
View File
@@ -8,7 +8,7 @@ window.rootPath = (function (src) {
layui layui
.config({ .config({
base: rootPath + "module/", base: rootPath + "module/",
version: "4.0.0-alpha.1", version: "4.0.0",
}) })
.extend({ .extend({
admin: "admin", admin: "admin",
+7 -13
View File
@@ -10,14 +10,14 @@
"collapse": false, "collapse": false,
"control": false, "control": false,
"controlWidth": 500, "controlWidth": 500,
"select": "126", "select": "10",
"async": true "async": true
}, },
"tab": { "tab": {
"enable": true, "enable": true,
"keepState": true, "keepState": true,
"session": true, "session": true,
"preload": true, "preload": false,
"max": "30", "max": "30",
"index": { "index": {
"id": "126", "id": "126",
@@ -26,12 +26,11 @@
} }
}, },
"theme": { "theme": {
"defaultColor": "2", "defaultColor": "1",
"defaultMenu": "dark-theme", "defaultMenu": "dark-theme",
"defaultHeader": "light-theme", "defaultHeader": "light-theme",
"allowCustom": true, "allowCustom": true,
"banner": false, "banner": false
"dark": true
}, },
"colors": [ "colors": [
{ {
@@ -41,26 +40,21 @@
}, },
{ {
"id": "2", "id": "2",
"color": "#009688",
"second": "#ecf5ff"
},
{
"id": "3",
"color": "#36b368", "color": "#36b368",
"second": "#f0f9eb" "second": "#f0f9eb"
}, },
{ {
"id": "4", "id": "3",
"color": "#f6ad55", "color": "#f6ad55",
"second": "#fdf6ec" "second": "#fdf6ec"
}, },
{ {
"id": "5", "id": "4",
"color": "#f56c6c", "color": "#f56c6c",
"second": "#fef0f0" "second": "#fef0f0"
}, },
{ {
"id": "6", "id": "5",
"color": "#3963bc", "color": "#3963bc",
"second": "#ecf5ff" "second": "#ecf5ff"
} }
+108 -83
View File
@@ -7,100 +7,125 @@
content="width=device-width, initial-scale=1, maximum-scale=1" content="width=device-width, initial-scale=1, maximum-scale=1"
/> />
<title>登录</title> <title>登录</title>
{% include 'includes/script.html' %} <link rel="stylesheet" href="/static/component/pear/css/pear.css" />
<link rel="stylesheet" href="/static/admin/css/other/login.css" /> <link rel="stylesheet" href="/static/admin/css/other/login.css" />
<link rel="stylesheet" href="/static/admin/css/variables.css" />
</head> </head>
<body background="/static/admin/images/background.svg"> <body>
<form class="layui-form"> <div class="login-page">
<div class="demo-login-container"> <div class="layui-row">
<div class="layui-form-item"> <div class="layui-col-sm6 login-bg">
<div class="layui-input-wrap"> <img
<div class="layui-input-prefix"> class="login-bg-img"
<i class="layui-icon layui-icon-username"></i> src="/static/admin/images/banner.png"
</div> alt=""
<input
type="text"
name="username"
value="正心全栈编程"
lay-verify="required"
placeholder="用户名"
lay-reqtext="请填写用户名"
autocomplete="off"
class="layui-input"
lay-affix="clear"
/>
</div>
</div>
<div class="layui-form-item">
<div class="layui-input-wrap">
<div class="layui-input-prefix">
<i class="layui-icon layui-icon-password"></i>
</div>
<input
type="password"
name="password"
value="123654"
lay-verify="required"
placeholder="密 码"
lay-reqtext="请填写密码"
autocomplete="off"
class="layui-input"
lay-affix="eye"
/>
</div>
</div>
<div class="layui-form-item">
<input
type="checkbox"
name="remember"
lay-skin="primary"
title="记住密码"
checked
/> />
<a href="#forget" style="float: right; margin-top: 7px">忘记密码?</a>
</div> </div>
<div class="layui-form-item"> <div class="layui-col-sm6 login-form">
<button <div class="layui-form">
class="layui-btn layui-btn-fluid login" <div class="form-center">
lay-submit <div class="form-center-box">
lay-filter="login-in" <div class="top-log-title">
> <img
登录 class="top-log"
</button> src="http://www.layui-vue.com/assets/logo.685dda16.jpg"
</div> alt=""
<div class="layui-form-item demo-login-other"> />
<label>社交账号登录</label> <span>Pear Admin Flask</span>
<span style="padding: 0 21px 0 6px"> </div>
<a href="javascript:;"> <div class="top-desc">
<i 以 超 乎 想 象 的 速 度 构 建 内 部 工 具
class="layui-icon layui-icon-login-qq" </div>
style="color: #3492ed" <div style="margin-top: 30px">
></i <div class="layui-form-item">
></a> <div class="layui-input-wrap">
<a href="javascript:;" <div class="layui-input-prefix">
><i <i class="layui-icon layui-icon-username"></i>
class="layui-icon layui-icon-login-wechat" </div>
style="color: #4daf29" <input
></i lay-verify="required"
></a> placeholder="账户"
<a href="javascript:;" autocomplete="off"
><i name="username"
class="layui-icon layui-icon-login-weibo" value="正心全栈编程"
style="color: #cf1900" class="layui-input"
></i />
></a> </div>
</span> </div>
<a href="#reg">注册帐号</a> <div class="layui-form-item">
<div class="layui-input-wrap">
<div class="layui-input-prefix">
<i class="layui-icon layui-icon-password"></i>
</div>
<input
type="password"
name="password"
value="123654"
lay-verify="required|confirmPassword"
placeholder="密码"
autocomplete="off"
class="layui-input"
lay-affix="eye"
/>
</div>
</div>
<!--
<div class="tab-log-verification">
<div class="verification-text">
<div class="layui-input-wrap">
<div class="layui-input-prefix">
<i class="layui-icon layui-icon-auz"></i>
</div>
<input lay-verify="required" placeholder="验证码" autocomplete="off" class="layui-input">
</div>
</div>
<img src="/static/admin/images/captcha.gif" alt=""
class="verification-img"/>
</div>
-->
<div class="layui-form-item">
<div class="remember-passsword">
<div class="remember-cehcked">
<input
type="checkbox"
name="like1[write]"
lay-skin="primary"
title="自动登录"
/>
</div>
</div>
</div>
<div class="login-btn">
<button
type="button"
lay-submit
lay-filter="login-in"
class="layui-btn login"
>
登 录
</button>
</div>
<div class="other-login">
<div class="other-login-methods">其他方式</div>
<a class="greenText" href="/register.html">注册账号</a>
</div>
</div>
</div>
</div>
</div>
</div> </div>
</div> </div>
</form> </div>
<!-- 资 源 引 入 -->
<script src="/static/component/layui/layui.js"></script>
<script src="/static/component/pear/pear.js"></script>
<script> <script>
layui.use(["form", "button", "popup"], function () { layui.use(["form", "button", "popup", "jquery"], function () {
var form = layui.form; var form = layui.form;
var button = layui.button; var button = layui.button;
var popup = layui.popup; var popup = layui.popup;
var $ = layui.$; var $ = layui.jquery;
// 登 录 提 交 // 登 录 提 交
form.on("submit(login-in)", function (data) { form.on("submit(login-in)", function (data) {
+139 -166
View File
@@ -6,187 +6,160 @@
name="viewport" name="viewport"
content="width=device-width, initial-scale=1, maximum-scale=1" content="width=device-width, initial-scale=1, maximum-scale=1"
/> />
<title>注册</title> <title>登录</title>
{% include 'includes/script.html' %} <link rel="stylesheet" href="/static/component/pear/css/pear.css" />
<link rel="stylesheet" href="/static/admin/css/other/register.css" /> <link rel="stylesheet" href="/static/admin/css/other/login.css" />
<link rel="stylesheet" href="/static/admin/css/variables.css" />
</head> </head>
<body background="/static/admin/images/background.svg"> <body>
<form class="layui-form"> <div class="login-page">
<div class="demo-reg-container"> <div class="layui-row">
<div class="layui-form-item"> <div class="layui-col-sm6 login-bg">
<div class="layui-row"> <img
<div class="layui-col-xs7"> class="login-bg-img"
<div class="layui-input-wrap"> src="/static/admin/images/banner.png"
<div class="layui-input-prefix"> alt=""
<i class="layui-icon layui-icon-cellphone"></i>
</div>
<input
type="text"
name="cellphone"
value=""
lay-verify="required|phone"
placeholder="手机号"
lay-reqtext="请填写手机号"
autocomplete="off"
class="layui-input"
id="reg-cellphone"
/>
</div>
</div>
<div class="layui-col-xs5">
<div style="margin-left: 11px">
<button
type="button"
class="layui-btn layui-btn-fluid layui-btn-primary"
lay-on="reg-get-vercode"
>
获取验证码
</button>
</div>
</div>
</div>
</div>
<div class="layui-form-item">
<div class="layui-input-wrap">
<div class="layui-input-prefix">
<i class="layui-icon layui-icon-vercode"></i>
</div>
<input
type="text"
name="vercode"
value=""
lay-verify="required"
placeholder="验证码"
lay-reqtext="请填写验证码"
autocomplete="off"
class="layui-input"
/>
</div>
</div>
<div class="layui-form-item">
<div class="layui-input-wrap">
<div class="layui-input-prefix">
<i class="layui-icon layui-icon-password"></i>
</div>
<input
type="password"
name="password"
value=""
lay-verify="required"
placeholder="密码"
autocomplete="off"
class="layui-input"
id="reg-password"
lay-affix="eye"
/>
</div>
</div>
<div class="layui-form-item">
<div class="layui-input-wrap">
<div class="layui-input-prefix">
<i class="layui-icon layui-icon-password"></i>
</div>
<input
type="password"
name="confirmPassword"
value=""
lay-verify="required|confirmPassword"
placeholder="确认密码"
autocomplete="off"
class="layui-input"
lay-affix="eye"
/>
</div>
</div>
<div class="layui-form-item">
<div class="layui-input-wrap">
<div class="layui-input-prefix">
<i class="layui-icon layui-icon-username"></i>
</div>
<input
type="text"
name="nickname"
value=""
lay-verify="required"
placeholder="昵称"
autocomplete="off"
class="layui-input"
lay-affix="clear"
/>
</div>
</div>
<div class="layui-form-item">
<input
type="checkbox"
name="agreement"
lay-verify="required"
lay-skin="primary"
title="同意"
/> />
<a
href="#terms"
target="_blank"
style="position: relative; top: 6px; left: -15px"
>
<ins>用户协议</ins>
</a>
</div> </div>
<div class="layui-form-item"> <div class="layui-col-sm6 login-form">
<button <div class="layui-form">
class="layui-btn layui-btn-fluid" <div class="form-center">
lay-submit <div class="form-center-box">
lay-filter="demo-reg" <div class="top-log-title">
> <img
注册 class="top-log"
</button> src="http://www.layui-vue.com/assets/logo.685dda16.jpg"
</div> alt=""
<div class="layui-form-item demo-reg-other"> />
<label>社交账号注册</label> <span>Pear Admin Flask</span>
<span style="padding: 0 21px 0 6px"> </div>
<a href="javascript:;" <div class="top-desc">
><i 以 超 乎 想 象 的 速 度 构 建 内 部 工 具
class="layui-icon layui-icon-login-qq" <br />
style="color: #3492ed" <br />
></i (注册账号)
></a> </div>
<a href="javascript:;" <div style="margin-top: 30px">
><i <div class="layui-form-item">
class="layui-icon layui-icon-login-wechat" <div class="layui-input-wrap">
style="color: #4daf29" <div class="layui-input-prefix">
></i <i class="layui-icon layui-icon-username"></i>
></a> </div>
<a href="javascript:;" <input
><i lay-verify="required"
class="layui-icon layui-icon-login-weibo" placeholder="账户"
style="color: #cf1900" autocomplete="off"
></i name="username"
></a> value=""
</span> class="layui-input"
<a href="#login">登录已有帐号</a> />
</div>
</div>
<div class="layui-form-item">
<div class="layui-input-wrap">
<div class="layui-input-prefix">
<i class="layui-icon layui-icon-password"></i>
</div>
<input
type="password"
name="password"
value=""
lay-verify="required|confirmPassword"
placeholder="密码"
autocomplete="off"
class="layui-input"
lay-affix="eye"
/>
</div>
</div>
<div class="tab-log-verification">
<div class="verification-text">
<div class="layui-input-wrap">
<div class="layui-input-prefix">
<i class="layui-icon layui-icon-auz"></i>
</div>
<input
lay-verify="required"
placeholder="验证码"
autocomplete="off"
class="layui-input"
/>
</div>
</div>
<img
src="/static/admin/images/captcha.gif"
alt=""
class="verification-img"
/>
</div>
<div class="layui-form-item">
<div class="remember-passsword">
<div class="remember-cehcked">
<input
type="checkbox"
name="login-in"
lay-skin="primary"
title="注册成功后自动登录"
checked
/>
</div>
</div>
</div>
<div class="login-btn">
<button
type="button"
lay-submit
lay-filter="login-in"
class="layui-btn login"
>
登 录
</button>
</div>
<div class="other-login">
<div class="other-login-methods">其他方式</div>
<a class="greenText" href="/login.html">登录</a>
</div>
</div>
</div>
</div>
</div>
</div> </div>
</div> </div>
</form> </div>
<!-- 资 源 引 入 -->
<script src="/static/component/layui/layui.js"></script>
<script src="/static/component/pear/pear.js"></script>
<script> <script>
layui.use(["form", "button", "popup"], function () { layui.use(["form", "button", "popup", "jquery"], function () {
var form = layui.form; var form = layui.form;
var button = layui.button; var button = layui.button;
var popup = layui.popup; var popup = layui.popup;
var $ = layui.jquery;
// 登 录 提 交 // 登 录 提 交
form.on("submit(login)", function (data) { form.on("submit(login-in)", function (data) {
/// 验证 /// 验证
/// 登录
/// 动画 /// 动画
button.load({ let btn = button.load({ elem: ".login" });
elem: ".login",
time: 1500, /// 登录
done: function () { $.ajax({
popup.success("登录成功", function () { url: "/api/v1/login",
location.href = "index.html"; type: "POST",
data: JSON.stringify(data.field),
contentType: "application/json",
success: function (res) {
btn.stop(function () {
popup.success("登录成功", function () {
location.href = "/";
});
});
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
btn.stop(function () {
popup.failure(XMLHttpRequest.responseJSON.message);
}); });
}, },
}); });