From f3ea52bf97e61f6917ccaab904817d74d9d4860c Mon Sep 17 00:00:00 2001 From: cloudroam <cloudroam> Date: 星期四, 17 七月 2025 09:55:36 +0800 Subject: [PATCH] init --- sub-pages/film-list/film-list.vue | 64 ++++++++++++++++++++++++++------ 1 files changed, 52 insertions(+), 12 deletions(-) diff --git a/sub-pages/film-list/film-list.vue b/sub-pages/film-list/film-list.vue index acdf69c..4a4e54d 100644 --- a/sub-pages/film-list/film-list.vue +++ b/sub-pages/film-list/film-list.vue @@ -38,23 +38,61 @@ 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) => { - uni.showToast({ - title: `搜索:${value}`, - icon: 'none' + const searchValue = typeof value === 'string' ? value : search.value + keywords.value = searchValue + filmPage.value = 1 + films.value = [] + filmStatus.value = 'loadmore' + getfilms() + +} + +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 showLoginModal = () => { + uni.showModal({ + title: '登录提示', + content: '查看详情需要登录,是否前往登录?', + confirmText: '去登录', + success: (res) => { + if(res.confirm) uni.navigateTo({ url: '/pages/login/login' }) + } }) } - -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 showToast = (msg: string) => { uni.showToast({ title: msg, icon: 'none' }) } @@ -96,15 +134,17 @@ 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) -- Gitblit v1.9.3