From a5dd0c446df4d53dd56940c59a5a42f8bc483cfb Mon Sep 17 00:00:00 2001 From: Yuhang Wu Date: Thu, 20 Aug 2026 17:22:18 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E4=BC=98=E5=8C=96=E4=B9=A6=E7=B1=8D?= =?UTF-8?q?=E8=AF=A6=E6=83=85=E9=A1=B5=E4=B8=8E=E5=B0=81=E9=9D=A2=E7=BB=84?= =?UTF-8?q?=E4=BB=B6=EF=BC=8C=E6=96=B0=E5=A2=9E=E9=BB=98=E8=AE=A4=E5=B0=81?= =?UTF-8?q?=E9=9D=A2=E4=B8=8E=E5=B8=83=E5=B1=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1. 重构BookCover组件,移除渐变 fallback 逻辑,新增默认封面图片 2. 调整书籍详情页布局,使用Grid组件重构章节列表,优化阅读体验 3. 为简介和章节区域添加滚动容器,优化长内容展示 4. 完善返回按钮样式与页面整体排版 --- src/assets/cover.jpg | Bin 0 -> 35128 bytes src/components/BookCover.vue | 85 +++------------------------- src/types/components.d.ts | 2 + src/views/BookDetail.vue | 104 +++++++++++++++++++++++++---------- 4 files changed, 84 insertions(+), 107 deletions(-) create mode 100644 src/assets/cover.jpg diff --git a/src/assets/cover.jpg b/src/assets/cover.jpg new file mode 100644 index 0000000000000000000000000000000000000000..cb67f954aeee0bf7976f8eb7d158b0e7ef03ff70 GIT binary patch literal 35128 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 ck2+1$4-g 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
- -
- -
-

{{ title }}

- {{ author || "佚名" }} -
-
+
@@ -63,52 +40,4 @@ const resolvedSrc = computed(() => { display: block; } } - -.cover-fallback { - position: relative; - width: 100%; - height: 100%; - display: flex; - align-items: center; - justify-content: center; - padding: 16px 12px; - color: #fff; - text-align: center; -} - -.cover-spine { - position: absolute; - left: 0; - top: 0; - bottom: 0; - width: 8px; - background: rgba(0, 0, 0, 0.18); -} - -.cover-meta { - display: flex; - flex-direction: column; - align-items: center; - gap: 8px; -} - -.cover-title { - font-size: 14px; - font-weight: 700; - line-height: 1.4; - display: -webkit-box; - -webkit-line-clamp: 3; - -webkit-box-orient: vertical; - overflow: hidden; - text-shadow: 0 1px 3px rgba(0, 0, 0, 0.25); -} - -.cover-author { - font-size: 12px; - opacity: 0.85; - display: -webkit-box; - -webkit-line-clamp: 1; - -webkit-box-orient: vertical; - overflow: hidden; -} diff --git a/src/types/components.d.ts b/src/types/components.d.ts index 0df5cbe..e4bd399 100644 --- a/src/types/components.d.ts +++ b/src/types/components.d.ts @@ -24,6 +24,8 @@ declare module 'vue' { NEmpty: typeof import('naive-ui')['NEmpty'] NForm: typeof import('naive-ui')['NForm'] NFormItem: typeof import('naive-ui')['NFormItem'] + NGi: typeof import('naive-ui')['NGi'] + NGrid: typeof import('naive-ui')['NGrid'] NIcon: typeof import('naive-ui')['NIcon'] NInput: typeof import('naive-ui')['NInput'] NLayout: typeof import('naive-ui')['NLayout'] diff --git a/src/views/BookDetail.vue b/src/views/BookDetail.vue index dc396a4..5049255 100644 --- a/src/views/BookDetail.vue +++ b/src/views/BookDetail.vue @@ -1,14 +1,13 @@ @@ -164,25 +173,47 @@ onMounted(() => {