feat: 添加登录失败处理及记录格式化功能
增加登录失败状态处理和重试机制 将记录格式化逻辑提取到工具函数 优化云数据库查询性能
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
// records.js
|
||||
const { appointmentDB } = require('../../utils/cloud')
|
||||
const { appointmentDB, formatRecord } = require('../../utils/cloud')
|
||||
const app = getApp()
|
||||
|
||||
Page({
|
||||
@@ -11,18 +11,12 @@ Page({
|
||||
},
|
||||
|
||||
onLoad() {
|
||||
if (!app.globalData.isLoggedIn) {
|
||||
wx.showToast({ title: '请先登录', icon: 'none' })
|
||||
setTimeout(() => {
|
||||
wx.navigateBack()
|
||||
}, 1500)
|
||||
return
|
||||
}
|
||||
this.loadRecords()
|
||||
},
|
||||
|
||||
onShow() {
|
||||
if (app.globalData.isLoggedIn) {
|
||||
// 仅从预约页返回时刷新,避免 onLoad + onShow 双重加载
|
||||
if (this.data._loaded) {
|
||||
this.loadRecords()
|
||||
}
|
||||
},
|
||||
@@ -32,26 +26,12 @@ Page({
|
||||
try {
|
||||
const openid = app.globalData.userInfo.openid
|
||||
const records = await appointmentDB.getList(openid)
|
||||
|
||||
// 格式化时间
|
||||
const formatted = records.map(item => {
|
||||
const date = item.createTime
|
||||
let createTimeStr = ''
|
||||
if (date) {
|
||||
if (typeof date === 'object' && date.$date) {
|
||||
createTimeStr = new Date(date.$date).toLocaleString('zh-CN')
|
||||
} else {
|
||||
createTimeStr = new Date(date).toLocaleString('zh-CN')
|
||||
}
|
||||
}
|
||||
return { ...item, createTime: createTimeStr }
|
||||
})
|
||||
|
||||
this.setData({ records: formatted, loading: false })
|
||||
const formatted = records.map(item => formatRecord(item))
|
||||
this.setData({ records: formatted, loading: false, _loaded: true })
|
||||
this.filterRecords()
|
||||
} catch (err) {
|
||||
console.error('加载预约记录失败', err)
|
||||
this.setData({ records: [], loading: false })
|
||||
this.setData({ records: [], loading: false, _loaded: true })
|
||||
this.filterRecords()
|
||||
}
|
||||
},
|
||||
|
||||
@@ -14,13 +14,16 @@
|
||||
<view class="tab {{currentTab === 'rejected' ? 'tab-active' : ''}}" bindtap="switchTab" data-tab="rejected">
|
||||
已拒绝
|
||||
</view>
|
||||
<view class="tab {{currentTab === 'cancelled' ? 'tab-active' : ''}}" bindtap="switchTab" data-tab="cancelled">
|
||||
已取消
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<!-- 记录列表 -->
|
||||
<view class="record-list" wx:if="{{!loading && filteredRecords.length > 0}}">
|
||||
<view class="record-card" wx:for="{{filteredRecords}}" wx:key="_id">
|
||||
<view class="record-header">
|
||||
<text class="record-id">{{item.id}}</text>
|
||||
<text class="record-id">{{item._id}}</text>
|
||||
<view class="status-tag status-{{item.status}}">
|
||||
{{item.statusText}}
|
||||
</view>
|
||||
|
||||
Reference in New Issue
Block a user