往生大殿逝者记录4.0-内容区域可滑动

This commit is contained in:
minimaxagent1 2025-08-11 11:37:40 +08:00
parent 932ee52441
commit 2a7e874ae3
2 changed files with 95 additions and 56 deletions

View File

@ -1,7 +1,7 @@
# 往生殿页面跳转功能测试
## 功能描述
从memorial页面点击"供奉"按钮后跳转到memorialHall页面并传递往生殿ID进行页面渲染。
从memorial页面点击"供奉"按钮后跳转到memorialHall页面并传递往生殿ID进行页面渲染。memorialHall页面具有固定容器高度和可滚动的内容区域。
## 跳转流程
@ -14,6 +14,7 @@
- **路径**: `/pages/memorial/memorialHall`
- **功能**: 往生大殿详情页面
- **接收参数**: `id` - 往生殿ID
- **特色功能**: 固定容器高度,内容区域可滚动
## 实现细节
@ -40,18 +41,24 @@ submitPrayer() {
}
```
### memorialHall.vue 中的参数接收
### memorialHall.vue 中的参数接收和滚动功能
```javascript
onLoad(options) {
console.log('memorialHall页面接收到的参数:', options)
// 从路由参数获取往生殿ID
if (options.id) {
this.memorialId = options.id
console.log('设置往生殿ID:', this.memorialId)
this.selectedUnitId = options.id
console.log('区域ID:', this.selectedUnitId)
} else {
console.warn('未接收到往生殿ID使用默认ID:', this.memorialId)
console.warn('未接收到区域ID使用默认ID:', this.selectedUnitId)
}
this.initPage()
},
// 滚动事件处理
onScroll(e) {
console.log('滚动位置:', e.detail.scrollTop)
this.scrollTop = e.detail.scrollTop
}
```
@ -73,6 +80,12 @@ uni.navigateTo({
- 页面应该跳转到memorialHall页面
- 控制台应该显示接收到的参数
- 页面应该根据传递的ID加载对应的往生殿信息
- 内容区域应该可以垂直滚动
### 4. 测试滚动功能
- 当往生者列表内容超出容器高度时,可以上下滚动查看
- 滚动时控制台会显示滚动位置信息
- 容器高度保持固定,不会随内容变化
## 预期结果
@ -94,10 +107,11 @@ uni.navigateTo({
### 控制台日志
- `memorialHall页面接收到的参数:` - 显示接收到的所有参数
- `设置往生殿ID:` - 显示设置的往生殿ID
- `往生殿页面初始化ID:` - 显示页面初始化时的ID
- `区域ID:` - 显示设置的往生殿ID
- `往生殿页面初始化ID:` - 显示页面初始化时的ID
- `往生殿详情响应:` - 显示API响应数据
- `往生者列表数据:` - 显示往生者列表数据
- `滚动位置:` - 显示当前滚动位置
### 网络请求
- `GET /app/memorial/{id}` - 获取往生殿详情

View File

@ -27,61 +27,69 @@
<!-- 刻铭标题 -->
<view class="title">刻铭</view>
<!-- 加载状态 -->
<view v-if="loading" class="loading-container">
<view class="loading-text">加载中...</view>
</view>
<!-- 动态渲染往生者信息 -->
<view
v-else-if="deceasedList.length > 0"
v-for="(deceased, index) in deceasedList"
:key="deceased.id"
class="memorial-text"
<!-- 滚动内容区域 -->
<scroll-view
class="scroll-content"
scroll-y="true"
:scroll-top="scrollTop"
@scroll="onScroll"
>
<view class="name">
<view class="honorific">{{ deceased.honorific }}</view>
<view class="fullName">{{ deceased.fullName }}</view>
<!-- 加载状态 -->
<view v-if="loading" class="loading-container">
<view class="loading-text">加载中...</view>
</view>
<view class="date">
<view class="bornDate">
<view></view>
<view>{{ deceased.bornYear }}</view>
<view class="time"></view>
<view>{{ deceased.bornMonths }}</view>
<view class="time"></view>
<view>{{ deceased.bornDay }}</view>
<view class="time"></view>
<!-- 动态渲染往生者信息 -->
<view
v-else-if="deceasedList.length > 0"
v-for="(deceased, index) in deceasedList"
:key="deceased.id"
class="memorial-text"
>
<view class="name">
<view class="honorific">{{ deceased.honorific }}</view>
<view class="fullName">{{ deceased.fullName }}</view>
</view>
<view class="diedDate">
<view></view>
<view>{{ deceased.diedYear || '吉' }}</view>
<view class="time"></view>
<view>{{ deceased.diedMonths || '吉利' }}</view>
<view class="time"></view>
<view>{{ deceased.diedDay || '吉' }}</view>
<view class="time"></view>
<view class="date">
<view class="bornDate">
<view></view>
<view>{{ deceased.bornYear }}</view>
<view class="time"></view>
<view>{{ deceased.bornMonths }}</view>
<view class="time"></view>
<view>{{ deceased.bornDay }}</view>
<view class="time"></view>
</view>
<view class="diedDate">
<view></view>
<view>{{ deceased.diedYear || '吉' }}</view>
<view class="time"></view>
<view>{{ deceased.diedMonths || '吉利' }}</view>
<view class="time"></view>
<view>{{ deceased.diedDay || '吉' }}</view>
<view class="time"></view>
</view>
</view>
</view>
</view>
<!-- 空数据提示 -->
<view v-else-if="!loading && deceasedList.length === 0" class="empty-container">
<view class="empty-text">暂无往生者信息</view>
</view>
<!-- 空数据提示 -->
<view v-else-if="!loading && deceasedList.length === 0" class="empty-container">
<view class="empty-text">暂无往生者信息</view>
</view>
<!-- 联系人信息 -->
<view class="contact-info">
<view v-if="memorialDetail">
联系人{{ memorialDetail.contactName || '暂无' }}{{ memorialDetail.contactPhone || '暂无' }}
<!-- 联系人信息 -->
<view class="contact-info">
<view v-if="memorialDetail">
联系人{{ memorialDetail.contactName || '暂无' }}{{ memorialDetail.contactPhone || '暂无' }}
</view>
<view v-if="memorialDetail && memorialDetail.address">
地址{{ memorialDetail.address }}
</view>
<view v-else>
联系人暂无联系信息
</view>
</view>
<view v-if="memorialDetail && memorialDetail.address">
地址{{ memorialDetail.address }}
</view>
<view v-else>
联系人暂无联系信息
</view>
</view>
</scroll-view>
</view>
<!-- 状态栏 -->
@ -138,7 +146,7 @@ export default {
unit: null
},
// ID
selectedUnitId: '16',
selectedUnitId: '',
//
deceasedList: [],
//
@ -147,7 +155,9 @@ export default {
pageSize: 10
},
// 殿
memorialDetail: null
memorialDetail: null,
//
scrollTop: 0
}
},
onLoad(options) {
@ -291,6 +301,12 @@ export default {
icon: 'none'
})
}
},
//
onScroll(e) {
console.log('滚动位置:', e.detail.scrollTop)
this.scrollTop = e.detail.scrollTop
}
}
}
@ -317,6 +333,8 @@ export default {
//border: 1px red solid;
height: 862rpx;
padding:34rpx 32rpx 0 32rpx;
display: flex;
flex-direction: column;
.memorial-header {
display: flex;
justify-content: space-between;
@ -355,6 +373,12 @@ export default {
//border: 1px red solid;
}
.scroll-content {
flex: 1;
height: 0; // flex: 1
overflow: hidden;
}
.loading-container {
display: flex;
justify-content: center;
@ -450,6 +474,7 @@ export default {
line-height: 38rpx;
letter-spacing: 1px;
text-align: left;
padding-bottom: 32rpx;
}
}