marketing
This commit is contained in:
@@ -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
@@ -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 {
|
||||||
@@ -720,16 +725,18 @@ 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,20 +841,20 @@ 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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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(
|
||||||
|
|||||||
@@ -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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|||||||
@@ -22,9 +22,10 @@
|
|||||||
<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 }}
|
||||||
|
|
||||||
@@ -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>
|
||||||
@@ -117,6 +118,7 @@
|
|||||||
<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>
|
||||||
@@ -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>
|
||||||
|
|||||||
Reference in New Issue
Block a user