marketing
This commit is contained in:
@@ -702,6 +702,11 @@ input[type=radio]:focus:before {
|
||||
height: 20px;
|
||||
background-position: -43px -83px;
|
||||
}
|
||||
.icons.icon-edit {
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
background-position: -114px -89px;
|
||||
}
|
||||
|
||||
.admin-header-container .menu-hide {
|
||||
margin-left: 30px;
|
||||
@@ -711,13 +716,13 @@ input[type=radio]:focus:before {
|
||||
.order-page .order-page-title a {
|
||||
margin: 0 2px 0 0;
|
||||
border-radius: 4px 4px 0px 0px;
|
||||
background: #F6F6F6;
|
||||
background: #f6f6f6;
|
||||
color: #919699;
|
||||
font-weight: 500;
|
||||
padding: 0 24px;
|
||||
}
|
||||
.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;
|
||||
}
|
||||
.order-page .order-page-table {
|
||||
@@ -737,7 +742,7 @@ input[type=radio]:focus:before {
|
||||
line-height: 20px;
|
||||
}
|
||||
.order-page-table a {
|
||||
color: #0041E8;
|
||||
color: #0041e8;
|
||||
}
|
||||
.order-page-table a:hover {
|
||||
text-decoration: underline;
|
||||
@@ -746,7 +751,7 @@ input[type=radio]:focus:before {
|
||||
width: 100%;
|
||||
}
|
||||
.order-page-table thead {
|
||||
background: #F6F6F6;
|
||||
background: #f6f6f6;
|
||||
font-weight: 600;
|
||||
text-align: center;
|
||||
}
|
||||
@@ -755,7 +760,7 @@ input[type=radio]:focus:before {
|
||||
}
|
||||
.order-page-table td {
|
||||
padding: 10px;
|
||||
border: 1px solid #ECECEC;
|
||||
border: 1px solid #ececec;
|
||||
text-transform: capitalize;
|
||||
}
|
||||
.order-page-table td * {
|
||||
@@ -763,7 +768,7 @@ input[type=radio]:focus:before {
|
||||
}
|
||||
.order-page-table select {
|
||||
border-radius: 4px;
|
||||
border: 1px solid #D8D8D8;
|
||||
border: 1px solid #d8d8d8;
|
||||
box-shadow: 0px 2px 4px 0px rgba(0, 0, 0, 0.12);
|
||||
height: 32px;
|
||||
display: block;
|
||||
@@ -788,11 +793,11 @@ input[type=radio]:focus:before {
|
||||
}
|
||||
|
||||
.is-close-btn {
|
||||
background: #ECECEC !important;
|
||||
background: #ececec !important;
|
||||
border-radius: 50%;
|
||||
top: 10px !important;
|
||||
right: 10px !important;
|
||||
color: #9E9E9E !important;
|
||||
color: #9e9e9e !important;
|
||||
}
|
||||
|
||||
.paging {
|
||||
@@ -811,7 +816,7 @@ input[type=radio]:focus:before {
|
||||
border-radius: 4px;
|
||||
}
|
||||
.paging a:hover, .paging a.current, .paging a.active {
|
||||
background: #0041E8;
|
||||
background: #0041e8;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
@@ -823,7 +828,7 @@ input[type=radio]:focus:before {
|
||||
display: inline-block;
|
||||
}
|
||||
.global-breadcrumb-container a:hover {
|
||||
color: #0041E8;
|
||||
color: #0041e8;
|
||||
}
|
||||
.global-breadcrumb-container a::after {
|
||||
content: "\f054";
|
||||
@@ -832,7 +837,7 @@ input[type=radio]:focus:before {
|
||||
margin: 0 5px;
|
||||
}
|
||||
.global-breadcrumb-container a:last-child {
|
||||
color: #0041E8;
|
||||
color: #0041e8;
|
||||
}
|
||||
.global-breadcrumb-container a:last-child::after {
|
||||
content: none;
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -157,7 +157,7 @@ a {
|
||||
}
|
||||
.fa-angle-right {
|
||||
transform: rotate(90deg);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
summary {
|
||||
@@ -192,7 +192,7 @@ a {
|
||||
.icons {
|
||||
filter: brightness(100);
|
||||
}
|
||||
}
|
||||
}
|
||||
.icons {
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
@@ -239,7 +239,7 @@ a {
|
||||
margin: 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
.icon-home {
|
||||
background-position: -9px -7px;
|
||||
}
|
||||
@@ -339,8 +339,8 @@ a {
|
||||
height: 41px;
|
||||
display: none;
|
||||
}
|
||||
&:nth-child(n+13){
|
||||
.sub-menu{
|
||||
&:nth-child(n + 13) {
|
||||
.sub-menu {
|
||||
top: unset;
|
||||
}
|
||||
}
|
||||
@@ -710,6 +710,11 @@ input[type="radio"] {
|
||||
height: 20px;
|
||||
background-position: -43px -83px;
|
||||
}
|
||||
&.icon-edit {
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
background-position: -114px -89px;
|
||||
}
|
||||
}
|
||||
|
||||
.admin-header-container {
|
||||
@@ -718,18 +723,20 @@ input[type="radio"] {
|
||||
}
|
||||
}
|
||||
|
||||
/* Bán hàng */
|
||||
/* Bán hàng */
|
||||
.order-page {
|
||||
.order-page-title{
|
||||
.order-page-title {
|
||||
a {
|
||||
margin: 0 2px 0 0;
|
||||
border-radius: 4px 4px 0px 0px;
|
||||
background: #F6F6F6;
|
||||
background: #f6f6f6;
|
||||
color: #919699;
|
||||
font-weight: 500;
|
||||
padding: 0 24px;
|
||||
&:hover, &.current, &.active {
|
||||
background: #0041E8;
|
||||
&:hover,
|
||||
&.current,
|
||||
&.active {
|
||||
background: #0041e8;
|
||||
color: #fff;
|
||||
}
|
||||
}
|
||||
@@ -737,13 +744,14 @@ input[type="radio"] {
|
||||
.order-page-table {
|
||||
text-align: center;
|
||||
thead {
|
||||
td{
|
||||
td {
|
||||
padding: 8px;
|
||||
}
|
||||
}
|
||||
td{
|
||||
td {
|
||||
padding: 14px 8px;
|
||||
&:nth-child(4), &:nth-child(10){
|
||||
&:nth-child(4),
|
||||
&:nth-child(10) {
|
||||
text-align: left;
|
||||
}
|
||||
}
|
||||
@@ -751,34 +759,34 @@ input[type="radio"] {
|
||||
}
|
||||
.order-page-table {
|
||||
line-height: 20px;
|
||||
a{
|
||||
color: #0041E8;
|
||||
&:hover{
|
||||
a {
|
||||
color: #0041e8;
|
||||
&:hover {
|
||||
text-decoration: underline;
|
||||
}
|
||||
}
|
||||
table{
|
||||
table {
|
||||
width: 100%;
|
||||
}
|
||||
thead {
|
||||
background: #F6F6F6;
|
||||
thead {
|
||||
background: #f6f6f6;
|
||||
font-weight: 600;
|
||||
text-align: center;
|
||||
td{
|
||||
td {
|
||||
padding: 8px;
|
||||
}
|
||||
}
|
||||
td{
|
||||
td {
|
||||
padding: 10px;
|
||||
border: 1px solid #ECECEC;
|
||||
border: 1px solid #ececec;
|
||||
text-transform: capitalize;
|
||||
*{
|
||||
* {
|
||||
display: inline-block;
|
||||
}
|
||||
}
|
||||
select {
|
||||
border-radius: 4px;
|
||||
border: 1px solid #D8D8D8;
|
||||
border: 1px solid #d8d8d8;
|
||||
box-shadow: 0px 2px 4px 0px rgba(0, 0, 0, 0.12);
|
||||
height: 32px;
|
||||
display: block;
|
||||
@@ -803,11 +811,11 @@ input[type="radio"] {
|
||||
}
|
||||
}
|
||||
.is-close-btn {
|
||||
background: #ECECEC !important;
|
||||
background: #ececec !important;
|
||||
border-radius: 50%;
|
||||
top: 10px !important;
|
||||
right: 10px !important;
|
||||
color: #9E9E9E !important;
|
||||
color: #9e9e9e !important;
|
||||
}
|
||||
.paging {
|
||||
margin: 30px 0;
|
||||
@@ -815,15 +823,17 @@ input[type="radio"] {
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
line-height: 28px;
|
||||
a{
|
||||
a {
|
||||
margin: 0 3px;
|
||||
min-width: 28px;
|
||||
text-align: center;
|
||||
font-size: 16px;
|
||||
padding: 0 10px;
|
||||
border-radius: 4px;
|
||||
&:hover, &.current, &.active {
|
||||
background: #0041E8;
|
||||
&:hover,
|
||||
&.current,
|
||||
&.active {
|
||||
background: #0041e8;
|
||||
color: #fff;
|
||||
}
|
||||
}
|
||||
@@ -831,22 +841,22 @@ input[type="radio"] {
|
||||
.global-breadcrumb-container {
|
||||
padding: 16px;
|
||||
line-height: 20px;
|
||||
a{
|
||||
a {
|
||||
display: inline-block;
|
||||
&:hover{
|
||||
color: #0041E8;
|
||||
&:hover {
|
||||
color: #0041e8;
|
||||
}
|
||||
&::after{
|
||||
content: '\f054';
|
||||
&::after {
|
||||
content: "\f054";
|
||||
font-family: Fontawesome;
|
||||
font-size: 10px;
|
||||
margin: 0 5px;
|
||||
}
|
||||
&:last-child{
|
||||
color: #0041E8;
|
||||
&::after{
|
||||
&:last-child {
|
||||
color: #0041e8;
|
||||
&::after {
|
||||
content: none;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,6 +1,14 @@
|
||||
<?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_file = str_replace("-", "_", $view_part);
|
||||
@@ -14,20 +22,13 @@ if(@file_exists($part_file)) {
|
||||
|
||||
|
||||
return [
|
||||
"product_info" => _get_product_info(),
|
||||
"product_info" => $product_info,
|
||||
"product_menu" => _get_product_menu(),
|
||||
"view_part" => $view_part,
|
||||
];
|
||||
|
||||
// helpers
|
||||
|
||||
function _get_product_info() {
|
||||
return [
|
||||
"id" => 12,
|
||||
"title" => "Máy in mã vạch MH241",
|
||||
];
|
||||
}
|
||||
|
||||
function _get_product_menu() {
|
||||
$current_selected = getRequest('part', 'basic');
|
||||
$product_menu = array(
|
||||
|
||||
@@ -43,11 +43,7 @@ class AppAdmin
|
||||
|
||||
|
||||
protected function getData() {
|
||||
$module_file = join(DIRECTORY_SEPARATOR, [
|
||||
"data",
|
||||
$this->current_route_info["module"],
|
||||
str_replace("-", "_", $this->current_route_info["view"]).".php"
|
||||
]) ;
|
||||
$module_file = $this->getModuleFile();
|
||||
|
||||
if(file_exists($module_file)) {
|
||||
// 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() {
|
||||
|
||||
if(!$this->current_route_info['module'] || !$this->current_route_info['view']) {
|
||||
@@ -84,7 +89,10 @@ class AppAdmin
|
||||
//check exist
|
||||
if(!@file_exists( $template_file_full_path)) {
|
||||
// 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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
<div class="text-sm breadcrumbs ml-[10px]">
|
||||
<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>
|
||||
</ul>
|
||||
</div>
|
||||
@@ -16,7 +16,7 @@
|
||||
<div class="bg-white rounded-[10px] shadow-[0_1px_1px_0_rgba(0,0,0,0.1)]">
|
||||
|
||||
{% 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 %}">
|
||||
{{ _menu.name }}
|
||||
</a>
|
||||
@@ -91,4 +91,4 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -1,9 +1,6 @@
|
||||
|
||||
{{ page | show_var }}
|
||||
|
||||
<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)]">
|
||||
<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
|
||||
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">
|
||||
@@ -89,8 +86,8 @@
|
||||
<th>STT</th>
|
||||
<th>ID</th>
|
||||
<th>Ảnh</th>
|
||||
<th>Sản phẩm (Tổng số: 1.742)</th>
|
||||
<th>Người dùng</th>
|
||||
<th>Sản phẩm</th>
|
||||
<th class="whitespace-nowrap">Người dùng</th>
|
||||
<th>Thông tin bán hàng</th>
|
||||
<th>Thông tin khác</th>
|
||||
<th>
|
||||
@@ -104,84 +101,86 @@
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% assign counter = 0 %}
|
||||
{% for item in page.item_list %}
|
||||
{% increment counter %}
|
||||
<tr>
|
||||
<td>1</td>
|
||||
<td>#2105</td>
|
||||
<td>{{ counter }}</td>
|
||||
<td>#{{item.id}}</td>
|
||||
<td>
|
||||
<img class="block m-auto" src="./images/img-product.png" alt="">
|
||||
<span class="text-center block">6 ảnh</span>
|
||||
<a href="" class="text-center flex justify-center">
|
||||
<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>
|
||||
<img class="block m-auto" src="{{item.image.thumb}}" alt="">
|
||||
<span class="text-center block">{{item.image_count}} ảnh</span>
|
||||
<i class="icons icon-edit"></i>
|
||||
</td>
|
||||
<td>
|
||||
<a href="" class="text-[#0041E8]">Chăn hè đũi xơ đậu nành mã 32 Gấu xanh</a>
|
||||
<p class="text-[#FFC700]">[Có cấu hình]</p>
|
||||
<a href="/admin/product/form?id={{item.id}}" class="text-[#0041E8] w-[300px] inline-block">{{item.title}}</a>
|
||||
{% if item.config_count > 0 %}<p class="text-[#FFC700]">[Có cấu hình]</p>{% endif %}
|
||||
<div class="flex items-center">
|
||||
<span>Danh mục:</span>
|
||||
<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"
|
||||
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>
|
||||
<a href=""><i class="icons icon-edit"></i></a>
|
||||
</div>
|
||||
<div class="flex items-center">
|
||||
<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="px-[5px]">Hãng</span>
|
||||
<p class="text-[#0041E8]">ABS</p>
|
||||
<p class="text-[#0041E8]">{{item.model}}</p>
|
||||
</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>
|
||||
<p>- Xem : 0</p>
|
||||
<p>- Thích : 0</p>
|
||||
<p>- Mua : 0</p>
|
||||
<p>- Xem : {{item.visit}}</p>
|
||||
<p>- Thích : {{item.like_count}}</p>
|
||||
<p>- Mua : {{item.buy_count}}</p>
|
||||
</td>
|
||||
<td>
|
||||
<div class="flex items-center mb-[1px]">
|
||||
<span>- Giá bán:</span>
|
||||
<b class="text-[#E00000] ml-[3px]">300.000 vnd</b>
|
||||
<span class="whitespace-nowrap">- Giá bán:</span>
|
||||
<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 class="flex items-center">
|
||||
<span>- Sl tổng:</span>
|
||||
<b class="ml-[3px]">1</b>
|
||||
<b class="ml-[3px]">{{item.quantity}}</b>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
<div class="flex items-center mb-[1px]">
|
||||
<span>- Giá bán:</span>
|
||||
<b class="text-[#E00000] ml-[3px]">300.000 vnd</b>
|
||||
<span class="whitespace-nowrap">- Giá bán:</span>
|
||||
<b class="text-[#E00000] ml-[3px] whitespace-nowrap">{% if item.price > 0 %}
|
||||
{{item.price | format_price }} vnd
|
||||
{% else %}
|
||||
{{item.price }} vnd
|
||||
{% endif %}</b>
|
||||
</div>
|
||||
<p>- Bảo hành: Ato test</p>
|
||||
<p>- Khuyến mại: + Ato test</p>
|
||||
<p>- Bảo hành: {{item.warranty}}</p>
|
||||
<p>- Khuyến mại: {{item.special_offer}}</p>
|
||||
</td>
|
||||
<td>
|
||||
<div>
|
||||
<input type="checkbox" name="" id="">
|
||||
<input type="checkbox" name="">
|
||||
<label for="">Mới Hot (Hỏi nhiều)</label>
|
||||
</div>
|
||||
<div>
|
||||
<input type="checkbox" name="" id="">
|
||||
<input type="checkbox" name="" >
|
||||
<label for="">Bán chạy</label>
|
||||
</div>
|
||||
<div>
|
||||
<input type="checkbox" name="" id="">
|
||||
<input type="checkbox" name="" >
|
||||
<label for="">Xả hàng (sale-off)</label>
|
||||
</div>
|
||||
<div>
|
||||
@@ -194,7 +193,7 @@
|
||||
</td>
|
||||
<td class="">
|
||||
<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]">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="12" height="13" viewBox="0 0 12 13"
|
||||
fill="none">
|
||||
@@ -206,7 +205,7 @@
|
||||
fill="#0041E8"></path>
|
||||
</svg>
|
||||
</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]">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="13" height="13" viewBox="0 0 13 13"
|
||||
fill="none">
|
||||
@@ -262,8 +261,26 @@
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
|
||||
</tbody>
|
||||
</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>
|
||||
|
||||
@@ -2,35 +2,36 @@
|
||||
<html lang="vi">
|
||||
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<title> Admin Hura Pc </title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<meta charset="utf-8" />
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<title> Admin Hura Pc </title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
|
||||
<link rel="preconnect" href="https://fonts.googleapis.com">
|
||||
<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"
|
||||
rel="stylesheet">
|
||||
<link href="https://cdn.jsdelivr.net/npm/daisyui@4.6.0/dist/full.min.css" rel="stylesheet" type="text/css" />
|
||||
<link rel="preconnect" href="https://fonts.googleapis.com">
|
||||
<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"
|
||||
rel="stylesheet">
|
||||
<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" media="screen" href="{{ 'fancybox.css' | asset_url }}" />
|
||||
<link rel="stylesheet" media="screen" href="{{ 'pc_style.css' | asset_url }}" />
|
||||
<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="{{ 'pc_style.css' | asset_url }}" />
|
||||
|
||||
<script src="{{ 'tailwindcss.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="{{ 'tailwindcss.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>
|
||||
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
{{ global | show_var }}
|
||||
{{ global | show_var }}
|
||||
|
||||
{{ page | show_var }}
|
||||
|
||||
<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">
|
||||
<a href="javascript:void(0)" class="icon-close" title="Thu gọn menu" id="js-hide-menu">
|
||||
<i class="fa-solid fa-outdent"></i>
|
||||
@@ -50,7 +51,7 @@
|
||||
{% assign _type = _category[0] %}
|
||||
{% assign _menuArray = _category[1].menu %}
|
||||
{% if _category[1].enable == 1 %}
|
||||
<details {% if _type == global.module %} open {% endif %}>
|
||||
<details {% if _type==global.module %} open {% endif %}>
|
||||
<summary class="item">
|
||||
<div class="flex items-center">
|
||||
|
||||
@@ -76,8 +77,8 @@
|
||||
|
||||
<div class="sub-menu">
|
||||
{% for _item in _menuArray %}
|
||||
<a href="{{ _item.url }}" {% if _item.view == global.view and
|
||||
_type == global.module %} class="current" {% endif %}> {{ _item.name }} </a>
|
||||
<a href="{{_item.url }}" {% if _item.view==global.view and _type==global.module %}
|
||||
class="current" {% endif %}> {{ _item.name }} </a>
|
||||
{% endfor %}
|
||||
</div>
|
||||
</details>
|
||||
@@ -111,12 +112,13 @@
|
||||
</div>
|
||||
|
||||
<!-- 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 class="logo item items-center justify-center border-[rgba(255,255,255,0.15)] border-b p-[20px_0_38px_!important]">
|
||||
<a href="/" class="">
|
||||
<img src="../assets/images/logo_small.png" alt="">
|
||||
</a>
|
||||
|
||||
<a href="javascript:void(0)" title="Mở menu" class="icon-close" id="js-show-menu">
|
||||
<i class="fa-solid fa-indent"></i>
|
||||
</a>
|
||||
@@ -135,10 +137,10 @@
|
||||
{% assign _menuArray = _category[1].menu %}
|
||||
|
||||
{% 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>
|
||||
{% 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 == 'investor_relation' %} <i class="icons icon-investor_relation"> </i>
|
||||
{% elsif _type == 'article' %} <i class="icons icon-content"> </i>
|
||||
@@ -155,8 +157,9 @@
|
||||
|
||||
<div class="menu-list">
|
||||
{% for _item in _menuArray %}
|
||||
<a href="{{ _item.url }}" {% if _item.view == global.view and
|
||||
_type == global.module %} class="current" {% endif %}> {{ _item.name }} </a>
|
||||
<a href="{{ _item.url }}" {% if _item.view == global.view and _type == global.module %} class="current" {% endif %}>
|
||||
{{ _item.name }}
|
||||
</a>
|
||||
{% endfor %}
|
||||
</div>
|
||||
</div>
|
||||
@@ -174,7 +177,7 @@
|
||||
|
||||
<div class="menu-list">
|
||||
{% 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 %}
|
||||
</div>
|
||||
</div>
|
||||
@@ -187,10 +190,10 @@
|
||||
<p class="font-bold"> Hỗ trợ </p>
|
||||
|
||||
<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>
|
||||
@@ -202,10 +205,10 @@
|
||||
<p class="font-bold"> Quản lý tài khoản </p>
|
||||
|
||||
<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>
|
||||
@@ -220,7 +223,7 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="admin-content-container" id="js-admin-content-container">
|
||||
<div class="admin-content-container" id="js-admin-content-container">
|
||||
<!-- Header -->
|
||||
<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">
|
||||
@@ -236,7 +239,8 @@
|
||||
<i class="icons header-support"></i>
|
||||
</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">
|
||||
<i class="icons icon-notification"></i>
|
||||
|
||||
@@ -246,7 +250,8 @@
|
||||
</span>
|
||||
</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>
|
||||
@@ -258,12 +263,14 @@
|
||||
<div class="flex items-center">
|
||||
<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>
|
||||
</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="">Thoát quản trị</a>
|
||||
</div>
|
||||
@@ -280,4 +287,4 @@
|
||||
{% include javascript/index %}
|
||||
|
||||
</body>
|
||||
</html>
|
||||
</html>
|
||||
Reference in New Issue
Block a user