Compare commits
No commits in common. "e6b56e3b40c440c1d0ec064baf76114351678de9" and "3862aa4e2276245947fb854deeb9ba5a6b131745" have entirely different histories.
e6b56e3b40
...
3862aa4e22
@ -2,7 +2,7 @@
|
|||||||
<html lang="en">
|
<html lang="en">
|
||||||
<head>
|
<head>
|
||||||
<meta charset="UTF-8" />
|
<meta charset="UTF-8" />
|
||||||
<link rel="icon" type="image/png" href="/favicon.png" />
|
<link rel="icon" type="image/svg+xml" href="/vite.svg" />
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||||
<link
|
<link
|
||||||
href="https://fonts.googleapis.com/css?family=Roboto:300,400,500"
|
href="https://fonts.googleapis.com/css?family=Roboto:300,400,500"
|
||||||
|
Binary file not shown.
Before Width: | Height: | Size: 4.9 KiB |
@ -1,4 +0,0 @@
|
|||||||
.input:focus,
|
|
||||||
.input:focus-within {
|
|
||||||
outline-color: var(--primary);
|
|
||||||
}
|
|
Before Width: | Height: | Size: 42 KiB After Width: | Height: | Size: 42 KiB |
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 1.6 KiB |
@ -1,5 +1,5 @@
|
|||||||
import { getProfile } from '@api/user'
|
import { getProfile } from '@api/user'
|
||||||
import Logo from '@assets/images/logo.svg'
|
import Logo from '@assets/logo.svg'
|
||||||
import { useSiteContext } from '@context/SiteContext'
|
import { useSiteContext } from '@context/SiteContext'
|
||||||
import useAuth from '@hooks/useAuth'
|
import useAuth from '@hooks/useAuth'
|
||||||
import useToast from '@hooks/useToast'
|
import useToast from '@hooks/useToast'
|
||||||
|
@ -2,12 +2,7 @@ import { useSiteContext } from '@context/SiteContext'
|
|||||||
import useAuth from '@hooks/useAuth'
|
import useAuth from '@hooks/useAuth'
|
||||||
import useLanguage from '@hooks/useLanguage'
|
import useLanguage from '@hooks/useLanguage'
|
||||||
import { A } from '@solidjs/router'
|
import { A } from '@solidjs/router'
|
||||||
import {
|
import { IconDashboard, IconLogout, IconTriangle } from '@tabler/icons-solidjs'
|
||||||
IconBuildingWarehouse,
|
|
||||||
IconDashboard,
|
|
||||||
IconLogout,
|
|
||||||
IconTriangle
|
|
||||||
} from '@tabler/icons-solidjs'
|
|
||||||
import { For, Show, mergeProps } from 'solid-js'
|
import { For, Show, mergeProps } from 'solid-js'
|
||||||
import { Dynamic } from 'solid-js/web'
|
import { Dynamic } from 'solid-js/web'
|
||||||
import './navbar.scss'
|
import './navbar.scss'
|
||||||
@ -22,10 +17,42 @@ export const NAV_ITEM = (admin = false) => [
|
|||||||
text: language?.ui.dashboard,
|
text: language?.ui.dashboard,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: '/warehouse',
|
|
||||||
show: true,
|
show: true,
|
||||||
icon: IconBuildingWarehouse,
|
icon: IconTriangle,
|
||||||
text: language?.ui.location,
|
text: 'API',
|
||||||
|
children: [
|
||||||
|
{
|
||||||
|
show: true,
|
||||||
|
icon: IconDashboard,
|
||||||
|
text: 'Test',
|
||||||
|
children: [
|
||||||
|
{
|
||||||
|
path: '/dashboard',
|
||||||
|
show: true,
|
||||||
|
icon: IconDashboard,
|
||||||
|
text: language?.ui.dashboard,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: '/test',
|
||||||
|
show: true,
|
||||||
|
icon: IconDashboard,
|
||||||
|
text: 'Test',
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: '/api',
|
||||||
|
show: true,
|
||||||
|
icon: IconDashboard,
|
||||||
|
text: 'Get',
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: '/ware-house',
|
||||||
|
show: true,
|
||||||
|
icon: IconDashboard,
|
||||||
|
text: language?.ui.houses,
|
||||||
},
|
},
|
||||||
]
|
]
|
||||||
|
|
||||||
@ -41,7 +68,7 @@ function NavbarItem(props) {
|
|||||||
</>
|
</>
|
||||||
}
|
}
|
||||||
>
|
>
|
||||||
<A class="hover:text-fu-black" href={merged.path}>
|
<A href={merged.path}>
|
||||||
<Dynamic component={merged.icon} />
|
<Dynamic component={merged.icon} />
|
||||||
{merged.text}
|
{merged.text}
|
||||||
</A>
|
</A>
|
||||||
|
@ -1,7 +1,6 @@
|
|||||||
@tailwind base;
|
@tailwind base;
|
||||||
@tailwind components;
|
@tailwind components;
|
||||||
@tailwind utilities;
|
@tailwind utilities;
|
||||||
@import './assets/css/fu-theme.scss';
|
|
||||||
|
|
||||||
:root {
|
:root {
|
||||||
font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif;
|
font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif;
|
||||||
|
@ -6,10 +6,10 @@
|
|||||||
"logout": "Đăng xuất",
|
"logout": "Đăng xuất",
|
||||||
"dashboard": "Bảng điều khiển",
|
"dashboard": "Bảng điều khiển",
|
||||||
"profile": "Hồ sơ",
|
"profile": "Hồ sơ",
|
||||||
"changeInfo": "Thông tin tài khoản",
|
"changeInfo": "Đổi thông tin",
|
||||||
"save": "Lưu",
|
"save": "Lưu",
|
||||||
"clear": "Xóa",
|
"clear": "Xóa",
|
||||||
"location": "Nhà kho",
|
"houses": "Kho",
|
||||||
"displayName": "Display Name",
|
"displayName": "Display Name",
|
||||||
"newPassword": "New Password",
|
"newPassword": "New Password",
|
||||||
"confirmNewPassword": "Confirm New Password"
|
"confirmNewPassword": "Confirm New Password"
|
||||||
|
@ -8,7 +8,7 @@ import { onMount } from 'solid-js'
|
|||||||
import * as yup from 'yup'
|
import * as yup from 'yup'
|
||||||
import './login.scss'
|
import './login.scss'
|
||||||
|
|
||||||
import Logo from '@assets/images/logo.svg'
|
import Logo from '@assets/logo.svg'
|
||||||
import TextInput from '@components/common/TextInput'
|
import TextInput from '@components/common/TextInput'
|
||||||
import useAuth from '@hooks/useAuth'
|
import useAuth from '@hooks/useAuth'
|
||||||
import useToast from '@hooks/useToast'
|
import useToast from '@hooks/useToast'
|
||||||
|
@ -3,7 +3,7 @@ import TextInput from '@components/common/TextInput'
|
|||||||
import { useSiteContext } from '@context/SiteContext'
|
import { useSiteContext } from '@context/SiteContext'
|
||||||
import useLanguage from '@hooks/useLanguage'
|
import useLanguage from '@hooks/useLanguage'
|
||||||
import useToast from '@hooks/useToast'
|
import useToast from '@hooks/useToast'
|
||||||
import { IconKey, IconUser, IconUserCircle } from '@tabler/icons-solidjs'
|
import { IconKey, IconLetterN, IconUserCircle } from '@tabler/icons-solidjs'
|
||||||
import { Helpers } from '@utils/helper'
|
import { Helpers } from '@utils/helper'
|
||||||
import { useFormHandler } from 'solid-form-handler'
|
import { useFormHandler } from 'solid-form-handler'
|
||||||
import { yupSchema } from 'solid-form-handler/yup'
|
import { yupSchema } from 'solid-form-handler/yup'
|
||||||
@ -71,7 +71,7 @@ export default function Profile() {
|
|||||||
return (
|
return (
|
||||||
<div class="profile">
|
<div class="profile">
|
||||||
<div class="divider divider-accent text-xl">
|
<div class="divider divider-accent text-xl">
|
||||||
<span class="text-secondary">
|
<span class="text-green-400">
|
||||||
<IconUserCircle size={30} />
|
<IconUserCircle size={30} />
|
||||||
</span>
|
</span>
|
||||||
{language.ui.profile}
|
{language.ui.profile}
|
||||||
@ -82,7 +82,7 @@ export default function Profile() {
|
|||||||
<p class="card-title">{language.ui.changeInfo}</p>
|
<p class="card-title">{language.ui.changeInfo}</p>
|
||||||
<div class="form-content py-5">
|
<div class="form-content py-5">
|
||||||
<TextInput
|
<TextInput
|
||||||
icon={IconUser}
|
icon={IconLetterN}
|
||||||
name="name"
|
name="name"
|
||||||
placeholder={language.ui.displayName}
|
placeholder={language.ui.displayName}
|
||||||
formHandler={formHandler}
|
formHandler={formHandler}
|
||||||
|
12
frontend/src/pages/WareHouse.jsx
Normal file
12
frontend/src/pages/WareHouse.jsx
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
import { useNavigate } from '@solidjs/router'
|
||||||
|
import { onMount } from 'solid-js'
|
||||||
|
|
||||||
|
export default function WareHouse() {
|
||||||
|
const navigate = useNavigate()
|
||||||
|
|
||||||
|
onMount(() => {
|
||||||
|
navigate('/me', { replace: true })
|
||||||
|
})
|
||||||
|
|
||||||
|
return <></>
|
||||||
|
}
|
@ -1,54 +0,0 @@
|
|||||||
import { IconPackage } from '@tabler/icons-solidjs'
|
|
||||||
import { For } from 'solid-js'
|
|
||||||
import { Dynamic } from 'solid-js/web'
|
|
||||||
import './warehouse.scss'
|
|
||||||
|
|
||||||
function PackageItem(props) {
|
|
||||||
const { item } = { ...props }
|
|
||||||
const isEmpty = item % 2 === 0
|
|
||||||
return (
|
|
||||||
<a href="#" class={`group/item w-10 h-10 m-[5px] hover:text-white bg-fu-warning${isEmpty ? '/30' : ''} hover:bg-fu-green rounded-[10px] block`}>
|
|
||||||
<div class="bx-dec invisible group-hover/item:visible">
|
|
||||||
<div class="section-dec flex items-center absolute bg-fu-green/90 rounded-[10px] p-[10px] shadow-[0_5px_15px_4px_rgba(0, 135, 90, 0.25)]] mt-[20px] ml-[20px]">
|
|
||||||
<div class="box-img">
|
|
||||||
<Dynamic class="mr-[10px] w-20 h-20 text-fu-warning" component={IconPackage} />
|
|
||||||
</div>
|
|
||||||
<div class="dec max-w-[200px]">
|
|
||||||
<h4 class="text-white mb-[5px] text-base font-bold">{isEmpty ? 'Rỗng' : 'Dụng cụ bếp'}</h4>
|
|
||||||
<p class="line-clamp-3">
|
|
||||||
{isEmpty
|
|
||||||
? ''
|
|
||||||
: `Nồi cơm điện, Bếp nấu ăn, Lò vi sóng, Máy xay sinh tố, Máy ép trái cây, Lò nướng, Nồi áp suất, Chảo chống dính, Xửng hấp, Bộ nồi chuyên dụng, Dao bếp, Thớt, Hộp đựng thực phẩm, Hũ
|
|
||||||
đựng gia vị , Dụng cụ đo lường, Bộ chén bát, Đũa, Muỗng, Thau, rổ, Khăn lau bếp, Thùng đựng gạo, Bộ ly cốc, Dung dịch tẩy rửa, Giá treo, Vòi rửa thông minh, Máy hút mùi, Máy lọc nước`}
|
|
||||||
</p>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</a>
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
export default function WareHouse() {
|
|
||||||
return (
|
|
||||||
<div class="warehouse">
|
|
||||||
<div class="card w-full bg-base-100 shadow-lg border border-gray-200">
|
|
||||||
<div class="card-body">
|
|
||||||
<div class="box-header pb-5 mb-5 flex items-center justify-between border-b border-gray-200">
|
|
||||||
<h4 class="card-title">Section Overview</h4>
|
|
||||||
<div class="box-controls pull-right">
|
|
||||||
<input class="form-control no-border bg-base-200 px-2 py-1" id="e" type="date" />
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="area-in-warehouse grid grid-cols-4">
|
|
||||||
<div class="area-block mb-10">
|
|
||||||
<div class="area-title text-center text-base font-bold mb-3">Khu bếp</div>
|
|
||||||
<div class="area-content flex justify-space-around flex-wrap">
|
|
||||||
<For each={[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]}>{(item) => <PackageItem item={item} />}</For>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
)
|
|
||||||
}
|
|
@ -1 +0,0 @@
|
|||||||
export { default } from './WareHouse'
|
|
@ -1,3 +0,0 @@
|
|||||||
.warehouse {
|
|
||||||
|
|
||||||
}
|
|
@ -20,7 +20,7 @@ export const ROUTES = [
|
|||||||
show: true,
|
show: true,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: '/warehouse',
|
path: '/ware-house',
|
||||||
components: lazy(() => import('@pages/WareHouse')),
|
components: lazy(() => import('@pages/WareHouse')),
|
||||||
filter: {},
|
filter: {},
|
||||||
show: true,
|
show: true,
|
||||||
|
@ -13,7 +13,6 @@ export default {
|
|||||||
primary: '#03c9d7',
|
primary: '#03c9d7',
|
||||||
green: '#05b187',
|
green: '#05b187',
|
||||||
orange: '#fb9678',
|
orange: '#fb9678',
|
||||||
warning: '#fbc66c',
|
|
||||||
yellow: '#fec90f',
|
yellow: '#fec90f',
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
@ -25,12 +24,10 @@ export default {
|
|||||||
{
|
{
|
||||||
light: {
|
light: {
|
||||||
...themes['light'],
|
...themes['light'],
|
||||||
// primary: '#03c9d7',
|
primary: '#03c9d7',
|
||||||
// 'primary-content': '#ffffff',
|
'primary-content': '#ffff',
|
||||||
secondary: '#fb9678',
|
secondary: '#fb9678',
|
||||||
'secondary-content': '#ffffff',
|
'secondary-content': '#ffff',
|
||||||
neutral: '#03c9d7',
|
|
||||||
'neutral-content': '#ffffff',
|
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
|
Loading…
x
Reference in New Issue
Block a user