Commit 86e61957 by lijiabin

【需求 17679】 feat: 问吧展示发帖人信息、以及问吧首页列表tab调整等

parent 4921139c
...@@ -8,6 +8,7 @@ export interface ArticleSearchParams extends PageSearchParams { ...@@ -8,6 +8,7 @@ export interface ArticleSearchParams extends PageSearchParams {
type?: ArticleTypeEnum type?: ArticleTypeEnum
sortLogic?: number sortLogic?: number
title?: string title?: string
questionFocus?: number
} }
/** /**
......
<template> <template>
<div <div
ref="commentRef" ref="commentRef"
class="mt-6 bg-white backdrop-blur-sm rounded-lg shadow-sm border border-white/50 overflow-hidden" class="bg-white backdrop-blur-sm rounded-lg shadow-sm border border-white/50 overflow-hidden"
> >
<!-- 评论筛选 --> <!-- 评论筛选 -->
<div class="p-4 border-b border-gray-100"> <div class="p-4 border-b border-gray-100">
......
...@@ -264,6 +264,7 @@ const { list, total, searchParams, loading, refresh, goToPage, changePageSize, s ...@@ -264,6 +264,7 @@ const { list, total, searchParams, loading, refresh, goToPage, changePageSize, s
immediate: false, immediate: false,
defaultParams: { defaultParams: {
type: ArticleTypeEnum.QUESTION, type: ArticleTypeEnum.QUESTION,
sortLogic: 1,
}, },
formatList: (list) => formatList: (list) =>
list.map((item) => ({ list.map((item) => ({
...@@ -282,6 +283,7 @@ const handleCollect = async (item: ArticleItemDto) => { ...@@ -282,6 +283,7 @@ const handleCollect = async (item: ArticleItemDto) => {
item.hasCollect = !item.hasCollect item.hasCollect = !item.hasCollect
item.collectionCount = item.hasCollect ? item.collectionCount + 1 : item.collectionCount - 1 item.collectionCount = item.hasCollect ? item.collectionCount + 1 : item.collectionCount - 1
ElMessage.success(item.hasCollect ? '收藏成功' : '取消收藏') ElMessage.success(item.hasCollect ? '收藏成功' : '取消收藏')
refresh()
} }
// 一个是直接写这个问题的首评论 一个是直接给最热评论写评论 // 一个是直接写这个问题的首评论 一个是直接给最热评论写评论
...@@ -320,7 +322,17 @@ const handleRefresh = () => { ...@@ -320,7 +322,17 @@ const handleRefresh = () => {
refresh() refresh()
} }
const handleTabChange = () => { const handleTabChange = (val: string) => {
if (val === '热问') {
searchParams.value.sortLogic = 0
searchParams.value.questionFocus = undefined
} else if (val === '关注') {
searchParams.value.sortLogic = undefined
searchParams.value.questionFocus = 1
} else if (val === '最新') {
searchParams.value.questionFocus = undefined
searchParams.value.sortLogic = 1
}
handleRefresh() handleRefresh()
} }
......
...@@ -30,7 +30,25 @@ ...@@ -30,7 +30,25 @@
编辑 编辑
</el-link> </el-link>
</div> </div>
<!-- 👇 新增:发布人信息 -->
<div class="flex items-center gap-3 pb-3 border-b border-slate-100">
<el-avatar
:src="questionDetail.createUserAvatar"
:size="40"
class="flex-shrink-0 cursor-pointer"
@click="jumpToUserHomePage({ userId: questionDetail.createUserId, isReal: 0 })"
>
{{ questionDetail.createUserName }}
</el-avatar>
<div class="flex flex-col">
<span class="text-sm font-medium text-slate-900">
{{ questionDetail.createUserName }}
</span>
<span class="text-xs text-slate-500">
发布于 {{ dayjs(questionDetail.createTime * 1000).format('YYYY-MM-DD HH:mm') }}
</span>
</div>
</div>
<!-- 标题:主要信息,黑重粗 --> <!-- 标题:主要信息,黑重粗 -->
<h1 class="text-2xl font-bold text-slate-900 mb-3 leading-snug tracking-tight"> <h1 class="text-2xl font-bold text-slate-900 mb-3 leading-snug tracking-tight">
{{ questionDetail.title }} {{ questionDetail.title }}
...@@ -153,9 +171,14 @@ ...@@ -153,9 +171,14 @@
> >
<!-- 用户头 --> <!-- 用户头 -->
<div class="flex items-center gap-3 mb-3"> <div class="flex items-center gap-3 mb-3">
<img :src="answer.avatar" class="w-9 h-9 rounded bg-slate-100 object-cover" /> <el-avatar
:src="answer.avatar"
:size="36"
class="flex-shrink-0 cursor-pointer"
@click="jumpToUserHomePage({ userId: answer.userId, isReal: 0 })"
/>
<div> <div>
<div class="font-bold text-slate-900 text-sm flex items-center gap-2"> <div class="text-slate-900 text-sm flex items-center gap-2">
{{ answer.hiddenName }} {{ answer.hiddenName }}
<!-- 徽章示例 --> <!-- 徽章示例 -->
<!-- <span <!-- <span
...@@ -270,6 +293,7 @@ import CommentDialog from '@/components/common/CommentDialog/index.vue' ...@@ -270,6 +293,7 @@ import CommentDialog from '@/components/common/CommentDialog/index.vue'
import dayjs from 'dayjs' import dayjs from 'dayjs'
import { useUserStore } from '@/stores/user' import { useUserStore } from '@/stores/user'
import { storeToRefs } from 'pinia' import { storeToRefs } from 'pinia'
import { jumpToUserHomePage } from '@/utils'
const userStore = useUserStore() const userStore = useUserStore()
const { userInfo } = storeToRefs(userStore) const { userInfo } = storeToRefs(userStore)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment