From ca1b8a728dc7a1d69331cb80fc737dfb0c1f2595 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=A9=99=E5=AD=90?= <454313500@qq.com> Date: Sat, 2 Nov 2024 17:34:48 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20bbs=E6=94=AF=E6=8C=81=E6=BB=9A=E5=8A=A8?= =?UTF-8?q?=E4=B8=BB=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Yi.Bbs.Vue3/src/components/DisscussCard.vue | 2 +- Yi.Bbs.Vue3/src/views/home/Index.vue | 220 +++++++++++++------- 2 files changed, 143 insertions(+), 79 deletions(-) diff --git a/Yi.Bbs.Vue3/src/components/DisscussCard.vue b/Yi.Bbs.Vue3/src/components/DisscussCard.vue index 06b4307c..8c8683f7 100644 --- a/Yi.Bbs.Vue3/src/components/DisscussCard.vue +++ b/Yi.Bbs.Vue3/src/components/DisscussCard.vue @@ -28,7 +28,7 @@
+ top: -10px;">
- - -

点击前往-最新上线《聊天室》 ,现已支持Ai助手,希望能帮助大家

--> + +

- 本站点为个人内容分享,全部资料免费开源学习,所有数据为假数据 -
- 不涉及企业、团体、论坛和经营销售等内容,只做简单的成果展示 -
- 富强、‌民主、文明、‌和谐、‌自由、‌平等 -
- 公正、‌法治、‌爱国、‌敬业、‌诚信、友善 -

-

点击关注-最新上线《意.Net官方微信公众号》 ,分享有深度的.Net知识,希望能帮助大家

- - + 本站点为个人内容分享,全部资料免费开源学习,所有数据为假数据 +
+ 不涉及企业、团体、论坛和经营销售等内容,只做简单的成果展示 +
+ 富强、‌民主、文明、‌和谐、‌自由、‌平等 +
+ 公正、‌法治、‌爱国、‌敬业、‌诚信、友善 +

+

+ 点击关注-最新上线《意.Net官方微信公众号》 ,分享有深度的.Net知识,希望能帮助大家

+ +
- - + + - + - - - - - + + +
+ + @@ -220,9 +222,9 @@ margin: 10px auto;"> title="意社区官方微信公众号" width="800" > -
- -
+
+ +
+ @@ -286,6 +289,8 @@ const isAllDiscussFinished = ref(false); const userAnalyseInfo = ref({}); const onlineNumber = ref(0); const accessLogTab = ref() + +const currentDiscussPageIndex = ref(1); const activeList = [ {name: "签到", path: "/activity/sign", icon: "Present"}, {name: "等级", path: "/activity/level", icon: "Ticket"}, @@ -297,54 +302,62 @@ const activeList = [ {name: "开始", path: "/start", icon: "Position"}, {name: "聊天室", path: "/chat", icon: "ChatRound"}, ]; -const isIcp=import.meta.env.VITE_APP_ICP==="true"; -//主题查询参数 -const query = reactive({ - skipCount: 1, - maxResultCount: 10, - isTop: true, -}); +const isIcp = import.meta.env.VITE_APP_ICP === "true"; -const weekQuery = reactive({accessLogType: "Request"});4 +const weekQuery = reactive({accessLogType: "Request"}); + +const init = async () => { -const init=async ()=>{ - //分阶段优化 await Promise.all([ - (async ()=>{const {data: allDiscussData, config: allDiscussConfig} = - await getAllDiscussList({Type: 0, skipCount: 1, maxResultCount: 30,}); + (async () => { + const {data: allDiscussData, config: allDiscussConfig} = + await getAllDiscussList({Type: 0, skipCount: currentDiscussPageIndex.value, maxResultCount: 10}); isAllDiscussFinished.value = allDiscussConfig.isFinish; - allDiscussList.value = allDiscussData.items;})(), - (async ()=>{const {data: plateData} = await getList(); - plateList.value = plateData.items;})(), - (async ()=>{const {data: discussData, config: discussConfig} = await getHomeDiscuss(); + allDiscussList.value = allDiscussData.items; + })(), + (async () => { + const {data: plateData} = await getList(); + plateList.value = plateData.items; + })(), + (async () => { + const {data: discussData, config: discussConfig} = await getHomeDiscuss(); discussList.value = discussData; - isDiscussFinished.value = discussConfig.isFinish;})(), - (async ()=>{const {data: bannerData} = await bannerGetList(); - bannerList.value = bannerData.items;})(), - (async ()=>{const {data: weekData} = await getWeek(weekQuery); - weekList.value = weekData;})(), - (async ()=>{const {data: pointData, config: pointConfig} = await getRankingPoints(); + isDiscussFinished.value = discussConfig.isFinish; + })(), + (async () => { + const {data: bannerData} = await bannerGetList(); + bannerList.value = bannerData.items; + })(), + (async () => { + const {data: weekData} = await getWeek(weekQuery); + weekList.value = weekData; + })(), + (async () => { + const {data: pointData, config: pointConfig} = await getRankingPoints(); pointList.value = pointData.items; - isPointFinished.value = pointConfig.isFinish;})(), - (async ()=>{const {data: userAnalyseInfoData} = await getUserAnalyse(); + isPointFinished.value = pointConfig.isFinish; + })(), + (async () => { + const {data: userAnalyseInfoData} = await getUserAnalyse(); onlineNumber.value = userAnalyseInfoData.onlineNumber; - userAnalyseInfo.value = userAnalyseInfoData;})(), + userAnalyseInfo.value = userAnalyseInfoData; + })(), ]); //不重要的请求滞后 - const {data: friendData, config: friendConfig} = await getRecommendedFriend(); - friendList.value = friendData; - isFriendFinished.value = friendConfig.isFinish; - const {data: themeData, config: themeConfig} = await getRecommendedTopic(); - themeList.value = themeData; - isThemeFinished.value = themeConfig.isFinish; + const {data: friendData, config: friendConfig} = await getRecommendedFriend(); + friendList.value = friendData; + isFriendFinished.value = friendConfig.isFinish; + const {data: themeData, config: themeConfig} = await getRecommendedTopic(); + themeList.value = themeData; + isThemeFinished.value = themeConfig.isFinish; await access(); } //初始化 onMounted(async () => { -await init(); + await init(); }); const weekXAxis = ["周一", "周二", "周三", "周四", "周五", "周六", "周日"]; @@ -446,11 +459,35 @@ const onClickAccessLog = async () => { } -const wechatDialogVisible=ref(false) +let loadingDiscuss = false; +//加载滚动文章 +const loadDiscuss = async () => { + + if (loadingDiscuss === false) { + loadingDiscuss = true; + + + currentDiscussPageIndex.value += 1; + + isAllDiscussFinished.value = false; + const {data: allDiscussData, config: allDiscussConfig} = + await getAllDiscussList({Type: 0, skipCount: currentDiscussPageIndex.value, maxResultCount: 10}); + isAllDiscussFinished.value = allDiscussConfig.isFinish; + + //在列表后新增 + allDiscussList.value.push(...allDiscussData.items); + + + loadingDiscuss = false; + } + + +} +const wechatDialogVisible = ref(false) //切换统计开关 const onClickWeekSwitch = async () => { if (weekQuery.accessLogType === "HomeClick") { - weekQuery.accessLogType= "Request"; + weekQuery.accessLogType = "Request"; } else if (weekQuery.accessLogType === "Request") { weekQuery.accessLogType = "HomeClick"; } @@ -458,10 +495,17 @@ const onClickWeekSwitch = async () => { const {data: weekData} = await getWeek(weekQuery); weekList.value = weekData; } +const scrollableDiv = ref(null); +//回到顶部 +const clickBacktop=()=>{ + if (scrollableDiv.value) { + scrollableDiv.value.scrollTop = 0; // 设置滚动条到顶部 + } +} //打开微信公众号弹窗 -const onClickToWeChat=()=>{ - wechatDialogVisible.value=true; +const onClickToWeChat = () => { + wechatDialogVisible.value = true; };