marketing

This commit is contained in:
2024-01-30 09:45:34 +07:00
8 changed files with 206 additions and 158 deletions

View File

@@ -702,6 +702,11 @@ input[type=radio]:focus:before {
height: 20px; height: 20px;
background-position: -43px -83px; background-position: -43px -83px;
} }
.icons.icon-edit {
width: 16px;
height: 16px;
background-position: -114px -89px;
}
.admin-header-container .menu-hide { .admin-header-container .menu-hide {
margin-left: 30px; margin-left: 30px;
@@ -711,13 +716,13 @@ input[type=radio]:focus:before {
.order-page .order-page-title a { .order-page .order-page-title a {
margin: 0 2px 0 0; margin: 0 2px 0 0;
border-radius: 4px 4px 0px 0px; border-radius: 4px 4px 0px 0px;
background: #F6F6F6; background: #f6f6f6;
color: #919699; color: #919699;
font-weight: 500; font-weight: 500;
padding: 0 24px; padding: 0 24px;
} }
.order-page .order-page-title a:hover, .order-page .order-page-title a.current, .order-page .order-page-title a.active { .order-page .order-page-title a:hover, .order-page .order-page-title a.current, .order-page .order-page-title a.active {
background: #0041E8; background: #0041e8;
color: #fff; color: #fff;
} }
.order-page .order-page-table { .order-page .order-page-table {
@@ -737,7 +742,7 @@ input[type=radio]:focus:before {
line-height: 20px; line-height: 20px;
} }
.order-page-table a { .order-page-table a {
color: #0041E8; color: #0041e8;
} }
.order-page-table a:hover { .order-page-table a:hover {
text-decoration: underline; text-decoration: underline;
@@ -746,7 +751,7 @@ input[type=radio]:focus:before {
width: 100%; width: 100%;
} }
.order-page-table thead { .order-page-table thead {
background: #F6F6F6; background: #f6f6f6;
font-weight: 600; font-weight: 600;
text-align: center; text-align: center;
} }
@@ -755,7 +760,7 @@ input[type=radio]:focus:before {
} }
.order-page-table td { .order-page-table td {
padding: 10px; padding: 10px;
border: 1px solid #ECECEC; border: 1px solid #ececec;
text-transform: capitalize; text-transform: capitalize;
} }
.order-page-table td * { .order-page-table td * {
@@ -763,7 +768,7 @@ input[type=radio]:focus:before {
} }
.order-page-table select { .order-page-table select {
border-radius: 4px; border-radius: 4px;
border: 1px solid #D8D8D8; border: 1px solid #d8d8d8;
box-shadow: 0px 2px 4px 0px rgba(0, 0, 0, 0.12); box-shadow: 0px 2px 4px 0px rgba(0, 0, 0, 0.12);
height: 32px; height: 32px;
display: block; display: block;
@@ -788,11 +793,11 @@ input[type=radio]:focus:before {
} }
.is-close-btn { .is-close-btn {
background: #ECECEC !important; background: #ececec !important;
border-radius: 50%; border-radius: 50%;
top: 10px !important; top: 10px !important;
right: 10px !important; right: 10px !important;
color: #9E9E9E !important; color: #9e9e9e !important;
} }
.paging { .paging {
@@ -811,7 +816,7 @@ input[type=radio]:focus:before {
border-radius: 4px; border-radius: 4px;
} }
.paging a:hover, .paging a.current, .paging a.active { .paging a:hover, .paging a.current, .paging a.active {
background: #0041E8; background: #0041e8;
color: #fff; color: #fff;
} }
@@ -823,7 +828,7 @@ input[type=radio]:focus:before {
display: inline-block; display: inline-block;
} }
.global-breadcrumb-container a:hover { .global-breadcrumb-container a:hover {
color: #0041E8; color: #0041e8;
} }
.global-breadcrumb-container a::after { .global-breadcrumb-container a::after {
content: "\f054"; content: "\f054";
@@ -832,7 +837,7 @@ input[type=radio]:focus:before {
margin: 0 5px; margin: 0 5px;
} }
.global-breadcrumb-container a:last-child { .global-breadcrumb-container a:last-child {
color: #0041E8; color: #0041e8;
} }
.global-breadcrumb-container a:last-child::after { .global-breadcrumb-container a:last-child::after {
content: none; content: none;

File diff suppressed because one or more lines are too long

View File

@@ -157,7 +157,7 @@ a {
} }
.fa-angle-right { .fa-angle-right {
transform: rotate(90deg); transform: rotate(90deg);
} }
} }
} }
summary { summary {
@@ -192,7 +192,7 @@ a {
.icons { .icons {
filter: brightness(100); filter: brightness(100);
} }
} }
.icons { .icons {
width: 20px; width: 20px;
height: 20px; height: 20px;
@@ -239,7 +239,7 @@ a {
margin: 0; margin: 0;
} }
} }
} }
.icon-home { .icon-home {
background-position: -9px -7px; background-position: -9px -7px;
} }
@@ -339,8 +339,8 @@ a {
height: 41px; height: 41px;
display: none; display: none;
} }
&:nth-child(n+13){ &:nth-child(n + 13) {
.sub-menu{ .sub-menu {
top: unset; top: unset;
} }
} }
@@ -710,6 +710,11 @@ input[type="radio"] {
height: 20px; height: 20px;
background-position: -43px -83px; background-position: -43px -83px;
} }
&.icon-edit {
width: 16px;
height: 16px;
background-position: -114px -89px;
}
} }
.admin-header-container { .admin-header-container {
@@ -718,18 +723,20 @@ input[type="radio"] {
} }
} }
/* Bán hàng */ /* Bán hàng */
.order-page { .order-page {
.order-page-title{ .order-page-title {
a { a {
margin: 0 2px 0 0; margin: 0 2px 0 0;
border-radius: 4px 4px 0px 0px; border-radius: 4px 4px 0px 0px;
background: #F6F6F6; background: #f6f6f6;
color: #919699; color: #919699;
font-weight: 500; font-weight: 500;
padding: 0 24px; padding: 0 24px;
&:hover, &.current, &.active { &:hover,
background: #0041E8; &.current,
&.active {
background: #0041e8;
color: #fff; color: #fff;
} }
} }
@@ -737,13 +744,14 @@ input[type="radio"] {
.order-page-table { .order-page-table {
text-align: center; text-align: center;
thead { thead {
td{ td {
padding: 8px; padding: 8px;
} }
} }
td{ td {
padding: 14px 8px; padding: 14px 8px;
&:nth-child(4), &:nth-child(10){ &:nth-child(4),
&:nth-child(10) {
text-align: left; text-align: left;
} }
} }
@@ -751,34 +759,34 @@ input[type="radio"] {
} }
.order-page-table { .order-page-table {
line-height: 20px; line-height: 20px;
a{ a {
color: #0041E8; color: #0041e8;
&:hover{ &:hover {
text-decoration: underline; text-decoration: underline;
} }
} }
table{ table {
width: 100%; width: 100%;
} }
thead { thead {
background: #F6F6F6; background: #f6f6f6;
font-weight: 600; font-weight: 600;
text-align: center; text-align: center;
td{ td {
padding: 8px; padding: 8px;
} }
} }
td{ td {
padding: 10px; padding: 10px;
border: 1px solid #ECECEC; border: 1px solid #ececec;
text-transform: capitalize; text-transform: capitalize;
*{ * {
display: inline-block; display: inline-block;
} }
} }
select { select {
border-radius: 4px; border-radius: 4px;
border: 1px solid #D8D8D8; border: 1px solid #d8d8d8;
box-shadow: 0px 2px 4px 0px rgba(0, 0, 0, 0.12); box-shadow: 0px 2px 4px 0px rgba(0, 0, 0, 0.12);
height: 32px; height: 32px;
display: block; display: block;
@@ -803,11 +811,11 @@ input[type="radio"] {
} }
} }
.is-close-btn { .is-close-btn {
background: #ECECEC !important; background: #ececec !important;
border-radius: 50%; border-radius: 50%;
top: 10px !important; top: 10px !important;
right: 10px !important; right: 10px !important;
color: #9E9E9E !important; color: #9e9e9e !important;
} }
.paging { .paging {
margin: 30px 0; margin: 30px 0;
@@ -815,15 +823,17 @@ input[type="radio"] {
align-items: center; align-items: center;
justify-content: center; justify-content: center;
line-height: 28px; line-height: 28px;
a{ a {
margin: 0 3px; margin: 0 3px;
min-width: 28px; min-width: 28px;
text-align: center; text-align: center;
font-size: 16px; font-size: 16px;
padding: 0 10px; padding: 0 10px;
border-radius: 4px; border-radius: 4px;
&:hover, &.current, &.active { &:hover,
background: #0041E8; &.current,
&.active {
background: #0041e8;
color: #fff; color: #fff;
} }
} }
@@ -831,22 +841,22 @@ input[type="radio"] {
.global-breadcrumb-container { .global-breadcrumb-container {
padding: 16px; padding: 16px;
line-height: 20px; line-height: 20px;
a{ a {
display: inline-block; display: inline-block;
&:hover{ &:hover {
color: #0041E8; color: #0041e8;
} }
&::after{ &::after {
content: '\f054'; content: "\f054";
font-family: Fontawesome; font-family: Fontawesome;
font-size: 10px; font-size: 10px;
margin: 0 5px; margin: 0 5px;
} }
&:last-child{ &:last-child {
color: #0041E8; color: #0041e8;
&::after{ &::after {
content: none; content: none;
} }
} }
} }
} }

View File

@@ -1,6 +1,14 @@
<?php <?php
use Hura8\Components\Product\AdminController\AProductController;
$objAProductController = new AProductController();
$product_id = getRequestInt('id', 0);
$product_info = $objAProductController->getFullInfo($product_id);
$view_part = getRequest("part", "basic"); $view_part = getRequest("part", "basic");
$view_part_file = str_replace("-", "_", $view_part); $view_part_file = str_replace("-", "_", $view_part);
@@ -14,20 +22,13 @@ if(@file_exists($part_file)) {
return [ return [
"product_info" => _get_product_info(), "product_info" => $product_info,
"product_menu" => _get_product_menu(), "product_menu" => _get_product_menu(),
"view_part" => $view_part, "view_part" => $view_part,
]; ];
// helpers // helpers
function _get_product_info() {
return [
"id" => 12,
"title" => "Máy in mã vạch MH241",
];
}
function _get_product_menu() { function _get_product_menu() {
$current_selected = getRequest('part', 'basic'); $current_selected = getRequest('part', 'basic');
$product_menu = array( $product_menu = array(

View File

@@ -43,11 +43,7 @@ class AppAdmin
protected function getData() { protected function getData() {
$module_file = join(DIRECTORY_SEPARATOR, [ $module_file = $this->getModuleFile();
"data",
$this->current_route_info["module"],
str_replace("-", "_", $this->current_route_info["view"]).".php"
]) ;
if(file_exists($module_file)) { if(file_exists($module_file)) {
// print_r($this->current_route_info); // print_r($this->current_route_info);
@@ -71,6 +67,15 @@ class AppAdmin
} }
protected function getModuleFile() {
return join(DIRECTORY_SEPARATOR, [
"data",
$this->current_route_info["module"],
str_replace("-", "_", $this->current_route_info["view"]).".php"
]) ;
}
protected function renderModule() { protected function renderModule() {
if(!$this->current_route_info['module'] || !$this->current_route_info['view']) { if(!$this->current_route_info['module'] || !$this->current_route_info['view']) {
@@ -84,7 +89,10 @@ class AppAdmin
//check exist //check exist
if(!@file_exists( $template_file_full_path)) { if(!@file_exists( $template_file_full_path)) {
// attempt to auto create first // attempt to auto create first
if(!$this->autoCreateTplFile( $template_file_path, $template_file_name )) { // todo: this MUST BE TURNED OFF IN PRODUCTION, else many files will be created unintentionally
$module_file = $this->getModuleFile();
// only create if module file exist
if(file_exists($module_file) && !$this->autoCreateTplFile( $template_file_path, $template_file_name )) {
die("Please manually create template file at: ". $template_file_full_path); die("Please manually create template file at: ". $template_file_full_path);
} }
} }

View File

@@ -2,7 +2,7 @@
<div class="text-sm breadcrumbs ml-[10px]"> <div class="text-sm breadcrumbs ml-[10px]">
<ul> <ul>
<li><a>Danh sách sản phẩm</a></li> <li><a href="/admin/product">Danh sách sản phẩm</a></li>
<li class="text-[#0041E8]">Form thêm/sửa sản phẩm</li> <li class="text-[#0041E8]">Form thêm/sửa sản phẩm</li>
</ul> </ul>
</div> </div>
@@ -16,7 +16,7 @@
<div class="bg-white rounded-[10px] shadow-[0_1px_1px_0_rgba(0,0,0,0.1)]"> <div class="bg-white rounded-[10px] shadow-[0_1px_1px_0_rgba(0,0,0,0.1)]">
{% for _menu in page.product_menu %} {% for _menu in page.product_menu %}
<a role="tab" href="/?module=product&view=form&part={{ _menu.id }}" <a role="tab" href="/admin/product/form?id={{ page.product_info.id }}&part={{ _menu.id }}" title="{{ _menu.name }}"
class="py-[7px] px-[15px] text-[#919699] block border-b-[1px] border-[#fafafb] {% if _menu.is_current == 1 %}bg-[#0041E8] text-[#fff]{% endif %}"> class="py-[7px] px-[15px] text-[#919699] block border-b-[1px] border-[#fafafb] {% if _menu.is_current == 1 %}bg-[#0041E8] text-[#fff]{% endif %}">
{{ _menu.name }} {{ _menu.name }}
</a> </a>
@@ -91,4 +91,4 @@
</div> </div>
</div> </div>
</div> </div>
</div> </div>

View File

@@ -1,9 +1,6 @@
{{ page | show_var }}
<div class="grid w-[100%] "> <div class="grid w-[100%] ">
<div class="m-[15px] px-[15px] py-[20px] rounded-[15px] bg-white shadow-[0_1px_1px_0_rgba(0,0,0,0.1)]"> <div class="m-[15px] px-[15px] py-[20px] rounded-[15px] bg-white shadow-[0_1px_1px_0_rgba(0,0,0,0.1)]">
<h1 class="text-2xl font-[700] mb-3">Danh sách sản phẩm</h1> <h1 class="text-2xl font-[700] mb-3">Danh sách sản phẩm ({{ page.total | format_number }})</h1>
<form <form
class="w-[100%] flex w-[100%] rounded-[10px] p-[15px] border-solid border-[#F6F6F6] border-[1px] shadow-[0_1px_1px_0_rgba(0,0,0,0.1)]"> class="w-[100%] flex w-[100%] rounded-[10px] p-[15px] border-solid border-[#F6F6F6] border-[1px] shadow-[0_1px_1px_0_rgba(0,0,0,0.1)]">
<input type="search" class="block border h-[36px] ps-3 rounded w-[375px]" placeholder="Tìm sản phẩm"> <input type="search" class="block border h-[36px] ps-3 rounded w-[375px]" placeholder="Tìm sản phẩm">
@@ -89,8 +86,8 @@
<th>STT</th> <th>STT</th>
<th>ID</th> <th>ID</th>
<th>Ảnh</th> <th>Ảnh</th>
<th>Sản phẩm (Tổng số: 1.742)</th> <th>Sản phẩm</th>
<th>Người dùng</th> <th class="whitespace-nowrap">Người dùng</th>
<th>Thông tin bán hàng</th> <th>Thông tin bán hàng</th>
<th>Thông tin khác</th> <th>Thông tin khác</th>
<th> <th>
@@ -104,84 +101,86 @@
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
{% assign counter = 0 %}
{% for item in page.item_list %}
{% increment counter %}
<tr> <tr>
<td>1</td> <td>{{ counter }}</td>
<td>#2105</td> <td>#{{item.id}}</td>
<td> <td>
<img class="block m-auto" src="./images/img-product.png" alt=""> <img class="block m-auto" src="{{item.image.thumb}}" alt="">
<span class="text-center block">6 ảnh</span> <span class="text-center block">{{item.image_count}} ảnh</span>
<a href="" class="text-center flex justify-center"> <i class="icons icon-edit"></i>
<svg xmlns="http://www.w3.org/2000/svg" width="12" height="13" viewBox="0 0 12 13"
fill="none">
<path fill-rule="evenodd" clip-rule="evenodd"
d="M6.67307 0.173073C6.90384 -0.0576911 7.27798 -0.0576911 7.50875 0.173073L9.87238 2.53671C10.1031 2.76747 10.1031 3.14162 9.87238 3.37238L3.37238 9.87238C3.26156 9.9832 3.11126 10.0455 2.95455 10.0455H0.590909C0.264559 10.0455 0 9.7809 0 9.45455V7.09091C0 6.93419 0.0622563 6.78389 0.173073 6.67307L6.67307 0.173073ZM1.18182 7.33567V8.86364H2.70978L8.61887 2.95455L7.09091 1.42658L1.18182 7.33567Z"
fill="#0041E8" />
<path fill-rule="evenodd" clip-rule="evenodd"
d="M0 12.4091C0 12.0828 0.264559 11.8182 0.590909 11.8182H11.2273C11.5536 11.8182 11.8182 12.0828 11.8182 12.4091C11.8182 12.7355 11.5536 13.0001 11.2273 13.0001H0.590909C0.264559 13.0001 0 12.7355 0 12.4091Z"
fill="#0041E8" />
</svg>
</a>
</td> </td>
<td> <td>
<a href="" class="text-[#0041E8]">Chăn hè đũi xơ đậu nành mã 32 Gấu xanh</a> <a href="/admin/product/form?id={{item.id}}" class="text-[#0041E8] w-[300px] inline-block">{{item.title}}</a>
<p class="text-[#FFC700]">[Có cấu hình]</p> {% if item.config_count > 0 %}<p class="text-[#FFC700]">[Có cấu hình]</p>{% endif %}
<div class="flex items-center"> <div class="flex items-center">
<span>Danh mục:</span> <span>Danh mục:</span>
<b class="mx-[10px]">Màn hình Máy tính</b> <b class="mx-[10px]">Màn hình Máy tính</b>
<a href=""><svg xmlns="http://www.w3.org/2000/svg" width="12" height="13" <a href=""><i class="icons icon-edit"></i></a>
viewBox="0 0 12 13" fill="none">
<path fill-rule="evenodd" clip-rule="evenodd"
d="M6.67307 0.173073C6.90384 -0.0576911 7.27798 -0.0576911 7.50875 0.173073L9.87238 2.53671C10.1031 2.76747 10.1031 3.14162 9.87238 3.37238L3.37238 9.87238C3.26156 9.9832 3.11126 10.0455 2.95455 10.0455H0.590909C0.264559 10.0455 0 9.7809 0 9.45455V7.09091C0 6.93419 0.0622563 6.78389 0.173073 6.67307L6.67307 0.173073ZM1.18182 7.33567V8.86364H2.70978L8.61887 2.95455L7.09091 1.42658L1.18182 7.33567Z"
fill="#0041E8" />
<path fill-rule="evenodd" clip-rule="evenodd"
d="M0 12.4091C0 12.0828 0.264559 11.8182 0.590909 11.8182H11.2273C11.5536 11.8182 11.8182 12.0828 11.8182 12.4091C11.8182 12.7355 11.5536 13.0001 11.2273 13.0001H0.590909C0.264559 13.0001 0 12.7355 0 12.4091Z"
fill="#0041E8" />
</svg></a>
</div> </div>
<div class="flex items-center"> <div class="flex items-center">
<span>Mã kho</span> <span>Mã kho</span>
<b class="px-[5px]">MH241</b> <b class="px-[5px]">{{item.sku}}</b>
<span class="text-[#000] font-[500]">|</span> <span class="text-[#000] font-[500]">|</span>
<span class="px-[5px]">Hãng</span> <span class="px-[5px]">Hãng</span>
<p class="text-[#0041E8]">ABS</p> <p class="text-[#0041E8]">{{item.model}}</p>
</div> </div>
<p>Cập nhật: 20-10-2023, 5:48 pm <span class="text-[#E00000]">(49 ngày)</span></p>
<p>Người cập nhật : anhtt@hurasoft.com</p> {% assign date_now = "now" | date: format %}
{% assign date_last = item.last_update %}
{% assign time_conlai = date_now | minus: date_last %}
<p>Cập nhật: {{item.last_update | date: "Y-m-d h:i" }} <span class="text-[#E00000]">(
{{ time_conlai | divided_by: 86400 | round}}
ngày)</span></p>
<p>Người cập nhật : {{item.last_update_by}}</p>
</td> </td>
<td> <td>
<p>- Xem : 0</p> <p>- Xem : {{item.visit}}</p>
<p>- Thích : 0</p> <p>- Thích : {{item.like_count}}</p>
<p>- Mua : 0</p> <p>- Mua : {{item.buy_count}}</p>
</td> </td>
<td> <td>
<div class="flex items-center mb-[1px]"> <div class="flex items-center mb-[1px]">
<span>- Giá bán:</span> <span class="whitespace-nowrap">- Giá bán:</span>
<b class="text-[#E00000] ml-[3px]">300.000 vnd</b> <b class="text-[#E00000] ml-[3px] whitespace-nowrap">
{% if item.price > 0 %}
{{item.price | format_price }} vnd
{% else %}
{{item.price }} vnd
{% endif %}
</b>
</div> </div>
<div class="flex items-center"> <div class="flex items-center">
<span>- Sl tổng:</span> <span>- Sl tổng:</span>
<b class="ml-[3px]">1</b> <b class="ml-[3px]">{{item.quantity}}</b>
</div> </div>
</td> </td>
<td> <td>
<div class="flex items-center mb-[1px]"> <div class="flex items-center mb-[1px]">
<span>- Giá bán:</span> <span class="whitespace-nowrap">- Giá bán:</span>
<b class="text-[#E00000] ml-[3px]">300.000 vnd</b> <b class="text-[#E00000] ml-[3px] whitespace-nowrap">{% if item.price > 0 %}
{{item.price | format_price }} vnd
{% else %}
{{item.price }} vnd
{% endif %}</b>
</div> </div>
<p>- Bảo hành: Ato test</p> <p>- Bảo hành: {{item.warranty}}</p>
<p>- Khuyến mại: + Ato test</p> <p>- Khuyến mại: {{item.special_offer}}</p>
</td> </td>
<td> <td>
<div> <div>
<input type="checkbox" name="" id=""> <input type="checkbox" name="">
<label for="">Mới Hot (Hỏi nhiều)</label> <label for="">Mới Hot (Hỏi nhiều)</label>
</div> </div>
<div> <div>
<input type="checkbox" name="" id=""> <input type="checkbox" name="" >
<label for="">Bán chạy</label> <label for="">Bán chạy</label>
</div> </div>
<div> <div>
<input type="checkbox" name="" id=""> <input type="checkbox" name="" >
<label for="">Xả hàng (sale-off)</label> <label for="">Xả hàng (sale-off)</label>
</div> </div>
<div> <div>
@@ -194,7 +193,7 @@
</td> </td>
<td class=""> <td class="">
<div class="list-btn flex items-center w-[150px]"> <div class="list-btn flex items-center w-[150px]">
<a href="" <a href="/admin/product/form?id={{item.id}}" title="Form sản phẩm"
class="w-[30px] h-[30px] border-[1px] border-[#0041E8] rounded-[4px] text-center leading-[30px] flex items-center justify-center mr-[5px]"> class="w-[30px] h-[30px] border-[1px] border-[#0041E8] rounded-[4px] text-center leading-[30px] flex items-center justify-center mr-[5px]">
<svg xmlns="http://www.w3.org/2000/svg" width="12" height="13" viewBox="0 0 12 13" <svg xmlns="http://www.w3.org/2000/svg" width="12" height="13" viewBox="0 0 12 13"
fill="none"> fill="none">
@@ -206,7 +205,7 @@
fill="#0041E8"></path> fill="#0041E8"></path>
</svg> </svg>
</a> </a>
<a href="" <a href="{{item.request_path}}" title="Xem tại web" target="_blank"
class="w-[30px] h-[30px] border-[1px] border-[#0041E8] rounded-[4px] text-center leading-[30px] flex items-center justify-center mr-[5px]"> class="w-[30px] h-[30px] border-[1px] border-[#0041E8] rounded-[4px] text-center leading-[30px] flex items-center justify-center mr-[5px]">
<svg xmlns="http://www.w3.org/2000/svg" width="13" height="13" viewBox="0 0 13 13" <svg xmlns="http://www.w3.org/2000/svg" width="13" height="13" viewBox="0 0 13 13"
fill="none"> fill="none">
@@ -262,8 +261,26 @@
</div> </div>
</td> </td>
</tr> </tr>
{% endfor %}
</tbody> </tbody>
</table> </table>
<div class="paging">
{% for paging in page.pagination.collection %}
<a href="{{paging.url}}" class="{% if paging.is_active == 1 %} current {% endif %}">
{% if paging.name == 'next' %}
<i class="fas fa-chevron-right"></i>
{% elsif paging.name == 'prev' %}
<i class="fas fa-chevron-left"></i>
{% else %}
{{paging.name}}
{% endif %}
</a>
{% endfor %}
</div>
</div> </div>
</div> </div>

View File

@@ -2,35 +2,36 @@
<html lang="vi"> <html lang="vi">
<head> <head>
<meta charset="utf-8" /> <meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta http-equiv="X-UA-Compatible" content="IE=edge">
<title> Admin Hura Pc </title> <title> Admin Hura Pc </title>
<meta name="viewport" content="width=device-width, initial-scale=1"> <meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="preconnect" href="https://fonts.googleapis.com"> <link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800;900&display=swap" <link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800;900&display=swap"
rel="stylesheet"> rel="stylesheet">
<link href="https://cdn.jsdelivr.net/npm/daisyui@4.6.0/dist/full.min.css" rel="stylesheet" type="text/css" /> <link href="https://cdn.jsdelivr.net/npm/daisyui@4.6.0/dist/full.min.css" rel="stylesheet" type="text/css" />
<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="{{ 'pc_style.css' | asset_url }}" /> <link rel="stylesheet" media="screen" href="{{ 'pc_style.css' | asset_url }}" />
<script src="{{ 'tailwindcss.js' | asset_url }}"></script> <script src="{{ 'tailwindcss.js' | asset_url }}"></script>
<script src="{{ 'fancybox.js' | asset_url }}"></script> <script src="{{ 'fancybox.js' | asset_url }}"></script>
<script src="https://cdn.jsdelivr.net/npm/jquery@3.3.1/dist/jquery.min.js"></script> <script src="https://cdn.jsdelivr.net/npm/jquery@3.3.1/dist/jquery.min.js"></script>
</head> </head>
<body> <body>
{{ global | show_var }} {{ global | show_var }}
{{ page | show_var }} {{ page | show_var }}
<div class="admin-global-container"> <div class="admin-global-container">
<!-- Menu full --> <!-- Menu full -->
<div class="admin-menu-container box-menu sticky top-0 bottom-0 h-[100vh] hidden" id="js-menu-big"> <div class="admin-menu-container box-menu sticky top-0 bottom-0 h-[100vh] hidden" id="js-menu-big">
<a href="javascript:void(0)" class="icon-close" title="Thu gọn menu" id="js-hide-menu"> <a href="javascript:void(0)" class="icon-close" title="Thu gọn menu" id="js-hide-menu">
<i class="fa-solid fa-outdent"></i> <i class="fa-solid fa-outdent"></i>
@@ -50,7 +51,7 @@
{% 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 {% if _type==global.module %} open {% endif %}>
<summary class="item"> <summary class="item">
<div class="flex items-center"> <div class="flex items-center">
@@ -76,8 +77,8 @@
<div class="sub-menu"> <div class="sub-menu">
{% for _item in _menuArray %} {% for _item in _menuArray %}
<a href="{{ _item.url }}" {% if _item.view == global.view and <a href="{{_item.url }}" {% if _item.view==global.view and _type==global.module %}
_type == global.module %} class="current" {% endif %}> {{ _item.name }} </a> class="current" {% endif %}> {{ _item.name }} </a>
{% endfor %} {% endfor %}
</div> </div>
</details> </details>
@@ -111,12 +112,13 @@
</div> </div>
<!-- Menu collapse --> <!-- Menu collapse -->
<div class="admin-menu box-menu sticky top-0 bg-[#004E99] flex flex-col justify-between pb-[20px] min-h-[100vh]" id="js-menu-small"> <div class="admin-menu box-menu sticky top-0 bg-[#004E99] flex flex-col justify-between pb-[20px] min-h-[100vh]" id="js-menu-small">
<div> <div>
<div class="logo item items-center justify-center border-[rgba(255,255,255,0.15)] border-b p-[20px_0_38px_!important]"> <div class="logo item items-center justify-center border-[rgba(255,255,255,0.15)] border-b p-[20px_0_38px_!important]">
<a href="/" class=""> <a href="/" class="">
<img src="../assets/images/logo_small.png" alt=""> <img src="../assets/images/logo_small.png" alt="">
</a> </a>
<a href="javascript:void(0)" title="Mở menu" class="icon-close" id="js-show-menu"> <a href="javascript:void(0)" title="Mở menu" class="icon-close" id="js-show-menu">
<i class="fa-solid fa-indent"></i> <i class="fa-solid fa-indent"></i>
</a> </a>
@@ -135,10 +137,10 @@
{% assign _menuArray = _category[1].menu %} {% assign _menuArray = _category[1].menu %}
{% if _category[1].enable == 1 %} {% if _category[1].enable == 1 %}
<div class="item {% if _type == 'system' %} border-[rgba(255,255,255,0.15)] border-b{% endif %} {% if _type == global.module %}current{% endif %}"> <div class="item {% if _type == 'system' %} border-[rgba(255,255,255,0.15)] border-b{% endif %}">
{% if _type == 'order' %} <i class="icons icon-sell"> </i> {% if _type == 'order' %} <i class="icons icon-sell"> </i>
{% elsif _type == 'product' %} <i class="icons icon-product"> </i> {% elsif _type == 'product' %} <i class="icons icon-product"> </i>
{% elsif _type == 'customer' %}<i class="icons icon-user"> </i> {% elsif _type == 'customer' %}<a href="" class="icons icon-user"> </a>
{% elsif _type == 'marketing' %} <i class="icons icon-marketing"> </i> {% elsif _type == 'marketing' %} <i class="icons icon-marketing"> </i>
{% elsif _type == 'investor_relation' %} <i class="icons icon-investor_relation"> </i> {% elsif _type == 'investor_relation' %} <i class="icons icon-investor_relation"> </i>
{% elsif _type == 'article' %} <i class="icons icon-content"> </i> {% elsif _type == 'article' %} <i class="icons icon-content"> </i>
@@ -155,8 +157,9 @@
<div class="menu-list"> <div class="menu-list">
{% for _item in _menuArray %} {% for _item in _menuArray %}
<a href="{{ _item.url }}" {% if _item.view == global.view and <a href="{{ _item.url }}" {% if _item.view == global.view and _type == global.module %} class="current" {% endif %}>
_type == global.module %} class="current" {% endif %}> {{ _item.name }} </a> {{ _item.name }}
</a>
{% endfor %} {% endfor %}
</div> </div>
</div> </div>
@@ -174,7 +177,7 @@
<div class="menu-list"> <div class="menu-list">
{% for _item in global.main_menu.system.menu %} {% for _item in global.main_menu.system.menu %}
<a href="?module={{ _item.module }}&view={{ _item.view}}"> {{_item.name }} </a> <a href="{{_item.url }}"> {{_item.name }} </a>
{% endfor %} {% endfor %}
</div> </div>
</div> </div>
@@ -187,10 +190,10 @@
<p class="font-bold"> Hỗ trợ </p> <p class="font-bold"> Hỗ trợ </p>
<div class="menu-list"> <div class="menu-list">
<a href=""> Menu title </a> <a href=""> Menu title </a>
<a href=""> Menu title </a> <a href=""> Menu title </a>
<a href=""> Menu title </a> <a href=""> Menu title </a>
<a href=""> Menu title </a> <a href=""> Menu title </a>
</div> </div>
</div> </div>
</div> </div>
@@ -202,10 +205,10 @@
<p class="font-bold"> Quản lý tài khoản </p> <p class="font-bold"> Quản lý tài khoản </p>
<div class="menu-list"> <div class="menu-list">
<a href=""> Menu title </a> <a href=""> Menu title </a>
<a href=""> Menu title </a> <a href=""> Menu title </a>
<a href=""> Menu title </a> <a href=""> Menu title </a>
<a href=""> Menu title </a> <a href=""> Menu title </a>
</div> </div>
</div> </div>
</div> </div>
@@ -220,7 +223,7 @@
</div> </div>
</div> </div>
<div class="admin-content-container" id="js-admin-content-container"> <div class="admin-content-container" id="js-admin-content-container">
<!-- Header --> <!-- Header -->
<div class="admin-header-container flex items-center justify-between bg-white px-4 py-3"> <div class="admin-header-container flex items-center justify-between bg-white px-4 py-3">
<form class="max-w-[420px] relative w-[100%] menu-hide" id="js-form-search"> <form class="max-w-[420px] relative w-[100%] menu-hide" id="js-form-search">
@@ -236,7 +239,8 @@
<i class="icons header-support"></i> <i class="icons header-support"></i>
</a> </a>
<div class="group relative cursor-pointer ml-[20px] mr-[35px] group [&_summary::-webkit-details-marker]:hidden"> <div
class="group relative cursor-pointer ml-[20px] mr-[35px] group [&_summary::-webkit-details-marker]:hidden">
<div class="relative flex"> <div class="relative flex">
<i class="icons icon-notification"></i> <i class="icons icon-notification"></i>
@@ -246,7 +250,8 @@
</span> </span>
</div> </div>
<div class="group-hover:opacity-[1] group-hover:z-[1] opacity-0 absolute bg-white leading-[30px] note-list shadow whitespace-nowrap z-[-1] rounded-[4px] right-[-10px]"> <div
class="group-hover:opacity-[1] group-hover:z-[1] opacity-0 absolute bg-white leading-[30px] note-list shadow whitespace-nowrap z-[-1] rounded-[4px] right-[-10px]">
<a href=""> Menu title </a> <a href=""> Menu title </a>
<a href=""> Menu title </a> <a href=""> Menu title </a>
<a href=""> Menu title </a> <a href=""> Menu title </a>
@@ -258,12 +263,14 @@
<div class="flex items-center"> <div class="flex items-center">
<p class="m-0 mr-[10px]"> ducdt@hurasoft.com </p> <p class="m-0 mr-[10px]"> ducdt@hurasoft.com </p>
<img src="https://via.placeholder.com/72x72" class="block rounded-[50%] w-[36px] h-[36px] mr-[8px]" /> <img src="https://via.placeholder.com/72x72"
class="block rounded-[50%] w-[36px] h-[36px] mr-[8px]" />
<i class="fa-solid fa-sort-down text-[#C9C9C9] mb-[3px]"></i> <i class="fa-solid fa-sort-down text-[#C9C9C9] mb-[3px]"></i>
</div> </div>
<div class="group-hover:opacity-[1] group-hover:z-[1] opacity-0 absolute bg-white leading-[30px] note-list shadow whitespace-nowrap z-[-1] rounded-[4px] right-0"> <div
class="group-hover:opacity-[1] group-hover:z-[1] opacity-0 absolute bg-white leading-[30px] note-list shadow whitespace-nowrap z-[-1] rounded-[4px] right-0">
<a href="">Đổi mật khẩu</a> <a href="">Đổi mật khẩu</a>
<a href="">Thoát quản trị</a> <a href="">Thoát quản trị</a>
</div> </div>
@@ -280,4 +287,4 @@
{% include javascript/index %} {% include javascript/index %}
</body> </body>
</html> </html>