index3.astro 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513
  1. ---
  2. import Head from "@components/_head.astro";
  3. import Footer from "@components/dashboard/_footer.astro";
  4. import Topbar from "@components/dashboard/_topbar.astro";
  5. import Sidenav from "@components/dashboard/_sidenav.astro";
  6. import Scripts from "@components/_scripts.astro";
  7. const title = "AdminLTE | Dashboard v3";
  8. const path = "../../dist";
  9. const mainPage = "dashboard";
  10. const page = "index3";
  11. ---
  12. <!DOCTYPE html>
  13. <html lang="en">
  14. <!--begin::Head-->
  15. <head>
  16. <Head title={title} path={path} />
  17. <!-- apexcharts -->
  18. <link
  19. rel="stylesheet"
  20. href="https://cdn.jsdelivr.net/npm/apexcharts@3.37.1/dist/apexcharts.css"
  21. integrity="sha256-4MX+61mt9NVvvuPjUWdUdyfZfxSB1/Rf9WtqRHgG5S0="
  22. crossorigin="anonymous"
  23. />
  24. </head>
  25. <body class="layout-fixed sidebar-expand-lg bg-body-tertiary">
  26. <!--begin::App Wrapper-->
  27. <div class="app-wrapper">
  28. <Topbar path={path} />
  29. <Sidenav path={path} mainPage={mainPage} page={page} />
  30. <!--begin::App Main-->
  31. <main class="app-main">
  32. <!--begin::App Content Header-->
  33. <div class="app-content-header">
  34. <!--begin::Container-->
  35. <div class="container-fluid">
  36. <!--begin::Row-->
  37. <div class="row">
  38. <div class="col-sm-6">
  39. <h3 class="mb-0">Dashboard v3</h3>
  40. </div>
  41. <div class="col-sm-6">
  42. <ol class="breadcrumb float-sm-end">
  43. <li class="breadcrumb-item"><a href="#">Home</a></li>
  44. <li class="breadcrumb-item active" aria-current="page">
  45. Dashboard v3
  46. </li>
  47. </ol>
  48. </div>
  49. </div>
  50. <!--end::Row-->
  51. </div>
  52. <!--end::Container-->
  53. </div>
  54. <div class="app-content">
  55. <!--begin::Container-->
  56. <div class="container-fluid">
  57. <!--begin::Row-->
  58. <div class="row">
  59. <div class="col-lg-6">
  60. <div class="card mb-4">
  61. <div class="card-header border-0">
  62. <div class="d-flex justify-content-between">
  63. <h3 class="card-title">Online Store Visitors</h3>
  64. <a href="javascript:void(0);" class="link-primary link-offset-2 link-underline-opacity-25 link-underline-opacity-100-hover">View Report</a>
  65. </div>
  66. </div>
  67. <div class="card-body">
  68. <div class="d-flex">
  69. <p class="d-flex flex-column">
  70. <span class="fw-bold fs-5">820</span>
  71. <span>Visitors Over Time</span>
  72. </p>
  73. <p class="ms-auto d-flex flex-column text-end">
  74. <span class="text-success">
  75. <i class="bi bi-arrow-up"></i> 12.5%
  76. </span>
  77. <span class="text-secondary">Since last week</span>
  78. </p>
  79. </div>
  80. <!-- /.d-flex -->
  81. <div class="position-relative mb-4">
  82. <div id="visitors-chart"></div>
  83. </div>
  84. <div class="d-flex flex-row justify-content-end">
  85. <span class="me-2">
  86. <i class="bi bi-square-fill text-primary"></i> This Week
  87. </span>
  88. <span>
  89. <i class="bi bi-square-fill text-secondary"></i> Last Week
  90. </span>
  91. </div>
  92. </div>
  93. </div>
  94. <!-- /.card -->
  95. <div class="card mb-4">
  96. <div class="card-header border-0">
  97. <h3 class="card-title">Products</h3>
  98. <div class="card-tools">
  99. <a href="#" class="btn btn-tool btn-sm">
  100. <i class="bi bi-download"></i>
  101. </a>
  102. <a href="#" class="btn btn-tool btn-sm">
  103. <i class="bi bi-list"></i>
  104. </a>
  105. </div>
  106. </div>
  107. <div class="card-body table-responsive p-0">
  108. <table class="table table-striped align-middle">
  109. <thead>
  110. <tr>
  111. <th>Product</th>
  112. <th>Price</th>
  113. <th>Sales</th>
  114. <th>More</th>
  115. </tr>
  116. </thead>
  117. <tbody>
  118. <tr>
  119. <td>
  120. <img
  121. src={path + "/assets/img/default-150x150.png"}
  122. alt="Product 1"
  123. class="rounded-circle img-size-32 me-2"
  124. />
  125. Some Product
  126. </td>
  127. <td>$13 USD</td>
  128. <td>
  129. <small class="text-success me-1">
  130. <i class="bi bi-arrow-up"></i>
  131. 12%
  132. </small>
  133. 12,000 Sold
  134. </td>
  135. <td>
  136. <a href="#" class="text-secondary">
  137. <i class="bi bi-search"></i>
  138. </a>
  139. </td>
  140. </tr>
  141. <tr>
  142. <td>
  143. <img
  144. src={path + "/assets/img/default-150x150.png"}
  145. alt="Product 1"
  146. class="rounded-circle img-size-32 me-2"
  147. />
  148. Another Product
  149. </td>
  150. <td>$29 USD</td>
  151. <td>
  152. <small class="text-info me-1">
  153. <i class="bi bi-arrow-down"></i>
  154. 0.5%
  155. </small>
  156. 123,234 Sold
  157. </td>
  158. <td>
  159. <a href="#" class="text-secondary">
  160. <i class="bi bi-search"></i>
  161. </a>
  162. </td>
  163. </tr>
  164. <tr>
  165. <td>
  166. <img
  167. src={path + "/assets/img/default-150x150.png"}
  168. alt="Product 1"
  169. class="rounded-circle img-size-32 me-2"
  170. />
  171. Amazing Product
  172. </td>
  173. <td>$1,230 USD</td>
  174. <td>
  175. <small class="text-danger me-1">
  176. <i class="bi bi-arrow-down"></i>
  177. 3%
  178. </small>
  179. 198 Sold
  180. </td>
  181. <td>
  182. <a href="#" class="text-secondary">
  183. <i class="bi bi-search"></i>
  184. </a>
  185. </td>
  186. </tr>
  187. <tr>
  188. <td>
  189. <img
  190. src={path + "/assets/img/default-150x150.png"}
  191. alt="Product 1"
  192. class="rounded-circle img-size-32 me-2"
  193. />
  194. Perfect Item
  195. <span class="badge text-bg-danger">NEW</span>
  196. </td>
  197. <td>$199 USD</td>
  198. <td>
  199. <small class="text-success me-1">
  200. <i class="bi bi-arrow-up"></i>
  201. 63%
  202. </small>
  203. 87 Sold
  204. </td>
  205. <td>
  206. <a href="#" class="text-secondary">
  207. <i class="bi bi-search"></i>
  208. </a>
  209. </td>
  210. </tr>
  211. </tbody>
  212. </table>
  213. </div>
  214. </div>
  215. <!-- /.card -->
  216. </div>
  217. <!-- /.col-md-6 -->
  218. <div class="col-lg-6">
  219. <div class="card mb-4">
  220. <div class="card-header border-0">
  221. <div class="d-flex justify-content-between">
  222. <h3 class="card-title">Sales</h3>
  223. <a href="javascript:void(0);" class="link-primary link-offset-2 link-underline-opacity-25 link-underline-opacity-100-hover">View Report</a>
  224. </div>
  225. </div>
  226. <div class="card-body">
  227. <div class="d-flex">
  228. <p class="d-flex flex-column">
  229. <span class="fw-bold fs-5">$18,230.00</span>
  230. <span>Sales Over Time</span>
  231. </p>
  232. <p class="ms-auto d-flex flex-column text-end">
  233. <span class="text-success">
  234. <i class="bi bi-arrow-up"></i> 33.1%
  235. </span>
  236. <span class="text-secondary">Since Past Year</span>
  237. </p>
  238. </div>
  239. <!-- /.d-flex -->
  240. <div class="position-relative mb-4">
  241. <div id="sales-chart"></div>
  242. </div>
  243. <div class="d-flex flex-row justify-content-end">
  244. <span class="me-2">
  245. <i class="bi bi-square-fill text-primary"></i> This year
  246. </span>
  247. <span>
  248. <i class="bi bi-square-fill text-secondary"></i> Last year
  249. </span>
  250. </div>
  251. </div>
  252. </div>
  253. <!-- /.card -->
  254. <div class="card">
  255. <div class="card-header border-0">
  256. <h3 class="card-title">Online Store Overview</h3>
  257. <div class="card-tools">
  258. <a href="#" class="btn btn-sm btn-tool">
  259. <i class="bi bi-download"></i>
  260. </a>
  261. <a href="#" class="btn btn-sm btn-tool">
  262. <i class="bi bi-list"></i>
  263. </a>
  264. </div>
  265. </div>
  266. <div class="card-body">
  267. <div
  268. class="d-flex justify-content-between align-items-center border-bottom mb-3"
  269. >
  270. <p class="text-success fs-2">
  271. <svg
  272. height="32"
  273. fill="none"
  274. stroke="currentColor"
  275. stroke-width="1.5"
  276. viewBox="0 0 24 24"
  277. xmlns="http://www.w3.org/2000/svg"
  278. aria-hidden="true"
  279. >
  280. <path
  281. stroke-linecap="round"
  282. stroke-linejoin="round"
  283. d="M19.5 12c0-1.232-.046-2.453-.138-3.662a4.006 4.006 0 00-3.7-3.7 48.678 48.678 0 00-7.324 0 4.006 4.006 0 00-3.7 3.7c-.017.22-.032.441-.046.662M19.5 12l3-3m-3 3l-3-3m-12 3c0 1.232.046 2.453.138 3.662a4.006 4.006 0 003.7 3.7 48.656 48.656 0 007.324 0 4.006 4.006 0 003.7-3.7c.017-.22.032-.441.046-.662M4.5 12l3 3m-3-3l-3 3"
  284. ></path>
  285. </svg>
  286. </p>
  287. <p class="d-flex flex-column text-end">
  288. <span class="fw-bold">
  289. <i class="bi bi-graph-up-arrow text-success"></i> 12%
  290. </span>
  291. <span class="text-secondary">CONVERSION RATE</span>
  292. </p>
  293. </div>
  294. <!-- /.d-flex -->
  295. <div
  296. class="d-flex justify-content-between align-items-center border-bottom mb-3"
  297. >
  298. <p class="text-info fs-2">
  299. <svg
  300. height="32"
  301. fill="none"
  302. stroke="currentColor"
  303. stroke-width="1.5"
  304. viewBox="0 0 24 24"
  305. xmlns="http://www.w3.org/2000/svg"
  306. aria-hidden="true"
  307. >
  308. <path
  309. stroke-linecap="round"
  310. stroke-linejoin="round"
  311. d="M2.25 3h1.386c.51 0 .955.343 1.087.835l.383 1.437M7.5 14.25a3 3 0 00-3 3h15.75m-12.75-3h11.218c1.121-2.3 2.1-4.684 2.924-7.138a60.114 60.114 0 00-16.536-1.84M7.5 14.25L5.106 5.272M6 20.25a.75.75 0 11-1.5 0 .75.75 0 011.5 0zm12.75 0a.75.75 0 11-1.5 0 .75.75 0 011.5 0z"
  312. ></path>
  313. </svg>
  314. </p>
  315. <p class="d-flex flex-column text-end">
  316. <span class="fw-bold">
  317. <i class="bi bi-graph-up-arrow text-info"></i> 0.8%
  318. </span>
  319. <span class="text-secondary">SALES RATE</span>
  320. </p>
  321. </div>
  322. <!-- /.d-flex -->
  323. <div
  324. class="d-flex justify-content-between align-items-center mb-0"
  325. >
  326. <p class="text-danger fs-2">
  327. <svg
  328. height="32"
  329. fill="none"
  330. stroke="currentColor"
  331. stroke-width="1.5"
  332. viewBox="0 0 24 24"
  333. xmlns="http://www.w3.org/2000/svg"
  334. aria-hidden="true"
  335. >
  336. <path
  337. stroke-linecap="round"
  338. stroke-linejoin="round"
  339. d="M18 18.72a9.094 9.094 0 003.741-.479 3 3 0 00-4.682-2.72m.94 3.198l.001.031c0 .225-.012.447-.037.666A11.944 11.944 0 0112 21c-2.17 0-4.207-.576-5.963-1.584A6.062 6.062 0 016 18.719m12 0a5.971 5.971 0 00-.941-3.197m0 0A5.995 5.995 0 0012 12.75a5.995 5.995 0 00-5.058 2.772m0 0a3 3 0 00-4.681 2.72 8.986 8.986 0 003.74.477m.94-3.197a5.971 5.971 0 00-.94 3.197M15 6.75a3 3 0 11-6 0 3 3 0 016 0zm6 3a2.25 2.25 0 11-4.5 0 2.25 2.25 0 014.5 0zm-13.5 0a2.25 2.25 0 11-4.5 0 2.25 2.25 0 014.5 0z"
  340. ></path>
  341. </svg>
  342. </p>
  343. <p class="d-flex flex-column text-end">
  344. <span class="fw-bold">
  345. <i class="bi bi-graph-down-arrow text-danger"></i>
  346. 1%
  347. </span>
  348. <span class="text-secondary">REGISTRATION RATE</span>
  349. </p>
  350. </div>
  351. <!-- /.d-flex -->
  352. </div>
  353. </div>
  354. </div>
  355. <!-- /.col-md-6 -->
  356. </div>
  357. <!--end::Row-->
  358. </div>
  359. <!--end::Container-->
  360. </div>
  361. <!--end::App Content-->
  362. </main>
  363. <!--end::App Main-->
  364. <Footer />
  365. </div>
  366. <!--end::App Wrapper-->
  367. <!--begin::Script-->
  368. <Scripts path={path} />
  369. <!-- OPTIONAL SCRIPTS -->
  370. <!-- apexcharts -->
  371. <script
  372. src="https://cdn.jsdelivr.net/npm/apexcharts@3.37.1/dist/apexcharts.min.js"
  373. integrity="sha256-+vh8GkaU7C9/wbSLIcwq82tQ2wTf44aOHA8HlBMwRI8="
  374. crossorigin="anonymous"
  375. ></script>
  376. <script is:inline>
  377. // NOTICE!! DO NOT USE ANY OF THIS JAVASCRIPT
  378. // IT'S ALL JUST JUNK FOR DEMO
  379. // ++++++++++++++++++++++++++++++++++++++++++
  380. const visitors_chart_options = {
  381. series: [
  382. {
  383. name: "High - 2023",
  384. data: [100, 120, 170, 167, 180, 177, 160],
  385. },
  386. {
  387. name: "Low - 2023",
  388. data: [60, 80, 70, 67, 80, 77, 100],
  389. },
  390. ],
  391. chart: {
  392. height: 200,
  393. type: "line",
  394. toolbar: {
  395. show: false,
  396. },
  397. },
  398. colors: ["#0d6efd", "#adb5bd"],
  399. stroke: {
  400. curve: "smooth",
  401. },
  402. grid: {
  403. borderColor: "#e7e7e7",
  404. row: {
  405. colors: ["#f3f3f3", "transparent"], // takes an array which will be repeated on columns
  406. opacity: 0.5,
  407. },
  408. },
  409. legend: {
  410. show: false,
  411. },
  412. markers: {
  413. size: 1,
  414. },
  415. xaxis: {
  416. categories: ["22th", "23th", "24th", "25th", "26th", "27th", "28th"],
  417. },
  418. };
  419. const visitors_chart = new ApexCharts(
  420. document.querySelector("#visitors-chart"),
  421. visitors_chart_options
  422. );
  423. visitors_chart.render();
  424. const sales_chart_options = {
  425. series: [
  426. {
  427. name: "Net Profit",
  428. data: [44, 55, 57, 56, 61, 58, 63, 60, 66],
  429. },
  430. {
  431. name: "Revenue",
  432. data: [76, 85, 101, 98, 87, 105, 91, 114, 94],
  433. },
  434. {
  435. name: "Free Cash Flow",
  436. data: [35, 41, 36, 26, 45, 48, 52, 53, 41],
  437. },
  438. ],
  439. chart: {
  440. type: "bar",
  441. height: 200,
  442. },
  443. plotOptions: {
  444. bar: {
  445. horizontal: false,
  446. columnWidth: "55%",
  447. endingShape: "rounded",
  448. },
  449. },
  450. legend: {
  451. show: false,
  452. },
  453. colors: ["#0d6efd", "#20c997", "#ffc107"],
  454. dataLabels: {
  455. enabled: false,
  456. },
  457. stroke: {
  458. show: true,
  459. width: 2,
  460. colors: ["transparent"],
  461. },
  462. xaxis: {
  463. categories: [
  464. "Feb",
  465. "Mar",
  466. "Apr",
  467. "May",
  468. "Jun",
  469. "Jul",
  470. "Aug",
  471. "Sep",
  472. "Oct",
  473. ],
  474. },
  475. fill: {
  476. opacity: 1,
  477. },
  478. tooltip: {
  479. y: {
  480. formatter: function (val) {
  481. return "$ " + val + " thousands";
  482. },
  483. },
  484. },
  485. };
  486. const sales_chart = new ApexCharts(
  487. document.querySelector("#sales-chart"),
  488. sales_chart_options
  489. );
  490. sales_chart.render();
  491. </script>
  492. <!--end::Script-->
  493. </body><!--end::Body-->
  494. </html>