From 8dd9360a0e4cfd22ea9e261bec3821eff3f57fe8 Mon Sep 17 00:00:00 2001
From: cloudroam <cloudroam>
Date: 星期二, 12 八月 2025 10:10:07 +0800
Subject: [PATCH] add:分享功能

---
 sub-pages/film-list/film-list.vue |   75 +++++++++++++++++++++++++++++++++----
 1 files changed, 67 insertions(+), 8 deletions(-)

diff --git a/sub-pages/film-list/film-list.vue b/sub-pages/film-list/film-list.vue
index 47377ab..3d06b07 100644
--- a/sub-pages/film-list/film-list.vue
+++ b/sub-pages/film-list/film-list.vue
@@ -38,27 +38,67 @@
 const { navigateTo } = useNavigator()
 
 import { getTabList,getFilmWorksBase } from '@/sub-pages/utils/api'
+import { useUserStore } from '@/store/user'
 
 const theme = ref('light')
 const search = ref('')
 const keywords = ref('') // 新增关键词状态
 const tabList = ref<FilmCategoryTree[]>([])
+const currentCategory = ref('') // 默认为空表示全部
 const onSearch = (value: string) => {
   const searchValue = typeof value === 'string' ? value : search.value
   keywords.value = searchValue
   filmPage.value = 1
   films.value = []
   filmStatus.value = 'loadmore'
- getfilms()
+  getfilms()
 
 }
 
-const handleDetailClick = (item: FilmCategoryTree) => {
-    const urlOfficicl=`/sub-pages/film-list/film-official-detail?id=${item.id}`;
-    const url= `/sub-pages/film-list/film-detail?id=${item.id}` 
-    navigateTo(url)
+const click = (item: FilmCategoryTree) => {
+  currentCategory.value = item.name // 更新当前分类
+  keywords.value = search.value
+  filmPage.value = 1             // 重置页码
+  films.value = []               // 清空电影列表
+  filmStatus.value = 'loadmore'  // 重置加载状态
+  getfilms()                     // 重新加载数据
 }
 
+// const handleDetailClick = async (item: FilmCategoryTree) => {
+//   const userStore = useUserStore()
+//   // 尝试获取最新用户信息验证登录状态
+//   try {
+//     await userStore.getCurrentInfo()
+//     if (userStore.hasLogin) {
+//       navigateTo(`/sub-pages/film-list/film-detail?id=${item.id}`)
+//     } else {
+//       showLoginModal()
+//     }
+//   } catch (err) {
+//     console.error('验证登录状态失败:', err)
+//     showLoginModal()
+//   }
+//     // const urlOfficicl=`/sub-pages/film-list/film-official-detail?id=${item.id}`;
+//     // const url= `/sub-pages/film-list/film-detail?id=${item.id}`
+//     // navigateTo(url)
+// }
+
+const handleDetailClick = async (item: FilmCategoryTree) => {
+  // 直接跳转到详情页,无需登录检查
+  const url= `/sub-pages/film-list/film-detail?id=${item.id}`
+  navigateTo(url)
+}
+
+const showLoginModal = () => {
+  uni.showModal({
+    title: '登录提示',
+    content: '查看详情需要登录,是否前往登录?',
+    confirmText: '去登录',
+    success: (res) => {
+      if(res.confirm) uni.navigateTo({ url: '/pages/login/login' })
+    }
+  })
+}
 const showToast = (msg: string) => {
   uni.showToast({ title: msg, icon: 'none' })
 }
@@ -100,15 +140,16 @@
 const filmStatus = ref('loading')
 const getfilms = async () => {
   if (filmStatus.value === 'nomore') return
-
   filmStatus.value = 'loading'
 
-  // TODO 暂时使用光影社区的类别
+  // TODO 暂时使用光影的类别
   const query: FilmWorksQueryDTO = {
+	category: currentCategory.value, // 将当前分类ID加入查询参数
     classify: '',
     type: '',
     current: filmPage.value,
     size: filmSize,
+	status: 'published',
 	keywords: keywords.value // 关键修改
   };
   const records = await getFilmWorksBase(query)
@@ -130,7 +171,25 @@
     filmStatus.value = 'noMore'
   }
 }
-
+defineExpose({
+  onShareAppMessage() {
+    return {
+      title: '影视地标推荐',
+      path: '/pages/home/home',
+      imageUrl: '', // 可以设置默认分享图片
+      desc: '发现全球影视拍摄地,探索电影背后的故事'
+    }
+  },
+  // 分享到朋友圈
+  onShareTimeline() {
+    return {
+      title: '影视地标推荐',
+      query: '',
+      imageUrl: '', // 可以设置默认分享图片
+      desc: '发现全球影视拍摄地,探索电影背后的故事'
+    }
+  }
+})
 
 
 

--
Gitblit v1.9.3