feat(转账详情页): 使用新的头部组件,对接语言切换功能并调整布局

This commit is contained in:
hzj 2025-10-30 11:59:53 +08:00
parent ba657dcbbc
commit 84d36f504e
4 changed files with 49 additions and 11 deletions

View File

@ -175,5 +175,10 @@
"team_not_exist": "الفريق غير موجود أو تم حلّه", "team_not_exist": "الفريق غير موجود أو تم حلّه",
"request_not_acceptable": "الطلب غير مقبول", "request_not_acceptable": "الطلب غير مقبول",
"something_went_wrong": "حدث خطأ ما، يرجى المحاولة مرة أخرى.", "something_went_wrong": "حدث خطأ ما، يرجى المحاولة مرة أخرى.",
"confirm": "تأكيد" "confirm": "تأكيد",
"information_details": "تفاصيل المعلومات",
"no_transaction_records": "لا توجد سجلات معاملات",
"retry": "إعادة المحاولة",
"failed_to_load_data": "فشل تحميل البيانات"
} }

View File

@ -175,5 +175,10 @@
"team_not_exist": "The team does not exist or has been disbanded", "team_not_exist": "The team does not exist or has been disbanded",
"request_not_acceptable": "Request Not Acceptable", "request_not_acceptable": "Request Not Acceptable",
"something_went_wrong": "Something went wrong, please retry.", "something_went_wrong": "Something went wrong, please retry.",
"confirm": "Confirm" "confirm": "Confirm",
"information_details": "Information details",
"no_transaction_records": "No transaction records",
"retry": "Retry",
"failed_to_load_data": "Failed to load data"
} }

View File

@ -175,5 +175,10 @@
"team_not_exist": "团队不存在或已解散", "team_not_exist": "团队不存在或已解散",
"request_not_acceptable": "请求不可接受", "request_not_acceptable": "请求不可接受",
"something_went_wrong": "出现问题,请重试。", "something_went_wrong": "出现问题,请重试。",
"confirm": "确认" "confirm": "确认",
"information_details": "信息详情",
"no_transaction_records": "无交易记录",
"retry": "重试",
"failed_to_load_data": "加载数据失败"
} }

View File

@ -1,19 +1,26 @@
<template> <template>
<div class="information-details gradient-background-circles"> <div class="information-details gradient-background-circles">
<MobileHeader title="Information details" /> <!-- 使用 GeneralHeader 替换 MobileHeader -->
<GeneralHeader
:title="t('information_details')"
:showBack="true"
:showLanguageList="true"
color="black"
style="box-shadow: 0 0 10px rgba(0, 0, 0, 0.1); z-index: 999"
/>
<div class="content"> <div class="content">
<!-- 加载状态 --> <!-- 加载状态 -->
<div v-if="loading" class="loading-state"> <div v-if="loading" class="loading-state">
<div class="loading-spinner"></div> <div class="loading-spinner"></div>
<p>Loading...</p> <p>{{ t('loading') }}...</p>
</div> </div>
<!-- 错误状态 --> <!-- 错误状态 -->
<div v-else-if="error" class="error-state"> <div v-else-if="error" class="error-state">
<div class="error-icon"></div> <div class="error-icon"></div>
<p>{{ error }}</p> <p>{{ error }}</p>
<button @click="fetchData" class="retry-btn">Retry</button> <button @click="fetchData" class="retry-btn">{{ t('retry') }}</button>
</div> </div>
<!-- 交易记录列表 --> <!-- 交易记录列表 -->
@ -50,7 +57,7 @@
<!-- 空状态 --> <!-- 空状态 -->
<div v-if="!loading && !error && transactions.length === 0" class="empty-state"> <div v-if="!loading && !error && transactions.length === 0" class="empty-state">
<div class="empty-icon">📄</div> <div class="empty-icon">📄</div>
<p>No transaction records</p> <p>{{ t('no_transaction_records') }}</p>
</div> </div>
</div> </div>
</div> </div>
@ -58,9 +65,16 @@
<script setup> <script setup>
import { ref, onMounted } from 'vue' import { ref, onMounted } from 'vue'
import MobileHeader from '../components/MobileHeader.vue' import { useI18n } from 'vue-i18n'
import { getWalletDetails, formatDateTime, formatEventDescribe } from '../api/wallet.js' import GeneralHeader from '@/components/GeneralHeader.vue'
import { getWalletDetails } from '../api/wallet.js'
import { formatUTCTimeClean } from '@/utils/utcFormat.js' import { formatUTCTimeClean } from '@/utils/utcFormat.js'
import { setDocumentDirection } from '@/locales/i18n'
const { t, locale } = useI18n()
//
locale.value && setDocumentDirection(locale.value)
const transactions = ref([]) const transactions = ref([])
const loading = ref(false) const loading = ref(false)
@ -107,7 +121,7 @@ const fetchData = async () => {
return { return {
id: item.id, id: item.id,
eventDescribe: formatEventDescribe(item.eventDescribe), eventDescribe: item.eventDescribe,
createTime: formatUTCTimeClean(item.createTime), createTime: formatUTCTimeClean(item.createTime),
amount: amount, amount: amount,
balance: item.balance, balance: item.balance,
@ -124,7 +138,7 @@ const fetchData = async () => {
} }
} catch (err) { } catch (err) {
console.error('Failed to fetch wallet details:', err) console.error('Failed to fetch wallet details:', err)
error.value = err.message || 'Failed to load data' error.value = err.message || t('failed_to_load_data')
} finally { } finally {
loading.value = false loading.value = false
} }
@ -361,4 +375,13 @@ onMounted(() => {
font-size: 24px; font-size: 24px;
} }
} }
/* RTL支持 */
[dir='rtl'] .transaction-content {
flex-direction: row-reverse;
}
[dir='rtl'] .transaction-info {
text-align: right;
}
</style> </style>