feat: add smoke tests, agent credit ledger, and player cashback page
Introduce admin smoke-test suite with API probes, agent credit transaction history, and player cashback records; fix SmokeTestModule DI and polish admin/player UI assets. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -4,7 +4,7 @@ import { useRoute, useRouter } from 'vue-router';
|
||||
import { useI18n } from 'vue-i18n';
|
||||
import api from '../api';
|
||||
import { formatMoney } from '../utils/localeDisplay';
|
||||
import { txTypeKey } from '../utils/walletTx';
|
||||
import { txTypeKey, isCashbackType } from '../utils/walletTx';
|
||||
import GoldSpinner from '../components/GoldSpinner.vue';
|
||||
import { usePullToRefresh } from '../composables/usePullToRefresh';
|
||||
|
||||
@@ -82,7 +82,17 @@ const frozenChanged = computed(() => {
|
||||
return tx.value.frozenBefore !== tx.value.frozenAfter;
|
||||
});
|
||||
|
||||
const isCashbackTx = computed(
|
||||
() => !!tx.value && isCashbackType(tx.value.transactionType),
|
||||
);
|
||||
|
||||
const cashbackBatchNo = computed(() => {
|
||||
if (!isCashbackTx.value || !tx.value?.referenceId) return null;
|
||||
return tx.value.referenceId;
|
||||
});
|
||||
|
||||
const referenceLabel = computed(() => {
|
||||
if (isCashbackTx.value) return t('wallet.ref_cashback');
|
||||
if (!tx.value?.referenceType) return '';
|
||||
const rt = tx.value.referenceType.toUpperCase();
|
||||
if (rt === 'BET') return t('wallet.ref_bet');
|
||||
@@ -95,6 +105,11 @@ function goBetDetail() {
|
||||
if (!tx.value?.betNo) return;
|
||||
router.push(`/bets/${tx.value.betNo}`);
|
||||
}
|
||||
|
||||
function goCashbackDetail() {
|
||||
if (!cashbackBatchNo.value) return;
|
||||
router.push({ path: '/wallet/cashbacks', query: { batchNo: cashbackBatchNo.value } });
|
||||
}
|
||||
</script>
|
||||
|
||||
<template>
|
||||
@@ -169,6 +184,9 @@ function goBetDetail() {
|
||||
<button v-if="tx.betNo" type="button" class="bet-link" @click="goBetDetail">
|
||||
{{ t('wallet.detail_bet_link') }} · {{ tx.betNo }}
|
||||
</button>
|
||||
<button v-if="cashbackBatchNo" type="button" class="bet-link" @click="goCashbackDetail">
|
||||
{{ t('wallet.detail_cashback_link') }} · {{ cashbackBatchNo }}
|
||||
</button>
|
||||
</section>
|
||||
|
||||
<section class="section">
|
||||
|
||||
Reference in New Issue
Block a user