feat: 更新课程卡片布局,优化教案设计页面,添加响应式屏幕支持
This commit is contained in:
parent
b03b2d9273
commit
b2d5f5260c
@ -52,17 +52,17 @@ const openCourse = (id: number) => {
|
|||||||
<span>{{ data.teacherName || "未知教师" }}</span>
|
<span>{{ data.teacherName || "未知教师" }}</span>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
<div class="flex justify-between gap-1 text-xs text-muted-foreground/80">
|
<div class="flex justify-between gap-4 text-xs text-muted-foreground/80">
|
||||||
<div class="flex-1 flex flex-col">
|
<div class=" flex flex-col">
|
||||||
<p>
|
<p>
|
||||||
学期:<span>{{ data.semester || "未知" }}</span>
|
学期 <span>{{ data.semester || "未知" }}</span>
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
课程ID:<span>{{ data.id }}</span>
|
课程ID:<span>{{ data.id }}</span>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
<div class="flex flex-col items-end">
|
<div class="flex-1 flex flex-col items-end">
|
||||||
<p>{{ data.schoolName }}</p>
|
<p class="text-ellipsis line-clamp-1">{{ data.schoolName }}</p>
|
||||||
<div class="flex items-center gap-1">
|
<div class="flex items-center gap-1">
|
||||||
<div
|
<div
|
||||||
v-if="data.status === 0"
|
v-if="data.status === 0"
|
||||||
|
@ -1,7 +1,58 @@
|
|||||||
<script lang="ts" setup></script>
|
<script lang="ts" setup>
|
||||||
|
const tab = ref('text')
|
||||||
|
</script>
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
<div>教案设计</div>
|
<div class="flex flex-col gap-4">
|
||||||
|
<Tabs
|
||||||
|
v-model="tab"
|
||||||
|
class="w-[400px]"
|
||||||
|
>
|
||||||
|
<TabsList>
|
||||||
|
<TabsTrigger value="text">
|
||||||
|
<div class="flex items-center gap-1">
|
||||||
|
<Icon name="tabler:article" />
|
||||||
|
<span>文本生成</span>
|
||||||
|
</div>
|
||||||
|
</TabsTrigger>
|
||||||
|
<TabsTrigger value="chapter">
|
||||||
|
<div class="flex items-center gap-1">
|
||||||
|
<Icon name="tabler:text-plus" />
|
||||||
|
<span>章节生成</span>
|
||||||
|
</div>
|
||||||
|
</TabsTrigger>
|
||||||
|
<TabsTrigger value="bot">
|
||||||
|
<div class="flex items-center gap-1">
|
||||||
|
<Icon name="tabler:robot" />
|
||||||
|
<span>课程智能体</span>
|
||||||
|
</div>
|
||||||
|
</TabsTrigger>
|
||||||
|
</TabsList>
|
||||||
|
</Tabs>
|
||||||
|
<div class="flex items-start。 gap-4">
|
||||||
|
<div
|
||||||
|
v-if="tab === 'chapter'"
|
||||||
|
class="flex h-20 flex-col justify-center items-center gap-1 px-8 rounded-md border"
|
||||||
|
>
|
||||||
|
<Icon
|
||||||
|
name="tabler:text-plus"
|
||||||
|
class="text-3xl"
|
||||||
|
/>
|
||||||
|
<span class="text-xs font-medium">选择章节</span>
|
||||||
|
</div>
|
||||||
|
<Textarea
|
||||||
|
placeholder="请输入文本来生成内容"
|
||||||
|
class="h-20 flex-1"
|
||||||
|
/>
|
||||||
|
<div class="flex flex-col items-center gap-2">
|
||||||
|
<Button size="lg">
|
||||||
|
<Icon name="tabler:stars" />
|
||||||
|
生成教案
|
||||||
|
</Button>
|
||||||
|
<p class="text-xs text-foreground/40">内容由 AI 生成,仅供参考</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<style scoped></style>
|
<style scoped></style>
|
||||||
|
@ -308,7 +308,7 @@ const onDeleteCourse = (courseId: number) => {
|
|||||||
</div>
|
</div>
|
||||||
<div
|
<div
|
||||||
v-if="coursesList?.rows && coursesList.rows.length > 0"
|
v-if="coursesList?.rows && coursesList.rows.length > 0"
|
||||||
class="grid grid-cols-6 gap-8"
|
class="grid grid-cols-1 lg:grid-cols-4 3xl:grid-cols-5 gap-8"
|
||||||
>
|
>
|
||||||
<CourseCard
|
<CourseCard
|
||||||
v-for="course in coursesList?.rows"
|
v-for="course in coursesList?.rows"
|
||||||
|
@ -4,6 +4,12 @@ export default {
|
|||||||
content: [],
|
content: [],
|
||||||
theme: {
|
theme: {
|
||||||
extend: {
|
extend: {
|
||||||
|
screens: {
|
||||||
|
'3xl': '1792px',
|
||||||
|
'4xl': '2048px',
|
||||||
|
'5xl': '2560px',
|
||||||
|
'6xl': '3840px',
|
||||||
|
},
|
||||||
borderRadius: {
|
borderRadius: {
|
||||||
lg: 'var(--radius)',
|
lg: 'var(--radius)',
|
||||||
md: 'calc(var(--radius) - 2px)',
|
md: 'calc(var(--radius) - 2px)',
|
||||||
@ -51,14 +57,14 @@ export default {
|
|||||||
5: 'hsl(var(--chart-5))',
|
5: 'hsl(var(--chart-5))',
|
||||||
},
|
},
|
||||||
sidebar: {
|
sidebar: {
|
||||||
'DEFAULT': 'hsl(var(--sidebar-background))',
|
DEFAULT: 'hsl(var(--sidebar-background))',
|
||||||
'foreground': 'hsl(var(--sidebar-foreground))',
|
foreground: 'hsl(var(--sidebar-foreground))',
|
||||||
'primary': 'hsl(var(--sidebar-primary))',
|
primary: 'hsl(var(--sidebar-primary))',
|
||||||
'primary-foreground': 'hsl(var(--sidebar-primary-foreground))',
|
'primary-foreground': 'hsl(var(--sidebar-primary-foreground))',
|
||||||
'accent': 'hsl(var(--sidebar-accent))',
|
accent: 'hsl(var(--sidebar-accent))',
|
||||||
'accent-foreground': 'hsl(var(--sidebar-accent-foreground))',
|
'accent-foreground': 'hsl(var(--sidebar-accent-foreground))',
|
||||||
'border': 'hsl(var(--sidebar-border))',
|
border: 'hsl(var(--sidebar-border))',
|
||||||
'ring': 'hsl(var(--sidebar-ring))',
|
ring: 'hsl(var(--sidebar-ring))',
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
Loading…
Reference in New Issue
Block a user