This commit is contained in:
2025-11-28 16:27:10 +07:00
parent af6f1eff2e
commit 91941d7c14
11 changed files with 501 additions and 61659 deletions

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

View File

@@ -16582,45 +16582,3 @@ html:not([data-theme="material"], [data-theme="material-dark"]) #layout-topbar {
background-position: 0; background-position: 0;
} }
} }
.bg-menu {
background: #004e99;
}
.line-clamp-1 {
-webkit-line-clamp: 1;
-webkit-box-orient: vertical;
display: -webkit-box;
overflow: hidden;
}
.line-clamp-2 {
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;
display: -webkit-box;
overflow: hidden;
}
.line-clamp-3 {
-webkit-line-clamp: 3;
-webkit-box-orient: vertical;
display: -webkit-box;
overflow: hidden;
}
.line-clamp-4 {
-webkit-line-clamp: 4;
-webkit-box-orient: vertical;
display: -webkit-box;
overflow: hidden;
}
.btn-dash {
border-style: dashed;
border-color: gray;
}
.btn-dash:hover {
border-color: var(--color-primary);
color: #fff;
background: var(--color-primary);
}
.todo-list td {
padding: 5px;
}

File diff suppressed because one or more lines are too long

View File

@@ -28,8 +28,8 @@ function get_category_list($parentId=0, $currentCat="",$level=1, $prefix="", $ca
$stt ++; $stt ++;
$imgUrl = (strlen($cat_info["thumbnail"]) > 2) ? " <img src=\"".$cat_info["thumbnail"]."\" style=\"max-width:30px; max-height:30px;\" />" : ""; $imgUrl = (strlen($cat_info["thumbnail"]) > 2) ? " <img src=\"".$cat_info["thumbnail"]."\" style=\"max-width:30px; max-height:30px;\" />" : "";
if($cat_info["status"]) $status = "<a href=\"javascript:update_status(".$cat_id.",'off')\" class='w-[30px] h-[30px] border-[1px] border-[#9E9E9E] rounded-[4px] text-center leading-[30px] flex items-center justify-center mr-[5px]'><i class='fa-regular fa-eye-slash text-[#9E9E9E]'></i></a>"; if($cat_info["status"]) $status = "<a href=\"javascript:update_status(".$cat_id.",'off')\" class='btn btn-soft btn-xs btn-outline btn-square'><i class='iconify lucide--eye-off'></i></a>";
else $status = "<a href=\"javascript:update_status(".$cat_id.",'on')\" class='w-[30px] h-[30px] border-[1px] border-[#0041E8] rounded-[4px] text-center leading-[30px] flex items-center justify-center mr-[5px]'><i class='fa-regular fa-eye text-[#0041E8]'></i></a>"; else $status = "<a href=\"javascript:update_status(".$cat_id.",'on')\" class='btn btn-soft btn-xs btn-outline btn-square'><i class='iconify lucide--eye'></i></a>";
$edit_link ="/admin/product/category-form?id=".$cat_id; $edit_link ="/admin/product/category-form?id=".$cat_id;
@@ -42,7 +42,7 @@ function get_category_list($parentId=0, $currentCat="",$level=1, $prefix="", $ca
} }
if($cat_info['is_parent']) { if($cat_info['is_parent']) {
$show_category_name = "<a href=\"javascript:;\" onclick=\"RowExpand.open_child('parent_".$cat_id."')\">".$show_category_name."</a>"; $show_category_name = "<a href=\"javascript:;\" class='link-primary' onclick=\"RowExpand.open_child('parent_".$cat_id."')\">".$show_category_name."</a>";
} }
$categoryTree .= " $categoryTree .= "
@@ -50,19 +50,19 @@ function get_category_list($parentId=0, $currentCat="",$level=1, $prefix="", $ca
onmouseover=\"this.className='row-hover parent_".$parentId."'\" onmouseout=\"this.className='parent_".$parentId."'\"> onmouseover=\"this.className='row-hover parent_".$parentId."'\" onmouseout=\"this.className='parent_".$parentId."'\">
<td> <td>
<a name='cat_".$cat_id."'></a> <a class='link-primary' name='cat_".$cat_id."'></a>
". $extra_space . $prefix . $stt.". ". $show_category_name . $imgUrl." ". $extra_space . $prefix . $stt.". ". $show_category_name . $imgUrl."
</td> </td>
<td> <td>
<a href='".$cat_info['request_path']."' title='Mở tại website' target='_blank'>Xem trang</a> <a href='".$cat_info['request_path']."' class='link-primary' title='Mở tại website' target='_blank'>Xem trang</a>
</td> </td>
<td>".$cat_id."</td> <td>".$cat_id."</td>
<td class='whitespace-nowrap'>413787</td> <td class='whitespace-nowrap'>413787</td>
<td><a href='/admin/product?category=".$cat_id."'>1292</a></td> <td><a class='link-primary' href='/admin/product?category=".$cat_id."'>1292</a></td>
<td> <td>
<input type=text id=order_".$cat_id." value='".$cat_info["ordering"]."' size=2 onchange=\"update_order(".$cat_id.",this.value)\" /> <input class='input' type=text id=order_".$cat_id." value='".$cat_info["ordering"]."' size=2 onchange=\"update_order(".$cat_id.",this.value)\" />
<span class='status-ordering-".$cat_id."'></span> <span class='status-ordering-".$cat_id."'></span>
</td> </td>
<td class='whitespace-nowrap'> <td class='whitespace-nowrap'>
@@ -77,11 +77,11 @@ function get_category_list($parentId=0, $currentCat="",$level=1, $prefix="", $ca
<a href='/admin/product/category-attribute?id=".$cat_id."&popup=1' class='pop-up'>Tổng</a> (".$cat_info['attribute_count'].") <a href='/admin/product/category-attribute?id=".$cat_id."&popup=1' class='pop-up'>Tổng</a> (".$cat_info['attribute_count'].")
</td> </td>
<td> <td>
<div class='list-btn flex items-center'> <div class='list-btn flex items-center gap-3'>
<a href=\"".$edit_link."\" class='w-[32px] h-[32px] border-[1px] border-[#0041E8] rounded-[4px] text-center leading-[30px] flex items-center justify-center mr-[5px]'><i class='icons icon-edit'></i></a> <a href=\"".$edit_link."\" class='btn btn-soft btn-xs btn-square btn-outline btn-view'><i class='iconify lucide--pencil'></i></a>
<a class='w-[32px] h-[32px] border-[1px] border-[#0041E8] rounded-[4px] text-center leading-[30px] flex items-center justify-center mr-[5px]' href='javascript:set_category_feature(.$cat_id.,'off')'><i class='icons icon-feature'></i></a> <a class='btn btn-soft btn-xs btn-square btn-outline btn-view' href='javascript:set_category_feature(.$cat_id.,'off')'><i class='iconify lucide--crown'></i></a>
<span id=status-".$cat_id.">".$status."</span> <span id=status-".$cat_id.">".$status."</span>
<span class='status-delete-".$cat_id."'><a href=\"javascript:deleteThis(".$cat_id.")\" class='w-[32px] h-[32px] border-[1px] border-[#9E9E9E] rounded-[4px] text-center leading-[30px] flex items-center justify-center mr-[5px]'><i class='icons icon-delete'></i></a></span> <span class='status-delete-".$cat_id."'><a href=\"javascript:deleteThis(".$cat_id.")\" class='btn btn-soft btn-xs btn-square btn-error btn-outline '><i class='iconify lucide--trash-2'></i></a></span>
</div> </div>
</td> </td>
"; ";
@@ -89,7 +89,7 @@ function get_category_list($parentId=0, $currentCat="",$level=1, $prefix="", $ca
}else{ }else{
$categoryTree .= " $categoryTree .= "
<td> <td>
<a href=\"".$edit_link."\"><i class='icons icon-edit'></i></a> <a href=\"".$edit_link."\"><i class='iconify lucide--pencil'></i></a>
</td> </td>
"; ";
} }

View File

@@ -4,7 +4,9 @@
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/simplebar/6.2.7/simplebar.css" /> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/simplebar/6.2.7/simplebar.css" />
<script defer src="https://cdn.jsdelivr.net/npm/alpinejs@3.x.x/dist/cdn.min.js"></script> <script defer src="https://cdn.jsdelivr.net/npm/alpinejs@3.x.x/dist/cdn.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.7.1/jquery.min.js"></script> <script src="{{'jquery.js' | asset_url }}"></script>
<script src="{{'global.js' | asset_url }}"></script>
{% if global.module == 'home' %} {% if global.module == 'home' %}

View File

@@ -1,7 +1,5 @@
<div class="w-[100%]"> <div class="bg-white shadow p-3 rounded-sm">
<div <h1 class="text-2xl font-bold mb-3">Danh sách thương hiệu</h1>
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">
<h1 class="text-[24px] font-[700] mb-3">Danh sách thương hiệu</h1>
<div class="flex items-center justify-between"> <div class="flex items-center justify-between">
<div> <div>
@@ -107,4 +105,3 @@
</table> </table>
</div> </div>
</div> </div>
</div>

View File

@@ -1,39 +1,36 @@
<div class="w-[100%]"> <div class="bg-white shadow p-3 rounded-sm">
<div <h1 class="text-2xl font-bold mb-3">Danh sách sản phẩm</h1>
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">
<h1 class="text-[24px] font-[700] mb-3">Danh sách sản phẩm</h1>
<div id="action-links" class="mb-[15px]"> <div id="action-links" class="mt-3">
<div class="flex item-center justify-between"> <div class="flex item-center justify-between">
<div <div class="btn btn-outline btn-view">
class="p-[5px_10px] border-[1px] border-[#79B0E2] rounded-[4px] text-[14px] text-[#79B0E2] hover:bg-[#79B0E2] hover:text-[#fff]">
<a href='javascript:;' onclick="RowExpand.open_all();"><span id='js-row-expand-all'></span> Xem hết <a href='javascript:;' onclick="RowExpand.open_all();"><span id='js-row-expand-all'></span> Xem hết
danh mục</a> danh mục</a>
</div> </div>
<a href="/admin/product/category-form" id="add-prod" <a href="/admin/product/category-form" id="add-prod" class="btn btn-outline btn-view">
class="p-[5px_10px] border-[1px] border-[#0041E8] rounded-[4px] text-[14px] text-[#0041E8] flex items-center hover:bg-[#0041E8] hover:text-white"><span <i class="iconify lucide--plus"></i>
class="border-[1px] border-[#0041E8] h-[14px] w-[14px] leading-[12px] text-center rounded-[50%] mr-1">+</span>
<span class="font-[500]">Thêm <span class="font-[500]">Thêm
danh mục mới</span></a> danh mục mới</span></a>
</div> </div>
</div> </div>
<div class="overflow-x-auto border border-base-200 rounded-sm mt-5 w-full mt-3">
<table id='tb_padding' cellpadding=2 cellspacing=0 width='100%' border=1 bordercolor='#CCCCCC' class="table"> <table id='tb_padding' cellpadding=2 cellspacing=0 width='100%' border=1 bordercolor='#CCCCCC' class="table">
<tr style="background-color:#EEE; font-weight:bold;"> <tr class="bg-base-200 font-bold">
<td>Danh mục</td> <td>Danh mục</td>
<td width=100px>Link web</td> <td>Link web</td>
<td width=60px class="whitespace-nowrap">ID</td> <td class=" whitespace-nowrap">ID</td>
<td>Xem</td> <td>Xem</td>
<td width=100px>SP</td> <td>SP</td>
<td width=100px>STT</td> <td>STT</td>
<td>Hiển thị nội dung</td> <td>Hiển thị nội dung</td>
<td width=100px>Thuộc tính</td> <td>Thuộc tính</td>
<td width=200px>Cập nhật</td> <td>Cập nhật</td>
</tr> </tr>
{{page.category_list}} {{page.category_list}}
</table> </table>
</div>
<p style="margin-top: 10px"> <p style="margin-top: 10px">
<strong style="color: red">Lưu ý</strong>: Tổng sản phẩm ở danh mục mẹ được tính là tổng sản phẩm sản phẩm <strong style="color: red">Lưu ý</strong>: Tổng sản phẩm ở danh mục mẹ được tính là tổng sản phẩm sản phẩm
@@ -41,12 +38,10 @@
thuộc cả 2 danh mục con thì sẽ được đếm 2 lần) thuộc cả 2 danh mục con thì sẽ được đếm 2 lần)
</p> </p>
<input type="hidden" id="save_open_row" value="," /> <input type="hidden" id="save_open_row" value="," />
<input type="hidden" id="track_open_row" value="0" /> <input type="hidden" id="track_open_row" value="0" />
</div> </div>
</div>
<script> <script>

View File

@@ -1,48 +1,39 @@
<div class="w-[100%]"> <div class="bg-white shadow p-3 rounded-sm">
<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-bold 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 flex-wrap justify-between items-center">
<div class="flex flex-wrap justify-between items-center mt-[20px]"> <div class="btn-left flex items-center mb-3 gap-3">
<div class="btn-left flex items-center mb-[15px]"> <a href="javascript:void(0)" onclick="js_list_category.showModal()" class="btn btn-outline btn-view">
<a href="javascript:void(0)" onclick="js_list_category.showModal()"
class="px-[10px] py-[8px] border-[#79B0E2] border-[1px] rounded-[4px] text-[#79B0E2] hover:bg-[#0061ff] hover:text-white mr-[15px]">
Chọn danh mục để xem Chọn danh mục để xem
</a> </a>
<a href="javascript:void(0)" onclick="js_list_brand.showModal()" <a href="javascript:void(0)" onclick="js_list_brand.showModal()" class="btn btn-outline btn-view">
class="px-[10px] py-[8px] border-[#79B0E2] border-[1px] rounded-[4px] text-[#79B0E2] hover:bg-[#0061ff] hover:text-white mr-[15px]">
Chọn thương hiệu để xem Chọn thương hiệu để xem
</a> </a>
</div> </div>
<div class="btn-right flex items-center mb-[15px]"> <div class="btn-right flex items-center mb-3 gap-3">
<a href="/admin/product/form" <a href="/admin/product/form" class="btn btn-outline btn-view">
class="flex items-center px-[10px] py-[8px] border-[#0041E8] border-[1px] rounded-[4px] text-[#0041E8] hover:bg-[#0041E8] hover:text-white font-[500]"> <i class="iconify lucide--plus"></i>
<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="" class="btn btn-outline btn-view">
class="flex items-center px-[10px] py-[8px] border-[#0041E8] border-[1px] rounded-[4px] text-[#0041E8] hover:bg-[#0041E8] hover:text-white ml-[15px] hover:stroke-white font-[500]"> <i class="iconify lucide--file-pdf"></i>
<i class="fa-regular fa-file-pdf"></i>
<span class="ml-1">Danh sách cập nhật</span> <span class="ml-1">Danh sách cập nhật</span>
</a> </a>
<a href="" <a href="" class="btn btn-outline btn-view">
class="flex items-center px-[10px] py-[8px] border-[#0041E8] border-[1px] rounded-[4px] text-[#0041E8] hover:bg-[#0041E8] hover:text-white ml-[15px] hover:stroke-white font-[500]"> <i class="iconify lucide--file-x"></i>
<i class="fa-regular fa-file-excel"></i>
<span class="ml-1">Cập nhật Excel</span> <span class="ml-1">Cập nhật Excel</span>
</a> </a>
</div> </div>
</div> </div>
<div class="overflow-x-auto"> <div class="overflow-x-auto mt-5 border border-base-200 rounded-sm">
<table class="w-[100%] mt-[20px] table"> <table class="table">
<thead class="bg-[#f6f6f6] text-[#000] text-[14px]"> <thead>
<tr> <tr class="bg-base-200 text-black">
<th class="whitespace-nowrap">STT</th> <th>STT</th>
<th>Ảnh</th> <th>Ảnh</th>
<th class="text-left">Sản phẩm (Tổng số: {{page.total}})</th> <th>Sản phẩm (Tổng số: {{page.total}})</th>
<th class="whitespace-nowrap text-left w-[350px]">Thông tin bán hàng</th> <th>Thông tin bán hàng</th>
<th class="w-[200px]"> <th>
<select id="" <select id="" class="select" onchange="location.href=this.value">
class="block w-[230px] h-[32px] px-[5px] bg-white border-[1px] border-[#D8D8D8] font-[400] h-[30px] mt-[5px] rounded-[4px] shadow-[0_2px_4px_0_#0000001F]"
onchange="location.href=this.value">
<option value="/admin/product?">Lọc sản phẩm</option> <option value="/admin/product?">Lọc sản phẩm</option>
<option value="/admin/product?hotType=new">Mới</option> <option value="/admin/product?hotType=new">Mới</option>
<option value="/admin/product?hotType=hot">HOT (hỏi nhiều)</option> <option value="/admin/product?hotType=hot">HOT (hỏi nhiều)</option>
@@ -51,7 +42,7 @@
<option value="/admin/product?hotType=online-only">Chỉ bán online</option> <option value="/admin/product?hotType=online-only">Chỉ bán online</option>
</select> </select>
</th> </th>
<th class="text-left ">Công cụ</th> <th>Công cụ</th>
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
@@ -62,128 +53,123 @@
<td>{{ counter }}</td> <td>{{ counter }}</td>
<td> <td>
<img class="block mx-auto my-0 w-[70px] h-[50px]" src="{{item.image.thumb}}" alt=""> <img class="block mx-auto my-0 w-[70px] h-[50px]" src="{{item.image.thumb}}" alt="">
<span class="text-center block">{{item.image_count}} ảnh</span> <span class="text-center block whitespace-nowrap">{{item.image_count}} ảnh</span>
</td> </td>
<td> <td>
<a href="/admin/product/form?id={{item.id}}">[#{{item.id}}] <a href="/admin/product/form?id={{item.id}}">[#{{item.id}}]
<span class="text-[#0041E8]">- <span class="link-primary">-
{{item.title}}</span> {{item.title}}</span>
</a> </a>
{% if item.config_count > 0 %}<p class="text-[#FFC700] text-[12px]">[Có cấu hình]</p>{% {% if item.config_count > 0 %}<p class="text-sm text-orange">[Có cấu hình]</p>{% endif %}
endif %} <div class="flex items-center my-1 gap-2">
<div class="flex items-center my-[5px]">
<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="">Màn hình Máy tính</b>
</div> </div>
<div class="flex items-center my-[5px]"> <div class="flex items-center my-1 gap-2">
<span>Mã kho</span> <span>Mã kho</span>
<b class="px-[5px]">{{item.sku}}</b> <b class="px-2">{{item.sku}}</b>
<span class="text-[#000] font-[500]">|</span> <span class="text-black font-[500]">|</span>
<span class="px-[5px]">Hãng</span> <span class="px-2">Hãng</span>
<p class="text-[#0041E8]">{{item.model}}</p> <p class="link-primary">{{item.model}}</p>
</div> </div>
{% assign date_now = "now" | date: format %} {% assign date_now = "now" | date: format %}
{% assign date_last = item.last_update %} {% assign date_last = item.last_update %}
{% assign time_conlai = date_now | minus: date_last %} {% assign time_conlai = date_now | minus: date_last %}
<p class="mb-[7px]">Cập nhật: {{item.last_update | date: "Y-m-d h:i" }} <span <p class="mb-2">Cập nhật: {{item.last_update | date: "Y-m-d h:i" }} <span class="text-red">(
class="text-[#E00000]">(
{{ time_conlai | divided_by: 86400 | round}} {{ time_conlai | divided_by: 86400 | round}}
ngày)</span></p> ngày)</span></p>
<p>Người cập nhật : {{item.last_update_by}}</p> <p>Người cập nhật : {{item.last_update_by}}</p>
</td> </td>
<td> <td>
<div class="flex flex-wrap items-center mb-[1px]"> <div class="flex flex-wrap items-center mb-1">
<span class="">Giá bán:</span> <span class="">Giá bán:</span>
<b class="text-[#E00000] ml-[3px] whitespace-nowrap"> <b class="text-[#E00000] ml-[3px] whitespace-nowrap">
{% if item.price > 0 %} {% if item.price > 0 %}
{{item.price | format_price }} vnd {{item.price | format_price }} vnd
{% else %} {% else %}`
{{item.price }} vnd {{item.price }} vnd
{% endif %} {% endif %}
</b> </b>
</div> </div>
<div class="flex items-center mb-[1px]"> <div class="flex items-center mb-1">
<span class="whitespace-nowrap">Giá thị trường:</span> <span class="whitespace-nowrap">Giá thị trường:</span>
<b class="text-[#E00000] ml-[3px] whitespace-nowrap"> <b class="text-[#E00000] ml-2 whitespace-nowrap">
{% if item.market_price > 0 %} {{item.market_price | format_price }} vnd {% else %} {% if item.market_price > 0 %} {{item.market_price | format_price }} vnd {% else %}
0 vnd {% endif %} 0 vnd {% endif %}
</b> </b>
</div> </div>
<p>Bảo hành: {{item.warranty}}</p> <p>Bảo hành: {{item.warranty}}</p>
<p>Khuyến mại: {{item.special_offer}}</p> <p>Khuyến mại: {{item.special_offer}}</p>
<div class="flex items-center"> <div class="flex items-center mb-1 gap-2">
<span>SL tổng:</span> <span>SL tổng:</span>
<b class="ml-[3px]">{{item.quantity}}</b> <b class="ml-2">{{item.quantity}}</b>
</div> </div>
</td> </td>
<td class="align-text-top"> <td class="align-text-top">
<label class="cursor-pointer flex items-center mb-[7px]" <label class="cursor-pointer flex items-center mb-2 gap-2"
onclick="AdminFunction.update_product_hot({{item.id}})"> onclick="AdminFunction.update_product_hot('{{item.id}}')">
<input type="checkbox" name="new" {% if item.hot_type=="new" %}checked="checked" {% <input type="checkbox" name="new" {% if item.hot_type=="new" %}checked="checked" {% endif %}
endif %} class="checkbox checkbox-success" /> class="checkbox checkbox-success" />
<span class="label-text ml-[5px] whitespace-nowrap">Mới Hot (Hỏi nhiều)</span> <span class="label-text whitespace-nowrap">Mới Hot (Hỏi nhiều)</span>
</label> </label>
<label class="cursor-pointer flex items-center mb-[7px]" <label class="cursor-pointer flex items-center mb-2 gap-2"
onclick="AdminFunction.update_product_hot({{item.id}})"> onclick="AdminFunction.update_product_hot('{{item.id}}')">
<input type="checkbox" name="hot" {% if item.hot_type=="hot" %}checked="checked" {% <input type="checkbox" name="hot" {% if item.hot_type=="hot" %}checked="checked" {% endif %}
endif %} class="checkbox checkbox-success" /> class="checkbox checkbox-success" />
<span class="label-text ml-[5px] whitespace-nowrap">Hot (Hỏi nhiều)</span> <span class="label-text whitespace-nowrap">Hot (Hỏi nhiều)</span>
</label> </label>
<label class="cursor-pointer flex items-center mb-[7px]" <label class="cursor-pointer flex items-center mb-2 gap-2"
onclick="AdminFunction.update_product_hot({{item.id}})"> onclick="AdminFunction.update_product_hot('{{item.id}}')">
<input type="checkbox" name="bestsale" {% if item.hot_type=="bestsale" <input type="checkbox" name="bestsale" {% if item.hot_type=="bestsale" %}checked="checked"
%}checked="checked" {% endif %} class="checkbox checkbox-success" /> {% endif %} class="checkbox checkbox-success" />
<span class="label-text ml-[5px] whitespace-nowrap">Bán <span class="label-text whitespace-nowrap">Bán
chạy</span> chạy</span>
</label> </label>
<label class="cursor-pointer flex items-center mb-[7px]" <label class="cursor-pointer flex items-center mb-2 gap-2"
onclick="AdminFunction.update_product_hot({{item.id}})"> onclick="AdminFunction.update_product_hot('{{item.id}}')">
<input type="checkbox" name="saleoff" {% if item.hot_type=="saleoff" %}checked="checked" <input type="checkbox" name="saleoff" {% if item.hot_type=="saleoff" %}checked="checked" {%
{% endif %} class="checkbox checkbox-success" /> endif %} class="checkbox checkbox-success" />
<span class="label-text ml-[5px] whitespace-nowrap">Xả <span class="label-text whitespace-nowrap">Xả
hàng (sale-off)</span> hàng (sale-off)</span>
</label> </label>
<label class="cursor-pointer flex items-center mb-[7px]" <label class="cursor-pointer flex items-center mb-2 gap-2"
onclick="AdminFunction.update_product_hot({{item.id}})"> onclick="AdminFunction.update_product_hot('{{item.id}}')">
<input type="checkbox" name="online-only" {% if item.hot_type=="online-only" <input type="checkbox" name="online-only" {% if item.hot_type=="online-only"
%}checked="checked" {% endif %} class="checkbox checkbox-success" /> %}checked="checked" {% endif %} class="checkbox checkbox-success" />
<span class="label-text ml-[5px] whitespace-nowrap">Chỉ bán online</span> <span class="label-text whitespace-nowrap">Chỉ bán online</span>
</label> </label>
<div id="js-status-hottype-{{item.id}}" class="flex items-center mt-[5px]"></div> <div id="js-status-hottype-{{item.id}}" class="flex items-center mt-2"></div>
</td> </td>
<td class="align-text-top"> <td class="align-text-top">
<div class="list-btn flex items-center w-[150px]"> <div class="list-btn flex items-center gap-3">
<a href="/admin/product/form?id={{item.id}}" title="Form sản phẩm" <a href="/admin/product/form?id={{item.id}}" title="Form sản phẩm"
class="w-[32px] h-[32px] border-[1px] border-[#0041e8] rounded-[4px] text-center leading-[32px] flex items-center justify-center mr-[5px]"> class="btn btn-soft btn-xs btn-square btn-outline btn-view">
<i class="icons icon-edit"></i> <i class="iconify lucide--pencil"></i>
</a> </a>
<a href="{{item.request_path}}" title="Xem tại web" target="_blank" <a href="{{item.request_path}}" title="Xem tại web" target="_blank"
class="w-[32px] h-[32px] border-[1px] border-[#0041E8] rounded-[4px] text-center leading-[30px] flex items-center justify-center mr-[5px]"> class="btn btn-soft btn-xs btn-square btn-outline btn-view">
<i class="icons icon-view"></i> <i class="iconify lucide--globe"></i>
</a> </a>
{% if item.status == 0 %} {% if item.status == 0 %}
<a href="" <a href="" class="btn btn-soft btn-xs btn-square btn-outline btn-view">
class="w-[32px] h-[32px] border-[1px] border-[#9E9E9E] rounded-[4px] text-center leading-[30px] flex items-center justify-center mr-[5px]"> <i class="iconify lucide--eye-off"></i>
<i class="fa-regular fa-eye-slash text-[#9E9E9E]"></i>
</a> </a>
{% else %} {% else %}
<a href="" <a href="" class="btn btn-soft btn-xs btn-square btn-outline btn-view">
class="w-[32px] h-[32px] border-[1px] border-[#0041E8] rounded-[4px] text-center leading-[30px] flex items-center justify-center mr-[5px] bg-white"> <i class="iconify lucide--eye"></i>
<i class="fa-regular fa-eye text-[#0041E8]"></i>
</a> </a>
{% endif %} {% endif %}
<a href="" <a href="" class="btn btn-soft btn-xs btn-error btn-square">
class="w-[32px] h-[32px] border-[1px] border-[#9E9E9E] rounded-[4px] text-center leading-[30px] flex items-center justify-center mr-[5px]"> <i class="iconify lucide--trash"></i>
<i class="icons icon-delete"></i>
</a> </a>
</div> </div>
</td> </td>
@@ -194,18 +180,22 @@
</table> </table>
</div> </div>
<div class="paging"> <div class="join mt-5 justify-center flex items-center">
{% for paging in page.pagination.collection %} {% for paging in page.pagination.collection %}
<a href="{{paging.url}}" class="{% if paging.is_active == 1 %} current {% endif %}">
{% if paging.name == 'next' %} {% if paging.name == 'next' %}
<i class="fas fa-chevron-right"></i> <a href="{{paging.url}}" class="btn btn-square btn-sm btn-outline border-base-300 join-item"
{% elsif paging.name == 'prev' %} aria-label="Pagination controls">
<i class="fas fa-chevron-left"></i> <span class="iconify lucide--arrow-right"></span>
{% else %}
{{paging.name}}
{% endif %}
</a> </a>
{% elsif paging.name == 'prev' %}
<a href="{{paging.url}}" class="btn btn-square btn-sm btn-outline border-base-300 join-item"
aria-label="Pagination controls">
<span class="iconify lucide--arrow-left"></span>
</a>
{% else %}
<a href="{{paging.url}}"
class="btn btn-square btn-sm btn-outline border-base-300 join-item {% if paging.is_active == 1 %}btn-active{% endif %}">{{paging.name}}</a>
{% endif %}
{% endfor %} {% endfor %}
</div> </div>
@@ -217,33 +207,33 @@
<form method="dialog"> <form method="dialog">
<button class="btn btn-sm btn-circle btn-ghost absolute right-2 top-2"></button> <button class="btn btn-sm btn-circle btn-ghost absolute right-2 top-2"></button>
</form> </form>
<div class="flex items-center"> <div class="flex items-center gap-2">
<b class="text-[16px]">Tổng sản phẩm:</b> <b class="text-lg">Tổng sản phẩm:</b>
<p class="ml-[5px]">{{page.total}} sản phẩm</p> <p class="ml-2">{{page.total}} sản phẩm</p>
</div> </div>
<div class="list-category mt-[5px] max-h-[400px] max-h-[400px] overflow-x-auto"> <div class="list-category mt-1 max-h-400 max-h-400p overflow-x-auto">
{% for cate in page.list_category %} {% for cate in page.list_category %}
<a href="{{cate.url}}" class="item block mb-[5px] text-[#0041E8]"> <a href="{{cate.url}}" class="item block mb-2 text-primary">
{% if cate.children.size > 0 %} {% if cate.children.size > 0 %}
<b class="text-[#0041E8]">+ (#{{cate.id}}){{cate.title}}</b> <b class="text-primary">+ (#{{cate.id}}){{cate.title}}</b>
{% else %} {% else %}
+ (#{{cate.id}}){{cate.title}} + (#{{cate.id}}){{cate.title}}
{% endif %} {% endif %}
</a> </a>
{% if cate.children.size > 0 %} {% if cate.children.size > 0 %}
<div class="ml-[15px]"> <div class="ml-2">
{% for cate2 in cate.children %} {% for cate2 in cate.children %}
<a href="{{cate2.url}}" class="item block mb-[5px] text-[#0041E8]"> <a href="{{cate2.url}}" class="item block mb-2 text-primary">
{% if cate2.children.size > 0 %} {% if cate2.children.size > 0 %}
<b class="text-[#0041E8]">+ (#{{cate2.id}}){{cate2.title}}</b> <b class="text-primary">+ (#{{cate2.id}}){{cate2.title}}</b>
{% else %} {% else %}
+ (#{{cate2.id}}){{cate2.title}} ({{cate2.totalProduct}}) + (#{{cate2.id}}){{cate2.title}} ({{cate2.totalProduct}})
{% endif %} {% endif %}
</a> </a>
{% if cate2.children.size > 0 %} {% if cate2.children.size > 0 %}
<div class="ml-[15px]"> <div class="ml-2">
{% for cate3 in cate2.children %} {% for cate3 in cate2.children %}
<a href="{{cate3.url}}" class="item block mb-[5px] text-[#0041E8]">+ <a href="{{cate3.url}}" class="item block mb-2 text-primary">+
(#{{cate3.id}}){{cate3.title}} (#{{cate3.id}}){{cate3.title}}
({{cate3.totalProduct}})</a> ({{cate3.totalProduct}})</a>
{% endfor %} {% endfor %}
@@ -267,18 +257,18 @@
<button class="btn btn-sm btn-circle btn-ghost absolute right-2 top-2"></button> <button class="btn btn-sm btn-circle btn-ghost absolute right-2 top-2"></button>
</form> </form>
<div class="flex flex-wrap items-center"> <div class="flex flex-wrap items-center">
<b class="inline-block w-[120px]">Tìm theo chữ cái</b> <b class="inline-block w-34">Tìm theo chữ cái</b>
<div class="list-key inline-block ml-[10px] w-[calc(100%-140px)]"> <div class="list-key inline-block ml-2 max-w-3xl">
{% for key in page.brand_letters %} {% for key in page.brand_letters %}
<a href="{{key.url}}"> <a href="{{key.url}}">
<span class="text-[#0041E8] underline">{{key.key}}</span> <span>({{key.total}})</span> <span class="text-primary underline">{{key.key}}</span> <span>({{key.total}})</span>
</a> </a>
{% endfor %} {% endfor %}
</div> </div>
<div class="overflow-x-auto border border-base-200 rounded-sm mt-5 w-full mt-3">
<table class="mt-[15px] w-[100%] table-brand"> <table class="w-full table table-sm table-brand">
<thead> <thead>
<tr> <tr class="bg-base-200">
<th>STT</th> <th>STT</th>
<th>Thương hiệu</th> <th>Thương hiệu</th>
<th class="whitespace-nowrap">Số lượng sản phẩm</th> <th class="whitespace-nowrap">Số lượng sản phẩm</th>
@@ -290,11 +280,11 @@
{% for item2 in item.1 %} {% for item2 in item.1 %}
{% increment stt %} {% increment stt %}
<tr> <tr>
<td class="w-[10%]">{{stt}}</td> <td>{{stt}}</td>
<td>{{item2.name}}</td> <td>{{item2.name}}</td>
<td class="w-[18%]"> <td>
<span>{{item2.product}}</span> <span>{{item2.product}}</span>
<a href="{{item2.url}}" class="text-[#0041E8]">(Xem sp)</a> <a href="{{item2.url}}" class="text-primary">(Xem sp)</a>
</td> </td>
</tr> </tr>
{% endfor %} {% endfor %}
@@ -303,9 +293,8 @@
</table> </table>
</div> </div>
</div> </div>
</div>
<form method="dialog" class="modal-backdrop"> <form method="dialog" class="modal-backdrop">
<button>close</button> <button>close</button>
</form> </form>
</dialog> </dialog>
</div>

View File

@@ -20,8 +20,9 @@
console.log(err) console.log(err)
} }
</script> </script>
<link rel="stylesheet" href="{{'style.css' | asset_url}}?{{ 'now' | date : '%Y-%m-%d.%H.%M.%S' }}">
<link rel="stylesheet" href="{{'style.css' | asset_url}}">
<link rel="stylesheet" href="{{'style_hura.css' | asset_url}}?{{ 'now' | date : '%Y-%m-%d.%H.%M.%S' }}">
</head> </head>
<body> <body>
@@ -45,13 +46,8 @@
</div> </div>
{% include javascript/index %} {% include javascript/index %}
</body> </body>
</html> </html>