Merge branch 'abp' into digital-collectibles

# Conflicts:
#	Yi.Bbs.Vue3/src/views/home/Index.vue
This commit is contained in:
橙子
2025-02-04 15:28:23 +08:00
10 changed files with 138 additions and 52 deletions

View File

@@ -9,7 +9,7 @@
<el-button
style="width: 100%; margin-bottom: 0.8rem"
@click="loadDiscuss(true)"
>主题封面</el-button
>主题首页</el-button
>
<el-button
v-if="isAddArticle && isArticleUser"
@@ -19,7 +19,7 @@
>添加子文章</el-button
>
<!--目录在这里 -->
<el-scrollbar height="410px">
<el-scrollbar style="min-height: 410px">
<TreeArticleInfo
:data="articleData"
@remove="delArticle"
@@ -34,19 +34,19 @@
</InfoCard>
</el-col>
<el-col :span="24">
<InfoCard :items="items" header="作者分享" text="更多">
<InfoCard :items="authorList" :isPadding="false" header="作者分享" height="410" text="更多">
<template #item="temp">
<AvatarInfo />
</template>
</InfoCard>
</el-col>
<el-col :span="24">
<InfoCard :items="items" header="内容推荐" text="更多">
<template #item="temp">
<AvatarInfo />
<ThemeData :themeData="temp"/>
</template>
</InfoCard>
</el-col>
<!-- <el-col :span="24">-->
<!-- <InfoCard :items="items" header="内容推荐" text="更多">-->
<!-- <template #item="temp">-->
<!-- <AvatarInfo />-->
<!-- </template>-->
<!-- </InfoCard>-->
<!-- </el-col>-->
</el-row>
</el-col>
@@ -155,19 +155,24 @@
</InfoCard>
</el-col>
<el-col :span="24">
<InfoCard :items="items" header="其他" text="更多">
<InfoCard :items="themeList" :isPadding="false" header="推荐主题" text="更多" height="500">
<template #item="temp">
<AvatarInfo />
</template>
</InfoCard>
</el-col>
<el-col :span="24">
<InfoCard :items="items" header="其他" text="更多">
<template #item="temp">
<AvatarInfo />
<ThemeData :themeData="temp"/>
</template>
</InfoCard>
<!-- <InfoCard :items="items" header="其他" text="更多">-->
<!-- <template #item="temp">-->
<!-- <AvatarInfo />-->
<!-- </template>-->
<!-- </InfoCard>-->
</el-col>
<!-- <el-col :span="24">-->
<!-- <InfoCard :items="items" header="其他" text="更多">-->
<!-- <template #item="temp">-->
<!-- <AvatarInfo />-->
<!-- </template>-->
<!-- </InfoCard>-->
<!-- </el-col>-->
</el-row>
</el-col>
</el-row>
@@ -192,17 +197,20 @@ import {
import Breadcrumb from "@/components/Breadcrumb/index.vue";
import { getPermission } from "@/utils/auth";
import useUserStore from "@/stores/user.js";
import ThemeData from "@/views/home/components/RecommendTheme/index.vue";
import {getRecommendedTopic,getAuthorTopic} from "@/apis/analyseApi";
//数据定义
const route = useRoute();
const router = useRouter();
const spacer = h(ElDivider, { direction: "vertical" });
const items = [{ user: "用户1" }, { user: "用户2" }, { user: "用户3" }];
//子文章数据
const articleData = ref([]);
//主题内容
const discuss = ref({});
//推荐主题
const themeList=ref([]);
//作者主题
const authorList=ref([]);
//封面url
const getUrl = (str) => {
return `${import.meta.env.VITE_APP_BASEAPI}/file/${str}`;
@@ -369,11 +377,22 @@ const delArticle = (node, data) => {
});
});
};
const loadThemeData =async () => {
const {data: themeData} = await getRecommendedTopic();
themeList.value = themeData;
}
const loadAuthorData=async () => {
const {data: authorData} = await getAuthorTopic(discuss.value.user.id);
authorList.value = authorData;
}
onMounted(async () => {
await loadDiscuss();
await loadArticleData();
await loadAuthorData();
await loadThemeData();
});
watch(
() => currentArticle.value,
(val) => {
@@ -406,7 +425,7 @@ watch(
}
.article-box {
width: 1400px;
width: 1500px;
height: 100%;
.comment {
min-height: 40rem;

View File

@@ -65,7 +65,7 @@
:codeStyle="codeStyle"
/>
</el-form-item>
<el-form-item label="封面" v-if="radio == 'discuss'">
<el-form-item label="首页" v-if="radio == 'discuss'">
<el-image
v-if="dialogImageUrl"
@@ -74,7 +74,7 @@
class="avatar"
/>
<!-- 主题封面选择 -->
<!-- 主题首页选择 -->
<el-upload
class="avatar-uploader"
:action="fileUploadUrl"

View File

@@ -108,7 +108,7 @@ margin: 10px auto;">
<el-col v-if="!isIcp" :span="24">
<InfoCard header="活动">
<template #content>
<div class="top">今天准备好学习了吗~</div>
<div class="top">祝各位蛇年大吉~</div>
<el-row class="active">
<el-col style="padding: 5px 0px;" v-for="item in activeList" :span="6" @click="handleToRouter(item.path)">
@@ -161,7 +161,7 @@ margin: 10px auto;">
<el-col v-if="!isIcp" :span="24">
<template v-if="isPointFinished">
<InfoCard :items="pointList" header="财富排行榜" text="查看我的位置" height="400"
<InfoCard :isPadding="false" :items="pointList" header="财富排行榜" text="查看我的位置" height="410"
@onClickText="onClickMoneyTop">
<template #item="temp">
<PointsRanking :pointsData="temp"/>
@@ -169,7 +169,7 @@ margin: 10px auto;">
</InfoCard>
</template>
<template v-else>
<InfoCard header="本月排行" text="更多">
<InfoCard :isPadding="false" header="财富排行" text="查看我的位置">
<template #content>
<Skeleton/>
</template>
@@ -179,14 +179,14 @@ margin: 10px auto;">
<el-col v-if="!isIcp" :span="24">
<template v-if="isFriendFinished">
<InfoCard :items="friendList" header="推荐好友" text="更多" height="400">
<InfoCard :isPadding="false" :items="friendList" header="推荐好友" text="更多" height="400">
<template #item="temp">
<RecommendFriend :friendData="temp"/>
</template>
</InfoCard>
</template>
<template v-else>
<InfoCard header="推荐好友" text="更多">
<InfoCard :isPadding="false" header="推荐好友" text="更多">
<template #content>
<Skeleton/>
</template>
@@ -195,14 +195,14 @@ margin: 10px auto;">
</el-col>
<el-col v-if="!isIcp" :span="24">
<template v-if="isThemeFinished">
<InfoCard :items="themeList" header="推荐主题" text="更多" height="400">
<InfoCard :isPadding="false" :items="themeList" header="推荐主题" text="更多" height="400">
<template #item="temp">
<ThemeData :themeData="temp"/>
</template>
</InfoCard>
</template>
<template v-else>
<InfoCard header="推荐主题" text="更多">
<InfoCard :isPadding="false" header="推荐主题" text="更多">
<template #content>
<Skeleton/>
</template>
@@ -249,6 +249,7 @@ import {onMounted, ref, reactive, computed, nextTick, watch} from "vue";
import {useRouter} from "vue-router";
import DisscussCard from "@/components/DisscussCard.vue";
import InfoCard from "@/components/InfoCard.vue";
import ThemeData from "@/views/home/components/RecommendTheme/index.vue";
import PlateCard from "@/components/PlateCard.vue";
import ScrollbarInfo from "@/components/ScrollbarInfo.vue";
import BottomInfo from "@/components/BottomInfo.vue";
@@ -269,7 +270,6 @@ import {
import {getList as getAllDiscussList} from "@/apis/discussApi.js";
import PointsRanking from "./components/PointsRanking/index.vue";
import RecommendFriend from "./components/RecommendFriend/index.vue";
import ThemeData from "./components/RecommendTheme/index.vue";
import Skeleton from "@/components/Skeleton/index.vue";
import useSocketStore from "@/stores/socket";