diff --git a/src/assets/image.png b/src/assets/image.png new file mode 100644 index 0000000..fafa25f Binary files /dev/null and b/src/assets/image.png differ diff --git a/src/assets/index.ts b/src/assets/index.ts index 6e518ca..d22d9a9 100644 --- a/src/assets/index.ts +++ b/src/assets/index.ts @@ -3,7 +3,7 @@ import { createFromIconfontCN } from '@ant-design/icons-vue'; function createIconComponent(iconType: string) { const IconComponent = createFromIconfontCN({ - scriptUrl: '//at.alicdn.com/t/c/font_4513281_qhbaqfo6egj.js', // 在 iconfont.cn 上生成 + scriptUrl: '//at.alicdn.com/t/c/font_4513281_1cb6b9dny0i.js', // 在 iconfont.cn 上生成 }); return defineComponent({ @@ -32,6 +32,10 @@ const iconComponents = { YanJingLined: createIconComponent('icon-yanjing'), XieZiLined: createIconComponent('icon-xiezi'), CravatarLined: createIconComponent('icon-cravatar'), + GongAnLined: createIconComponent('icon-gonganbeian'), + IcpLined: createIconComponent('icon-wsmp-icprecord'), + BanQuanLined: createIconComponent('icon-banquan'), + } diff --git a/src/components/blogs/HomePage.vue b/src/components/blogs/HomePage.vue index 44f8d7a..d81fc58 100644 --- a/src/components/blogs/HomePage.vue +++ b/src/components/blogs/HomePage.vue @@ -104,6 +104,54 @@ + diff --git a/src/views/blog/blogcontent/BlogDetailView.vue b/src/views/blog/blogcontent/BlogDetailView.vue index d471d07..a0c9600 100644 --- a/src/views/blog/blogcontent/BlogDetailView.vue +++ b/src/views/blog/blogcontent/BlogDetailView.vue @@ -1,14 +1,17 @@ - - - - - \ No newline at end of file + + \ No newline at end of file diff --git a/src/views/blog/blogcontent/BlogListView.vue b/src/views/blog/blogcontent/BlogListView.vue index d8f7063..88acd72 100644 --- a/src/views/blog/blogcontent/BlogListView.vue +++ b/src/views/blog/blogcontent/BlogListView.vue @@ -48,6 +48,16 @@ + + @@ -56,45 +66,49 @@ import { onMounted, ref } from 'vue'; import iconComponents from '@/assets'; import dayjs from 'dayjs'; import type { blogInterface } from '@/api/admin'; -import {get} from "@/tools/request" +import { get } from "@/tools/request" import router from '@/router'; const randomColor = () => { const labelColor = ref(["processing", "success", "error", "warning", "magenta", "red", "volcano", "orange", "gold", "lime", "green", "cyan", "blue", "geekblue", "purple"]) return labelColor.value[Math.floor(Math.random() * labelColor.value.length)]; } +const dataLoaded = ref(false); +// 分页 +const pageSizeOptions = ref(['10', '20', '30', '40', '50']); +const current = ref(1); +const total = ref(); +const pageSizeRef = ref(10); const bloglist = ref([]) -const blogList = async () => { +const onShowSizeChange = (page: number) => { + current.value = page; + blogList(page, pageSizeRef.value) +}; +const blogList = async (page: number, pageSize: number) => { try { - const response = await get("/blogs/list"); - if (response) { - bloglist.value = response.data.data.map((items: any, index: any) => ({ - key: (index + 1).toString(), - id: items.id, - blogtitle: items.blogtitle, - 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: (items.blogcontent.length/150).toFixed(2), - wordcount: items.blogcontent.length, - img: items.img, - blogcontent: items.blogcontent, - typename: items.typename, - labelnames: items.labelnames - })) - } else { - console.log("bloglist is not exits") - } + const response = await get('/blogs/list', { + page, + page_size: pageSize, + }); + console.log(response) + bloglist.value = response.data.data.blogs; + total.value = response.data.data.total; // 更新总数 + pageSizeRef.value = pageSize; // 更新页大小,如果需要从接口返回页大小也可以改为 response.data.data.page_size + dataLoaded.value = true } catch (error) { - console.log("bloglist is error") + console.error('Failed to fetch data', error); } +}; -} -const readMore=(id:any)=>{ + + + + +const readMore = (id: any) => { router.push(`/blog/${id}`) } onMounted(() => { - blogList(); + blogList(current.value, pageSizeRef.value); }); @@ -192,4 +206,8 @@ onMounted(() => { margin-left: 24px; } +#pagination{ + display: flex; + justify-content: right; +} \ No newline at end of file