From a4892378960434c17bb20f19e537df54be598142 Mon Sep 17 00:00:00 2001 From: cloudroam <cloudroam> Date: 星期五, 13 六月 2025 13:36:35 +0800 Subject: [PATCH] add: tap查询、首页跳转 --- sub-pages/film-list/film-list.vue | 58 ++++++++++++++++++++++++++++++++-------------------------- 1 files changed, 32 insertions(+), 26 deletions(-) diff --git a/sub-pages/film-list/film-list.vue b/sub-pages/film-list/film-list.vue index f069e46..3987c0d 100644 --- a/sub-pages/film-list/film-list.vue +++ b/sub-pages/film-list/film-list.vue @@ -30,23 +30,37 @@ <script setup lang="ts"> import { ref, onMounted } from 'vue' import { onLoad, onShow, onPullDownRefresh, onReachBottom } from '@dcloudio/uni-app' -import { FilmCategoryTree,FilmWorks } from '@/types/index' +import { FilmCategoryTree,FilmWorks,FilmWorksQueryDTO } from '@/types/index' import { useGlobal } from '@/composables/useGlobal' const { $http, $message, $store } = useGlobal() import { FilmTabCategory,FilmWorksCategory } from '@/enums/dict' import { useNavigator } from '@/composables/useNavigator' const { navigateTo } = useNavigator() -import { getTabList } from '@/sub-pages/utils/api' +import { getTabList,getFilmWorksBase } from '@/sub-pages/utils/api' 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 = (item: FilmCategoryTree) => { @@ -66,7 +80,7 @@ onMounted(() => { - flowList.value = items + }) onShow(() => { @@ -96,11 +110,18 @@ const filmStatus = ref('loading') const getfilms = async () => { if (filmStatus.value === 'nomore') return - filmStatus.value = 'loading' // TODO 暂时使用光影社区的类别 - const records = await getFilmWorksBase('', filmSize, filmPage.value) + const query: FilmWorksQueryDTO = { + category: currentCategory.value, // 将当前分类ID加入查询参数 + classify: '', + type: '', + current: filmPage.value, + size: filmSize, + keywords: keywords.value // 关键修改 + }; + const records = await getFilmWorksBase(query) if (records && records.length > 0) { // 使用 Set 进行去重 @@ -120,23 +141,8 @@ } } -const getFilmWorksBase = async (type: String, pageSize: Number, currentPage: Number) => { - const { - code, data - } = await $http.request('get', '/api/filmWorks/list', { - params: { - classify: type, - size: pageSize, - current: currentPage - } - }) - if (code == 0) { - return data.records - } else { - $message.showToast('系统异常,无法获取数据') - return null; - } -} + + -- Gitblit v1.9.3