This commit is contained in:
2025-02-08 19:27:15 +07:00
parent dccf38d6d3
commit e41fa9b5b1
5 changed files with 114 additions and 411 deletions

View File

@@ -155,12 +155,12 @@ a {
.admin-menu-container { .admin-menu-container {
position: relative; position: relative;
overflow: auto;
background: #004180; background: #004180;
color: #fff; color: #fff;
width: 18%; width: 16%;
padding: 20px 0; padding: 20px 0;
line-height: 20px; line-height: 20px;
overflow-y: auto;
} }
.admin-menu-container a { .admin-menu-container a {
color: #fff; color: #fff;
@@ -176,6 +176,10 @@ a {
.admin-menu-container .menu-list { .admin-menu-container .menu-list {
margin: 50px 5px; margin: 50px 5px;
} }
.admin-menu-container details {
position: relative;
width: 100%;
}
.admin-menu-container details .item { .admin-menu-container details .item {
background: #004e99; background: #004e99;
} }
@@ -194,6 +198,12 @@ a {
.admin-menu-container details[open] .fa-angle-right { .admin-menu-container details[open] .fa-angle-right {
transform: rotate(90deg); transform: rotate(90deg);
} }
.admin-menu-container .box-item {
position: relative;
}
.admin-menu-container .box-item .item {
background: #004e99;
}
.admin-menu-container summary { .admin-menu-container summary {
display: flex; display: flex;
align-items: center; align-items: center;
@@ -222,20 +232,47 @@ a {
transition: 0.3s all; transition: 0.3s all;
border-radius: 4px; border-radius: 4px;
margin-bottom: 4px; margin-bottom: 4px;
position: relative;
} }
.admin-menu-container .item:hover, .admin-menu-container .item.active { .admin-menu-container .item.active {
background: #22a2ff; background: #22a2ff;
} }
.admin-menu-container .item:hover .icons, .admin-menu-container .item.active .icons { .admin-menu-container .item.active .icons {
filter: brightness(100); filter: brightness(100);
} }
.admin-menu-container .item:hover {
background: #22a2ff;
}
.admin-menu-container .item:hover .icons {
filter: brightness(100);
}
.admin-menu-container .item:hover .sub-hover {
display: block;
}
.admin-menu-container .item .icons { .admin-menu-container .item .icons {
width: 20px; width: 20px;
height: 20px; height: 20px;
margin-right: 13px; margin-right: 13px;
} }
.admin-menu-container .title { .admin-menu-container .sub-hover {
/*width: calc(100% - 33px);*/ display: none;
position: absolute;
left: 100%;
top: 0;
background: #fff;
box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
z-index: 1000;
}
.admin-menu-container .sub-hover a {
display: block;
padding: 10px 10px 10px 45px;
position: relative;
}
.admin-menu-container .sub-hover a:hover {
text-decoration: underline;
}
.admin-menu-container .title-main {
width: 100%;
} }
.admin-menu-container .sub-menu { .admin-menu-container .sub-menu {
position: relative; position: relative;
@@ -313,194 +350,6 @@ a {
background-position: -187px -126px; background-position: -187px -126px;
} }
.admin-menu {
color: #fff;
z-index: 1;
}
.admin-menu .item {
display: flex;
align-items: center;
transition: 0.3s all;
position: relative;
margin: 5px;
background: #004e99;
border-radius: 4px;
}
.admin-menu .item:hover, .admin-menu .item.current {
background: #22a2ff;
}
.admin-menu .item:hover .icons, .admin-menu .item.current .icons {
filter: brightness(100);
}
.admin-menu .item:hover .sub-menu {
left: calc(100% + 8px);
opacity: 1;
visibility: inherit;
}
.admin-menu .item:hover::before {
display: block;
}
.admin-menu .item.bottom .sub-menu {
top: unset;
}
.admin-menu .item.bottom:hover .sub-menu {
top: auto;
bottom: 0;
}
.admin-menu .item::before {
position: absolute;
content: "";
width: 50px;
right: -20px;
height: 41px;
display: none;
}
.admin-menu .item:nth-child(n+10) .sub-menu {
top: unset;
bottom: -45px;
}
.admin-menu .sub-menu {
padding: 10px 22px 10px 15px;
border-radius: 6px;
background: #004e99;
box-shadow: 0px 2px 2px 0px rgba(0, 0, 0, 0.25);
white-space: nowrap;
min-width: 150px;
z-index: -1;
transition: 0.2s all;
position: absolute;
left: calc(100% + 30px);
top: 0;
opacity: 0;
visibility: hidden;
min-width: 200px;
}
.admin-menu .sub-menu a {
display: block;
margin-bottom: 12px;
line-height: 18px;
position: relative;
}
.admin-menu .sub-menu a:hover {
text-decoration: underline;
}
.admin-menu .sub-menu a.current {
font-weight: 700;
text-decoration: none;
}
.admin-menu .sub-menu a::before {
content: "";
width: 8px;
height: 8px;
border-radius: 50%;
background: #79b0e2;
position: absolute;
top: 6px;
left: -16px;
}
.admin-menu .sub-menu a:last-child {
margin: 0;
}
.admin-menu .menu-list {
padding-left: 16px;
margin-top: 10px;
position: relative;
max-height: 350px;
overflow-y: auto;
padding-right: 10px;
margin-right: -12px;
}
.admin-menu .menu-list::before {
content: "";
width: 1.5px;
background: #79b0e2;
position: absolute;
left: 3px;
top: 7px;
bottom: 7px;
}
.admin-menu .menu-list::-webkit-scrollbar-thumb {
background: #fff;
}
.admin-menu .menu-list::-webkit-scrollbar-track {
background: transparent;
}
.admin-menu .icons {
width: 42px;
height: 31px;
}
.admin-menu .icon-home {
background-position: 4px -1px;
}
.admin-menu .icon-sell {
background-position: -32px -1px;
}
.admin-menu .icon-product {
background-position: -68px -1px;
}
.admin-menu .icon-user {
background-position: -105px -1px;
}
.admin-menu .icon-marketing {
background-position: -142px -1px;
}
.admin-menu .icon-content {
background-position: -175px -1px;
}
.admin-menu .icon-stats {
background-position: -210px -1px;
}
.admin-menu .icon-system {
background-position: -249px -1px;
}
.admin-menu .icon-settings {
background-position: -285px -1px;
margin-left: -1px;
}
.admin-menu .icon-support {
background-position: -320px -1px;
}
.admin-menu .icon-account {
background-position: -356px -1px;
}
.admin-menu .icon-logout {
background-position: 4px -37px;
}
.admin-menu .icon-investor_relation {
background-position: 6px -115px;
}
.admin-menu .icon-job {
background-position: -41px -118px;
}
.admin-menu .icon-pcbuilder {
background-position: -87px -118px;
}
.admin-menu .icon-payinstall {
background-position: -130px -118px;
}
.admin-menu .icon-distributor {
background-position: -175px -114px;
}
.admin-menu .logo {
position: relative;
background: transparent;
border: 0;
}
.admin-menu .icon-close {
width: 42px;
display: block;
background-color: #22a2ff;
height: 31px;
margin: 0 auto;
border-radius: 4px;
}
.admin-menu .icon-close i {
display: block;
margin: 0 auto;
text-align: center;
line-height: 33px;
}
.admin-content-container { .admin-content-container {
width: calc(100% - 50px); width: calc(100% - 50px);
} }
@@ -1243,7 +1092,7 @@ input[type=radio]:focus:before {
position: absolute; position: absolute;
left: 30px; left: 30px;
top: 6px; top: 6px;
width: 300px; width: 250px;
display: none; display: none;
font-size: 12px; font-size: 12px;
background: #e4b200; background: #e4b200;

File diff suppressed because one or more lines are too long

View File

@@ -134,12 +134,12 @@ a {
} }
.admin-menu-container { .admin-menu-container {
position: relative; position: relative;
overflow: auto;
background: #004180; background: #004180;
color: #fff; color: #fff;
width: 18%; width: 16%;
padding: 20px 0; padding: 20px 0;
line-height: 20px; line-height: 20px;
overflow-y: auto;
a { a {
color: #fff; color: #fff;
} }
@@ -155,6 +155,8 @@ a {
margin: 50px 5px; margin: 50px 5px;
} }
details { details {
position: relative;
width: 100%;
.item { .item {
background: #004e99; background: #004e99;
} }
@@ -176,6 +178,14 @@ a {
} }
} }
} }
.box-item {
position: relative;
.item {
background: #004e99;
}
}
summary { summary {
display: flex; display: flex;
align-items: center; align-items: center;
@@ -204,21 +214,49 @@ a {
transition: 0.3s all; transition: 0.3s all;
border-radius: 4px; border-radius: 4px;
margin-bottom: 4px; margin-bottom: 4px;
&:hover, position: relative;
&.active { &.active {
background: #22a2ff; background: #22a2ff;
.icons { .icons {
filter: brightness(100); filter: brightness(100);
} }
} }
&:hover {
background: #22a2ff;
.icons {
filter: brightness(100);
}
.sub-hover {
display: block;
}
}
.icons { .icons {
width: 20px; width: 20px;
height: 20px; height: 20px;
margin-right: 13px; margin-right: 13px;
} }
} }
.title { .sub-hover {
/*width: calc(100% - 33px);*/ display: none; // Ẩn mặc định
position: absolute;
left: 100%;
top: 0;
background: #fff;
box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
z-index: 1000;
a {
display: block;
padding: 10px 10px 10px 45px;
position: relative;
&:hover {
text-decoration: underline;
}
}
}
.title-main {
width: 100%;
} }
.sub-menu { .sub-menu {
position: relative; position: relative;
@@ -296,202 +334,7 @@ a {
background-position: -187px -126px; background-position: -187px -126px;
} }
} }
.admin-menu {
color: #fff;
z-index: 1;
.item {
display: flex;
align-items: center;
transition: 0.3s all;
position: relative;
margin: 5px;
background: #004e99;
border-radius: 4px;
&:hover,
&.current {
background: #22a2ff;
.icons {
filter: brightness(100);
}
}
&:hover {
.sub-menu {
left: calc(100% + 8px);
opacity: 1;
visibility: inherit;
}
&::before {
display: block;
}
}
&.bottom {
.sub-menu {
top: unset;
}
&:hover {
.sub-menu {
top: auto;
bottom: 0;
}
}
}
&::before {
position: absolute;
content: "";
width: 50px;
right: -20px;
height: 41px;
display: none;
}
&:nth-child(n + 10) {
.sub-menu {
top: unset;
bottom: -45px;
}
}
}
.sub-menu {
padding: 10px 22px 10px 15px;
border-radius: 6px;
background: #004e99;
box-shadow: 0px 2px 2px 0px rgba(0, 0, 0, 0.25);
white-space: nowrap;
min-width: 150px;
z-index: -1;
transition: 0.2s all;
position: absolute;
left: calc(100% + 30px);
top: 0;
opacity: 0;
visibility: hidden;
min-width: 200px;
a {
display: block;
margin-bottom: 12px;
line-height: 18px;
position: relative;
&:hover {
text-decoration: underline;
}
&.current {
font-weight: 700;
text-decoration: none;
}
&::before {
content: "";
width: 8px;
height: 8px;
border-radius: 50%;
background: #79b0e2;
position: absolute;
top: 6px;
left: -16px;
}
&:last-child {
margin: 0;
}
}
}
.menu-list {
padding-left: 16px;
margin-top: 10px;
position: relative;
max-height: 350px;
overflow-y: auto;
padding-right: 10px;
margin-right: -12px;
&::before {
content: "";
width: 1.5px;
background: #79b0e2;
position: absolute;
left: 3px;
top: 7px;
bottom: 7px;
}
&::-webkit-scrollbar-thumb {
background: #fff;
}
&::-webkit-scrollbar-track {
background: transparent;
}
}
.icons {
width: 42px;
height: 31px;
}
.icon-home {
background-position: 4px -1px;
}
.icon-sell {
background-position: -32px -1px;
}
.icon-product {
background-position: -68px -1px;
}
.icon-user {
background-position: -105px -1px;
}
.icon-marketing {
background-position: -142px -1px;
}
.icon-content {
background-position: -175px -1px;
}
.icon-stats {
background-position: -210px -1px;
}
.icon-system {
background-position: -249px -1px;
}
.icon-settings {
background-position: -285px -1px;
margin-left: -1px;
}
.icon-support {
background-position: -320px -1px;
}
.icon-account {
background-position: -356px -1px;
}
.icon-logout {
background-position: 4px -37px;
}
.icon-investor_relation {
background-position: 6px -115px;
}
.icon-job {
background-position: -41px -118px;
}
.icon-pcbuilder {
background-position: -87px -118px;
}
.icon-payinstall {
background-position: -130px -118px;
}
.icon-distributor {
background-position: -175px -114px;
}
.logo {
position: relative;
background: transparent;
border: 0;
}
.icon-close {
width: 42px;
display: block;
background-color: #22a2ff;
height: 31px;
margin: 0 auto;
border-radius: 4px;
i {
display: block;
margin: 0 auto;
text-align: center;
line-height: 33px;
}
}
}
.admin-content-container { .admin-content-container {
width: calc(100% - 50px); width: calc(100% - 50px);
&.show-large-menu { &.show-large-menu {
@@ -1283,7 +1126,7 @@ input[type="radio"] {
position: absolute; position: absolute;
left: 30px; left: 30px;
top: 6px; top: 6px;
width: 300px; width: 250px;
display: none; display: none;
font-size: 12px; font-size: 12px;
background: #e4b200; background: #e4b200;

View File

@@ -1,6 +1,6 @@
<div class="w-[100%]"> <div class="w-[100%]">
<div <div
class="m-[15px] px-[15px] py-[20px] rounded-[15px] bg-white shadow-[0_1px_1px_0_rgba(0,0,0,0.1)] overflow-x-auto"> class="m-[15px_0_15px_15px] px-[15px] py-[20px] rounded-[15px] bg-white shadow-[0_1px_1px_0_rgba(0,0,0,0.1)] overflow-x-auto">
<h1 class="text-2xl font-[700] mb-3">Danh sách sản phẩm ({{ page.total | format_number }})</h1> <h1 class="text-2xl font-[700] mb-3">Danh sách sản phẩm ({{ page.total | format_number }})</h1>
<div class="flex justify-between items-center mt-[20px]"> <div class="flex justify-between items-center mt-[20px]">
<div class="btn-left flex items-center"> <div class="btn-left flex items-center">
@@ -17,7 +17,7 @@
<a href="/admin/product/form" <a href="/admin/product/form"
class="flex items-center px-[10px] py-[8px] border-[#0041E8] border-[1px] rounded-[4px] text-[#0041E8] hover:bg-[#0041E8] hover:text-white ml-[15px] font-[500]"> class="flex items-center px-[10px] py-[8px] border-[#0041E8] border-[1px] rounded-[4px] text-[#0041E8] hover:bg-[#0041E8] hover:text-white ml-[15px] font-[500]">
<span <span
class="border-[1px] border-[#0041E8] h-[15px] w-[15px] leading-[12px] text-center rounded-[50%] mr-1">+</span> class="border-[1px] border-[#0041E8] h-[15px] w-[15px] leading-[11px] text-center rounded-[50%] mr-1">+</span>
<span>Thêm sản phẩm mới</span> <span>Thêm sản phẩm mới</span>
</a> </a>
<a href="" <a href=""

View File

@@ -16,7 +16,7 @@
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css" /> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css" />
<link rel="stylesheet" media="screen" href="{{ 'fancybox.css' | asset_url }}" /> <link rel="stylesheet" media="screen" href="{{ 'fancybox.css' | asset_url }}" />
<link rel="stylesheet" media="screen" href="{{ 'select2.css' | asset_url }}?v2.1" /> <link rel="stylesheet" media="screen" href="{{ 'select2.css' | asset_url }}?v2.1" />
<link rel="stylesheet" media="screen" href="{{ 'pc_style.css' | asset_url }}?v2024.1" /> <link rel="stylesheet" media="screen" href="{{ 'pc_style.css' | asset_url }}?v2024.19" />
</head> </head>
@@ -30,10 +30,6 @@
<!-- Menu full --> <!-- Menu full -->
<div class="admin-menu-container box-menu sticky top-0 bottom-0 h-[100vh]" id="js-menu-big"> <div class="admin-menu-container box-menu sticky top-0 bottom-0 h-[100vh]" id="js-menu-big">
<a href="javascript:void(0)" class="icon-close" title="Thu gọn menu" id="js-hide-menu">
<i class="fa-solid fa-outdent"></i>
</a>
<a href="" class="menu-logo"> <a href="" class="menu-logo">
<img src="{{ 'logo.png' | asset_url }}" /> <img src="{{ 'logo.png' | asset_url }}" />
</a> </a>
@@ -48,8 +44,9 @@
{% assign _type = _category[0] %} {% assign _type = _category[0] %}
{% assign _menuArray = _category[1].menu %} {% assign _menuArray = _category[1].menu %}
{% if _category[1].enable == 1 %} {% if _category[1].enable == 1 %}
<details {% if _type==global.module %} open {% endif %}> <details class="dropdown dropdown-hover" {% if _type==global.module %} open {% endif %}>
<summary class="item {% if _type == global.module %} active {% endif %}"> <summary class="item {% if _type == global.module %} active {% endif %}" tabindex="{{_type}}"
role="button">
<div class="flex items-center"> <div class="flex items-center">
{% if _type == 'order' %} <i class="icons icon-order"></i> {% if _type == 'order' %} <i class="icons icon-order"></i>
@@ -72,6 +69,14 @@
<i class="fa-solid fa-chevron-right"></i> <i class="fa-solid fa-chevron-right"></i>
</summary> </summary>
<div class="sub-hover dropdown-content" tabindex="{{_type}}">
{% for _item in _menuArray %}
<a href="{{ _item.url }}"
class="{% if _item.view == global.view and _item.module == global.module %}current {% endif %}">
{{_item.name }} </a>
{% endfor %}
</div>
<div class="sub-menu"> <div class="sub-menu">
{% for _item in _menuArray %} {% for _item in _menuArray %}
<a href="{{ _item.url }}" <a href="{{ _item.url }}"
@@ -110,7 +115,7 @@
</div> </div>
<!-- Menu collapse --> <!-- Menu collapse -->
<div class="admin-menu box-menu fixed top-0 bg-[#004180] pb-[20px] h-[100vh] hidden" id="js-menu-small"> <!-- <div class="admin-menu box-menu fixed top-0 bg-[#004180] pb-[20px] h-[100vh] hidden" id="js-menu-small">
<div class="flex flex-col justify-between"> <div class="flex flex-col justify-between">
<div> <div>
<div <div
@@ -216,7 +221,7 @@
</div> </div>
</div> </div>
</div> </div> -->
<div class="admin-content-container ml-[50px]" id="js-admin-content-container"> <div class="admin-content-container ml-[50px]" id="js-admin-content-container">
<!-- Header --> <!-- Header -->
@@ -295,7 +300,6 @@
{{ page_content }} {{ page_content }}
</div> </div>
</div> </div>
<div class="status-notificatiom"> <div class="status-notificatiom">
@@ -308,7 +312,14 @@
</div> </div>
</div> </div>
<div class="dropdown dropdown-hover dropdown-right">
<div tabindex="0" role="button" class="btn m-1">Hover</d>
<ul tabindex="0" class="dropdown-content menu bg-base-100 rounded-box z-[1] w-52 p-2 shadow">
<li><a>Item 1</a></li>
<li><a>Item 2</a></li>
</ul>
</div>
</div>
<script src="{{ 'jquery.js' | asset_url }}"></script> <script src="{{ 'jquery.js' | asset_url }}"></script>
<script src="{{ 'tailwindcss.js' | asset_url }}"></script> <script src="{{ 'tailwindcss.js' | asset_url }}"></script>