所有页面-创建中英双语对照-优化翻译文档结构
This commit is contained in:
@@ -2,7 +2,7 @@
|
||||
<div class="art-card h-105 p-4 box-border mb-5 max-sm:mb-4">
|
||||
<div class="art-card-header">
|
||||
<div class="title">
|
||||
<h4>月度玩家充值汇总</h4>
|
||||
<h4>{{ $t('console.activeUser.title') }}</h4>
|
||||
</div>
|
||||
</div>
|
||||
<ArtBarChart
|
||||
|
||||
@@ -2,10 +2,10 @@
|
||||
<ElRow :gutter="20" class="flex">
|
||||
<ElCol :sm="12" :md="6" :lg="6">
|
||||
<div class="art-card relative flex flex-col justify-center h-35 px-5 mb-5 max-sm:mb-4">
|
||||
<span class="text-g-700 text-sm">玩家注册</span>
|
||||
<span class="text-g-700 text-sm">{{ $t('console.card.playerRegister') }}</span>
|
||||
<ArtCountTo class="text-[26px] font-medium mt-2" :target="statData.player_count" :duration="1300" />
|
||||
<div class="flex-c mt-1">
|
||||
<span class="text-xs text-g-600">较上周</span>
|
||||
<span class="text-xs text-g-600">{{ $t('console.card.vsLastWeek') }}</span>
|
||||
<span
|
||||
class="ml-1 text-xs font-semibold"
|
||||
:class="changeClass(statData.player_count_change)"
|
||||
@@ -22,7 +22,7 @@
|
||||
</ElCol>
|
||||
<ElCol :sm="12" :md="6" :lg="6">
|
||||
<div class="art-card relative flex flex-col justify-center h-35 px-5 mb-5 max-sm:mb-4">
|
||||
<span class="text-g-700 text-sm">玩家充值</span>
|
||||
<span class="text-g-700 text-sm">{{ $t('console.card.playerCharge') }}</span>
|
||||
<ArtCountTo
|
||||
class="text-[26px] font-medium mt-2"
|
||||
:target="statData.charge_amount"
|
||||
@@ -30,7 +30,7 @@
|
||||
:decimals="2"
|
||||
/>
|
||||
<div class="flex-c mt-1">
|
||||
<span class="text-xs text-g-600">较上周</span>
|
||||
<span class="text-xs text-g-600">{{ $t('console.card.vsLastWeek') }}</span>
|
||||
<span
|
||||
class="ml-1 text-xs font-semibold"
|
||||
:class="changeClass(statData.charge_amount_change)"
|
||||
@@ -47,7 +47,7 @@
|
||||
</ElCol>
|
||||
<ElCol :sm="12" :md="6" :lg="6">
|
||||
<div class="art-card relative flex flex-col justify-center h-35 px-5 mb-5 max-sm:mb-4">
|
||||
<span class="text-g-700 text-sm">玩家提现</span>
|
||||
<span class="text-g-700 text-sm">{{ $t('console.card.playerWithdraw') }}</span>
|
||||
<ArtCountTo
|
||||
class="text-[26px] font-medium mt-2"
|
||||
:target="statData.withdraw_amount"
|
||||
@@ -55,7 +55,7 @@
|
||||
:decimals="2"
|
||||
/>
|
||||
<div class="flex-c mt-1">
|
||||
<span class="text-xs text-g-600">较上周</span>
|
||||
<span class="text-xs text-g-600">{{ $t('console.card.vsLastWeek') }}</span>
|
||||
<span
|
||||
class="ml-1 text-xs font-semibold"
|
||||
:class="changeClass(statData.withdraw_amount_change)"
|
||||
@@ -72,14 +72,14 @@
|
||||
</ElCol>
|
||||
<ElCol :sm="12" :md="6" :lg="6">
|
||||
<div class="art-card relative flex flex-col justify-center h-35 px-5 mb-5 max-sm:mb-4">
|
||||
<span class="text-g-700 text-sm">玩家游玩次数</span>
|
||||
<span class="text-g-700 text-sm">{{ $t('console.card.playerPlayCount') }}</span>
|
||||
<ArtCountTo
|
||||
class="text-[26px] font-medium mt-2"
|
||||
:target="statData.play_count"
|
||||
:duration="1300"
|
||||
/>
|
||||
<div class="flex-c mt-1">
|
||||
<span class="text-xs text-g-600">较上周</span>
|
||||
<span class="text-xs text-g-600">{{ $t('console.card.vsLastWeek') }}</span>
|
||||
<span
|
||||
class="ml-1 text-xs font-semibold"
|
||||
:class="changeClass(statData.play_count_change)"
|
||||
|
||||
@@ -2,8 +2,8 @@
|
||||
<div class="art-card h-128 p-5 mb-5 max-sm:mb-4">
|
||||
<div class="art-card-header">
|
||||
<div class="title">
|
||||
<h4>动态</h4>
|
||||
<p>新增<span class="text-success">+6</span></p>
|
||||
<h4>{{ $t('console.dynamic.title') }}</h4>
|
||||
<p>{{ $t('console.dynamic.newCount') }}<span class="text-success">+6</span></p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -2,8 +2,8 @@
|
||||
<div class="art-card p-5 overflow-hidden mb-5 max-sm:mb-4">
|
||||
<div class="art-card-header mb-4">
|
||||
<div class="title">
|
||||
<h4>新增玩家</h4>
|
||||
<p class="text-g-600 text-sm mt-1">最新50条新增玩家记录</p>
|
||||
<h4>{{ $t('console.newPlayer.title') }}</h4>
|
||||
<p class="text-g-600 text-sm mt-1">{{ $t('console.newPlayer.subtitle') }}</p>
|
||||
</div>
|
||||
</div>
|
||||
<ArtTable
|
||||
@@ -16,13 +16,13 @@
|
||||
:header-cell-style="{ background: 'transparent' }"
|
||||
>
|
||||
<template #default>
|
||||
<ElTableColumn label="玩家" prop="name" min-width="120" align="center" />
|
||||
<ElTableColumn label="余额" prop="coin" min-width="120" align="center">
|
||||
<ElTableColumn :label="$t('console.newPlayer.player')" prop="name" min-width="120" align="center" />
|
||||
<ElTableColumn :label="$t('console.newPlayer.balance')" prop="coin" min-width="120" align="center">
|
||||
<template #default="scope">
|
||||
{{ formatCoin(scope.row.coin) }}
|
||||
</template>
|
||||
</ElTableColumn>
|
||||
<ElTableColumn label="抽奖券" prop="total_ticket_count" min-width="100" align="center" />
|
||||
<ElTableColumn :label="$t('console.newPlayer.ticket')" prop="total_ticket_count" min-width="100" align="center" />
|
||||
</template>
|
||||
</ArtTable>
|
||||
</div>
|
||||
|
||||
@@ -2,13 +2,13 @@
|
||||
<div class="art-card p-5 h-128 overflow-hidden mb-5 max-sm:mb-4">
|
||||
<div class="art-card-header">
|
||||
<div class="title">
|
||||
<h4>新用户</h4>
|
||||
<p>这个月增长<span class="text-success">+20%</span></p>
|
||||
<h4>{{ $t('console.newUser.title') }}</h4>
|
||||
<p>{{ $t('console.newUser.growth') }}<span class="text-success">+20%</span></p>
|
||||
</div>
|
||||
<ElRadioGroup v-model="radio2">
|
||||
<ElRadioButton value="本月" label="本月"></ElRadioButton>
|
||||
<ElRadioButton value="上月" label="上月"></ElRadioButton>
|
||||
<ElRadioButton value="今年" label="今年"></ElRadioButton>
|
||||
<ElRadioButton label="thisMonth">{{ $t('console.newUser.thisMonth') }}</ElRadioButton>
|
||||
<ElRadioButton label="lastMonth">{{ $t('console.newUser.lastMonth') }}</ElRadioButton>
|
||||
<ElRadioButton label="thisYear">{{ $t('console.newUser.thisYear') }}</ElRadioButton>
|
||||
</ElRadioGroup>
|
||||
</div>
|
||||
<ArtTable
|
||||
@@ -21,7 +21,7 @@
|
||||
:header-cell-style="{ background: 'transparent' }"
|
||||
>
|
||||
<template #default>
|
||||
<ElTableColumn label="头像" prop="avatar" width="150px">
|
||||
<ElTableColumn :label="$t('console.newUser.avatar')" prop="avatar" width="150px">
|
||||
<template #default="scope">
|
||||
<div style="display: flex; align-items: center">
|
||||
<img class="size-9 rounded-lg" :src="scope.row.avatar" alt="avatar" />
|
||||
@@ -29,15 +29,15 @@
|
||||
</div>
|
||||
</template>
|
||||
</ElTableColumn>
|
||||
<ElTableColumn label="地区" prop="province" />
|
||||
<ElTableColumn label="性别" prop="avatar">
|
||||
<ElTableColumn :label="$t('console.newUser.region')" prop="province" />
|
||||
<ElTableColumn :label="$t('console.newUser.gender')" prop="avatar">
|
||||
<template #default="scope">
|
||||
<div style="display: flex; align-items: center">
|
||||
<span style="margin-left: 10px">{{ scope.row.sex === 1 ? '男' : '女' }}</span>
|
||||
<span style="margin-left: 10px">{{ scope.row.sex === 1 ? $t('console.newUser.male') : $t('console.newUser.female') }}</span>
|
||||
</div>
|
||||
</template>
|
||||
</ElTableColumn>
|
||||
<ElTableColumn label="进度" width="240">
|
||||
<ElTableColumn :label="$t('console.newUser.progress')" width="240">
|
||||
<template #default="scope">
|
||||
<ElProgress
|
||||
:percentage="scope.row.pro"
|
||||
@@ -73,7 +73,7 @@
|
||||
|
||||
const ANIMATION_DELAY = 100
|
||||
|
||||
const radio2 = ref('本月')
|
||||
const radio2 = ref('thisMonth')
|
||||
|
||||
/**
|
||||
* 新用户表格数据
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
<div class="art-card h-105 p-5 mb-5 max-sm:mb-4">
|
||||
<div class="art-card-header">
|
||||
<div class="title">
|
||||
<h4>近期玩家充值统计</h4>
|
||||
<h4>{{ $t('console.salesOverview.title') }}</h4>
|
||||
</div>
|
||||
</div>
|
||||
<ArtLineChart
|
||||
|
||||
@@ -2,8 +2,8 @@
|
||||
<div class="art-card h-128 p-5 mb-5 max-sm:mb-4">
|
||||
<div class="art-card-header">
|
||||
<div class="title">
|
||||
<h4>代办事项</h4>
|
||||
<p>待处理<span class="text-danger">3</span></p>
|
||||
<h4>{{ $t('console.todo.title') }}</h4>
|
||||
<p>{{ $t('console.todo.pending') }}<span class="text-danger">3</span></p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -2,8 +2,8 @@
|
||||
<div class="art-card p-5 overflow-hidden mb-5 max-sm:mb-4">
|
||||
<div class="art-card-header mb-4">
|
||||
<div class="title">
|
||||
<h4>玩家充值记录</h4>
|
||||
<p class="text-g-600 text-sm mt-1">最新50条充值记录</p>
|
||||
<h4>{{ $t('console.walletRecord.title') }}</h4>
|
||||
<p class="text-g-600 text-sm mt-1">{{ $t('console.walletRecord.subtitle') }}</p>
|
||||
</div>
|
||||
</div>
|
||||
<ArtTable
|
||||
@@ -16,13 +16,13 @@
|
||||
:header-cell-style="{ background: 'transparent' }"
|
||||
>
|
||||
<template #default>
|
||||
<ElTableColumn label="玩家" prop="player_name" min-width="120" align="center" />
|
||||
<ElTableColumn label="充值金额" prop="coin" min-width="120" align="center">
|
||||
<ElTableColumn :label="$t('console.walletRecord.player')" prop="player_name" min-width="120" align="center" />
|
||||
<ElTableColumn :label="$t('console.walletRecord.chargeAmount')" prop="coin" min-width="120" align="center">
|
||||
<template #default="scope">
|
||||
{{ formatCoin(scope.row.coin) }}
|
||||
</template>
|
||||
</ElTableColumn>
|
||||
<ElTableColumn label="充值时间" prop="create_time" min-width="170" align="center" />
|
||||
<ElTableColumn :label="$t('console.walletRecord.chargeTime')" prop="create_time" min-width="170" align="center" />
|
||||
</template>
|
||||
</ArtTable>
|
||||
</div>
|
||||
|
||||
@@ -109,12 +109,12 @@
|
||||
apiFn: api.list,
|
||||
columnsFactory: () => [
|
||||
// { type: 'selection' },
|
||||
{ prop: 'group', label: 'table.columns.system.group', minWidth: 140, align: 'center' },
|
||||
{ prop: 'title', label: 'table.columns.system.title', minWidth: 160, align: 'center' },
|
||||
{ prop: 'title_en', label: 'table.columns.system.titleEn', minWidth: 160, align: 'center' },
|
||||
{ prop: 'name', label: 'table.columns.system.configName', align: 'center' },
|
||||
{ prop: 'value', label: 'table.columns.system.value', minWidth: 240, align: 'center' },
|
||||
{ prop: 'value_en', label: 'table.columns.system.valueEn', minWidth: 240, align: 'center' },
|
||||
{ prop: 'group', label: 'page.table.group', minWidth: 140, align: 'center' },
|
||||
{ prop: 'title', label: 'page.table.title', minWidth: 160, align: 'center' },
|
||||
{ prop: 'title_en', label: 'page.table.titleEn', minWidth: 160, align: 'center' },
|
||||
{ prop: 'name', label: 'page.table.configName', align: 'center' },
|
||||
{ prop: 'value', label: 'page.table.value', minWidth: 240, align: 'center' },
|
||||
{ prop: 'value_en', label: 'page.table.valueEn', minWidth: 240, align: 'center' },
|
||||
{
|
||||
prop: 'operation',
|
||||
label: 'table.actions.operation',
|
||||
|
||||
@@ -9,18 +9,18 @@
|
||||
@expand="handleExpand"
|
||||
>
|
||||
<el-col v-bind="setSpan(6)">
|
||||
<el-form-item :label="$t('table.columns.system.group')" prop="group">
|
||||
<el-input v-model="formData.group" :placeholder="$t('table.searchBar.placeholderGroup')" clearable />
|
||||
<el-form-item :label="$t('page.search.group')" prop="group">
|
||||
<el-input v-model="formData.group" :placeholder="$t('page.search.placeholderGroup')" clearable />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col v-bind="setSpan(6)">
|
||||
<el-form-item :label="$t('table.columns.system.title')" prop="title">
|
||||
<el-input v-model="formData.title" :placeholder="$t('table.searchBar.placeholderTitle')" clearable />
|
||||
<el-form-item :label="$t('page.search.title')" prop="title">
|
||||
<el-input v-model="formData.title" :placeholder="$t('page.search.placeholderTitle')" clearable />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col v-bind="setSpan(6)">
|
||||
<el-form-item :label="$t('table.columns.system.configName')" prop="name">
|
||||
<el-input v-model="formData.name" :placeholder="$t('table.searchBar.placeholderConfigName')" clearable />
|
||||
<el-form-item :label="$t('page.search.configName')" prop="name">
|
||||
<el-input v-model="formData.name" :placeholder="$t('page.search.placeholderConfigName')" clearable />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</sa-search-bar>
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
type="primary"
|
||||
@click="showCurrentPoolDialog"
|
||||
>
|
||||
查看当前彩金池
|
||||
{{ $t('page.toolbar.viewCurrentPool') }}
|
||||
</ElButton>
|
||||
</template>
|
||||
</ArtTableHeader>
|
||||
@@ -61,12 +61,14 @@
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import { useI18n } from 'vue-i18n'
|
||||
import { useTable } from '@/hooks/core/useTable'
|
||||
import { useSaiAdmin } from '@/composables/useSaiAdmin'
|
||||
import api from '../../api/lottery_pool_config/index'
|
||||
import TableSearch from './modules/table-search.vue'
|
||||
import EditDialog from './modules/edit-dialog.vue'
|
||||
import CurrentPoolDialog from './modules/current-pool-dialog.vue'
|
||||
const { t } = useI18n()
|
||||
|
||||
// 搜索表单
|
||||
const searchForm = ref({
|
||||
@@ -82,7 +84,7 @@
|
||||
|
||||
// 奖池类型展示:0=正常 1=强制杀猪 2=T1高倍率
|
||||
const typeFormatter = (row: Record<string, unknown>) =>
|
||||
row.type === 0 ? '正常' : row.type === 1 ? '强制杀猪' : row.type === 2 ? 'T1高倍率' : '-'
|
||||
row.type === 0 ? t('page.search.poolTypeNormal') : row.type === 1 ? t('page.search.poolTypeKill') : row.type === 2 ? t('page.search.poolTypeT1') : '-'
|
||||
|
||||
// 权重列带 %
|
||||
const weightFormatter = (prop: string) => (row: Record<string, unknown>) => {
|
||||
@@ -108,40 +110,40 @@
|
||||
core: {
|
||||
apiFn: api.list,
|
||||
columnsFactory: () => [
|
||||
{ prop: 'name', label: 'table.columns.common.name', align: 'center' },
|
||||
{ prop: 'type', label: 'table.columns.dice.poolType', width: 100, align: 'center', formatter: typeFormatter },
|
||||
{ prop: 'safety_line', label: 'table.columns.dice.safetyLine', align: 'center' },
|
||||
{ prop: 'name', label: 'page.table.name', align: 'center' },
|
||||
{ prop: 'type', label: 'page.table.poolType', width: 100, align: 'center', formatter: typeFormatter },
|
||||
{ prop: 'safety_line', label: 'page.table.safetyLine', align: 'center' },
|
||||
{
|
||||
prop: 't1_weight',
|
||||
label: 'table.columns.dice.t1PoolWeight',
|
||||
label: 'page.table.t1PoolWeight',
|
||||
width: 100,
|
||||
align: 'center',
|
||||
formatter: weightFormatter('t1_weight')
|
||||
},
|
||||
{
|
||||
prop: 't2_weight',
|
||||
label: 'table.columns.dice.t2PoolWeight',
|
||||
label: 'page.table.t2PoolWeight',
|
||||
width: 100,
|
||||
align: 'center',
|
||||
formatter: weightFormatter('t2_weight')
|
||||
},
|
||||
{
|
||||
prop: 't3_weight',
|
||||
label: 'table.columns.dice.t3PoolWeight',
|
||||
label: 'page.table.t3PoolWeight',
|
||||
width: 100,
|
||||
align: 'center',
|
||||
formatter: weightFormatter('t3_weight')
|
||||
},
|
||||
{
|
||||
prop: 't4_weight',
|
||||
label: 'table.columns.dice.t4PoolWeight',
|
||||
label: 'page.table.t4PoolWeight',
|
||||
width: 100,
|
||||
align: 'center',
|
||||
formatter: weightFormatter('t4_weight')
|
||||
},
|
||||
{
|
||||
prop: 't5_weight',
|
||||
label: 'table.columns.dice.t5PoolWeight',
|
||||
label: 'page.table.t5PoolWeight',
|
||||
width: 100,
|
||||
align: 'center',
|
||||
formatter: weightFormatter('t5_weight')
|
||||
|
||||
@@ -9,16 +9,16 @@
|
||||
@expand="handleExpand"
|
||||
>
|
||||
<el-col v-bind="setSpan(6)">
|
||||
<el-form-item :label="$t('table.columns.common.name')" prop="name">
|
||||
<el-input v-model="formData.name" :placeholder="$t('table.searchBar.placeholderName')" clearable />
|
||||
<el-form-item :label="$t('page.name')" prop="name">
|
||||
<el-input v-model="formData.name" :placeholder="$t('page.search.placeholderName')" clearable />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col v-bind="setSpan(6)">
|
||||
<el-form-item :label="$t('table.columns.dice.poolType')" prop="type">
|
||||
<el-form-item :label="$t('page.search.poolType')" prop="type">
|
||||
<el-select
|
||||
v-model="formData.type"
|
||||
:options="typeOptions"
|
||||
:placeholder="$t('table.searchBar.placeholderPoolType')"
|
||||
:placeholder="$t('page.search.placeholderPoolType')"
|
||||
clearable
|
||||
/>
|
||||
</el-form-item>
|
||||
@@ -27,6 +27,7 @@
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import { useI18n } from 'vue-i18n'
|
||||
interface Props {
|
||||
modelValue: Record<string, any>
|
||||
}
|
||||
@@ -40,11 +41,12 @@
|
||||
// 展开/收起
|
||||
const isExpanded = ref<boolean>(false)
|
||||
|
||||
const typeOptions = [
|
||||
{ name: '0', value: '正常' },
|
||||
{ name: '1', value: '强制杀猪' },
|
||||
{ name: '2', value: 'T1高倍率' }
|
||||
]
|
||||
const { t } = useI18n()
|
||||
const typeOptions = computed(() => [
|
||||
{ name: '0', value: t('page.search.poolTypeNormal') },
|
||||
{ name: '1', value: t('page.search.poolTypeKill') },
|
||||
{ name: '2', value: t('page.search.poolTypeT1') }
|
||||
])
|
||||
// 表单数据双向绑定
|
||||
const searchBarRef = ref()
|
||||
const formData = computed({
|
||||
|
||||
@@ -53,19 +53,19 @@
|
||||
<!-- 抽奖类型 tag -->
|
||||
<template #lottery_type="{ row }">
|
||||
<ElTag size="small" :type="row.lottery_type === 0 ? 'warning' : 'success'">
|
||||
{{ row.lottery_type === 0 ? '付费' : row.lottery_type === 1 ? '赠送' : '-' }}
|
||||
{{ row.lottery_type === 0 ? t('page.search.paid') : row.lottery_type === 1 ? t('page.search.free') : '-' }}
|
||||
</ElTag>
|
||||
</template>
|
||||
<!-- 是否中大奖 tag -->
|
||||
<template #is_win="{ row }">
|
||||
<ElTag size="small" :type="row.is_win === 1 ? 'success' : 'info'">
|
||||
{{ row.is_win === 0 ? '无' : row.is_win === 1 ? '中大奖' : '-' }}
|
||||
{{ row.is_win === 0 ? t('page.search.noBigWin') : row.is_win === 1 ? t('page.search.bigWin') : '-' }}
|
||||
</ElTag>
|
||||
</template>
|
||||
<!-- 方向 tag -->
|
||||
<template #direction="{ row }">
|
||||
<ElTag size="small" :type="row.direction === 0 ? 'primary' : 'warning'">
|
||||
{{ row.direction === 0 ? '顺时针' : row.direction === 1 ? '逆时针' : '-' }}
|
||||
{{ row.direction === 0 ? t('page.search.clockwise') : row.direction === 1 ? t('page.search.anticlockwise') : '-' }}
|
||||
</ElTag>
|
||||
</template>
|
||||
<!-- 摇取点数 tag -->
|
||||
@@ -103,11 +103,13 @@
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import { useI18n } from 'vue-i18n'
|
||||
import { useTable } from '@/hooks/core/useTable'
|
||||
import { useSaiAdmin } from '@/composables/useSaiAdmin'
|
||||
import api from '../../api/play_record/index'
|
||||
import TableSearch from './modules/table-search.vue'
|
||||
import EditDialog from './modules/edit-dialog.vue'
|
||||
const { t } = useI18n()
|
||||
|
||||
// 搜索表单
|
||||
const searchForm = ref<Record<string, unknown>>({
|
||||
@@ -171,35 +173,35 @@
|
||||
apiFn: api.list,
|
||||
columnsFactory: () => [
|
||||
// { type: 'selection' },
|
||||
{ prop: 'id', label: 'table.columns.common.id', width: 80 },
|
||||
{ prop: 'id', label: 'page.table.id', width: 80 },
|
||||
{
|
||||
prop: 'player_id',
|
||||
label: 'table.columns.dice.player',
|
||||
label: 'page.table.player',
|
||||
formatter: (row: Record<string, any>) => usernameFormatter(row)
|
||||
},
|
||||
{
|
||||
prop: 'lottery_config_id',
|
||||
label: 'table.columns.dice.lotteryPoolConfig',
|
||||
label: 'page.table.lotteryPoolConfig',
|
||||
width: 120,
|
||||
useSlot: true
|
||||
},
|
||||
{ prop: 'lottery_type', label: 'table.columns.dice.drawType', width: 100, useSlot: true },
|
||||
{ prop: 'is_win', label: 'table.columns.dice.isBigWin', width: 100, useSlot: true },
|
||||
{ prop: 'win_coin', label: 'table.columns.dice.winCoin', width: 110 },
|
||||
{ prop: 'super_win_coin', label: 'table.columns.dice.superWinCoin', width: 120 },
|
||||
{ prop: 'reward_win_coin', label: 'table.columns.dice.rewardWinCoin', width: 140 },
|
||||
{ prop: 'direction', label: 'table.columns.dice.direction', width: 90, useSlot: true },
|
||||
{ prop: 'start_index', label: 'table.columns.dice.startIndex', width: 90 },
|
||||
{ prop: 'target_index', label: 'table.columns.dice.targetIndex', width: 90 },
|
||||
{ prop: 'roll_array', label: 'table.columns.dice.rollArray', width: 140, useSlot: true },
|
||||
{ prop: 'roll_number', label: 'table.columns.dice.rollNumber', width: 110, sortable: true },
|
||||
{ prop: 'lottery_type', label: 'page.table.drawType', width: 100, useSlot: true },
|
||||
{ prop: 'is_win', label: 'page.table.isBigWin', width: 100, useSlot: true },
|
||||
{ prop: 'win_coin', label: 'page.table.winCoin', width: 110 },
|
||||
{ prop: 'super_win_coin', label: 'page.table.superWinCoin', width: 120 },
|
||||
{ prop: 'reward_win_coin', label: 'page.table.rewardWinCoin', width: 140 },
|
||||
{ prop: 'direction', label: 'page.table.direction', width: 90, useSlot: true },
|
||||
{ prop: 'start_index', label: 'page.table.startIndex', width: 90 },
|
||||
{ prop: 'target_index', label: 'page.table.targetIndex', width: 90 },
|
||||
{ prop: 'roll_array', label: 'page.table.rollArray', width: 140, useSlot: true },
|
||||
{ prop: 'roll_number', label: 'page.table.rollNumber', width: 110, sortable: true },
|
||||
{
|
||||
prop: 'reward_config_id',
|
||||
label: 'table.columns.dice.rewardConfig',
|
||||
label: 'page.table.rewardConfig',
|
||||
formatter: (row: Record<string, any>) => rewardTierFormatter(row)
|
||||
},
|
||||
{ prop: 'create_time', label: 'table.columns.common.createTime', width: 170 },
|
||||
{ prop: 'update_time', label: 'table.columns.common.updateTime', width: 170 },
|
||||
{ prop: 'create_time', label: 'page.table.createTime', width: 170 },
|
||||
{ prop: 'update_time', label: 'page.table.updateTime', width: 170 },
|
||||
{ prop: 'operation', label: 'table.actions.operation', width: 100, fixed: 'right', useSlot: true }
|
||||
]
|
||||
}
|
||||
|
||||
@@ -9,41 +9,41 @@
|
||||
@expand="handleExpand"
|
||||
>
|
||||
<el-col v-bind="setSpan(6)">
|
||||
<el-form-item :label="$t('table.columns.dice.player')" prop="username">
|
||||
<el-input v-model="formData.username" :placeholder="$t('table.searchBar.usernameFuzzy')" clearable />
|
||||
<el-form-item :label="$t('page.search.player')" prop="username">
|
||||
<el-input v-model="formData.username" :placeholder="$t('page.search.usernameFuzzy')" clearable />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col v-bind="setSpan(6)">
|
||||
<el-form-item :label="$t('table.columns.dice.lotteryPoolConfig')" prop="lottery_config_name">
|
||||
<el-input v-model="formData.lottery_config_name" :placeholder="$t('table.searchBar.nameFuzzy')" clearable />
|
||||
<el-form-item :label="$t('page.search.lotteryPoolConfig')" prop="lottery_config_name">
|
||||
<el-input v-model="formData.lottery_config_name" :placeholder="$t('page.search.nameFuzzy')" clearable />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col v-bind="setSpan(6)">
|
||||
<el-form-item :label="$t('table.columns.dice.drawType')" prop="lottery_type">
|
||||
<el-form-item :label="$t('page.search.drawType')" prop="lottery_type">
|
||||
<el-select v-model="formData.lottery_type" :placeholder="$t('table.searchBar.all')" clearable style="width: 100%">
|
||||
<el-option label="付费" :value="0" />
|
||||
<el-option label="赠送" :value="1" />
|
||||
<el-option :label="$t('page.search.paid')" :value="0" />
|
||||
<el-option :label="$t('page.search.free')" :value="1" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col v-bind="setSpan(6)">
|
||||
<el-form-item :label="$t('table.columns.dice.isBigWin')" prop="is_win">
|
||||
<el-form-item :label="$t('page.search.isBigWin')" prop="is_win">
|
||||
<el-select v-model="formData.is_win" :placeholder="$t('table.searchBar.all')" clearable style="width: 100%">
|
||||
<el-option label="无" :value="0" />
|
||||
<el-option label="中大奖" :value="1" />
|
||||
<el-option :label="$t('page.search.noBigWin')" :value="0" />
|
||||
<el-option :label="$t('page.search.bigWin')" :value="1" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col v-bind="setSpan(6)">
|
||||
<el-form-item :label="$t('table.columns.dice.direction')" prop="direction">
|
||||
<el-form-item :label="$t('page.search.direction')" prop="direction">
|
||||
<el-select v-model="formData.direction" :placeholder="$t('table.searchBar.all')" clearable style="width: 100%">
|
||||
<el-option label="顺时针" :value="0" />
|
||||
<el-option label="逆时针" :value="1" />
|
||||
<el-option :label="$t('page.search.clockwise')" :value="0" />
|
||||
<el-option :label="$t('page.search.anticlockwise')" :value="1" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col v-bind="setSpan(6)">
|
||||
<el-form-item :label="$t('table.columns.dice.winCoin')" prop="win_coin_min">
|
||||
<el-form-item :label="$t('page.search.winCoin')" prop="win_coin_min">
|
||||
<div class="range-wrap">
|
||||
<el-input-number
|
||||
v-model="formData.win_coin_min"
|
||||
@@ -64,7 +64,7 @@
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col v-bind="setSpan(6)">
|
||||
<el-form-item :label="$t('table.columns.dice.rollNumber')" prop="roll_number_min">
|
||||
<el-form-item :label="$t('page.search.rollNumber')" prop="roll_number_min">
|
||||
<div class="range-wrap">
|
||||
<el-input-number
|
||||
v-model="formData.roll_number_min"
|
||||
@@ -89,12 +89,12 @@
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col v-bind="setSpan(6)">
|
||||
<el-form-item :label="$t('table.columns.dice.rewardConfig')" prop="reward_ui_text">
|
||||
<el-input v-model="formData.reward_ui_text" :placeholder="$t('table.searchBar.uiTextFuzzy')" clearable />
|
||||
<el-form-item :label="$t('page.search.rewardConfig')" prop="reward_ui_text">
|
||||
<el-input v-model="formData.reward_ui_text" :placeholder="$t('page.search.uiTextFuzzy')" clearable />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col v-bind="setSpan(6)">
|
||||
<el-form-item :label="$t('table.columns.dice.rewardTier')" prop="reward_tier">
|
||||
<el-form-item :label="$t('page.search.rewardTier')" prop="reward_tier">
|
||||
<el-select v-model="formData.reward_tier" :placeholder="$t('table.searchBar.all')" clearable style="width: 100%">
|
||||
<el-option label="T1" value="T1" />
|
||||
<el-option label="T2" value="T2" />
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
<ArtTableHeader v-model:columns="columnChecks" :loading="loading" @refresh="refreshData">
|
||||
<template #left>
|
||||
<span v-if="totalWinCoin !== null" class="table-summary-inline">
|
||||
平台总盈利:<strong>{{ totalWinCoin }}</strong>
|
||||
{{ $t('page.toolbar.platformTotalProfit') }}:<strong>{{ totalWinCoin }}</strong>
|
||||
</span>
|
||||
<ElSpace wrap class="table-toolbar-buttons">
|
||||
<ElButton
|
||||
@@ -20,7 +20,7 @@
|
||||
<template #icon>
|
||||
<ArtSvgIcon icon="ri:delete-bin-5-line" />
|
||||
</template>
|
||||
删除
|
||||
{{ $t('table.actions.delete') }}
|
||||
</ElButton>
|
||||
<ElButton
|
||||
v-permission="'dice:play_record_test:index:destroy'"
|
||||
@@ -32,7 +32,7 @@
|
||||
<template #icon>
|
||||
<ArtSvgIcon icon="ri:delete-bin-2-line" />
|
||||
</template>
|
||||
一键删除所有数据
|
||||
{{ $t('page.toolbar.clearAllData') }}
|
||||
</ElButton>
|
||||
</ElSpace>
|
||||
</template>
|
||||
@@ -58,19 +58,19 @@
|
||||
<!-- 抽奖类型 -->
|
||||
<template #lottery_type="{ row }">
|
||||
<ElTag size="small" :type="row.lottery_type === 0 ? 'warning' : 'success'">
|
||||
{{ row.lottery_type === 0 ? '付费' : row.lottery_type === 1 ? '赠送' : '-' }}
|
||||
{{ row.lottery_type === 0 ? t('page.search.paid') : row.lottery_type === 1 ? t('page.search.free') : '-' }}
|
||||
</ElTag>
|
||||
</template>
|
||||
<!-- 是否中大奖 -->
|
||||
<template #is_win="{ row }">
|
||||
<ElTag size="small" :type="row.is_win === 1 ? 'success' : 'info'">
|
||||
{{ row.is_win === 0 ? '无' : row.is_win === 1 ? '中大奖' : '-' }}
|
||||
{{ row.is_win === 0 ? t('page.search.noBigWin') : row.is_win === 1 ? t('page.search.bigWin') : '-' }}
|
||||
</ElTag>
|
||||
</template>
|
||||
<!-- 方向 -->
|
||||
<template #direction="{ row }">
|
||||
<ElTag size="small" :type="row.direction === 0 ? 'primary' : 'warning'">
|
||||
{{ row.direction === 0 ? '顺时针' : row.direction === 1 ? '逆时针' : '-' }}
|
||||
{{ row.direction === 0 ? t('page.search.clockwise') : row.direction === 1 ? t('page.search.anticlockwise') : '-' }}
|
||||
</ElTag>
|
||||
</template>
|
||||
<!-- 摇取点数 -->
|
||||
@@ -86,7 +86,7 @@
|
||||
<!-- 状态 -->
|
||||
<template #status="{ row }">
|
||||
<ElTag size="small" :type="row.status === 1 ? 'success' : 'info'">
|
||||
{{ row.status === 1 ? '成功' : '失败' }}
|
||||
{{ row.status === 1 ? t('table.searchBar.success') : t('table.searchBar.failure') }}
|
||||
</ElTag>
|
||||
</template>
|
||||
<!-- 操作列 -->
|
||||
@@ -118,12 +118,14 @@
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import { useI18n } from 'vue-i18n'
|
||||
import { useTable } from '@/hooks/core/useTable'
|
||||
import { useSaiAdmin } from '@/composables/useSaiAdmin'
|
||||
import api from '../../api/play_record_test/index'
|
||||
import TableSearch from './modules/table-search.vue'
|
||||
import EditDialog from './modules/edit-dialog.vue'
|
||||
import { ElMessage, ElMessageBox } from 'element-plus'
|
||||
const { t } = useI18n()
|
||||
|
||||
// 搜索表单(与 play_record 对齐:方向、赢取平台币范围、是否中大奖、中奖档位、点数和)
|
||||
const searchForm = ref<Record<string, unknown>>({
|
||||
@@ -205,21 +207,21 @@
|
||||
apiFn: listApi,
|
||||
columnsFactory: () => [
|
||||
{ type: 'selection' },
|
||||
{ prop: 'id', label: 'table.columns.common.id', width: 80 },
|
||||
{ prop: 'lottery_config_id', label: 'table.columns.dice.lotteryPoolConfig', width: 120, useSlot: true },
|
||||
{ prop: 'lottery_type', label: 'table.columns.dice.drawType', width: 100, useSlot: true },
|
||||
{ prop: 'is_win', label: 'table.columns.dice.isBigWin', width: 100, useSlot: true },
|
||||
{ prop: 'win_coin', label: 'table.columns.dice.winCoin', width: 110 },
|
||||
{ prop: 'super_win_coin', label: 'table.columns.dice.superWinCoin', width: 120 },
|
||||
{ prop: 'reward_win_coin', label: 'table.columns.dice.rewardWinCoin', width: 140 },
|
||||
{ prop: 'direction', label: 'table.columns.dice.direction', width: 90, useSlot: true },
|
||||
{ prop: 'start_index', label: 'table.columns.dice.startIndex', width: 90 },
|
||||
{ prop: 'target_index', label: 'table.columns.dice.targetIndex', width: 90 },
|
||||
{ prop: 'roll_array', label: 'table.columns.dice.rollArray', width: 140, useSlot: true },
|
||||
{ prop: 'roll_number', label: 'table.columns.dice.rollNumber', width: 110, sortable: true },
|
||||
{ prop: 'reward_config_id', label: 'table.columns.dice.rewardTier', width: 100, useSlot: true },
|
||||
{ prop: 'status', label: 'table.columns.common.status', width: 80, useSlot: true },
|
||||
{ prop: 'create_time', label: 'table.columns.common.createTime', width: 170 },
|
||||
{ prop: 'id', label: 'page.table.id', width: 80 },
|
||||
{ prop: 'lottery_config_id', label: 'page.table.lotteryPoolConfig', width: 120, useSlot: true },
|
||||
{ prop: 'lottery_type', label: 'page.table.drawType', width: 100, useSlot: true },
|
||||
{ prop: 'is_win', label: 'page.table.isBigWin', width: 100, useSlot: true },
|
||||
{ prop: 'win_coin', label: 'page.table.winCoin', width: 110 },
|
||||
{ prop: 'super_win_coin', label: 'page.table.superWinCoin', width: 120 },
|
||||
{ prop: 'reward_win_coin', label: 'page.table.rewardWinCoin', width: 140 },
|
||||
{ prop: 'direction', label: 'page.table.direction', width: 90, useSlot: true },
|
||||
{ prop: 'start_index', label: 'page.table.startIndex', width: 90 },
|
||||
{ prop: 'target_index', label: 'page.table.targetIndex', width: 90 },
|
||||
{ prop: 'roll_array', label: 'page.table.rollArray', width: 140, useSlot: true },
|
||||
{ prop: 'roll_number', label: 'page.table.rollNumber', width: 110, sortable: true },
|
||||
{ prop: 'reward_config_id', label: 'page.table.rewardConfig', width: 100, useSlot: true },
|
||||
{ prop: 'status', label: 'page.table.status', width: 80, useSlot: true },
|
||||
{ prop: 'create_time', label: 'page.table.createTime', width: 170 },
|
||||
{ prop: 'operation', label: 'table.actions.operation', width: 100, fixed: 'right', useSlot: true }
|
||||
]
|
||||
}
|
||||
|
||||
@@ -9,31 +9,31 @@
|
||||
@expand="handleExpand"
|
||||
>
|
||||
<el-col v-bind="setSpan(6)">
|
||||
<el-form-item :label="$t('table.columns.dice.drawType')" prop="lottery_type">
|
||||
<el-form-item :label="$t('page.search.drawType')" prop="lottery_type">
|
||||
<el-select v-model="formData.lottery_type" :placeholder="$t('table.searchBar.all')" clearable style="width: 100%">
|
||||
<el-option label="付费" :value="0" />
|
||||
<el-option label="赠送" :value="1" />
|
||||
<el-option :label="$t('page.search.paid')" :value="0" />
|
||||
<el-option :label="$t('page.search.free')" :value="1" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col v-bind="setSpan(6)">
|
||||
<el-form-item :label="$t('table.columns.dice.direction')" prop="direction">
|
||||
<el-form-item :label="$t('page.search.direction')" prop="direction">
|
||||
<el-select v-model="formData.direction" :placeholder="$t('table.searchBar.all')" clearable style="width: 100%">
|
||||
<el-option label="顺时针" :value="0" />
|
||||
<el-option label="逆时针" :value="1" />
|
||||
<el-option :label="$t('page.search.clockwise')" :value="0" />
|
||||
<el-option :label="$t('page.search.anticlockwise')" :value="1" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col v-bind="setSpan(6)">
|
||||
<el-form-item :label="$t('table.columns.dice.isBigWin')" prop="is_win">
|
||||
<el-form-item :label="$t('page.search.isBigWin')" prop="is_win">
|
||||
<el-select v-model="formData.is_win" :placeholder="$t('table.searchBar.all')" clearable style="width: 100%">
|
||||
<el-option label="无" :value="0" />
|
||||
<el-option label="中大奖" :value="1" />
|
||||
<el-option :label="$t('page.search.noBigWin')" :value="0" />
|
||||
<el-option :label="$t('page.search.bigWin')" :value="1" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col v-bind="setSpan(6)">
|
||||
<el-form-item :label="$t('table.columns.dice.winCoin')" prop="win_coin_min">
|
||||
<el-form-item :label="$t('page.search.winCoin')" prop="win_coin_min">
|
||||
<div class="range-wrap">
|
||||
<el-input-number
|
||||
v-model="formData.win_coin_min"
|
||||
@@ -54,7 +54,7 @@
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col v-bind="setSpan(6)">
|
||||
<el-form-item :label="$t('table.columns.dice.rewardTier')" prop="reward_tier">
|
||||
<el-form-item :label="$t('page.search.rewardTier')" prop="reward_tier">
|
||||
<el-select v-model="formData.reward_tier" :placeholder="$t('table.searchBar.all')" clearable style="width: 100%">
|
||||
<el-option label="T1" value="T1" />
|
||||
<el-option label="T2" value="T2" />
|
||||
@@ -65,7 +65,7 @@
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col v-bind="setSpan(6)">
|
||||
<el-form-item :label="$t('table.columns.dice.rollNumber')" prop="roll_number">
|
||||
<el-form-item :label="$t('page.search.rollNumber')" prop="roll_number">
|
||||
<el-select
|
||||
v-model="formData.roll_number"
|
||||
:placeholder="$t('table.searchBar.all')"
|
||||
|
||||
@@ -150,70 +150,70 @@
|
||||
apiFn: api.list,
|
||||
columnsFactory: () => [
|
||||
{ type: 'selection' },
|
||||
{ prop: 'username', label: 'table.columns.system.username', align: 'center' },
|
||||
{ prop: 'phone', label: 'table.columns.system.phone', align: 'center' },
|
||||
{ prop: 'name', label: 'table.columns.dice.nickname', align: 'center' },
|
||||
{ prop: 'username', label: 'page.table.username', align: 'center' },
|
||||
{ prop: 'phone', label: 'page.table.phone', align: 'center' },
|
||||
{ prop: 'name', label: 'page.table.nickname', align: 'center' },
|
||||
{
|
||||
prop: 'status',
|
||||
label: 'table.columns.common.status',
|
||||
label: 'page.table.status',
|
||||
width: 88,
|
||||
align: 'center',
|
||||
useSlot: true
|
||||
},
|
||||
{
|
||||
prop: 'coin',
|
||||
label: 'table.columns.dice.coin',
|
||||
label: 'page.table.coin',
|
||||
width: 100,
|
||||
align: 'center',
|
||||
useSlot: true
|
||||
},
|
||||
{
|
||||
prop: 'lottery_config_id',
|
||||
label: 'table.columns.dice.lotteryPoolConfig',
|
||||
label: 'page.table.lotteryPoolConfig',
|
||||
width: 120,
|
||||
align: 'center',
|
||||
formatter: (row: any) => lotteryConfigNameFormatter(row)
|
||||
},
|
||||
{
|
||||
prop: 't1_weight',
|
||||
label: 'table.columns.dice.t1Weight',
|
||||
label: 'page.table.t1Weight',
|
||||
width: 80,
|
||||
align: 'center',
|
||||
formatter: weightFormatter('t1_weight')
|
||||
},
|
||||
{
|
||||
prop: 't2_weight',
|
||||
label: 'table.columns.dice.t2Weight',
|
||||
label: 'page.table.t2Weight',
|
||||
width: 100,
|
||||
align: 'center',
|
||||
formatter: weightFormatter('t2_weight')
|
||||
},
|
||||
{
|
||||
prop: 't3_weight',
|
||||
label: 'table.columns.dice.t3Weight',
|
||||
label: 'page.table.t3Weight',
|
||||
width: 100,
|
||||
align: 'center',
|
||||
formatter: weightFormatter('t3_weight')
|
||||
},
|
||||
{
|
||||
prop: 't4_weight',
|
||||
label: 'table.columns.dice.t4Weight',
|
||||
label: 'page.table.t4Weight',
|
||||
width: 100,
|
||||
align: 'center',
|
||||
formatter: weightFormatter('t4_weight')
|
||||
},
|
||||
{
|
||||
prop: 't5_weight',
|
||||
label: 'table.columns.dice.t5Weight',
|
||||
label: 'page.table.t5Weight',
|
||||
width: 100,
|
||||
align: 'center',
|
||||
formatter: weightFormatter('t5_weight')
|
||||
},
|
||||
{ prop: 'total_ticket_count', label: 'table.columns.dice.totalDrawCount', align: 'center' },
|
||||
{ prop: 'paid_ticket_count', label: 'table.columns.dice.paidDrawCount', align: 'center' },
|
||||
{ prop: 'free_ticket_count', label: 'table.columns.dice.freeDrawCount', align: 'center' },
|
||||
{ prop: 'create_time', label: 'table.columns.common.createTime', align: 'center' },
|
||||
{ prop: 'update_time', label: 'table.columns.common.updateTime', align: 'center' },
|
||||
{ prop: 'total_ticket_count', label: 'page.table.totalDrawCount', align: 'center' },
|
||||
{ prop: 'paid_ticket_count', label: 'page.table.paidDrawCount', align: 'center' },
|
||||
{ prop: 'free_ticket_count', label: 'page.table.freeDrawCount', align: 'center' },
|
||||
{ prop: 'create_time', label: 'page.table.createTime', align: 'center' },
|
||||
{ prop: 'update_time', label: 'page.table.updateTime', align: 'center' },
|
||||
{
|
||||
prop: 'operation',
|
||||
label: 'table.actions.operation',
|
||||
|
||||
@@ -9,22 +9,22 @@
|
||||
@expand="handleExpand"
|
||||
>
|
||||
<el-col v-bind="setSpan(6)">
|
||||
<el-form-item :label="$t('table.columns.system.username')" prop="username">
|
||||
<el-input v-model="formData.username" :placeholder="$t('table.searchBar.placeholderUsername')" clearable />
|
||||
<el-form-item :label="$t('page.search.username')" prop="username">
|
||||
<el-input v-model="formData.username" :placeholder="$t('page.search.placeholderUsername')" clearable />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col v-bind="setSpan(6)">
|
||||
<el-form-item :label="$t('table.columns.dice.nickname')" prop="name">
|
||||
<el-input v-model="formData.name" :placeholder="$t('table.searchBar.placeholderNickname')" clearable />
|
||||
<el-form-item :label="$t('page.search.nickname')" prop="name">
|
||||
<el-input v-model="formData.name" :placeholder="$t('page.search.placeholderNickname')" clearable />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col v-bind="setSpan(6)">
|
||||
<el-form-item :label="$t('table.columns.system.phone')" prop="phone">
|
||||
<el-input v-model="formData.phone" :placeholder="$t('table.searchBar.placeholderPhoneFuzzy')" clearable />
|
||||
<el-form-item :label="$t('page.search.phone')" prop="phone">
|
||||
<el-input v-model="formData.phone" :placeholder="$t('page.search.placeholderPhoneFuzzy')" clearable />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col v-bind="setSpan(6)">
|
||||
<el-form-item :label="$t('table.columns.common.status')" prop="status">
|
||||
<el-form-item :label="$t('page.search.status')" prop="status">
|
||||
<el-select v-model="formData.status" :placeholder="$t('table.searchBar.all')" clearable style="width: 100%">
|
||||
<el-option :label="$t('table.searchBar.enable')" :value="1" />
|
||||
<el-option :label="$t('table.searchBar.disable')" :value="0" />
|
||||
@@ -32,22 +32,22 @@
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col v-bind="setSpan(6)">
|
||||
<el-form-item :label="$t('table.columns.dice.coin')" prop="coin">
|
||||
<el-form-item :label="$t('page.search.coin')" prop="coin">
|
||||
<el-input-number
|
||||
v-model="formData.coin"
|
||||
:min="0"
|
||||
:precision="2"
|
||||
:placeholder="$t('table.searchBar.exactSearch')"
|
||||
:placeholder="$t('page.search.exactSearch')"
|
||||
controls-position="right"
|
||||
style="width: 100%"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col v-bind="setSpan(6)">
|
||||
<el-form-item :label="$t('table.columns.dice.lotteryPoolConfig')" prop="lottery_config_id">
|
||||
<el-form-item :label="$t('page.search.lotteryPoolConfig')" prop="lottery_config_id">
|
||||
<el-select
|
||||
v-model="formData.lottery_config_id"
|
||||
:placeholder="$t('table.searchBar.all')"
|
||||
:placeholder="$t('page.search.placeholderAll')"
|
||||
clearable
|
||||
style="width: 100%"
|
||||
>
|
||||
|
||||
@@ -127,19 +127,19 @@
|
||||
row?.dicePlayer?.username ?? row?.player_id ?? '-'
|
||||
return [
|
||||
// { type: 'selection' },
|
||||
{ prop: 'id', label: 'table.columns.common.id', width: 80, align: 'center' },
|
||||
{ prop: 'id', label: 'page.table.id', width: 80, align: 'center' },
|
||||
{
|
||||
prop: 'player_id',
|
||||
label: 'table.columns.dice.playerUsername',
|
||||
label: 'page.table.playerUsername',
|
||||
align: 'center',
|
||||
formatter: (row: Record<string, any>) => usernameFormatter(row)
|
||||
},
|
||||
{ prop: 'use_coins', label: 'table.columns.dice.useCoins', align: 'center' },
|
||||
{ prop: 'total_ticket_count', label: 'table.columns.dice.totalDrawCount', align: 'center' },
|
||||
{ prop: 'paid_ticket_count', label: 'table.columns.dice.paidDrawCount', align: 'center' },
|
||||
{ prop: 'free_ticket_count', label: 'table.columns.dice.freeDrawCount', align: 'center' },
|
||||
{ prop: 'remark', label: 'table.columns.common.remark', width: 100, align: 'center', showOverflowTooltip: true },
|
||||
{ prop: 'create_time', label: 'table.columns.common.createTime', width: 170, align: 'center' },
|
||||
{ prop: 'use_coins', label: 'page.table.useCoins', align: 'center' },
|
||||
{ prop: 'total_ticket_count', label: 'page.table.totalDrawCount', align: 'center' },
|
||||
{ prop: 'paid_ticket_count', label: 'page.table.paidDrawCount', align: 'center' },
|
||||
{ prop: 'free_ticket_count', label: 'page.table.freeDrawCount', align: 'center' },
|
||||
{ prop: 'remark', label: 'page.table.remark', width: 100, align: 'center', showOverflowTooltip: true },
|
||||
{ prop: 'create_time', label: 'page.table.createTime', width: 170, align: 'center' },
|
||||
{
|
||||
prop: 'operation',
|
||||
label: 'table.actions.operation',
|
||||
|
||||
@@ -9,12 +9,12 @@
|
||||
@expand="handleExpand"
|
||||
>
|
||||
<el-col v-bind="setSpan(6)">
|
||||
<el-form-item :label="$t('table.columns.dice.player')" prop="username">
|
||||
<el-input v-model="formData.username" :placeholder="$t('table.searchBar.byUsername')" clearable />
|
||||
<el-form-item :label="$t('page.search.player')" prop="username">
|
||||
<el-input v-model="formData.username" :placeholder="$t('page.search.byUsername')" clearable />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col v-bind="setSpan(6)">
|
||||
<el-form-item :label="$t('table.columns.dice.useCoins')" prop="use_coins_min">
|
||||
<el-form-item :label="$t('page.search.useCoins')" prop="use_coins_min">
|
||||
<div class="range-wrap">
|
||||
<el-input-number
|
||||
v-model="formData.use_coins_min"
|
||||
@@ -35,7 +35,7 @@
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col v-bind="setSpan(6)">
|
||||
<el-form-item :label="$t('table.columns.dice.totalDrawCount')" prop="total_ticket_count_min">
|
||||
<el-form-item :label="$t('page.search.totalDrawCount')" prop="total_ticket_count_min">
|
||||
<div class="range-wrap">
|
||||
<el-input-number
|
||||
v-model="formData.total_ticket_count_min"
|
||||
@@ -56,7 +56,7 @@
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col v-bind="setSpan(6)">
|
||||
<el-form-item :label="$t('table.columns.dice.paidDrawCount')" prop="paid_ticket_count_min">
|
||||
<el-form-item :label="$t('page.search.paidDrawCount')" prop="paid_ticket_count_min">
|
||||
<div class="range-wrap">
|
||||
<el-input-number
|
||||
v-model="formData.paid_ticket_count_min"
|
||||
@@ -77,7 +77,7 @@
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col v-bind="setSpan(6)">
|
||||
<el-form-item :label="$t('table.columns.dice.freeDrawCount')" prop="free_ticket_count_min">
|
||||
<el-form-item :label="$t('page.search.freeDrawCount')" prop="free_ticket_count_min">
|
||||
<div class="range-wrap">
|
||||
<el-input-number
|
||||
v-model="formData.free_ticket_count_min"
|
||||
@@ -98,7 +98,7 @@
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col v-bind="setSpan(8)">
|
||||
<el-form-item :label="$t('table.columns.common.createTime')" prop="create_time_min">
|
||||
<el-form-item :label="$t('page.search.createTime')" prop="create_time_min">
|
||||
<el-date-picker
|
||||
v-model="formData.create_time"
|
||||
type="datetimerange"
|
||||
|
||||
@@ -81,6 +81,7 @@
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import { useI18n } from 'vue-i18n'
|
||||
import { useTable } from '@/hooks/core/useTable'
|
||||
import { useSaiAdmin } from '@/composables/useSaiAdmin'
|
||||
import api from '../../api/player_wallet_record/index'
|
||||
@@ -108,15 +109,16 @@
|
||||
getData()
|
||||
}
|
||||
|
||||
const { t } = useI18n()
|
||||
// 类型展示:0=充值 1=提现 2=购买抽奖次数 3=管理员加点 4=管理员扣点 5=抽奖
|
||||
const typeFormatter = (row: Record<string, unknown>) => {
|
||||
const t = row.type
|
||||
if (t === 0) return '充值'
|
||||
if (t === 1) return '提现'
|
||||
if (t === 2) return '购买抽奖次数'
|
||||
if (t === 3) return '管理员加点'
|
||||
if (t === 4) return '管理员扣点'
|
||||
if (t === 5) return '抽奖'
|
||||
const ty = row.type
|
||||
if (ty === 0) return t('page.search.typeRecharge')
|
||||
if (ty === 1) return t('page.search.typeWithdraw')
|
||||
if (ty === 2) return t('page.search.typeBuyTicket')
|
||||
if (ty === 3) return t('page.search.typeAdminAdd')
|
||||
if (ty === 4) return t('page.search.typeAdminSub')
|
||||
if (ty === 5) return t('page.table.typeDraw')
|
||||
return '-'
|
||||
}
|
||||
|
||||
@@ -163,18 +165,18 @@
|
||||
apiFn: api.list,
|
||||
columnsFactory: () => [
|
||||
{ type: 'selection', align: 'center' },
|
||||
{ prop: 'id', label: 'table.columns.common.id', width: 80, align: 'center' },
|
||||
{ prop: 'id', label: 'page.table.id', width: 80, align: 'center' },
|
||||
{
|
||||
prop: 'player_id',
|
||||
label: 'table.columns.dice.user',
|
||||
label: 'page.table.user',
|
||||
width: 120,
|
||||
align: 'center',
|
||||
formatter: usernameFormatter
|
||||
},
|
||||
{ prop: 'coin', label: 'table.columns.dice.coinChange', width: 110, align: 'center' },
|
||||
{ prop: 'coin', label: 'page.table.coinChange', width: 110, align: 'center' },
|
||||
{
|
||||
prop: 'type',
|
||||
label: 'table.columns.dice.type',
|
||||
label: 'page.table.type',
|
||||
width: 140,
|
||||
align: 'center',
|
||||
useSlot: true,
|
||||
@@ -182,24 +184,24 @@
|
||||
},
|
||||
{
|
||||
prop: 'user_id',
|
||||
label: 'table.columns.dice.operator',
|
||||
label: 'page.table.operator',
|
||||
width: 100,
|
||||
align: 'center',
|
||||
formatter: operatorFormatter
|
||||
},
|
||||
{ prop: 'wallet_before', label: 'table.columns.dice.walletBefore', width: 110, align: 'center' },
|
||||
{ prop: 'wallet_after', label: 'table.columns.dice.walletAfter', width: 110, align: 'center' },
|
||||
{ prop: 'wallet_before', label: 'page.table.walletBefore', width: 110, align: 'center' },
|
||||
{ prop: 'wallet_after', label: 'page.table.walletAfter', width: 110, align: 'center' },
|
||||
{
|
||||
prop: 'remark',
|
||||
label: 'table.columns.common.remark',
|
||||
label: 'page.table.remark',
|
||||
width: 100,
|
||||
align: 'center',
|
||||
showOverflowTooltip: true
|
||||
},
|
||||
{ prop: 'total_ticket_count', label: 'table.columns.dice.totalDrawCount', align: 'center' },
|
||||
{ prop: 'paid_ticket_count', label: 'table.columns.dice.paidDrawCount', align: 'center' },
|
||||
{ prop: 'free_ticket_count', label: 'table.columns.dice.freeDrawCount', align: 'center' },
|
||||
{ prop: 'create_time', label: 'table.columns.common.createTime', width: 170, align: 'center' },
|
||||
{ prop: 'total_ticket_count', label: 'page.table.totalDrawCount', align: 'center' },
|
||||
{ prop: 'paid_ticket_count', label: 'page.table.paidDrawCount', align: 'center' },
|
||||
{ prop: 'free_ticket_count', label: 'page.table.freeDrawCount', align: 'center' },
|
||||
{ prop: 'create_time', label: 'page.table.createTime', width: 170, align: 'center' },
|
||||
{
|
||||
prop: 'operation',
|
||||
label: 'table.actions.operation',
|
||||
|
||||
@@ -9,23 +9,23 @@
|
||||
@expand="handleExpand"
|
||||
>
|
||||
<el-col v-bind="setSpan(5)">
|
||||
<el-form-item :label="$t('table.columns.dice.type')" prop="type">
|
||||
<el-form-item :label="$t('page.search.type')" prop="type">
|
||||
<el-select v-model="formData.type" :placeholder="$t('table.searchBar.all')" clearable style="width: 100%">
|
||||
<el-option label="充值" :value="0" />
|
||||
<el-option label="提现" :value="1" />
|
||||
<el-option label="购买抽奖次数" :value="2" />
|
||||
<el-option label="管理员加点" :value="3" />
|
||||
<el-option label="管理员扣点" :value="4" />
|
||||
<el-option :label="$t('page.search.typeRecharge')" :value="0" />
|
||||
<el-option :label="$t('page.search.typeWithdraw')" :value="1" />
|
||||
<el-option :label="$t('page.search.typeBuyTicket')" :value="2" />
|
||||
<el-option :label="$t('page.search.typeAdminAdd')" :value="3" />
|
||||
<el-option :label="$t('page.search.typeAdminSub')" :value="4" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col v-bind="setSpan(5)">
|
||||
<el-form-item :label="$t('table.columns.dice.user')" prop="username">
|
||||
<el-input v-model="formData.username" :placeholder="$t('table.searchBar.byUsername')" clearable />
|
||||
<el-form-item :label="$t('page.search.user')" prop="username">
|
||||
<el-input v-model="formData.username" :placeholder="$t('page.search.byUsername')" clearable />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col v-bind="setSpan(8)">
|
||||
<el-form-item :label="$t('table.columns.dice.coin')" prop="coin_min">
|
||||
<el-form-item :label="$t('page.search.coin')" prop="coin_min">
|
||||
<div class="coin-range-wrap">
|
||||
<el-input-number
|
||||
v-model="formData.coin_min"
|
||||
@@ -46,7 +46,7 @@
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col v-bind="setSpan(8)">
|
||||
<el-form-item :label="$t('table.columns.common.createTime')" prop="create_time">
|
||||
<el-form-item :label="$t('page.search.createTime')" prop="create_time">
|
||||
<el-date-picker
|
||||
v-model="formData.create_time"
|
||||
type="datetimerange"
|
||||
|
||||
@@ -3,8 +3,8 @@
|
||||
<!-- 方向切换 + 搜索 -->
|
||||
<div class="direction-bar">
|
||||
<el-radio-group v-model="currentDirection" size="default" @change="onDirectionChange">
|
||||
<el-radio-button :value="0">顺时针</el-radio-button>
|
||||
<el-radio-button :value="1">逆时针</el-radio-button>
|
||||
<el-radio-button :value="0">{{ $t('page.search.clockwise') }}</el-radio-button>
|
||||
<el-radio-button :value="1">{{ $t('page.search.anticlockwise') }}</el-radio-button>
|
||||
</el-radio-group>
|
||||
</div>
|
||||
<TableSearch v-model="searchForm" @search="handleSearch" @reset="resetSearchParams" />
|
||||
@@ -19,14 +19,14 @@
|
||||
@click="weightRatioVisible = true"
|
||||
v-ripple
|
||||
>
|
||||
权重配比
|
||||
{{ $t('page.toolbar.weightRatio') }}
|
||||
</ElButton>
|
||||
<ElButton
|
||||
v-permission="'dice:reward:index:index'"
|
||||
@click="weightTestVisible = true"
|
||||
v-ripple
|
||||
>
|
||||
一键测试权重
|
||||
{{ $t('page.toolbar.weightTest') }}
|
||||
</ElButton>
|
||||
</ElSpace>
|
||||
</template>
|
||||
@@ -99,12 +99,12 @@
|
||||
apiFn: listApi,
|
||||
apiParams: { direction: 0, limit: 100 },
|
||||
columnsFactory: () => [
|
||||
{ prop: 'start_index', label: 'table.columns.dice.startIndex', width: 100, align: 'center' },
|
||||
{ prop: 'end_index', label: 'table.columns.dice.endIndex', width: 110, align: 'center' },
|
||||
{ prop: 'tier', label: 'table.columns.dice.tier', width: 90, align: 'center', sortable: true },
|
||||
{ prop: 'start_index', label: 'page.table.startIndex', width: 100, align: 'center' },
|
||||
{ prop: 'end_index', label: 'page.table.endIndex', width: 110, align: 'center' },
|
||||
{ prop: 'tier', label: 'page.table.tier', width: 90, align: 'center', sortable: true },
|
||||
{
|
||||
prop: 'grid_number',
|
||||
label: 'table.columns.dice.dicePoints',
|
||||
label: 'page.table.dicePoints',
|
||||
width: 120,
|
||||
align: 'center',
|
||||
sortable: true,
|
||||
@@ -112,14 +112,14 @@
|
||||
},
|
||||
{
|
||||
prop: 'ui_text',
|
||||
label: 'table.columns.dice.displayText',
|
||||
label: 'page.table.displayText',
|
||||
minWidth: 100,
|
||||
align: 'center',
|
||||
showOverflowTooltip: true
|
||||
},
|
||||
{ prop: 'real_ev', label: 'table.columns.dice.realEv', width: 110, align: 'center' },
|
||||
{ prop: 'remark', label: 'table.columns.common.remark', minWidth: 80, align: 'center', showOverflowTooltip: true },
|
||||
{ prop: 'weight', label: 'table.columns.dice.weight', width: 110, align: 'center' }
|
||||
{ prop: 'real_ev', label: 'page.table.realEv', width: 110, align: 'center' },
|
||||
{ prop: 'remark', label: 'page.table.remark', minWidth: 80, align: 'center', showOverflowTooltip: true },
|
||||
{ prop: 'weight', label: 'page.table.weight', width: 110, align: 'center' }
|
||||
]
|
||||
}
|
||||
})
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
@search="handleSearch"
|
||||
>
|
||||
<el-col v-bind="setSpan(8)">
|
||||
<el-form-item :label="$t('table.columns.dice.tier')" prop="tier">
|
||||
<el-form-item :label="$t('page.search.tier')" prop="tier">
|
||||
<el-select v-model="formData.tier" :placeholder="$t('table.searchBar.all')" clearable style="width: 100%">
|
||||
<el-option label="T1" value="T1" />
|
||||
<el-option label="T2" value="T2" />
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
<ElCard shadow="never" class="form-card">
|
||||
<template #header>
|
||||
<div class="card-header">
|
||||
<span>游戏奖励配置</span>
|
||||
<span>{{ $t('page.toolbar.gameRewardConfig') }}</span>
|
||||
<ElButton
|
||||
v-permission="'dice:reward_config:index:update'"
|
||||
type="warning"
|
||||
@@ -12,7 +12,7 @@
|
||||
v-ripple
|
||||
title="按规则:start_index=config(grid_number).id;顺时针 end_index=(start_index+grid_number)%26;逆时针 end_index=start_index-grid_number≥0?start_index-grid_number:26+start_index-grid_number"
|
||||
>
|
||||
创建奖励对照
|
||||
{{ $t('page.toolbar.createRewardRef') }}
|
||||
</ElButton>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
@expand="handleExpand"
|
||||
>
|
||||
<el-col v-bind="setSpan(6)">
|
||||
<el-form-item :label="$t('table.columns.dice.dicePoints')" prop="grid_number_min">
|
||||
<el-form-item :label="$t('page.search.dicePoints')" prop="grid_number_min">
|
||||
<div class="range-wrap">
|
||||
<el-input-number
|
||||
v-model="formData.grid_number_min"
|
||||
@@ -28,12 +28,12 @@
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col v-bind="setSpan(6)">
|
||||
<el-form-item :label="$t('table.columns.dice.displayText')" prop="ui_text">
|
||||
<el-input v-model="formData.ui_text" :placeholder="$t('table.searchBar.fuzzyQuery')" clearable />
|
||||
<el-form-item :label="$t('page.search.displayText')" prop="ui_text">
|
||||
<el-input v-model="formData.ui_text" :placeholder="$t('page.search.fuzzyQuery')" clearable />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col v-bind="setSpan(6)">
|
||||
<el-form-item :label="$t('table.columns.dice.realEv')" prop="real_ev_min">
|
||||
<el-form-item :label="$t('page.search.realEv')" prop="real_ev_min">
|
||||
<div class="range-wrap">
|
||||
<el-input-number
|
||||
v-model="formData.real_ev_min"
|
||||
@@ -54,7 +54,7 @@
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col v-bind="setSpan(6)">
|
||||
<el-form-item :label="$t('table.columns.dice.tier')" prop="tier">
|
||||
<el-form-item :label="$t('page.search.tier')" prop="tier">
|
||||
<el-select v-model="formData.tier" :placeholder="$t('table.searchBar.all')" clearable style="width: 100%">
|
||||
<el-option label="T1" value="T1" />
|
||||
<el-option label="T2" value="T2" />
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
<template #icon>
|
||||
<ArtSvgIcon icon="ri:delete-bin-5-line" />
|
||||
</template>
|
||||
删除
|
||||
{{ $t('table.actions.delete') }}
|
||||
</ElButton>
|
||||
</ElSpace>
|
||||
</template>
|
||||
@@ -58,7 +58,7 @@
|
||||
<SaButton
|
||||
v-permission="'dice:reward_config_record:index:read'"
|
||||
type="success"
|
||||
toolTip="查看详情"
|
||||
:toolTip="$t('page.toolbar.viewDetail')"
|
||||
@click="openDetail(row)"
|
||||
/>
|
||||
<SaButton
|
||||
@@ -84,6 +84,7 @@
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import { useI18n } from 'vue-i18n'
|
||||
import { useTable } from '@/hooks/core/useTable'
|
||||
import { useSaiAdmin } from '@/composables/useSaiAdmin'
|
||||
import api from '../../api/reward_config_record/index'
|
||||
@@ -119,12 +120,13 @@
|
||||
}
|
||||
}
|
||||
|
||||
const { t } = useI18n()
|
||||
// 状态文案:-1失败 0测试中 1完成(2=执行中也显示测试中)
|
||||
function formatStatus(status: unknown): string {
|
||||
const s = Number(status)
|
||||
if (s === -1) return '失败'
|
||||
if (s === 1) return '完成'
|
||||
if (s === 0 || s === 2) return '测试中'
|
||||
if (s === -1) return t('page.table.statusFail')
|
||||
if (s === 1) return t('page.table.statusDone')
|
||||
if (s === 0 || s === 2) return t('page.table.statusTesting')
|
||||
return '—'
|
||||
}
|
||||
|
||||
@@ -168,44 +170,44 @@
|
||||
apiParams: { limit: 100 },
|
||||
columnsFactory: () => [
|
||||
{ type: 'selection' },
|
||||
{ prop: 'id', label: 'table.columns.common.id', width: 80, align: 'center' },
|
||||
{ prop: 'id', label: 'page.table.id', width: 80, align: 'center' },
|
||||
{
|
||||
prop: 'status',
|
||||
label: 'table.columns.common.status',
|
||||
label: 'page.table.status',
|
||||
width: 90,
|
||||
align: 'center',
|
||||
useSlot: true
|
||||
},
|
||||
{
|
||||
prop: 'paid_draw',
|
||||
label: 'table.columns.dice.paidDraw',
|
||||
label: 'page.table.paidDraw',
|
||||
width: 160,
|
||||
align: 'center',
|
||||
useSlot: true
|
||||
},
|
||||
{
|
||||
prop: 'free_draw',
|
||||
label: 'table.columns.dice.freeDraw',
|
||||
label: 'page.table.freeDraw',
|
||||
width: 160,
|
||||
align: 'center',
|
||||
useSlot: true
|
||||
},
|
||||
{
|
||||
prop: 'platform_profit',
|
||||
label: 'table.columns.dice.platformProfit',
|
||||
label: 'page.table.platformProfit',
|
||||
width: 120,
|
||||
align: 'center',
|
||||
useSlot: true
|
||||
},
|
||||
{ prop: 'total_play_count', label: 'table.columns.dice.totalDrawCount', width: 110, align: 'center' },
|
||||
{ prop: 'total_play_count', label: 'page.table.totalDrawCount', width: 110, align: 'center' },
|
||||
{
|
||||
prop: 'admin_name',
|
||||
label: 'table.columns.dice.createdBy',
|
||||
label: 'page.table.createdBy',
|
||||
width: 120,
|
||||
align: 'center',
|
||||
showOverflowTooltip: true
|
||||
},
|
||||
{ prop: 'create_time', label: 'table.columns.common.createTime', width: 170, align: 'center' },
|
||||
{ prop: 'create_time', label: 'page.table.createTime', width: 170, align: 'center' },
|
||||
{
|
||||
prop: 'operation',
|
||||
label: 'table.actions.operation',
|
||||
|
||||
@@ -244,18 +244,18 @@
|
||||
},
|
||||
columnsFactory: () => [
|
||||
{ type: 'selection' },
|
||||
{ prop: 'url', label: 'table.columns.safeguard.preview', saiType: 'image', width: 80 },
|
||||
{ prop: 'origin_name', label: 'table.columns.safeguard.fileName', minWidth: 160, showOverflowTooltip: true },
|
||||
{ prop: 'url', label: 'page.table.preview', saiType: 'image', width: 80 },
|
||||
{ prop: 'origin_name', label: 'page.table.fileName', minWidth: 160, showOverflowTooltip: true },
|
||||
{
|
||||
prop: 'storage_mode',
|
||||
label: 'table.columns.safeguard.storageMode',
|
||||
label: 'page.table.storageMode',
|
||||
width: 100,
|
||||
saiType: 'dict',
|
||||
saiDict: 'upload_mode'
|
||||
},
|
||||
{ prop: 'mime_type', label: 'table.columns.safeguard.fileType', width: 160, showOverflowTooltip: true },
|
||||
{ prop: 'size_info', label: 'table.columns.safeguard.fileSize', width: 100 },
|
||||
{ prop: 'create_time', label: 'table.columns.safeguard.uploadTime', width: 180, sortable: true },
|
||||
{ prop: 'mime_type', label: 'page.table.fileType', width: 160, showOverflowTooltip: true },
|
||||
{ prop: 'size_info', label: 'page.table.fileSize', width: 100 },
|
||||
{ prop: 'create_time', label: 'page.table.uploadTime', width: 180, sortable: true },
|
||||
{ prop: 'operation', label: 'table.actions.operation', width: 100, fixed: 'right', useSlot: true }
|
||||
]
|
||||
}
|
||||
|
||||
@@ -9,18 +9,18 @@
|
||||
@expand="handleExpand"
|
||||
>
|
||||
<el-col v-bind="setSpan(6)">
|
||||
<el-form-item :label="$t('table.columns.system.username')" prop="username">
|
||||
<el-input v-model="formData.username" :placeholder="$t('table.searchBar.placeholderUsername')" clearable />
|
||||
<el-form-item :label="$t('page.search.username')" prop="username">
|
||||
<el-input v-model="formData.username" :placeholder="$t('page.search.placeholderUsername')" clearable />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col v-bind="setSpan(6)">
|
||||
<el-form-item :label="$t('table.columns.system.phone')" prop="phone">
|
||||
<el-input v-model="formData.phone" :placeholder="$t('table.searchBar.placeholderPhone')" clearable />
|
||||
<el-form-item :label="$t('page.search.phone')" prop="phone">
|
||||
<el-input v-model="formData.phone" :placeholder="$t('page.search.placeholderPhone')" clearable />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col v-bind="setSpan(6)">
|
||||
<el-form-item :label="$t('table.columns.common.status')" prop="status">
|
||||
<sa-select v-model="formData.status" dict="data_status" :placeholder="$t('table.searchBar.searchSelectPlaceholder')" clearable />
|
||||
<el-form-item :label="$t('page.search.status')" prop="status">
|
||||
<sa-select v-model="formData.status" dict="data_status" :placeholder="$t('page.search.searchSelectPlaceholder')" clearable />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</sa-search-bar>
|
||||
|
||||
@@ -125,15 +125,15 @@
|
||||
},
|
||||
columnsFactory: () => [
|
||||
{ type: 'selection' },
|
||||
{ prop: 'name', label: 'table.columns.safeguard.tableName', minWidth: 200 },
|
||||
{ prop: 'comment', label: 'table.columns.safeguard.tableComment', minWidth: 150, showOverflowTooltip: true },
|
||||
{ prop: 'engine', label: 'table.columns.safeguard.tableEngine', width: 120 },
|
||||
{ prop: 'update_time', label: 'table.columns.common.updateTime', width: 180, sortable: true },
|
||||
{ prop: 'rows', label: 'table.columns.safeguard.totalRows', width: 120 },
|
||||
{ prop: 'data_free', label: 'table.columns.safeguard.fragmentSize', width: 120 },
|
||||
{ prop: 'data_length', label: 'table.columns.safeguard.dataSize', width: 120 },
|
||||
{ prop: 'collation', label: 'table.columns.safeguard.collation', width: 180 },
|
||||
{ prop: 'create_time', label: 'table.columns.common.createTime', width: 180, sortable: true },
|
||||
{ prop: 'name', label: 'page.table.tableName', minWidth: 200 },
|
||||
{ prop: 'comment', label: 'page.table.tableComment', minWidth: 150, showOverflowTooltip: true },
|
||||
{ prop: 'engine', label: 'page.table.tableEngine', width: 120 },
|
||||
{ prop: 'update_time', label: 'page.table.updateTime', width: 180, sortable: true },
|
||||
{ prop: 'rows', label: 'page.table.totalRows', width: 120 },
|
||||
{ prop: 'data_free', label: 'page.table.fragmentSize', width: 120 },
|
||||
{ prop: 'data_length', label: 'page.table.dataSize', width: 120 },
|
||||
{ prop: 'collation', label: 'page.table.collation', width: 180 },
|
||||
{ prop: 'create_time', label: 'page.table.createTime', width: 180, sortable: true },
|
||||
{ prop: 'operation', label: 'table.actions.operation', width: 100, fixed: 'right', useSlot: true }
|
||||
]
|
||||
}
|
||||
|
||||
@@ -140,8 +140,8 @@
|
||||
},
|
||||
columnsFactory: () => [
|
||||
{ type: 'selection' },
|
||||
{ prop: 'delete_time', label: 'table.columns.safeguard.deleteTime', width: 180 },
|
||||
{ prop: 'json_data', label: 'table.columns.safeguard.dataDetail', useSlot: true, showOverflowTooltip: true }
|
||||
{ prop: 'delete_time', label: 'page.table.deleteTime', width: 180 },
|
||||
{ prop: 'json_data', label: 'page.table.dataDetail', useSlot: true, showOverflowTooltip: true }
|
||||
]
|
||||
}
|
||||
})
|
||||
|
||||
@@ -9,8 +9,8 @@
|
||||
@expand="handleExpand"
|
||||
>
|
||||
<el-col v-bind="setSpan(6)">
|
||||
<el-form-item :label="$t('table.columns.safeguard.tableName')" prop="name">
|
||||
<el-input v-model="formData.name" :placeholder="$t('table.searchBar.placeholderTableName')" clearable />
|
||||
<el-form-item :label="$t('page.search.tableName')" prop="name">
|
||||
<el-input v-model="formData.name" :placeholder="$t('page.search.placeholderTableName')" clearable />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</sa-search-bar>
|
||||
|
||||
@@ -268,10 +268,10 @@
|
||||
...typeSearch.value
|
||||
},
|
||||
columnsFactory: () => [
|
||||
{ prop: 'id', label: 'table.columns.common.select', width: 80, align: 'center', useSlot: true },
|
||||
{ prop: 'name', label: 'table.columns.safeguard.dictName', useHeaderSlot: true, width: 150 },
|
||||
{ prop: 'code', label: 'table.columns.safeguard.dictCode', useHeaderSlot: true, width: 150 },
|
||||
{ prop: 'status', label: 'table.columns.common.status', saiType: 'dict', saiDict: 'data_status', width: 100 }
|
||||
{ prop: 'id', label: 'page.table.select', width: 80, align: 'center', useSlot: true },
|
||||
{ prop: 'name', label: 'page.table.dictName', useHeaderSlot: true, width: 150 },
|
||||
{ prop: 'code', label: 'page.table.dictCode', useHeaderSlot: true, width: 150 },
|
||||
{ prop: 'status', label: 'page.table.status', saiType: 'dict', saiDict: 'data_status', width: 100 }
|
||||
]
|
||||
}
|
||||
})
|
||||
@@ -312,11 +312,11 @@
|
||||
},
|
||||
columnsFactory: () => [
|
||||
{ type: 'selection' },
|
||||
{ prop: 'label', label: 'table.columns.safeguard.dictLabel', useSlot: true },
|
||||
{ prop: 'value', label: 'table.columns.safeguard.dictValue' },
|
||||
{ prop: 'color', label: 'table.columns.safeguard.color' },
|
||||
{ prop: 'sort', label: 'table.columns.common.sort' },
|
||||
{ prop: 'status', label: 'table.columns.common.status', saiType: 'dict', saiDict: 'data_status' },
|
||||
{ prop: 'label', label: 'page.table.dictLabel', useSlot: true },
|
||||
{ prop: 'value', label: 'page.table.dictValue' },
|
||||
{ prop: 'color', label: 'page.table.color' },
|
||||
{ prop: 'sort', label: 'page.table.sort' },
|
||||
{ prop: 'status', label: 'page.table.status', saiType: 'dict', saiDict: 'data_status' },
|
||||
{ prop: 'operation', label: 'table.actions.operation', useSlot: true, width: 120 }
|
||||
]
|
||||
}
|
||||
|
||||
@@ -103,14 +103,14 @@
|
||||
},
|
||||
columnsFactory: () => [
|
||||
{ type: 'selection' },
|
||||
{ prop: 'id', label: 'table.columns.common.no', width: 100, align: 'center' },
|
||||
{ prop: 'gateway', label: 'table.columns.safeguard.gateway' },
|
||||
{ prop: 'from', label: 'table.columns.safeguard.emailFrom', minWidth: 150, showOverflowTooltip: true },
|
||||
{ prop: 'email', label: 'table.columns.safeguard.emailTo', minWidth: 150, showOverflowTooltip: true },
|
||||
{ prop: 'code', label: 'table.columns.safeguard.emailCode' },
|
||||
{ prop: 'status', label: 'table.columns.safeguard.sendStatus', useSlot: true },
|
||||
{ prop: 'response', label: 'table.columns.safeguard.emailResponse', minWidth: 150, showOverflowTooltip: true },
|
||||
{ prop: 'create_time', label: 'table.columns.safeguard.sendTime', width: 180, sortable: true },
|
||||
{ prop: 'id', label: 'page.table.no', width: 100, align: 'center' },
|
||||
{ prop: 'gateway', label: 'page.table.gateway' },
|
||||
{ prop: 'from', label: 'page.table.emailFrom', minWidth: 150, showOverflowTooltip: true },
|
||||
{ prop: 'email', label: 'page.table.emailTo', minWidth: 150, showOverflowTooltip: true },
|
||||
{ prop: 'code', label: 'page.table.emailCode' },
|
||||
{ prop: 'status', label: 'page.table.sendStatus', useSlot: true },
|
||||
{ prop: 'response', label: 'page.table.emailResponse', minWidth: 150, showOverflowTooltip: true },
|
||||
{ prop: 'create_time', label: 'page.table.sendTime', width: 180, sortable: true },
|
||||
{ prop: 'operation', label: 'table.actions.operation', width: 80, fixed: 'right', useSlot: true }
|
||||
]
|
||||
}
|
||||
|
||||
@@ -9,25 +9,25 @@
|
||||
@expand="handleExpand"
|
||||
>
|
||||
<el-col v-bind="setSpan(6)">
|
||||
<el-form-item :label="$t('table.searchBar.labelFrom')" prop="from">
|
||||
<el-input v-model="formData.from" :placeholder="$t('table.searchBar.placeholderFrom')" clearable />
|
||||
<el-form-item :label="$t('page.search.labelFrom')" prop="from">
|
||||
<el-input v-model="formData.from" :placeholder="$t('page.search.placeholderFrom')" clearable />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col v-bind="setSpan(6)">
|
||||
<el-form-item :label="$t('table.searchBar.labelTo')" prop="email">
|
||||
<el-input v-model="formData.email" :placeholder="$t('table.searchBar.placeholderTo')" clearable />
|
||||
<el-form-item :label="$t('page.search.labelTo')" prop="email">
|
||||
<el-input v-model="formData.email" :placeholder="$t('page.search.placeholderTo')" clearable />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col v-bind="setSpan(6)">
|
||||
<el-form-item :label="$t('table.searchBar.placeholderSendStatus')" prop="status">
|
||||
<el-select v-model="formData.status" :placeholder="$t('table.searchBar.placeholderSendStatus')" clearable>
|
||||
<el-form-item :label="$t('page.search.placeholderSendStatus')" prop="status">
|
||||
<el-select v-model="formData.status" :placeholder="$t('page.search.placeholderSendStatus')" clearable>
|
||||
<el-option :label="$t('table.searchBar.success')" value="success" />
|
||||
<el-option :label="$t('table.searchBar.failure')" value="failure" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col v-bind="setSpan(12)" v-show="isExpanded">
|
||||
<el-form-item :label="$t('table.columns.safeguard.operTime')" prop="create_time">
|
||||
<el-form-item :label="$t('page.search.operTime')" prop="create_time">
|
||||
<el-date-picker
|
||||
v-model="formData.create_time"
|
||||
type="datetimerange"
|
||||
|
||||
@@ -103,15 +103,15 @@
|
||||
},
|
||||
columnsFactory: () => [
|
||||
{ type: 'selection' },
|
||||
{ prop: 'id', label: 'table.columns.common.no', width: 100, align: 'center' },
|
||||
{ prop: 'username', label: 'table.columns.safeguard.loginUser' },
|
||||
{ prop: 'status', label: 'table.columns.safeguard.loginStatus', useSlot: true },
|
||||
{ prop: 'ip', label: 'table.columns.safeguard.loginIp' },
|
||||
{ prop: 'ip_location', label: 'table.columns.safeguard.operLocation' },
|
||||
{ prop: 'os', label: 'table.columns.safeguard.os' },
|
||||
{ prop: 'browser', label: 'table.columns.safeguard.browser' },
|
||||
{ prop: 'message', label: 'table.columns.safeguard.loginMessage', showOverflowTooltip: true },
|
||||
{ prop: 'login_time', label: 'table.columns.safeguard.loginTime', width: 180, sortable: true },
|
||||
{ prop: 'id', label: 'page.table.no', width: 100, align: 'center' },
|
||||
{ prop: 'username', label: 'page.table.loginUser' },
|
||||
{ prop: 'status', label: 'page.table.loginStatus', useSlot: true },
|
||||
{ prop: 'ip', label: 'page.table.loginIp' },
|
||||
{ prop: 'ip_location', label: 'page.table.operLocation' },
|
||||
{ prop: 'os', label: 'page.table.os' },
|
||||
{ prop: 'browser', label: 'page.table.browser' },
|
||||
{ prop: 'message', label: 'page.table.loginMessage', showOverflowTooltip: true },
|
||||
{ prop: 'login_time', label: 'page.table.loginTime', width: 180, sortable: true },
|
||||
{ prop: 'operation', label: 'table.actions.operation', width: 80, fixed: 'right', useSlot: true }
|
||||
]
|
||||
}
|
||||
|
||||
@@ -9,25 +9,25 @@
|
||||
@expand="handleExpand"
|
||||
>
|
||||
<el-col v-bind="setSpan(6)">
|
||||
<el-form-item :label="$t('table.columns.safeguard.loginUser')" prop="username">
|
||||
<el-input v-model="formData.username" :placeholder="$t('table.searchBar.placeholderLoginUser')" clearable />
|
||||
<el-form-item :label="$t('page.search.loginUser')" prop="username">
|
||||
<el-input v-model="formData.username" :placeholder="$t('page.search.placeholderLoginUser')" clearable />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col v-bind="setSpan(6)">
|
||||
<el-form-item :label="$t('table.columns.safeguard.loginIp')" prop="ip">
|
||||
<el-input v-model="formData.ip" :placeholder="$t('table.searchBar.placeholderLoginIp')" clearable />
|
||||
<el-form-item :label="$t('page.search.loginIp')" prop="ip">
|
||||
<el-input v-model="formData.ip" :placeholder="$t('page.search.placeholderLoginIp')" clearable />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col v-bind="setSpan(6)">
|
||||
<el-form-item :label="$t('table.columns.safeguard.loginStatus')" prop="status">
|
||||
<el-select v-model="formData.status" :placeholder="$t('table.searchBar.placeholderLoginStatus')" clearable>
|
||||
<el-form-item :label="$t('page.search.loginStatus')" prop="status">
|
||||
<el-select v-model="formData.status" :placeholder="$t('page.search.placeholderLoginStatus')" clearable>
|
||||
<el-option :label="$t('table.searchBar.success')" value="1" />
|
||||
<el-option :label="$t('table.searchBar.failure')" value="0" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col v-bind="setSpan(12)" v-show="isExpanded">
|
||||
<el-form-item :label="$t('table.columns.safeguard.operTime')" prop="login_time">
|
||||
<el-form-item :label="$t('page.search.operTime')" prop="login_time">
|
||||
<el-date-picker
|
||||
v-model="formData.login_time"
|
||||
type="datetimerange"
|
||||
|
||||
@@ -102,13 +102,13 @@
|
||||
},
|
||||
columnsFactory: () => [
|
||||
{ type: 'selection' },
|
||||
{ prop: 'id', label: 'table.columns.common.no', width: 100, align: 'center' },
|
||||
{ prop: 'username', label: 'table.columns.safeguard.operator' },
|
||||
{ prop: 'service_name', label: 'table.columns.safeguard.serviceName' },
|
||||
{ prop: 'router', label: 'table.columns.safeguard.router', minWidth: 180, showOverflowTooltip: true },
|
||||
{ prop: 'ip', label: 'table.columns.safeguard.operIp' },
|
||||
{ prop: 'ip_location', label: 'table.columns.safeguard.operLocation' },
|
||||
{ prop: 'create_time', label: 'table.columns.safeguard.operTime', width: 180, sortable: true },
|
||||
{ prop: 'id', label: 'page.table.no', width: 100, align: 'center' },
|
||||
{ prop: 'username', label: 'page.table.operator' },
|
||||
{ prop: 'service_name', label: 'page.table.serviceName' },
|
||||
{ prop: 'router', label: 'page.table.router', minWidth: 180, showOverflowTooltip: true },
|
||||
{ prop: 'ip', label: 'page.table.operIp' },
|
||||
{ prop: 'ip_location', label: 'page.table.operLocation' },
|
||||
{ prop: 'create_time', label: 'page.table.operTime', width: 180, sortable: true },
|
||||
{ prop: 'operation', label: 'table.actions.operation', width: 100, fixed: 'right', useSlot: true }
|
||||
]
|
||||
}
|
||||
|
||||
@@ -9,22 +9,22 @@
|
||||
@expand="handleExpand"
|
||||
>
|
||||
<el-col v-bind="setSpan(6)">
|
||||
<el-form-item :label="$t('table.columns.safeguard.operator')" prop="username">
|
||||
<el-input v-model="formData.username" :placeholder="$t('table.searchBar.placeholderOperator')" clearable />
|
||||
<el-form-item :label="$t('page.search.operator')" prop="username">
|
||||
<el-input v-model="formData.username" :placeholder="$t('page.search.placeholderOperator')" clearable />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col v-bind="setSpan(6)">
|
||||
<el-form-item :label="$t('table.columns.safeguard.router')" prop="router">
|
||||
<el-input v-model="formData.router" :placeholder="$t('table.searchBar.placeholderOperRouter')" clearable />
|
||||
<el-form-item :label="$t('page.search.router')" prop="router">
|
||||
<el-input v-model="formData.router" :placeholder="$t('page.search.placeholderOperRouter')" clearable />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col v-bind="setSpan(6)">
|
||||
<el-form-item :label="$t('table.columns.safeguard.operIp')" prop="ip">
|
||||
<el-input v-model="formData.ip" :placeholder="$t('table.searchBar.placeholderOperIp')" clearable />
|
||||
<el-form-item :label="$t('page.search.operIp')" prop="ip">
|
||||
<el-input v-model="formData.ip" :placeholder="$t('page.search.placeholderOperIp')" clearable />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col v-bind="setSpan(12)" v-show="isExpanded">
|
||||
<el-form-item :label="$t('table.columns.safeguard.operTime')" prop="create_time">
|
||||
<el-form-item :label="$t('page.search.operTime')" prop="create_time">
|
||||
<el-date-picker
|
||||
v-model="formData.create_time"
|
||||
type="datetimerange"
|
||||
|
||||
@@ -300,9 +300,9 @@
|
||||
...configSearch.value
|
||||
},
|
||||
columnsFactory: () => [
|
||||
{ prop: 'id', label: 'table.columns.common.select', width: 80, align: 'center', useSlot: true },
|
||||
{ prop: 'name', label: 'table.columns.system.configName', useHeaderSlot: true, width: 150 },
|
||||
{ prop: 'code', label: 'table.columns.system.configKey', useHeaderSlot: true, width: 150 }
|
||||
{ prop: 'id', label: 'page.table.select', width: 80, align: 'center', useSlot: true },
|
||||
{ prop: 'name', label: 'page.table.configName', useHeaderSlot: true, width: 150 },
|
||||
{ prop: 'code', label: 'page.table.configKey', useHeaderSlot: true, width: 150 }
|
||||
]
|
||||
}
|
||||
})
|
||||
|
||||
@@ -106,13 +106,13 @@
|
||||
core: {
|
||||
apiFn: api.list,
|
||||
columnsFactory: () => [
|
||||
{ prop: 'name', label: 'table.columns.system.deptName', minWidth: 200 },
|
||||
{ prop: 'code', label: 'table.columns.system.deptCode', minWidth: 120 },
|
||||
{ prop: 'leader.username', label: 'table.columns.system.leader', minWidth: 120 },
|
||||
{ prop: 'name', label: 'page.table.deptName', minWidth: 200 },
|
||||
{ prop: 'code', label: 'page.table.deptCode', minWidth: 120 },
|
||||
{ prop: 'leader.username', label: 'page.table.leader', minWidth: 120 },
|
||||
{ prop: 'remark', label: 'table.columns.common.description', minWidth: 150, showOverflowTooltip: true },
|
||||
{ prop: 'sort', label: 'table.columns.common.sort', width: 100 },
|
||||
{ prop: 'status', label: 'table.columns.common.status', saiType: 'dict', saiDict: 'data_status', width: 100 },
|
||||
{ prop: 'create_time', label: 'table.columns.system.createDate', width: 180, sortable: true },
|
||||
{ prop: 'sort', label: 'page.table.sort', width: 100 },
|
||||
{ prop: 'status', label: 'page.table.status', saiType: 'dict', saiDict: 'data_status', width: 100 },
|
||||
{ prop: 'create_time', label: 'page.table.createTime', width: 180, sortable: true },
|
||||
{ prop: 'operation', label: 'table.actions.operation', width: 100, fixed: 'right', useSlot: true }
|
||||
]
|
||||
}
|
||||
|
||||
@@ -9,18 +9,18 @@
|
||||
@expand="handleExpand"
|
||||
>
|
||||
<el-col v-bind="setSpan(6)">
|
||||
<el-form-item :label="$t('table.columns.system.deptName')" prop="name">
|
||||
<el-input v-model="formData.name" :placeholder="$t('table.searchBar.placeholderDeptName')" clearable />
|
||||
<el-form-item :label="$t('page.search.deptName')" prop="name">
|
||||
<el-input v-model="formData.name" :placeholder="$t('page.search.placeholderDeptName')" clearable />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col v-bind="setSpan(6)">
|
||||
<el-form-item :label="$t('table.columns.system.deptCode')" prop="code">
|
||||
<el-input v-model="formData.code" :placeholder="$t('table.searchBar.placeholderDeptCode')" clearable />
|
||||
<el-form-item :label="$t('page.search.deptCode')" prop="code">
|
||||
<el-input v-model="formData.code" :placeholder="$t('page.search.placeholderDeptCode')" clearable />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col v-bind="setSpan(6)">
|
||||
<el-form-item :label="$t('table.columns.common.status')" prop="status">
|
||||
<sa-select v-model="formData.status" dict="data_status" :placeholder="$t('table.searchBar.searchSelectPlaceholder')" clearable />
|
||||
<el-form-item :label="$t('page.search.status')" prop="status">
|
||||
<sa-select v-model="formData.status" dict="data_status" :placeholder="$t('page.search.searchSelectPlaceholder')" clearable />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</sa-search-bar>
|
||||
|
||||
@@ -129,10 +129,10 @@
|
||||
apiFn: api.list,
|
||||
columnsFactory: () => [
|
||||
{ type: 'selection' },
|
||||
{ prop: 'name', label: 'table.columns.system.menuName', minWidth: 150 },
|
||||
{ prop: 'name', label: 'page.table.menuName', minWidth: 150 },
|
||||
{
|
||||
prop: 'type',
|
||||
label: 'table.columns.system.menuType',
|
||||
label: 'page.table.menuType',
|
||||
align: 'center',
|
||||
saiType: 'dict',
|
||||
saiDict: 'menu_type',
|
||||
@@ -140,17 +140,17 @@
|
||||
},
|
||||
{
|
||||
prop: 'icon',
|
||||
label: 'table.columns.system.icon',
|
||||
label: 'page.table.icon',
|
||||
align: 'center',
|
||||
width: 80,
|
||||
formatter: (row: any) => {
|
||||
return h(ArtSvgIcon, { icon: row.icon })
|
||||
}
|
||||
},
|
||||
{ prop: 'code', label: 'table.columns.system.component' },
|
||||
{ prop: 'code', label: 'page.table.component' },
|
||||
{
|
||||
prop: 'path',
|
||||
label: 'table.columns.system.route',
|
||||
label: 'page.table.route',
|
||||
formatter: (row: any) => {
|
||||
if (row.type === 3) return ''
|
||||
return row.path || ''
|
||||
@@ -158,7 +158,7 @@
|
||||
},
|
||||
{
|
||||
prop: 'slug',
|
||||
label: 'table.columns.system.auth',
|
||||
label: 'page.table.auth',
|
||||
minWidth: 160,
|
||||
formatter: (row: any) => {
|
||||
if (row.type === 2) {
|
||||
@@ -170,8 +170,8 @@
|
||||
return ''
|
||||
}
|
||||
},
|
||||
{ prop: 'sort', label: 'table.columns.common.sort', width: 100 },
|
||||
{ prop: 'status', label: 'table.columns.common.status', saiType: 'dict', saiDict: 'data_status', width: 100 },
|
||||
{ prop: 'sort', label: 'page.table.sort', width: 100 },
|
||||
{ prop: 'status', label: 'page.table.status', saiType: 'dict', saiDict: 'data_status', width: 100 },
|
||||
{ prop: 'operation', label: 'table.actions.operation', width: 140, fixed: 'right', useSlot: true }
|
||||
]
|
||||
}
|
||||
|
||||
@@ -9,18 +9,18 @@
|
||||
@expand="handleExpand"
|
||||
>
|
||||
<el-col v-bind="setSpan(6)">
|
||||
<el-form-item :label="$t('table.columns.system.menuName')" prop="name">
|
||||
<el-input v-model="formData.name" :placeholder="$t('table.searchBar.placeholderMenuName')" clearable />
|
||||
<el-form-item :label="$t('page.search.menuName')" prop="name">
|
||||
<el-input v-model="formData.name" :placeholder="$t('page.search.placeholderMenuName')" clearable />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col v-bind="setSpan(6)">
|
||||
<el-form-item :label="$t('table.columns.system.route')" prop="path">
|
||||
<el-input v-model="formData.path" :placeholder="$t('table.searchBar.placeholderMenuRoute')" clearable />
|
||||
<el-form-item :label="$t('page.search.route')" prop="path">
|
||||
<el-input v-model="formData.path" :placeholder="$t('page.search.placeholderMenuRoute')" clearable />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col v-bind="setSpan(6)">
|
||||
<el-form-item :label="$t('table.columns.common.status')" prop="status">
|
||||
<sa-select v-model="formData.status" dict="data_status" :placeholder="$t('table.searchBar.searchSelectPlaceholder')" clearable />
|
||||
<el-form-item :label="$t('page.search.status')" prop="status">
|
||||
<sa-select v-model="formData.status" dict="data_status" :placeholder="$t('page.search.searchSelectPlaceholder')" clearable />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</sa-search-bar>
|
||||
|
||||
@@ -117,12 +117,12 @@
|
||||
columnsFactory: () => [
|
||||
{ type: 'selection' },
|
||||
{ prop: 'id', label: 'table.columns.common.no', width: 100, align: 'center' },
|
||||
{ prop: 'name', label: 'table.columns.system.postName', minWidth: 120 },
|
||||
{ prop: 'code', label: 'table.columns.system.postCode', minWidth: 120 },
|
||||
{ prop: 'name', label: 'page.table.postName', minWidth: 120 },
|
||||
{ prop: 'code', label: 'page.table.postCode', minWidth: 120 },
|
||||
{ prop: 'remark', label: 'table.columns.common.description', minWidth: 150, showOverflowTooltip: true },
|
||||
{ prop: 'sort', label: 'table.columns.common.sort', width: 100 },
|
||||
{ prop: 'status', label: 'table.columns.common.status', saiType: 'dict', saiDict: 'data_status', width: 100 },
|
||||
{ prop: 'create_time', label: 'table.columns.system.createDate', width: 180, sortable: true },
|
||||
{ prop: 'sort', label: 'page.table.sort', width: 100 },
|
||||
{ prop: 'status', label: 'page.table.status', saiType: 'dict', saiDict: 'data_status', width: 100 },
|
||||
{ prop: 'create_time', label: 'page.table.createTime', width: 180, sortable: true },
|
||||
{ prop: 'operation', label: 'table.actions.operation', width: 100, fixed: 'right', useSlot: true }
|
||||
]
|
||||
}
|
||||
|
||||
@@ -9,18 +9,18 @@
|
||||
@expand="handleExpand"
|
||||
>
|
||||
<el-col v-bind="setSpan(6)">
|
||||
<el-form-item :label="$t('table.columns.system.postName')" prop="name">
|
||||
<el-input v-model="formData.name" :placeholder="$t('table.searchBar.placeholderPostName')" clearable />
|
||||
<el-form-item :label="$t('page.search.postName')" prop="name">
|
||||
<el-input v-model="formData.name" :placeholder="$t('page.search.placeholderPostName')" clearable />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col v-bind="setSpan(6)">
|
||||
<el-form-item :label="$t('table.columns.system.postCode')" prop="code">
|
||||
<el-input v-model="formData.code" :placeholder="$t('table.searchBar.placeholderPostCode')" clearable />
|
||||
<el-form-item :label="$t('page.search.postCode')" prop="code">
|
||||
<el-input v-model="formData.code" :placeholder="$t('page.search.placeholderPostCode')" clearable />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col v-bind="setSpan(6)">
|
||||
<el-form-item :label="$t('table.columns.common.status')" prop="status">
|
||||
<sa-select v-model="formData.status" dict="data_status" :placeholder="$t('table.searchBar.searchSelectPlaceholder')" clearable />
|
||||
<el-form-item :label="$t('page.search.status')" prop="status">
|
||||
<sa-select v-model="formData.status" dict="data_status" :placeholder="$t('page.search.searchSelectPlaceholder')" clearable />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</sa-search-bar>
|
||||
|
||||
@@ -127,13 +127,13 @@
|
||||
apiFn: api.list,
|
||||
columnsFactory: () => [
|
||||
{ prop: 'id', label: 'table.columns.common.no', minWidth: 60, align: 'center' },
|
||||
{ prop: 'name', label: 'table.columns.system.roleName', minWidth: 120 },
|
||||
{ prop: 'code', label: 'table.columns.system.roleCode', minWidth: 120 },
|
||||
{ prop: 'level', label: 'table.columns.system.level', minWidth: 100, sortable: true },
|
||||
{ prop: 'remark', label: 'table.columns.system.roleRemark', minWidth: 150, showOverflowTooltip: true },
|
||||
{ prop: 'name', label: 'page.table.roleName', minWidth: 120 },
|
||||
{ prop: 'code', label: 'page.table.roleCode', minWidth: 120 },
|
||||
{ prop: 'level', label: 'page.table.level', minWidth: 100, sortable: true },
|
||||
{ prop: 'remark', label: 'page.table.roleRemark', minWidth: 150, showOverflowTooltip: true },
|
||||
{ prop: 'sort', label: 'table.columns.common.sort', minWidth: 100 },
|
||||
{ prop: 'status', label: 'table.columns.common.status', saiType: 'dict', saiDict: 'data_status' },
|
||||
{ prop: 'create_time', label: 'table.columns.system.createDate', width: 180, sortable: true },
|
||||
{ prop: 'status', label: 'page.table.status', saiType: 'dict', saiDict: 'data_status' },
|
||||
{ prop: 'create_time', label: 'page.table.createTime', width: 180, sortable: true },
|
||||
{ prop: 'operation', label: 'table.actions.operation', width: 140, fixed: 'right', useSlot: true }
|
||||
]
|
||||
}
|
||||
|
||||
@@ -9,18 +9,18 @@
|
||||
@expand="handleExpand"
|
||||
>
|
||||
<el-col v-bind="setSpan(6)">
|
||||
<el-form-item :label="$t('table.columns.system.roleName')" prop="name">
|
||||
<el-input v-model="formData.name" :placeholder="$t('table.searchBar.placeholderRoleName')" clearable />
|
||||
<el-form-item :label="$t('page.search.roleName')" prop="name">
|
||||
<el-input v-model="formData.name" :placeholder="$t('page.search.placeholderRoleName')" clearable />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col v-bind="setSpan(6)">
|
||||
<el-form-item :label="$t('table.columns.system.roleCode')" prop="code">
|
||||
<el-input v-model="formData.code" :placeholder="$t('table.searchBar.placeholderRoleCode')" clearable />
|
||||
<el-form-item :label="$t('page.search.roleCode')" prop="code">
|
||||
<el-input v-model="formData.code" :placeholder="$t('page.search.placeholderRoleCode')" clearable />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col v-bind="setSpan(6)">
|
||||
<el-form-item :label="$t('table.columns.common.status')" prop="status">
|
||||
<sa-select v-model="formData.status" dict="data_status" :placeholder="$t('table.searchBar.searchSelectPlaceholder')" clearable />
|
||||
<el-form-item :label="$t('page.search.status')" prop="status">
|
||||
<sa-select v-model="formData.status" dict="data_status" :placeholder="$t('page.search.searchSelectPlaceholder')" clearable />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</sa-search-bar>
|
||||
|
||||
@@ -183,24 +183,24 @@
|
||||
{ type: 'index', width: 60, label: 'table.column.index' },
|
||||
{
|
||||
prop: 'avatar',
|
||||
label: 'table.columns.system.username',
|
||||
label: 'page.table.username',
|
||||
minWidth: 200,
|
||||
saiType: 'imageAndText',
|
||||
saiFirst: 'username',
|
||||
saiSecond: 'email'
|
||||
},
|
||||
{ prop: 'phone', label: 'table.columns.system.phone', width: 120 },
|
||||
{ prop: 'phone', label: 'page.table.phone', width: 120 },
|
||||
{
|
||||
prop: 'dept_id',
|
||||
label: 'table.columns.system.dept',
|
||||
label: 'page.table.dept',
|
||||
minWidth: 150,
|
||||
sortable: true,
|
||||
formatter: (row: any) => row.depts?.name ?? ''
|
||||
},
|
||||
{ prop: 'status', label: 'table.columns.common.status', width: 80, saiType: 'dict', saiDict: 'data_status' },
|
||||
{ prop: 'agent_id', label: 'table.columns.system.agentId', width: 120, showOverflowTooltip: true },
|
||||
{ prop: 'dashboard', label: 'table.columns.system.dashboard', width: 100, saiType: 'dict', saiDict: 'dashboard' },
|
||||
{ prop: 'login_time', label: 'table.columns.system.loginTime', width: 170, sortable: true },
|
||||
{ prop: 'status', label: 'page.table.status', width: 80, saiType: 'dict', saiDict: 'data_status' },
|
||||
{ prop: 'agent_id', label: 'page.table.agentId', width: 120, showOverflowTooltip: true },
|
||||
{ prop: 'dashboard', label: 'page.table.dashboard', width: 100, saiType: 'dict', saiDict: 'dashboard' },
|
||||
{ prop: 'login_time', label: 'page.table.loginTime', width: 170, sortable: true },
|
||||
{
|
||||
prop: 'operation',
|
||||
label: 'table.actions.operation',
|
||||
|
||||
@@ -9,18 +9,18 @@
|
||||
@expand="handleExpand"
|
||||
>
|
||||
<el-col v-bind="setSpan(6)">
|
||||
<el-form-item :label="$t('table.columns.system.username')" prop="username">
|
||||
<el-input v-model="formData.username" :placeholder="$t('table.searchBar.placeholderUsername')" clearable />
|
||||
<el-form-item :label="$t('page.search.username')" prop="username">
|
||||
<el-input v-model="formData.username" :placeholder="$t('page.search.placeholderUsername')" clearable />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col v-bind="setSpan(6)">
|
||||
<el-form-item :label="$t('table.columns.system.phone')" prop="phone">
|
||||
<el-input v-model="formData.phone" :placeholder="$t('table.searchBar.placeholderPhone')" clearable />
|
||||
<el-form-item :label="$t('page.search.phone')" prop="phone">
|
||||
<el-input v-model="formData.phone" :placeholder="$t('page.search.placeholderPhone')" clearable />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col v-bind="setSpan(6)">
|
||||
<el-form-item :label="$t('table.columns.common.status')" prop="status">
|
||||
<sa-select v-model="formData.status" dict="data_status" :placeholder="$t('table.searchBar.searchSelectPlaceholder')" clearable />
|
||||
<el-form-item :label="$t('page.search.status')" prop="status">
|
||||
<sa-select v-model="formData.status" dict="data_status" :placeholder="$t('page.search.searchSelectPlaceholder')" clearable />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</sa-search-bar>
|
||||
|
||||
@@ -217,11 +217,11 @@
|
||||
},
|
||||
columnsFactory: () => [
|
||||
{ type: 'selection' },
|
||||
{ prop: 'name', label: 'table.columns.safeguard.tableName' },
|
||||
{ prop: 'comment', label: 'table.columns.safeguard.tableComment' },
|
||||
{ prop: 'engine', label: 'table.columns.safeguard.engine' },
|
||||
{ prop: 'collation', label: 'table.columns.safeguard.collation' },
|
||||
{ prop: 'create_time', label: 'table.columns.common.createTime' }
|
||||
{ prop: 'name', label: 'page.table.tableName' },
|
||||
{ prop: 'comment', label: 'page.table.tableComment' },
|
||||
{ prop: 'engine', label: 'page.table.engine' },
|
||||
{ prop: 'collation', label: 'page.table.collation' },
|
||||
{ prop: 'create_time', label: 'page.table.createTime' }
|
||||
]
|
||||
}
|
||||
})
|
||||
|
||||
@@ -195,13 +195,13 @@
|
||||
},
|
||||
columnsFactory: () => [
|
||||
{ type: 'selection', width: 50 },
|
||||
{ prop: 'table_name', label: 'table.columns.safeguard.tableName', minWidth: 180, align: 'left' },
|
||||
{ prop: 'table_comment', label: 'table.columns.tool.tableDesc', minWidth: 150, align: 'left' },
|
||||
{ prop: 'template', label: 'table.columns.tool.template', minWidth: 120 },
|
||||
{ prop: 'namespace', label: 'table.columns.tool.namespace', minWidth: 120 },
|
||||
{ prop: 'stub', label: 'table.columns.tool.stub', minWidth: 120 },
|
||||
{ prop: 'tpl_category', label: 'table.columns.tool.tplCategory', minWidth: 120, useSlot: true },
|
||||
{ prop: 'update_time', label: 'table.columns.common.updateTime', width: 180, sortable: true },
|
||||
{ prop: 'table_name', label: 'page.table.tableName', minWidth: 180, align: 'left' },
|
||||
{ prop: 'table_comment', label: 'page.table.tableDesc', minWidth: 150, align: 'left' },
|
||||
{ prop: 'template', label: 'page.table.template', minWidth: 120 },
|
||||
{ prop: 'namespace', label: 'page.table.namespace', minWidth: 120 },
|
||||
{ prop: 'stub', label: 'page.table.stub', minWidth: 120 },
|
||||
{ prop: 'tpl_category', label: 'page.table.tplCategory', minWidth: 120, useSlot: true },
|
||||
{ prop: 'update_time', label: 'page.table.updateTime', width: 180, sortable: true },
|
||||
{ prop: 'operation', label: 'table.actions.operation', width: 220, fixed: 'right', useSlot: true }
|
||||
]
|
||||
}
|
||||
|
||||
@@ -8,13 +8,13 @@
|
||||
@search="handleSearch"
|
||||
>
|
||||
<el-col v-bind="setSpan(6)">
|
||||
<el-form-item :label="$t('table.columns.safeguard.tableName')" prop="table_name">
|
||||
<el-input v-model="formData.table_name" :placeholder="$t('table.searchBar.placeholderTableName')" clearable />
|
||||
<el-form-item :label="$t('page.search.tableName')" prop="table_name">
|
||||
<el-input v-model="formData.table_name" :placeholder="$t('page.search.placeholderTableName')" clearable />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col v-bind="setSpan(6)">
|
||||
<el-form-item :label="$t('table.searchBar.placeholderDataSource')" prop="source">
|
||||
<el-input v-model="formData.source" :placeholder="$t('table.searchBar.placeholderDataSource')" clearable />
|
||||
<el-form-item :label="$t('page.search.placeholderDataSource')" prop="source">
|
||||
<el-input v-model="formData.source" :placeholder="$t('page.search.placeholderDataSource')" clearable />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</sa-search-bar>
|
||||
|
||||
@@ -115,19 +115,19 @@
|
||||
core: {
|
||||
apiFn: api.list,
|
||||
columnsFactory: () => [
|
||||
{ prop: 'id', label: 'table.columns.common.no', width: 100, align: 'center' },
|
||||
{ prop: 'name', label: 'table.columns.tool.taskName', minWidth: 120 },
|
||||
{ prop: 'id', label: 'page.table.no', width: 100, align: 'center' },
|
||||
{ prop: 'name', label: 'page.table.taskName', minWidth: 120 },
|
||||
{
|
||||
prop: 'type',
|
||||
label: 'table.columns.tool.taskType',
|
||||
label: 'page.table.taskType',
|
||||
saiType: 'dict',
|
||||
saiDict: 'crontab_task_type',
|
||||
minWidth: 120
|
||||
},
|
||||
{ prop: 'rule', label: 'table.columns.tool.rule', minWidth: 140 },
|
||||
{ prop: 'target', label: 'table.columns.safeguard.target', minWidth: 200, showOverflowTooltip: true },
|
||||
{ prop: 'status', label: 'table.columns.common.status', saiType: 'dict', saiDict: 'data_status', width: 100 },
|
||||
{ prop: 'update_time', label: 'table.columns.tool.updateDate', width: 180, sortable: true },
|
||||
{ prop: 'rule', label: 'page.table.rule', minWidth: 140 },
|
||||
{ prop: 'target', label: 'page.table.target', minWidth: 200, showOverflowTooltip: true },
|
||||
{ prop: 'status', label: 'page.table.status', saiType: 'dict', saiDict: 'data_status', width: 100 },
|
||||
{ prop: 'update_time', label: 'page.table.updateDate', width: 180, sortable: true },
|
||||
{ prop: 'operation', label: 'table.actions.operation', width: 180, fixed: 'right', useSlot: true }
|
||||
]
|
||||
}
|
||||
|
||||
@@ -212,10 +212,10 @@
|
||||
},
|
||||
columnsFactory: () => [
|
||||
{ type: 'selection' },
|
||||
{ prop: 'create_time', label: 'table.columns.safeguard.executeTime', sortable: true },
|
||||
{ prop: 'target', label: 'table.columns.safeguard.target' },
|
||||
{ prop: 'parameter', label: 'table.columns.safeguard.parameter' },
|
||||
{ prop: 'status', label: 'table.columns.safeguard.executeStatus', useSlot: true, width: 100 }
|
||||
{ prop: 'create_time', label: 'page.table.executeTime', sortable: true },
|
||||
{ prop: 'target', label: 'page.table.target' },
|
||||
{ prop: 'parameter', label: 'page.table.parameter' },
|
||||
{ prop: 'status', label: 'page.table.executeStatus', useSlot: true, width: 100 }
|
||||
]
|
||||
}
|
||||
})
|
||||
|
||||
@@ -9,18 +9,18 @@
|
||||
@expand="handleExpand"
|
||||
>
|
||||
<el-col v-bind="setSpan(6)">
|
||||
<el-form-item :label="$t('table.columns.tool.taskName')" prop="name">
|
||||
<el-input v-model="formData.name" :placeholder="$t('table.searchBar.placeholderTaskName')" clearable />
|
||||
<el-form-item :label="$t('page.search.taskName')" prop="name">
|
||||
<el-input v-model="formData.name" :placeholder="$t('page.search.placeholderTaskName')" clearable />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col v-bind="setSpan(6)">
|
||||
<el-form-item :label="$t('table.columns.tool.taskType')" prop="type">
|
||||
<sa-select v-model="formData.type" dict="crontab_task_type" :placeholder="$t('table.searchBar.searchSelectPlaceholder')" clearable />
|
||||
<el-form-item :label="$t('page.search.taskType')" prop="type">
|
||||
<sa-select v-model="formData.type" dict="crontab_task_type" :placeholder="$t('page.search.searchSelectPlaceholder')" clearable />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col v-bind="setSpan(6)">
|
||||
<el-form-item :label="$t('table.columns.common.status')" prop="status">
|
||||
<sa-select v-model="formData.status" dict="data_status" :placeholder="$t('table.searchBar.searchSelectPlaceholder')" clearable />
|
||||
<el-form-item :label="$t('page.search.status')" prop="status">
|
||||
<sa-select v-model="formData.status" dict="data_status" :placeholder="$t('page.search.searchSelectPlaceholder')" clearable />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</sa-search-bar>
|
||||
|
||||
Reference in New Issue
Block a user