Commit 7c21ee50 by 王立鹏

Merge branch '线上优化/优化第一版' into 'master'

fix: 修复实名匿名相关展示,文章详情页图片展示等

See merge request !6
parents 3022ff4f 6bd1ac08
......@@ -175,9 +175,10 @@
class="grid grid-cols-1 md:grid-cols-2 gap-4 mt-6"
>
<el-image
v-for="item in articleDetail.imgUrl.split(',')"
v-for="(item, index) in articleDetail.imgUrl.split(',')"
:key="item"
:src="item"
:initial-index="index"
fit="cover"
class="rounded-lg w-full h-64 hover:scale-105 transition-transform cursor-pointer"
:preview-src-list="articleDetail.imgUrl.split(',')"
......
......@@ -101,13 +101,15 @@
<div class="flex gap-3">
<img
@click="jumpToUserHomePage({ userId: item.userId, type })"
:src="item.avatar"
:src="isReal ? item.avatar : item.hiddenAvatar"
alt=""
class="w-10 h-10 rounded-full object-cover cursor-pointer"
/>
<div class="flex-1">
<div class="flex items-center gap-2 mb-2">
<span class="font-semibold text-gray-800">{{ item.replyUser }}</span>
<span class="font-semibold text-gray-800">{{
isReal ? item.replyUser : item.hiddenName
}}</span>
<!-- <span
class="px-2 py-0.5 text-xs bg-gradient-to-r from-purple-100 to-blue-100 text-purple-600 rounded-full"
>
......@@ -407,9 +409,11 @@ const isReal = computed(
type === ArticleTypeEnum.INTERVIEW ||
type === ArticleTypeEnum.QUESTION,
)
const userAvatar = computed(() =>
isReal.value ? userInfo.value.avatar : userInfo.value.hiddenAvatar,
)
const userAvatar = computed(() => {
console.log(isReal.value ? userInfo.value.avatar : userInfo.value.hiddenAvatar)
return isReal.value ? userInfo.value.avatar : userInfo.value.hiddenAvatar
})
const commentRef = useTemplateRef<HTMLElement | null>('commentRef')
const commentListDialogRef = useTemplateRef<typeof CommentListDialog>('commentListDialogRef')
const replyToOtherBoxRefList = ref<HTMLElement[]>([])
......
......@@ -8,7 +8,7 @@
>
<div class="flex gap-3">
<!-- 用户头像 -->
<el-avatar :size="40" :src="userInfo.hiddenAvatar" />
<el-avatar :size="40" :src="userInfo.avatar" />
<!-- 删除按钮 -->
<CommentBox
class="flex-1"
......
......@@ -31,12 +31,12 @@
<!-- 1. 顶部:父级评论展示 -->
<div v-if="parentComment" class="flex gap-4 bg-gray-50 p-5 rounded-xl">
<img
:src="parentComment.hiddenAvatar"
:src="parentComment.avatar"
class="w-12 h-12 rounded-full object-cover border-2 border-gray-200 flex-shrink-0"
/>
<div class="flex-1">
<div class="flex items-center justify-between mb-2">
<span class="font-bold text-gray-900 text-base">{{ parentComment.hiddenName }}</span>
<span class="font-bold text-gray-900 text-base">{{ parentComment.replyUser }}</span>
<!-- 点赞按钮 -->
<div
class="flex items-center gap-1.5 cursor-pointer text-gray-500 hover:text-blue-500 transition-colors px-3 py-1.5 rounded-full hover:bg-blue-50"
......
export function useResetData<T>(initialValue: T) {
const state = ref(structuredClone(initialValue))
const reset = () => {
state.value = structuredClone(initialValue)
// state.value = structuredClone(initialValue)
// 优化 防止 出现类似toRef引用丢失问题
Object.assign(state.value, structuredClone(initialValue))
}
return [state, reset] as [Ref<T>, () => void]
}
......@@ -35,26 +35,26 @@ const handleContent = (content: string) => {
</template>
</el-table-column>
<el-table-column label="文化关键词(次关键词选填)" align="center">
<el-table-column prop="cultureKeywordMain" label="主关键词" width="160">
<el-table-column label="主关键词" width="160">
<template #default="{ row }">
<el-tag type="primary"> {{ row.cultureMain }}</el-tag>
</template>
</el-table-column>
<el-table-column prop="cultureKeywordSecond" label="次关键词1" width="160">
<el-table-column label="次关键词1" width="160">
<template #default="{ row }">
<el-tag v-if="row.cultureSub1" type="primary">
{{ row.cultureSub1 }}
</el-tag>
</template>
</el-table-column>
<el-table-column prop="cultureKeywordSecond" label="次关键词2" width="160">
<el-table-column label="次关键词2" width="160">
<template #default="{ row }">
<el-tag v-if="row.cultureSub2" type="primary">
{{ row.cultureSub2 }}
</el-tag>
</template>
</el-table-column>
<el-table-column prop="cultureKeywordSecond" label="次关键词3" width="160">
<el-table-column label="次关键词3" width="160">
<template #default="{ row }">
<el-tag v-if="row.cultureSub3" type="primary">
{{ row.cultureSub3 }}
......@@ -68,35 +68,35 @@ const handleContent = (content: string) => {
</el-table-column>
<el-table-column prop="caseType" label="案例类型(选填)" width="120"></el-table-column>
<el-table-column label="关联场景(选填)" align="center">
<el-table-column prop="sceneMain" label="主关键词" width="160">
<el-table-column label="主关键词" width="160">
<template #default="{ row }">
<el-tag v-if="row.sceneMain" type="primary">
{{ row.sceneMain }}
</el-tag>
</template>
</el-table-column>
<el-table-column prop="abnormalReason" label="次关键词1" width="160">
<el-table-column label="次关键词1" width="160">
<template #default="{ row }">
<el-tag v-if="row.sceneSub1" type="primary">
{{ row.sceneSub1 }}
</el-tag>
</template>
</el-table-column>
<el-table-column prop="abnormalReason" label="次关键词2" width="160">
<el-table-column label="次关键词2" width="160">
<template #default="{ row }">
<el-tag v-if="row.sceneSub2" type="primary">
{{ row.sceneSub2 }}
</el-tag>
</template>
</el-table-column>
<el-table-column prop="abnormalReason" label="次关键词3" width="160">
<el-table-column label="次关键词3" width="160">
<template #default="{ row }">
<el-tag v-if="row.sceneSub3" type="primary">
{{ row.sceneSub3 }}
</el-tag>
</template>
</el-table-column>
<el-table-column prop="abnormalReason" label="次关键词4" width="160">
<el-table-column label="次关键词4" width="160">
<template #default="{ row }">
<el-tag v-if="row.sceneSub4" type="primary">
{{ row.sceneSub4 }}
......@@ -112,14 +112,14 @@ const handleContent = (content: string) => {
</el-tag>
</template>
</el-table-column>
<el-table-column prop="taxBracket2" label="部门2" width="160">
<el-table-column label="部门2" width="160">
<template #default="{ row }">
<el-tag v-if="row.dept2" type="primary">
{{ row.dept2 }}
</el-tag>
</template>
</el-table-column>
<el-table-column prop="taxBracket3" label="部门3" width="160">
<el-table-column label="部门3" width="160">
<template #default="{ row }">
<el-tag v-if="row.dept3" type="primary">
{{ row.dept3 }}
......
......@@ -70,7 +70,7 @@
</el-table-column>
<el-table-column prop="sourceProject" label="来源项目" width="120"></el-table-column>
<el-table-column prop="sourceType" label="来源类型" width="120"></el-table-column>
<el-table-column prop="sourceTime" label="来源时间" width="170">
<el-table-column label="来源时间" width="170">
<template #default="{ row }">
{{ dayjs(row.sourceTime * 1000).format('YYYY-MM-DD HH:mm:ss') }}
</template>
......@@ -82,7 +82,7 @@
<el-table-column prop="title" label="案例标题" width="200"></el-table-column>
<!-- 内容过多加入tooltip -->
<el-table-column prop="content" label="案例文本内容" width="300">
<el-table-column label="案例文本内容" width="300">
<template #default="{ row }">
<!-- 省略号 -->
<div class="line-clamp-1 text-blue-500 cursor-pointer" @click="handleContent(row)">
......@@ -92,28 +92,28 @@
</el-table-column>
<el-table-column label="文化关键词" align="center">
<el-table-column prop="cultureKeywordMain" label="主关键词" width="160">
<el-table-column label="主关键词" width="160">
<template #default="{ row }">
<el-tag v-if="row.cultureKeywordMain[0]" type="primary">
{{ row.cultureKeywordMain[0].title }}
</el-tag>
</template>
</el-table-column>
<el-table-column prop="cultureKeywordSecond" label="次关键词1" width="160">
<el-table-column label="次关键词1" width="160">
<template #default="{ row }">
<el-tag v-if="row.cultureKeywordSecond[0]" type="primary">
{{ row.cultureKeywordSecond[0].title }}
</el-tag>
</template>
</el-table-column>
<el-table-column prop="cultureKeywordSecond" label="次关键词2" width="160">
<el-table-column label="次关键词2" width="160">
<template #default="{ row }">
<el-tag v-if="row.cultureKeywordSecond[1]" type="primary">
{{ row.cultureKeywordSecond[1].title }}
</el-tag>
</template>
</el-table-column>
<el-table-column prop="cultureKeywordSecond" label="次关键词3" width="160">
<el-table-column label="次关键词3" width="160">
<template #default="{ row }">
<el-tag v-if="row.cultureKeywordSecond[2]" type="primary">
{{ row.cultureKeywordSecond[2].title }}
......@@ -123,14 +123,14 @@
</el-table-column>
<el-table-column label="年度主推关键词(选填)" align="center">
<el-table-column prop="yearKeywordMain" label="主关键词" width="160">
<el-table-column label="主关键词" width="160">
<template #default="{ row }">
<el-tag v-if="row.yearKeywordMain[0]" type="primary">
{{ row.yearKeywordMain[0].title }}
</el-tag>
</template>
</el-table-column>
<el-table-column prop="yearKeywordSecond" label="次关键词" width="160">
<el-table-column label="次关键词" width="160">
<template #default="{ row }">
<el-tag v-if="row.yearKeywordSecond[0]" type="primary">
{{ row.yearKeywordSecond[0].title }}
......@@ -147,28 +147,28 @@
</el-tag>
</template>
</el-table-column>
<el-table-column prop="abnormalReason" label="次关键词1" width="160">
<el-table-column label="次关键词1" width="160">
<template #default="{ row }">
<el-tag v-if="row.sceneKeywordSecond[0]" type="primary">
{{ row.sceneKeywordSecond[0].title }}
</el-tag>
</template>
</el-table-column>
<el-table-column prop="abnormalReason" label="次关键词2" width="160">
<el-table-column label="次关键词2" width="160">
<template #default="{ row }">
<el-tag v-if="row.sceneKeywordSecond[1]" type="primary">
{{ row.sceneKeywordSecond[1].title }}
</el-tag>
</template>
</el-table-column>
<el-table-column prop="abnormalReason" label="次关键词3" width="160">
<el-table-column label="次关键词3" width="160">
<template #default="{ row }">
<el-tag v-if="row.sceneKeywordSecond[2]" type="primary">
{{ row.sceneKeywordSecond[2].title }}
</el-tag>
</template>
</el-table-column>
<el-table-column prop="abnormalReason" label="次关键词4" width="160">
<el-table-column label="次关键词4" width="160">
<template #default="{ row }">
<el-tag v-if="row.sceneKeywordSecond[3]" type="primary">
{{ row.sceneKeywordSecond[3].title }}
......@@ -185,14 +185,14 @@
</el-tag>
</template>
</el-table-column>
<el-table-column prop="taxBracket2" label="部门2" width="160">
<el-table-column label="部门2" width="160">
<template #default="{ row }">
<el-tag v-if="row.depNameList[1]" type="primary">
{{ row.depNameList[1] }}
</el-tag>
</template>
</el-table-column>
<el-table-column prop="taxBracket3" label="部门3" width="160">
<el-table-column label="部门3" width="160">
<template #default="{ row }">
<el-tag v-if="row.depNameList[2]" type="primary">
{{ row.depNameList[2] }}
......
......@@ -50,8 +50,8 @@
class="text-gray-600 text-sm sm:text-base leading-relaxed transition-all duration-300"
:class="{ 'line-clamp-3': !item.isExpand }"
>
<template v-if="item.cultureCommentListVo?.hiddenName">
{{ item.cultureCommentListVo?.hiddenName }}
<template v-if="item.cultureCommentListVo?.replyName">
{{ item.cultureCommentListVo?.replyName }}
<span v-html="parseEmoji(item.cultureCommentListVo?.content)"></span>
</template>
<template v-else>
......
......@@ -605,6 +605,7 @@ const initPage = () => {
}
const refreshUserAccountData = async () => {
yabiStore.fetchYaBiData()
const { data } = await getUserAccountData()
userAccountData.value = data
}
......
......@@ -384,6 +384,8 @@ const rules: Record<string, FormItemRule[]> = {
validator: (rule, value, callback) => {
if (form.value.sendType === SendTypeEnum.SCHEDULED && !value) {
callback(new Error('请选择发布时间'))
} else {
callback()
}
},
trigger: 'trigger',
......@@ -506,7 +508,8 @@ const handleClosed = () => {
const handleSubmit = async (releaseStatus: ReleaseStatusTypeEnum) => {
try {
console.log(form.value, 'form.value')
await formRef.value?.validate()
const validateRes = await formRef.value?.validate()
console.log(validateRes, 'validateRes')
loading.value = true
const res =
form.value.type === ArticleTypeEnum.PRACTICE
......
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