Browse Source

fix(bookshelf): 修复小说列表渲染错误并优化网格布局

- 将v-for循环的list改为row以正确渲染分页数据
- 移除novel-item的固定宽度样式,使用calc计算动态宽度
- 添加gap间距改善网格布局
master
前端-胡立永 2 days ago
parent
commit
ac591d924a
1 changed files with 6 additions and 5 deletions
  1. +6
    -5
      pages/index/bookshelf.vue

+ 6
- 5
pages/index/bookshelf.vue View File

@ -18,14 +18,14 @@
<view class="novel-grid" v-if="activeTab === 'read' && !isEditMode">
<view class="novel-row" v-for="(row, rowIndex) in novelRows" :key="rowIndex">
<view class="novel-item"
v-for="(novel, index) in list"
v-for="(novel, index) in row"
:key="novel.id"
@click="toNovelDetail(novel)"
@longpress="enterEditMode">
<novel-item
:book="novel"
horizontal="true"
:style="{ width: '220rpx' }">
>
</novel-item>
<view class="novel-tag" v-if="novel.tag">{{novel.tag}}</view>
@ -71,7 +71,7 @@
<view class="novel-grid edit-mode" v-if="activeTab === 'read' && isEditMode">
<view class="novel-row" v-for="(row, rowIndex) in novelRows" :key="rowIndex">
<view class="novel-item"
v-for="(novel, index) in list"
v-for="(novel, index) in row"
:key="novel.id"
@click="toggleSelect(novel, 'novel')">
<view class="item-checkbox" v-if="selectedItems.includes(novel.id)">
@ -87,7 +87,7 @@
<novel-item
:book="novel"
horizontal="true"
:style="{ width: '220rpx', opacity: selectedItems.includes(novel.id) ? '0.8' : '1' }">
:style="{ opacity: selectedItems.includes(novel.id) ? '0.8' : '1' }">
</novel-item>
<view class="novel-tag" v-if="novel.tag">{{novel.tag}}</view>
@ -521,9 +521,10 @@
.novel-row {
display: flex;
margin-bottom: 40rpx;
gap: 10rpx;
.novel-item {
width: 33%;
width: calc((100% - 40rpx) / 3);
position: relative;
.novel-tag {


Loading…
Cancel
Save