diff --git a/珞珈岛-项目相关文件/luojia-island/vue-frontend/src/components/NoticeBoard.vue b/珞珈岛-项目相关文件/luojia-island/vue-frontend/src/components/NoticeBoard.vue index 6998e84..bc11b17 100644 --- a/珞珈岛-项目相关文件/luojia-island/vue-frontend/src/components/NoticeBoard.vue +++ b/珞珈岛-项目相关文件/luojia-island/vue-frontend/src/components/NoticeBoard.vue @@ -101,16 +101,17 @@ onUnmounted(() => { \ No newline at end of file diff --git a/珞珈岛-项目相关文件/luojia-island/vue-frontend/src/components/WelcomeCalendar.vue b/珞珈岛-项目相关文件/luojia-island/vue-frontend/src/components/WelcomeCalendar.vue index fc37a3d..ce6a069 100644 --- a/珞珈岛-项目相关文件/luojia-island/vue-frontend/src/components/WelcomeCalendar.vue +++ b/珞珈岛-项目相关文件/luojia-island/vue-frontend/src/components/WelcomeCalendar.vue @@ -90,8 +90,12 @@ initializeDate(); flex-direction: column; align-items: center; justify-content: space-between; - width: 300px; - height: 350px; + width: 100%; + height: 100%; + min-width: 180px; + min-height: 220px; + max-width: 300px; + max-height: 300px; margin: 0 auto; border: 1px solid #ccc; border-radius: 8px; @@ -108,7 +112,7 @@ initializeDate(); font-weight: bold; color: #5aa76f; text-align: center; - margin-bottom: 20px; + margin-bottom: 1px; } .welcome-body { @@ -116,7 +120,7 @@ initializeDate(); justify-content: space-between; align-items: center; width: 100%; - margin-bottom: 20px; + margin-bottom: 1px; } .month-column, @@ -124,17 +128,19 @@ initializeDate(); display: flex; flex-direction: column; align-items: center; - font-size: 16px; + font-size: 20px; font-weight: bold; color: #333; - gap: 2px; /* 紧凑排列 */ + gap: 2px; } .day-row { display: flex; justify-content: center; align-items: center; - font-size: 180px; /* 日期号字体放大 */ + font-size: 10vw; /* 用vw自适应字体大小 */ + min-font-size: 40px; + max-font-size: 120px; font-weight: bold; color: #5aa76f; flex: 1; /* 占据中间空间 */ diff --git a/珞珈岛-项目相关文件/luojia-island/vue-frontend/src/stores/postlist.js b/珞珈岛-项目相关文件/luojia-island/vue-frontend/src/stores/postlist.js index 2901758..a2230b4 100644 --- a/珞珈岛-项目相关文件/luojia-island/vue-frontend/src/stores/postlist.js +++ b/珞珈岛-项目相关文件/luojia-island/vue-frontend/src/stores/postlist.js @@ -6,7 +6,7 @@ export const usePostListStore = defineStore('postList', { posts: [], // 帖子列表 total: 0, // 帖子总数 page: 1, // 当前页码 - pageSize: 10, // 每页帖子数 + pageSize: 6, // 每页帖子数 lastVal: Date.now(), // 用于滚动分页的时间戳 offset: 0, // 偏移量 loading: false, // 加载状态 @@ -37,7 +37,6 @@ export const usePostListStore = defineStore('postList', { image: post.image, avatar: post.userAvatar || require('@/assets/default-avatar/boy_1.png'), title: post.title, - summary: post.content ? post.content.slice(0, 40) + (post.content.length > 40 ? '...' : '') : '', viewCount: post.viewCount || 0, likes: post.likeCount || 0, comments: post.commentCount || 0, diff --git a/珞珈岛-项目相关文件/luojia-island/vue-frontend/src/views/MainPage.vue b/珞珈岛-项目相关文件/luojia-island/vue-frontend/src/views/MainPage.vue index 2333cc2..2dfe95a 100644 --- a/珞珈岛-项目相关文件/luojia-island/vue-frontend/src/views/MainPage.vue +++ b/珞珈岛-项目相关文件/luojia-island/vue-frontend/src/views/MainPage.vue @@ -1,17 +1,12 @@ @@ -19,33 +14,29 @@ import NoticeBoard from '@/components/NoticeBoard.vue'; import WelcomeCalendar from '@/components/WelcomeCalendar.vue'; import PostPage from '@/components/PostPage.vue'; -// import UserPage from './UserPage.vue'; -// import PostDetail from './PostDetail.vue'; \ No newline at end of file diff --git a/珞珈岛-项目相关文件/luojia-island/vue-frontend/src/views/PostDetail.vue b/珞珈岛-项目相关文件/luojia-island/vue-frontend/src/views/PostDetail.vue index e50d23d..7aeb158 100644 --- a/珞珈岛-项目相关文件/luojia-island/vue-frontend/src/views/PostDetail.vue +++ b/珞珈岛-项目相关文件/luojia-island/vue-frontend/src/views/PostDetail.vue @@ -2,11 +2,13 @@
- 头像
@@ -18,128 +20,138 @@
- -
- 帖子封面 -

{{ postDetailStore.post?.title || '' }}

-

{{ postDetailStore.post?.content || '' }}

-
- 👁 {{ postDetailStore.post?.viewCount ?? 0 }} - 🗨 {{ postDetailStore.post?.commentCount ?? 0 }} - - - -
-
- 发布时间:{{ postDetailStore.post?.createTime ? formatTime(postDetailStore.post.createTime) : '' }} + +
+ +
+ 帖子封面 +

{{ postDetailStore.post?.title || '' }}

+

{{ postDetailStore.post?.content || '' }}

+
+ 👁 {{ postDetailStore.post?.viewCount ?? 0 }} + 🗨 {{ postDetailStore.post?.commentCount ?? 0 }} + + + +
+
+ 发布时间:{{ postDetailStore.post?.createTime ? formatTime(postDetailStore.post.createTime) : '' }} +
-
- - -
-

评论

-
    -
  • - 评论者头像 -
    -

    {{ comment.userName || '匿名用户' }}

    -

    {{ comment.content || '' }}

    -
    - {{ comment.createTime ? formatTime(comment.createTime) : '' }} - - - - - + +
    +

    评论

    +
      +
    • + 暂时没有评论哦,快来发表吧!!! +
    • +
    • + 评论者头像 +
      +

      {{ comment.userName || '匿名用户' }}

      +

      {{ comment.content || '' }}

      -
      - -
        -
      • - 评论者头像 -
        -

        - {{ reply.userName || '匿名用户' }} - 回复 @{{ reply.replyUserName }} -

        -

        {{ reply.content || '' }}

        -
        - {{ reply.createTime ? formatTime(reply.createTime) : '' }} - - + >✖ +
        + {{ comment.createTime ? formatTime(comment.createTime) : '' }} + + + + + +
        + +
          +
        • + 评论者头像 +
          +

          + {{ reply.userName || '匿名用户' }} + 回复 @{{ reply.replyUserName }} +

          +

          {{ reply.content || '' }}

          + >✖ +
          + {{ reply.createTime ? formatTime(reply.createTime) : '' }} + + +
          -
        -
      • -
      • 加载中...
      • -
      • 没有更多回复了
      • -
      -
    -
  • -
-
+ +
  • 加载中...
  • +
  • 没有更多回复了
  • + +
    + +
  • + 没有更多评论啦...... +
  • + +
    - -
    -
    - 正在回复 @{{ replyingComment.userName || '匿名用户' }} - + +
    +
    + 正在回复 @{{ replyingComment.userName || '匿名用户' }} + +
    +
    + + +
    - -
    @@ -280,15 +292,14 @@ onUnmounted(() => { .post-detail-container { display: grid; grid-template-areas: - "post-content author-info" - "comments-section author-info" - "comment-box author-info"; - grid-template-columns: 3fr 1fr; /* 左侧内容占 3/4,右侧作者信息占 1/4 */ + "main-content author-info"; + grid-template-columns: 3fr 1fr; gap: 20px; padding: 20px; box-sizing: border-box; - max-width: 1200px; /* 设置页面最大宽度 */ - margin: 0 auto; /* 居中页面并添加左右留白 */ + max-width: 1200px; + margin: 0 auto; + height: 100vh; } .author-info { @@ -344,10 +355,20 @@ onUnmounted(() => { background-color: #4a8a5a; } +.main-content { + grid-area: main-content; + display: flex; + flex-direction: column; + height: 100%; + gap:20px; + min-width: 0; + min-height: 0; +} + .post-content { grid-area: post-content; background-color: #ffffff; - padding: 20px; + padding: 5px; border: 1px solid #ccc; border-radius: 8px; position: relative; /* 为绝对定位的元素提供参考 */ @@ -365,15 +386,18 @@ onUnmounted(() => { } .post-title { - font-size: 24px; + font-size: 32px; margin-bottom: 10px; - text-align: left; /* 设置居左 */ + text-align: left; + padding-left: 5px; } .post-body { font-size: 16px; line-height: 1.5; margin-bottom: 20px; + text-align: left; + padding-left: 16px; } .post-stats { @@ -387,18 +411,20 @@ onUnmounted(() => { .post-time { position: absolute; - bottom: 20px; /* 距离底部 20px */ + bottom: 5px; /* 距离底部 20px */ right: 20px; /* 距离右侧 20px */ font-size: 12px; color: #999; } .comments-section { - grid-area: comments-section; + flex: 1 1 0; + min-height: 0; background-color: #ffffff; padding: 20px; border: 1px solid #ccc; border-radius: 8px; + overflow-y: auto; } .comments-title { @@ -434,6 +460,7 @@ onUnmounted(() => { flex: 1; display: flex; flex-direction: column; + padding-left: 12px; } .comment-name { @@ -445,6 +472,7 @@ onUnmounted(() => { margin: 0; font-size: 14px; color: #333; + text-align: left; } .comment-meta { @@ -459,32 +487,50 @@ onUnmounted(() => { font-size: 12px; color: #666; } - +.expand-reply-btn { + background: none; + border: none; + color: #409eff; + cursor: pointer; + font-size: 13px; + padding: 2px 8px; + z-index: 1; +} .comment-likes { font-size: 12px; color: #666; } - +.comments-finished-tip { + color: #999; + font-size: 14px; + text-align: center; + padding: 16px 0 8px 0; + letter-spacing: 1px; +} .comment-box { - grid-area: comment-box; display: flex; flex-direction: column; gap: 10px; + background: #fff; + padding: 6px 24px 12px 24px; + box-shadow: 0 -2px 12px rgba(0,0,0,0.06); + border-radius: 8px; } .comment-input { width: 100%; height: 80px; - padding: 10px; + padding: 10px 80px 32px 10px; /* 右下留空间给按钮 */ border: 1px solid #ccc; border-radius: 8px; resize: none; font-size: 14px; + box-sizing: border-box; } .send-button { - align-self: flex-end; - padding: 10px 20px; + /* 位置已由内联style控制 */ + padding: 8px 20px; background-color: #5aa76f; color: white; border: none; @@ -508,7 +554,7 @@ onUnmounted(() => { .replies-list { list-style: none; - padding-left: 48px; /* 更明显的缩进 */ + padding-left: 48px; margin: 8px 0 0 0; border-left: 2px solid #e0e0e0; } @@ -576,17 +622,23 @@ onUnmounted(() => { border: none; color: #f56c6c; cursor: pointer; - font-size: 13px; + font-size: 18px; margin-left: 10px; + position: absolute; + top: 0; + right: 0; + z-index: 2; } .delete-btn:hover { - text-decoration: underline; + color: #ff2222; + background: #f9eaea; + border-radius: 50%; } .like-btn { margin-left: 8px; background: none; border: none; - color: #409eff; + color: #222323; cursor: pointer; font-size: 14px; }