update
This commit is contained in:
@@ -1,51 +0,0 @@
|
|||||||
/**
|
|
||||||
* Created by Glee on 03-Nov-2020.
|
|
||||||
*/
|
|
||||||
|
|
||||||
const Checkbox = function (deleteItemCb) {
|
|
||||||
|
|
||||||
const INPUT_CHECKBOX_CLASS = '.js-checkbox-id';
|
|
||||||
let _deleteItemCb = deleteItemCb;
|
|
||||||
|
|
||||||
return {
|
|
||||||
setAllChecked,
|
|
||||||
getCheckedIds,
|
|
||||||
deleteSelected
|
|
||||||
}
|
|
||||||
|
|
||||||
function setAllChecked() {
|
|
||||||
var all_checkboxes = $(INPUT_CHECKBOX_CLASS);
|
|
||||||
|
|
||||||
if ($(this).is(':checked')) {
|
|
||||||
all_checkboxes.each(function (index, item) {
|
|
||||||
$(item).prop("checked", true);
|
|
||||||
})
|
|
||||||
} else {
|
|
||||||
all_checkboxes.each(function (index, item) {
|
|
||||||
$(item).prop("checked", false);
|
|
||||||
})
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function deleteSelected() {
|
|
||||||
if (!confirm('Bạn chắc chắn muốn xóa ?')) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
$(INPUT_CHECKBOX_CLASS).each(function (index, item) {
|
|
||||||
if ($(item).is(':checked')) {
|
|
||||||
//delete_deal(item.value, false);
|
|
||||||
_deleteItemCb(item.value)
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
function getCheckedIds() {
|
|
||||||
let list_ids = [];
|
|
||||||
$(INPUT_CHECKBOX_CLASS).each(function (index, item) {
|
|
||||||
if ($(item).is(':checked')) list_ids.push(item.value);
|
|
||||||
});
|
|
||||||
|
|
||||||
return list_ids;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
@@ -1,21 +0,0 @@
|
|||||||
const o = /* @__PURE__ */ (() => {
|
|
||||||
function a(t) {
|
|
||||||
const s = $("#status_" + t);
|
|
||||||
s.html('<span class="loading loading-bars loading-sm"></span><span class="ml-[3px]">Processing...</span>'), setTimeout(() => {
|
|
||||||
s.html("");
|
|
||||||
}, 1e3);
|
|
||||||
}
|
|
||||||
function n(t) {
|
|
||||||
const s = $("#js-status-hottype-" + t);
|
|
||||||
s.html('<span class="loading loading-bars loading-sm"></span><span class="ml-[3px]">Processing...</span>'), setTimeout(() => {
|
|
||||||
s.html("");
|
|
||||||
}, 1e3);
|
|
||||||
}
|
|
||||||
return {
|
|
||||||
addProductToCategory: a,
|
|
||||||
markProductAsHot: n
|
|
||||||
};
|
|
||||||
})();
|
|
||||||
export {
|
|
||||||
o as default
|
|
||||||
};
|
|
||||||
@@ -1,8 +1,4 @@
|
|||||||
/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */
|
/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */
|
||||||
@import "https://fonts.googleapis.com/css2?family=DM+Sans:wght@100;200;300;400;500;600;700;800;900;1000&display=swap";
|
|
||||||
@import "https://fonts.googleapis.com/css2?family=Wix+Madefor+Text:wght@400;500;600;700;800;1000&display=swap";
|
|
||||||
@import "https://fonts.googleapis.com/css2?family=Inclusive+Sans:wght@400;500;600;700;800;900;1000&display=swap";
|
|
||||||
@import "https://fonts.googleapis.com/css2?family=AR+One+Sans:wght@400;500;600;700;800;1000&display=swap";
|
|
||||||
@layer properties;
|
@layer properties;
|
||||||
@layer theme, base, components, utilities;
|
@layer theme, base, components, utilities;
|
||||||
@layer theme {
|
@layer theme {
|
||||||
@@ -11,6 +7,7 @@
|
|||||||
"Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
|
"Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
|
||||||
--font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono",
|
--font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono",
|
||||||
"Courier New", monospace;
|
"Courier New", monospace;
|
||||||
|
--color-red-200: oklch(88.5% 0.062 18.334);
|
||||||
--color-red-400: oklch(70.4% 0.191 22.216);
|
--color-red-400: oklch(70.4% 0.191 22.216);
|
||||||
--color-red-500: oklch(63.7% 0.237 25.331);
|
--color-red-500: oklch(63.7% 0.237 25.331);
|
||||||
--color-red-600: oklch(57.7% 0.245 27.325);
|
--color-red-600: oklch(57.7% 0.245 27.325);
|
||||||
@@ -45,7 +42,6 @@
|
|||||||
--color-purple-500: oklch(62.7% 0.265 303.9);
|
--color-purple-500: oklch(62.7% 0.265 303.9);
|
||||||
--color-purple-600: oklch(55.8% 0.288 302.321);
|
--color-purple-600: oklch(55.8% 0.288 302.321);
|
||||||
--color-fuchsia-500: oklch(66.7% 0.295 322.15);
|
--color-fuchsia-500: oklch(66.7% 0.295 322.15);
|
||||||
--color-gray-50: oklch(98.5% 0.002 247.839);
|
|
||||||
--color-gray-100: oklch(96.7% 0.003 264.542);
|
--color-gray-100: oklch(96.7% 0.003 264.542);
|
||||||
--color-gray-200: oklch(92.8% 0.006 264.531);
|
--color-gray-200: oklch(92.8% 0.006 264.531);
|
||||||
--color-gray-400: oklch(70.7% 0.022 261.325);
|
--color-gray-400: oklch(70.7% 0.022 261.325);
|
||||||
@@ -3886,9 +3882,6 @@
|
|||||||
.w-3 {
|
.w-3 {
|
||||||
width: calc(var(--spacing) * 3);
|
width: calc(var(--spacing) * 3);
|
||||||
}
|
}
|
||||||
.w-4 {
|
|
||||||
width: calc(var(--spacing) * 4);
|
|
||||||
}
|
|
||||||
.w-6 {
|
.w-6 {
|
||||||
width: calc(var(--spacing) * 6);
|
width: calc(var(--spacing) * 6);
|
||||||
}
|
}
|
||||||
@@ -5176,6 +5169,16 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
.select-sm {
|
||||||
|
@layer daisyui.l1.l2 {
|
||||||
|
--size: calc(var(--size-field, 0.25rem) * 8);
|
||||||
|
font-size: 0.75rem;
|
||||||
|
option {
|
||||||
|
padding-inline: calc(0.25rem * 2.5);
|
||||||
|
padding-block: calc(0.25rem * 1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
.table-md {
|
.table-md {
|
||||||
@layer daisyui.l1.l2 {
|
@layer daisyui.l1.l2 {
|
||||||
:not(thead, tfoot) tr {
|
:not(thead, tfoot) tr {
|
||||||
@@ -5788,9 +5791,6 @@
|
|||||||
.text-error {
|
.text-error {
|
||||||
color: var(--color-error);
|
color: var(--color-error);
|
||||||
}
|
}
|
||||||
.text-gray-50 {
|
|
||||||
color: var(--color-gray-50);
|
|
||||||
}
|
|
||||||
.text-gray-500 {
|
.text-gray-500 {
|
||||||
color: var(--color-gray-500);
|
color: var(--color-gray-500);
|
||||||
}
|
}
|
||||||
@@ -5812,6 +5812,9 @@
|
|||||||
.text-primary-content {
|
.text-primary-content {
|
||||||
color: var(--color-primary-content);
|
color: var(--color-primary-content);
|
||||||
}
|
}
|
||||||
|
.text-red-200 {
|
||||||
|
color: var(--color-red-200);
|
||||||
|
}
|
||||||
.text-red-500 {
|
.text-red-500 {
|
||||||
color: var(--color-red-500);
|
color: var(--color-red-500);
|
||||||
}
|
}
|
||||||
@@ -6745,182 +6748,6 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@layer properties {
|
|
||||||
:root {
|
|
||||||
--font-sans: "Inclusive Sans", sans-serif;
|
|
||||||
--text-base: 16px;
|
|
||||||
--color-hura: #0041e8;
|
|
||||||
--color-header: #002bb5;
|
|
||||||
--text-base--line-height: 1.5;
|
|
||||||
--color-black: #000;
|
|
||||||
--color-white: #fff;
|
|
||||||
--spacing: 0.25rem;
|
|
||||||
--layout-topbar-background: #fff;
|
|
||||||
--menu-active: #e9f2ff;
|
|
||||||
--menu-text: #177bff;
|
|
||||||
--menu-sub-bg: #fff;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@layer base {
|
|
||||||
html, body {
|
|
||||||
font-family: var(--font-sans);
|
|
||||||
font-size: var(--text-base);
|
|
||||||
line-height: var(--text-base--line-height);
|
|
||||||
}
|
|
||||||
*, *::before, *::after {
|
|
||||||
box-sizing: border-box;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@layer components {
|
|
||||||
.bg-menu {
|
|
||||||
background-color: var(--color-header);
|
|
||||||
}
|
|
||||||
.menu {
|
|
||||||
--menu-active-bg: #e9f2ff;
|
|
||||||
}
|
|
||||||
.menu-horizontal {
|
|
||||||
display: inline-flex;
|
|
||||||
flex-direction: row;
|
|
||||||
}
|
|
||||||
.menu-horizontal li {
|
|
||||||
position: relative;
|
|
||||||
}
|
|
||||||
.menu-horizontal li.active {
|
|
||||||
background: var(--menu-active);
|
|
||||||
}
|
|
||||||
.menu-horizontal li.active .grow, .menu-horizontal li.active svg {
|
|
||||||
color: var(--menu-text);
|
|
||||||
}
|
|
||||||
.menu-horizontal li.active ul li.active {
|
|
||||||
background: var(--color-hura);
|
|
||||||
}
|
|
||||||
.menu-horizontal li.active ul li.active a {
|
|
||||||
color: #fff;
|
|
||||||
}
|
|
||||||
.menu-horizontal li:hover {
|
|
||||||
background: var(--menu-active);
|
|
||||||
}
|
|
||||||
.menu-horizontal li:hover .grow, .menu-horizontal li:hover svg {
|
|
||||||
color: var(--color-hura);
|
|
||||||
}
|
|
||||||
.menu-horizontal li::before {
|
|
||||||
content: "";
|
|
||||||
position: absolute;
|
|
||||||
left: 0;
|
|
||||||
bottom: -18px;
|
|
||||||
width: 100%;
|
|
||||||
height: 30px;
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
.menu-horizontal li:hover::before {
|
|
||||||
display: block;
|
|
||||||
}
|
|
||||||
.menu-horizontal li .submenu {
|
|
||||||
position: absolute !important;
|
|
||||||
top: 125%;
|
|
||||||
left: 0;
|
|
||||||
background: var(--menu-sub-bg);
|
|
||||||
margin-left: 0 !important;
|
|
||||||
padding: 0.5rem;
|
|
||||||
z-index: 999;
|
|
||||||
border-radius: 10px;
|
|
||||||
box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
|
|
||||||
max-height: 500px;
|
|
||||||
overflow-y: auto;
|
|
||||||
overflow-x: hidden;
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
.menu-horizontal > li:not(.menu-title) > details > ul {
|
|
||||||
margin-top: 1rem;
|
|
||||||
padding-inline-end: 0.5rem;
|
|
||||||
}
|
|
||||||
.menu-horizontal li:hover .submenu, .menu-horizontal li:hover > details > ul {
|
|
||||||
display: block;
|
|
||||||
}
|
|
||||||
.menu-horizontal > li > details > ul:before {
|
|
||||||
content: none;
|
|
||||||
}
|
|
||||||
.menu-horizontal li ul li:hover {
|
|
||||||
background: var(--color-hura);
|
|
||||||
}
|
|
||||||
.menu-horizontal li ul li:hover a {
|
|
||||||
color: #fff;
|
|
||||||
}
|
|
||||||
.menu-horizontal li ul li:hover::before {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
.menu-horizontal .grow {
|
|
||||||
font-weight: 500;
|
|
||||||
}
|
|
||||||
.tw-qna {
|
|
||||||
gap: calc(var(--spacing) * 0.5);
|
|
||||||
}
|
|
||||||
.tw-zy {
|
|
||||||
align-items: center;
|
|
||||||
}
|
|
||||||
.tw-uba {
|
|
||||||
display: inline-flex;
|
|
||||||
}
|
|
||||||
.tw-usa {
|
|
||||||
width: calc(var(--spacing) * 5);
|
|
||||||
height: calc(var(--spacing) * 5);
|
|
||||||
}
|
|
||||||
.tw-sla {
|
|
||||||
width: calc(var(--spacing) * 4.5);
|
|
||||||
height: calc(var(--spacing) * 4.5);
|
|
||||||
}
|
|
||||||
.menu-icon-color {
|
|
||||||
color: #838383;
|
|
||||||
}
|
|
||||||
.card-body {
|
|
||||||
padding: calc(var(--spacing) * 4);
|
|
||||||
}
|
|
||||||
.-mt-25 {
|
|
||||||
margin-top: calc(var(--spacing) * -25);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#layout-topbar {
|
|
||||||
background: var(--layout-topbar-background);
|
|
||||||
top: calc(var(--spacing) * 0);
|
|
||||||
z-index: 10;
|
|
||||||
transition-property: top, margin, border-radius;
|
|
||||||
transition-timing-function: var( --tw-ease, var(--default-transition-timing-function) );
|
|
||||||
transition-duration: var(--tw-duration, var(--default-transition-duration));
|
|
||||||
--tw-duration: 0.3s;
|
|
||||||
transition-duration: 0.3s;
|
|
||||||
position: sticky;
|
|
||||||
border-bottom-style: solid;
|
|
||||||
border-bottom-width: 1px;
|
|
||||||
border-color: var(--color-base-300);
|
|
||||||
}
|
|
||||||
#layout-content {
|
|
||||||
padding: calc(var(--spacing) * 6);
|
|
||||||
transition-property: all;
|
|
||||||
transition-timing-function: var( --tw-ease, var(--default-transition-timing-function) );
|
|
||||||
transition-duration: var(--tw-duration, var(--default-transition-duration));
|
|
||||||
flex-grow: 1;
|
|
||||||
}
|
|
||||||
@layer utilities {
|
|
||||||
.btn-active {
|
|
||||||
--btn-bg: var(--color-hura);
|
|
||||||
--btn-fg: #ffffff;
|
|
||||||
--btn-border: var(--color-hura);
|
|
||||||
color: var(--color-white);
|
|
||||||
}
|
|
||||||
.btn-active:hover {
|
|
||||||
--btn-bg: #002bb5;
|
|
||||||
--btn-border: #002bb5;
|
|
||||||
}
|
|
||||||
.btn-view {
|
|
||||||
background: #f5f7ff;
|
|
||||||
color: var(--color-hura);
|
|
||||||
border: 1px solid var(--color-hura);
|
|
||||||
}
|
|
||||||
.btn-view:hover {
|
|
||||||
background: var(--color-hura);
|
|
||||||
color: #fff;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@layer base {
|
@layer base {
|
||||||
:where(:root),:root:has(input.theme-controller[value=light]:checked),[data-theme=light] {
|
:where(:root),:root:has(input.theme-controller[value=light]:checked),[data-theme=light] {
|
||||||
color-scheme: light;
|
color-scheme: light;
|
||||||
|
|||||||
@@ -6,9 +6,6 @@
|
|||||||
@import "https://fonts.googleapis.com/css2?family=Inclusive+Sans:wght@400;500;600;700;800;900;1000&display=swap";
|
@import "https://fonts.googleapis.com/css2?family=Inclusive+Sans:wght@400;500;600;700;800;900;1000&display=swap";
|
||||||
@import "https://fonts.googleapis.com/css2?family=AR+One+Sans:wght@400;500;600;700;800;1000&display=swap";
|
@import "https://fonts.googleapis.com/css2?family=AR+One+Sans:wght@400;500;600;700;800;1000&display=swap";
|
||||||
|
|
||||||
@import "tailwindcss";
|
|
||||||
@plugin "daisyui";
|
|
||||||
|
|
||||||
@layer properties {
|
@layer properties {
|
||||||
:root {
|
:root {
|
||||||
--font-sans: "Inclusive Sans", sans-serif;
|
--font-sans: "Inclusive Sans", sans-serif;
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
2
assets/script/tailwind-daisyui.css
Normal file
2
assets/script/tailwind-daisyui.css
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
@import "tailwindcss";
|
||||||
|
@plugin "daisyui";
|
||||||
@@ -1,40 +1,21 @@
|
|||||||
"use strict";
|
const o = /* @__PURE__ */ (() => {
|
||||||
const AdminFunction = (() => {
|
function a(t) {
|
||||||
function capNhatTrangThaiMenu(e) {
|
const s = $("#status_" + t);
|
||||||
!1 === e ? $("#js-admin-content-container").addClass("show-large-menu") : $("#js-admin-content-container").removeClass("show-large-menu"), $("#js-menu-big").toggleClass("hidden", e), $("#js-menu-small").toggleClass("hidden", !e), $("#js-form-search").toggleClass("menu-hide", e), localStorage.setItem(e ? "menu_big" : "menu_small", "hidden"), localStorage.removeItem(e ? "menu_small" : "menu_big");
|
s.html('<span class="loading loading-bars loading-sm"></span><span class="ml-[3px]">Processing...</span>'), setTimeout(() => {
|
||||||
}
|
s.html("");
|
||||||
function e(e) {
|
}, 1e3);
|
||||||
let t = null;
|
}
|
||||||
return function (...n) {
|
function n(t) {
|
||||||
const o = this, a = function () {
|
const s = $("#js-status-hottype-" + t);
|
||||||
t = null, n.length > 0 && !e && func.apply(o, n);
|
s.html('<span class="loading loading-bars loading-sm"></span><span class="ml-[3px]">Processing...</span>'), setTimeout(() => {
|
||||||
}, i = e && !t;
|
s.html("");
|
||||||
clearTimeout(t), t = setTimeout(a, wait), i && func.apply(o, n);
|
}, 1e3);
|
||||||
};
|
}
|
||||||
}
|
return {
|
||||||
function t(t) {
|
addProductToCategory: a,
|
||||||
$("#status_" + t).html('<span class="loading loading-bars loading-sm"></span><span class="ml-[3px]">Đang xử lý..</span>'), setTimeout(() => {
|
markProductAsHot: n
|
||||||
$("#status_" + t).html("");
|
};
|
||||||
}, 1e3);
|
|
||||||
}
|
|
||||||
function n(e) {
|
|
||||||
$(e).keyup((() => {
|
|
||||||
$("#js-show-search").show();
|
|
||||||
}));
|
|
||||||
$("body").click((() => {
|
|
||||||
$("#js-show-search").hide();
|
|
||||||
}));
|
|
||||||
}
|
|
||||||
function o(e) {
|
|
||||||
$("#js-status-hottype-" + e).html('<span class="loading loading-bars loading-sm"></span><span class="ml-[3px]">Đang xử lý..</span>'), setTimeout(() => {
|
|
||||||
$("#js-status-hottype-" + e).html("");
|
|
||||||
}, 1e3);
|
|
||||||
}
|
|
||||||
function i(e) {
|
|
||||||
$("#overlay").addClass("active"), $(".status-notificatiom").addClass("active"), !0 === e ? $(".status-notificatiom .content").html('<i class="fa fa-check"></i> <b>Cập nhật thành công</b>\n <p>Đơn hàng #000-368 đã được cập nhật thành công</p>') : $(".status-notificatiom .content").html('<i class="fa-solid fa-triangle-exclamation"></i> <b>Lỗi cập nhật</b><p>Có một số vấn đề với hoạt động của bạn.</p>');
|
|
||||||
}
|
|
||||||
function r() {
|
|
||||||
$("#overlay").removeClass("active"), $(".status-notificatiom").removeClass("active");
|
|
||||||
}
|
|
||||||
return { capNhatTrangThaiMenu: capNhatTrangThaiMenu, add_product_to_category: t, run_search: n, update_product_hot: o, checkForm: i, closeForm: r };
|
|
||||||
})();
|
})();
|
||||||
|
export {
|
||||||
|
o as default
|
||||||
|
};
|
||||||
|
|||||||
@@ -4,8 +4,8 @@
|
|||||||
"main": "index.js",
|
"main": "index.js",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"build:js": "vite build",
|
"build:js": "vite build",
|
||||||
"build:css": "tailwindcss -i ./assets/script/hura.global.css -o ./assets/script/hura-lib.css",
|
"build:css": "tailwindcss -i ./assets/script/tailwind-daisyui.css -o ./assets/script/hura-lib.css",
|
||||||
"watch:css": "tailwindcss -i ./assets/script/hura.global.css -o ./assets/script/hura-lib.css --watch",
|
"watch:css": "tailwindcss -i ./assets/script/tailwind-daisyui.css -o ./assets/script/hura-lib.css --watch",
|
||||||
"build": "npm run build:js && npm run build:css",
|
"build": "npm run build:js && npm run build:css",
|
||||||
"test": "echo \"Error: no test specified\" && exit 1"
|
"test": "echo \"Error: no test specified\" && exit 1"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
const initCustomerAcquisitionChart = () => {
|
const initCustomerAcquisitionChart = () => {
|
||||||
const chartOptions = {
|
const chartOptions = {
|
||||||
chart: {
|
chart: {
|
||||||
height: 350,
|
height: 363,
|
||||||
sparkline: {
|
sparkline: {
|
||||||
enabled: false,
|
enabled: false,
|
||||||
},
|
},
|
||||||
@@ -59,7 +59,7 @@
|
|||||||
const initRevenueStatisticsChart = () => {
|
const initRevenueStatisticsChart = () => {
|
||||||
const chartOptions = {
|
const chartOptions = {
|
||||||
chart: {
|
chart: {
|
||||||
height: 292,
|
height: 295,
|
||||||
type: "bar",
|
type: "bar",
|
||||||
stacked: true,
|
stacked: true,
|
||||||
background: "transparent",
|
background: "transparent",
|
||||||
|
|||||||
@@ -18,7 +18,7 @@
|
|||||||
Tổng số mặc cả giá nhận được: <b> 1.458 </b>
|
Tổng số mặc cả giá nhận được: <b> 1.458 </b>
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<div class="mt-5 overflow-x-auto whitespace-nowrap border border-base-200 rounded-[4px]">
|
<div class="mt-5 overflow-x-auto whitespace-nowrap border border-base-200 rounded-sm">
|
||||||
<table class="table table-pin-rows table-pin-cols">
|
<table class="table table-pin-rows table-pin-cols">
|
||||||
<thead>
|
<thead>
|
||||||
<tr class="bg-base-200 text-black">
|
<tr class="bg-base-200 text-black">
|
||||||
|
|||||||
@@ -42,15 +42,15 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="btn-right flex items-center mb-3 gap-3">
|
<div class="btn-right flex items-center mb-3 gap-3">
|
||||||
<a href="/admin/product/form" class="btn btn-sm btn-outline btn-view">
|
<a href="/admin/product/form" class="btn btn-sm btn-outline btn-view">
|
||||||
<i class="iconify lucide--plus"></i>
|
<i data-lucide="plus" class="size-4"></i>
|
||||||
<span>Thêm sản phẩm mới</span>
|
<span>Thêm sản phẩm mới</span>
|
||||||
</a>
|
</a>
|
||||||
<a href="" class="btn btn-outline btn-sm btn-view">
|
<a href="" class="btn btn-outline btn-sm btn-view">
|
||||||
<i class="iconify lucide--file-pdf"></i>
|
<i data-lucide="file-text" class="size-4"></i>
|
||||||
<span class="ml-1">Danh sách cập nhật</span>
|
<span class="ml-1">Danh sách cập nhật</span>
|
||||||
</a>
|
</a>
|
||||||
<a href="" class="btn btn-outline btn-sm btn-view">
|
<a href="" class="btn btn-outline btn-sm btn-view">
|
||||||
<i class="iconify lucide--file-x"></i>
|
<i data-lucide="file-x" class="size-4"></i>
|
||||||
<span class="ml-1">Cập nhật Excel</span>
|
<span class="ml-1">Cập nhật Excel</span>
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
@@ -58,13 +58,13 @@
|
|||||||
<div class="overflow-x-auto mt-5 border border-base-200 rounded-sm">
|
<div class="overflow-x-auto mt-5 border border-base-200 rounded-sm">
|
||||||
<table class="table">
|
<table class="table">
|
||||||
<thead>
|
<thead>
|
||||||
<tr class="bg-base-200 text-black">
|
<tr class="bg-base-300 text-black font-bold">
|
||||||
<th>STT</th>
|
<th>STT</th>
|
||||||
<th>Ảnh</th>
|
<th>Ảnh</th>
|
||||||
<th>Sản phẩm (Tổng số: {{page.total}})</th>
|
<th>Sản phẩm (Tổng số: {{page.total}})</th>
|
||||||
<th>Thông tin bán hàng</th>
|
<th>Thông tin bán hàng</th>
|
||||||
<th>
|
<th>
|
||||||
<select id="" class="select" onchange="location.href=this.value">
|
<select id="" class="select select-sm" onchange="location.href=this.value">
|
||||||
<option value="/admin/product?">Lọc sản phẩm</option>
|
<option value="/admin/product?">Lọc sản phẩm</option>
|
||||||
<option value="/admin/product?hotType=new">Mới</option>
|
<option value="/admin/product?hotType=new">Mới</option>
|
||||||
<option value="/admin/product?hotType=hot">HOT (hỏi nhiều)</option>
|
<option value="/admin/product?hotType=hot">HOT (hỏi nhiều)</option>
|
||||||
@@ -80,7 +80,7 @@
|
|||||||
{% assign counter = 0 %}
|
{% assign counter = 0 %}
|
||||||
{% for item in page.item_list %}
|
{% for item in page.item_list %}
|
||||||
{% increment counter %}
|
{% increment counter %}
|
||||||
<tr>
|
<tr class="hover:bg-base-300">
|
||||||
<td>{{ counter }}</td>
|
<td>{{ counter }}</td>
|
||||||
<td>
|
<td>
|
||||||
<img class="block mx-auto my-0 w-[70px] h-[50px]" src="{{item.image.thumb}}" alt="">
|
<img class="block mx-auto my-0 w-[70px] h-[50px]" src="{{item.image.thumb}}" alt="">
|
||||||
@@ -99,7 +99,7 @@
|
|||||||
<div class="flex items-center my-1 gap-2">
|
<div class="flex items-center my-1 gap-2">
|
||||||
<span>Mã kho</span>
|
<span>Mã kho</span>
|
||||||
<b class="px-2">{{item.sku}}</b>
|
<b class="px-2">{{item.sku}}</b>
|
||||||
<span class="text-black font-[500]">|</span>
|
<span class="text-black font-500">|</span>
|
||||||
<span class="px-2">Hãng</span>
|
<span class="px-2">Hãng</span>
|
||||||
<p class="link-primary">{{item.model}}</p>
|
<p class="link-primary">{{item.model}}</p>
|
||||||
</div>
|
</div>
|
||||||
@@ -143,7 +143,7 @@
|
|||||||
<label class="cursor-pointer flex items-center mb-2 gap-2"
|
<label class="cursor-pointer flex items-center mb-2 gap-2"
|
||||||
onclick="AdminFunction.update_product_hot('{{item.id}}')">
|
onclick="AdminFunction.update_product_hot('{{item.id}}')">
|
||||||
<input type="checkbox" name="new" {% if item.hot_type=="new" %}checked="checked" {% endif %}
|
<input type="checkbox" name="new" {% if item.hot_type=="new" %}checked="checked" {% endif %}
|
||||||
class="checkbox checkbox-success checkbox-sm" />
|
class="checkbox checkbox-active checkbox-sm" />
|
||||||
<span class="label-text whitespace-nowrap">Mới Hot (Hỏi nhiều)</span>
|
<span class="label-text whitespace-nowrap">Mới Hot (Hỏi nhiều)</span>
|
||||||
</label>
|
</label>
|
||||||
|
|
||||||
@@ -151,14 +151,14 @@
|
|||||||
<label class="cursor-pointer flex items-center mb-2 gap-2"
|
<label class="cursor-pointer flex items-center mb-2 gap-2"
|
||||||
onclick="AdminFunction.update_product_hot('{{item.id}}')">
|
onclick="AdminFunction.update_product_hot('{{item.id}}')">
|
||||||
<input type="checkbox" name="hot" {% if item.hot_type=="hot" %}checked="checked" {% endif %}
|
<input type="checkbox" name="hot" {% if item.hot_type=="hot" %}checked="checked" {% endif %}
|
||||||
class="checkbox checkbox-success checkbox-sm" />
|
class="checkbox checkbox-active checkbox-sm" />
|
||||||
<span class="label-text whitespace-nowrap">Hot (Hỏi nhiều)</span>
|
<span class="label-text whitespace-nowrap">Hot (Hỏi nhiều)</span>
|
||||||
</label>
|
</label>
|
||||||
|
|
||||||
<label class="cursor-pointer flex items-center mb-2 gap-2"
|
<label class="cursor-pointer flex items-center mb-2 gap-2"
|
||||||
onclick="AdminFunction.update_product_hot('{{item.id}}')">
|
onclick="AdminFunction.update_product_hot('{{item.id}}')">
|
||||||
<input type="checkbox" name="bestsale" {% if item.hot_type=="bestsale" %}checked="checked"
|
<input type="checkbox" name="bestsale" {% if item.hot_type=="bestsale" %}checked="checked"
|
||||||
{% endif %} class="checkbox checkbox-success checkbox-sm" />
|
{% endif %} class="checkbox checkbox-active checkbox-sm" />
|
||||||
<span class="label-text whitespace-nowrap">Bán
|
<span class="label-text whitespace-nowrap">Bán
|
||||||
chạy</span>
|
chạy</span>
|
||||||
</label>
|
</label>
|
||||||
@@ -166,7 +166,7 @@
|
|||||||
<label class="cursor-pointer flex items-center mb-2 gap-2"
|
<label class="cursor-pointer flex items-center mb-2 gap-2"
|
||||||
onclick="AdminFunction.update_product_hot('{{item.id}}')">
|
onclick="AdminFunction.update_product_hot('{{item.id}}')">
|
||||||
<input type="checkbox" name="saleoff" {% if item.hot_type=="saleoff" %}checked="checked" {%
|
<input type="checkbox" name="saleoff" {% if item.hot_type=="saleoff" %}checked="checked" {%
|
||||||
endif %} class="checkbox checkbox-success checkbox-sm" />
|
endif %} class="checkbox checkbox-active checkbox-sm" />
|
||||||
<span class="label-text whitespace-nowrap">Xả
|
<span class="label-text whitespace-nowrap">Xả
|
||||||
hàng (sale-off)</span>
|
hàng (sale-off)</span>
|
||||||
</label>
|
</label>
|
||||||
@@ -174,7 +174,7 @@
|
|||||||
<label class="cursor-pointer flex items-center mb-2 gap-2"
|
<label class="cursor-pointer flex items-center mb-2 gap-2"
|
||||||
onclick="AdminFunction.update_product_hot('{{item.id}}')">
|
onclick="AdminFunction.update_product_hot('{{item.id}}')">
|
||||||
<input type="checkbox" name="online-only" {% if item.hot_type=="online-only"
|
<input type="checkbox" name="online-only" {% if item.hot_type=="online-only"
|
||||||
%}checked="checked" {% endif %} class="checkbox checkbox-success checkbox-sm" />
|
%}checked="checked" {% endif %} class="checkbox checkbox-active checkbox-sm" />
|
||||||
<span class="label-text whitespace-nowrap">Chỉ bán online</span>
|
<span class="label-text whitespace-nowrap">Chỉ bán online</span>
|
||||||
</label>
|
</label>
|
||||||
|
|
||||||
@@ -210,7 +210,6 @@
|
|||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="join mt-5 justify-center flex items-center">
|
<div class="join mt-5 justify-center flex items-center">
|
||||||
{% for paging in page.pagination.collection %}
|
{% for paging in page.pagination.collection %}
|
||||||
{% if paging.name == 'next' %}
|
{% if paging.name == 'next' %}
|
||||||
@@ -229,12 +228,8 @@
|
|||||||
{% endif %}
|
{% endif %}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<dialog id="js_list_category" class="modal">
|
<dialog id="js_list_category" class="modal">
|
||||||
<div class="modal-box w-11/12 max-w-5xl">
|
<div class="modal-box w-11/12 max-w-5xl">
|
||||||
<form method="dialog">
|
<form method="dialog">
|
||||||
|
|||||||
@@ -7,9 +7,13 @@
|
|||||||
<title> Admin Hura Pc </title>
|
<title> Admin Hura Pc </title>
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
|
|
||||||
<!-- lib hura css -->
|
<!-- library tailwindcss + daisyui css -->
|
||||||
<link rel="stylesheet" href="{{ 'hura-lib.css' | asset_url }}" />
|
<link rel="stylesheet" href="{{ 'hura-lib.css' | asset_url }}" />
|
||||||
|
|
||||||
|
<!-- hura global css -->
|
||||||
|
<link rel="stylesheet" href="{{ 'hura.global.css' | asset_url }}" />
|
||||||
|
|
||||||
|
|
||||||
<!-- page-specific CSS -->
|
<!-- page-specific CSS -->
|
||||||
{% include module_css/index %}
|
{% include module_css/index %}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user