往生大殿逝者记录3.0
This commit is contained in:
parent
1e2179eed8
commit
da4180863e
95
MEMORIAL_HALL_USAGE.md
Normal file
95
MEMORIAL_HALL_USAGE.md
Normal file
|
|
@ -0,0 +1,95 @@
|
||||||
|
# 往生殿功能使用说明
|
||||||
|
|
||||||
|
## 功能概述
|
||||||
|
往生殿页面展示往生者信息,支持动态数据加载、搜索功能和下拉刷新。
|
||||||
|
|
||||||
|
## 主要功能
|
||||||
|
|
||||||
|
### 1. 动态数据加载
|
||||||
|
- 页面加载时自动获取往生殿详情和往生者列表
|
||||||
|
- 支持从路由参数获取往生殿ID
|
||||||
|
- 完善的加载状态和错误处理
|
||||||
|
|
||||||
|
### 2. 往生殿信息显示
|
||||||
|
- **往生殿名称**: 动态显示从API获取的往生殿名称
|
||||||
|
- **联系人信息**: 动态显示联系人和联系电话
|
||||||
|
- **地址信息**: 动态显示往生殿地址
|
||||||
|
|
||||||
|
### 3. 往生者信息展示
|
||||||
|
- 显示往生者的尊称和姓名
|
||||||
|
- 显示出生日期(年月日)
|
||||||
|
- 显示逝世日期(年月日),如果数据为空则显示"吉"或"吉利"
|
||||||
|
|
||||||
|
### 4. 搜索功能
|
||||||
|
- 支持按姓名或分区搜索往生者
|
||||||
|
- 实时更新搜索结果
|
||||||
|
- 支持清空搜索条件
|
||||||
|
|
||||||
|
### 5. 下拉刷新
|
||||||
|
- 支持下拉刷新数据
|
||||||
|
- 同时刷新往生殿详情和往生者列表
|
||||||
|
- 显示刷新成功/失败提示
|
||||||
|
|
||||||
|
## API接口
|
||||||
|
|
||||||
|
### 获取往生殿详情
|
||||||
|
- **接口**: `/app/memorial/{id}`
|
||||||
|
- **方法**: GET
|
||||||
|
- **参数**: `id` - 往生殿ID
|
||||||
|
- **响应示例**:
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"msg": "操作成功",
|
||||||
|
"code": 200,
|
||||||
|
"data": {
|
||||||
|
"id": "16",
|
||||||
|
"name": "牌位名字",
|
||||||
|
"contactPhone": "13768722834",
|
||||||
|
"contactName": "黄绍春",
|
||||||
|
"address": "广西壮族自治区南宁市西乡塘区"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### 获取往生者列表
|
||||||
|
- **接口**: `/app/deceased/list`
|
||||||
|
- **方法**: GET
|
||||||
|
- **参数**:
|
||||||
|
- `memorialId`: 往生殿ID
|
||||||
|
- `pageNum`: 页码(可选)
|
||||||
|
- `pageSize`: 每页数量(可选)
|
||||||
|
- `keyword`: 搜索关键词(可选)
|
||||||
|
|
||||||
|
## 使用方法
|
||||||
|
|
||||||
|
### 1. 页面跳转
|
||||||
|
```javascript
|
||||||
|
// 跳转到往生殿页面
|
||||||
|
uni.navigateTo({
|
||||||
|
url: `/pages/memorial/memorialHall?id=16`
|
||||||
|
})
|
||||||
|
```
|
||||||
|
|
||||||
|
### 2. 数据刷新
|
||||||
|
- 下拉页面即可刷新数据
|
||||||
|
- 或调用 `refreshData()` 方法
|
||||||
|
|
||||||
|
### 3. 搜索功能
|
||||||
|
- 在搜索框中输入姓名或分区关键词
|
||||||
|
- 点击搜索按钮或按回车键进行搜索
|
||||||
|
|
||||||
|
## 错误处理
|
||||||
|
- 网络请求失败时显示友好提示
|
||||||
|
- API返回错误时显示具体错误信息
|
||||||
|
- 数据为空时显示"暂无往生者信息"
|
||||||
|
|
||||||
|
## 样式特性
|
||||||
|
- 响应式设计,适配不同屏幕尺寸
|
||||||
|
- 加载状态和空数据状态的友好提示
|
||||||
|
- 统一的视觉风格和交互体验
|
||||||
|
|
||||||
|
## 注意事项
|
||||||
|
1. 确保网络连接正常
|
||||||
|
2. 往生殿ID必须有效
|
||||||
|
3. 搜索功能需要后端支持
|
||||||
|
4. 下拉刷新功能需要页面配置支持
|
||||||
|
|
@ -20,15 +20,21 @@
|
||||||
<view class="container">
|
<view class="container">
|
||||||
<!-- 顶部信息 -->
|
<!-- 顶部信息 -->
|
||||||
<view class="memorial-header">
|
<view class="memorial-header">
|
||||||
<view class="location">中875 东10-29</view>
|
<view class="location">{{ memorialDetail ? memorialDetail.name : '加载中...' }}</view>
|
||||||
<view class="collection-btn">收藏牌位</view>
|
<view class="collection-btn">收藏牌位</view>
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
<!-- 刻铭标题 -->
|
<!-- 刻铭标题 -->
|
||||||
<view class="title">刻铭</view>
|
<view class="title">刻铭</view>
|
||||||
|
|
||||||
|
<!-- 加载状态 -->
|
||||||
|
<view v-if="loading" class="loading-container">
|
||||||
|
<view class="loading-text">加载中...</view>
|
||||||
|
</view>
|
||||||
|
|
||||||
<!-- 动态渲染往生者信息 -->
|
<!-- 动态渲染往生者信息 -->
|
||||||
<view
|
<view
|
||||||
|
v-else-if="deceasedList.length > 0"
|
||||||
v-for="(deceased, index) in deceasedList"
|
v-for="(deceased, index) in deceasedList"
|
||||||
:key="deceased.id"
|
:key="deceased.id"
|
||||||
class="memorial-text"
|
class="memorial-text"
|
||||||
|
|
@ -59,10 +65,22 @@
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
|
<!-- 空数据提示 -->
|
||||||
|
<view v-else-if="!loading && deceasedList.length === 0" class="empty-container">
|
||||||
|
<view class="empty-text">暂无往生者信息</view>
|
||||||
|
</view>
|
||||||
|
|
||||||
<!-- 联系人信息 -->
|
<!-- 联系人信息 -->
|
||||||
<view class="contact-info">
|
<view class="contact-info">
|
||||||
<view>联系人:陈惠玲(13356989666)</view>
|
<view v-if="memorialDetail">
|
||||||
<view>地址:福建省泉州市惠安县平山是旧路256号</view>
|
联系人:{{ memorialDetail.contactName || '暂无' }}({{ memorialDetail.contactPhone || '暂无' }})
|
||||||
|
</view>
|
||||||
|
<view v-if="memorialDetail && memorialDetail.address">
|
||||||
|
地址:{{ memorialDetail.address }}
|
||||||
|
</view>
|
||||||
|
<view v-else>
|
||||||
|
联系人:暂无联系信息
|
||||||
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
|
|
@ -87,7 +105,7 @@
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import {CommonEnum} from '@/enum/common.js'
|
import {CommonEnum} from '@/enum/common.js'
|
||||||
import { getDeceasedList } from '@/api/memorial/index.js'
|
import { getDeceasedList, getMemorialDetail } from '@/api/memorial/index.js'
|
||||||
import SearchBox from "../../components/search-box/search-box.vue"
|
import SearchBox from "../../components/search-box/search-box.vue"
|
||||||
import StatusDisplay from "../../components/status-display/status-display.vue"
|
import StatusDisplay from "../../components/status-display/status-display.vue"
|
||||||
import EnshrinedList from "./compositons/enshrinedList.vue"
|
import EnshrinedList from "./compositons/enshrinedList.vue"
|
||||||
|
|
@ -128,7 +146,9 @@ export default {
|
||||||
pageParams: {
|
pageParams: {
|
||||||
pageNum: 1,
|
pageNum: 1,
|
||||||
pageSize: 10
|
pageSize: 10
|
||||||
}
|
},
|
||||||
|
// 往生殿详情数据
|
||||||
|
memorialDetail: null
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
onLoad(options) {
|
onLoad(options) {
|
||||||
|
|
@ -138,6 +158,10 @@ export default {
|
||||||
}
|
}
|
||||||
this.initPage()
|
this.initPage()
|
||||||
},
|
},
|
||||||
|
// 下拉刷新
|
||||||
|
onPullDownRefresh() {
|
||||||
|
this.refreshData()
|
||||||
|
},
|
||||||
methods: {
|
methods: {
|
||||||
// 初始化页面
|
// 初始化页面
|
||||||
async initPage() {
|
async initPage() {
|
||||||
|
|
@ -145,6 +169,8 @@ export default {
|
||||||
try {
|
try {
|
||||||
// 页面初始化逻辑
|
// 页面初始化逻辑
|
||||||
console.log('往生殿页面初始化,ID:', this.memorialId)
|
console.log('往生殿页面初始化,ID:', this.memorialId)
|
||||||
|
// 获取往生殿详情
|
||||||
|
await this.getMemorialDetail()
|
||||||
// 获取往生者列表
|
// 获取往生者列表
|
||||||
await this.getDeceasedList()
|
await this.getDeceasedList()
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
|
|
@ -158,6 +184,31 @@ export default {
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
// 获取往生殿详情
|
||||||
|
async getMemorialDetail() {
|
||||||
|
try {
|
||||||
|
const response = await getMemorialDetail(this.memorialId)
|
||||||
|
console.log('往生殿详情响应:', response)
|
||||||
|
|
||||||
|
if (response.code === 200) {
|
||||||
|
this.memorialDetail = response.data
|
||||||
|
console.log('往生殿详情数据:', this.memorialDetail)
|
||||||
|
} else {
|
||||||
|
console.error('获取往生殿详情失败:', response.msg)
|
||||||
|
uni.showToast({
|
||||||
|
title: response.msg || '获取往生殿信息失败',
|
||||||
|
icon: 'none'
|
||||||
|
})
|
||||||
|
}
|
||||||
|
} catch (error) {
|
||||||
|
console.error('获取往生殿详情异常:', error)
|
||||||
|
uni.showToast({
|
||||||
|
title: '获取往生殿信息失败',
|
||||||
|
icon: 'none'
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
// 获取往生者列表
|
// 获取往生者列表
|
||||||
async getDeceasedList() {
|
async getDeceasedList() {
|
||||||
try {
|
try {
|
||||||
|
|
@ -212,6 +263,31 @@ export default {
|
||||||
submitPrayer() {
|
submitPrayer() {
|
||||||
console.log('提交供奉')
|
console.log('提交供奉')
|
||||||
// 这里可以添加供奉逻辑
|
// 这里可以添加供奉逻辑
|
||||||
|
},
|
||||||
|
|
||||||
|
// 刷新数据
|
||||||
|
async refreshData() {
|
||||||
|
try {
|
||||||
|
// 重置页码
|
||||||
|
this.pageParams.pageNum = 1
|
||||||
|
// 重新获取数据
|
||||||
|
await this.getMemorialDetail()
|
||||||
|
await this.getDeceasedList()
|
||||||
|
// 停止下拉刷新
|
||||||
|
uni.stopPullDownRefresh()
|
||||||
|
uni.showToast({
|
||||||
|
title: '刷新成功',
|
||||||
|
icon: 'success',
|
||||||
|
duration: 1500
|
||||||
|
})
|
||||||
|
} catch (error) {
|
||||||
|
console.error('刷新数据失败:', error)
|
||||||
|
uni.stopPullDownRefresh()
|
||||||
|
uni.showToast({
|
||||||
|
title: '刷新失败',
|
||||||
|
icon: 'none'
|
||||||
|
})
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -276,6 +352,32 @@ export default {
|
||||||
//border: 1px red solid;
|
//border: 1px red solid;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.loading-container {
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
height: 100rpx; /* Adjust height as needed */
|
||||||
|
margin-bottom: 22rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.loading-text {
|
||||||
|
font-size: 28rpx;
|
||||||
|
color: #522510;
|
||||||
|
}
|
||||||
|
|
||||||
|
.empty-container {
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
height: 100rpx;
|
||||||
|
margin-bottom: 22rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.empty-text {
|
||||||
|
font-size: 28rpx;
|
||||||
|
color: #999;
|
||||||
|
}
|
||||||
|
|
||||||
.memorial-text {
|
.memorial-text {
|
||||||
display: flex;
|
display: flex;
|
||||||
margin-bottom: 38rpx;
|
margin-bottom: 38rpx;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user