PISAN
สร้างหน้าแดชบอร์ดอินเตอร์แอคทิฟสามารถเพิ่มลบแก้ไขข้อมูลได้บันทึกข้อมูลได้เชื่อมต่อกับฟิลด์บนส่วนพรีวิวโอัพเดทดูผลลัพธ์ได้ทันที ใช้การจัดการข้อมูลมาตรฐานโปรดักชั่น
9a9a400
verified
| <html lang="th" data-theme="light"> | |
| <head> | |
| <meta charset="UTF-8"> | |
| <meta name="viewport" content="width=device-width, initial-scale=1.0"> | |
| <title>Dashboard - PDF Wizard</title> | |
| <link rel="stylesheet" href="style.css"> | |
| <script src="https://cdn.tailwindcss.com"></script> | |
| <script src="https://unpkg.com/feather-icons"></script> | |
| </head> | |
| <body class="bg-slate-100 dark:bg-slate-900 text-slate-800 dark:text-slate-200 font-sans antialiased"> | |
| <app-navbar></app-navbar> | |
| <div class="flex h-[calc(100vh-var(--header-height))]"> | |
| <app-sidebar></app-sidebar> | |
| <main class="flex-1 overflow-auto p-6"> | |
| <div class="max-w-7xl mx-auto"> | |
| <div class="flex justify-between items-center mb-6"> | |
| <h1 class="text-2xl font-bold flex items-center gap-2"> | |
| <i data-feather="database"></i> Data Dashboard | |
| </h1> | |
| <button id="btn-add-record" class="btn-primary"> | |
| <i data-feather="plus"></i> Add Record | |
| </button> | |
| </div> | |
| <div class="bg-white dark:bg-slate-800 rounded-xl shadow-md overflow-hidden"> | |
| <div class="overflow-x-auto"> | |
| <table class="w-full"> | |
| <thead class="bg-slate-50 dark:bg-slate-700"> | |
| <tr> | |
| <th class="px-6 py-3 text-left text-xs font-medium text-slate-500 dark:text-slate-400 uppercase tracking-wider">ID</th> | |
| <th class="px-6 py-3 text-left text-xs font-medium text-slate-500 dark:text-slate-400 uppercase tracking-wider">Name</th> | |
| <th class="px-6 py-3 text-left text-xs font-medium text-slate-500 dark:text-slate-400 uppercase tracking-wider">Position</th> | |
| <th class="px-6 py-3 text-left text-xs font-medium text-slate-500 dark:text-slate-400 uppercase tracking-wider">Company</th> | |
| <th class="px-6 py-3 text-right text-xs font-medium text-slate-500 dark:text-slate-400 uppercase tracking-wider">Actions</th> | |
| </tr> | |
| </thead> | |
| <tbody id="data-table-body" class="divide-y divide-slate-200 dark:divide-slate-700"> | |
| <!-- Records will be loaded here --> | |
| </tbody> | |
| </table> | |
| </div> | |
| </div> | |
| </div> | |
| </main> | |
| </div> | |
| <!-- Record Modal --> | |
| <div id="record-modal" class="fixed inset-0 bg-black/70 backdrop-blur-sm z-[200] hidden flex items-center justify-center p-4"> | |
| <div class="bg-white dark:bg-slate-800 w-full max-w-2xl rounded-xl shadow-2xl overflow-hidden transform transition-all"> | |
| <div class="px-6 py-4 border-b border-slate-200 dark:border-slate-700 flex justify-between items-center bg-slate-50 dark:bg-slate-900"> | |
| <h3 class="text-lg font-bold text-slate-800 dark:text-white flex items-center gap-2"> | |
| <i data-feather="edit-2"></i> <span id="modal-title">Edit Record</span> | |
| </h3> | |
| <button class="close-modal text-slate-400 hover:text-red-500 transition-colors"> | |
| <i data-feather="x"></i> | |
| </button> | |
| </div> | |
| <div class="p-6 max-h-[70vh] overflow-y-auto"> | |
| <form id="record-form" class="grid grid-cols-1 md:grid-cols-2 gap-4"> | |
| <input type="hidden" id="record-id"> | |
| <div class="form-group"> | |
| <label for="field-1" class="block text-sm font-medium text-slate-700 dark:text-slate-300 mb-1">Full Name</label> | |
| <input type="text" id="field-1" class="form-input" required> | |
| </div> | |
| <div class="form-group"> | |
| <label for="field-2" class="block text-sm font-medium text-slate-700 dark:text-slate-300 mb-1">Position</label> | |
| <input type="text" id="field-2" class="form-input" required> | |
| </div> | |
| <div class="form-group"> | |
| <label for="field-3" class="block text-sm font-medium text-slate-700 dark:text-slate-300 mb-1">Department</label> | |
| <input type="text" id="field-3" class="form-input"> | |
| </div> | |
| <div class="form-group"> | |
| <label for="field-4" class="block text-sm font-medium text-slate-700 dark:text-slate-300 mb-1">Photo URL</label> | |
| <input type="text" id="field-4" class="form-input" placeholder="https://..."> | |
| </div> | |
| <div class="form-group"> | |
| <label for="field-5" class="block text-sm font-medium text-slate-700 dark:text-slate-300 mb-1">Start Date</label> | |
| <input type="date" id="field-5" class="form-input"> | |
| </div> | |
| <div class="form-group"> | |
| <label for="field-6" class="block text-sm font-medium text-slate-700 dark:text-slate-300 mb-1">End Date</label> | |
| <input type="date" id="field-6" class="form-input"> | |
| </div> | |
| <div class="form-group md:col-span-2"> | |
| <label for="field-7" class="block text-sm font-medium text-slate-700 dark:text-slate-300 mb-1">Company</label> | |
| <input type="text" id="field-7" class="form-input" required> | |
| </div> | |
| <div class="form-group"> | |
| <label for="field-8" class="block text-sm font-medium text-slate-700 dark:text-slate-300 mb-1">City</label> | |
| <input type="text" id="field-8" class="form-input"> | |
| </div> | |
| <div class="form-group"> | |
| <label for="field-9" class="block text-sm font-medium text-slate-700 dark:text-slate-300 mb-1">Postal Code</label> | |
| <input type="text" id="field-9" class="form-input"> | |
| </div> | |
| <div class="form-group md:col-span-2"> | |
| <label for="field-10" class="block text-sm font-medium text-slate-700 dark:text-slate-300 mb-1">Country</label> | |
| <input type="text" id="field-10" class="form-input"> | |
| </div> | |
| <div class="form-group"> | |
| <label for="field-11" class="block text-sm font-medium text-slate-700 dark:text-slate-300 mb-1">Reference No.</label> | |
| <input type="text" id="field-11" class="form-input"> | |
| </div> | |
| <div class="form-group"> | |
| <label for="field-12" class="block text-sm font-medium text-slate-700 dark:text-slate-300 mb-1">Document No.</label> | |
| <input type="text" id="field-12" class="form-input"> | |
| </div> | |
| </form> | |
| </div> | |
| <div class="px-6 py-4 border-t border-slate-200 dark:border-slate-700 flex justify-end gap-3"> | |
| <button id="btn-cancel" class="btn-secondary">Cancel</button> | |
| <button id="btn-save" class="btn-primary">Save Record</button> | |
| </div> | |
| </div> | |
| </div> | |
| <!-- Components Scripts --> | |
| <script src="components/navbar.js"></script> | |
| <script src="components/sidebar.js"></script> | |
| <!-- Dashboard Script --> | |
| <script src="dashboard.js"></script> | |
| <script>feather.replace();</script> | |
| </body> | |
| </html> |