优化每日推送和积分转化多语言样式

This commit is contained in:
2026-07-24 12:01:41 +08:00
parent 4bad91b8a3
commit e3d4ec4624
15 changed files with 204 additions and 65 deletions

View File

@@ -70,7 +70,9 @@ const baTable = new baTableClass(
label: t('mall.dailyPush.username'),
prop: 'username',
align: 'center',
minWidth: 95,
operatorPlaceholder: t('Fuzzy query'),
showOverflowTooltip: true,
sortable: false,
operator: 'LIKE',
},
@@ -78,6 +80,7 @@ const baTable = new baTableClass(
label: t('mall.dailyPush.yesterday_win_loss_net'),
prop: 'yesterday_win_loss_net',
align: 'center',
minWidth: 90,
operator: 'RANGE',
sortable: 'custom',
},
@@ -85,14 +88,15 @@ const baTable = new baTableClass(
label: t('mall.dailyPush.converted_points'),
prop: 'converted_points',
align: 'center',
minWidth: 80,
operator: 'RANGE',
sortable: 'custom',
width: 100,
},
{
label: t('mall.dailyPush.yesterday_total_deposit'),
prop: 'yesterday_total_deposit',
align: 'center',
minWidth: 90,
operator: 'RANGE',
sortable: 'custom',
},
@@ -100,6 +104,7 @@ const baTable = new baTableClass(
label: t('mall.dailyPush.lifetime_total_deposit'),
prop: 'lifetime_total_deposit',
align: 'center',
minWidth: 90,
operator: 'RANGE',
sortable: 'custom',
},
@@ -107,7 +112,7 @@ const baTable = new baTableClass(
label: t('mall.dailyPush.lifetime_total_withdraw'),
prop: 'lifetime_total_withdraw',
align: 'center',
minWidth: 95,
minWidth: 90,
operator: 'RANGE',
sortable: 'custom',
},
@@ -115,7 +120,7 @@ const baTable = new baTableClass(
label: t('mall.dailyPush.lifetime_win_loss_net'),
prop: 'lifetime_win_loss_net',
align: 'center',
minWidth: 95,
minWidth: 90,
operator: 'RANGE',
sortable: 'custom',
},

View File

@@ -113,7 +113,7 @@
<script setup lang="ts">
import type { FormInstance, FormRules } from 'element-plus'
import { ElMessageBox } from 'element-plus'
import { ElMessage, ElMessageBox } from 'element-plus'
import { onMounted, reactive, ref, useTemplateRef } from 'vue'
import { useI18n } from 'vue-i18n'
import { calculateLifetimePoints, index, save } from '/@/api/backend/mall/playxConfig'
@@ -204,7 +204,15 @@ const onCalculateLifetime = () => {
}).then(() => {
calculating.value = true
calculateLifetimePoints()
.then(() => {
.then((res) => {
const stats = res.data ?? {}
ElMessage.success(
t('mall.playxConfig.calculate_lifetime_success', {
processed: stats.processed ?? 0,
updated: stats.updated ?? 0,
skipped: stats.skipped ?? 0,
})
)
loadData()
})
.finally(() => {

View File

@@ -35,22 +35,94 @@ const baTable = new baTableClass(
column: [
{ type: 'selection', align: 'center', operator: false },
{ label: t('mall.playxDailyPush.id'), prop: 'id', align: 'center', width: 70, operator: 'RANGE', sortable: 'custom' },
{ label: t('mall.playxDailyPush.user_id'), prop: 'user_id', align: 'center', operatorPlaceholder: t('Fuzzy query'), sortable: false, operator: 'LIKE' },
{ label: t('mall.playxDailyPush.date'), prop: 'date', align: 'center', render: 'date', operator: 'RANGE', comSearchRender: 'date', sortable: 'custom', width: 120, operatorPlaceholder: t('Fuzzy query') },
{ label: t('mall.playxDailyPush.username'), prop: 'username', align: 'center', operatorPlaceholder: t('Fuzzy query'), sortable: false, operator: 'LIKE' },
{ label: t('mall.playxDailyPush.yesterday_win_loss_net'), prop: 'yesterday_win_loss_net', align: 'center', operator: 'RANGE', sortable: false },
{ label: t('mall.playxDailyPush.converted_points'), prop: 'converted_points', align: 'center', operator: 'RANGE', sortable: false, width: 100 },
{ label: t('mall.playxDailyPush.yesterday_total_deposit'), prop: 'yesterday_total_deposit', align: 'center', operator: 'RANGE', sortable: false },
{ label: t('mall.playxDailyPush.lifetime_total_deposit'), prop: 'lifetime_total_deposit', align: 'center', operator: 'RANGE', sortable: false },
{ label: t('mall.playxDailyPush.lifetime_total_withdraw'), prop: 'lifetime_total_withdraw', align: 'center', operator: 'RANGE', sortable: false },
{ label: t('mall.playxDailyPush.lifetime_win_loss_net'), prop: 'lifetime_win_loss_net', align: 'center', operator: 'RANGE', sortable: false },
{ label: t('mall.playxDailyPush.create_time'), prop: 'create_time', align: 'center', render: 'datetime', operator: 'RANGE', comSearchRender: 'datetime', sortable: 'custom', width: 160, timeFormat: 'yyyy-mm-dd hh:MM:ss' },
{
label: t('mall.playxDailyPush.user_id'),
prop: 'user_id',
align: 'center',
operatorPlaceholder: t('Fuzzy query'),
sortable: false,
operator: 'LIKE',
},
{
label: t('mall.playxDailyPush.date'),
prop: 'date',
align: 'center',
render: 'date',
operator: 'RANGE',
comSearchRender: 'date',
sortable: 'custom',
width: 120,
operatorPlaceholder: t('Fuzzy query'),
},
{
label: t('mall.playxDailyPush.username'),
prop: 'username',
align: 'center',
operatorPlaceholder: t('Fuzzy query'),
sortable: false,
operator: 'LIKE',
},
{
label: t('mall.playxDailyPush.yesterday_win_loss_net'),
prop: 'yesterday_win_loss_net',
align: 'center',
operator: 'RANGE',
sortable: false,
},
{
label: t('mall.playxDailyPush.converted_points'),
prop: 'converted_points',
align: 'center',
minWidth: 160,
operator: 'RANGE',
sortable: false,
width: 100,
},
{
label: t('mall.playxDailyPush.yesterday_total_deposit'),
prop: 'yesterday_total_deposit',
align: 'center',
operator: 'RANGE',
sortable: false,
},
{
label: t('mall.playxDailyPush.lifetime_total_deposit'),
prop: 'lifetime_total_deposit',
align: 'center',
operator: 'RANGE',
sortable: false,
},
{
label: t('mall.playxDailyPush.lifetime_total_withdraw'),
prop: 'lifetime_total_withdraw',
align: 'center',
operator: 'RANGE',
sortable: false,
},
{
label: t('mall.playxDailyPush.lifetime_win_loss_net'),
prop: 'lifetime_win_loss_net',
align: 'center',
operator: 'RANGE',
sortable: false,
},
{
label: t('mall.playxDailyPush.create_time'),
prop: 'create_time',
align: 'center',
render: 'datetime',
operator: 'RANGE',
comSearchRender: 'datetime',
sortable: 'custom',
width: 160,
timeFormat: 'yyyy-mm-dd hh:MM:ss',
},
],
dblClickNotEditColumn: [undefined],
},
{
defaultItems: {},
},
}
)
provide('baTable', baTable)
@@ -66,4 +138,3 @@ onMounted(() => {
</script>
<style scoped lang="scss"></style>

View File

@@ -45,6 +45,7 @@ const baTable = new baTableClass(
prop: 'username',
align: 'center',
operatorPlaceholder: t('Fuzzy query'),
showOverflowTooltip: true,
sortable: false,
operator: 'LIKE',
},
@@ -52,7 +53,9 @@ const baTable = new baTableClass(
label: t('mall.userAsset.phone'),
prop: 'phone',
align: 'center',
minWidth: 100,
operatorPlaceholder: t('Fuzzy query'),
showOverflowTooltip: true,
sortable: false,
operator: 'LIKE',
},
@@ -60,16 +63,59 @@ const baTable = new baTableClass(
label: t('mall.userAsset.playx_user_id'),
prop: 'playx_user_id',
align: 'center',
minWidth: 120,
operatorPlaceholder: t('Fuzzy query'),
sortable: false,
operator: 'LIKE',
},
{ label: t('mall.userAsset.locked_points'), prop: 'locked_points', align: 'center', operator: 'RANGE', sortable: false },
{ label: t('mall.userAsset.available_points'), prop: 'available_points', align: 'center', operator: 'RANGE', sortable: false },
{ label: t('mall.userAsset.today_limit'), prop: 'today_limit', align: 'center', operator: 'RANGE', sortable: false },
{ label: t('mall.userAsset.today_claimed'), prop: 'today_claimed', align: 'center', operator: 'RANGE', sortable: false },
{ label: t('mall.userAsset.points_claim_cap'), prop: 'points_claim_cap', align: 'center', operator: 'RANGE', sortable: false },
{ label: t('mall.userAsset.total_points_claimed'), prop: 'total_points_claimed', align: 'center', operator: 'RANGE', sortable: false },
{
label: t('mall.userAsset.locked_points'),
prop: 'locked_points',
align: 'center',
minWidth: 120,
operator: 'RANGE',
sortable: true,
},
{
label: t('mall.userAsset.available_points'),
prop: 'available_points',
align: 'center',
minWidth: 120,
operator: 'RANGE',
sortable: true,
},
{
label: t('mall.userAsset.today_limit'),
prop: 'today_limit',
align: 'center',
minWidth: 160,
operator: 'RANGE',
sortable: true,
},
{
label: t('mall.userAsset.today_claimed'),
prop: 'today_claimed',
align: 'center',
minWidth: 120,
operator: 'RANGE',
sortable: true,
},
{
label: t('mall.userAsset.points_claim_cap'),
prop: 'points_claim_cap',
align: 'center',
minWidth: 160,
operator: 'RANGE',
sortable: true,
},
{
label: t('mall.userAsset.total_points_claimed'),
prop: 'total_points_claimed',
align: 'center',
minWidth: 160,
operator: 'RANGE',
sortable: true,
},
{
label: t('mall.userAsset.today_limit_date'),
prop: 'today_limit_date',