UP-0121
This commit is contained in:
parent
33c365d76d
commit
b43c2b0819
1
assets/js/api-host.js
Normal file
1
assets/js/api-host.js
Normal file
@ -0,0 +1 @@
|
|||||||
|
export let api_host = 'http://localhost:5291';
|
@ -1,419 +1,571 @@
|
|||||||
<template>
|
<template>
|
||||||
<div>
|
<div>
|
||||||
<!-- Page Wrapper -->
|
<!-- Page Wrapper -->
|
||||||
<div id="wrapper">
|
<div id="wrapper">
|
||||||
|
<!-- Sidebar -->
|
||||||
<!-- Sidebar -->
|
<ul
|
||||||
<ul class="navbar-nav bg-gradient-primary sidebar sidebar-dark accordion" id="accordionSidebar">
|
class="navbar-nav bg-gradient-primary sidebar sidebar-dark accordion"
|
||||||
|
id="accordionSidebar"
|
||||||
<!-- Sidebar - Brand -->
|
>
|
||||||
<a class="sidebar-brand d-flex align-items-center justify-content-center" href="index.html">
|
<!-- Sidebar - Brand -->
|
||||||
<!--<div class="sidebar-brand-icon rotate-n-15">
|
<a
|
||||||
|
class="sidebar-brand d-flex align-items-center justify-content-center"
|
||||||
|
href="index.html"
|
||||||
|
>
|
||||||
|
<!--<div class="sidebar-brand-icon rotate-n-15">
|
||||||
<i class="fas fa-laugh-wink"></i>
|
<i class="fas fa-laugh-wink"></i>
|
||||||
</div>-->
|
</div>-->
|
||||||
<div class="sidebar-brand-text mx-3">
|
<div class="sidebar-brand-text mx-3">
|
||||||
<img class="img-profile rounded-circle" style="width:20%" src="/img/lamiter_logo.JPEG">
|
<img
|
||||||
Lamiter
|
class="img-profile rounded-circle"
|
||||||
</div>
|
style="width: 20%"
|
||||||
</a>
|
src="/img/lamiter_logo.JPEG"
|
||||||
|
/>
|
||||||
<!-- Divider -->
|
Lamiter
|
||||||
<hr class="sidebar-divider my-0">
|
</div>
|
||||||
|
|
||||||
<!-- Nav Item - Dashboard -->
|
|
||||||
<li class="nav-item">
|
|
||||||
<a class="nav-link" href="index.html">
|
|
||||||
<i class="fas fa-fw fa-tachometer-alt"></i>
|
|
||||||
<span>Dashboard</span></a>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
<!-- Divider -->
|
|
||||||
<hr class="sidebar-divider">
|
|
||||||
|
|
||||||
<!-- Heading -->
|
|
||||||
<div class="sidebar-heading">
|
|
||||||
Interface
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<!-- Nav Item - Pages Collapse Menu -->
|
|
||||||
<li class="nav-item">
|
|
||||||
<a class="nav-link collapsed" href="#" data-toggle="collapse" data-target="#collapseTwo"
|
|
||||||
aria-expanded="true" aria-controls="collapseTwo">
|
|
||||||
<i class="fas fa-fw fa-cog"></i>
|
|
||||||
<span>Components</span>
|
|
||||||
</a>
|
|
||||||
<div id="collapseTwo" class="collapse" aria-labelledby="headingTwo" data-parent="#accordionSidebar">
|
|
||||||
<div class="bg-white py-2 collapse-inner rounded">
|
|
||||||
<h6 class="collapse-header">Custom Components:</h6>
|
|
||||||
<a class="collapse-item" href="buttons.html">Buttons</a>
|
|
||||||
<a class="collapse-item" href="cards.html">Cards</a>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
<!-- Nav Item - Utilities Collapse Menu -->
|
|
||||||
<li class="nav-item">
|
|
||||||
<a class="nav-link collapsed" href="#" data-toggle="collapse" data-target="#collapseUtilities"
|
|
||||||
aria-expanded="true" aria-controls="collapseUtilities">
|
|
||||||
<i class="fas fa-fw fa-wrench"></i>
|
|
||||||
<span>Utilities</span>
|
|
||||||
</a>
|
|
||||||
<div id="collapseUtilities" class="collapse" aria-labelledby="headingUtilities"
|
|
||||||
data-parent="#accordionSidebar">
|
|
||||||
<div class="bg-white py-2 collapse-inner rounded">
|
|
||||||
<h6 class="collapse-header">Custom Utilities:</h6>
|
|
||||||
<a class="collapse-item" href="utilities-color.html">Colors</a>
|
|
||||||
<a class="collapse-item" href="utilities-border.html">Borders</a>
|
|
||||||
<a class="collapse-item" href="utilities-animation.html">Animations</a>
|
|
||||||
<a class="collapse-item" href="utilities-other.html">Other</a>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
<!-- Divider -->
|
|
||||||
<hr class="sidebar-divider">
|
|
||||||
|
|
||||||
<!-- Heading -->
|
|
||||||
<div class="sidebar-heading">
|
|
||||||
Addons
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<!-- Nav Item - Pages Collapse Menu -->
|
|
||||||
<li class="nav-item">
|
|
||||||
<a class="nav-link" href="#" data-toggle="collapse" data-target="#collapsePages" aria-expanded="true"
|
|
||||||
aria-controls="collapsePages">
|
|
||||||
<i class="fas fa-fw fa-folder"></i>
|
|
||||||
<span>Pages</span>
|
|
||||||
</a>
|
|
||||||
<div id="collapsePages" class="collapse" aria-labelledby="headingPages"
|
|
||||||
data-parent="#accordionSidebar">
|
|
||||||
<div class="bg-white py-2 collapse-inner rounded">
|
|
||||||
<h6 class="collapse-header">Login Screens:</h6>
|
|
||||||
<a class="collapse-item" href="login.html">Login</a>
|
|
||||||
<a class="collapse-item" href="register.html">Register</a>
|
|
||||||
<a class="collapse-item" href="forgot-password.html">Forgot Password</a>
|
|
||||||
<div class="collapse-divider"></div>
|
|
||||||
<h6 class="collapse-header">Other Pages:</h6>
|
|
||||||
<a class="collapse-item" href="404.html">404 Page</a>
|
|
||||||
<a class="collapse-item active" href="blank.html">Blank Page</a>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
<!-- Nav Item - Charts -->
|
|
||||||
<li class="nav-item">
|
|
||||||
<a class="nav-link" href="charts.html">
|
|
||||||
<i class="fas fa-fw fa-chart-area"></i>
|
|
||||||
<span>Charts</span></a>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
<!-- Nav Item - Tables -->
|
|
||||||
<li class="nav-item">
|
|
||||||
<a class="nav-link" href="tables.html">
|
|
||||||
<i class="fas fa-fw fa-table"></i>
|
|
||||||
<span>Tables</span></a>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
<!-- Divider -->
|
|
||||||
<hr class="sidebar-divider d-none d-md-block">
|
|
||||||
|
|
||||||
<!-- Sidebar Toggler (Sidebar) -->
|
|
||||||
<div class="text-center d-none d-md-inline">
|
|
||||||
<button class="rounded-circle border-0" id="sidebarToggle"></button>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</ul>
|
|
||||||
<!-- End of Sidebar -->
|
|
||||||
|
|
||||||
<!-- Content Wrapper -->
|
|
||||||
<div id="content-wrapper" class="d-flex flex-column">
|
|
||||||
|
|
||||||
<!-- Main Content -->
|
|
||||||
<div id="content">
|
|
||||||
|
|
||||||
<!-- Topbar -->
|
|
||||||
<nav class="navbar navbar-expand navbar-light bg-white topbar mb-4 static-top shadow">
|
|
||||||
|
|
||||||
<!-- Sidebar Toggle (Topbar) -->
|
|
||||||
<button id="sidebarToggleTop" class="btn btn-link d-md-none rounded-circle mr-3">
|
|
||||||
<i class="fa fa-bars"></i>
|
|
||||||
</button>
|
|
||||||
|
|
||||||
<!-- Topbar Search -->
|
|
||||||
<form
|
|
||||||
class="d-none d-sm-inline-block form-inline mr-auto ml-md-3 my-2 my-md-0 mw-100 navbar-search">
|
|
||||||
<div class="input-group">
|
|
||||||
<input type="text" class="form-control bg-light border-0 small" placeholder="Search for..."
|
|
||||||
aria-label="Search" aria-describedby="basic-addon2">
|
|
||||||
<div class="input-group-append">
|
|
||||||
<button class="btn btn-primary" type="button">
|
|
||||||
<i class="fas fa-search fa-sm"></i>
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</form>
|
|
||||||
|
|
||||||
<!-- Topbar Navbar -->
|
|
||||||
<ul class="navbar-nav ml-auto">
|
|
||||||
|
|
||||||
<!-- Nav Item - Search Dropdown (Visible Only XS) -->
|
|
||||||
<li class="nav-item dropdown no-arrow d-sm-none">
|
|
||||||
<a class="nav-link dropdown-toggle" href="#" id="searchDropdown" role="button"
|
|
||||||
data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
|
|
||||||
<i class="fas fa-search fa-fw"></i>
|
|
||||||
</a>
|
|
||||||
<!-- Dropdown - Messages -->
|
|
||||||
<div class="dropdown-menu dropdown-menu-right p-3 shadow animated--grow-in"
|
|
||||||
aria-labelledby="searchDropdown">
|
|
||||||
<form class="form-inline mr-auto w-100 navbar-search">
|
|
||||||
<div class="input-group">
|
|
||||||
<input type="text" class="form-control bg-light border-0 small"
|
|
||||||
placeholder="Search for..." aria-label="Search"
|
|
||||||
aria-describedby="basic-addon2">
|
|
||||||
<div class="input-group-append">
|
|
||||||
<button class="btn btn-primary" type="button">
|
|
||||||
<i class="fas fa-search fa-sm"></i>
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</form>
|
|
||||||
</div>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
<!-- Nav Item - Alerts -->
|
|
||||||
<li class="nav-item dropdown no-arrow mx-1">
|
|
||||||
<a class="nav-link dropdown-toggle" href="#" id="alertsDropdown" role="button"
|
|
||||||
data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
|
|
||||||
<i class="fas fa-bell fa-fw"></i>
|
|
||||||
<!-- Counter - Alerts -->
|
|
||||||
<span class="badge badge-danger badge-counter">3+</span>
|
|
||||||
</a>
|
|
||||||
<!-- Dropdown - Alerts -->
|
|
||||||
<div class="dropdown-list dropdown-menu dropdown-menu-right shadow animated--grow-in"
|
|
||||||
aria-labelledby="alertsDropdown">
|
|
||||||
<h6 class="dropdown-header">
|
|
||||||
Alerts Center
|
|
||||||
</h6>
|
|
||||||
<a class="dropdown-item d-flex align-items-center" href="#">
|
|
||||||
<div class="mr-3">
|
|
||||||
<div class="icon-circle bg-primary">
|
|
||||||
<i class="fas fa-file-alt text-white"></i>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div>
|
|
||||||
<div class="small text-gray-500">December 12, 2019</div>
|
|
||||||
<span class="font-weight-bold">A new monthly report is ready to download!</span>
|
|
||||||
</div>
|
|
||||||
</a>
|
|
||||||
<a class="dropdown-item d-flex align-items-center" href="#">
|
|
||||||
<div class="mr-3">
|
|
||||||
<div class="icon-circle bg-success">
|
|
||||||
<i class="fas fa-donate text-white"></i>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div>
|
|
||||||
<div class="small text-gray-500">December 7, 2019</div>
|
|
||||||
$290.29 has been deposited into your account!
|
|
||||||
</div>
|
|
||||||
</a>
|
|
||||||
<a class="dropdown-item d-flex align-items-center" href="#">
|
|
||||||
<div class="mr-3">
|
|
||||||
<div class="icon-circle bg-warning">
|
|
||||||
<i class="fas fa-exclamation-triangle text-white"></i>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div>
|
|
||||||
<div class="small text-gray-500">December 2, 2019</div>
|
|
||||||
Spending Alert: We've noticed unusually high spending for your account.
|
|
||||||
</div>
|
|
||||||
</a>
|
|
||||||
<a class="dropdown-item text-center small text-gray-500" href="#">Show All Alerts</a>
|
|
||||||
</div>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
<!-- Nav Item - Messages -->
|
|
||||||
<li class="nav-item dropdown no-arrow mx-1">
|
|
||||||
<a class="nav-link dropdown-toggle" href="#" id="messagesDropdown" role="button"
|
|
||||||
data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
|
|
||||||
<i class="fas fa-envelope fa-fw"></i>
|
|
||||||
<!-- Counter - Messages -->
|
|
||||||
<span class="badge badge-danger badge-counter">7</span>
|
|
||||||
</a>
|
|
||||||
<!-- Dropdown - Messages -->
|
|
||||||
<div class="dropdown-list dropdown-menu dropdown-menu-right shadow animated--grow-in"
|
|
||||||
aria-labelledby="messagesDropdown">
|
|
||||||
<h6 class="dropdown-header">
|
|
||||||
Message Center
|
|
||||||
</h6>
|
|
||||||
<a class="dropdown-item d-flex align-items-center" href="#">
|
|
||||||
<div class="dropdown-list-image mr-3">
|
|
||||||
<img class="rounded-circle" src="/img/undraw_profile_1.svg"
|
|
||||||
alt="...">
|
|
||||||
<div class="status-indicator bg-success"></div>
|
|
||||||
</div>
|
|
||||||
<div class="font-weight-bold">
|
|
||||||
<div class="text-truncate">Hi there! I am wondering if you can help me with a
|
|
||||||
problem I've been having.</div>
|
|
||||||
<div class="small text-gray-500">Emily Fowler · 58m</div>
|
|
||||||
</div>
|
|
||||||
</a>
|
|
||||||
<a class="dropdown-item d-flex align-items-center" href="#">
|
|
||||||
<div class="dropdown-list-image mr-3">
|
|
||||||
<img class="rounded-circle" src="/img/undraw_profile_2.svg"
|
|
||||||
alt="...">
|
|
||||||
<div class="status-indicator"></div>
|
|
||||||
</div>
|
|
||||||
<div>
|
|
||||||
<div class="text-truncate">I have the photos that you ordered last month, how
|
|
||||||
would you like them sent to you?</div>
|
|
||||||
<div class="small text-gray-500">Jae Chun · 1d</div>
|
|
||||||
</div>
|
|
||||||
</a>
|
|
||||||
<a class="dropdown-item d-flex align-items-center" href="#">
|
|
||||||
<div class="dropdown-list-image mr-3">
|
|
||||||
<img class="rounded-circle" src="/img/undraw_profile_3.svg"
|
|
||||||
alt="...">
|
|
||||||
<div class="status-indicator bg-warning"></div>
|
|
||||||
</div>
|
|
||||||
<div>
|
|
||||||
<div class="text-truncate">Last month's report looks great, I am very happy with
|
|
||||||
the progress so far, keep up the good work!</div>
|
|
||||||
<div class="small text-gray-500">Morgan Alvarez · 2d</div>
|
|
||||||
</div>
|
|
||||||
</a>
|
|
||||||
<a class="dropdown-item d-flex align-items-center" href="#">
|
|
||||||
<div class="dropdown-list-image mr-3">
|
|
||||||
<img class="rounded-circle" src="https://source.unsplash.com/Mv9hjnEUHR4/60x60"
|
|
||||||
alt="...">
|
|
||||||
<div class="status-indicator bg-success"></div>
|
|
||||||
</div>
|
|
||||||
<div>
|
|
||||||
<div class="text-truncate">Am I a good boy? The reason I ask is because someone
|
|
||||||
told me that people say this to all dogs, even if they aren't good...</div>
|
|
||||||
<div class="small text-gray-500">Chicken the Dog · 2w</div>
|
|
||||||
</div>
|
|
||||||
</a>
|
|
||||||
<a class="dropdown-item text-center small text-gray-500" href="#">Read More Messages</a>
|
|
||||||
</div>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
<div class="topbar-divider d-none d-sm-block"></div>
|
|
||||||
|
|
||||||
<!-- Nav Item - User Information -->
|
|
||||||
<li class="nav-item dropdown no-arrow">
|
|
||||||
<a class="nav-link dropdown-toggle" href="#" id="userDropdown" role="button"
|
|
||||||
data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
|
|
||||||
<span class="mr-2 d-none d-lg-inline text-gray-600 small">Douglas McGee</span>
|
|
||||||
<img class="img-profile rounded-circle"
|
|
||||||
src="/img/undraw_profile.svg">
|
|
||||||
</a>
|
|
||||||
<!-- Dropdown - User Information -->
|
|
||||||
<div class="dropdown-menu dropdown-menu-right shadow animated--grow-in"
|
|
||||||
aria-labelledby="userDropdown">
|
|
||||||
<a class="dropdown-item" href="#">
|
|
||||||
<i class="fas fa-user fa-sm fa-fw mr-2 text-gray-400"></i>
|
|
||||||
Profile
|
|
||||||
</a>
|
|
||||||
<a class="dropdown-item" href="#">
|
|
||||||
<i class="fas fa-cogs fa-sm fa-fw mr-2 text-gray-400"></i>
|
|
||||||
Settings
|
|
||||||
</a>
|
|
||||||
<a class="dropdown-item" href="#">
|
|
||||||
<i class="fas fa-list fa-sm fa-fw mr-2 text-gray-400"></i>
|
|
||||||
Activity Log
|
|
||||||
</a>
|
|
||||||
<div class="dropdown-divider"></div>
|
|
||||||
<a class="dropdown-item" href="#" data-toggle="modal" data-target="#logoutModal">
|
|
||||||
<i class="fas fa-sign-out-alt fa-sm fa-fw mr-2 text-gray-400"></i>
|
|
||||||
Logout
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
</nav>
|
|
||||||
<!-- End of Topbar -->
|
|
||||||
|
|
||||||
<!-- Begin Page Content -->
|
|
||||||
<div class="container-fluid">
|
|
||||||
|
|
||||||
<!-- Page Heading -->
|
|
||||||
<NuxtPage></NuxtPage>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
<!-- /.container-fluid -->
|
|
||||||
|
|
||||||
</div>
|
|
||||||
<!-- End of Main Content -->
|
|
||||||
|
|
||||||
<!-- Footer -->
|
|
||||||
<footer class="sticky-footer bg-white">
|
|
||||||
<div class="container my-auto">
|
|
||||||
<div class="copyright text-center my-auto">
|
|
||||||
<span>Copyright © Your Website 2020</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</footer>
|
|
||||||
<!-- End of Footer -->
|
|
||||||
|
|
||||||
</div>
|
|
||||||
<!-- End of Content Wrapper -->
|
|
||||||
|
|
||||||
</div>
|
|
||||||
<!-- End of Page Wrapper -->
|
|
||||||
|
|
||||||
<!-- Scroll to Top Button-->
|
|
||||||
<a class="scroll-to-top rounded" href="#page-top">
|
|
||||||
<i class="fas fa-angle-up"></i>
|
|
||||||
</a>
|
</a>
|
||||||
|
|
||||||
<!-- Logout Modal-->
|
<!-- Divider -->
|
||||||
<div class="modal fade" id="logoutModal" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel"
|
<hr class="sidebar-divider my-0" />
|
||||||
aria-hidden="true">
|
|
||||||
<div class="modal-dialog" role="document">
|
|
||||||
<div class="modal-content">
|
|
||||||
<div class="modal-header">
|
|
||||||
<h5 class="modal-title" id="exampleModalLabel">Ready to Leave?</h5>
|
|
||||||
<button class="close" type="button" data-dismiss="modal" aria-label="Close">
|
|
||||||
<span aria-hidden="true">×</span>
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
<div class="modal-body">Select "Logout" below if you are ready to end your current session.</div>
|
|
||||||
<div class="modal-footer">
|
|
||||||
<button class="btn btn-secondary" type="button" data-dismiss="modal">Cancel</button>
|
|
||||||
<a class="btn btn-primary" href="login.html">Logout</a>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
<!-- Nav Item - Dashboard -->
|
||||||
|
<li class="nav-item">
|
||||||
|
<a class="nav-link" href="index.html">
|
||||||
|
<i class="fas fa-fw fa-tachometer-alt"></i>
|
||||||
|
<span>Dashboard</span></a
|
||||||
|
>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<!-- Divider -->
|
||||||
|
<hr class="sidebar-divider" />
|
||||||
|
|
||||||
|
<!-- Heading -->
|
||||||
|
<div class="sidebar-heading">Interface</div>
|
||||||
|
|
||||||
|
<!-- Nav Item - Pages Collapse Menu -->
|
||||||
|
<li class="nav-item">
|
||||||
|
<a
|
||||||
|
class="nav-link collapsed"
|
||||||
|
href="#"
|
||||||
|
data-toggle="collapse"
|
||||||
|
data-target="#collapseTwo"
|
||||||
|
aria-expanded="true"
|
||||||
|
aria-controls="collapseTwo"
|
||||||
|
>
|
||||||
|
<i class="fas fa-fw fa-cog"></i>
|
||||||
|
<span>Components</span>
|
||||||
|
</a>
|
||||||
|
<div
|
||||||
|
id="collapseTwo"
|
||||||
|
class="collapse"
|
||||||
|
aria-labelledby="headingTwo"
|
||||||
|
data-parent="#accordionSidebar"
|
||||||
|
>
|
||||||
|
<div class="bg-white py-2 collapse-inner rounded">
|
||||||
|
<h6 class="collapse-header">Custom Components:</h6>
|
||||||
|
<a class="collapse-item" href="buttons.html">Buttons</a>
|
||||||
|
<a class="collapse-item" href="cards.html">Cards</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<!-- Nav Item - Utilities Collapse Menu -->
|
||||||
|
<li class="nav-item">
|
||||||
|
<a
|
||||||
|
class="nav-link collapsed"
|
||||||
|
href="#"
|
||||||
|
data-toggle="collapse"
|
||||||
|
data-target="#collapseUtilities"
|
||||||
|
aria-expanded="true"
|
||||||
|
aria-controls="collapseUtilities"
|
||||||
|
>
|
||||||
|
<i class="fas fa-fw fa-wrench"></i>
|
||||||
|
<span>Utilities</span>
|
||||||
|
</a>
|
||||||
|
<div
|
||||||
|
id="collapseUtilities"
|
||||||
|
class="collapse"
|
||||||
|
aria-labelledby="headingUtilities"
|
||||||
|
data-parent="#accordionSidebar"
|
||||||
|
>
|
||||||
|
<div class="bg-white py-2 collapse-inner rounded">
|
||||||
|
<h6 class="collapse-header">Custom Utilities:</h6>
|
||||||
|
<a class="collapse-item" href="utilities-color.html">Colors</a>
|
||||||
|
<a class="collapse-item" href="utilities-border.html">Borders</a>
|
||||||
|
<a class="collapse-item" href="utilities-animation.html"
|
||||||
|
>Animations</a
|
||||||
|
>
|
||||||
|
<a class="collapse-item" href="utilities-other.html">Other</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<!-- Divider -->
|
||||||
|
<hr class="sidebar-divider" />
|
||||||
|
|
||||||
|
<!-- Heading -->
|
||||||
|
<div class="sidebar-heading">Addons</div>
|
||||||
|
|
||||||
|
<!-- Nav Item - Pages Collapse Menu -->
|
||||||
|
<li class="nav-item">
|
||||||
|
<a
|
||||||
|
class="nav-link"
|
||||||
|
href="#"
|
||||||
|
data-toggle="collapse"
|
||||||
|
data-target="#collapsePages"
|
||||||
|
aria-expanded="true"
|
||||||
|
aria-controls="collapsePages"
|
||||||
|
>
|
||||||
|
<i class="fas fa-fw fa-folder"></i>
|
||||||
|
<span>Pages</span>
|
||||||
|
</a>
|
||||||
|
<div
|
||||||
|
id="collapsePages"
|
||||||
|
class="collapse"
|
||||||
|
aria-labelledby="headingPages"
|
||||||
|
data-parent="#accordionSidebar"
|
||||||
|
>
|
||||||
|
<div class="bg-white py-2 collapse-inner rounded">
|
||||||
|
<h6 class="collapse-header">Login Screens:</h6>
|
||||||
|
<a class="collapse-item" href="login.html">Login</a>
|
||||||
|
<a class="collapse-item" href="register.html">Register</a>
|
||||||
|
<a class="collapse-item" href="forgot-password.html"
|
||||||
|
>Forgot Password</a
|
||||||
|
>
|
||||||
|
<div class="collapse-divider"></div>
|
||||||
|
<h6 class="collapse-header">Other Pages:</h6>
|
||||||
|
<a class="collapse-item" href="404.html">404 Page</a>
|
||||||
|
<a class="collapse-item active" href="blank.html">Blank Page</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<!-- Nav Item - Charts -->
|
||||||
|
<li class="nav-item">
|
||||||
|
<a class="nav-link" href="charts.html">
|
||||||
|
<i class="fas fa-fw fa-chart-area"></i>
|
||||||
|
<span>Charts</span></a
|
||||||
|
>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<!-- Nav Item - Tables -->
|
||||||
|
<li class="nav-item">
|
||||||
|
<a class="nav-link" href="tables.html">
|
||||||
|
<i class="fas fa-fw fa-table"></i>
|
||||||
|
<span>Tables</span></a
|
||||||
|
>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<!-- Divider -->
|
||||||
|
<hr class="sidebar-divider d-none d-md-block" />
|
||||||
|
|
||||||
|
<!-- Sidebar Toggler (Sidebar) -->
|
||||||
|
<div class="text-center d-none d-md-inline">
|
||||||
|
<button class="rounded-circle border-0" id="sidebarToggle"></button>
|
||||||
|
</div>
|
||||||
|
</ul>
|
||||||
|
<!-- End of Sidebar -->
|
||||||
|
|
||||||
|
<!-- Content Wrapper -->
|
||||||
|
<div id="content-wrapper" class="d-flex flex-column">
|
||||||
|
<!-- Main Content -->
|
||||||
|
<div id="content">
|
||||||
|
<!-- Topbar -->
|
||||||
|
<nav
|
||||||
|
class="navbar navbar-expand navbar-light bg-white topbar mb-4 static-top shadow"
|
||||||
|
>
|
||||||
|
<!-- Sidebar Toggle (Topbar) -->
|
||||||
|
<button
|
||||||
|
id="sidebarToggleTop"
|
||||||
|
class="btn btn-link d-md-none rounded-circle mr-3"
|
||||||
|
>
|
||||||
|
<i class="fa fa-bars"></i>
|
||||||
|
</button>
|
||||||
|
|
||||||
|
<!-- Topbar Search -->
|
||||||
|
<form
|
||||||
|
class="d-none d-sm-inline-block form-inline mr-auto ml-md-3 my-2 my-md-0 mw-100 navbar-search"
|
||||||
|
>
|
||||||
|
<div class="input-group">
|
||||||
|
<input
|
||||||
|
type="text"
|
||||||
|
class="form-control bg-light border-0 small"
|
||||||
|
placeholder="Search for..."
|
||||||
|
aria-label="Search"
|
||||||
|
aria-describedby="basic-addon2"
|
||||||
|
/>
|
||||||
|
<div class="input-group-append">
|
||||||
|
<button class="btn btn-primary" type="button">
|
||||||
|
<i class="fas fa-search fa-sm"></i>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
|
||||||
|
<!-- Topbar Navbar -->
|
||||||
|
<ul class="navbar-nav ml-auto">
|
||||||
|
<!-- Nav Item - Search Dropdown (Visible Only XS) -->
|
||||||
|
<li class="nav-item dropdown no-arrow d-sm-none">
|
||||||
|
<a
|
||||||
|
class="nav-link dropdown-toggle"
|
||||||
|
href="#"
|
||||||
|
id="searchDropdown"
|
||||||
|
role="button"
|
||||||
|
data-toggle="dropdown"
|
||||||
|
aria-haspopup="true"
|
||||||
|
aria-expanded="false"
|
||||||
|
>
|
||||||
|
<i class="fas fa-search fa-fw"></i>
|
||||||
|
</a>
|
||||||
|
<!-- Dropdown - Messages -->
|
||||||
|
<div
|
||||||
|
class="dropdown-menu dropdown-menu-right p-3 shadow animated--grow-in"
|
||||||
|
aria-labelledby="searchDropdown"
|
||||||
|
>
|
||||||
|
<form class="form-inline mr-auto w-100 navbar-search">
|
||||||
|
<div class="input-group">
|
||||||
|
<input
|
||||||
|
type="text"
|
||||||
|
class="form-control bg-light border-0 small"
|
||||||
|
placeholder="Search for..."
|
||||||
|
aria-label="Search"
|
||||||
|
aria-describedby="basic-addon2"
|
||||||
|
/>
|
||||||
|
<div class="input-group-append">
|
||||||
|
<button class="btn btn-primary" type="button">
|
||||||
|
<i class="fas fa-search fa-sm"></i>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<!-- Nav Item - Alerts -->
|
||||||
|
<li class="nav-item dropdown no-arrow mx-1">
|
||||||
|
<a
|
||||||
|
class="nav-link dropdown-toggle"
|
||||||
|
href="#"
|
||||||
|
id="alertsDropdown"
|
||||||
|
role="button"
|
||||||
|
data-toggle="dropdown"
|
||||||
|
aria-haspopup="true"
|
||||||
|
aria-expanded="false"
|
||||||
|
>
|
||||||
|
<i class="fas fa-bell fa-fw"></i>
|
||||||
|
<!-- Counter - Alerts -->
|
||||||
|
<span class="badge badge-danger badge-counter">3+</span>
|
||||||
|
</a>
|
||||||
|
<!-- Dropdown - Alerts -->
|
||||||
|
<div
|
||||||
|
class="dropdown-list dropdown-menu dropdown-menu-right shadow animated--grow-in"
|
||||||
|
aria-labelledby="alertsDropdown"
|
||||||
|
>
|
||||||
|
<h6 class="dropdown-header">Alerts Center</h6>
|
||||||
|
<a class="dropdown-item d-flex align-items-center" href="#">
|
||||||
|
<div class="mr-3">
|
||||||
|
<div class="icon-circle bg-primary">
|
||||||
|
<i class="fas fa-file-alt text-white"></i>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<div class="small text-gray-500">December 12, 2019</div>
|
||||||
|
<span class="font-weight-bold"
|
||||||
|
>A new monthly report is ready to download!</span
|
||||||
|
>
|
||||||
|
</div>
|
||||||
|
</a>
|
||||||
|
<a class="dropdown-item d-flex align-items-center" href="#">
|
||||||
|
<div class="mr-3">
|
||||||
|
<div class="icon-circle bg-success">
|
||||||
|
<i class="fas fa-donate text-white"></i>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<div class="small text-gray-500">December 7, 2019</div>
|
||||||
|
$290.29 has been deposited into your account!
|
||||||
|
</div>
|
||||||
|
</a>
|
||||||
|
<a class="dropdown-item d-flex align-items-center" href="#">
|
||||||
|
<div class="mr-3">
|
||||||
|
<div class="icon-circle bg-warning">
|
||||||
|
<i class="fas fa-exclamation-triangle text-white"></i>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<div class="small text-gray-500">December 2, 2019</div>
|
||||||
|
Spending Alert: We've noticed unusually high spending for
|
||||||
|
your account.
|
||||||
|
</div>
|
||||||
|
</a>
|
||||||
|
<a
|
||||||
|
class="dropdown-item text-center small text-gray-500"
|
||||||
|
href="#"
|
||||||
|
>Show All Alerts</a
|
||||||
|
>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<!-- Nav Item - Messages -->
|
||||||
|
<li class="nav-item dropdown no-arrow mx-1">
|
||||||
|
<a
|
||||||
|
class="nav-link dropdown-toggle"
|
||||||
|
href="#"
|
||||||
|
id="messagesDropdown"
|
||||||
|
role="button"
|
||||||
|
data-toggle="dropdown"
|
||||||
|
aria-haspopup="true"
|
||||||
|
aria-expanded="false"
|
||||||
|
>
|
||||||
|
<i class="fas fa-envelope fa-fw"></i>
|
||||||
|
<!-- Counter - Messages -->
|
||||||
|
<span class="badge badge-danger badge-counter">7</span>
|
||||||
|
</a>
|
||||||
|
<!-- Dropdown - Messages -->
|
||||||
|
<div
|
||||||
|
class="dropdown-list dropdown-menu dropdown-menu-right shadow animated--grow-in"
|
||||||
|
aria-labelledby="messagesDropdown"
|
||||||
|
>
|
||||||
|
<h6 class="dropdown-header">Message Center</h6>
|
||||||
|
<a class="dropdown-item d-flex align-items-center" href="#">
|
||||||
|
<div class="dropdown-list-image mr-3">
|
||||||
|
<img
|
||||||
|
class="rounded-circle"
|
||||||
|
src="/img/undraw_profile_1.svg"
|
||||||
|
alt="..."
|
||||||
|
/>
|
||||||
|
<div class="status-indicator bg-success"></div>
|
||||||
|
</div>
|
||||||
|
<div class="font-weight-bold">
|
||||||
|
<div class="text-truncate">
|
||||||
|
Hi there! I am wondering if you can help me with a
|
||||||
|
problem I've been having.
|
||||||
|
</div>
|
||||||
|
<div class="small text-gray-500">Emily Fowler · 58m</div>
|
||||||
|
</div>
|
||||||
|
</a>
|
||||||
|
<a class="dropdown-item d-flex align-items-center" href="#">
|
||||||
|
<div class="dropdown-list-image mr-3">
|
||||||
|
<img
|
||||||
|
class="rounded-circle"
|
||||||
|
src="/img/undraw_profile_2.svg"
|
||||||
|
alt="..."
|
||||||
|
/>
|
||||||
|
<div class="status-indicator"></div>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<div class="text-truncate">
|
||||||
|
I have the photos that you ordered last month, how would
|
||||||
|
you like them sent to you?
|
||||||
|
</div>
|
||||||
|
<div class="small text-gray-500">Jae Chun · 1d</div>
|
||||||
|
</div>
|
||||||
|
</a>
|
||||||
|
<a class="dropdown-item d-flex align-items-center" href="#">
|
||||||
|
<div class="dropdown-list-image mr-3">
|
||||||
|
<img
|
||||||
|
class="rounded-circle"
|
||||||
|
src="/img/undraw_profile_3.svg"
|
||||||
|
alt="..."
|
||||||
|
/>
|
||||||
|
<div class="status-indicator bg-warning"></div>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<div class="text-truncate">
|
||||||
|
Last month's report looks great, I am very happy with
|
||||||
|
the progress so far, keep up the good work!
|
||||||
|
</div>
|
||||||
|
<div class="small text-gray-500">Morgan Alvarez · 2d</div>
|
||||||
|
</div>
|
||||||
|
</a>
|
||||||
|
<a class="dropdown-item d-flex align-items-center" href="#">
|
||||||
|
<div class="dropdown-list-image mr-3">
|
||||||
|
<img
|
||||||
|
class="rounded-circle"
|
||||||
|
src="https://source.unsplash.com/Mv9hjnEUHR4/60x60"
|
||||||
|
alt="..."
|
||||||
|
/>
|
||||||
|
<div class="status-indicator bg-success"></div>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<div class="text-truncate">
|
||||||
|
Am I a good boy? The reason I ask is because someone
|
||||||
|
told me that people say this to all dogs, even if they
|
||||||
|
aren't good...
|
||||||
|
</div>
|
||||||
|
<div class="small text-gray-500">
|
||||||
|
Chicken the Dog · 2w
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</a>
|
||||||
|
<a
|
||||||
|
class="dropdown-item text-center small text-gray-500"
|
||||||
|
href="#"
|
||||||
|
>Read More Messages</a
|
||||||
|
>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<div class="topbar-divider d-none d-sm-block"></div>
|
||||||
|
|
||||||
|
<!-- Nav Item - User Information -->
|
||||||
|
<li class="nav-item dropdown no-arrow">
|
||||||
|
<a
|
||||||
|
class="nav-link dropdown-toggle"
|
||||||
|
href="#"
|
||||||
|
id="userDropdown"
|
||||||
|
role="button"
|
||||||
|
data-toggle="dropdown"
|
||||||
|
aria-haspopup="true"
|
||||||
|
aria-expanded="false"
|
||||||
|
>
|
||||||
|
<span class="mr-2 d-none d-lg-inline text-gray-600 small"
|
||||||
|
>Douglas McGee</span
|
||||||
|
>
|
||||||
|
<img
|
||||||
|
class="img-profile rounded-circle"
|
||||||
|
src="/img/undraw_profile.svg"
|
||||||
|
/>
|
||||||
|
</a>
|
||||||
|
<!-- Dropdown - User Information -->
|
||||||
|
<div
|
||||||
|
class="dropdown-menu dropdown-menu-right shadow animated--grow-in"
|
||||||
|
aria-labelledby="userDropdown"
|
||||||
|
>
|
||||||
|
<a class="dropdown-item" href="#">
|
||||||
|
<i class="fas fa-user fa-sm fa-fw mr-2 text-gray-400"></i>
|
||||||
|
Profile
|
||||||
|
</a>
|
||||||
|
<a class="dropdown-item" href="#">
|
||||||
|
<i class="fas fa-cogs fa-sm fa-fw mr-2 text-gray-400"></i>
|
||||||
|
Settings
|
||||||
|
</a>
|
||||||
|
<a class="dropdown-item" href="#">
|
||||||
|
<i class="fas fa-list fa-sm fa-fw mr-2 text-gray-400"></i>
|
||||||
|
Activity Log
|
||||||
|
</a>
|
||||||
|
<div class="dropdown-divider"></div>
|
||||||
|
<a
|
||||||
|
class="dropdown-item"
|
||||||
|
href="#"
|
||||||
|
data-toggle="modal"
|
||||||
|
data-target="#logoutModal"
|
||||||
|
>
|
||||||
|
<i
|
||||||
|
class="fas fa-sign-out-alt fa-sm fa-fw mr-2 text-gray-400"
|
||||||
|
></i>
|
||||||
|
Logout
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</nav>
|
||||||
|
<!-- End of Topbar -->
|
||||||
|
|
||||||
|
<!-- Begin Page Content -->
|
||||||
|
<div class="container-fluid">
|
||||||
|
<!-- Page Heading -->
|
||||||
|
<NuxtPage></NuxtPage>
|
||||||
|
</div>
|
||||||
|
<!-- /.container-fluid -->
|
||||||
|
</div>
|
||||||
|
<!-- End of Main Content -->
|
||||||
|
|
||||||
|
<!-- Footer -->
|
||||||
|
<footer class="sticky-footer bg-white">
|
||||||
|
<div class="container my-auto">
|
||||||
|
<div class="copyright text-center my-auto">
|
||||||
|
<span>Copyright © Your Website 2020</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</footer>
|
||||||
|
<!-- End of Footer -->
|
||||||
|
</div>
|
||||||
|
<!-- End of Content Wrapper -->
|
||||||
|
</div>
|
||||||
|
<!-- End of Page Wrapper -->
|
||||||
|
|
||||||
|
<!-- Scroll to Top Button-->
|
||||||
|
<a class="scroll-to-top rounded" href="#page-top">
|
||||||
|
<i class="fas fa-angle-up"></i>
|
||||||
|
</a>
|
||||||
|
|
||||||
|
<!-- Logout Modal-->
|
||||||
|
<div
|
||||||
|
class="modal fade"
|
||||||
|
id="logoutModal"
|
||||||
|
tabindex="-1"
|
||||||
|
role="dialog"
|
||||||
|
aria-labelledby="exampleModalLabel"
|
||||||
|
aria-hidden="true"
|
||||||
|
>
|
||||||
|
<div class="modal-dialog" role="document">
|
||||||
|
<div class="modal-content">
|
||||||
|
<div class="modal-header">
|
||||||
|
<h5 class="modal-title" id="exampleModalLabel">Ready to Leave?</h5>
|
||||||
|
<button
|
||||||
|
class="close"
|
||||||
|
type="button"
|
||||||
|
data-dismiss="modal"
|
||||||
|
aria-label="Close"
|
||||||
|
>
|
||||||
|
<span aria-hidden="true">×</span>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
<div class="modal-body">
|
||||||
|
Select "Logout" below if you are ready to end your current session.
|
||||||
|
</div>
|
||||||
|
<div class="modal-footer">
|
||||||
|
<button
|
||||||
|
class="btn btn-secondary"
|
||||||
|
type="button"
|
||||||
|
data-dismiss="modal"
|
||||||
|
>
|
||||||
|
Cancel
|
||||||
|
</button>
|
||||||
|
<a class="btn btn-primary" @click="logout">Logout</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
import { useHead } from '#app'
|
import { useHead } from "#app";
|
||||||
|
import { useRouter } from "vue-router"; //匯入路徑
|
||||||
|
const { $api_host } = useNuxtApp(); //匯入API host
|
||||||
|
const router = useRouter(); // 匯入
|
||||||
|
|
||||||
useHead({
|
useHead({
|
||||||
title: 'Lamiter',
|
title: "Lamiter",
|
||||||
meta: [
|
meta: [
|
||||||
{ charset: 'utf-8' },
|
{ charset: "utf-8" },
|
||||||
{ 'http-equiv': 'X-UA-Compatible', content: 'IE=edge' },
|
{ "http-equiv": "X-UA-Compatible", content: "IE=edge" },
|
||||||
{ name: 'viewport', content: 'width=device-width, initial-scale=1, shrink-to-fit=no' },
|
{
|
||||||
{ name: 'description', content: '' },
|
name: "viewport",
|
||||||
{ name: 'author', content: '' }
|
content: "width=device-width, initial-scale=1, shrink-to-fit=no",
|
||||||
],
|
},
|
||||||
link: [
|
{ name: "description", content: "" },
|
||||||
{ rel: 'stylesheet', href: '/vendor/fontawesome-free/css/all.min.css' }, // 確保 `styles.css` 位於 public/css 資料夾中
|
{ name: "author", content: "" },
|
||||||
{ rel: 'stylesheet', href: '/css/sb-admin-2.min.css' }
|
],
|
||||||
],
|
link: [
|
||||||
script: [
|
{ rel: "stylesheet", href: "/vendor/fontawesome-free/css/all.min.css" }, // 確保 `styles.css` 位於 public/css 資料夾中
|
||||||
//{ src: 'https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/js/bootstrap.bundle.min.js', crossorigin: 'anonymous' },
|
{ rel: "stylesheet", href: "/css/sb-admin-2.min.css" },
|
||||||
{ src: "/vendor/jquery/jquery.min.js" },
|
],
|
||||||
{ src: "/vendor/bootstrap/js/bootstrap.bundle.min.js"},
|
script: [
|
||||||
{ src: "/vendor/jquery-easing/jquery.easing.min.js"},
|
//{ src: 'https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/js/bootstrap.bundle.min.js', crossorigin: 'anonymous' },
|
||||||
{ src: "/js/sb-admin-2.min.js"}
|
{ src: "/vendor/jquery/jquery.min.js" },
|
||||||
]
|
{ src: "/vendor/bootstrap/js/bootstrap.bundle.min.js" },
|
||||||
})
|
{ src: "/vendor/jquery-easing/jquery.easing.min.js" },
|
||||||
|
{ src: "/js/sb-admin-2.min.js" },
|
||||||
|
],
|
||||||
|
});
|
||||||
|
//登出
|
||||||
|
async function logout() {
|
||||||
|
localStorage.removeItem("token_TCM");
|
||||||
|
router.push("/").then(() => {
|
||||||
|
window.location.reload();
|
||||||
|
});
|
||||||
|
}
|
||||||
</script>
|
</script>
|
||||||
|
@ -1,419 +1,571 @@
|
|||||||
<template>
|
<template>
|
||||||
<div>
|
<div>
|
||||||
<!-- Page Wrapper -->
|
<!-- Page Wrapper -->
|
||||||
<div id="wrapper">
|
<div id="wrapper">
|
||||||
|
<!-- Sidebar -->
|
||||||
<!-- Sidebar -->
|
<ul
|
||||||
<ul class="navbar-nav bg-gradient-primary sidebar sidebar-dark accordion" id="accordionSidebar">
|
class="navbar-nav bg-gradient-primary sidebar sidebar-dark accordion"
|
||||||
|
id="accordionSidebar"
|
||||||
<!-- Sidebar - Brand -->
|
>
|
||||||
<a class="sidebar-brand d-flex align-items-center justify-content-center" href="index.html">
|
<!-- Sidebar - Brand -->
|
||||||
<!--<div class="sidebar-brand-icon rotate-n-15">
|
<a
|
||||||
|
class="sidebar-brand d-flex align-items-center justify-content-center"
|
||||||
|
href="index.html"
|
||||||
|
>
|
||||||
|
<!--<div class="sidebar-brand-icon rotate-n-15">
|
||||||
<i class="fas fa-laugh-wink"></i>
|
<i class="fas fa-laugh-wink"></i>
|
||||||
</div>-->
|
</div>-->
|
||||||
<div class="sidebar-brand-text mx-3">
|
<div class="sidebar-brand-text mx-3">
|
||||||
<img class="img-profile rounded-circle" style="width:20%" src="/img/lamiter_logo.JPEG">
|
<img
|
||||||
Manger
|
class="img-profile rounded-circle"
|
||||||
</div>
|
style="width: 20%"
|
||||||
</a>
|
src="/img/lamiter_logo.JPEG"
|
||||||
|
/>
|
||||||
<!-- Divider -->
|
Manager
|
||||||
<hr class="sidebar-divider my-0">
|
</div>
|
||||||
|
|
||||||
<!-- Nav Item - Dashboard -->
|
|
||||||
<li class="nav-item">
|
|
||||||
<a class="nav-link" href="index.html">
|
|
||||||
<i class="fas fa-fw fa-tachometer-alt"></i>
|
|
||||||
<span>Dashboard</span></a>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
<!-- Divider -->
|
|
||||||
<hr class="sidebar-divider">
|
|
||||||
|
|
||||||
<!-- Heading -->
|
|
||||||
<div class="sidebar-heading">
|
|
||||||
Interface
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<!-- Nav Item - Pages Collapse Menu -->
|
|
||||||
<li class="nav-item">
|
|
||||||
<a class="nav-link collapsed" href="#" data-toggle="collapse" data-target="#collapseTwo"
|
|
||||||
aria-expanded="true" aria-controls="collapseTwo">
|
|
||||||
<i class="fas fa-fw fa-cog"></i>
|
|
||||||
<span>Components</span>
|
|
||||||
</a>
|
|
||||||
<div id="collapseTwo" class="collapse" aria-labelledby="headingTwo" data-parent="#accordionSidebar">
|
|
||||||
<div class="bg-white py-2 collapse-inner rounded">
|
|
||||||
<h6 class="collapse-header">Custom Components:</h6>
|
|
||||||
<a class="collapse-item" href="buttons.html">Buttons</a>
|
|
||||||
<a class="collapse-item" href="cards.html">Cards</a>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
<!-- Nav Item - Utilities Collapse Menu -->
|
|
||||||
<li class="nav-item">
|
|
||||||
<a class="nav-link collapsed" href="#" data-toggle="collapse" data-target="#collapseUtilities"
|
|
||||||
aria-expanded="true" aria-controls="collapseUtilities">
|
|
||||||
<i class="fas fa-fw fa-wrench"></i>
|
|
||||||
<span>Utilities</span>
|
|
||||||
</a>
|
|
||||||
<div id="collapseUtilities" class="collapse" aria-labelledby="headingUtilities"
|
|
||||||
data-parent="#accordionSidebar">
|
|
||||||
<div class="bg-white py-2 collapse-inner rounded">
|
|
||||||
<h6 class="collapse-header">Custom Utilities:</h6>
|
|
||||||
<a class="collapse-item" href="utilities-color.html">Colors</a>
|
|
||||||
<a class="collapse-item" href="utilities-border.html">Borders</a>
|
|
||||||
<a class="collapse-item" href="utilities-animation.html">Animations</a>
|
|
||||||
<a class="collapse-item" href="utilities-other.html">Other</a>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
<!-- Divider -->
|
|
||||||
<hr class="sidebar-divider">
|
|
||||||
|
|
||||||
<!-- Heading -->
|
|
||||||
<div class="sidebar-heading">
|
|
||||||
Addons
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<!-- Nav Item - Pages Collapse Menu -->
|
|
||||||
<li class="nav-item">
|
|
||||||
<a class="nav-link" href="#" data-toggle="collapse" data-target="#collapsePages" aria-expanded="true"
|
|
||||||
aria-controls="collapsePages">
|
|
||||||
<i class="fas fa-fw fa-folder"></i>
|
|
||||||
<span>Pages</span>
|
|
||||||
</a>
|
|
||||||
<div id="collapsePages" class="collapse" aria-labelledby="headingPages"
|
|
||||||
data-parent="#accordionSidebar">
|
|
||||||
<div class="bg-white py-2 collapse-inner rounded">
|
|
||||||
<h6 class="collapse-header">Login Screens:</h6>
|
|
||||||
<a class="collapse-item" href="login.html">Login</a>
|
|
||||||
<a class="collapse-item" href="register.html">Register</a>
|
|
||||||
<a class="collapse-item" href="forgot-password.html">Forgot Password</a>
|
|
||||||
<div class="collapse-divider"></div>
|
|
||||||
<h6 class="collapse-header">Other Pages:</h6>
|
|
||||||
<a class="collapse-item" href="404.html">404 Page</a>
|
|
||||||
<a class="collapse-item active" href="blank.html">Blank Page</a>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
<!-- Nav Item - Charts -->
|
|
||||||
<li class="nav-item">
|
|
||||||
<a class="nav-link" href="charts.html">
|
|
||||||
<i class="fas fa-fw fa-chart-area"></i>
|
|
||||||
<span>Charts</span></a>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
<!-- Nav Item - Tables -->
|
|
||||||
<li class="nav-item">
|
|
||||||
<a class="nav-link" href="tables.html">
|
|
||||||
<i class="fas fa-fw fa-table"></i>
|
|
||||||
<span>Tables</span></a>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
<!-- Divider -->
|
|
||||||
<hr class="sidebar-divider d-none d-md-block">
|
|
||||||
|
|
||||||
<!-- Sidebar Toggler (Sidebar) -->
|
|
||||||
<div class="text-center d-none d-md-inline">
|
|
||||||
<button class="rounded-circle border-0" id="sidebarToggle"></button>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</ul>
|
|
||||||
<!-- End of Sidebar -->
|
|
||||||
|
|
||||||
<!-- Content Wrapper -->
|
|
||||||
<div id="content-wrapper" class="d-flex flex-column">
|
|
||||||
|
|
||||||
<!-- Main Content -->
|
|
||||||
<div id="content">
|
|
||||||
|
|
||||||
<!-- Topbar -->
|
|
||||||
<nav class="navbar navbar-expand navbar-light bg-white topbar mb-4 static-top shadow">
|
|
||||||
|
|
||||||
<!-- Sidebar Toggle (Topbar) -->
|
|
||||||
<button id="sidebarToggleTop" class="btn btn-link d-md-none rounded-circle mr-3">
|
|
||||||
<i class="fa fa-bars"></i>
|
|
||||||
</button>
|
|
||||||
|
|
||||||
<!-- Topbar Search -->
|
|
||||||
<form
|
|
||||||
class="d-none d-sm-inline-block form-inline mr-auto ml-md-3 my-2 my-md-0 mw-100 navbar-search">
|
|
||||||
<div class="input-group">
|
|
||||||
<input type="text" class="form-control bg-light border-0 small" placeholder="Search for..."
|
|
||||||
aria-label="Search" aria-describedby="basic-addon2">
|
|
||||||
<div class="input-group-append">
|
|
||||||
<button class="btn btn-primary" type="button">
|
|
||||||
<i class="fas fa-search fa-sm"></i>
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</form>
|
|
||||||
|
|
||||||
<!-- Topbar Navbar -->
|
|
||||||
<ul class="navbar-nav ml-auto">
|
|
||||||
|
|
||||||
<!-- Nav Item - Search Dropdown (Visible Only XS) -->
|
|
||||||
<li class="nav-item dropdown no-arrow d-sm-none">
|
|
||||||
<a class="nav-link dropdown-toggle" href="#" id="searchDropdown" role="button"
|
|
||||||
data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
|
|
||||||
<i class="fas fa-search fa-fw"></i>
|
|
||||||
</a>
|
|
||||||
<!-- Dropdown - Messages -->
|
|
||||||
<div class="dropdown-menu dropdown-menu-right p-3 shadow animated--grow-in"
|
|
||||||
aria-labelledby="searchDropdown">
|
|
||||||
<form class="form-inline mr-auto w-100 navbar-search">
|
|
||||||
<div class="input-group">
|
|
||||||
<input type="text" class="form-control bg-light border-0 small"
|
|
||||||
placeholder="Search for..." aria-label="Search"
|
|
||||||
aria-describedby="basic-addon2">
|
|
||||||
<div class="input-group-append">
|
|
||||||
<button class="btn btn-primary" type="button">
|
|
||||||
<i class="fas fa-search fa-sm"></i>
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</form>
|
|
||||||
</div>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
<!-- Nav Item - Alerts -->
|
|
||||||
<li class="nav-item dropdown no-arrow mx-1">
|
|
||||||
<a class="nav-link dropdown-toggle" href="#" id="alertsDropdown" role="button"
|
|
||||||
data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
|
|
||||||
<i class="fas fa-bell fa-fw"></i>
|
|
||||||
<!-- Counter - Alerts -->
|
|
||||||
<span class="badge badge-danger badge-counter">3+</span>
|
|
||||||
</a>
|
|
||||||
<!-- Dropdown - Alerts -->
|
|
||||||
<div class="dropdown-list dropdown-menu dropdown-menu-right shadow animated--grow-in"
|
|
||||||
aria-labelledby="alertsDropdown">
|
|
||||||
<h6 class="dropdown-header">
|
|
||||||
Alerts Center
|
|
||||||
</h6>
|
|
||||||
<a class="dropdown-item d-flex align-items-center" href="#">
|
|
||||||
<div class="mr-3">
|
|
||||||
<div class="icon-circle bg-primary">
|
|
||||||
<i class="fas fa-file-alt text-white"></i>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div>
|
|
||||||
<div class="small text-gray-500">December 12, 2019</div>
|
|
||||||
<span class="font-weight-bold">A new monthly report is ready to download!</span>
|
|
||||||
</div>
|
|
||||||
</a>
|
|
||||||
<a class="dropdown-item d-flex align-items-center" href="#">
|
|
||||||
<div class="mr-3">
|
|
||||||
<div class="icon-circle bg-success">
|
|
||||||
<i class="fas fa-donate text-white"></i>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div>
|
|
||||||
<div class="small text-gray-500">December 7, 2019</div>
|
|
||||||
$290.29 has been deposited into your account!
|
|
||||||
</div>
|
|
||||||
</a>
|
|
||||||
<a class="dropdown-item d-flex align-items-center" href="#">
|
|
||||||
<div class="mr-3">
|
|
||||||
<div class="icon-circle bg-warning">
|
|
||||||
<i class="fas fa-exclamation-triangle text-white"></i>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div>
|
|
||||||
<div class="small text-gray-500">December 2, 2019</div>
|
|
||||||
Spending Alert: We've noticed unusually high spending for your account.
|
|
||||||
</div>
|
|
||||||
</a>
|
|
||||||
<a class="dropdown-item text-center small text-gray-500" href="#">Show All Alerts</a>
|
|
||||||
</div>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
<!-- Nav Item - Messages -->
|
|
||||||
<li class="nav-item dropdown no-arrow mx-1">
|
|
||||||
<a class="nav-link dropdown-toggle" href="#" id="messagesDropdown" role="button"
|
|
||||||
data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
|
|
||||||
<i class="fas fa-envelope fa-fw"></i>
|
|
||||||
<!-- Counter - Messages -->
|
|
||||||
<span class="badge badge-danger badge-counter">7</span>
|
|
||||||
</a>
|
|
||||||
<!-- Dropdown - Messages -->
|
|
||||||
<div class="dropdown-list dropdown-menu dropdown-menu-right shadow animated--grow-in"
|
|
||||||
aria-labelledby="messagesDropdown">
|
|
||||||
<h6 class="dropdown-header">
|
|
||||||
Message Center
|
|
||||||
</h6>
|
|
||||||
<a class="dropdown-item d-flex align-items-center" href="#">
|
|
||||||
<div class="dropdown-list-image mr-3">
|
|
||||||
<img class="rounded-circle" src="/img/undraw_profile_1.svg"
|
|
||||||
alt="...">
|
|
||||||
<div class="status-indicator bg-success"></div>
|
|
||||||
</div>
|
|
||||||
<div class="font-weight-bold">
|
|
||||||
<div class="text-truncate">Hi there! I am wondering if you can help me with a
|
|
||||||
problem I've been having.</div>
|
|
||||||
<div class="small text-gray-500">Emily Fowler · 58m</div>
|
|
||||||
</div>
|
|
||||||
</a>
|
|
||||||
<a class="dropdown-item d-flex align-items-center" href="#">
|
|
||||||
<div class="dropdown-list-image mr-3">
|
|
||||||
<img class="rounded-circle" src="/img/undraw_profile_2.svg"
|
|
||||||
alt="...">
|
|
||||||
<div class="status-indicator"></div>
|
|
||||||
</div>
|
|
||||||
<div>
|
|
||||||
<div class="text-truncate">I have the photos that you ordered last month, how
|
|
||||||
would you like them sent to you?</div>
|
|
||||||
<div class="small text-gray-500">Jae Chun · 1d</div>
|
|
||||||
</div>
|
|
||||||
</a>
|
|
||||||
<a class="dropdown-item d-flex align-items-center" href="#">
|
|
||||||
<div class="dropdown-list-image mr-3">
|
|
||||||
<img class="rounded-circle" src="/img/undraw_profile_3.svg"
|
|
||||||
alt="...">
|
|
||||||
<div class="status-indicator bg-warning"></div>
|
|
||||||
</div>
|
|
||||||
<div>
|
|
||||||
<div class="text-truncate">Last month's report looks great, I am very happy with
|
|
||||||
the progress so far, keep up the good work!</div>
|
|
||||||
<div class="small text-gray-500">Morgan Alvarez · 2d</div>
|
|
||||||
</div>
|
|
||||||
</a>
|
|
||||||
<a class="dropdown-item d-flex align-items-center" href="#">
|
|
||||||
<div class="dropdown-list-image mr-3">
|
|
||||||
<img class="rounded-circle" src="https://source.unsplash.com/Mv9hjnEUHR4/60x60"
|
|
||||||
alt="...">
|
|
||||||
<div class="status-indicator bg-success"></div>
|
|
||||||
</div>
|
|
||||||
<div>
|
|
||||||
<div class="text-truncate">Am I a good boy? The reason I ask is because someone
|
|
||||||
told me that people say this to all dogs, even if they aren't good...</div>
|
|
||||||
<div class="small text-gray-500">Chicken the Dog · 2w</div>
|
|
||||||
</div>
|
|
||||||
</a>
|
|
||||||
<a class="dropdown-item text-center small text-gray-500" href="#">Read More Messages</a>
|
|
||||||
</div>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
<div class="topbar-divider d-none d-sm-block"></div>
|
|
||||||
|
|
||||||
<!-- Nav Item - User Information -->
|
|
||||||
<li class="nav-item dropdown no-arrow">
|
|
||||||
<a class="nav-link dropdown-toggle" href="#" id="userDropdown" role="button"
|
|
||||||
data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
|
|
||||||
<span class="mr-2 d-none d-lg-inline text-gray-600 small">Douglas McGee</span>
|
|
||||||
<img class="img-profile rounded-circle"
|
|
||||||
src="/img/undraw_profile.svg">
|
|
||||||
</a>
|
|
||||||
<!-- Dropdown - User Information -->
|
|
||||||
<div class="dropdown-menu dropdown-menu-right shadow animated--grow-in"
|
|
||||||
aria-labelledby="userDropdown">
|
|
||||||
<a class="dropdown-item" href="#">
|
|
||||||
<i class="fas fa-user fa-sm fa-fw mr-2 text-gray-400"></i>
|
|
||||||
Profile
|
|
||||||
</a>
|
|
||||||
<a class="dropdown-item" href="#">
|
|
||||||
<i class="fas fa-cogs fa-sm fa-fw mr-2 text-gray-400"></i>
|
|
||||||
Settings
|
|
||||||
</a>
|
|
||||||
<a class="dropdown-item" href="#">
|
|
||||||
<i class="fas fa-list fa-sm fa-fw mr-2 text-gray-400"></i>
|
|
||||||
Activity Log
|
|
||||||
</a>
|
|
||||||
<div class="dropdown-divider"></div>
|
|
||||||
<a class="dropdown-item" href="#" data-toggle="modal" data-target="#logoutModal">
|
|
||||||
<i class="fas fa-sign-out-alt fa-sm fa-fw mr-2 text-gray-400"></i>
|
|
||||||
Logout
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
</nav>
|
|
||||||
<!-- End of Topbar -->
|
|
||||||
|
|
||||||
<!-- Begin Page Content -->
|
|
||||||
<div class="container-fluid">
|
|
||||||
|
|
||||||
<!-- Page Heading -->
|
|
||||||
<NuxtPage></NuxtPage>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
<!-- /.container-fluid -->
|
|
||||||
|
|
||||||
</div>
|
|
||||||
<!-- End of Main Content -->
|
|
||||||
|
|
||||||
<!-- Footer -->
|
|
||||||
<footer class="sticky-footer bg-white">
|
|
||||||
<div class="container my-auto">
|
|
||||||
<div class="copyright text-center my-auto">
|
|
||||||
<span>Copyright © Your Website 2020</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</footer>
|
|
||||||
<!-- End of Footer -->
|
|
||||||
|
|
||||||
</div>
|
|
||||||
<!-- End of Content Wrapper -->
|
|
||||||
|
|
||||||
</div>
|
|
||||||
<!-- End of Page Wrapper -->
|
|
||||||
|
|
||||||
<!-- Scroll to Top Button-->
|
|
||||||
<a class="scroll-to-top rounded" href="#page-top">
|
|
||||||
<i class="fas fa-angle-up"></i>
|
|
||||||
</a>
|
</a>
|
||||||
|
|
||||||
<!-- Logout Modal-->
|
<!-- Divider -->
|
||||||
<div class="modal fade" id="logoutModal" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel"
|
<hr class="sidebar-divider my-0" />
|
||||||
aria-hidden="true">
|
|
||||||
<div class="modal-dialog" role="document">
|
|
||||||
<div class="modal-content">
|
|
||||||
<div class="modal-header">
|
|
||||||
<h5 class="modal-title" id="exampleModalLabel">Ready to Leave?</h5>
|
|
||||||
<button class="close" type="button" data-dismiss="modal" aria-label="Close">
|
|
||||||
<span aria-hidden="true">×</span>
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
<div class="modal-body">Select "Logout" below if you are ready to end your current session.</div>
|
|
||||||
<div class="modal-footer">
|
|
||||||
<button class="btn btn-secondary" type="button" data-dismiss="modal">Cancel</button>
|
|
||||||
<a class="btn btn-primary" href="login.html">Logout</a>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
<!-- Nav Item - Dashboard -->
|
||||||
|
<li class="nav-item">
|
||||||
|
<a class="nav-link" href="index.html">
|
||||||
|
<i class="fas fa-fw fa-tachometer-alt"></i>
|
||||||
|
<span>Dashboard</span></a
|
||||||
|
>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<!-- Divider -->
|
||||||
|
<hr class="sidebar-divider" />
|
||||||
|
|
||||||
|
<!-- Heading -->
|
||||||
|
<div class="sidebar-heading">Interface</div>
|
||||||
|
|
||||||
|
<!-- Nav Item - Pages Collapse Menu -->
|
||||||
|
<li class="nav-item">
|
||||||
|
<a
|
||||||
|
class="nav-link collapsed"
|
||||||
|
href="#"
|
||||||
|
data-toggle="collapse"
|
||||||
|
data-target="#collapseTwo"
|
||||||
|
aria-expanded="true"
|
||||||
|
aria-controls="collapseTwo"
|
||||||
|
>
|
||||||
|
<i class="fas fa-fw fa-cog"></i>
|
||||||
|
<span>Components</span>
|
||||||
|
</a>
|
||||||
|
<div
|
||||||
|
id="collapseTwo"
|
||||||
|
class="collapse"
|
||||||
|
aria-labelledby="headingTwo"
|
||||||
|
data-parent="#accordionSidebar"
|
||||||
|
>
|
||||||
|
<div class="bg-white py-2 collapse-inner rounded">
|
||||||
|
<h6 class="collapse-header">Custom Components:</h6>
|
||||||
|
<a class="collapse-item" href="buttons.html">Buttons</a>
|
||||||
|
<a class="collapse-item" href="cards.html">Cards</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<!-- Nav Item - Utilities Collapse Menu -->
|
||||||
|
<li class="nav-item">
|
||||||
|
<a
|
||||||
|
class="nav-link collapsed"
|
||||||
|
href="#"
|
||||||
|
data-toggle="collapse"
|
||||||
|
data-target="#collapseUtilities"
|
||||||
|
aria-expanded="true"
|
||||||
|
aria-controls="collapseUtilities"
|
||||||
|
>
|
||||||
|
<i class="fas fa-fw fa-wrench"></i>
|
||||||
|
<span>Utilities</span>
|
||||||
|
</a>
|
||||||
|
<div
|
||||||
|
id="collapseUtilities"
|
||||||
|
class="collapse"
|
||||||
|
aria-labelledby="headingUtilities"
|
||||||
|
data-parent="#accordionSidebar"
|
||||||
|
>
|
||||||
|
<div class="bg-white py-2 collapse-inner rounded">
|
||||||
|
<h6 class="collapse-header">Custom Utilities:</h6>
|
||||||
|
<a class="collapse-item" href="utilities-color.html">Colors</a>
|
||||||
|
<a class="collapse-item" href="utilities-border.html">Borders</a>
|
||||||
|
<a class="collapse-item" href="utilities-animation.html"
|
||||||
|
>Animations</a
|
||||||
|
>
|
||||||
|
<a class="collapse-item" href="utilities-other.html">Other</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<!-- Divider -->
|
||||||
|
<hr class="sidebar-divider" />
|
||||||
|
|
||||||
|
<!-- Heading -->
|
||||||
|
<div class="sidebar-heading">Addons</div>
|
||||||
|
|
||||||
|
<!-- Nav Item - Pages Collapse Menu -->
|
||||||
|
<li class="nav-item">
|
||||||
|
<a
|
||||||
|
class="nav-link"
|
||||||
|
href="#"
|
||||||
|
data-toggle="collapse"
|
||||||
|
data-target="#collapsePages"
|
||||||
|
aria-expanded="true"
|
||||||
|
aria-controls="collapsePages"
|
||||||
|
>
|
||||||
|
<i class="fas fa-fw fa-folder"></i>
|
||||||
|
<span>Pages</span>
|
||||||
|
</a>
|
||||||
|
<div
|
||||||
|
id="collapsePages"
|
||||||
|
class="collapse"
|
||||||
|
aria-labelledby="headingPages"
|
||||||
|
data-parent="#accordionSidebar"
|
||||||
|
>
|
||||||
|
<div class="bg-white py-2 collapse-inner rounded">
|
||||||
|
<h6 class="collapse-header">Login Screens:</h6>
|
||||||
|
<a class="collapse-item" href="login.html">Login</a>
|
||||||
|
<a class="collapse-item" href="register.html">Register</a>
|
||||||
|
<a class="collapse-item" href="forgot-password.html"
|
||||||
|
>Forgot Password</a
|
||||||
|
>
|
||||||
|
<div class="collapse-divider"></div>
|
||||||
|
<h6 class="collapse-header">Other Pages:</h6>
|
||||||
|
<a class="collapse-item" href="404.html">404 Page</a>
|
||||||
|
<a class="collapse-item active" href="blank.html">Blank Page</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<!-- Nav Item - Charts -->
|
||||||
|
<li class="nav-item">
|
||||||
|
<a class="nav-link" href="charts.html">
|
||||||
|
<i class="fas fa-fw fa-chart-area"></i>
|
||||||
|
<span>Charts</span></a
|
||||||
|
>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<!-- Nav Item - Tables -->
|
||||||
|
<li class="nav-item">
|
||||||
|
<a class="nav-link" href="tables.html">
|
||||||
|
<i class="fas fa-fw fa-table"></i>
|
||||||
|
<span>Tables</span></a
|
||||||
|
>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<!-- Divider -->
|
||||||
|
<hr class="sidebar-divider d-none d-md-block" />
|
||||||
|
|
||||||
|
<!-- Sidebar Toggler (Sidebar) -->
|
||||||
|
<div class="text-center d-none d-md-inline">
|
||||||
|
<button class="rounded-circle border-0" id="sidebarToggle"></button>
|
||||||
|
</div>
|
||||||
|
</ul>
|
||||||
|
<!-- End of Sidebar -->
|
||||||
|
|
||||||
|
<!-- Content Wrapper -->
|
||||||
|
<div id="content-wrapper" class="d-flex flex-column">
|
||||||
|
<!-- Main Content -->
|
||||||
|
<div id="content">
|
||||||
|
<!-- Topbar -->
|
||||||
|
<nav
|
||||||
|
class="navbar navbar-expand navbar-light bg-white topbar mb-4 static-top shadow"
|
||||||
|
>
|
||||||
|
<!-- Sidebar Toggle (Topbar) -->
|
||||||
|
<button
|
||||||
|
id="sidebarToggleTop"
|
||||||
|
class="btn btn-link d-md-none rounded-circle mr-3"
|
||||||
|
>
|
||||||
|
<i class="fa fa-bars"></i>
|
||||||
|
</button>
|
||||||
|
|
||||||
|
<!-- Topbar Search -->
|
||||||
|
<form
|
||||||
|
class="d-none d-sm-inline-block form-inline mr-auto ml-md-3 my-2 my-md-0 mw-100 navbar-search"
|
||||||
|
>
|
||||||
|
<div class="input-group">
|
||||||
|
<input
|
||||||
|
type="text"
|
||||||
|
class="form-control bg-light border-0 small"
|
||||||
|
placeholder="Search for..."
|
||||||
|
aria-label="Search"
|
||||||
|
aria-describedby="basic-addon2"
|
||||||
|
/>
|
||||||
|
<div class="input-group-append">
|
||||||
|
<button class="btn btn-primary" type="button">
|
||||||
|
<i class="fas fa-search fa-sm"></i>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
|
||||||
|
<!-- Topbar Navbar -->
|
||||||
|
<ul class="navbar-nav ml-auto">
|
||||||
|
<!-- Nav Item - Search Dropdown (Visible Only XS) -->
|
||||||
|
<li class="nav-item dropdown no-arrow d-sm-none">
|
||||||
|
<a
|
||||||
|
class="nav-link dropdown-toggle"
|
||||||
|
href="#"
|
||||||
|
id="searchDropdown"
|
||||||
|
role="button"
|
||||||
|
data-toggle="dropdown"
|
||||||
|
aria-haspopup="true"
|
||||||
|
aria-expanded="false"
|
||||||
|
>
|
||||||
|
<i class="fas fa-search fa-fw"></i>
|
||||||
|
</a>
|
||||||
|
<!-- Dropdown - Messages -->
|
||||||
|
<div
|
||||||
|
class="dropdown-menu dropdown-menu-right p-3 shadow animated--grow-in"
|
||||||
|
aria-labelledby="searchDropdown"
|
||||||
|
>
|
||||||
|
<form class="form-inline mr-auto w-100 navbar-search">
|
||||||
|
<div class="input-group">
|
||||||
|
<input
|
||||||
|
type="text"
|
||||||
|
class="form-control bg-light border-0 small"
|
||||||
|
placeholder="Search for..."
|
||||||
|
aria-label="Search"
|
||||||
|
aria-describedby="basic-addon2"
|
||||||
|
/>
|
||||||
|
<div class="input-group-append">
|
||||||
|
<button class="btn btn-primary" type="button">
|
||||||
|
<i class="fas fa-search fa-sm"></i>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<!-- Nav Item - Alerts -->
|
||||||
|
<li class="nav-item dropdown no-arrow mx-1">
|
||||||
|
<a
|
||||||
|
class="nav-link dropdown-toggle"
|
||||||
|
href="#"
|
||||||
|
id="alertsDropdown"
|
||||||
|
role="button"
|
||||||
|
data-toggle="dropdown"
|
||||||
|
aria-haspopup="true"
|
||||||
|
aria-expanded="false"
|
||||||
|
>
|
||||||
|
<i class="fas fa-bell fa-fw"></i>
|
||||||
|
<!-- Counter - Alerts -->
|
||||||
|
<span class="badge badge-danger badge-counter">3+</span>
|
||||||
|
</a>
|
||||||
|
<!-- Dropdown - Alerts -->
|
||||||
|
<div
|
||||||
|
class="dropdown-list dropdown-menu dropdown-menu-right shadow animated--grow-in"
|
||||||
|
aria-labelledby="alertsDropdown"
|
||||||
|
>
|
||||||
|
<h6 class="dropdown-header">Alerts Center</h6>
|
||||||
|
<a class="dropdown-item d-flex align-items-center" href="#">
|
||||||
|
<div class="mr-3">
|
||||||
|
<div class="icon-circle bg-primary">
|
||||||
|
<i class="fas fa-file-alt text-white"></i>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<div class="small text-gray-500">December 12, 2019</div>
|
||||||
|
<span class="font-weight-bold"
|
||||||
|
>A new monthly report is ready to download!</span
|
||||||
|
>
|
||||||
|
</div>
|
||||||
|
</a>
|
||||||
|
<a class="dropdown-item d-flex align-items-center" href="#">
|
||||||
|
<div class="mr-3">
|
||||||
|
<div class="icon-circle bg-success">
|
||||||
|
<i class="fas fa-donate text-white"></i>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<div class="small text-gray-500">December 7, 2019</div>
|
||||||
|
$290.29 has been deposited into your account!
|
||||||
|
</div>
|
||||||
|
</a>
|
||||||
|
<a class="dropdown-item d-flex align-items-center" href="#">
|
||||||
|
<div class="mr-3">
|
||||||
|
<div class="icon-circle bg-warning">
|
||||||
|
<i class="fas fa-exclamation-triangle text-white"></i>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<div class="small text-gray-500">December 2, 2019</div>
|
||||||
|
Spending Alert: We've noticed unusually high spending for
|
||||||
|
your account.
|
||||||
|
</div>
|
||||||
|
</a>
|
||||||
|
<a
|
||||||
|
class="dropdown-item text-center small text-gray-500"
|
||||||
|
href="#"
|
||||||
|
>Show All Alerts</a
|
||||||
|
>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<!-- Nav Item - Messages -->
|
||||||
|
<li class="nav-item dropdown no-arrow mx-1">
|
||||||
|
<a
|
||||||
|
class="nav-link dropdown-toggle"
|
||||||
|
href="#"
|
||||||
|
id="messagesDropdown"
|
||||||
|
role="button"
|
||||||
|
data-toggle="dropdown"
|
||||||
|
aria-haspopup="true"
|
||||||
|
aria-expanded="false"
|
||||||
|
>
|
||||||
|
<i class="fas fa-envelope fa-fw"></i>
|
||||||
|
<!-- Counter - Messages -->
|
||||||
|
<span class="badge badge-danger badge-counter">7</span>
|
||||||
|
</a>
|
||||||
|
<!-- Dropdown - Messages -->
|
||||||
|
<div
|
||||||
|
class="dropdown-list dropdown-menu dropdown-menu-right shadow animated--grow-in"
|
||||||
|
aria-labelledby="messagesDropdown"
|
||||||
|
>
|
||||||
|
<h6 class="dropdown-header">Message Center</h6>
|
||||||
|
<a class="dropdown-item d-flex align-items-center" href="#">
|
||||||
|
<div class="dropdown-list-image mr-3">
|
||||||
|
<img
|
||||||
|
class="rounded-circle"
|
||||||
|
src="/img/undraw_profile_1.svg"
|
||||||
|
alt="..."
|
||||||
|
/>
|
||||||
|
<div class="status-indicator bg-success"></div>
|
||||||
|
</div>
|
||||||
|
<div class="font-weight-bold">
|
||||||
|
<div class="text-truncate">
|
||||||
|
Hi there! I am wondering if you can help me with a
|
||||||
|
problem I've been having.
|
||||||
|
</div>
|
||||||
|
<div class="small text-gray-500">Emily Fowler · 58m</div>
|
||||||
|
</div>
|
||||||
|
</a>
|
||||||
|
<a class="dropdown-item d-flex align-items-center" href="#">
|
||||||
|
<div class="dropdown-list-image mr-3">
|
||||||
|
<img
|
||||||
|
class="rounded-circle"
|
||||||
|
src="/img/undraw_profile_2.svg"
|
||||||
|
alt="..."
|
||||||
|
/>
|
||||||
|
<div class="status-indicator"></div>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<div class="text-truncate">
|
||||||
|
I have the photos that you ordered last month, how would
|
||||||
|
you like them sent to you?
|
||||||
|
</div>
|
||||||
|
<div class="small text-gray-500">Jae Chun · 1d</div>
|
||||||
|
</div>
|
||||||
|
</a>
|
||||||
|
<a class="dropdown-item d-flex align-items-center" href="#">
|
||||||
|
<div class="dropdown-list-image mr-3">
|
||||||
|
<img
|
||||||
|
class="rounded-circle"
|
||||||
|
src="/img/undraw_profile_3.svg"
|
||||||
|
alt="..."
|
||||||
|
/>
|
||||||
|
<div class="status-indicator bg-warning"></div>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<div class="text-truncate">
|
||||||
|
Last month's report looks great, I am very happy with
|
||||||
|
the progress so far, keep up the good work!
|
||||||
|
</div>
|
||||||
|
<div class="small text-gray-500">Morgan Alvarez · 2d</div>
|
||||||
|
</div>
|
||||||
|
</a>
|
||||||
|
<a class="dropdown-item d-flex align-items-center" href="#">
|
||||||
|
<div class="dropdown-list-image mr-3">
|
||||||
|
<img
|
||||||
|
class="rounded-circle"
|
||||||
|
src="https://source.unsplash.com/Mv9hjnEUHR4/60x60"
|
||||||
|
alt="..."
|
||||||
|
/>
|
||||||
|
<div class="status-indicator bg-success"></div>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<div class="text-truncate">
|
||||||
|
Am I a good boy? The reason I ask is because someone
|
||||||
|
told me that people say this to all dogs, even if they
|
||||||
|
aren't good...
|
||||||
|
</div>
|
||||||
|
<div class="small text-gray-500">
|
||||||
|
Chicken the Dog · 2w
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</a>
|
||||||
|
<a
|
||||||
|
class="dropdown-item text-center small text-gray-500"
|
||||||
|
href="#"
|
||||||
|
>Read More Messages</a
|
||||||
|
>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<div class="topbar-divider d-none d-sm-block"></div>
|
||||||
|
|
||||||
|
<!-- Nav Item - User Information -->
|
||||||
|
<li class="nav-item dropdown no-arrow">
|
||||||
|
<a
|
||||||
|
class="nav-link dropdown-toggle"
|
||||||
|
href="#"
|
||||||
|
id="userDropdown"
|
||||||
|
role="button"
|
||||||
|
data-toggle="dropdown"
|
||||||
|
aria-haspopup="true"
|
||||||
|
aria-expanded="false"
|
||||||
|
>
|
||||||
|
<span class="mr-2 d-none d-lg-inline text-gray-600 small"
|
||||||
|
>Douglas McGee</span
|
||||||
|
>
|
||||||
|
<img
|
||||||
|
class="img-profile rounded-circle"
|
||||||
|
src="/img/undraw_profile.svg"
|
||||||
|
/>
|
||||||
|
</a>
|
||||||
|
<!-- Dropdown - User Information -->
|
||||||
|
<div
|
||||||
|
class="dropdown-menu dropdown-menu-right shadow animated--grow-in"
|
||||||
|
aria-labelledby="userDropdown"
|
||||||
|
>
|
||||||
|
<a class="dropdown-item" href="#">
|
||||||
|
<i class="fas fa-user fa-sm fa-fw mr-2 text-gray-400"></i>
|
||||||
|
Profile
|
||||||
|
</a>
|
||||||
|
<a class="dropdown-item" href="#">
|
||||||
|
<i class="fas fa-cogs fa-sm fa-fw mr-2 text-gray-400"></i>
|
||||||
|
Settings
|
||||||
|
</a>
|
||||||
|
<a class="dropdown-item" href="#">
|
||||||
|
<i class="fas fa-list fa-sm fa-fw mr-2 text-gray-400"></i>
|
||||||
|
Activity Log
|
||||||
|
</a>
|
||||||
|
<div class="dropdown-divider"></div>
|
||||||
|
<a
|
||||||
|
class="dropdown-item"
|
||||||
|
href="#"
|
||||||
|
data-toggle="modal"
|
||||||
|
data-target="#logoutModal"
|
||||||
|
>
|
||||||
|
<i
|
||||||
|
class="fas fa-sign-out-alt fa-sm fa-fw mr-2 text-gray-400"
|
||||||
|
></i>
|
||||||
|
Logout
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</nav>
|
||||||
|
<!-- End of Topbar -->
|
||||||
|
|
||||||
|
<!-- Begin Page Content -->
|
||||||
|
<div class="container-fluid">
|
||||||
|
<!-- Page Heading -->
|
||||||
|
<NuxtPage></NuxtPage>
|
||||||
|
</div>
|
||||||
|
<!-- /.container-fluid -->
|
||||||
|
</div>
|
||||||
|
<!-- End of Main Content -->
|
||||||
|
|
||||||
|
<!-- Footer -->
|
||||||
|
<footer class="sticky-footer bg-white">
|
||||||
|
<div class="container my-auto">
|
||||||
|
<div class="copyright text-center my-auto">
|
||||||
|
<span>Copyright © Your Website 2020</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</footer>
|
||||||
|
<!-- End of Footer -->
|
||||||
|
</div>
|
||||||
|
<!-- End of Content Wrapper -->
|
||||||
|
</div>
|
||||||
|
<!-- End of Page Wrapper -->
|
||||||
|
|
||||||
|
<!-- Scroll to Top Button-->
|
||||||
|
<a class="scroll-to-top rounded" href="#page-top">
|
||||||
|
<i class="fas fa-angle-up"></i>
|
||||||
|
</a>
|
||||||
|
|
||||||
|
<!-- Logout Modal-->
|
||||||
|
<div
|
||||||
|
class="modal fade"
|
||||||
|
id="logoutModal"
|
||||||
|
tabindex="-1"
|
||||||
|
role="dialog"
|
||||||
|
aria-labelledby="exampleModalLabel"
|
||||||
|
aria-hidden="true"
|
||||||
|
>
|
||||||
|
<div class="modal-dialog" role="document">
|
||||||
|
<div class="modal-content">
|
||||||
|
<div class="modal-header">
|
||||||
|
<h5 class="modal-title" id="exampleModalLabel">Ready to Leave?</h5>
|
||||||
|
<button
|
||||||
|
class="close"
|
||||||
|
type="button"
|
||||||
|
data-dismiss="modal"
|
||||||
|
aria-label="Close"
|
||||||
|
>
|
||||||
|
<span aria-hidden="true">×</span>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
<div class="modal-body">
|
||||||
|
Select "Logout" below if you are ready to end your current session.
|
||||||
|
</div>
|
||||||
|
<div class="modal-footer">
|
||||||
|
<button
|
||||||
|
class="btn btn-secondary"
|
||||||
|
type="button"
|
||||||
|
data-dismiss="modal"
|
||||||
|
>
|
||||||
|
Cancel
|
||||||
|
</button>
|
||||||
|
<a class="btn btn-primary" @click="logout">Logout</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
import { useHead } from '#app'
|
import { useHead } from "#app";
|
||||||
|
import { useRouter } from "vue-router"; //匯入路徑
|
||||||
|
const { $api_host } = useNuxtApp(); //匯入API host
|
||||||
|
const router = useRouter(); // 匯入
|
||||||
|
|
||||||
useHead({
|
useHead({
|
||||||
title: 'Manager',
|
title: "Manager",
|
||||||
meta: [
|
meta: [
|
||||||
{ charset: 'utf-8' },
|
{ charset: "utf-8" },
|
||||||
{ 'http-equiv': 'X-UA-Compatible', content: 'IE=edge' },
|
{ "http-equiv": "X-UA-Compatible", content: "IE=edge" },
|
||||||
{ name: 'viewport', content: 'width=device-width, initial-scale=1, shrink-to-fit=no' },
|
{
|
||||||
{ name: 'description', content: '' },
|
name: "viewport",
|
||||||
{ name: 'author', content: '' }
|
content: "width=device-width, initial-scale=1, shrink-to-fit=no",
|
||||||
],
|
},
|
||||||
link: [
|
{ name: "description", content: "" },
|
||||||
{ rel: 'stylesheet', href: '/vendor/fontawesome-free/css/all.min.css' }, // 確保 `styles.css` 位於 public/css 資料夾中
|
{ name: "author", content: "" },
|
||||||
{ rel: 'stylesheet', href: '/css/sb-admin-2.min.css' }
|
],
|
||||||
],
|
link: [
|
||||||
script: [
|
{ rel: "stylesheet", href: "/vendor/fontawesome-free/css/all.min.css" }, // 確保 `styles.css` 位於 public/css 資料夾中
|
||||||
//{ src: 'https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/js/bootstrap.bundle.min.js', crossorigin: 'anonymous' },
|
{ rel: "stylesheet", href: "/css/sb-admin-2.min.css" },
|
||||||
{ src: "/vendor/jquery/jquery.min.js" },
|
],
|
||||||
{ src: "/vendor/bootstrap/js/bootstrap.bundle.min.js"},
|
script: [
|
||||||
{ src: "/vendor/jquery-easing/jquery.easing.min.js"},
|
//{ src: 'https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/js/bootstrap.bundle.min.js', crossorigin: 'anonymous' },
|
||||||
{ src: "/js/sb-admin-2.min.js"}
|
{ src: "/vendor/jquery/jquery.min.js" },
|
||||||
]
|
{ src: "/vendor/bootstrap/js/bootstrap.bundle.min.js" },
|
||||||
})
|
{ src: "/vendor/jquery-easing/jquery.easing.min.js" },
|
||||||
|
{ src: "/js/sb-admin-2.min.js" },
|
||||||
|
],
|
||||||
|
});
|
||||||
|
//登出
|
||||||
|
async function logout() {
|
||||||
|
localStorage.removeItem("token_TCM");
|
||||||
|
router.push("/").then(() => {
|
||||||
|
window.location.reload();
|
||||||
|
});
|
||||||
|
}
|
||||||
</script>
|
</script>
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
// https://nuxt.com/docs/api/configuration/nuxt-config
|
// https://nuxt.com/docs/api/configuration/nuxt-config
|
||||||
export default defineNuxtConfig({
|
export default defineNuxtConfig({
|
||||||
compatibilityDate: '2024-11-01',
|
compatibilityDate: '2024-11-01',
|
||||||
devtools: { enabled: true }
|
devtools: { enabled: true },
|
||||||
|
plugins: ['~/plugins/api-host.js']
|
||||||
})
|
})
|
||||||
|
@ -9,7 +9,7 @@
|
|||||||
<div class="col-lg-7">
|
<div class="col-lg-7">
|
||||||
<div class="p-5">
|
<div class="p-5">
|
||||||
<div class="text-center">
|
<div class="text-center">
|
||||||
<h1 class="h4 text-gray-900 mb-4">Create an Account!</h1>
|
<h1 class="h4 text-gray-900 mb-4">創 建 帳 號 !</h1>
|
||||||
</div>
|
</div>
|
||||||
<form class="user">
|
<form class="user">
|
||||||
<div class="form-group row">
|
<div class="form-group row">
|
||||||
|
@ -1,103 +1,164 @@
|
|||||||
<template>
|
<template>
|
||||||
<body class="bg-gradient-primary">
|
<body class="bg-gradient-primary">
|
||||||
|
<div class="container">
|
||||||
<div class="container">
|
<!-- Outer Row -->
|
||||||
|
<div class="row justify-content-center">
|
||||||
<!-- Outer Row -->
|
|
||||||
<div class="row justify-content-center">
|
|
||||||
|
|
||||||
<div class="col-xl-10 col-lg-12 col-md-9">
|
<div class="col-xl-10 col-lg-12 col-md-9">
|
||||||
|
<div class="card o-hidden border-0 shadow-lg my-5">
|
||||||
<div class="card o-hidden border-0 shadow-lg my-5">
|
<div class="card-body p-0">
|
||||||
<div class="card-body p-0">
|
<!-- Nested Row within Card Body -->
|
||||||
<!-- Nested Row within Card Body -->
|
<div class="row">
|
||||||
<div class="row">
|
<div class="col-lg-6 d-none d-lg-block bg-login-image">
|
||||||
<div class="col-lg-6 d-none d-lg-block bg-login-image"></div>
|
<img style="width: 100%" src="/img/lamiter_logo.JPEG" />
|
||||||
<div class="col-lg-6">
|
</div>
|
||||||
<div class="p-5">
|
<div class="col-lg-6">
|
||||||
<div class="text-center">
|
<div class="p-5">
|
||||||
<h1 class="h4 text-gray-900 mb-4">Welcome Back!</h1>
|
<div class="text-center">
|
||||||
</div>
|
<h1 class="h4 text-gray-900 mb-4">Lamiter 歡迎你!</h1>
|
||||||
<form class="user">
|
</div>
|
||||||
<div class="form-group">
|
<form class="user">
|
||||||
<input type="email" class="form-control form-control-user"
|
<div class="form-group">
|
||||||
id="exampleInputEmail" aria-describedby="emailHelp"
|
<input
|
||||||
placeholder="Enter Email Address...">
|
type="email"
|
||||||
</div>
|
class="form-control form-control-user"
|
||||||
<div class="form-group">
|
id="exampleInputEmail"
|
||||||
<input type="password" class="form-control form-control-user"
|
aria-describedby="emailHelp"
|
||||||
id="exampleInputPassword" placeholder="Password">
|
v-model="email"
|
||||||
</div>
|
placeholder="輸入帳號或Email..."
|
||||||
<div class="form-group">
|
/>
|
||||||
<div class="custom-control custom-checkbox small">
|
</div>
|
||||||
<input type="checkbox" class="custom-control-input" id="customCheck">
|
<div class="form-group">
|
||||||
<label class="custom-control-label" for="customCheck">Remember
|
<input
|
||||||
Me</label>
|
type="password"
|
||||||
</div>
|
class="form-control form-control-user"
|
||||||
</div>
|
v-model="password"
|
||||||
<a href="index.html" class="btn btn-primary btn-user btn-block">
|
id="exampleInputPassword"
|
||||||
Login
|
placeholder="Password"
|
||||||
</a>
|
/>
|
||||||
<hr>
|
</div>
|
||||||
|
<div class="form-group">
|
||||||
|
<div class="custom-control custom-checkbox small">
|
||||||
|
<input
|
||||||
|
type="checkbox"
|
||||||
|
class="custom-control-input"
|
||||||
|
id="customCheck"
|
||||||
|
/>
|
||||||
|
<label class="custom-control-label" for="customCheck"
|
||||||
|
>記住我</label
|
||||||
|
>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<a
|
||||||
|
@click="login_in"
|
||||||
|
class="btn btn-primary btn-user btn-block"
|
||||||
|
>
|
||||||
|
登入
|
||||||
|
</a>
|
||||||
|
<hr />
|
||||||
|
<!--
|
||||||
<a href="index.html" class="btn btn-google btn-user btn-block">
|
<a href="index.html" class="btn btn-google btn-user btn-block">
|
||||||
<i class="fab fa-google fa-fw"></i> Login with Google
|
<i class="fab fa-google fa-fw"></i> Login with Google
|
||||||
</a>
|
</a>
|
||||||
<a href="index.html" class="btn btn-facebook btn-user btn-block">
|
<a href="index.html" class="btn btn-facebook btn-user btn-block">
|
||||||
<i class="fab fa-facebook-f fa-fw"></i> Login with Facebook
|
<i class="fab fa-facebook-f fa-fw"></i> Login with Facebook
|
||||||
</a>
|
</a>-->
|
||||||
</form>
|
</form>
|
||||||
<hr>
|
<hr />
|
||||||
<div class="text-center">
|
<div class="text-center">
|
||||||
<a class="small" href="forgot-password.html">Forgot Password?</a>
|
<a class="small" href="forgot-password.html">忘記密碼?</a>
|
||||||
</div>
|
|
||||||
<div class="text-center">
|
|
||||||
<a class="small" href="/Home_pages/create_user">Create an Account!</a>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
|
<div class="text-center">
|
||||||
|
<a class="small" href="/Home_pages/create_user"
|
||||||
|
>創建帳號</a
|
||||||
|
>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
</body>
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</body>
|
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
import { useHead } from '#app'
|
import { useHead } from "#app";
|
||||||
|
import { ref } from "vue";
|
||||||
|
import { useRouter } from "vue-router"; //匯入路徑
|
||||||
|
const { $api_host } = useNuxtApp(); //匯入API host
|
||||||
|
const router = useRouter(); // 匯入
|
||||||
|
|
||||||
definePageMeta({
|
definePageMeta({
|
||||||
layout: false, // 禁用 layout
|
layout: false, // 禁用 layout
|
||||||
});
|
});
|
||||||
|
|
||||||
useHead({
|
useHead({
|
||||||
title: 'Lamiter',
|
title: "Lamiter",
|
||||||
meta: [
|
meta: [
|
||||||
{ charset: 'utf-8' },
|
{ charset: "utf-8" },
|
||||||
{ 'http-equiv': 'X-UA-Compatible', content: 'IE=edge' },
|
{ "http-equiv": "X-UA-Compatible", content: "IE=edge" },
|
||||||
{ name: 'viewport', content: 'width=device-width, initial-scale=1, shrink-to-fit=no' },
|
{
|
||||||
{ name: 'description', content: '' },
|
name: "viewport",
|
||||||
{ name: 'author', content: '' }
|
content: "width=device-width, initial-scale=1, shrink-to-fit=no",
|
||||||
],
|
},
|
||||||
link: [
|
{ name: "description", content: "" },
|
||||||
{ rel: 'stylesheet', href: "https://fonts.googleapis.com/css?family=Nunito:200,200i,300,300i,400,400i,600,600i,700,700i,800,800i,900,900i" }, // 確保 `styles.css` 位於 public/css 資料夾中
|
{ name: "author", content: "" },
|
||||||
{ rel: 'stylesheet', href: '/css/sb-admin-2.min.css' } ,
|
],
|
||||||
{ rel: 'stylesheet', href: '/vendor/fontawesome-free/css/all.min.css'}
|
link: [
|
||||||
],
|
{
|
||||||
script: [
|
rel: "stylesheet",
|
||||||
//{ src: 'https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/js/bootstrap.bundle.min.js', crossorigin: 'anonymous' },
|
href: "https://fonts.googleapis.com/css?family=Nunito:200,200i,300,300i,400,400i,600,600i,700,700i,800,800i,900,900i",
|
||||||
{ src: "/vendor/jquery/jquery.min.js" },
|
}, // 確保 `styles.css` 位於 public/css 資料夾中
|
||||||
{ src: "/vendor/bootstrap/js/bootstrap.bundle.min.js"},
|
{ rel: "stylesheet", href: "/css/sb-admin-2.min.css" },
|
||||||
{ src: "/vendor/jquery-easing/jquery.easing.min.js"},
|
{ rel: "stylesheet", href: "/vendor/fontawesome-free/css/all.min.css" },
|
||||||
{ src: "/js/sb-admin-2.min.js"}
|
],
|
||||||
]
|
script: [
|
||||||
})
|
//{ src: 'https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/js/bootstrap.bundle.min.js', crossorigin: 'anonymous' },
|
||||||
|
{ src: "/vendor/jquery/jquery.min.js" },
|
||||||
|
{ src: "/vendor/bootstrap/js/bootstrap.bundle.min.js" },
|
||||||
|
{ src: "/vendor/jquery-easing/jquery.easing.min.js" },
|
||||||
|
{ src: "/js/sb-admin-2.min.js" },
|
||||||
|
],
|
||||||
|
});
|
||||||
|
|
||||||
|
const email = ref("");
|
||||||
|
const password = ref("");
|
||||||
|
|
||||||
|
// 提交登入資料
|
||||||
|
async function login_in() {
|
||||||
|
if (!email.value || !password.value) {
|
||||||
|
alert("請輸入帳號和密碼");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (email.value) {
|
||||||
|
const obj = { Username: email.value, Password: password.value };
|
||||||
|
try {
|
||||||
|
const response = await fetch(`${$api_host}/Users/authenticate`, {
|
||||||
|
method: "POST",
|
||||||
|
headers: {
|
||||||
|
"Content-Type": "application/json",
|
||||||
|
},
|
||||||
|
body: JSON.stringify(obj),
|
||||||
|
});
|
||||||
|
|
||||||
|
if (response.ok) {
|
||||||
|
const data = await response.json();
|
||||||
|
console.log("成功:", data);
|
||||||
|
var token_str = data.token;
|
||||||
|
localStorage.setItem('token_TCM', token_str);
|
||||||
|
router.push("/");
|
||||||
|
// 根據 data 處理登入成功邏輯
|
||||||
|
} else {
|
||||||
|
console.error("登入失敗");
|
||||||
|
alert("帳號、密碼 錯誤");
|
||||||
|
}
|
||||||
|
} catch (error) {
|
||||||
|
alert("伺服器有誤");
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
alert("帳號、密碼 錯誤");
|
||||||
|
}
|
||||||
|
}
|
||||||
</script>
|
</script>
|
||||||
|
@ -1,11 +1,23 @@
|
|||||||
<template>
|
<template>
|
||||||
<div>
|
<div>lamiter 的首頁</div>
|
||||||
lamiter 的首頁
|
|
||||||
</div>
|
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
definePageMeta({
|
|
||||||
layout: 'default' // 指定自定義的佈局名稱
|
import { onMounted } from "vue";
|
||||||
})
|
const { $api_host } = useNuxtApp();
|
||||||
|
|
||||||
|
definePageMeta({
|
||||||
|
layout: "default", // 指定自定義的佈局名稱
|
||||||
|
});
|
||||||
|
|
||||||
|
function test() {
|
||||||
|
console.log($api_host);
|
||||||
|
}
|
||||||
|
|
||||||
|
//開機自啟
|
||||||
|
onMounted(() => {
|
||||||
|
test();
|
||||||
|
});
|
||||||
|
|
||||||
</script>
|
</script>
|
101
pages/index.vue
101
pages/index.vue
@ -1,35 +1,84 @@
|
|||||||
<template>
|
<template></template>
|
||||||
|
|
||||||
</template>
|
|
||||||
|
|
||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
import { useHead } from '#app'
|
import { useHead } from "#app"; //匯入Head
|
||||||
|
import { ref } from "vue";
|
||||||
|
import { onMounted } from "vue"; //開機自啟
|
||||||
|
import { useRouter } from "vue-router"; //匯入路徑
|
||||||
|
const { $api_host } = useNuxtApp(); //匯入API host
|
||||||
|
const router = useRouter(); // 匯入
|
||||||
|
|
||||||
definePageMeta({
|
definePageMeta({
|
||||||
layout: false, // 禁用 layout
|
layout: false, // 禁用 layout
|
||||||
});
|
});
|
||||||
|
|
||||||
useHead({
|
useHead({
|
||||||
title: 'Lamiter',
|
title: "Lamiter",
|
||||||
meta: [
|
meta: [
|
||||||
{ charset: 'utf-8' },
|
{ charset: "utf-8" },
|
||||||
{ 'http-equiv': 'X-UA-Compatible', content: 'IE=edge' },
|
{ "http-equiv": "X-UA-Compatible", content: "IE=edge" },
|
||||||
{ name: 'viewport', content: 'width=device-width, initial-scale=1, shrink-to-fit=no' },
|
{
|
||||||
{ name: 'description', content: '' },
|
name: "viewport",
|
||||||
{ name: 'author', content: '' }
|
content: "width=device-width, initial-scale=1, shrink-to-fit=no",
|
||||||
],
|
},
|
||||||
link: [
|
{ name: "description", content: "" },
|
||||||
{ rel: 'stylesheet', href: "https://fonts.googleapis.com/css?family=Nunito:200,200i,300,300i,400,400i,600,600i,700,700i,800,800i,900,900i" }, // 確保 `styles.css` 位於 public/css 資料夾中
|
{ name: "author", content: "" },
|
||||||
{ rel: 'stylesheet', href: '/css/sb-admin-2.min.css' } ,
|
],
|
||||||
{ rel: 'stylesheet', href: '/vendor/fontawesome-free/css/all.min.css'}
|
link: [
|
||||||
],
|
{
|
||||||
script: [
|
rel: "stylesheet",
|
||||||
//{ src: 'https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/js/bootstrap.bundle.min.js', crossorigin: 'anonymous' },
|
href: "https://fonts.googleapis.com/css?family=Nunito:200,200i,300,300i,400,400i,600,600i,700,700i,800,800i,900,900i",
|
||||||
{ src: "/vendor/jquery/jquery.min.js" },
|
}, // 確保 `styles.css` 位於 public/css 資料夾中
|
||||||
{ src: "/vendor/bootstrap/js/bootstrap.bundle.min.js"},
|
{ rel: "stylesheet", href: "/css/sb-admin-2.min.css" },
|
||||||
{ src: "/vendor/jquery-easing/jquery.easing.min.js"},
|
{ rel: "stylesheet", href: "/vendor/fontawesome-free/css/all.min.css" },
|
||||||
{ src: "/js/sb-admin-2.min.js"}
|
],
|
||||||
]
|
script: [
|
||||||
})
|
//{ src: 'https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/js/bootstrap.bundle.min.js', crossorigin: 'anonymous' },
|
||||||
|
{ src: "/vendor/jquery/jquery.min.js" },
|
||||||
|
{ src: "/vendor/bootstrap/js/bootstrap.bundle.min.js" },
|
||||||
|
{ src: "/vendor/jquery-easing/jquery.easing.min.js" },
|
||||||
|
{ src: "/js/sb-admin-2.min.js" },
|
||||||
|
],
|
||||||
|
});
|
||||||
|
|
||||||
|
console.log($api_host);
|
||||||
|
var token; // 加上分號
|
||||||
|
|
||||||
|
//檢查token
|
||||||
|
function token_check() {
|
||||||
|
// 检查本地存储中是否存在JWT令牌
|
||||||
|
token = localStorage.getItem("token_TCM");
|
||||||
|
console.log(token);
|
||||||
|
// 確認有無token
|
||||||
|
if (token != null) {
|
||||||
|
$.ajax({
|
||||||
|
type: "GET",
|
||||||
|
url: $api_host + "/Users/token_check_user",
|
||||||
|
headers: {
|
||||||
|
Authorization: token,
|
||||||
|
},
|
||||||
|
success: function (response) {
|
||||||
|
// 若層級為10 為BOSS
|
||||||
|
if(response.level==10){
|
||||||
|
router.push("/Lamiter_pages/");
|
||||||
|
}
|
||||||
|
// 若層級為9 為管理階層上層
|
||||||
|
if(response.level==9){
|
||||||
|
router.push("/Manage_pages/");
|
||||||
|
}
|
||||||
|
},
|
||||||
|
error: function (xhr) {
|
||||||
|
console.log("false");
|
||||||
|
},
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
console.log("pass");
|
||||||
|
router.push("/Home_pages/");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//開機自啟
|
||||||
|
onMounted(() => {
|
||||||
|
token_check();
|
||||||
|
});
|
||||||
</script>
|
</script>
|
||||||
|
4
plugins/api-host.js
Normal file
4
plugins/api-host.js
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
export default defineNuxtPlugin(nuxtApp => {
|
||||||
|
// 定義 api_host 為全局變數
|
||||||
|
nuxtApp.provide('api_host', 'http://localhost:5291');
|
||||||
|
});
|
Loading…
Reference in New Issue
Block a user