From 42f2826d4784052370be356ff1c7f73fe38f4737 Mon Sep 17 00:00:00 2001
From: lion <120344285@qq.com>
Date: Wed, 10 Jun 2026 10:26:57 +0800
Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E4=BA=A4?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.env.development | 1 +
src/pages/home/index.vue | 30 +++++++++++++++++++++++++-----
src/types/api.ts | 2 +-
3 files changed, 27 insertions(+), 6 deletions(-)
diff --git a/.env.development b/.env.development
index 5d2ce20..d7cd571 100644
--- a/.env.development
+++ b/.env.development
@@ -4,3 +4,4 @@ VITE_API_PROXY_TARGET=http://127.0.0.1:8000
# 微信小程序:默认连线上(HBuilder 直接运行无需本机后端)
# 若需连本机后端,改为 http://127.0.0.1:8000/api/miniapp/v1 并启动 php artisan serve
VITE_MP_API_BASE=https://slake.ali251.langye.net/api/miniapp/v1
+#VITE_MP_API_BASE=http://127.0.0.1:8000/api/miniapp/v1
diff --git a/src/pages/home/index.vue b/src/pages/home/index.vue
index 30feed3..3e89d2d 100644
--- a/src/pages/home/index.vue
+++ b/src/pages/home/index.vue
@@ -22,14 +22,14 @@
- {{ banner.kicker || '推荐' }}
+ {{ banner.kicker }}
{{ banner.title }}
-
+
{{ banner.status_label }}
{{ banner.seats_text }}
-
- {{ banner.datetime_text }}
+
+ {{ banner.datetime_text }}
@@ -182,6 +182,18 @@ const successVisible = ref(false)
const successMessage = ref('')
const { privacyVisible, privacyContractName, onPrivacyConfirm, onPrivacyCancel } = usePrivacyModal()
+function showBannerKicker(banner: HomeBanner): boolean {
+ return banner.type !== 'custom' && !!banner.kicker
+}
+
+function showBannerDatetime(banner: HomeBanner): boolean {
+ return banner.type !== 'news' && !!banner.datetime_text
+}
+
+function showBannerMeta(banner: HomeBanner): boolean {
+ return !!(banner.status_label || banner.seats_text || showBannerDatetime(banner))
+}
+
const displayBanners = computed(() => {
if (banners.value.length) return banners.value
const course = hotCourses.value[0]
@@ -212,7 +224,15 @@ async function loadData() {
])
banners.value = bannerRes.items.map((item) => ({
...item,
- kicker: item.kicker || (item.type === 'course' ? '热门课程' : item.type === 'activity' ? '热门活动' : '推荐'),
+ kicker:
+ item.kicker
+ || (item.type === 'course'
+ ? '热门课程'
+ : item.type === 'activity'
+ ? '热门活动'
+ : item.type === 'news'
+ ? '资讯'
+ : undefined),
}))
hotCourses.value = hotRes.items.map(adaptCourse)
latestCourses.value = latestRes.items.map(adaptCourse)
diff --git a/src/types/api.ts b/src/types/api.ts
index 668a8bb..7d19e14 100644
--- a/src/types/api.ts
+++ b/src/types/api.ts
@@ -84,7 +84,7 @@ export interface ApiBanner {
status_label?: string | null
seats_text?: string | null
datetime_text?: string | null
- target_type: 'course' | 'activity' | 'custom'
+ target_type: 'course' | 'activity' | 'news' | 'custom'
target_id?: number | null
}