|
|
@ -31,13 +31,13 @@ |
|
|
|
</a-tag> |
|
|
|
</div> |
|
|
|
<div class="blog-content"> |
|
|
|
<div> |
|
|
|
<a-image :preview="false" :width="200" :src=article.imglink /> |
|
|
|
<div class="image-container"> |
|
|
|
<a-image :preview="false" :src=article.imglink class="responsive-image"/> |
|
|
|
</div> |
|
|
|
<div class="text-container"> |
|
|
|
{{ article.blogcontent }} |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
<div class="text-container"> |
|
|
|
{{ article.blogcontent }} |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
<div class="read-button"> |
|
|
|
<a-button type="primary" shape="round" @click="readMore(article.id)">阅读全文</a-button> |
|
|
|
</div> |
|
|
@ -48,6 +48,7 @@ |
|
|
|
</a-card> |
|
|
|
</a-badge-ribbon> |
|
|
|
</div> |
|
|
|
|
|
|
|
<div class="pagination" v-if="blogstore.isPage"> |
|
|
|
<a-pagination v-model:current="current" v-if="dataLoaded" v-model:page-size="pageSizeRef" |
|
|
|
:page-size-options="pageSizeOptions" :total="total" show-size-changer @change="onShowSizeChange"> |
|
|
@ -71,7 +72,7 @@ import iconComponents from '@/assets'; |
|
|
|
import { blogStore } from "@/stores" |
|
|
|
import dayjs from 'dayjs'; |
|
|
|
import type { blogInterface } from '@/api/admin'; |
|
|
|
import { get,put } from "@/tools/request" |
|
|
|
import { get, put } from "@/tools/request" |
|
|
|
import router from '@/router'; |
|
|
|
const blogstore = blogStore() |
|
|
|
const randomColor = () => { |
|
|
@ -95,7 +96,7 @@ const blogList = async (page: number, pageSize: number) => { |
|
|
|
page, |
|
|
|
page_size: pageSize, |
|
|
|
}) |
|
|
|
bloglist.value = response.data.data.blogs.map((items: any,index:number) => ({ |
|
|
|
bloglist.value = response.data.data.blogs.map((items: any, index: number) => ({ |
|
|
|
id: items.id, |
|
|
|
key: items.key, |
|
|
|
blogtitle: items.blogtitle, |
|
|
@ -106,16 +107,16 @@ const blogList = async (page: number, pageSize: number) => { |
|
|
|
create_at: dayjs(items.create_at).format('YYYY-MM-DD HH:mm:ss'), |
|
|
|
update_at: dayjs(items.update_at).format('YYYY-MM-DD HH:mm:ss'), |
|
|
|
readnum: items.readnum, |
|
|
|
readminite: Math.round(items.blogcontent.length/ 200), |
|
|
|
readminite: Math.round(items.blogcontent.length / 200), |
|
|
|
imglink: items.imglink || 'https://www.wuruilin.cn/personself/暂无图片.jpg', |
|
|
|
})) |
|
|
|
total.value = response.data.data.total; // 更新总数 |
|
|
|
if (response.data.data.total===0) { |
|
|
|
blogstore.isEmpty=true |
|
|
|
blogstore.isPage=false |
|
|
|
}else{ |
|
|
|
blogstore.isEmpty=false |
|
|
|
blogstore.isPage=true |
|
|
|
if (response.data.data.total === 0) { |
|
|
|
blogstore.isEmpty = true |
|
|
|
blogstore.isPage = false |
|
|
|
} else { |
|
|
|
blogstore.isEmpty = false |
|
|
|
blogstore.isPage = true |
|
|
|
} |
|
|
|
pageSizeRef.value = pageSize; // 更新页大小,如果需要从接口返回页大小也可以改为 response.data.data.page_size |
|
|
|
dataLoaded.value = true |
|
|
@ -160,8 +161,18 @@ onMounted(() => { |
|
|
|
|
|
|
|
.main .blog-content { |
|
|
|
display: flex; |
|
|
|
align-items: flex-start; |
|
|
|
margin: 48px; |
|
|
|
width: 45%; |
|
|
|
} |
|
|
|
.blog-content .image-container { |
|
|
|
flex-shrink: 0; |
|
|
|
width: 200px; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
.blog-content .responsive-image { |
|
|
|
width: 100%; |
|
|
|
height: auto; |
|
|
|
} |
|
|
|
|
|
|
|
.main .blog-content>:first-child { |
|
|
@ -218,11 +229,11 @@ onMounted(() => { |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
.main .text-container { |
|
|
|
.blog-content .text-container { |
|
|
|
text-overflow: ellipsis; |
|
|
|
display: -webkit-box; |
|
|
|
-webkit-box-orient: vertical; |
|
|
|
-webkit-line-clamp: 6; |
|
|
|
-webkit-line-clamp: 4; |
|
|
|
word-wrap: break-word; |
|
|
|
overflow-wrap: break-word; |
|
|
|
line-height: 2; |
|
|
|