|
@@ -14,52 +14,43 @@
|
|
<!-- 记录列表 -->
|
|
<!-- 记录列表 -->
|
|
<div class="record-container">
|
|
<div class="record-container">
|
|
<div v-if="recordList.length > 0" class="record-list">
|
|
<div v-if="recordList.length > 0" class="record-list">
|
|
- <div
|
|
|
|
- v-for="(record, index) in recordList"
|
|
|
|
- :key="index"
|
|
|
|
- class="record-item"
|
|
|
|
- >
|
|
|
|
|
|
+ <div v-for="(record, index) in recordList" :key="index" class="record-item">
|
|
<div class="record-content">
|
|
<div class="record-content">
|
|
<div class="record-header">
|
|
<div class="record-header">
|
|
- <div class="record-id">兑换编号: {{ record.id }}</div>
|
|
|
|
|
|
+ <!-- <div class="record-id">兑换编号: {{ record.id }}</div>
|
|
<div class="record-status" :class="record.status">
|
|
<div class="record-status" :class="record.status">
|
|
{{ getStatusText(record.status) }}
|
|
{{ getStatusText(record.status) }}
|
|
- </div>
|
|
|
|
|
|
+ </div> -->
|
|
</div>
|
|
</div>
|
|
-
|
|
|
|
|
|
+
|
|
<div class="record-info">
|
|
<div class="record-info">
|
|
<div class="record-user">
|
|
<div class="record-user">
|
|
- <div class="user-avatar">
|
|
|
|
- <img v-if="record.targetUser.avatar" :src="record.targetUser.avatar" class="avatar" />
|
|
|
|
- <div v-else class="avatar-placeholder">
|
|
|
|
- <van-icon name="user-o" size="20" />
|
|
|
|
- </div>
|
|
|
|
- </div>
|
|
|
|
<div class="user-details">
|
|
<div class="user-details">
|
|
- <div class="user-name">{{ record.targetUser.nickname }}</div>
|
|
|
|
- <div class="user-id">ID: {{ record.targetUser.id }}</div>
|
|
|
|
|
|
+ <!-- <div class="user-name">{{ record.targetUser.nickname }}</div> -->
|
|
|
|
+ <div class="user-id">兑换钻石(ID: {{ record.relationId }})</div>
|
|
|
|
+ <div class="record-time">{{ formatTime(record.createTime) }}</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
-
|
|
|
|
|
|
+
|
|
<div class="exchange-details">
|
|
<div class="exchange-details">
|
|
<div class="exchange-item">
|
|
<div class="exchange-item">
|
|
<span class="label">兑换金币:</span>
|
|
<span class="label">兑换金币:</span>
|
|
- <span class="value coin">-{{ record.coinAmount }}</span>
|
|
|
|
|
|
+ <span class="value coin">-{{ record.amount }}</span>
|
|
</div>
|
|
</div>
|
|
<div class="exchange-item">
|
|
<div class="exchange-item">
|
|
<span class="label">获得钻石:</span>
|
|
<span class="label">获得钻石:</span>
|
|
- <span class="value diamond">+{{ record.diamondAmount }}</span>
|
|
|
|
|
|
+ <span class="value diamond">+{{ record.amount * 10 }}</span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
-
|
|
|
|
- <div class="record-footer">
|
|
|
|
|
|
+
|
|
|
|
+ <!-- <div class="record-footer">
|
|
<div class="record-time">{{ formatTime(record.createTime) }}</div>
|
|
<div class="record-time">{{ formatTime(record.createTime) }}</div>
|
|
- </div>
|
|
|
|
|
|
+ </div> -->
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
-
|
|
|
|
|
|
+
|
|
<!-- 空状态 -->
|
|
<!-- 空状态 -->
|
|
<div v-else class="empty-state">
|
|
<div v-else class="empty-state">
|
|
<div class="empty-icon">
|
|
<div class="empty-icon">
|
|
@@ -72,13 +63,7 @@
|
|
|
|
|
|
<!-- 加载更多 -->
|
|
<!-- 加载更多 -->
|
|
<div v-if="hasMore && recordList.length > 0" class="load-more">
|
|
<div v-if="hasMore && recordList.length > 0" class="load-more">
|
|
- <van-button
|
|
|
|
- type="default"
|
|
|
|
- size="small"
|
|
|
|
- :loading="loading"
|
|
|
|
- @click="loadMore"
|
|
|
|
- class="load-more-btn"
|
|
|
|
- >
|
|
|
|
|
|
+ <van-button type="default" size="small" :loading="loading" @click="loadMore" class="load-more-btn">
|
|
{{ loading ? '加载中...' : '加载更多' }}
|
|
{{ loading ? '加载中...' : '加载更多' }}
|
|
</van-button>
|
|
</van-button>
|
|
</div>
|
|
</div>
|
|
@@ -107,32 +92,32 @@ export default {
|
|
goBack() {
|
|
goBack() {
|
|
this.$router.go(-1)
|
|
this.$router.go(-1)
|
|
},
|
|
},
|
|
-
|
|
|
|
|
|
+
|
|
// 加载兑换记录
|
|
// 加载兑换记录
|
|
async loadRecords(isLoadMore = false) {
|
|
async loadRecords(isLoadMore = false) {
|
|
if (this.loading) return
|
|
if (this.loading) return
|
|
-
|
|
|
|
|
|
+
|
|
this.loading = true
|
|
this.loading = true
|
|
-
|
|
|
|
|
|
+
|
|
try {
|
|
try {
|
|
const res = await getIntegralExchangeGoldCoinStreamList(this.page)
|
|
const res = await getIntegralExchangeGoldCoinStreamList(this.page)
|
|
-
|
|
|
|
|
|
+ console.log('兑换记录', res)
|
|
if (isLoadMore) {
|
|
if (isLoadMore) {
|
|
this.recordList.push(...res.data.list)
|
|
this.recordList.push(...res.data.list)
|
|
} else {
|
|
} else {
|
|
this.recordList = res.data.list
|
|
this.recordList = res.data.list
|
|
}
|
|
}
|
|
-
|
|
|
|
|
|
+ console.log('兑换记录', this.recordList)
|
|
this.hasMore = res.data.hasMore
|
|
this.hasMore = res.data.hasMore
|
|
-
|
|
|
|
|
|
+
|
|
if (isLoadMore && res.data.list.length > 0) {
|
|
if (isLoadMore && res.data.list.length > 0) {
|
|
// 页码在loadMore方法中已经递增
|
|
// 页码在loadMore方法中已经递增
|
|
}
|
|
}
|
|
-
|
|
|
|
|
|
+
|
|
} catch (error) {
|
|
} catch (error) {
|
|
this.$toast.fail('加载失败,请重试')
|
|
this.$toast.fail('加载失败,请重试')
|
|
console.error('加载兑换记录失败:', error)
|
|
console.error('加载兑换记录失败:', error)
|
|
-
|
|
|
|
|
|
+
|
|
// 加载失败时恢复页码
|
|
// 加载失败时恢复页码
|
|
if (isLoadMore && this.page > 1) {
|
|
if (isLoadMore && this.page > 1) {
|
|
this.page--
|
|
this.page--
|
|
@@ -141,13 +126,13 @@ export default {
|
|
this.loading = false
|
|
this.loading = false
|
|
}
|
|
}
|
|
},
|
|
},
|
|
-
|
|
|
|
|
|
+
|
|
// 加载更多
|
|
// 加载更多
|
|
async loadMore() {
|
|
async loadMore() {
|
|
this.page++
|
|
this.page++
|
|
await this.loadRecords(true)
|
|
await this.loadRecords(true)
|
|
},
|
|
},
|
|
-
|
|
|
|
|
|
+
|
|
// 获取状态文本
|
|
// 获取状态文本
|
|
getStatusText(status) {
|
|
getStatusText(status) {
|
|
const statusMap = {
|
|
const statusMap = {
|
|
@@ -157,28 +142,20 @@ export default {
|
|
}
|
|
}
|
|
return statusMap[status] || '未知状态'
|
|
return statusMap[status] || '未知状态'
|
|
},
|
|
},
|
|
-
|
|
|
|
|
|
+
|
|
// 格式化时间
|
|
// 格式化时间
|
|
formatTime(timestamp) {
|
|
formatTime(timestamp) {
|
|
const date = new Date(timestamp)
|
|
const date = new Date(timestamp)
|
|
- const now = new Date()
|
|
|
|
- const diff = now - date
|
|
|
|
-
|
|
|
|
- // 一天内显示时分
|
|
|
|
- if (diff < 24 * 60 * 60 * 1000) {
|
|
|
|
- return date.toLocaleTimeString('zh-CN', {
|
|
|
|
- hour: '2-digit',
|
|
|
|
- minute: '2-digit'
|
|
|
|
- })
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- // 超过一天显示月日
|
|
|
|
- return date.toLocaleDateString('zh-CN', {
|
|
|
|
- month: '2-digit',
|
|
|
|
- day: '2-digit',
|
|
|
|
- hour: '2-digit',
|
|
|
|
- minute: '2-digit'
|
|
|
|
- })
|
|
|
|
|
|
+
|
|
|
|
+ // 格式化为 yyyy-mm-dd hh:mm:ss
|
|
|
|
+ const year = date.getFullYear()
|
|
|
|
+ const month = String(date.getMonth() + 1).padStart(2, '0')
|
|
|
|
+ const day = String(date.getDate()).padStart(2, '0')
|
|
|
|
+ const hours = String(date.getHours()).padStart(2, '0')
|
|
|
|
+ const minutes = String(date.getMinutes()).padStart(2, '0')
|
|
|
|
+ const seconds = String(date.getSeconds()).padStart(2, '0')
|
|
|
|
+
|
|
|
|
+ return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@@ -282,7 +259,7 @@ export default {
|
|
|
|
|
|
/* 记录信息 */
|
|
/* 记录信息 */
|
|
.record-info {
|
|
.record-info {
|
|
- margin-bottom: 12px;
|
|
|
|
|
|
+ /* margin-bottom: 12px; */
|
|
}
|
|
}
|
|
|
|
|
|
.record-user {
|
|
.record-user {
|
|
@@ -315,6 +292,8 @@ export default {
|
|
|
|
|
|
.user-details {
|
|
.user-details {
|
|
flex: 1;
|
|
flex: 1;
|
|
|
|
+ display: flex;
|
|
|
|
+ justify-content: space-between;
|
|
}
|
|
}
|
|
|
|
|
|
.user-name {
|
|
.user-name {
|
|
@@ -421,17 +400,17 @@ export default {
|
|
.record-content {
|
|
.record-content {
|
|
padding: 12px;
|
|
padding: 12px;
|
|
}
|
|
}
|
|
-
|
|
|
|
|
|
+
|
|
.record-header {
|
|
.record-header {
|
|
flex-direction: column;
|
|
flex-direction: column;
|
|
align-items: flex-start;
|
|
align-items: flex-start;
|
|
gap: 8px;
|
|
gap: 8px;
|
|
}
|
|
}
|
|
-
|
|
|
|
|
|
+
|
|
.exchange-details {
|
|
.exchange-details {
|
|
padding: 10px;
|
|
padding: 10px;
|
|
}
|
|
}
|
|
-
|
|
|
|
|
|
+
|
|
.exchange-item {
|
|
.exchange-item {
|
|
font-size: 13px;
|
|
font-size: 13px;
|
|
}
|
|
}
|