// src/router/index.js import { createRouter, createWebHistory } from 'vue-router'; // 1. Import Layouts import DefaultLayout from "@/layouts/DefaultLayout.vue"; import LandingLayout from "@/layouts/LandingLayout.vue"; // 2. Import Views (สำคัญ: ต้อง import ชื่อที่ถูกต้อง) import LandingPageView from "@/views/LandingPageView.vue"; // View สำหรับหน้า Landing Page import HomeView from "@/views/HomeView.vue"; // View สำหรับหน้า Home หลัก (ที่มี Calousels, News ฯลฯ) import ContentView from "@/views/ContentView.vue"; // View สำหรับแสดงรายละเอียด เรื่องราวดี ๆ ที่อยากบอกต่อ import NewsCategoryView from "@/views/NewsCategoryView.vue"; // View สำหรับแสดงรายการข่าวตามหมวดหมู่ import NotFoundView from '@/views/NotFoundView.vue'; // View สำหรับแสดงหน้า Not Found import TabContentView from "@/views/TabContentView.vue"; // // View สำหรับแสดงรายละเอียดข่าวสารอับเดต const routes = [ // --- Route สำหรับหน้า Landing Page (ใช้ LandingLayout) --- { path: '/', component: LandingLayout, // LandingLayout คือกรอบของหน้า Landing children: [ { path: '', // นี่คือ path สำหรับเนื้อหาที่แสดงเมื่อเข้าถึง '/' name: 'landing', component: LandingPageView, // ชี้ไปที่ View ที่มีเนื้อหาเฉพาะ Landing }, ], }, // --- Route สำหรับหน้า Home และหน้าอื่นๆ ที่ใช้ DefaultLayout --- { path: '/', component: DefaultLayout, // DefaultLayout คือกรอบของหน้า Home หลัก children: [ { path: 'home', // HomeView จะถูกโหลดเมื่อเข้าถึง /home name: 'home', component: HomeView, // HomeView ที่มี Calousels, News, ฯลฯ }, // !!! เพิ่ม Route สำหรับ ContentView !!! { path: 'news-content/:id', // Path สำหรับรายละเอียดข่าว เช่น /news-content/1, /news-content/2 name: 'ContentView', component: ContentView, props: true // ส่งค่า parameter (id) เป็น props ไปยัง component ได้ }, // !!! เพิ่ม Route สำหรับ NewsCategoryView !!! { path: 'tab-news/:category', // Path สำหรับข่าวตามหมวดหมู่ เช่น /news/RTAFNews name: 'NewsCategoryView', component: NewsCategoryView, props: true // ส่งค่า parameter (category) เป็น props ไปยัง component ได้ }, // !!! เพิ่ม Route สำหรับ ContentView !!! { path: 'tab-news-content/:id', // Path สำหรับรายละเอียดข่าว เช่น /news-content/1, /news-content/2 name: 'TabContentView', component: TabContentView, props: true // ส่งค่า parameter (id) เป็น props ไปยัง component ได้ }, // ... ( routes อื่นๆ ที่อาจจะใช้ DefaultLayout ) // *** เส้นทาง 404 (ต้องอยู่สุดท้ายเสมอ!) *** { path: '/:pathMatch(.*)*', // นี้คือ catch-all route ที่จะจับ URL ที่ไม่ตรงกับข้างบนทั้งหมด name: 'NotFound', component: NotFoundView } ], }, ]; const router = createRouter({ history: createWebHistory(import.meta.env.BASE_URL), routes, }); // อย่าลืม export default router; ที่ท้ายไฟล์ export default router;