elearning/Frontend-Learner/pages/dashboard/announcements.vue

142 lines
9.8 KiB
Vue

<script setup lang="ts">
/**
* @file announcements.vue
* @description หน้าแสดงประกาศระบบและข่าวสารเกี่ยวกับคอร์สเรียน (Page displaying system and course-related announcements.)
* ใช้เลย์เอาต์เริ่มต้นและต้องตรวจสอบสิทธิ์ (Uses the default layout and requires authentication.)
*/
// ข้อมูล metadata ของหน้า: ใช้เลย์เอาต์ 'default' และระบบตรวจสอบสิทธิ์ 'auth' (Define page metadata: usage of 'default' layout and 'auth' middleware)
definePageMeta({
layout: 'default',
middleware: 'auth'
})
// กำหนดชื่อหัวหน้าเว็บสำหรับ SEO (Set page title for SEO)
useHead({
title: 'ประกาศ - e-Learning'
})
</script>
<template>
<div class="page-container">
<!-- วนหวหนาเว (Page Header) -->
<h1 class="text-3xl font-black mb-10 text-slate-900 dark:text-white">ประกาศ</h1>
<!--
โครงสรางหล: กร 12 คอลมน (Main Layout: 12-column Grid)
- คอลมนาย (span-8): เนอหาประกาศหล (Left Column: Main announcements content)
- คอลมนขวา (span-4): แถบหมวดหม/วกรอง (Right Column: Categories/Filter sidebar)
-->
<div class="grid-12">
<!-- ==========================================
นทเนอหาหล (านซาย) (MAIN CONTENT AREA (Left))
========================================== -->
<div class="col-span-8">
<!-- หนาท 1: ประกาศระบบสำค (Feature 1: Critical System Announcement) -->
<div class="card mb-6">
<div class="flex items-center gap-2 mb-2">
<span class="status-pill status-warning">สำค</span>
<span class="text-sm text-slate-600 dark:text-slate-400">24 .. 2024</span>
</div>
<h2 class="text-xl font-bold mb-4 text-slate-900 dark:text-white">แจงปดปรบปรงระบบ</h2>
<p class="mb-4">เราจะทำการปดปรบปรงระบบในวนท 25 .. เวลา 02:00 - 04:00 . ขออภยในความไมสะดวก</p>
<!-- วนแนบไฟล (Attachment Block) -->
<div class="flex items-center gap-2 p-3 rounded" style="background: var(--neutral-50); border: 1px solid var(--border-color); width: fit-content;">
<span>📎</span> <span class="text-sm font-bold">ตารางการปดปรบปร.pdf</span>
</div>
</div>
<!-- ประกาศ: ปเดตคอร UX/UI (Announcement: UX/UI Course Update) -->
<div class="card mb-4" style="border-left: 4px solid var(--primary);">
<div class="flex justify-between items-start mb-2" style="flex-wrap: wrap; gap: 8px;">
<div>
<span class="status-pill status-neutral mb-2">เบองตนการออกแบบ UX/UI</span>
<h3 class="font-bold text-slate-900 dark:text-white">เรมเปดหลกสตรเดอนมกราคมแล!</h3>
</div>
<span class="text-sm text-slate-600 dark:text-slate-400">23 .. 2024</span>
</div>
<p class="text-slate-700 dark:text-slate-300 mb-2">กเรยนทลงทะเบยนไว สามารถเรมเขาเรยนบทนำไดงแตนนเปนตนไป...</p>
<NuxtLink to="/browse/discovery" class="text-sm" style="color: var(--primary);">รายละเอยดคอร</NuxtLink>
</div>
<!-- ประกาศ: เอกสารประกอบการเรยนดานการเขาถงเว (WCAG) (Announcement: Accessibility (WCAG) Material) -->
<div class="card mb-4" style="border-left: 4px solid var(--success);">
<div class="flex justify-between items-start mb-2" style="flex-wrap: wrap; gap: 8px;">
<div>
<span class="status-pill status-neutral mb-2">การเขาถงเว (WCAG)</span>
<h3 class="font-bold text-slate-900 dark:text-white">ดาวนโหลดเอกสารประกอบการเรยนไดแล</h3>
</div>
<span class="text-sm text-slate-600 dark:text-slate-400">22 .. 2024</span>
</div>
<p class="text-slate-700 dark:text-slate-300 mb-2">เราไดเพมไฟล PDF สรปเกณฑ WCAG 2.2 ในสวนของเอกสารประกอบการเรยนแล...</p>
<!-- ไฟลแนบแบบเล (Small Attachment) -->
<div class="flex items-center gap-2 p-2 rounded mt-2" style="background: var(--neutral-50); border: 1px dotted var(--border-color); width: fit-content;">
<span>📄</span> <span class="text-xs">WCAG_2.2_Summary.pdf</span>
</div>
</div>
<!-- ประกาศ: ปเดตคอร React (Announcement: React Course Update) -->
<div class="card mb-4" style="border-left: 4px solid var(--warning);">
<div class="flex justify-between items-start mb-2" style="flex-wrap: wrap; gap: 8px;">
<div>
<span class="status-pill status-neutral mb-2">ปแบบ React นส</span>
<h3 class="font-bold text-slate-900 dark:text-white">ปเดตบทเรยนใหม: React Server Components</h3>
</div>
<span class="text-sm text-slate-600 dark:text-slate-400">21 .. 2024</span>
</div>
<p class="text-slate-700 dark:text-slate-300 mb-2">เพมเนอหาการใชงาน RSC และการจดการ State ใน Next.js 14...</p>
<NuxtLink to="/classroom/learning" class="btn btn-secondary text-sm" style="width: fit-content;">เขาสบทเรยน</NuxtLink>
</div>
<!-- ประกาศ: คอรสใหมวไป (Announcement: General New Course) -->
<div class="card mb-4">
<div class="flex justify-between items-start mb-2" style="flex-wrap: wrap; gap: 8px;">
<h3 class="font-bold text-slate-900 dark:text-white">คอรสใหม: Advanced Python</h3>
<span class="text-sm text-slate-600 dark:text-slate-400">20 .. 2024</span>
</div>
<p class="text-slate-700 dark:text-slate-300 mb-2">พบกบคอรสใหมาส เรยนรโครงสรางขอม Python...</p>
<a href="#" class="text-sm" style="color: var(--primary);">านเพมเต</a>
</div>
<!-- ประกาศ: ปเดตแพลตฟอร (Announcement: Platform Update) -->
<div class="card mb-4">
<div class="flex justify-between items-start mb-2" style="flex-wrap: wrap; gap: 8px;">
<h3 class="font-bold text-slate-900 dark:text-white">นดอนรบสไซนใหม!</h3>
<span class="text-sm text-slate-600 dark:text-slate-400">15 .. 2024</span>
</div>
<p class="text-slate-700 dark:text-slate-300 mb-2">เราปรบโฉมใหมไฉไลกวาเด เพอการใชงานทงข...</p>
<a href="#" class="text-sm" style="color: var(--primary);">านเพมเต</a>
</div>
</div>
<!-- ==========================================
แถบดานขาง (านขวา) (SIDEBAR (Right))
วกรองหมวดหม (Category Filters)
========================================== -->
<div class="col-span-4">
<div class="card">
<h3 class="font-bold mb-4 text-slate-900 dark:text-white">หมวดหม</h3>
<ul class="flex flex-col gap-2">
<!-- วเลอกตวกรอง: งหมด (Filter Option: All) -->
<li class="flex justify-between items-center p-2 rounded cursor-pointer" style="background: var(--neutral-50);">
<span>งหมด</span>
<span class="text-muted">15</span>
</li>
<!-- วเลอกตวกรอง: ปเดตระบบ (Filter Option: System Updates) -->
<li class="flex justify-between items-center p-2 rounded cursor-pointer">
<span>ปเดตระบบ</span>
<span class="text-muted">3</span>
</li>
<!-- วเลอกตวกรอง: าวสารคอร (Filter Option: Course News) -->
<li class="flex justify-between items-center p-2 rounded cursor-pointer">
<span>าวสารคอร</span>
<span class="text-muted">11</span>
</li>
</ul>
</div>
</div>
</div>
</div>
</template>