From b5eb9b468ebbfeb1fff067226120fdfd502d1745 Mon Sep 17 00:00:00 2001 From: MiniDay <372403923@qq.com> Date: Thu, 6 Apr 2023 08:52:04 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=BC=80=E5=8F=91=E4=B8=AD...?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../application/blog/entity/BlogEntity.java | 9 +- .../blog/vo/blog/BlogUpdateRequireVO.java | 6 - .../src/main/resources/application-dev.yml | 2 +- blog-frontend/src/App.vue | 3 + blog-frontend/src/api/api.ts | 2 +- .../src/components/BlogCardComponent.vue | 78 +++++-- .../src/components/HeaderComponent.vue | 8 +- .../components/manage/BlogManageComponent.vue | 216 ++++++++++++++++++ .../components/manage/SiteManageComponent.vue | 5 +- blog-frontend/src/views/BlogEditView.vue | 52 ++++- blog-frontend/src/views/BlogReadView.vue | 31 +-- blog-frontend/src/views/IndexView.vue | 5 +- blog-frontend/src/views/LoginView.vue | 50 ++-- blog-frontend/src/views/ManagePaneView.vue | 18 +- blog-frontend/src/views/RegisterView.vue | 21 +- 15 files changed, 422 insertions(+), 84 deletions(-) create mode 100644 blog-frontend/src/components/manage/BlogManageComponent.vue diff --git a/blog-backend/src/main/java/cn/hamster3/application/blog/entity/BlogEntity.java b/blog-backend/src/main/java/cn/hamster3/application/blog/entity/BlogEntity.java index d8d4017..b4f83b0 100644 --- a/blog-backend/src/main/java/cn/hamster3/application/blog/entity/BlogEntity.java +++ b/blog-backend/src/main/java/cn/hamster3/application/blog/entity/BlogEntity.java @@ -1,9 +1,12 @@ package cn.hamster3.application.blog.entity; import jakarta.persistence.*; +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotNull; import lombok.Getter; import lombok.Setter; import lombok.ToString; +import org.hibernate.validator.constraints.Length; import org.springframework.data.annotation.CreatedBy; import org.springframework.data.annotation.CreatedDate; import org.springframework.data.annotation.LastModifiedBy; @@ -24,12 +27,15 @@ public class BlogEntity { @Column(name = "id", nullable = false, updatable = false) private Long id; + @Length(max = 128, message = "标题长度不能超过 128 个字符!") @Column(name = "title", nullable = false, length = 128) private String title; - @Column(name = "abstracts", nullable = false, length = 512) + @Length(max = 1024, message = "摘要长度不能超过 1024 个字符!") + @Column(name = "abstracts", nullable = false, length = 1024) private String abstracts; + @NotBlank(message = "博客文章内容不能为空!") @ToString.Exclude @Lob @Basic(fetch = FetchType.LAZY) @@ -42,6 +48,7 @@ public class BlogEntity { @Column(name = "publish", nullable = false) private Boolean publish = false; + @NotNull(message = "标签不能为 null") @Setter @ElementCollection @Column(name = "tag") diff --git a/blog-backend/src/main/java/cn/hamster3/application/blog/vo/blog/BlogUpdateRequireVO.java b/blog-backend/src/main/java/cn/hamster3/application/blog/vo/blog/BlogUpdateRequireVO.java index f3e4c10..b3ccedd 100644 --- a/blog-backend/src/main/java/cn/hamster3/application/blog/vo/blog/BlogUpdateRequireVO.java +++ b/blog-backend/src/main/java/cn/hamster3/application/blog/vo/blog/BlogUpdateRequireVO.java @@ -1,11 +1,9 @@ package cn.hamster3.application.blog.vo.blog; import jakarta.validation.constraints.NotBlank; -import jakarta.validation.constraints.NotNull; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; -import org.hibernate.validator.constraints.Length; import java.util.Set; @@ -13,20 +11,16 @@ import java.util.Set; @NoArgsConstructor @AllArgsConstructor public class BlogUpdateRequireVO { - @Length(max = 32, message = "标题长度不能超过 32 个字符!") @NotBlank(message = "标题不能为空!") private String title; - @Length(max = 512, message = "摘要长度不能超过 512 个字符!") private String abstracts; - @NotBlank(message = "博客文章内容不能为空!") private String content; private Boolean top; private Boolean publish; - @NotNull(message = "标签不能为 null") private Set tags; } diff --git a/blog-backend/src/main/resources/application-dev.yml b/blog-backend/src/main/resources/application-dev.yml index 44ac15b..4ca0cad 100644 --- a/blog-backend/src/main/resources/application-dev.yml +++ b/blog-backend/src/main/resources/application-dev.yml @@ -7,7 +7,7 @@ spring: ddl-auto: update # open-in-view: true show-ddl: true - show-sql: true +# show-sql: true autoconfigure: exclude: # - org.springframework.boot.autoconfigure.security.servlet.SecurityAutoConfiguration diff --git a/blog-frontend/src/App.vue b/blog-frontend/src/App.vue index 6d623ca..c0a97e5 100644 --- a/blog-frontend/src/App.vue +++ b/blog-frontend/src/App.vue @@ -43,6 +43,9 @@ onMounted(() => { .app-container { width: 100%; height: 100%; + + max-width: 1280px; + margin: 0 auto; } .app-header { diff --git a/blog-frontend/src/api/api.ts b/blog-frontend/src/api/api.ts index e7db4bb..bee804d 100644 --- a/blog-frontend/src/api/api.ts +++ b/blog-frontend/src/api/api.ts @@ -26,7 +26,7 @@ export const api = { console.log("current user info: ", vo.content); } else { globalStore.currentUserInfo = undefined; - console.warn("ckeck current user info failed!"); + console.warn("ckeck current user info failed!", vo); } globalStore.save(); }); diff --git a/blog-frontend/src/components/BlogCardComponent.vue b/blog-frontend/src/components/BlogCardComponent.vue index 7769ce5..14fc55f 100644 --- a/blog-frontend/src/components/BlogCardComponent.vue +++ b/blog-frontend/src/components/BlogCardComponent.vue @@ -11,6 +11,10 @@ function showBlog() { router.push("/blog/" + props.blog.id + "/read/"); } +function showTags(tag: string) { + console.log("show tag blogs: " + tag); +} + function showCreator() { console.log("showCreator"); } @@ -24,26 +28,49 @@ function showUpdater() {
- + @@ -52,40 +79,51 @@ function showUpdater() { diff --git a/blog-frontend/src/components/HeaderComponent.vue b/blog-frontend/src/components/HeaderComponent.vue index eae13f6..a115c43 100644 --- a/blog-frontend/src/components/HeaderComponent.vue +++ b/blog-frontend/src/components/HeaderComponent.vue @@ -56,7 +56,7 @@ function onSelectMenu(index: string) { {{ customMenu.text }} -
+
登录 @@ -78,8 +78,4 @@ function onSelectMenu(index: string) { - + diff --git a/blog-frontend/src/components/manage/BlogManageComponent.vue b/blog-frontend/src/components/manage/BlogManageComponent.vue new file mode 100644 index 0000000..f79985b --- /dev/null +++ b/blog-frontend/src/components/manage/BlogManageComponent.vue @@ -0,0 +1,216 @@ + + + + + diff --git a/blog-frontend/src/components/manage/SiteManageComponent.vue b/blog-frontend/src/components/manage/SiteManageComponent.vue index 527b1c0..4a245a4 100644 --- a/blog-frontend/src/components/manage/SiteManageComponent.vue +++ b/blog-frontend/src/components/manage/SiteManageComponent.vue @@ -35,6 +35,7 @@ function changeCustomCSS(cssText: string) {