Compare commits

...

2 Commits

Author SHA1 Message Date
dde52d00d6 update marketing page 2024-01-31 16:04:16 +07:00
7a11011330 update marketing page 2024-01-31 16:02:26 +07:00
8 changed files with 424 additions and 217 deletions

View File

@@ -496,10 +496,9 @@ a {
}
.admin-menu .icon-close {
position: absolute;
top: 12px;
right: -30px;
height: 34px;
width: 30px;
top: 0;
right: -40px;
width: 40px;
display: block;
background-color: rgb(0 78 153/var(--tw-bg-opacity));
}
@@ -507,8 +506,7 @@ a {
display: block;
margin: 0 auto;
text-align: center;
margin-top: 6px;
line-height: 20px;
line-height: 40px;
}
.admin-content-container {
@@ -629,8 +627,8 @@ input[type=radio]:before {
border-radius: 100%;
border: 1.5px solid #0041e8;
display: inline-block;
width: 20px;
height: 20px;
width: 18px;
height: 18px;
position: relative;
top: -0.2em;
margin-right: 1em;
@@ -641,7 +639,7 @@ input[type=radio]:before {
}
input[type=radio]:checked:before {
background-color: #0041e8;
box-shadow: inset 0 0 0 4px #fff;
box-shadow: inset 0 0 0 3px #fff;
}
input[type=radio]:focus:before {
outline: none;
@@ -766,6 +764,9 @@ input[type=radio]:focus:before {
.order-page .order-page-table td:nth-child(4), .order-page .order-page-table td:nth-child(10) {
text-align: left;
}
.order-page .order-page-table td * {
display: inline-block;
}
.order-page-table {
line-height: 20px;
@@ -787,13 +788,12 @@ input[type=radio]:focus:before {
.order-page-table thead td {
padding: 8px;
}
.order-page-table tr:hover {
background: #F5F7FF;
}
.order-page-table td {
padding: 10px;
border: 1px solid #ececec;
text-transform: capitalize;
}
.order-page-table td * {
display: inline-block;
}
.order-page-table select {
border-radius: 4px;
@@ -821,6 +821,15 @@ input[type=radio]:focus:before {
background-position: -145px -82px;
}
.td-top td {
vertical-align: top;
}
.td-border-0 td {
border: 0;
padding: 3px 0;
}
.order-detail-page .icon-edit {
border: transparent;
background-color: transparent;
@@ -880,10 +889,6 @@ input[type=radio]:focus:before {
content: none;
}
.marketing-coupon-page .order-page-table td {
vertical-align: top;
}
.table-brand th {
padding: 7px 5px;
background: #f6f6f6;

File diff suppressed because one or more lines are too long

View File

@@ -485,18 +485,16 @@ a {
}
.icon-close {
position: absolute;
top: 12px;
right: -30px;
height: 34px;
width: 30px;
top: 0;
right: -40px;
width: 40px;
display: block;
background-color: rgb(0 78 153 / var(--tw-bg-opacity));
i {
display: block;
margin: 0 auto;
text-align: center;
margin-top: 6px;
line-height: 20px;
line-height: 40px;
}
}
}
@@ -624,8 +622,8 @@ input[type="radio"] {
border-radius: 100%;
border: 1.5px solid #0041e8;
display: inline-block;
width: 20px;
height: 20px;
width: 18px;
height: 18px;
position: relative;
top: -0.2em;
margin-right: 1em;
@@ -638,7 +636,7 @@ input[type="radio"] {
&:checked {
&:before {
background-color: #0041e8;
box-shadow: inset 0 0 0 4px #fff;
box-shadow: inset 0 0 0 3px #fff;
}
}
&:focus {
@@ -783,7 +781,10 @@ input[type="radio"] {
&:nth-child(10) {
text-align: left;
}
}
* {
display: inline-block;
}
}
}
}
.order-page-table {
@@ -805,13 +806,14 @@ input[type="radio"] {
padding: 8px;
}
}
tr{
&:hover{
background: #F5F7FF;
}
}
td {
padding: 10px;
border: 1px solid #ececec;
text-transform: capitalize;
* {
display: inline-block;
}
border: 1px solid #ececec;
}
select {
border-radius: 4px;
@@ -839,6 +841,17 @@ input[type="radio"] {
background-position: -145px -82px;
}
}
.td-top{
td{
vertical-align: top;
}
}
.td-border-0{
td{
border: 0;
padding: 3px 0;
}
}
.order-detail-page{
.icon-edit {
border: transparent;
@@ -898,12 +911,6 @@ input[type="radio"] {
}
}
}
.marketing-coupon-page {
.order-page-table td {
vertical-align: top;
}
}
.table-brand {
th {
padding: 7px 5px;

View File

@@ -45,7 +45,7 @@ class AppAdmin
protected function getData() {
$module_file = $this->getModuleFile();
if(file_exists($module_file)) {
// print_r($this->current_route_info);
// die('Page '. $module_file .' not found!');

View File

@@ -26,7 +26,7 @@ class Router {
'view' => preg_replace("/[^a-z0-9_\-]/i","", getRequest('view', 'home')),
'view_id'=> 0,
'query' => $parsed['query'],
'url' => $parsed['path'],
'url' => $_SERVER['REQUEST_URI'],
];
}
@@ -60,7 +60,7 @@ class Router {
'view' => preg_replace("/[^a-z0-9_\-]/i","", $view ) ,
'view_id' => preg_replace("/[^a-z0-9_]/i","", $view_id ),
'query' => $parsed['query'],
'url' => $parsed['path'],
'url' => $_SERVER['REQUEST_URI'],
];
}

View File

@@ -14,192 +14,390 @@
<i class="fas fa-clipboard-list mr-[8px]"></i>
<span>Danh sách</span>
</a>
</div>
<p class="bg-white m-[0_0_16px] text-center rounded-[10px] shadow-[0px_1px_1px_0px_rgba(0,0,0,0.10)] leading-[54px] text-[18px] font-bold">
Cập nhật coupon: Giảm tiền mặt
</p>
</div>
<div class="flex flex-wrap items-start m-[16px_0]">
<div class="w-[270px] m-[0_16px_0_0] bg-white rounded-[10px] shadow-[0px_1px_1px_0px_rgba(0,0,0,0.10)] font-[500] leading-[24px] overflow-hidden">
<a href="javascript:void(0)" class="block p-[6px_16px] text-[#919699] hover:text-[#fff] hover:bg-[#0041E8] transition" style="color: #Fff;background: #0041E8;"> Chỉnh sửa </a>
<a href="/admin/marketing/coupon-product?id=8" class="block p-[6px_16px] text-[#919699] hover:text-[#fff] hover:bg-[#0041E8] transition"> Danh sách sản phẩm </a>
</div>
{% if global.url contains 'id=' %} <!-- Form chỉnh sửa -->
<form method="post" enctype="multipart/form-data" class="order-page-table w-[852px] bg-white p-[20px_16px] rounded-[15px] shadow-[0px_1px_1px_0px_rgba(0,0,0,0.10)] leading-[20px] block">
<p class="w-[100%] bg-white m-[0_0_16px] text-center rounded-[10px] shadow-[0px_1px_1px_0px_rgba(0,0,0,0.10)] leading-[54px] text-[18px] font-bold"> Cập nhật coupon: Giảm tiền mặt </p>
<input type="hidden" name="info[id]" value="0" />
<div class="w-[270px] m-[0_16px_0_0] bg-white rounded-[10px] shadow-[0px_1px_1px_0px_rgba(0,0,0,0.10)] font-[500] leading-[24px] overflow-hidden">
<a href="javascript:void(0)" class="block p-[6px_16px] text-[#919699] hover:text-[#fff] hover:bg-[#0041E8] transition" style="color: #Fff;background: #0041E8;"> Chỉnh sửa </a>
<a href="/admin/marketing/coupon-product?id=8" class="block p-[6px_16px] text-[#919699] hover:text-[#fff] hover:bg-[#0041E8] transition"> Danh sách sản phẩm </a>
</div>
<form method="post" enctype="multipart/form-data" class="order-page-table w-[852px] bg-white p-[20px_16px] rounded-[15px] shadow-[0px_1px_1px_0px_rgba(0,0,0,0.10)] leading-[20px] block">
<table>
<tr>
<td width="215"> Mã số phiếu * </td>
<td>
<input type="text" value="CP220920212" placeholder="Mã số phiếu *" readonly/>
</td>
</tr>
<tr>
<td> Tên phiếu khuyến mại * </td>
<td>
<input type="text" value="Giảm tiền mặt" placeholder="Tên phiếu khuyến mại *" class="w-[100%] h-[36px] p-[0_10px] rounded-[4px] border border-[#D8D8D8] shadow-[0px_2px_4px_0px_rgba(0,0,0,0.10)]"/>
<i class="block text-[#E00000] mt-[7px]">* Phần này sẽ hiển thị trong đơn hàng của khách hàng, do vậy cần viết cụ thể.</i>
</td>
</tr>
<tr>
<td> Mô tả </td>
<td>
<textarea name="info[description]" placeholder="Mô tả" class="w-[100%] h-[76px] p-[4px_10px] rounded-[4px] border border-[#D8D8D8] shadow-[0px_2px_4px_0px_rgba(0,0,0,0.10)]">
Test phiếu giảm giá
</textarea>
<input type="hidden" name="info[id]" value="0" />
<i class="block text-[#E00000] mt-[7px]">Phần này chỉ dành cho admin nắm được cụ thể khuyến mại này làm gì. Khách hàng không nhìn thấy.</i>
</td>
</tr>
<tr>
<td> Phân loại * </td>
<td>
<select name='info[type]' onchange="show_content(this.value)">
<option value='pro' selected>Tặng sản phẩm</option>
<option value='cash'>Tặng tiền mặt</option>
<option value='priceoff'>Giảm giá %</option>
<option value='other'>Khác</option>
</select>
<div id="js-type-pro">
<span> Tên Sản phẩm </span>
<input type="text" name="content_pro" value="" />
</div>
<table>
<tr>
<td width="215"> Mã số phiếu * </td>
<td> CP220920212 </td>
</tr>
<tr>
<td> Tên phiếu khuyến mại * </td>
<td>
<input type="text" value="Giảm tiền mặt" name="info[title]" placeholder="Tên phiếu khuyến mại *" class="w-[100%] h-[36px] p-[0_10px] rounded-[4px] border border-[#D8D8D8] shadow-[0px_2px_4px_0px_rgba(0,0,0,0.10)]"/>
<i class="block text-[#E00000] mt-[7px]">* Phần này sẽ hiển thị trong đơn hàng của khách hàng, do vậy cần viết cụ thể.</i>
</td>
</tr>
<tr>
<td> Mô tả </td>
<td>
<textarea name="info[description]" placeholder="Mô tả" class="w-[100%] min-h-[76px] max-h-[150px] outline-[0px] p-[4px_10px] rounded-[4px] border border-[#D8D8D8] shadow-[0px_2px_4px_0px_rgba(0,0,0,0.10)]">Test phiếu giảm giá </textarea>
<div id="js-type-cash" style="display:none">
<span> Nhập số tiền </span>
<input type="text" name="content_cash" value="" onkeyup="this.value = writeStringToPrice(this.value)" /> vnd (v.d. 200000, 3000000)
</div>
<i class="block text-[#E00000] mt-[7px]">Phần này chỉ dành cho admin nắm được cụ thể khuyến mại này làm gì. Khách hàng không nhìn thấy.</i>
</td>
</tr>
<tr>
<td> Phân loại * </td>
<td>
<div style="display: flex;align-items: center;flex-wrap: wrap;">
<select name='info[type]' onchange="show_content(this.value)" class="w-[135px_!important] mr-[15px]">
<option value='pro' selected>Tặng sản phẩm</option>
<option value='cash'>Tặng tiền mặt</option>
<option value='priceoff'>Giảm giá %</option>
<option value='other'>Khác</option>
</select>
<div id="js-type-pro">
<span class="mr-[5px]"> Tên Sản phẩm </span>
<input type="text" name="content_pro" value="" class="h-[32px] p-[0_10px] rounded-[4px] border border-[#D8D8D8] shadow-[0px_2px_4px_0px_rgba(0,0,0,0.10)]"/>
</div>
<div id="js-type-priceoff" style="display:none">
<span> Nhập % giảm giá </span>
<input type="text" name="content_priceoff" value="" />% (v.d. 12, 30)
</div>
</td>
</tr>
<tr>
<td> Thời gian hiệu lực * </td>
<td>
<div id="js-type-cash" style="display:none">
<span class="mr-[5px]"> Nhập số tiền </span>
<input type="text" name="content_cash" value="" onkeyup="this.value = writeStringToPrice(this.value)" class="w-[135px_!important] mr-[5px] h-[32px] p-[0_10px] rounded-[4px] border border-[#D8D8D8] shadow-[0px_2px_4px_0px_rgba(0,0,0,0.10)]"/>
<span> vnd (v.d. 200000, 3000000) </span>
</div>
<div class="items-center mb-[7px]" style="display: flex;">
<p style="width: 65px;"> Bắt đầu </p>
<div class="relative m-[0_20px_0_10px]">
<i class="far fa-calendar text-[#7E7E7E] m-[0_5px_0_0] absolute left-[10px] leading-[35px]"></i>
<input type="date" name="from_time_date" value="" placeholder="Từ ngày" class="w-[135px] h-[36px] p-[0_10px_0_30px] rounded-[4px] border border-[#D8D8D8] shadow-[0px_2px_4px_0px_rgba(0,0,0,0.10)]"/>
<div id="js-type-priceoff" style="display:none">
<span class="mr-[5px]"> Nhập % giảm giá </span>
<input type="text" name="content_priceoff" value="" class="w-[135px_!important] mr-[5px] h-[32px] p-[0_10px] rounded-[4px] border border-[#D8D8D8] shadow-[0px_2px_4px_0px_rgba(0,0,0,0.10)]"/>
<span>% (v.d. 12, 30)</span>
</div>
</div>
</td>
</tr>
<tr>
<td> Thời gian hiệu lực * </td>
<td>
<div class="items-center mb-[7px]" style="display: flex;">
<p style="width: 65px;"> Bắt đầu </p>
<div class="relative m-[0_20px_0_10px]">
<i class="far fa-calendar text-[#7E7E7E] m-[0_5px_0_0] absolute left-[10px] leading-[35px]"></i>
<input type="date" name="from_time_date" value="" placeholder="Từ ngày" class="w-[135px] h-[36px] p-[0_10px_0_30px] rounded-[4px] border border-[#D8D8D8] shadow-[0px_2px_4px_0px_rgba(0,0,0,0.10)]"/>
</div>
<p class="mr-[10px]"> Giờ </p>
<select name='info[from_time_minute]' id='from_time_minute' style="width: 85px;">
<option value="00:00">00:00</option><option value="00:30">00:30</option><option value="01:00">01:00</option><option value="01:30">01:30</option><option value="02:00">02:00</option><option value="02:30">02:30</option><option value="03:00">03:00</option><option value="03:30">03:30</option><option value="04:00">04:00</option><option value="04:30">04:30</option><option value="05:00">05:00</option><option value="05:30">05:30</option><option value="06:00">06:00</option><option value="06:30">06:30</option><option value="07:00">07:00</option><option value="07:30">07:30</option><option value="08:00">08:00</option><option value="08:30">08:30</option><option value="09:00">09:00</option><option value="09:30">09:30</option><option value="10:00">10:00</option><option value="10:30">10:30</option><option value="11:00">11:00</option><option value="11:30">11:30</option><option value="12:00">12:00</option><option value="12:30">12:30</option><option value="13:00">13:00</option><option value="13:30">13:30</option><option value="14:00">14:00</option><option value="14:30">14:30</option><option value="15:00">15:00</option><option value="15:30">15:30</option><option value="16:00">16:00</option><option value="16:30">16:30</option><option value="17:00">17:00</option><option value="17:30">17:30</option><option value="18:00">18:00</option><option value="18:30">18:30</option><option value="19:00">19:00</option><option value="19:30">19:30</option><option value="20:00">20:00</option><option value="20:30">20:30</option><option value="21:00">21:00</option><option value="21:30">21:30</option><option value="22:00">22:00</option><option value="22:30">22:30</option><option value="23:00">23:00</option><option value="23:30">23:30</option>
</select>
</div>
<p class="mr-[10px]"> Giờ </p>
<select name='info[from_time_minute]' id='from_time_minute' style="width: 85px;">
<option value="00:00">00:00</option><option value="00:30">00:30</option><option value="01:00">01:00</option><option value="01:30">01:30</option><option value="02:00">02:00</option><option value="02:30">02:30</option><option value="03:00">03:00</option><option value="03:30">03:30</option><option value="04:00">04:00</option><option value="04:30">04:30</option><option value="05:00">05:00</option><option value="05:30">05:30</option><option value="06:00">06:00</option><option value="06:30">06:30</option><option value="07:00">07:00</option><option value="07:30">07:30</option><option value="08:00">08:00</option><option value="08:30">08:30</option><option value="09:00">09:00</option><option value="09:30">09:30</option><option value="10:00">10:00</option><option value="10:30">10:30</option><option value="11:00">11:00</option><option value="11:30">11:30</option><option value="12:00">12:00</option><option value="12:30">12:30</option><option value="13:00">13:00</option><option value="13:30">13:30</option><option value="14:00">14:00</option><option value="14:30">14:30</option><option value="15:00">15:00</option><option value="15:30">15:30</option><option value="16:00">16:00</option><option value="16:30">16:30</option><option value="17:00">17:00</option><option value="17:30">17:30</option><option value="18:00">18:00</option><option value="18:30">18:30</option><option value="19:00">19:00</option><option value="19:30">19:30</option><option value="20:00">20:00</option><option value="20:30">20:30</option><option value="21:00">21:00</option><option value="21:30">21:30</option><option value="22:00">22:00</option><option value="22:30">22:30</option><option value="23:00">23:00</option><option value="23:30">23:30</option>
</select>
</div>
<div class="items-center" style="display: flex;">
<p style="width: 65px;"> Kết thúc </p>
<div class="relative m-[0_20px_0_10px]">
<i class="far fa-calendar text-[#7E7E7E] m-[0_5px_0_0] absolute left-[10px] leading-[35px]"></i>
<input type="date" name="to_time_date" value="" placeholder="Từ ngày" class="w-[135px] h-[36px] p-[0_10px_0_30px] rounded-[4px] border border-[#D8D8D8] shadow-[0px_2px_4px_0px_rgba(0,0,0,0.10)]"/>
</div>
<div class="items-center" style="display: flex;">
<p style="width: 65px;"> Kết thúc </p>
<div class="relative m-[0_20px_0_10px]">
<i class="far fa-calendar text-[#7E7E7E] m-[0_5px_0_0] absolute left-[10px] leading-[35px]"></i>
<input type="date" name="to_time_date" value="" placeholder="Từ ngày" class="w-[135px] h-[36px] p-[0_10px_0_30px] rounded-[4px] border border-[#D8D8D8] shadow-[0px_2px_4px_0px_rgba(0,0,0,0.10)]"/>
<p class="mr-[10px]"> Giờ </p>
<select name='info[to_time_minute]' id='from_time_minute' style="width: 85px;">
<option value="00:00">00:00</option><option value="00:30">00:30</option><option value="01:00">01:00</option><option value="01:30">01:30</option><option value="02:00">02:00</option><option value="02:30">02:30</option><option value="03:00">03:00</option><option value="03:30">03:30</option><option value="04:00">04:00</option><option value="04:30">04:30</option><option value="05:00">05:00</option><option value="05:30">05:30</option><option value="06:00">06:00</option><option value="06:30">06:30</option><option value="07:00">07:00</option><option value="07:30">07:30</option><option value="08:00">08:00</option><option value="08:30">08:30</option><option value="09:00">09:00</option><option value="09:30">09:30</option><option value="10:00">10:00</option><option value="10:30">10:30</option><option value="11:00">11:00</option><option value="11:30">11:30</option><option value="12:00">12:00</option><option value="12:30">12:30</option><option value="13:00">13:00</option><option value="13:30">13:30</option><option value="14:00">14:00</option><option value="14:30">14:30</option><option value="15:00">15:00</option><option value="15:30">15:30</option><option value="16:00">16:00</option><option value="16:30">16:30</option><option value="17:00">17:00</option><option value="17:30">17:30</option><option value="18:00">18:00</option><option value="18:30">18:30</option><option value="19:00">19:00</option><option value="19:30">19:30</option><option value="20:00">20:00</option><option value="20:30">20:30</option><option value="21:00">21:00</option><option value="21:30">21:30</option><option value="22:00">22:00</option><option value="22:30">22:30</option><option value="23:00">23:00</option><option value="23:30">23:30</option>
</select>
</div>
</td>
</tr>
<tr>
<td> Giá trị đơn hàng tối thiểu </td>
<td>
<input type="text" name="info[valid_order_value]" value="2.000.000"
onkeyup="this.value = writeStringToPrice(this.value)" class="w-[135px_!important] mr-[5px] h-[32px] p-[0_10px] rounded-[4px] border border-[#D8D8D8] shadow-[0px_2px_4px_0px_rgba(0,0,0,0.10)]"/>
<span> vnd (để 0 nếu không áp dụng) </span>
</td>
</tr>
<tr>
<td> Giới hạn số lần sử dụng / 1 khách hàng </td>
<td>
<input type="text" name="info[limit_use_per_user]" value="0" class="w-[80px_!important] mr-[5px] h-[32px] p-[0_10px] rounded-[4px] border border-[#D8D8D8] shadow-[0px_2px_4px_0px_rgba(0,0,0,0.10)]">
<span> (để 0 nếu không giới hạn số lượng dùng phiếu này trên 1 khách hàng) </span>
</td>
</tr>
<tr>
<td> Áp dụng đồng thời với các mã KM khác </td>
<td>
<label class="items-center cursor-pointer" style="display: inline-flex;">
<input type="checkbox" name="info[can_use_with_other]" value="1" class="scale-[1.2] mr-[7px]">
<span> Có cho phép (1 đơn hàng có thể có nhiều voucher) </span>
</label>
</td>
</tr>
<tr>
<td> Hiển thị công khai </td>
<td>
<label class="items-center cursor-pointer" style="display: inline-flex;">
<input type="checkbox" name="info[show_to_public]" checked class="scale-[1.2] mr-[7px]">
<span> Cho hiển thị công khai (nếu giao diện web có) </span>
</label>
</td>
</tr>
<tr>
<td> Điều kiện áp dụng </td>
<td>
<label class="items-center cursor-pointer relative pl-[30px] mb-[8px]" style="display: inline-flex;">
<input type="radio" name="info[product_condition]" value="all" class="left-0">
<span> Tất cả các sản phầm </span>
</label>
<br>
<label class="items-center cursor-pointer relative pl-[30px]" style="display: inline-flex;">
<input type="radio" name="info[product_condition]" value="select" checked class="left-0">
<span> Chỉ một số sản phẩm (* bạn sẽ cần chọn danh sách các sản phẩm)</span>
</label>
</td>
</tr>
<tr>
<td> Số lượng phiếu </td>
<td>
<input type="text" size="10" name="info[total]" value="0" class="w-[135px_!important] mr-[5px] h-[32px] p-[0_10px] rounded-[4px] border border-[#D8D8D8] shadow-[0px_2px_4px_0px_rgba(0,0,0,0.10)]">
<span> (để 0 nếu không có giới hạn) </span>
</td>
</tr>
<tr>
<td> Hiển thị </td>
<td>
<label class="items-center cursor-pointer relative pl-[30px] mr-[15px]" style="display: inline-flex;">
<input type="radio" name="info[status]" value="1" class="left-0">
<span>Cho hiển thị</span>
</label>
<p class="mr-[10px]"> Giờ </p>
<select name='info[to_time_minute]' id='from_time_minute' style="width: 85px;">
<option value="00:00">00:00</option><option value="00:30">00:30</option><option value="01:00">01:00</option><option value="01:30">01:30</option><option value="02:00">02:00</option><option value="02:30">02:30</option><option value="03:00">03:00</option><option value="03:30">03:30</option><option value="04:00">04:00</option><option value="04:30">04:30</option><option value="05:00">05:00</option><option value="05:30">05:30</option><option value="06:00">06:00</option><option value="06:30">06:30</option><option value="07:00">07:00</option><option value="07:30">07:30</option><option value="08:00">08:00</option><option value="08:30">08:30</option><option value="09:00">09:00</option><option value="09:30">09:30</option><option value="10:00">10:00</option><option value="10:30">10:30</option><option value="11:00">11:00</option><option value="11:30">11:30</option><option value="12:00">12:00</option><option value="12:30">12:30</option><option value="13:00">13:00</option><option value="13:30">13:30</option><option value="14:00">14:00</option><option value="14:30">14:30</option><option value="15:00">15:00</option><option value="15:30">15:30</option><option value="16:00">16:00</option><option value="16:30">16:30</option><option value="17:00">17:00</option><option value="17:30">17:30</option><option value="18:00">18:00</option><option value="18:30">18:30</option><option value="19:00">19:00</option><option value="19:30">19:30</option><option value="20:00">20:00</option><option value="20:30">20:30</option><option value="21:00">21:00</option><option value="21:30">21:30</option><option value="22:00">22:00</option><option value="22:30">22:30</option><option value="23:00">23:00</option><option value="23:30">23:30</option>
</select>
</div>
</td>
</tr>
<tr>
<td> Giá trị đơn hàng tối thiểu </td>
<td>
<input type="text" name="info[valid_order_value]" value="2.000.000"
onkeyup="this.value = writeStringToPrice(this.value)"/>
<span> vnd (để 0 nếu không áp dụng) </span>
</td>
</tr>
<tr>
<td> Giới hạn số lần sử dụng / 1 khách hàng </td>
<td>
<input type="text" name="info[limit_use_per_user]" value="0">
<span> (để 0 nếu không giới hạn số lượng dùng phiếu này trên 1 khách hàng) </span>
</td>
</tr>
<tr>
<td> Áp dụng đồng thời với các mã KM khác </td>
<td>
<label>
<input type="checkbox" name="info[can_use_with_other]" value="1" >
<span> Có cho phép (1 đơn hàng có thể có nhiều voucher) </span>
</label>
</td>
</tr>
<tr>
<td> Hiển thị công khai </td>
<td>
<label>
<input type="checkbox" name="info[show_to_public]"checked >
<span> Cho hiển thị công khai (nếu giao diện web có) </span>
</label>
</td>
</tr>
<tr>
<td> Điều kiện áp dụng </td>
<td>
<label>
<input type="radio" name="info[product_condition]" value="all">
<span> Tất cả các sản phầm </span>
</label>
<label class="items-center cursor-pointer relative pl-[30px]" style="display: inline-flex;">
<input type="radio" name="info[status]" value="0" checked class="left-0">
<span>Ẩn hiển thị</span>
</label>
<label>
<input type="radio" name="info[product_condition]" value="select" checked>
<span> Chỉ một số sản phẩm (* bạn sẽ cần chọn danh sách các sản phẩm)</span>
</label>
</td>
</tr>
<tr>
<td> Số lượng phiếu </td>
<td>
<input type="text" size="10" name="info[total]" value="0">
<span> (để 0 nếu không có giới hạn) </span>
</td>
</tr>
<tr>
<td> Hiển thị </td>
<td>
<label>
<input type="radio" name="info[status]" value="1" >
<span>Cho hiển thị</span>
</label>
</td>
</tr>
</table>
<label>
<input type="radio" name="info[status]" value="0" checked >
<span>Ẩn hiển thị</span>
</label>
</td>
</tr>
</table>
<input type="hidden" name="create" value="yes" />
<input name="commit" type="submit" value="Cập nhật" />
</form>
<input type="hidden" name="create" value="yes" />
<input name="commit" type="submit" value="Cập nhật" class="inline-block mt-[12px] cursor-pointer h-[32px] bg-[#0041E8] text-[#fff] rounded-[4px] font-[500] p-[0_11px]"/>
</form>
{% else %} <!-- Form thêm mới -->
<p class="w-[100%] bg-white m-[0_0_16px] text-center rounded-[10px] shadow-[0px_1px_1px_0px_rgba(0,0,0,0.10)] leading-[54px] text-[18px] font-bold"> Thêm / sửa coupon </p>
<form method="post" enctype="multipart/form-data" class="order-page-table w-[100%] bg-white p-[20px_16px] rounded-[15px] shadow-[0px_1px_1px_0px_rgba(0,0,0,0.10)] leading-[20px] block">
<input type="hidden" name="info[id]" value="0" />
<table>
<tr>
<td width="215"> Mã số phiếu * </td>
<td>
<input type="hidden" name="info[code_auto]" value="">
<label class="items-center cursor-pointer relative pl-[26px] mb-[8px] w-[fit-content]" style="display: flex;">
<input type="radio" onchange="$('#info_code_manual_input').css('display','none')" name="info[code_type]" value="auto" checked class="left-0">
<span> Hệ thống tự tạo </span>
</label>
<label class="items-center cursor-pointer relative pl-[26px] w-[fit-content]" style="display: flex;">
<input type="radio" onchange="$('#info_code_manual_input').css('display','inline-block')" name="info[code_type]" value="manual" class="left-0">
<span> Tự nhập tay </span>
</label>
<div id="info_code_manual_input" class="w-[100%] mt-[12px]" style="display: none;">
<input type="text" name="info[code_manual]" onchange="check_coupon_code(this.value, '0')" value="" class="h-[32px] p-[0_10px] rounded-[4px] border border-[#D8D8D8] shadow-[0px_2px_4px_0px_rgba(0,0,0,0.10)]">
<i style="color:#CC3300">(Chú ý: Mã số các phiếu phải khác nhau)</i>
<div id="check_coupon_code_status"></div>
</div>
</td>
</tr>
<tr>
<td> Tên phiếu khuyến mại * </td>
<td>
<input type="text" value="" name="info[title]" placeholder="Tên phiếu khuyến mại *" class="w-[100%] h-[36px] p-[0_10px] rounded-[4px] border border-[#D8D8D8] shadow-[0px_2px_4px_0px_rgba(0,0,0,0.10)]"/>
<i class="block text-[#E00000] mt-[7px]">* Phần này sẽ hiển thị trong đơn hàng của khách hàng, do vậy cần viết cụ thể.</i>
</td>
</tr>
<tr>
<td> Mô tả </td>
<td>
<textarea name="info[description]" placeholder="Mô tả" class="w-[100%] min-h-[76px] max-h-[150px] outline-[0px] p-[4px_10px] rounded-[4px] border border-[#D8D8D8] shadow-[0px_2px_4px_0px_rgba(0,0,0,0.10)]"></textarea>
<i class="block text-[#E00000] mt-[7px]">Phần này chỉ dành cho admin nắm được cụ thể khuyến mại này làm gì. Khách hàng không nhìn thấy.</i>
</td>
</tr>
<tr>
<td> Phân loại * </td>
<td>
<div style="display: flex;align-items: center;flex-wrap: wrap;">
<select name='info[type]' onchange="show_content(this.value)" class="w-[135px_!important] mr-[15px]">
<option value='pro' selected>Tặng sản phẩm</option>
<option value='cash'>Tặng tiền mặt</option>
<option value='priceoff'>Giảm giá %</option>
<option value='other'>Khác</option>
</select>
<div id="js-type-pro">
<span class="mr-[5px]"> Tên Sản phẩm </span>
<input type="text" name="content_pro" value="" class="h-[32px] p-[0_10px] rounded-[4px] border border-[#D8D8D8] shadow-[0px_2px_4px_0px_rgba(0,0,0,0.10)]"/>
</div>
<div id="js-type-cash" style="display:none">
<span class="mr-[5px]"> Nhập số tiền </span>
<input type="text" name="content_cash" value="" onkeyup="this.value = writeStringToPrice(this.value)" class="w-[135px_!important] mr-[5px] h-[32px] p-[0_10px] rounded-[4px] border border-[#D8D8D8] shadow-[0px_2px_4px_0px_rgba(0,0,0,0.10)]"/>
<span> vnd (v.d. 200000, 3000000) </span>
</div>
<div id="js-type-priceoff" style="display:none">
<span class="mr-[5px]"> Nhập % giảm giá </span>
<input type="text" name="content_priceoff" value="" class="w-[135px_!important] mr-[5px] h-[32px] p-[0_10px] rounded-[4px] border border-[#D8D8D8] shadow-[0px_2px_4px_0px_rgba(0,0,0,0.10)]"/>
<span>% (v.d. 12, 30)</span>
</div>
</div>
</td>
</tr>
<tr>
<td> Thời gian hiệu lực * </td>
<td>
<div class="items-center mb-[7px]" style="display: flex;">
<p style="width: 65px;"> Bắt đầu </p>
<div class="relative m-[0_20px_0_10px]">
<i class="far fa-calendar text-[#7E7E7E] m-[0_5px_0_0] absolute left-[10px] leading-[35px]"></i>
<input type="date" name="from_time_date" value="" placeholder="Từ ngày" class="w-[135px] h-[36px] p-[0_10px_0_30px] rounded-[4px] border border-[#D8D8D8] shadow-[0px_2px_4px_0px_rgba(0,0,0,0.10)]"/>
</div>
<p class="mr-[10px]"> Giờ </p>
<select name='info[from_time_minute]' id='from_time_minute' style="width: 85px;">
<option value="00:00">00:00</option><option value="00:30">00:30</option><option value="01:00">01:00</option><option value="01:30">01:30</option><option value="02:00">02:00</option><option value="02:30">02:30</option><option value="03:00">03:00</option><option value="03:30">03:30</option><option value="04:00">04:00</option><option value="04:30">04:30</option><option value="05:00">05:00</option><option value="05:30">05:30</option><option value="06:00">06:00</option><option value="06:30">06:30</option><option value="07:00">07:00</option><option value="07:30">07:30</option><option value="08:00">08:00</option><option value="08:30">08:30</option><option value="09:00">09:00</option><option value="09:30">09:30</option><option value="10:00">10:00</option><option value="10:30">10:30</option><option value="11:00">11:00</option><option value="11:30">11:30</option><option value="12:00">12:00</option><option value="12:30">12:30</option><option value="13:00">13:00</option><option value="13:30">13:30</option><option value="14:00">14:00</option><option value="14:30">14:30</option><option value="15:00">15:00</option><option value="15:30">15:30</option><option value="16:00">16:00</option><option value="16:30">16:30</option><option value="17:00">17:00</option><option value="17:30">17:30</option><option value="18:00">18:00</option><option value="18:30">18:30</option><option value="19:00">19:00</option><option value="19:30">19:30</option><option value="20:00">20:00</option><option value="20:30">20:30</option><option value="21:00">21:00</option><option value="21:30">21:30</option><option value="22:00">22:00</option><option value="22:30">22:30</option><option value="23:00">23:00</option><option value="23:30">23:30</option>
</select>
</div>
<div class="items-center" style="display: flex;">
<p style="width: 65px;"> Kết thúc </p>
<div class="relative m-[0_20px_0_10px]">
<i class="far fa-calendar text-[#7E7E7E] m-[0_5px_0_0] absolute left-[10px] leading-[35px]"></i>
<input type="date" name="to_time_date" value="" placeholder="Từ ngày" class="w-[135px] h-[36px] p-[0_10px_0_30px] rounded-[4px] border border-[#D8D8D8] shadow-[0px_2px_4px_0px_rgba(0,0,0,0.10)]"/>
</div>
<p class="mr-[10px]"> Giờ </p>
<select name='info[to_time_minute]' id='from_time_minute' style="width: 85px;">
<option value="00:00">00:00</option><option value="00:30">00:30</option><option value="01:00">01:00</option><option value="01:30">01:30</option><option value="02:00">02:00</option><option value="02:30">02:30</option><option value="03:00">03:00</option><option value="03:30">03:30</option><option value="04:00">04:00</option><option value="04:30">04:30</option><option value="05:00">05:00</option><option value="05:30">05:30</option><option value="06:00">06:00</option><option value="06:30">06:30</option><option value="07:00">07:00</option><option value="07:30">07:30</option><option value="08:00">08:00</option><option value="08:30">08:30</option><option value="09:00">09:00</option><option value="09:30">09:30</option><option value="10:00">10:00</option><option value="10:30">10:30</option><option value="11:00">11:00</option><option value="11:30">11:30</option><option value="12:00">12:00</option><option value="12:30">12:30</option><option value="13:00">13:00</option><option value="13:30">13:30</option><option value="14:00">14:00</option><option value="14:30">14:30</option><option value="15:00">15:00</option><option value="15:30">15:30</option><option value="16:00">16:00</option><option value="16:30">16:30</option><option value="17:00">17:00</option><option value="17:30">17:30</option><option value="18:00">18:00</option><option value="18:30">18:30</option><option value="19:00">19:00</option><option value="19:30">19:30</option><option value="20:00">20:00</option><option value="20:30">20:30</option><option value="21:00">21:00</option><option value="21:30">21:30</option><option value="22:00">22:00</option><option value="22:30">22:30</option><option value="23:00">23:00</option><option value="23:30">23:30</option>
</select>
</div>
</td>
</tr>
<tr>
<td> Giá trị đơn hàng tối thiểu </td>
<td>
<input type="text" name="info[valid_order_value]" value="0"
onkeyup="this.value = writeStringToPrice(this.value)" class="w-[135px_!important] mr-[5px] h-[32px] p-[0_10px] rounded-[4px] border border-[#D8D8D8] shadow-[0px_2px_4px_0px_rgba(0,0,0,0.10)]"/>
<span> vnd (để 0 nếu không áp dụng) </span>
</td>
</tr>
<tr>
<td> Giới hạn số lần sử dụng / 1 khách hàng </td>
<td>
<input type="text" name="info[limit_use_per_user]" value="0" class="w-[80px_!important] mr-[5px] h-[32px] p-[0_10px] rounded-[4px] border border-[#D8D8D8] shadow-[0px_2px_4px_0px_rgba(0,0,0,0.10)]">
<span> (để 0 nếu không giới hạn số lượng dùng phiếu này trên 1 khách hàng) </span>
</td>
</tr>
<tr>
<td> Áp dụng đồng thời với các mã KM khác </td>
<td>
<label class="items-center cursor-pointer" style="display: inline-flex;">
<input type="checkbox" name="info[can_use_with_other]" value="1" class="scale-[1.2] mr-[7px]">
<span> Có cho phép (1 đơn hàng có thể có nhiều voucher) </span>
</label>
</td>
</tr>
<tr>
<td> Hiển thị công khai </td>
<td>
<label class="items-center cursor-pointer" style="display: inline-flex;">
<input type="checkbox" name="info[show_to_public]" class="scale-[1.2] mr-[7px]">
<span> Cho hiển thị công khai (nếu giao diện web có) </span>
</label>
</td>
</tr>
<tr>
<td> Điều kiện áp dụng </td>
<td>
<label class="items-center cursor-pointer relative pl-[30px] mb-[8px]" style="display: inline-flex;">
<input type="radio" name="info[product_condition]" value="all" class="left-0" checked>
<span> Tất cả các sản phầm </span>
</label>
<br>
<label class="items-center cursor-pointer relative pl-[30px]" style="display: inline-flex;">
<input type="radio" name="info[product_condition]" value="select" class="left-0">
<span> Chỉ một số sản phẩm (* bạn sẽ cần chọn danh sách các sản phẩm)</span>
</label>
</td>
</tr>
<tr>
<td> Số lượng phiếu </td>
<td>
<input type="text" size="10" name="info[total]" value="0" class="w-[135px_!important] mr-[5px] h-[32px] p-[0_10px] rounded-[4px] border border-[#D8D8D8] shadow-[0px_2px_4px_0px_rgba(0,0,0,0.10)]">
<span> (để 0 nếu không có giới hạn) </span>
</td>
</tr>
<tr>
<td> Hiển thị </td>
<td>
<label class="items-center cursor-pointer relative pl-[30px] mr-[15px]" style="display: inline-flex;">
<input type="radio" name="info[status]" value="1" class="left-0" checked>
<span>Cho hiển thị</span>
</label>
<label class="items-center cursor-pointer relative pl-[30px]" style="display: inline-flex;">
<input type="radio" name="info[status]" value="0" class="left-0">
<span>Ẩn hiển thị</span>
</label>
</td>
</tr>
</table>
<input type="hidden" name="create" value="yes" />
<input name="commit" type="submit" value="Cập nhật" class="inline-block mt-[12px] cursor-pointer h-[32px] bg-[#0041E8] text-[#fff] rounded-[4px] font-[500] p-[0_11px]"/>
</form>
{% endif %}
</div>
</div>

View File

@@ -27,7 +27,7 @@
<tbody>
<tr>
<td> 1 </td>
<td align="center"> 1 </td>
<td class="whitespace-nowrap"> CP231020233 </td>
@@ -74,7 +74,7 @@
<td>
<div class="items-center" style="display: flex;">
<a href="/admin/marketing/detail/id=8" class="icons icon-edit" title="Sửa lại"></a>
<a href="/admin/marketing/coupon-add?id=8" class="icons icon-edit" title="Sửa lại"></a>
<!-- <a href="javascript:setStatus('8','off')" title="Hạ xuống" class="far fa-eye-slash bg-[#F9F9F9] leading-[30px] rounded-[5px] text-[#9E9E9E_!important] text-center w-[30px] border border-[#ECECEC] mr-[6px]"></a> -->
@@ -85,7 +85,7 @@
</td>
</tr>
<tr> <td> 2 </td><td class="whitespace-nowrap"> CP231020233 </td><td> <p class="font-bold"> Test phiếu giảm giá </p><div> Test phiếu giảm giá </div></td><td> <p class="font-bold"> Tặng sản phẩm </p><p> Balo thời trang </p></td><td> <div style="display: block;"> <p class="inline-block m-[0_6px_6px_0]"> - Bắt đầu: 23-10-2023, 12:00 am </p><span class="inline-block m-[0_0_6px_0] bg-[#F7F5FF] font-[500] p-[0_7px] leading-[20px] rounded-[50px] text-[12px] text-[#0041E8] shadow-[0_0_0_1px_#0041E8]"> Đã chạy </span> </div><div> <p class="inline-block m-[0_6px_6px_0]"> - Kết thúc: 28-10-2023, 12:00 am </p><span class="inline-block m-[0_0_6px_0] bg-[#F9F2F2] font-[500] p-[0_7px] leading-[20px] rounded-[50px] text-[12px] text-[#E00000] shadow-[0_0_0_1px_#E00000]"> Đã dừng </span> </div><p>- Giá trị đơn hàng tối thiểu: <b class="text-[#E00000] font-bold">2.000.000 đ</b> </p></td><td> <p> 0 đã dùng </p><p> Tổng số: 20 </p></td><td> <p> - Tạo bởi: Đức (05-09-2022, 9:48 am) </p><p> - Cập nhật cuối: hongvt@hurasoft.com<br>(03-10-2023, 8:31 am) </p></td><td> <div class="items-center" style="display: flex;"> <a href="/admin/marketing/detail/id=8" class="icons icon-edit" title="Sửa lại"></a> <a href="javascript:setStatus('8','off')" title="Hạ xuống" class="far fa-eye-slash bg-[#F9F9F9] leading-[30px] rounded-[5px] text-[#9E9E9E_!important] text-center w-[30px] border border-[#ECECEC] mr-[6px]"></a> <a href="javascript:delete_coupon('8')" class="icons icon-delete" title="Xóa"></a> </div></td></tr>
<tr> <td align="center"> 2 </td><td class="whitespace-nowrap"> CP231020233 </td><td> <p class="font-bold"> Test phiếu giảm giá </p><div> Test phiếu giảm giá </div></td><td> <p class="font-bold"> Tặng sản phẩm </p><p> Balo thời trang </p></td><td> <div style="display: block;"> <p class="inline-block m-[0_6px_6px_0]"> - Bắt đầu: 23-10-2023, 12:00 am </p><span class="inline-block m-[0_0_6px_0] bg-[#F7F5FF] font-[500] p-[0_7px] leading-[20px] rounded-[50px] text-[12px] text-[#0041E8] shadow-[0_0_0_1px_#0041E8]"> Đã chạy </span> </div><div> <p class="inline-block m-[0_6px_6px_0]"> - Kết thúc: 28-10-2023, 12:00 am </p><span class="inline-block m-[0_0_6px_0] bg-[#F9F2F2] font-[500] p-[0_7px] leading-[20px] rounded-[50px] text-[12px] text-[#E00000] shadow-[0_0_0_1px_#E00000]"> Đã dừng </span> </div><p>- Giá trị đơn hàng tối thiểu: <b class="text-[#E00000] font-bold">2.000.000 đ</b> </p></td><td> <p> 0 đã dùng </p><p> Tổng số: 20 </p></td><td> <p> - Tạo bởi: Đức (05-09-2022, 9:48 am) </p><p> - Cập nhật cuối: hongvt@hurasoft.com<br>(03-10-2023, 8:31 am) </p></td><td> <div class="items-center" style="display: flex;"> <a href="/admin/marketing/coupon-add?id=8" class="icons icon-edit" title="Sửa lại"></a> <a href="javascript:setStatus('8','off')" title="Hạ xuống" class="far fa-eye-slash bg-[#F9F9F9] leading-[30px] rounded-[5px] text-[#9E9E9E_!important] text-center w-[30px] border border-[#ECECEC] mr-[6px]"></a> <a href="javascript:delete_coupon('8')" class="icons icon-delete" title="Xóa"></a> </div></td></tr>
</tbody>
</table>
</div>

View File

@@ -25,6 +25,7 @@
<body>
{{ global|show_var }}
{{ page|show_var }}
<div class="admin-global-container">
<!-- Menu full -->