2025-11-26 22:46:25 +00:00
|
|
|
<script setup lang="ts">
|
|
|
|
|
import { ref } from 'vue';
|
2025-12-17 14:47:51 +00:00
|
|
|
import { Card, Typography, Row, Col, Tag, Button } from 'ant-design-vue';
|
2025-11-26 22:46:25 +00:00
|
|
|
|
|
|
|
|
const lessons = ref([
|
2025-12-17 14:47:51 +00:00
|
|
|
{
|
|
|
|
|
id: 'l1',
|
|
|
|
|
title: 'Getting Started',
|
|
|
|
|
summary: 'Overview of the codebase and conventions.',
|
|
|
|
|
type: 'Video',
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
id: 'l2',
|
|
|
|
|
title: 'Core Concepts',
|
|
|
|
|
summary: 'Key patterns and architecture.',
|
|
|
|
|
type: 'Article',
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
id: 'l3',
|
|
|
|
|
title: 'Hands-on Lab',
|
|
|
|
|
summary: 'Small task to practice.',
|
|
|
|
|
type: 'Practical',
|
|
|
|
|
},
|
2025-11-26 22:46:25 +00:00
|
|
|
]);
|
|
|
|
|
</script>
|
|
|
|
|
|
|
|
|
|
<template>
|
2025-12-17 14:47:51 +00:00
|
|
|
<div class="page">
|
|
|
|
|
<Typography.Title :level="2">Training Module</Typography.Title>
|
|
|
|
|
<Typography.Paragraph type="secondary"
|
|
|
|
|
>Interactive module with lessons and
|
|
|
|
|
checkpoints.</Typography.Paragraph
|
|
|
|
|
>
|
2025-11-26 22:46:25 +00:00
|
|
|
|
2025-12-17 14:47:51 +00:00
|
|
|
<Row :gutter="16">
|
|
|
|
|
<Col v-for="lesson in lessons" :key="lesson.id" :xs="24" :md="8">
|
|
|
|
|
<Card class="card" hoverable :bordered="false">
|
|
|
|
|
<Typography.Title :level="4">{{
|
|
|
|
|
lesson.title
|
|
|
|
|
}}</Typography.Title>
|
|
|
|
|
<Typography.Paragraph>{{
|
|
|
|
|
lesson.summary
|
|
|
|
|
}}</Typography.Paragraph>
|
|
|
|
|
<div class="lesson-footer">
|
|
|
|
|
<Tag color="purple">{{ lesson.type }}</Tag>
|
|
|
|
|
<Button type="primary" size="small">Open</Button>
|
|
|
|
|
</div>
|
|
|
|
|
</Card>
|
|
|
|
|
</Col>
|
|
|
|
|
</Row>
|
|
|
|
|
</div>
|
2025-11-26 22:46:25 +00:00
|
|
|
</template>
|
|
|
|
|
|
|
|
|
|
<style scoped>
|
2025-12-17 14:47:51 +00:00
|
|
|
.page {
|
|
|
|
|
max-width: 1100px;
|
|
|
|
|
margin: 0 auto;
|
|
|
|
|
padding: 1rem;
|
2025-11-26 22:46:25 +00:00
|
|
|
}
|
2025-12-17 14:47:51 +00:00
|
|
|
.card {
|
|
|
|
|
background: #0f172a;
|
|
|
|
|
border: 1px solid #1f2937;
|
|
|
|
|
color: #e5e7eb;
|
2025-11-26 22:46:25 +00:00
|
|
|
}
|
|
|
|
|
.lesson-footer {
|
2025-12-17 14:47:51 +00:00
|
|
|
display: flex;
|
|
|
|
|
justify-content: space-between;
|
|
|
|
|
align-items: center;
|
|
|
|
|
margin-top: 0.75rem;
|
2025-11-26 22:46:25 +00:00
|
|
|
}
|
|
|
|
|
</style>
|