diff --git a/blog-backend/src/main/java/cn/hamster3/application/blog/vo/PageableVO.java b/blog-backend/src/main/java/cn/hamster3/application/blog/vo/PageableVO.java index bf9628d..3233e0f 100644 --- a/blog-backend/src/main/java/cn/hamster3/application/blog/vo/PageableVO.java +++ b/blog-backend/src/main/java/cn/hamster3/application/blog/vo/PageableVO.java @@ -1,8 +1,8 @@ package cn.hamster3.application.blog.vo; +import jakarta.validation.constraints.NotNull; import lombok.AllArgsConstructor; import lombok.Data; -import org.jetbrains.annotations.NotNull; import org.springframework.data.domain.Page; import java.util.List; @@ -13,22 +13,27 @@ public class PageableVO { /** * 当前查询页码 */ - private int pageNumber; + @NotNull + private Integer pageNumber; /** * 当前查询页面大小 */ - private int pageSize; + @NotNull + private Integer pageSize; /** * 总元素数量 */ - private long totalElements; + @NotNull + private Long totalElements; /** * 总页码 */ - private int totalPage; + @NotNull + private Integer totalPage; /** * 当前查询内容 */ + @NotNull private List elements; @NotNull diff --git a/blog-backend/src/main/java/cn/hamster3/application/blog/vo/ResponseVO.java b/blog-backend/src/main/java/cn/hamster3/application/blog/vo/ResponseVO.java index fcda663..3b35036 100644 --- a/blog-backend/src/main/java/cn/hamster3/application/blog/vo/ResponseVO.java +++ b/blog-backend/src/main/java/cn/hamster3/application/blog/vo/ResponseVO.java @@ -46,5 +46,4 @@ public class ResponseVO { public static ResponseVO notFound() { return new ResponseVO<>(404, "Not Found", null); } - } diff --git a/blog-backend/src/main/java/cn/hamster3/application/blog/vo/attach/AttachInfoResponseVO.java b/blog-backend/src/main/java/cn/hamster3/application/blog/vo/attach/AttachInfoResponseVO.java index bbf31f8..7faa530 100644 --- a/blog-backend/src/main/java/cn/hamster3/application/blog/vo/attach/AttachInfoResponseVO.java +++ b/blog-backend/src/main/java/cn/hamster3/application/blog/vo/attach/AttachInfoResponseVO.java @@ -1,5 +1,6 @@ package cn.hamster3.application.blog.vo.attach; +import jakarta.validation.constraints.NotNull; import lombok.AllArgsConstructor; import lombok.Data; @@ -9,8 +10,12 @@ import java.util.UUID; @Data @AllArgsConstructor public class AttachInfoResponseVO { + @NotNull private Long id; + @NotNull private UUID creator; + @NotNull private Date createTime; + @NotNull private Date updateTime; } diff --git a/blog-backend/src/main/java/cn/hamster3/application/blog/vo/blog/BlogInfoResponseVO.java b/blog-backend/src/main/java/cn/hamster3/application/blog/vo/blog/BlogInfoResponseVO.java index f85e3b7..c35ab08 100644 --- a/blog-backend/src/main/java/cn/hamster3/application/blog/vo/blog/BlogInfoResponseVO.java +++ b/blog-backend/src/main/java/cn/hamster3/application/blog/vo/blog/BlogInfoResponseVO.java @@ -3,6 +3,7 @@ package cn.hamster3.application.blog.vo.blog; import cn.hamster3.application.blog.vo.user.UserInfoResponseVO; import lombok.AllArgsConstructor; import lombok.Data; +import jakarta.validation.constraints.NotNull; import java.util.Date; import java.util.Set; @@ -10,17 +11,27 @@ import java.util.Set; @Data @AllArgsConstructor public class BlogInfoResponseVO { + @NotNull private Long id; + @NotNull private String title; + @NotNull private String abstracts; - // private String password; + @NotNull private String content; + @NotNull private Boolean top; + @NotNull private Boolean publish; + @NotNull private Set tags; // private List attachEntities; + @NotNull private UserInfoResponseVO creator; + @NotNull private UserInfoResponseVO updater; + @NotNull private Date createTime; + @NotNull private Date updateTime; } diff --git a/blog-backend/src/main/java/cn/hamster3/application/blog/vo/setting/SettingInfoResponseVO.java b/blog-backend/src/main/java/cn/hamster3/application/blog/vo/setting/SettingInfoResponseVO.java index f7d0ff4..74a1b3d 100644 --- a/blog-backend/src/main/java/cn/hamster3/application/blog/vo/setting/SettingInfoResponseVO.java +++ b/blog-backend/src/main/java/cn/hamster3/application/blog/vo/setting/SettingInfoResponseVO.java @@ -1,5 +1,6 @@ package cn.hamster3.application.blog.vo.setting; +import jakarta.validation.constraints.NotNull; import lombok.AllArgsConstructor; import lombok.Data; @@ -8,8 +9,12 @@ import java.util.Date; @Data @AllArgsConstructor public class SettingInfoResponseVO { + @NotNull private String id; + @NotNull private String content; + @NotNull private Date createTime; + @NotNull private Date updateTime; } diff --git a/blog-backend/src/main/java/cn/hamster3/application/blog/vo/setting/SettingUpdateRequireVO.java b/blog-backend/src/main/java/cn/hamster3/application/blog/vo/setting/SettingUpdateRequireVO.java index 564f281..6038020 100644 --- a/blog-backend/src/main/java/cn/hamster3/application/blog/vo/setting/SettingUpdateRequireVO.java +++ b/blog-backend/src/main/java/cn/hamster3/application/blog/vo/setting/SettingUpdateRequireVO.java @@ -1,5 +1,6 @@ package cn.hamster3.application.blog.vo.setting; +import jakarta.validation.constraints.NotNull; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; @@ -8,5 +9,6 @@ import lombok.NoArgsConstructor; @NoArgsConstructor @AllArgsConstructor public class SettingUpdateRequireVO { + @NotNull private String content; } diff --git a/blog-backend/src/main/java/cn/hamster3/application/blog/vo/user/UserInfoResponseVO.java b/blog-backend/src/main/java/cn/hamster3/application/blog/vo/user/UserInfoResponseVO.java index 6951e8e..aa34894 100644 --- a/blog-backend/src/main/java/cn/hamster3/application/blog/vo/user/UserInfoResponseVO.java +++ b/blog-backend/src/main/java/cn/hamster3/application/blog/vo/user/UserInfoResponseVO.java @@ -1,6 +1,7 @@ package cn.hamster3.application.blog.vo.user; import cn.hamster3.application.blog.constant.UserRole; +import jakarta.validation.constraints.NotNull; import lombok.AllArgsConstructor; import lombok.Data; @@ -10,12 +11,18 @@ import java.util.UUID; @Data @AllArgsConstructor public class UserInfoResponseVO { + @NotNull private UUID id; + @NotNull private String email; + @NotNull private String nickname; + @NotNull private UserRole role; // private List blogEntities; // private List attachEntities; + @NotNull private Date createTime; + @NotNull private Date updateTime; } diff --git a/blog-frontend/src/components/BlogCardComponent.vue b/blog-frontend/src/components/BlogCardComponent.vue new file mode 100644 index 0000000..7769ce5 --- /dev/null +++ b/blog-frontend/src/components/BlogCardComponent.vue @@ -0,0 +1,91 @@ + + + + + diff --git a/blog-frontend/src/components/BlogComponent.vue b/blog-frontend/src/components/BlogComponent.vue deleted file mode 100644 index ce35b00..0000000 --- a/blog-frontend/src/components/BlogComponent.vue +++ /dev/null @@ -1,75 +0,0 @@ - - - - - diff --git a/blog-frontend/src/components/HeaderComponent.vue b/blog-frontend/src/components/HeaderComponent.vue index 338a27e..eae13f6 100644 --- a/blog-frontend/src/components/HeaderComponent.vue +++ b/blog-frontend/src/components/HeaderComponent.vue @@ -43,6 +43,7 @@ function onSelectMenu(index: string) { mode="horizontal" :ellipsis="false" @select="onSelectMenu" + class="blog-header-menu" > {{ siteSetting.title }} diff --git a/blog-frontend/src/swagger/models/attach-info-response-vo.ts b/blog-frontend/src/swagger/models/attach-info-response-vo.ts index 214c802..b157ca4 100644 --- a/blog-frontend/src/swagger/models/attach-info-response-vo.ts +++ b/blog-frontend/src/swagger/models/attach-info-response-vo.ts @@ -22,23 +22,23 @@ export interface AttachInfoResponseVO { * @type {number} * @memberof AttachInfoResponseVO */ - id?: number; + id: number; /** * * @type {string} * @memberof AttachInfoResponseVO */ - creator?: string; + creator: string; /** * * @type {Date} * @memberof AttachInfoResponseVO */ - createTime?: Date; + createTime: Date; /** * * @type {Date} * @memberof AttachInfoResponseVO */ - updateTime?: Date; + updateTime: Date; } diff --git a/blog-frontend/src/swagger/models/blog-info-response-vo.ts b/blog-frontend/src/swagger/models/blog-info-response-vo.ts index 8517e38..d4b3440 100644 --- a/blog-frontend/src/swagger/models/blog-info-response-vo.ts +++ b/blog-frontend/src/swagger/models/blog-info-response-vo.ts @@ -23,65 +23,65 @@ export interface BlogInfoResponseVO { * @type {number} * @memberof BlogInfoResponseVO */ - id?: number; + id: number; /** * * @type {string} * @memberof BlogInfoResponseVO */ - title?: string; + title: string; /** * * @type {string} * @memberof BlogInfoResponseVO */ - abstracts?: string; + abstracts: string; /** * * @type {string} * @memberof BlogInfoResponseVO */ - content?: string; + content: string; /** * * @type {boolean} * @memberof BlogInfoResponseVO */ - top?: boolean; + top: boolean; /** * * @type {boolean} * @memberof BlogInfoResponseVO */ - publish?: boolean; + publish: boolean; /** * * @type {Array} * @memberof BlogInfoResponseVO */ - tags?: Array; + tags: Array; /** * * @type {UserInfoResponseVO} * @memberof BlogInfoResponseVO */ - creator?: UserInfoResponseVO; + creator: UserInfoResponseVO; /** * * @type {UserInfoResponseVO} * @memberof BlogInfoResponseVO */ - updater?: UserInfoResponseVO; + updater: UserInfoResponseVO; /** * * @type {Date} * @memberof BlogInfoResponseVO */ - createTime?: Date; + createTime: Date; /** * * @type {Date} * @memberof BlogInfoResponseVO */ - updateTime?: Date; + updateTime: Date; } diff --git a/blog-frontend/src/swagger/models/pageable-voattach-info-response-vo.ts b/blog-frontend/src/swagger/models/pageable-voattach-info-response-vo.ts index 5493a5d..8a53894 100644 --- a/blog-frontend/src/swagger/models/pageable-voattach-info-response-vo.ts +++ b/blog-frontend/src/swagger/models/pageable-voattach-info-response-vo.ts @@ -23,29 +23,29 @@ export interface PageableVOAttachInfoResponseVO { * @type {number} * @memberof PageableVOAttachInfoResponseVO */ - page?: number; + pageNumber: number; /** * * @type {number} * @memberof PageableVOAttachInfoResponseVO */ - size?: number; + pageSize: number; /** * * @type {number} * @memberof PageableVOAttachInfoResponseVO */ - totalElements?: number; + totalElements: number; /** * * @type {number} * @memberof PageableVOAttachInfoResponseVO */ - totalPage?: number; + totalPage: number; /** * * @type {Array} * @memberof PageableVOAttachInfoResponseVO */ - elements?: Array; + elements: Array; } diff --git a/blog-frontend/src/swagger/models/pageable-voblog-info-response-vo.ts b/blog-frontend/src/swagger/models/pageable-voblog-info-response-vo.ts index 74727a2..5ac5d97 100644 --- a/blog-frontend/src/swagger/models/pageable-voblog-info-response-vo.ts +++ b/blog-frontend/src/swagger/models/pageable-voblog-info-response-vo.ts @@ -23,29 +23,29 @@ export interface PageableVOBlogInfoResponseVO { * @type {number} * @memberof PageableVOBlogInfoResponseVO */ - page?: number; + pageNumber: number; /** * * @type {number} * @memberof PageableVOBlogInfoResponseVO */ - size?: number; + pageSize: number; /** * * @type {number} * @memberof PageableVOBlogInfoResponseVO */ - totalElements?: number; + totalElements: number; /** * * @type {number} * @memberof PageableVOBlogInfoResponseVO */ - totalPage?: number; + totalPage: number; /** * * @type {Array} * @memberof PageableVOBlogInfoResponseVO */ - elements?: Array; + elements: Array; } diff --git a/blog-frontend/src/swagger/models/pageable-vosetting-info-response-vo.ts b/blog-frontend/src/swagger/models/pageable-vosetting-info-response-vo.ts index 0eafbf9..1b494cb 100644 --- a/blog-frontend/src/swagger/models/pageable-vosetting-info-response-vo.ts +++ b/blog-frontend/src/swagger/models/pageable-vosetting-info-response-vo.ts @@ -23,29 +23,29 @@ export interface PageableVOSettingInfoResponseVO { * @type {number} * @memberof PageableVOSettingInfoResponseVO */ - page?: number; + pageNumber: number; /** * * @type {number} * @memberof PageableVOSettingInfoResponseVO */ - size?: number; + pageSize: number; /** * * @type {number} * @memberof PageableVOSettingInfoResponseVO */ - totalElements?: number; + totalElements: number; /** * * @type {number} * @memberof PageableVOSettingInfoResponseVO */ - totalPage?: number; + totalPage: number; /** * * @type {Array} * @memberof PageableVOSettingInfoResponseVO */ - elements?: Array; + elements: Array; } diff --git a/blog-frontend/src/swagger/models/pageable-vouser-info-response-vo.ts b/blog-frontend/src/swagger/models/pageable-vouser-info-response-vo.ts index 3f4a730..5410ac5 100644 --- a/blog-frontend/src/swagger/models/pageable-vouser-info-response-vo.ts +++ b/blog-frontend/src/swagger/models/pageable-vouser-info-response-vo.ts @@ -23,29 +23,29 @@ export interface PageableVOUserInfoResponseVO { * @type {number} * @memberof PageableVOUserInfoResponseVO */ - page?: number; + pageNumber: number; /** * * @type {number} * @memberof PageableVOUserInfoResponseVO */ - size?: number; + pageSize: number; /** * * @type {number} * @memberof PageableVOUserInfoResponseVO */ - totalElements?: number; + totalElements: number; /** * * @type {number} * @memberof PageableVOUserInfoResponseVO */ - totalPage?: number; + totalPage: number; /** * * @type {Array} * @memberof PageableVOUserInfoResponseVO */ - elements?: Array; + elements: Array; } diff --git a/blog-frontend/src/swagger/models/setting-info-response-vo.ts b/blog-frontend/src/swagger/models/setting-info-response-vo.ts index d4d3ebc..c5a7642 100644 --- a/blog-frontend/src/swagger/models/setting-info-response-vo.ts +++ b/blog-frontend/src/swagger/models/setting-info-response-vo.ts @@ -22,23 +22,23 @@ export interface SettingInfoResponseVO { * @type {string} * @memberof SettingInfoResponseVO */ - id?: string; + id: string; /** * * @type {string} * @memberof SettingInfoResponseVO */ - content?: string; + content: string; /** * * @type {Date} * @memberof SettingInfoResponseVO */ - createTime?: Date; + createTime: Date; /** * * @type {Date} * @memberof SettingInfoResponseVO */ - updateTime?: Date; + updateTime: Date; } diff --git a/blog-frontend/src/swagger/models/setting-update-require-vo.ts b/blog-frontend/src/swagger/models/setting-update-require-vo.ts index a4dbb47..854b887 100644 --- a/blog-frontend/src/swagger/models/setting-update-require-vo.ts +++ b/blog-frontend/src/swagger/models/setting-update-require-vo.ts @@ -22,5 +22,5 @@ export interface SettingUpdateRequireVO { * @type {string} * @memberof SettingUpdateRequireVO */ - content?: string; + content: string; } diff --git a/blog-frontend/src/swagger/models/user-info-response-vo.ts b/blog-frontend/src/swagger/models/user-info-response-vo.ts index e92d69a..797507d 100644 --- a/blog-frontend/src/swagger/models/user-info-response-vo.ts +++ b/blog-frontend/src/swagger/models/user-info-response-vo.ts @@ -22,37 +22,37 @@ export interface UserInfoResponseVO { * @type {string} * @memberof UserInfoResponseVO */ - id?: string; + id: string; /** * * @type {string} * @memberof UserInfoResponseVO */ - email?: string; + email: string; /** * * @type {string} * @memberof UserInfoResponseVO */ - nickname?: string; + nickname: string; /** * * @type {string} * @memberof UserInfoResponseVO */ - role?: UserInfoResponseVORoleEnum; + role: UserInfoResponseVORoleEnum; /** * * @type {Date} * @memberof UserInfoResponseVO */ - createTime?: Date; + createTime: Date; /** * * @type {Date} * @memberof UserInfoResponseVO */ - updateTime?: Date; + updateTime: Date; } /** diff --git a/blog-frontend/src/views/BlogEditView.vue b/blog-frontend/src/views/BlogEditView.vue index ef2e189..ce63991 100644 --- a/blog-frontend/src/views/BlogEditView.vue +++ b/blog-frontend/src/views/BlogEditView.vue @@ -1,5 +1,5 @@ diff --git a/blog-frontend/src/views/BlogReadView.vue b/blog-frontend/src/views/BlogReadView.vue index e7d850e..5e5308e 100644 --- a/blog-frontend/src/views/BlogReadView.vue +++ b/blog-frontend/src/views/BlogReadView.vue @@ -2,7 +2,7 @@ import { ref } from "vue"; import { useRoute } from "vue-router"; -import { api } from "@/api"; +import { api, globalStore } from "@/api"; import router from "@/router"; import type { BlogInfoResponseVO } from "@/swagger"; @@ -12,7 +12,7 @@ const blogID = useRoute().params.id.toString(); if (blogID) { api.BlogController.getBlogInfo(parseInt(blogID)).then((resp) => { const vo = resp.data; - blogInfo.value = vo.content || {}; + blogInfo.value = vo.content; }); } @@ -30,19 +30,20 @@ function deleteBlog() { -

{{ blogInfo?.creator?.nickname }}

+

{{ blogInfo?.creator.nickname }}

{{ blogInfo?.title }}

- + 编辑 删除
- + +
@@ -63,8 +64,13 @@ function deleteBlog() { text-align: center; } +.blog-author { + font-size: x-large; + white-space: nowrap; +} + .blog-title { - font-size: xx-large; + font-size: x-large; } .blog-content { @@ -74,5 +80,6 @@ function deleteBlog() { .blog-main { width: 100%; + padding: 0; } diff --git a/blog-frontend/src/views/IndexView.vue b/blog-frontend/src/views/IndexView.vue index 2fb3425..1714e17 100644 --- a/blog-frontend/src/views/IndexView.vue +++ b/blog-frontend/src/views/IndexView.vue @@ -2,7 +2,7 @@ import { reactive } from "vue"; import { api } from "@/api"; -import BlogComponent from "@/components/BlogComponent.vue"; +import BlogCardComponent from "@/components/BlogCardComponent.vue"; import type { BlogInfoResponseVO } from "@/swagger"; let page = 0; @@ -17,13 +17,12 @@ function load() { item.updateTime = new Date(item?.updateTime ?? 0); blogs.push(item); } - console.log(page); - if (page?.elements?.length ?? 0 > 0) { + if (page?.elements.length ?? 0 > 0) { console.log( "loaded page " + - page?.page + + page?.pageNumber + " for element count: " + - page?.elements?.length + page?.elements.length ); } }); @@ -35,7 +34,7 @@ function load() {
  • - +
diff --git a/blog-frontend/src/views/RegisterView.vue b/blog-frontend/src/views/RegisterView.vue index c0a30a0..3cbcf9d 100644 --- a/blog-frontend/src/views/RegisterView.vue +++ b/blog-frontend/src/views/RegisterView.vue @@ -13,7 +13,7 @@ const form = reactive<{ }); const onSubmit = () => { - api.UserController.register(form).then((resp) => { + api.UserController.registerUser(form).then((resp) => { let vo = resp.data; if (vo.code === 200) { console.log("register success!");