Compare commits

..

132 Commits

Author SHA1 Message Date
b4b7a452fc update 2025-12-15 14:07:09 +07:00
e703314c7f update 2025-12-13 12:07:01 +07:00
d51528e407 update 2025-12-13 10:28:56 +07:00
6f7a292259 update 2025-12-12 16:29:06 +07:00
04f6e919f0 update 2025-12-12 11:01:29 +07:00
123853df5c update 2025-12-11 14:31:35 +07:00
d2b916b985 update 2025-12-11 14:30:30 +07:00
c51cf9dc87 update 2025-12-11 14:26:34 +07:00
01a0a60ef6 update 2025-12-11 13:32:02 +07:00
70ca13999e update 2025-12-11 13:30:40 +07:00
ebfaf799eb update 2025-12-11 09:44:30 +07:00
7df4c3405f update 2025-12-10 19:20:39 +07:00
1afcb2364e update 2025-12-10 08:37:47 +07:00
699db96d26 update 2025-12-09 11:13:40 +07:00
9363b3bb4f update 2025-12-08 20:49:12 +07:00
043b3ac069 update 2025-12-08 14:36:52 +07:00
0068d20a12 update 2025-12-08 14:35:28 +07:00
ac2717b077 update 2025-12-08 13:57:40 +07:00
603d024af3 update 2025-12-08 09:47:31 +07:00
1dbf988073 up 2025-12-07 16:00:19 +07:00
60823b0aab up 2025-12-07 15:59:45 +07:00
942aeafb60 update 2025-12-07 15:58:07 +07:00
75a641ab40 update 2025-12-04 17:20:42 +07:00
3f57e61be2 update 2025-12-04 14:34:23 +07:00
546d4b6f95 update 2025-12-04 14:13:37 +07:00
d0ee976b0c update 2025-12-04 13:47:17 +07:00
e6c4947c75 update 2025-12-02 17:01:37 +07:00
6233a30284 upload 2025-12-02 09:30:52 +07:00
2ad52e7ce8 Merge branch 'master' of https://repo.hurasoft.com/tieptk/admin_hura_8 2025-11-30 19:57:43 +07:00
587cdd5420 up 2025-11-30 19:57:12 +07:00
a289d69a6b update 2025-11-30 11:43:47 +07:00
91941d7c14 update 2025-11-28 16:27:10 +07:00
af6f1eff2e update 2025-11-28 09:32:05 +07:00
8c42d57fcd update 2025-11-27 12:55:33 +07:00
6876ab2bd3 Merge branch 'master' of https://repo.hurasoft.com/tieptk/admin_hura_8 2025-11-24 13:08:40 +07:00
4a4c3177a9 a 2025-11-24 13:08:28 +07:00
b6d1297a20 Update menu 2025-11-24 12:46:42 +07:00
4a6b814426 Update menu 2025-11-24 12:39:28 +07:00
4d67725ea8 Update menu 2025-11-24 12:37:49 +07:00
caa5828511 Update liquid 1.4.44 2025-11-24 10:56:06 +07:00
1dda5db73b push 2025-11-21 19:06:27 +07:00
971a23ae2a up 2025-11-21 16:34:19 +07:00
060e3643ea update 2025-11-20 13:10:28 +07:00
1c2c38a8bb push 11/4 2025-04-11 14:18:51 +07:00
e8e9f7c382 update 04/04 2025-04-04 15:05:18 +07:00
5529e9ff1f upload 1/4 2025-04-01 13:46:03 +07:00
30ebfb6644 upload 31/03 2025-03-31 11:07:34 +07:00
3137a8226b update 29/03 2025-03-29 11:46:53 +07:00
a399a7bedd upload 28/03 2025-03-28 14:38:02 +07:00
fe6ba5b1a0 up 2025-02-24 10:16:18 +07:00
d20a20684d update menu, hover 2025-02-24 10:09:33 +07:00
dd8de9838f menu 2025-02-21 15:17:06 +07:00
1b461f0e86 new menu 2025-02-21 14:24:40 +07:00
ef51a9d6f4 menu 21/02 2025-02-21 14:04:33 +07:00
34275ed7b7 update menu 2025-02-21 13:36:38 +07:00
0c8e3258c4 up 2025-02-20 16:27:50 +07:00
3a257c411e up 2025-02-19 14:55:19 +07:00
7857cc0422 up 2025-02-19 10:28:11 +07:00
dbeda7da6d up 2025-02-18 16:30:26 +07:00
66344ad5c6 up 2025-02-17 16:51:08 +07:00
ae9d94330f up 2025-02-17 09:24:52 +07:00
84731fc375 up 2025-02-14 16:17:58 +07:00
e60866c99f up 2025-02-13 15:45:32 +07:00
1315df5ebb up 2025-02-12 16:13:51 +07:00
c3c4efd679 up 2025-02-11 16:22:18 +07:00
961e92b965 up 2025-02-10 16:51:19 +07:00
cc0f195bee up 2025-02-09 19:40:45 +07:00
9bdd0e435a up 2025-02-08 22:55:01 +07:00
7299751c83 up 2025-02-08 19:28:39 +07:00
e41fa9b5b1 menu 2025-02-08 19:27:15 +07:00
dccf38d6d3 menu 2024-05-16 11:38:34 +07:00
48c9cba704 ts 2024-05-15 09:03:46 +07:00
6ee294d14b ts 2024-05-15 08:42:10 +07:00
4e9930841c menu 2024-05-13 13:30:57 +07:00
fb29ea215a typescript 2024-05-13 11:55:28 +07:00
eee07fab6b typesript 2024-05-13 11:52:43 +07:00
f567aed4da ts 2024-05-13 11:25:12 +07:00
90e1a88461 js 2024-05-11 10:11:24 +07:00
cea5665f51 global.js 2024-05-10 23:25:07 +07:00
f0628c310c global.js 2024-05-09 11:16:07 +07:00
9737f4ed81 js 2024-05-09 11:13:48 +07:00
f66da1b416 js 2024-05-09 10:29:45 +07:00
ce9710c758 menu 2024-05-08 09:15:55 +07:00
fe7ddf826e loading 2024-05-07 15:42:55 +07:00
6415cca99f update menu 2024-05-07 13:34:07 +07:00
7b96c6d976 checkbox 2024-05-07 11:33:48 +07:00
615e36647a select datepicker 2024-05-07 10:04:17 +07:00
d71cbe3065 update form product 2024-05-06 15:55:58 +07:00
d9094447c8 update 2024-05-04 09:39:10 +07:00
edee2ad3d8 update list product 2024-05-04 09:29:34 +07:00
da868053ca c 2024-05-02 09:50:06 +07:00
d33bec681f update system 2024-03-18 12:03:24 +07:00
5cf4155fcc upload 2024-03-09 11:58:48 +07:00
10b1b7da6e marketting 2024-03-09 11:54:26 +07:00
8679b320e1 payinstall 2024-03-09 11:35:04 +07:00
14ef2c1610 06/03/2024 9h21 2024-03-06 09:21:29 +07:00
91d317607a 06/03/2024 9h19 2024-03-06 09:19:26 +07:00
d5bd7d2948 update customer 2024-03-05 14:55:28 +07:00
21d3b53747 update product 2024-03-04 13:26:05 +07:00
78d3c1e64f update 2024-02-29 15:22:40 +07:00
f8088b3a71 update product brand 2024-02-29 15:20:41 +07:00
6f393f6e64 update product 2024-02-29 14:49:03 +07:00
6166366250 category 2024-02-27 13:35:20 +07:00
4773342421 category 2024-02-27 13:33:08 +07:00
1a5515ed95 category 2024-02-27 13:31:27 +07:00
22ceb73fb1 a 2024-02-23 09:18:06 +07:00
eafb7bfb5f oder 2024-02-21 14:14:01 +07:00
15f5520474 marketing 2024-02-21 09:56:03 +07:00
546ac5d1e2 marketing 2024-02-21 09:54:46 +07:00
200a04e66a marketing 2024-02-21 09:53:08 +07:00
a7bdbd38fe marketing 2024-02-17 10:17:47 +07:00
672bd0067e s 2024-02-12 10:29:15 +07:00
92331cc02b Merge remote-tracking branch 'origin/master'
# Conflicts:
#	assets/script/pc_style.css.map
2024-02-07 13:40:06 +07:00
cf98ec94a0 update marketing 2/6/2024 2024-02-06 13:13:29 +07:00
5dcb6686c2 c 2024-02-06 11:46:59 +07:00
7feffb1783 update customer 2024-02-05 11:42:19 +07:00
6f9cfba530 update customer 2024-02-05 11:30:07 +07:00
2c6a60a2d7 update marketing 2024-02-01 14:43:24 +07:00
70d0602388 m 2024-02-01 11:10:26 +07:00
dde52d00d6 update marketing page 2024-01-31 16:04:16 +07:00
7a11011330 update marketing page 2024-01-31 16:02:26 +07:00
2b9695b9f2 search 2024-01-31 12:05:22 +07:00
37e4278d53 search 2024-01-31 11:59:25 +07:00
4561bd68d1 c 2024-01-31 11:36:25 +07:00
caef156a05 marketing/coupon 2024-01-31 10:38:38 +07:00
88e4ec4a28 update 31/01 2024-01-31 09:34:00 +07:00
6dd13c49ff update icon,fixed menu, modal category, modal brand 2024-01-30 15:53:37 +07:00
c17cf4ae8b a 2024-01-30 15:28:16 +07:00
36c52953bd marketing 2024-01-30 09:45:34 +07:00
32933ad2b9 asd 2024-01-30 08:45:44 +07:00
dc39d63d51 Merge branch 'master' of https://repo.hurasoft.com/tieptk/admin_hura_8 2024-01-29 10:44:54 +07:00
ff274416dd 29-01-2024 2024-01-29 10:44:49 +07:00
691 changed files with 82553 additions and 4539 deletions

1
.gitignore vendored
View File

@@ -2,3 +2,4 @@ package/vendor
package/composer.lock
.idea
node_modules/

View File

@@ -4,6 +4,8 @@
<p>Repo: <a href="https://repo.hurasoft.com/tieptk/admin_hura_8" target="_blank">https://repo.hurasoft.com/tieptk/admin_hura_8</a></p>
<p>Theo dõi tiến độ: <a href="https://docs.google.com/spreadsheets/d/1Po3ANsG00pm_Y3dnrwuV81cidTCCqepYmR3yPDlIq6c/edit#gid=0" target="_blank">https://docs.google.com/spreadsheets/d/1Po3ANsG00pm_Y3dnrwuV81cidTCCqepYmR3yPDlIq6c/edit#gid=0</a></p>
<h2>Cài đặt hệ thống</h2>
<p>Test và làm việc chính tại web: <a href="http://local.hura8_admin/"> http://local.hura8_admin/</a> </p>

BIN
assets/images/avatars/1.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

BIN
assets/images/avatars/2.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

BIN
assets/images/avatars/3.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

BIN
assets/images/avatars/4.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

BIN
assets/images/avatars/5.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

BIN
assets/images/avatars/6.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

BIN
assets/images/avatars/7.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

BIN
assets/images/avatars/8.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

BIN
assets/images/avatars/9.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

BIN
assets/images/brand-1.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

View File

Before

Width:  |  Height:  |  Size: 2.1 KiB

After

Width:  |  Height:  |  Size: 2.1 KiB

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

7308
assets/script/hura-lib.css Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,252 @@
/* ===========================
FONT IMPORT (Dùng chung)
=========================== */
@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 {
:root {
--font-sans: "Inclusive Sans", sans-serif;
--text-base: 16px;
--bg-body: #fafbfd;
--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 {
#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;
background: var(--bg-body);
}
.bg-menu {
background-color: var(--color-header);
}
/* menu */
.menu {
& {
--menu-active-bg: #e9f2ff;
}
}
.menu-horizontal {
display: inline-flex;
flex-direction: row;
}
.menu-horizontal li {
position: relative;
}
/* ACTIVE STATE (LEVEL 1) */
.menu-horizontal li.active {
background: var(--menu-active);
}
.menu-horizontal li.active .grow,
.menu-horizontal li.active svg {
color: var(--menu-text);
}
/* ACTIVE STATE (LEVEL 2) */
.menu-horizontal li.active ul li.active {
background: var(--color-hura);
}
.menu-horizontal li.active ul li.active a {
color: #fff;
}
/* HOVER LEVEL 1 */
.menu-horizontal li:hover {
background: var(--menu-active);
}
.menu-horizontal li:hover .grow,
.menu-horizontal li:hover svg {
color: var(--color-hura);
}
/* Dải hover giữ submenu không bị mất */
.menu-horizontal li::before {
content: "";
position: absolute;
left: 0;
bottom: -18px;
width: 100%;
height: 30px;
display: none;
}
.menu-horizontal li:hover::before {
display: block;
}
/* ==========================
SUBMENU (UL)
========================== */
.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;
margin-top: 0 !important;
}
/* DaisyUI details submenu spacing */
.menu-horizontal > li:not(.menu-title) > details > ul {
margin-top: 1rem;
padding-inline-end: 0.5rem;
}
/* SHOW SUBMENU ON HOVER */
.menu-horizontal li:hover .submenu,
.menu-horizontal li:hover > details > ul {
display: block;
}
/* Remove extra before from DaisyUI */
.menu-horizontal > li > details > ul:before {
content: none;
}
/* ==========================
SUBMENU HOVER ITEMS
========================== */
.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;
}
/* Font weight chung */
.menu-horizontal .grow {
font-weight: 500;
}
.menu-icon-color {
color: #838383;
}
.card-body {
padding: calc(var(--spacing) * 4);
}
.choices {
margin-top: calc(var(--spacing) * 2);
--tw-shadow:
0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.1)),
0 1px 2px -1px var(--tw-shadow-color, #0000001a);
box-shadow:
var(--tw-inset-shadow), var(--tw-inset-ring-shadow),
var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
border-radius: var(--radius-sm);
}
.choices__inner {
background: #fff !important;
min-height: 38px !important;
padding: 5px !important;
}
}
@layer hura {
.hura-btn-active {
--btn-bg: var(--color-hura);
--btn-fg: #ffffff;
--btn-border: var(--color-hura);
color: var(--color-white);
}
.hura-btn-active:hover {
--btn-bg: #002bb5;
--btn-border: #002bb5;
}
.hura-btn-outline {
background: #f5f7ff;
color: var(--color-hura);
border: 1px solid var(--color-hura);
}
.hura-btn-outline:hover {
background: var(--color-hura);
color: #fff;
}
.hura-checkbox:checked,
.hura-checkbox[aria-checked="true"] {
background: var(--color-hura);
color: #fff;
}
.hura-radio:checked,
.hura-radio[aria-checked="true"] {
border-color: var(--color-hura);
}
.hura-radio:checked::before,
.hura-radio[aria-checked="true"]::before {
background-color: var(--color-hura);
}
.hura-text-blue {
color: var(--color-hura);
}
.hura-bg-blue {
background: var(--color-hura);
}
.hura-shadow-blue {
box-shadow:
0 10px 15px -3px rgb(var(--color-hura) / 0.35),
0 4px 6px -4px rgb(var(--color-hura) / 0.25);
}
}

2
assets/script/jquery.js vendored Normal file

File diff suppressed because one or more lines are too long

View File

@@ -1,855 +0,0 @@
@charset "UTF-8";
*,
::after,
::before {
box-sizing: border-box;
}
button,
input,
select {
outline: none !important;
color: #000;
border-radius: 0;
}
button,
input {
overflow: visible;
}
button,
input,
optgroup,
select,
textarea {
margin: 0;
font-family: inherit;
font-size: inherit;
line-height: inherit;
border-radius: 0;
}
input::-webkit-outer-spin-button,
input::-webkit-inner-spin-button {
-webkit-appearance: none;
}
input[type=number] {
-moz-appearance: textfield;
}
body {
color: #000;
font-family: "Inter", sans-serif;
background: #fafafb;
position: relative;
font-size: 14px;
word-break: break-word;
counter-reset: section;
font-weight: 400;
line-height: 1.5;
margin: auto;
}
img {
max-width: 100%;
height: auto;
}
a {
text-decoration: none;
}
::-webkit-scrollbar-track {
background: #f5f5f5;
}
::-webkit-scrollbar-thumb {
background: grey;
border-radius: 5px;
}
::-webkit-scrollbar-thumb:hover {
background: #ccc;
}
::-webkit-scrollbar {
width: 8px;
height: 10px;
}
.clearfix::after {
content: "";
clear: both;
display: block;
}
.inherit {
font-size: inherit;
font-weight: inherit;
line-height: inherit;
margin: 0;
}
.line-clamp-2 {
text-overflow: ellipsis;
-webkit-line-clamp: 2;
display: -webkit-box;
-webkit-box-orient: vertical;
overflow: hidden;
}
.line-clamp-3 {
text-overflow: ellipsis;
-webkit-line-clamp: 3;
display: -webkit-box;
-webkit-box-orient: vertical;
overflow: hidden;
}
.line-clamp-4 {
text-overflow: ellipsis;
-webkit-line-clamp: 4;
display: -webkit-box;
-webkit-box-orient: vertical;
overflow: hidden;
}
.line-clamp-5 {
text-overflow: ellipsis;
-webkit-line-clamp: 5;
display: -webkit-box;
-webkit-box-orient: vertical;
overflow: hidden;
}
.icons {
background: url(../images/global-sprite.png) no-repeat;
background-size: 400px 400px;
background-position: 0 40px;
}
.admin-global-container {
max-width: 1720px;
margin: auto;
display: flex;
}
.admin-menu-container {
position: relative;
overflow: auto;
background: #004e99;
color: #fff;
width: 18%;
padding: 20px 0;
line-height: 20px;
}
.admin-menu-container a {
color: #fff;
}
.admin-menu-container .menu-logo {
display: table;
margin-bottom: 50px;
margin-left: 16px;
}
.admin-menu-container .menu-logo img {
height: 22px;
}
.admin-menu-container .menu-list {
margin: 50px 0;
}
.admin-menu-container details[open] svg {
transform: rotate(90deg);
}
.admin-menu-container details[open] summary {
background: #81b5e4;
}
.admin-menu-container details[open] summary a {
font-weight: 700;
}
.admin-menu-container details[open] .icons {
filter: brightness(100);
}
.admin-menu-container details[open] .fa-angle-right {
transform: rotate(90deg);
}
.admin-menu-container summary {
display: flex;
align-items: center;
justify-content: space-between;
cursor: pointer;
padding-right: 16px;
border-radius: 4px;
position: relative;
transition: 0.3s all;
}
.admin-menu-container summary a {
padding: 8px 16px;
display: flex;
align-items: center;
}
.admin-menu-container svg {
position: absolute;
right: 16px;
transition: 0.3s all;
}
.admin-menu-container .item {
display: flex;
align-items: center;
padding: 0 16px;
line-height: 36px;
transition: 0.3s all;
border-radius: 4px;
}
.admin-menu-container .item:hover {
background: #81b5e4;
}
.admin-menu-container .item:hover .icons {
filter: brightness(100);
}
.admin-menu-container .item .icons {
width: 20px;
height: 20px;
margin-right: 13px;
}
.admin-menu-container .title {
width: calc(100% - 33px);
}
.admin-menu-container .sub-menu {
padding: 13px 13px 13px 45px;
position: relative;
}
.admin-menu-container .sub-menu::before {
content: "";
width: 1px;
height: calc(100% - 39px);
background: #79b0e2;
position: absolute;
left: 20px;
top: 20px;
}
.admin-menu-container .sub-menu a {
display: block;
margin-bottom: 15px;
position: relative;
}
.admin-menu-container .sub-menu a:hover {
text-decoration: underline;
}
.admin-menu-container .sub-menu a.current {
font-weight: 700;
text-decoration: none;
}
.admin-menu-container .sub-menu a::before {
content: "";
width: 8px;
height: 8px;
border-radius: 50%;
background: #79b0e2;
position: absolute;
top: 6px;
left: -28px;
}
.admin-menu-container .sub-menu a:last-child {
margin: 0;
}
.admin-menu-container .icon-home {
background-position: -9px -7px;
}
.admin-menu-container .icon-order {
background-position: -45px -7px;
}
.admin-menu-container .icon-product {
background-position: -81px -8px;
}
.admin-menu-container .icon-customer {
background-position: -117px -8px;
}
.admin-menu-container .icon-marketing {
background-position: -154px -8px;
}
.admin-menu-container .icon-content {
background-position: -187px -8px;
}
.admin-menu-container .icon-stats {
background-position: -224px -8px;
}
.admin-menu-container .icon-system {
background-position: -262px -8px;
}
.admin-menu-container .icon-settings {
background-position: -297px -8px;
}
.admin-menu-container .icon-support {
background-position: -332px -7px;
}
.admin-menu-container .icon-account {
background-position: -367px -9px;
}
.admin-menu-container .icon-logout {
background-position: -9px -45px;
}
.admin-menu-container .icon-close {
position: absolute;
right: 10px;
}
.admin-menu-container .icon-investor_relation {
background-position: -9px -126px;
}
.admin-menu-container .icon-job {
background-position: -52px -126px;
}
.admin-menu-container .icon-pcbuilder {
background-position: -99px -126px;
}
.admin-menu-container .icon-payinstall {
background-position: -142px -125px;
}
.admin-menu-container .icon-distributor {
background-position: -187px -126px;
}
.admin-menu {
color: #fff;
z-index: 1;
}
.admin-menu .item {
display: flex;
align-items: center;
transition: 0.3s all;
position: relative;
}
.admin-menu .item:hover {
background: #81b5e4;
}
.admin-menu .item:hover .icons {
filter: brightness(100);
}
.admin-menu .item:hover .sub-menu {
left: calc(100% + 8px);
opacity: 1;
visibility: inherit;
}
.admin-menu .item:hover::before {
display: block;
}
.admin-menu .item.bottom .sub-menu {
top: unset;
}
.admin-menu .item.bottom:hover .sub-menu {
top: auto;
bottom: 0;
}
.admin-menu .item::before {
position: absolute;
content: "";
width: 50px;
right: -20px;
height: 41px;
display: none;
}
.admin-menu .item:nth-child(n+13) .sub-menu {
top: unset;
}
.admin-menu .sub-menu {
padding: 10px 22px 10px 15px;
border-radius: 6px;
background: #004e99;
box-shadow: 0px 2px 2px 0px rgba(0, 0, 0, 0.25);
white-space: nowrap;
min-width: 150px;
z-index: -1;
transition: 0.2s all;
position: absolute;
left: calc(100% + 30px);
top: 0;
opacity: 0;
visibility: hidden;
min-width: 200px;
}
.admin-menu .sub-menu a {
display: block;
margin-bottom: 12px;
line-height: 18px;
position: relative;
}
.admin-menu .sub-menu a:hover {
text-decoration: underline;
}
.admin-menu .sub-menu a.current {
font-weight: 700;
text-decoration: none;
}
.admin-menu .sub-menu a::before {
content: "";
width: 8px;
height: 8px;
border-radius: 50%;
background: #79b0e2;
position: absolute;
top: 6px;
left: -16px;
}
.admin-menu .sub-menu a:last-child {
margin: 0;
}
.admin-menu .menu-list {
padding-left: 16px;
margin-top: 10px;
position: relative;
max-height: 350px;
overflow-y: auto;
padding-right: 10px;
margin-right: -12px;
}
.admin-menu .menu-list::before {
content: "";
width: 1.5px;
background: #79b0e2;
position: absolute;
left: 3px;
top: 7px;
bottom: 7px;
}
.admin-menu .menu-list::-webkit-scrollbar-thumb {
background: #fff;
}
.admin-menu .menu-list::-webkit-scrollbar-track {
background: transparent;
}
.admin-menu .icons {
width: 50px;
height: 40px;
}
.admin-menu .icon-home {
background-position: 7px 3px;
}
.admin-menu .icon-sell {
background-position: -29px 3px;
}
.admin-menu .icon-product {
background-position: -66px 3px;
}
.admin-menu .icon-user {
background-position: -103px 3px;
}
.admin-menu .icon-marketing {
background-position: -139px 3px;
}
.admin-menu .icon-content {
background-position: -172px 3px;
}
.admin-menu .icon-stats {
background-position: -208px 3px;
}
.admin-menu .icon-system {
background-position: -247px 3px;
}
.admin-menu .icon-settings {
background-position: -282px 2px;
margin-left: -1px;
}
.admin-menu .icon-support {
background-position: -318px 3px;
}
.admin-menu .icon-account {
background-position: -354px 2px;
}
.admin-menu .icon-logout {
background-position: 6px -34px;
}
.admin-menu .icon-investor_relation {
background-position: 6px -115px;
}
.admin-menu .icon-job {
background-position: -37px -114px;
}
.admin-menu .icon-pcbuilder {
background-position: -83px -114px;
}
.admin-menu .icon-payinstall {
background-position: -128px -114px;
}
.admin-menu .icon-distributor {
background-position: -173px -114px;
}
.admin-menu .logo {
position: relative;
}
.admin-menu .icon-close {
position: absolute;
top: 0;
right: -30px;
height: 30px;
width: 30px;
display: block;
background-color: rgb(0 78 153/var(--tw-bg-opacity));
}
.admin-menu .icon-close i {
display: block;
margin: 0 auto;
text-align: center;
margin-top: 6px;
line-height: 20px;
}
.admin-content-container {
width: calc(100% - 50px);
}
.admin-content-container.show-large-menu {
width: 82%;
}
.admin-content-container .note-list {
min-width: 144px;
}
.admin-content-container .note-list a {
display: block;
padding: 0 10px;
line-height: 35px;
transition: 0.2s all;
}
.admin-content-container .note-list a:hover {
background: #f5f7ff;
color: #0041e8;
font-weight: 600;
}
.admin-content-container .content-holder {
padding: 16px 0 16px 16px;
}
.table-fixed {
text-align: center;
}
.table-fixed td {
padding: 13px 8px;
border: 1px solid #ececec;
}
.table-fixed tbody td {
padding: 5px 8px;
}
.table-fixed tbody td:nth-child(2), .table-fixed tbody td:nth-child(3) {
text-align: left;
}
.table-fixed tbody td:nth-child(2) {
color: #0041e8;
}
.admin-home-tab {
overflow: auto;
}
.admin-home-tab a {
color: #a0a8b5;
padding: 9px 7.7px;
text-align: center;
border-right: 1px solid #dde1eb;
white-space: nowrap;
}
.admin-home-tab a:last-child {
border: 0;
}
.admin-home-tab a:hover, .admin-home-tab a.current {
background: #0041e8;
color: #fff;
}
.home-report-holder {
display: none;
}
.home-report-holder table {
width: 100%;
line-height: 20px;
text-align: center;
}
.home-report-holder thead {
background: #f6f6f6;
font-weight: 500;
}
.home-report-holder td {
border: 1px solid #ececec;
padding: 14px 5px;
}
.home-report-holder td a {
display: block;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.home-report-holder td:nth-child(2) {
text-align: left;
}
.home-todo-list td {
padding: 0 4px;
color: #000 !important;
}
.home-todo-list td:nth-child(1), .home-todo-list td:nth-child(3), .home-todo-list td:nth-child(4) {
white-space: nowrap;
}
.product-list th {
padding: 10px;
border: 1px solid #ececec;
background: #f6f6f6;
}
.product-list td {
padding: 8px;
border: 1px solid #ececec;
}
.product-sale-info td {
padding: 14px;
border: 1px solid #ececec;
}
input[type=radio] {
position: absolute;
}
input[type=radio]:before {
content: "";
background: #fff;
border-radius: 100%;
border: 1.5px solid #0041e8;
display: inline-block;
width: 20px;
height: 20px;
position: relative;
top: -0.2em;
margin-right: 1em;
vertical-align: top;
cursor: pointer;
text-align: center;
transition: all 250ms ease;
}
input[type=radio]:checked:before {
background-color: #0041e8;
box-shadow: inset 0 0 0 4px #fff;
}
input[type=radio]:focus:before {
outline: none;
border-color: #0041e8;
}
.table-seo td {
padding: 14px;
border: 1px solid #ececec;
}
.product-specifications td {
padding: 14px;
border: 1px solid #ececec;
}
.table-config th {
padding: 10px 5px;
background: #f6f6f6;
border: 1px solid #ececec;
}
.table-config td {
padding: 10px;
border: 1px solid #ececec;
}
.accessory th {
padding: 10px 5px;
background: #f6f6f6;
border: 1px solid #ececec;
}
.accessory td {
padding: 10px 6px;
border: 1px solid #ececec;
}
.icons {
width: 30px;
height: 30px;
display: block;
}
.icons.icon-search {
background-position: -71px -40px;
}
.icons.header-support {
height: 33px;
background-position: -116px -42px;
}
.icons.icon-notification {
height: 33px;
background-position: -165px -42px;
}
.icons.icon-cart {
background-position: -210px -36px;
}
.icons.icon-contact {
background-position: -246px -36px;
}
.icons.icon-pay {
background-position: -284px -36px;
}
.icons.icon-installment {
background-position: -318px -36px;
}
.icons.icon-increase {
width: 20px;
height: 20px;
background-position: -6px -85px;
}
.icons.icon-reduce {
width: 20px;
height: 20px;
background-position: -43px -83px;
}
.icons.icon-edit {
width: 16px;
height: 16px;
background-position: -114px -89px;
}
.icons.icon-view {
width: 16px;
height: 16px;
background-position: -187px -88px;
}
.icons.icon-remove {
width: 16px;
height: 16px;
background-position: -151px -88px;
}
.icons.icon-hide {
width: 16px;
height: 16px;
background-position: -224px -88px;
}
.admin-header-container .menu-hide {
margin-left: 30px;
}
/* Bán hàng */
.order-page .order-page-title a {
margin: 0 2px 0 0;
border-radius: 4px 4px 0px 0px;
background: #f6f6f6;
color: #919699;
font-weight: 500;
padding: 0 24px;
}
.order-page .order-page-title a:hover, .order-page .order-page-title a.current, .order-page .order-page-title a.active {
background: #0041e8;
color: #fff;
}
.order-page .order-page-table {
text-align: center;
}
.order-page .order-page-table thead td {
padding: 8px;
}
.order-page .order-page-table td {
padding: 14px 8px;
}
.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 .icons {
width: 30px;
height: 30px;
border: 1px solid #ececec;
background-color: #f9f9f9;
border-radius: 5px;
}
.order-page .order-page-table .icon-edit {
border: 1px solid #0041e8;
background-color: #f5f7ff;
background-position: -108px -82px;
margin-right: 6px;
}
.order-page .order-page-table .icon-delete {
background-position: -145px -82px;
}
.order-page-table {
line-height: 20px;
}
.order-page-table a {
color: #0041e8;
}
.order-page-table a:hover {
text-decoration: underline;
}
.order-page-table table {
width: 100%;
}
.order-page-table thead {
background: #f6f6f6;
font-weight: 600;
text-align: center;
}
.order-page-table thead td {
padding: 8px;
}
.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;
border: 1px solid #d8d8d8;
box-shadow: 0px 2px 4px 0px rgba(0, 0, 0, 0.12);
height: 32px;
display: block;
width: 100%;
padding: 0 0 0 5px;
}
.is-close-btn {
background: #ececec !important;
border-radius: 50%;
top: 10px !important;
right: 10px !important;
color: #9e9e9e !important;
}
.paging {
margin: 30px 0;
display: flex;
align-items: center;
justify-content: center;
line-height: 28px;
}
.paging a {
margin: 0 3px;
min-width: 28px;
text-align: center;
font-size: 16px;
padding: 0 10px;
border-radius: 4px;
}
.paging a:hover, .paging a.current, .paging a.active {
background: #0041e8;
color: #fff;
}
.global-breadcrumb-container {
padding: 16px;
line-height: 20px;
}
.global-breadcrumb-container a {
display: inline-block;
}
.global-breadcrumb-container a:hover {
color: #0041e8;
}
.global-breadcrumb-container a::after {
content: "\f054";
font-family: Fontawesome;
font-size: 10px;
margin: 0 5px;
}
.global-breadcrumb-container a:last-child {
color: #0041e8;
}
.global-breadcrumb-container a:last-child::after {
content: none;
}/*# sourceMappingURL=pc_style.css.map */

File diff suppressed because one or more lines are too long

View File

@@ -1,872 +0,0 @@
*,
::after,
::before {
box-sizing: border-box;
}
button,
input,
select {
outline: none !important;
color: #000;
border-radius: 0;
}
button,
input {
overflow: visible;
}
button,
input,
optgroup,
select,
textarea {
margin: 0;
font-family: inherit;
font-size: inherit;
line-height: inherit;
border-radius: 0;
}
input::-webkit-outer-spin-button,
input::-webkit-inner-spin-button {
-webkit-appearance: none;
}
input[type="number"] {
-moz-appearance: textfield;
}
body {
color: #000;
font-family: "Inter", sans-serif;
background: #fafafb;
position: relative;
font-size: 14px;
word-break: break-word;
counter-reset: section;
font-weight: 400;
line-height: 1.5;
margin: auto;
}
img {
max-width: 100%;
height: auto;
}
a {
text-decoration: none;
}
::-webkit-scrollbar-track {
background: #f5f5f5;
}
::-webkit-scrollbar-thumb {
background: grey;
border-radius: 5px;
}
::-webkit-scrollbar-thumb:hover {
background: #ccc;
}
::-webkit-scrollbar {
width: 8px;
height: 10px;
}
.clearfix {
&::after {
content: "";
clear: both;
display: block;
}
}
.inherit {
font-size: inherit;
font-weight: inherit;
line-height: inherit;
margin: 0;
}
.line-clamp-2 {
text-overflow: ellipsis;
-webkit-line-clamp: 2;
display: -webkit-box;
-webkit-box-orient: vertical;
overflow: hidden;
}
.line-clamp-3 {
text-overflow: ellipsis;
-webkit-line-clamp: 3;
display: -webkit-box;
-webkit-box-orient: vertical;
overflow: hidden;
}
.line-clamp-4 {
text-overflow: ellipsis;
-webkit-line-clamp: 4;
display: -webkit-box;
-webkit-box-orient: vertical;
overflow: hidden;
}
.line-clamp-5 {
text-overflow: ellipsis;
-webkit-line-clamp: 5;
display: -webkit-box;
-webkit-box-orient: vertical;
overflow: hidden;
}
.icons {
background: url(../images/global-sprite.png) no-repeat;
background-size: 400px 400px;
background-position: 0 40px;
}
.admin-global-container {
max-width: 1720px;
margin: auto;
display: flex;
}
.admin-menu-container {
position: relative;
overflow: auto;
background: #004e99;
color: #fff;
width: 18%;
padding: 20px 0;
line-height: 20px;
a {
color: #fff;
}
.menu-logo {
display: table;
margin-bottom: 50px;
margin-left: 16px;
img {
height: 22px;
}
}
.menu-list {
margin: 50px 0;
}
details {
&[open] {
svg {
transform: rotate(90deg);
}
summary {
background: #81b5e4;
a {
font-weight: 700;
}
}
.icons {
filter: brightness(100);
}
.fa-angle-right {
transform: rotate(90deg);
}
}
}
summary {
display: flex;
align-items: center;
justify-content: space-between;
cursor: pointer;
padding-right: 16px;
border-radius: 4px;
position: relative;
transition: 0.3s all;
a {
padding: 8px 16px;
display: flex;
align-items: center;
}
}
svg {
position: absolute;
right: 16px;
transition: 0.3s all;
}
.item {
display: flex;
align-items: center;
padding: 0 16px;
line-height: 36px;
transition: 0.3s all;
border-radius: 4px;
&:hover {
background: #81b5e4;
.icons {
filter: brightness(100);
}
}
.icons {
width: 20px;
height: 20px;
margin-right: 13px;
}
}
.title {
width: calc(100% - 33px);
}
.sub-menu {
padding: 13px 13px 13px 45px;
position: relative;
&::before {
content: "";
width: 1px;
height: calc(100% - 39px);
background: #79b0e2;
position: absolute;
left: 20px;
top: 20px;
}
a {
display: block;
margin-bottom: 15px;
position: relative;
&:hover {
text-decoration: underline;
}
&.current {
font-weight: 700;
text-decoration: none;
}
&::before {
content: "";
width: 8px;
height: 8px;
border-radius: 50%;
background: #79b0e2;
position: absolute;
top: 6px;
left: -28px;
}
&:last-child {
margin: 0;
}
}
}
.icon-home {
background-position: -9px -7px;
}
.icon-order {
background-position: -45px -7px;
}
.icon-product {
background-position: -81px -8px;
}
.icon-customer {
background-position: -117px -8px;
}
.icon-marketing {
background-position: -154px -8px;
}
.icon-content {
background-position: -187px -8px;
}
.icon-stats {
background-position: -224px -8px;
}
.icon-system {
background-position: -262px -8px;
}
.icon-settings {
background-position: -297px -8px;
}
.icon-support {
background-position: -332px -7px;
}
.icon-account {
background-position: -367px -9px;
}
.icon-logout {
background-position: -9px -45px;
}
.icon-close {
position: absolute;
right: 10px;
}
.icon-investor_relation {
background-position: -9px -126px;
}
.icon-job {
background-position: -52px -126px;
}
.icon-pcbuilder {
background-position: -99px -126px;
}
.icon-payinstall {
background-position: -142px -125px;
}
.icon-distributor {
background-position: -187px -126px;
}
}
.admin-menu {
color: #fff;
z-index: 1;
.item {
display: flex;
align-items: center;
transition: 0.3s all;
position: relative;
&:hover {
background: #81b5e4;
.icons {
filter: brightness(100);
}
.sub-menu {
left: calc(100% + 8px);
opacity: 1;
visibility: inherit;
}
&::before {
display: block;
}
}
&.bottom {
.sub-menu {
top: unset;
}
&:hover {
.sub-menu {
top: auto;
bottom: 0;
}
}
}
&::before {
position: absolute;
content: "";
width: 50px;
right: -20px;
height: 41px;
display: none;
}
&:nth-child(n + 13) {
.sub-menu {
top: unset;
}
}
}
.sub-menu {
padding: 10px 22px 10px 15px;
border-radius: 6px;
background: #004e99;
box-shadow: 0px 2px 2px 0px rgba(0, 0, 0, 0.25);
white-space: nowrap;
min-width: 150px;
z-index: -1;
transition: 0.2s all;
position: absolute;
left: calc(100% + 30px);
top: 0;
opacity: 0;
visibility: hidden;
min-width: 200px;
a {
display: block;
margin-bottom: 12px;
line-height: 18px;
position: relative;
&:hover {
text-decoration: underline;
}
&.current {
font-weight: 700;
text-decoration: none;
}
&::before {
content: "";
width: 8px;
height: 8px;
border-radius: 50%;
background: #79b0e2;
position: absolute;
top: 6px;
left: -16px;
}
&:last-child {
margin: 0;
}
}
}
.menu-list {
padding-left: 16px;
margin-top: 10px;
position: relative;
max-height: 350px;
overflow-y: auto;
padding-right: 10px;
margin-right: -12px;
&::before {
content: "";
width: 1.5px;
background: #79b0e2;
position: absolute;
left: 3px;
top: 7px;
bottom: 7px;
}
&::-webkit-scrollbar-thumb {
background: #fff;
}
&::-webkit-scrollbar-track {
background: transparent;
}
}
.icons {
width: 50px;
height: 40px;
}
.icon-home {
background-position: 7px 3px;
}
.icon-sell {
background-position: -29px 3px;
}
.icon-product {
background-position: -66px 3px;
}
.icon-user {
background-position: -103px 3px;
}
.icon-marketing {
background-position: -139px 3px;
}
.icon-content {
background-position: -172px 3px;
}
.icon-stats {
background-position: -208px 3px;
}
.icon-system {
background-position: -247px 3px;
}
.icon-settings {
background-position: -282px 2px;
margin-left: -1px;
}
.icon-support {
background-position: -318px 3px;
}
.icon-account {
background-position: -354px 2px;
}
.icon-logout {
background-position: 6px -34px;
}
.icon-investor_relation {
background-position: 6px -115px;
}
.icon-job {
background-position: -37px -114px;
}
.icon-pcbuilder {
background-position: -83px -114px;
}
.icon-payinstall {
background-position: -128px -114px;
}
.icon-distributor {
background-position: -173px -114px;
}
.logo {
position: relative;
}
.icon-close {
position: absolute;
top: 0;
right: -30px;
height: 30px;
width: 30px;
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;
}
}
}
.admin-content-container {
width: calc(100% - 50px);
&.show-large-menu {
width: 82%;
}
.note-list {
min-width: 144px;
a {
display: block;
padding: 0 10px;
line-height: 35px;
transition: 0.2s all;
&:hover {
background: #f5f7ff;
color: #0041e8;
font-weight: 600;
}
}
}
.content-holder {
padding: 16px 0 16px 16px;
}
}
.table-fixed {
text-align: center;
td {
padding: 13px 8px;
border: 1px solid #ececec;
}
tbody {
td {
padding: 5px 8px;
&:nth-child(2),
&:nth-child(3) {
text-align: left;
}
&:nth-child(2) {
color: #0041e8;
}
}
}
}
.admin-home-tab {
overflow: auto;
a {
color: #a0a8b5;
padding: 9px 7.7px;
text-align: center;
border-right: 1px solid #dde1eb;
white-space: nowrap;
&:last-child {
border: 0;
}
&:hover,
&.current {
background: #0041e8;
color: #fff;
}
}
}
.home-report-holder {
display: none;
table {
width: 100%;
line-height: 20px;
text-align: center;
}
thead {
background: #f6f6f6;
font-weight: 500;
}
td {
border: 1px solid #ececec;
padding: 14px 5px;
a {
display: block;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
&:nth-child(2) {
text-align: left;
}
}
}
.home-todo-list {
td {
padding: 0 4px;
color: #000 !important;
&:nth-child(1),
&:nth-child(3),
&:nth-child(4) {
white-space: nowrap;
}
}
}
.product-list {
th {
padding: 10px;
border: 1px solid #ececec;
background: #f6f6f6;
}
td {
padding: 8px;
border: 1px solid #ececec;
}
}
.product-sale-info {
td {
padding: 14px;
border: 1px solid #ececec;
}
}
input[type="radio"] {
position: absolute;
&:before {
content: "";
background: #fff;
border-radius: 100%;
border: 1.5px solid #0041e8;
display: inline-block;
width: 20px;
height: 20px;
position: relative;
top: -0.2em;
margin-right: 1em;
vertical-align: top;
cursor: pointer;
text-align: center;
transition: all 250ms ease;
}
&:checked {
&:before {
background-color: #0041e8;
box-shadow: inset 0 0 0 4px #fff;
}
}
&:focus {
&:before {
outline: none;
border-color: #0041e8;
}
}
}
.table-seo {
td {
padding: 14px;
border: 1px solid #ececec;
}
}
.product-specifications {
td {
padding: 14px;
border: 1px solid #ececec;
}
}
.table-config {
th {
padding: 10px 5px;
background: #f6f6f6;
border: 1px solid #ececec;
}
td {
padding: 10px;
border: 1px solid #ececec;
}
}
.accessory {
th {
padding: 10px 5px;
background: #f6f6f6;
border: 1px solid #ececec;
}
td {
padding: 10px 6px;
border: 1px solid #ececec;
}
}
.icons {
width: 30px;
height: 30px;
display: block;
&.icon-search {
background-position: -71px -40px;
}
&.header-support {
height: 33px;
background-position: -116px -42px;
}
&.icon-notification {
height: 33px;
background-position: -165px -42px;
}
&.icon-cart {
background-position: -210px -36px;
}
&.icon-contact {
background-position: -246px -36px;
}
&.icon-pay {
background-position: -284px -36px;
}
&.icon-installment {
background-position: -318px -36px;
}
&.icon-increase {
width: 20px;
height: 20px;
background-position: -6px -85px;
}
&.icon-reduce {
width: 20px;
height: 20px;
background-position: -43px -83px;
}
&.icon-edit {
width: 16px;
height: 16px;
background-position: -114px -89px;
}
&.icon-view {
width: 16px;
height: 16px;
background-position: -187px -88px;
}
&.icon-remove {
width: 16px;
height: 16px;
background-position: -151px -88px;
}
&.icon-hide {
width: 16px;
height: 16px;
background-position: -224px -88px;
}
}
.admin-header-container {
.menu-hide {
margin-left: 30px;
}
}
/* Bán hàng */
.order-page {
.order-page-title {
a {
margin: 0 2px 0 0;
border-radius: 4px 4px 0px 0px;
background: #f6f6f6;
color: #919699;
font-weight: 500;
padding: 0 24px;
&:hover,
&.current,
&.active {
background: #0041e8;
color: #fff;
}
}
}
.order-page-table {
text-align: center;
thead {
td {
padding: 8px;
}
}
td {
padding: 14px 8px;
&:nth-child(4),
&:nth-child(10) {
text-align: left;
}
}
.icons {
width: 30px;
height: 30px;
border: 1px solid #ececec;
background-color: #f9f9f9;
border-radius: 5px;
}
.icon-edit {
border: 1px solid #0041e8;
background-color: #f5f7ff;
background-position: -108px -82px;
margin-right: 6px;
}
.icon-delete {
background-position: -145px -82px;
}
}
}
.order-page-table {
line-height: 20px;
a {
color: #0041e8;
&:hover {
text-decoration: underline;
}
}
table {
width: 100%;
}
thead {
background: #f6f6f6;
font-weight: 600;
text-align: center;
td {
padding: 8px;
}
}
td {
padding: 10px;
border: 1px solid #ececec;
text-transform: capitalize;
* {
display: inline-block;
}
}
select {
border-radius: 4px;
border: 1px solid #d8d8d8;
box-shadow: 0px 2px 4px 0px rgba(0, 0, 0, 0.12);
height: 32px;
display: block;
width: 100%;
padding: 0 0 0 5px;
}
}
.is-close-btn {
background: #ececec !important;
border-radius: 50%;
top: 10px !important;
right: 10px !important;
color: #9e9e9e !important;
}
.paging {
margin: 30px 0;
display: flex;
align-items: center;
justify-content: center;
line-height: 28px;
a {
margin: 0 3px;
min-width: 28px;
text-align: center;
font-size: 16px;
padding: 0 10px;
border-radius: 4px;
&:hover,
&.current,
&.active {
background: #0041e8;
color: #fff;
}
}
}
.global-breadcrumb-container {
padding: 16px;
line-height: 20px;
a {
display: inline-block;
&:hover {
color: #0041e8;
}
&::after {
content: "\f054";
font-family: Fontawesome;
font-size: 10px;
margin: 0 5px;
}
&:last-child {
color: #0041e8;
&::after {
content: none;
}
}
}
}

View File

@@ -0,0 +1,2 @@
@import "tailwindcss";
@plugin "daisyui";

File diff suppressed because one or more lines are too long

32
assets/typescript/main.ts Normal file
View File

@@ -0,0 +1,32 @@
"use strict";
interface AdminFunctions {
addProductToCategory(productId: string): void;
markProductAsHot(productId: string): void;
}
const AdminFunctions: AdminFunctions = (() => {
function addProductToCategory(productId: string): void {
const statusElement = $('#status_' + productId);
statusElement.html('<span class="loading loading-bars loading-sm"></span><span class="ml-[3px]">Processing...</span>');
setTimeout(() => {
statusElement.html('');
}, 1000);
}
function markProductAsHot(productId: string): void {
const statusElement = $('#js-status-hottype-' + productId);
statusElement.html('<span class="loading loading-bars loading-sm"></span><span class="ml-[3px]">Processing...</span>');
setTimeout(() => {
statusElement.html('');
}, 1000);
}
return {
addProductToCategory,
markProductAsHot
};
})();
export default AdminFunctions;

View File

@@ -0,0 +1 @@
<?php

View File

@@ -0,0 +1 @@
<?php

View File

@@ -0,0 +1 @@
<?php

View File

@@ -0,0 +1 @@
<?php

View File

@@ -0,0 +1 @@
<?php

1
data/admin/login_log.php Normal file
View File

@@ -0,0 +1 @@
<?php

View File

@@ -0,0 +1 @@
<?php

View File

@@ -0,0 +1 @@
<?php

View File

@@ -0,0 +1 @@
<?php

View File

@@ -0,0 +1 @@
<?php

View File

@@ -0,0 +1 @@
<?php

View File

@@ -0,0 +1 @@
<?php

View File

@@ -0,0 +1 @@
<?php

View File

@@ -0,0 +1 @@
<?php

3
data/customer/home.php Normal file
View File

@@ -0,0 +1,3 @@
<?php

1
data/customer/review.php Normal file
View File

@@ -0,0 +1 @@
<?php

View File

@@ -0,0 +1 @@
<?php

View File

@@ -0,0 +1 @@
<?php

1
data/job/home.php Normal file
View File

@@ -0,0 +1 @@
<?php

1
data/media/category.php Normal file
View File

@@ -0,0 +1 @@
<?php

1
data/media/upload.php Normal file
View File

@@ -0,0 +1 @@
<?php

View File

@@ -24,18 +24,35 @@ function _get_menu_list() {
$item_menu = include_once __DIR__."/menu_item/".$item.".php";
// skip not enabled
if(!$item_menu['enable']) continue;
if(!$item_menu['enable']) {
continue;
}
// skip not enabled children
$item_menu_children_enabled = array_filter($item_menu['menu'], function ($menu_child) { return $menu_child['enable'];});
if(!sizeof($item_menu_children_enabled)) continue;
if(!sizeof($item_menu_children_enabled)) {
continue;
}
// reset menu for $item_menu
$item_menu['menu'] = $item_menu_children_enabled;
$menu_list[$item] = $item_menu;
$menu_list[] = [
'id' => $item,
'name' => $item_menu['name'],
'icon_class' => $item_menu['icon_class'] ?? '',
'url' => $item_menu['url'],
'menu' => array_map(function ($menu_child) {
return [
//'module' => $menu_child['module'],
//'view' => $menu_child['view'],
'id' => $menu_child['id'],
'name' => $menu_child['name'],
'icon_class' => $menu_child['icon_class'] ?? '',
'url' => $menu_child['url'],
];
}, $item_menu_children_enabled),
];
}
//debug_var($menu_list);
return $menu_list;
}

View File

@@ -3,6 +3,7 @@
return array(
'enable' => true ,
"name" => "Nội dung",
"icon_class" => 'users',
"url" => "",
"menu" => array(
@@ -12,6 +13,7 @@ return array(
'view' => 'home',
'id' => 'article/home',
'name' => 'Tin bài',
"icon_class" => '',
'url' => '/admin/article',
),
@@ -21,6 +23,7 @@ return array(
'view' => 'home',
'id' => 'media/home',
'name' => 'Thư viện file Media',
"icon_class" => '',
'url' => '/admin/media',
),
@@ -30,6 +33,7 @@ return array(
'view' => 'home',
'id' => 'page/home',
'name' => 'Nội dung cố định',
"icon_class" => '',
'url' => '/admin/page',
),
@@ -39,6 +43,7 @@ return array(
'view' => 'home',
'id' => 'album/home',
'name' => 'Thư viện ảnh',
"icon_class" => '',
'url' => '/admin/album',
),
@@ -48,6 +53,7 @@ return array(
'view' => 'home',
'id' => 'video/home',
'name' => 'Video',
"icon_class" => '',
'url' => '/admin/video',
),
),

View File

@@ -2,8 +2,8 @@
return array(
'enable' => true ,
"name" => "Khách hàng",
"icon_class" => 'user',
"url" => "",
"menu" => array(
array(
@@ -12,6 +12,7 @@ return array(
'view' => 'home',
'id' => 'customer/home',
'name' => 'Danh sách khách hàng',
"icon_class" => '',
'url' => '/admin/customer',
),
@@ -21,6 +22,7 @@ return array(
'view' => 'customer-group',
'id' => 'customer/customer-group',
'name' => 'Nhóm khách hàng',
"icon_class" => '',
'url' => '/admin/customer/customer-group',
),*/
@@ -30,6 +32,7 @@ return array(
'view' => 'customer-contact',
'id' => 'customer/customer-contact',
'name' => 'Khách hàng liên hệ',
"icon_class" => '',
'url' => '/admin/customer/customer-contact',
),
@@ -39,6 +42,7 @@ return array(
'view' => 'comment',
'id' => 'customer/comment',
'name' => 'Tổng hợp trao đổi',
"icon_class" => '',
'url' => '/admin/customer/comment',
),
@@ -48,6 +52,7 @@ return array(
'view' => 'review',
'id' => 'customer/review',
'name' => 'Tổng hợp Đánh giá',
"icon_class" => '',
'url' => '/admin/customer/review',
),
@@ -57,6 +62,7 @@ return array(
'view' => 'customer-review',
'id' => 'customer/customer-review',
'name' => 'Khách hàng góp ý',
"icon_class" => '',
'url' => '/admin/customer/customer-review',
),
@@ -66,6 +72,7 @@ return array(
'view' => 'customer-newsletter',
'id' => 'customer/customer-newsletter',
'name' => 'Khách hàng nhận bản tin',
"icon_class" => '',
'url' => '/admin/customer/customer-newsletter',
),

View File

@@ -3,6 +3,7 @@
return array(
'enable' => true ,
"name" => "Đại lý",
"icon_class" => 'shopping-bag',
"url" => "",
"menu" => array(
0 => array(
@@ -11,6 +12,7 @@ return array(
'view' => 'home',
'id' => 'distributor/home',
'name' => 'Danh sách',
"icon_class" => '',
'url' => '/admin/distributor',
),
),

View File

@@ -3,6 +3,7 @@
return array(
'enable' => true ,
"name" => "Tuyển dụng",
"icon_class" => 'megaphone',
"url" => "",
"menu" => array(
array(

View File

@@ -3,23 +3,26 @@
return array(
'enable' => true ,
"name" => "Marketing",
"icon_class" => 'newspaper',
"url" => "",
"menu" => array(
array(
'enable' => false ,
'enable' => true ,
'module' => 'marketing',
'view' => 'promotion',
'id' => 'marketing/promotion',
'name' => 'Khuyến mại theo sản phẩm',
"icon_class" => '',
'url' => '/admin/marketing/promotion',
),
array(
'enable' => false ,
'enable' => true ,
'module' => 'marketing',
'view' => 'coupon',
'id' => 'marketing/coupon',
'name' => 'Phiếu giảm giá - Voucher',
"icon_class" => '',
'url' => '/admin/marketing/coupon',
),
@@ -29,6 +32,7 @@ return array(
'view' => 'home',
'id' => 'banner/home',
'name' => 'Danh sách banner',
"icon_class" => '',
'url' => '/admin/banner',
),
@@ -38,7 +42,8 @@ return array(
'view' => 'store-design',
'id' => 'system/store-design',
'name' => 'Banner pop-up',
'url' => '/admin/system/store-design&section=popup',
"icon_class" => '',
'url' => '/admin/system/store-design?section=popup',
),
array(
@@ -47,6 +52,7 @@ return array(
'view' => 'poster-upload',
'id' => 'marketing/poster-upload',
'name' => 'Poster',
"icon_class" => '',
'url' => '/admin/marketing/poster-upload',
),
@@ -56,51 +62,57 @@ return array(
'view' => 'store-design',
'id' => 'system/store-design',
'name' => 'Hình nền website',
'url' => '/admin/system/store-design&section=background',
"icon_class" => '',
'url' => '/admin/system/store-design?section=background',
),*/
/* array(
'enable' => false,
'enable' => true,
'module' => 'email',
'view' => 'home',
'id' => 'email/home',
'name' => 'Email',
"icon_class" => '',
'url' => '/admin/email',
),*/
array(
'enable' => false,
'enable' => true,
'module' => 'url',
'view' => 'meta-list',
'id' => 'url/meta-list',
'name' => 'Sửa thông tin URL',
"icon_class" => '',
'url' => '/admin/url/meta-list',
),
array(
'enable' => false,
'enable' => true,
'module' => 'url',
'view' => 'url-seo',
'id' => 'url/url-seo',
'name' => 'Link SEO',
"icon_class" => '',
'url' => '/admin/url/url-seo',
),
array(
'enable' => false ,
'enable' => true ,
'module' => 'marketing',
'view' => 'feed',
'id' => 'marketing/feed',
'name' => 'Facebook/Google Feed',
"icon_class" => '',
'url' => '/admin/marketing/feed',
),
array(
'enable' => false ,
'enable' => true ,
'module' => 'marketing',
'view' => 'product-offer',
'id' => 'marketing/product-offer',
'name' => 'Cài biểu tượng giảm giá',
"icon_class" => '',
'url' => '/admin/marketing/product-offer',
),
@@ -114,47 +126,52 @@ return array(
),*/
array(
'enable' => false ,
'enable' => true ,
'module' => 'marketing',
'view' => 'program',
'id' => 'marketing/program',
'name' => 'Chương trình khuyến mại',
"icon_class" => '',
'url' => '/admin/marketing/program',
),
array(
'enable' => false ,
'enable' => true ,
'module' => 'deal',
'view' => 'home',
'id' => 'deal/home',
'name' => 'Deal/giờ vàng',
"icon_class" => '',
'url' => '/admin/deal',
),
array(
'enable' => false ,
'enable' => true ,
'module' => 'marketing',
'view' => 'combo-deal',
'id' => 'marketing/combo-deal',
'name' => 'Bán Combo',
"icon_class" => '',
'url' => '/admin/marketing/combo-deal',
),
array(
'enable' => false ,
'enable' => true ,
'module' => 'marketing',
'view' => 'conditional-promotion',
'id' => 'marketing/conditional-promotion',
'name' => 'Khuyến mại BuildPC',
"icon_class" => '',
'url' => '/admin/marketing/conditional-promotion',
),
array(
'enable' => false ,
'enable' => true ,
'module' => 'marketing',
'view' => 'live-support-per-category',
'id' => 'marketing/live-support-per-category',
'name' => 'Hỗ trợ theo từng danh mục',
"icon_class" => '',
'url' => '/admin/marketing/live-support-per-category',
),

View File

@@ -3,6 +3,7 @@
return array(
'enable' => true ,
"name" => "Bán hàng",
"icon_class" => "store",
"url" => "",
"menu" => array(
array(
@@ -11,15 +12,17 @@ return array(
'view' => 'home',
'id' => 'order/home',
'name' => 'Danh sách đơn hàng',
"icon_class" => '',
'url' => '/admin/order', // &list=new
),
array(
'enable' => false ,
'enable' => true ,
'module' => 'order',
'view' => 'bargain',
'id' => 'order/bargain',
'name' => 'Mặc cả giá',
"icon_class" => '',
'url' => '/admin/order/bargain',
),
@@ -29,16 +32,17 @@ return array(
'view' => 'wait-order',
'id' => 'order/wait-order',
'name' => 'Chờ mua sản phẩm',
"icon_class" => '',
'url' => '/admin/order/wait-order',
),
array(
'enable' => true ,
'module' => 'order',
'view' => 'paygate',
'id' => 'order/paygate',
'name' => 'Thanh toán qua cổng dịch vụ',
"icon_class" => '',
'url' => '/admin/order/paygate',
),
@@ -48,6 +52,7 @@ return array(
'view' => 'price-quote',
'id' => 'order/price-quote',
'name' => 'Lập báo giá',
"icon_class" => '',
'url' => '/admin/order/price-quote',
),
),

View File

@@ -3,6 +3,7 @@
return array(
'enable' => true ,
"name" => "Trả góp",
"icon_class" => "handshake",
"url" => "",
"menu" => array(
array(

View File

@@ -2,8 +2,8 @@
return array(
'enable' => true ,
"name" => "Xây dựng máy tính",
"icon_class" => 'monitor-smartphone',
"url" => "",
"menu" => array(
array(

View File

@@ -5,6 +5,7 @@
return array(
'enable' => true ,
"name" => "Sản phẩm",
"icon_class" => 'package',
"url" => "",
"menu" => array(
array(
@@ -13,6 +14,7 @@ return array(
'view' => 'home',
'id' => 'product/home',
'name' => 'Sản phẩm',
"icon_class" => '',
'url' => '/admin/product',
),
@@ -49,6 +51,7 @@ return array(
'view' => 'category',
'id' => 'product/category',
'name' => 'Danh mục',
"icon_class" => '',
'url' => '/admin/product/category',
),
array(
@@ -57,7 +60,8 @@ return array(
'view' => 'home',
'id' => 'brand/home',
'name' => 'Thương hiệu',
'url' => '/admin/brand',
"icon_class" => '',
'url' => '/admin/product/brand',
),
array(
'enable' => true ,
@@ -65,6 +69,7 @@ return array(
'view' => 'attribute',
'id' => 'product/attribute',
'name' => 'Thuộc tính ',
"icon_class" => '',
'url' => '/admin/product/attribute',
),
array(
@@ -73,6 +78,7 @@ return array(
'view' => 'collection',
'id' => 'product/collection',
'name' => 'Bộ sưu tập',
"icon_class" => '',
'url' => '/admin/product/collection',
),
@@ -82,6 +88,7 @@ return array(
'view' => 'product-wait-list',
'id' => 'product/product-wait-list',
'name' => 'Chờ mua sản phẩm',
"icon_class" => '',
'url' => '/admin/product/product-wait-list',
),
@@ -91,7 +98,8 @@ return array(
'view' => 'home',
'id' => 'addon/home',
'name' => 'SP/Dịch vụ mua kèm',
'url' => '/admin/addon',
"icon_class" => '',
'url' => '/admin/product/addon',
),
array(
@@ -100,7 +108,8 @@ return array(
'view' => 'home',
'id' => 'config_group/home',
'name' => 'Nhóm cấu hình',
'url' => '/admin/config_group',
"icon_class" => '',
'url' => '/admin/product/config_group',
),
/*array(
@@ -109,6 +118,7 @@ return array(
'view' => 'home',
'id' => 'supplier/home',
'name' => 'Nhà cung cấp',
"icon_class" => '',
'url' => '/admin/supplier',
),*/
@@ -118,6 +128,7 @@ return array(
'view' => 'set-promotion-price',
'id' => 'product/set-promotion-price',
'name' => 'Cài đặt giá khuyến mại',
"icon_class" => '',
'url' => '/admin/product/set-promotion-price',
),*/
@@ -127,6 +138,7 @@ return array(
'view' => 'product-per-customer-group',
'id' => 'product/product-per-customer-group',
'name' => 'Giá theo nhóm khách hàng',
"icon_class" => '',
'url' => '/admin/product/product-per-customer-group',
),*/
@@ -136,6 +148,7 @@ return array(
'view' => 'set',
'id' => 'product/set',
'name' => 'Set sản phẩm',
"icon_class" => '',
'url' => '/admin/product/set',
),
@@ -145,7 +158,18 @@ return array(
'view' => 'spec-group',
'id' => 'product/spec-group',
'name' => 'Nhóm thông số kỹ thuật',
"icon_class" => '',
'url' => '/admin/product/spec-group',
),
array(
'enable' => true ,
'module' => 'product',
'view' => 'list-competitor',
'id' => 'product/list-competitor',
'name' => 'So sánh giá đối thủ',
"icon_class" => '',
'url' => '/admin/product/list-competitor',
),
),
);

View File

@@ -4,6 +4,7 @@ return array(
'enable' => true ,
"name" => "Thống kê",
"icon_class" => 'pie-chart',
"url" => "",
"menu" => array(
array(
@@ -12,6 +13,7 @@ return array(
'view' => 'visitor',
'id' => 'report/visitor',
'name' => 'Thống kê truy cập',
"icon_class" => '',
'url' => '/admin/report/visitor',
),
@@ -21,6 +23,7 @@ return array(
'view' => 'customer',
'id' => 'report/customer',
'name' => 'Thống kê khách hàng',
"icon_class" => '',
'url' => '/admin/report/customer',
),
@@ -30,6 +33,7 @@ return array(
'view' => 'order',
'id' => 'report/order',
'name' => 'Thống kê đơn hàng',
"icon_class" => '',
'url' => '/admin/report/order',
),
@@ -39,6 +43,7 @@ return array(
'view' => 'product-buy',
'id' => 'report/product-buy',
'name' => 'Sản phẩm mua nhiều',
"icon_class" => '',
'url' => '/admin/report/product-buy',
),
@@ -48,6 +53,7 @@ return array(
'view' => 'product-visit',
'id' => 'report/product-visit',
'name' => 'Sản phẩm xem nhiều',
"icon_class" => '',
'url' => '/admin/report/product-visit',
),
@@ -57,6 +63,7 @@ return array(
'view' => 'referer',
'id' => 'report/referer',
'name' => 'Web giới thiệu',
"icon_class" => '',
'url' => '/admin/report/referer',
),
@@ -66,6 +73,7 @@ return array(
'view' => 'search',
'id' => 'report/search',
'name' => 'Từ khóa tìm kiếm',
"icon_class" => '',
'url' => '/admin/report/search',
),
@@ -75,6 +83,7 @@ return array(
'view' => 'error-page',
'id' => '',
'name' => 'Lỗi website',
"icon_class" => '',
'url' => '/admin/report/error-page',
),
),

View File

@@ -3,6 +3,7 @@
return array(
'enable' => true ,
"name" => "Hệ thống",
"icon_class" => 'settings',
"url" => "",
"menu" => array(
array(
@@ -11,6 +12,7 @@ return array(
'view' => 'settings',
'id' => 'system/settings',
'name' => 'Cài đặt chung',
"icon_class" => '',
'url' => '/admin/system/settings',
),
@@ -20,6 +22,7 @@ return array(
'view' => 'home',
'id' => 'template/home',
'name' => 'Sửa file template',
"icon_class" => '',
'url' => '/admin/template',
),
@@ -29,6 +32,7 @@ return array(
'view' => 'home',
'id' => '',
'name' => 'Quản trị viên',
"icon_class" => '',
'url' => '/admin/admin',
),
@@ -38,24 +42,27 @@ return array(
'view' => 'store-address',
'id' => '',
'name' => 'Địa chỉ cửa hàng',
"icon_class" => '',
'url' => '/admin/system/store-address',
),
/*4 => array(
4 => array(
'enable' => true ,
'module' => 'system',
'view' => 'domain',
'id' => 'system/domain',
'name' => 'Cài đặt tên miền',
"icon_class" => '',
'url' => '/admin/system/domain',
),*/
),
/*array(
array(
'enable' => true ,
'module' => 'system',
'view' => 'ban-ip',
'id' => '',
'name' => 'Chặn IP truy cập website',
"icon_class" => '',
'url' => '/admin/system/ban-ip',
),
@@ -65,10 +72,11 @@ return array(
'view' => 'change-info',
'id' => '',
'name' => 'Thông tin website',
"icon_class" => '',
'url' => '/admin/system/change-info',
),*/
),
/*
array(
'enable' => true ,
@@ -76,53 +84,59 @@ return array(
'view' => 'province-list',
'id' => '',
'name' => 'Cài đặt tỉnh thành',
"icon_class" => '',
'url' => '/admin/system/province-list',
),*/
),
/*9 => array(
9 => array(
'enable' => true ,
'module' => 'system',
'view' => 'home',
'id' => '',
'name' => 'Tình trạng đơn hàng',
"icon_class" => '',
'url' => '/admin/system/order-status',
),*/
),
/*array(
array(
'enable' => true ,
'module' => 'online_support',
'view' => 'home',
'id' => '',
'name' => 'Hỗ trợ bán hàng',
"icon_class" => '',
'url' => '/admin/online_support',
),*/
),
/*array(
array(
'enable' => true ,
'module' => 'system',
'view' => 'country',
'id' => '',
'name' => 'Quốc gia',
"icon_class" => '',
'url' => '/admin/system/country',
),*/
),
/*12 => array(
12 => array(
'enable' => true ,
'module' => 'report_out',
'view' => 'home',
'id' => '',
'name' => 'Cài đặt thông báo ngoài',
"icon_class" => '',
'url' => '/admin/report_out',
),*/
),
/*array(
array(
'enable' => true ,
'module' => 'shipping2',
'view' => 'home',
'id' => '',
'name' => 'Cài đặt phí vận chuyển',
"icon_class" => '',
'url' => '/admin/shipping2',
),*/
),
array(
'enable' => true ,
@@ -130,6 +144,7 @@ return array(
'view' => 'redirect',
'id' => 'url/redirect',
'name' => 'Url Redirect',
"icon_class" => '',
'url' => '/admin/url/redirect',
),
@@ -139,17 +154,10 @@ return array(
'view' => 'home',
'id' => 'tool/home',
'name' => 'Công cụ',
"icon_class" => '',
'url' => '/admin/tool',
),
/*array(
'enable' => true ,
'module' => 'civi',
'view' => 'home',
'id' => '',
'name' => 'Civi Affiliate',
'url' => '/admin/civi',
),
array(
'enable' => true ,
@@ -157,6 +165,7 @@ return array(
'view' => 'home',
'id' => 'menu/home',
'name' => 'Quản trị menu',
"icon_class" => '',
'url' => '/admin/menu',
),
@@ -166,8 +175,9 @@ return array(
'view' => 'keyword-suggest',
'id' => 'system/keyword-suggest',
'name' => 'Từ khóa gợi ý',
"icon_class" => '',
'url' => '/admin/system/keyword-suggest',
),*/
),
array(
'enable' => true ,
@@ -175,6 +185,7 @@ return array(
'view' => 'home',
'id' => 'tag/home',
'name' => 'Quản trị Tag',
"icon_class" => '',
'url' => '/admin/tag',
),
),

View File

@@ -4,6 +4,7 @@ return array(
'enable' => true ,
"name" => "Bảo hành sản phẩm",
"icon_class" => '',
"url" => "",
"menu" => array(
/*0 => array(

View File

@@ -1,17 +1,55 @@
<?php
return _get_order_list();
// helpers
function _get_order_list() {
$main_items = [
'detail_new',
];
use Hura8\Components\Order\AdminController\AOrderController;
use Hura8\Components\Order\Controller\OrderStatus;
use Hura8\System\Paging;
$menu_list = [];
foreach ($main_items as $item) {
$menu_list[$item] = include_once __DIR__."/".$item.".php";
}
$numPerPage = 30;
return $menu_list;
}
$conditions = array(
'orderCode' => getRequest('orderCode', ''),
'q' => getRequest('q', ''),
//'coupon' => getRequest('coupon', ''),
'cus_id' => getRequest('cus_id', ''),
'province' => getRequest('province', ''),
//'district' => getRequest('district', ''),
'folder' => getRequest('folder', ''),
'view_status' => getRequest('view_status', ''),
'update_by' => getRequest('update_by', ''),
//'shipping_status' => getRequest('shipping_status', ''),
'assign_to' => getRequest('assign_to', ''),
'from_date' => getRequest('from_date', ''),
'to_date' => getRequest('to_date', ''),
//'from_hour' => getRequest('from_hour', ''),
//'to_hour' => getRequest('to_hour', ''),
'payment' => getRequest('payment', ''),
'fullfillment' => getRequest('fullfillment', ''),
'status' => getRequest('status', ''),
//'excluded_ids' => getRequest('', ''),
//'included_ids' => getRequest('', ''),
'list' => getRequest('list', ''),
'numPerPage' => $numPerPage,
'page' => getPageId(),
);
$objAOrderController = new AOrderController();
$totalResults = $objAOrderController->getTotal($conditions);
$item_list = $objAOrderController->getList($conditions);
//debug_var($item_list);
list($page_collection, $tb_page, $total_pages) = Paging::paging_template($totalResults, $numPerPage);
return [
"total" => $totalResults,
"item_list" => $item_list,
"pagination" => [
'collection' => $page_collection,
'html' => $tb_page,
'total_pages' => $total_pages,
],
"order_status_list" => OrderStatus::ORDER_STATUS ,
"payment_status_list" => OrderStatus::PAYMENT_STATUS,
"fullfillment_status_list" => OrderStatus::FULFILLMENT_STATUS ,
];

1
data/page/category.php Normal file
View File

@@ -0,0 +1 @@
<?php

View File

@@ -0,0 +1 @@
<?php

1
data/page/form.php Normal file
View File

@@ -0,0 +1 @@
<?php

1
data/page/home.php Normal file
View File

@@ -0,0 +1 @@
<?php

View File

@@ -0,0 +1 @@
<?php

View File

@@ -0,0 +1 @@
<?php

View File

@@ -0,0 +1 @@
<?php

View File

@@ -0,0 +1 @@
<?php

1
data/payinstall/home.php Normal file
View File

@@ -0,0 +1 @@
<?php

View File

@@ -0,0 +1 @@
<?php

View File

@@ -0,0 +1 @@
<?php

View File

@@ -0,0 +1 @@
<?php

1
data/pcbuilder/home.php Normal file
View File

@@ -0,0 +1 @@
<?php

View File

@@ -0,0 +1 @@
<?php

1
data/product/addon.php Normal file
View File

@@ -0,0 +1 @@
<?php

View File

@@ -0,0 +1 @@
<?php

View File

@@ -0,0 +1 @@
<?php

View File

@@ -0,0 +1 @@
<?php

1
data/product/brand.php Normal file
View File

@@ -0,0 +1 @@
<?php

View File

@@ -0,0 +1 @@
<?php

108
data/product/category.php Normal file
View File

@@ -0,0 +1,108 @@
<?php
use Hura8\Components\Product\AdminController\AProductCategoryController;
$objAProductCategoryController = new AProductCategoryController();
$category_collection = $objAProductCategoryController->getAllParent();
return [
'category_list' => get_category_list(0, getRequest("id"), $level=1, $prefix="", $category_collection )
];
function get_category_list($parentId=0, $currentCat="",$level=1, $prefix="", $category_collection = array()){
$categoryTree = "";
$extra_space = "";
for($i = 1; $i < $level; $i++){
$extra_space .= "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;";
}
$stt = 0;
if(isset($category_collection[$parentId])) {
foreach($category_collection[$parentId] as $index => $cat_info){
$cat_id = $cat_info['id'];
$stt ++;
$imgUrl = (strlen($cat_info["thumbnail"]) > 2) ? " <img src=\"".$cat_info["thumbnail"]."\" style=\"max-width:30px; max-height:30px;\" />" : "";
if($cat_info["status"]) $status = "<a href=\"javascript:update_status(".$cat_id.",'off')\" class='btn btn-soft btn-xs btn-outline btn-square'><i data-lucide='eye-off' class='size-3'></i></a>";
else $status = "<a href=\"javascript:update_status(".$cat_id.",'on')\" class='btn btn-soft btn-xs btn-outline btn-square'><i data-lucide='eye' class='size-3'></i></a>";
$edit_link ="/admin/product/category-form?id=".$cat_id;
$hide_this = ($parentId > 0) ? "style='display: none;'" : '';
$show_category_name = $cat_info["title"];
if(!IS_DEFAULT_LANGUAGE && isset($cat_info["not_translated"]) && $cat_info["not_translated"]) {
$show_category_name = "<span style='color: red'>[Chưa dịch]</span> ".$cat_info["title"];
}
if($cat_info['is_parent']) {
$show_category_name = "<a href=\"javascript:;\" class='link-active' onclick=\"RowExpand.open_child('parent_".$cat_id."')\">".$show_category_name."</a>";
}
$categoryTree .= "
<tr id='row_".$cat_id."' class='parent_".$parentId." row' ". $hide_this ."
onmouseover=\"this.className='row-hover parent_".$parentId."'\" onmouseout=\"this.className='parent_".$parentId."'\">
<td>
<a class='link-active' name='cat_".$cat_id."'></a>
". $extra_space . $prefix . $stt.". ". $show_category_name . $imgUrl."
</td>
<td>
<a href='".$cat_info['request_path']."' class='link-active' title='Mở tại website' target='_blank'>Xem trang</a>
</td>
<td>".$cat_id."</td>
<td class='whitespace-nowrap'>413787</td>
<td><a class='link-active' href='/admin/product?category=".$cat_id."'>1292</a></td>
<td>
<input class='input' type=text id=order_".$cat_id." value='".$cat_info["ordering"]."' size=2 onchange=\"update_order(".$cat_id.",this.value)\" />
<span class='status-ordering-".$cat_id."'></span>
</td>
<td class='whitespace-nowrap'>
SP + Danh mục con
</td>
";
if(IS_DEFAULT_LANGUAGE) {
$categoryTree .= "
<td>
<a href='/admin/product/category-attribute?id=".$cat_id."&popup=1' class='pop-up'>Tổng</a> (".$cat_info['attribute_count'].")
</td>
<td>
<div class='list-btn flex items-center gap-3'>
<a href=\"".$edit_link."\" class='btn btn-soft btn-xs btn-square btn-outline btn-view'><i data-lucide='pencil' class='size-3'></i></a>
<a class='btn btn-soft btn-xs btn-square btn-outline btn-view' href='javascript:set_category_feature(.$cat_id.,'off')'><i data-lucide='crown' class='size-3'></i></a>
<span id=status-".$cat_id.">".$status."</span>
<span class='status-delete-".$cat_id."'><a href=\"javascript:deleteThis(".$cat_id.")\" class='btn btn-soft btn-xs btn-square btn-error btn-outline '><i data-lucide='trash-2' class='size-3'></i></a></span>
</div>
</td>
";
}else{
$categoryTree .= "
<td>
<a href=\"".$edit_link."\"><i data-lucide='pencil' class='size-3'></i></a>
</td>
";
}
$categoryTree .= "
</tr>
";
if($cat_info["is_parent"]) $categoryTree .= get_category_list($cat_id, $currentCat, $level + 1, $prefix . $stt.".", $category_collection);
}
}
return $categoryTree;
}

View File

@@ -0,0 +1,18 @@
<?php
use Hura8\Components\Product\AdminController\AProductCategoryController;
$objAProductCategoryController = new AProductCategoryController();
$id = (int) getRequest("id");
$item_info = ($id > 0) ? $objAProductCategoryController->getFullInfo($id) : null;
if(!$item_info) $item_info = $objAProductCategoryController->getEmptyInfo([]);
return [
'item_info' => $item_info,
'categoryDropBox' => $objAProductCategoryController->getDropBox( $item_info['parent_id'], 0, 1),
'update_status' => getRequest("us"),
];

View File

@@ -0,0 +1 @@
<?php

View File

@@ -0,0 +1 @@
<?php

View File

@@ -0,0 +1 @@
<?php

View File

@@ -0,0 +1 @@
<?php

View File

@@ -0,0 +1 @@
<?php

View File

@@ -0,0 +1 @@
<?php

View File

@@ -33,4 +33,196 @@ return [
'html' => $tb_page,
'total_pages' => $total_pages,
],
"list_category" => [
[
'id' => 1,
'title' => 'Màn hình máy tính',
'url' => '/admin/product?category=9',
'parentId' => 0,
'isParent' => 1,
'children' => [
[
'id' => 10,
'title' => 'Màn hình theo khoảng giá',
'url' => '/admin/product?category=148',
'parentId' => 1,
'isParent' => 0,
'totalProduct' => 0,
'children' => [
]
],
[
'id' => 11,
'title' => 'Màn Hình Theo Kích Thước',
'url' => '/admin/product?category=54',
'parentId' => 1,
'isParent' => 0,
'totalProduct' => 0,
'children' => [
[
'id' => 148,
'title' => '17 inch - 21.5 inch',
'url' => '/admin/product?category=148',
'parentId' => 11,
'isParent' => 0,
'totalProduct' => 5,
],
[
'id' => 66,
'title' => '22 inch - 24 inch',
'url' => '/admin/product?category=66',
'parentId' => 11,
'isParent' => 0,
'totalProduct' => 41,
],
[
'id' => 67,
'title' => '25 inch - 27 inch',
'url' => '/admin/product?category=67',
'parentId' => 11,
'isParent' => 0,
'totalProduct' => 42,
],
[
'id' => 68,
'title' => '28 inch - 32 inch',
'url' => '/admin/product?category=68',
'parentId' => 11,
'isParent' => 0,
'totalProduct' => 11,
]
]
]
]
],
[
'id' => 65,
'title' => 'PC, Workstation',
'url' => '/admin/product?category=65',
'parentId' => 0,
'isParent' => 1,
'children' => []
],
[
'id' => 3,
'title' => 'Gaming Gear',
'url' => '/admin/product?category=3',
'parentId' => 0,
'isParent' => 1,
'children' => []
],[
'id' => 4,
'title' => 'CPU - Bộ Vi Xử Lý',
'url' => '/admin/product?category=4',
'parentId' => 0,
'isParent' => 1,
'children' => []
]
],
"brand_letters" => [
[
'key' => 'A',
'url' => '/ajax/brand.php?action=show-brand-list&letter=A&popup=1',
'total' => 13,
],
[
'key' => 'B',
'url' => '/ajax/brand.php?action=show-brand-list&letter=B&popup=1',
'total' => 2,
],
[
'key' => 'C',
'url' => '/ajax/brand.php?action=show-brand-list&letter=C&popup=1',
'total' => 5,
]
],
"list_brands" => [
'A' => [
[
'id' => 1,
'name' => 'ABS',
'letter' => 'A',
'url' => '/admin/?brand=83&opt=product',
'product' => 1,
],
[
'id' => 2,
'name' => 'ACE GAMING',
'letter' => 'A',
'url' => '/admin/?brand=83&opt=product',
'product' => 6,
],
[
'id' => 3,
'name' => 'ADATA',
'letter' => 'A',
'url' => '/admin/?brand=83&opt=product',
'product' => 15,
]
],
'B' => [
[
'id' => 3,
'name' => 'BE QUIET ',
'letter' => 'B',
'url' => '/admin/?brand=83&opt=product',
'product' => 2,
],
[
'id' => 3,
'name' => 'BENQ',
'letter' => 'B',
'url' => '/admin/?brand=83&opt=product',
'product' => 6,
],
],
'C' => [
[
'id' => 3,
'name' => 'CISCO',
'letter' => 'C',
'url' => '/admin/?brand=83&opt=product',
'product' => 2,
],
[
'id' => 3,
'name' => 'Colorful',
'letter' => 'C',
'url' => '/admin/?brand=83&opt=product',
'product' => 6,
],
[
'id' => 3,
'name' => 'COOLER MASTER',
'letter' => 'C',
'url' => '/admin/?brand=83&opt=product',
'product' => 6,
],
[
'id' => 3,
'name' => 'COOLMOON',
'letter' => 'C',
'url' => '/admin/?brand=83&opt=product',
'product' => 6,
],
[
'id' => 3,
'name' => 'CORSAIR',
'letter' => 'C',
'url' => '/admin/?brand=83&opt=product',
'product' => 6,
],
]
]
];

View File

@@ -0,0 +1 @@
<?php

1
data/product/set.php Normal file
View File

@@ -0,0 +1 @@
<?php

View File

@@ -0,0 +1 @@
<?php

View File

@@ -0,0 +1 @@
<?php

View File

@@ -0,0 +1 @@
<?php

View File

@@ -0,0 +1 @@
<?php

View File

@@ -0,0 +1 @@
<?php

1
data/report/customer.php Normal file
View File

@@ -0,0 +1 @@
<?php

1
data/report/order.php Normal file
View File

@@ -0,0 +1 @@
<?php

Some files were not shown because too many files have changed in this diff Show More