创建中英双语对照

This commit is contained in:
2026-03-17 10:49:13 +08:00
parent 861d5c49b3
commit 4a7397ce04
51 changed files with 906 additions and 443 deletions

View File

@@ -109,15 +109,15 @@
apiFn: api.list,
columnsFactory: () => [
// { type: 'selection' },
{ prop: 'group', label: '分组', minWidth: 140, align: 'center' },
{ prop: 'title', label: '标题', minWidth: 160, align: 'center' },
{ prop: 'title_en', label: '标题(英文)', minWidth: 160, align: 'center' },
{ prop: 'name', label: '配置名称', align: 'center' },
{ prop: 'value', label: '', minWidth: 240, align: 'center' },
{ prop: 'value_en', label: '值(英文)', minWidth: 240, align: 'center' },
{ 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: 'operation',
label: '操作',
label: 'table.actions.operation',
width: 60,
align: 'center',
fixed: 'right',

View File

@@ -9,18 +9,18 @@
@expand="handleExpand"
>
<el-col v-bind="setSpan(6)">
<el-form-item label="分组" prop="group">
<el-input v-model="formData.group" placeholder="请输入分组" clearable />
<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>
</el-col>
<el-col v-bind="setSpan(6)">
<el-form-item label="标题" prop="title">
<el-input v-model="formData.title" placeholder="请输入标题" clearable />
<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>
</el-col>
<el-col v-bind="setSpan(6)">
<el-form-item label="配置名称" prop="name">
<el-input v-model="formData.name" placeholder="请输入配置名称" clearable />
<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>
</el-col>
</sa-search-bar>

View File

@@ -108,47 +108,47 @@
core: {
apiFn: api.list,
columnsFactory: () => [
{ prop: 'name', label: '名称', align: 'center' },
{ prop: 'type', label: '奖池类型', width: 100, align: 'center', formatter: typeFormatter },
{ prop: 'safety_line', label: '安全线', align: 'center' },
{ 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: 't1_weight',
label: 'T1池权重',
label: 'table.columns.dice.t1PoolWeight',
width: 100,
align: 'center',
formatter: weightFormatter('t1_weight')
},
{
prop: 't2_weight',
label: 'T2池权重',
label: 'table.columns.dice.t2PoolWeight',
width: 100,
align: 'center',
formatter: weightFormatter('t2_weight')
},
{
prop: 't3_weight',
label: 'T3池权重',
label: 'table.columns.dice.t3PoolWeight',
width: 100,
align: 'center',
formatter: weightFormatter('t3_weight')
},
{
prop: 't4_weight',
label: 'T4池权重',
label: 'table.columns.dice.t4PoolWeight',
width: 100,
align: 'center',
formatter: weightFormatter('t4_weight')
},
{
prop: 't5_weight',
label: 'T5池权重',
label: 'table.columns.dice.t5PoolWeight',
width: 100,
align: 'center',
formatter: weightFormatter('t5_weight')
},
{
prop: 'operation',
label: '操作',
label: 'table.actions.operation',
width: 60,
align: 'center',
fixed: 'right',

View File

@@ -9,16 +9,16 @@
@expand="handleExpand"
>
<el-col v-bind="setSpan(6)">
<el-form-item label="名称" prop="name">
<el-input v-model="formData.name" placeholder="请输入名称" clearable />
<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>
</el-col>
<el-col v-bind="setSpan(6)">
<el-form-item label="奖池类型" prop="type">
<el-form-item :label="$t('table.columns.dice.poolType')" prop="type">
<el-select
v-model="formData.type"
:options="typeOptions"
placeholder="请选择奖池类型"
:placeholder="$t('table.searchBar.placeholderPoolType')"
clearable
/>
</el-form-item>

View File

@@ -171,36 +171,36 @@
apiFn: api.list,
columnsFactory: () => [
// { type: 'selection' },
{ prop: 'id', label: 'ID', width: 80 },
{ prop: 'id', label: 'table.columns.common.id', width: 80 },
{
prop: 'player_id',
label: '玩家',
label: 'table.columns.dice.player',
formatter: (row: Record<string, any>) => usernameFormatter(row)
},
{
prop: 'lottery_config_id',
label: '彩金池配置',
label: 'table.columns.dice.lotteryPoolConfig',
width: 120,
useSlot: true
},
{ prop: 'lottery_type', label: '抽奖类型', width: 100, useSlot: true },
{ prop: 'is_win', label: '是否中大奖', width: 100, useSlot: true },
{ prop: 'win_coin', label: '赢取平台币', width: 110 },
{ prop: 'super_win_coin', label: '中大奖平台币', width: 120 },
{ prop: 'reward_win_coin', label: '摇色子中奖平台币', width: 140 },
{ prop: 'direction', label: '方向', width: 90, useSlot: true },
{ prop: 'start_index', label: '起始索引', width: 90 },
{ prop: 'target_index', label: '终点索引', width: 90 },
{ prop: 'roll_array', label: '摇取点数', width: 140, useSlot: true },
{ prop: 'roll_number', label: '摇取点数和', width: 110, sortable: 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: '奖励配置',
label: 'table.columns.dice.rewardConfig',
formatter: (row: Record<string, any>) => rewardTierFormatter(row)
},
{ prop: 'create_time', label: '创建时间', width: 170 },
{ prop: 'update_time', label: '修改时间', width: 170 },
{ prop: 'operation', label: '操作', width: 100, fixed: 'right', useSlot: true }
{ prop: 'create_time', label: 'table.columns.common.createTime', width: 170 },
{ prop: 'update_time', label: 'table.columns.common.updateTime', width: 170 },
{ prop: 'operation', label: 'table.actions.operation', width: 100, fixed: 'right', useSlot: true }
]
}
})

View File

@@ -9,53 +9,53 @@
@expand="handleExpand"
>
<el-col v-bind="setSpan(6)">
<el-form-item label="玩家" prop="username">
<el-input v-model="formData.username" placeholder="用户名模糊" clearable />
<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>
</el-col>
<el-col v-bind="setSpan(6)">
<el-form-item label="彩金池配置" prop="lottery_config_name">
<el-input v-model="formData.lottery_config_name" placeholder="名称模糊" clearable />
<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>
</el-col>
<el-col v-bind="setSpan(6)">
<el-form-item label="抽奖类型" prop="lottery_type">
<el-select v-model="formData.lottery_type" placeholder="全部" clearable style="width: 100%">
<el-form-item :label="$t('table.columns.dice.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-select>
</el-form-item>
</el-col>
<el-col v-bind="setSpan(6)">
<el-form-item label="是否中大奖" prop="is_win">
<el-select v-model="formData.is_win" placeholder="全部" clearable style="width: 100%">
<el-form-item :label="$t('table.columns.dice.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-select>
</el-form-item>
</el-col>
<el-col v-bind="setSpan(6)">
<el-form-item label="方向" prop="direction">
<el-select v-model="formData.direction" placeholder="全部" clearable style="width: 100%">
<el-form-item :label="$t('table.columns.dice.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-select>
</el-form-item>
</el-col>
<el-col v-bind="setSpan(6)">
<el-form-item label="赢取平台币" prop="win_coin_min">
<el-form-item :label="$t('table.columns.dice.winCoin')" prop="win_coin_min">
<div class="range-wrap">
<el-input-number
v-model="formData.win_coin_min"
placeholder="最小"
:placeholder="$t('table.searchBar.min')"
:precision="2"
controls-position="right"
class="range-input"
/>
<span class="range-sep"></span>
<span class="range-sep">{{ $t('table.searchBar.rangeSeparator') }}</span>
<el-input-number
v-model="formData.win_coin_max"
placeholder="最大"
:placeholder="$t('table.searchBar.max')"
:precision="2"
controls-position="right"
class="range-input"
@@ -64,21 +64,21 @@
</el-form-item>
</el-col>
<el-col v-bind="setSpan(6)">
<el-form-item label="摇取点数和" prop="roll_number_min">
<el-form-item :label="$t('table.columns.dice.rollNumber')" prop="roll_number_min">
<div class="range-wrap">
<el-input-number
v-model="formData.roll_number_min"
placeholder="最小"
:placeholder="$t('table.searchBar.min')"
:min="5"
:max="30"
:precision="0"
controls-position="right"
class="range-input"
/>
<span class="range-sep"></span>
<span class="range-sep">{{ $t('table.searchBar.rangeSeparator') }}</span>
<el-input-number
v-model="formData.roll_number_max"
placeholder="最大"
:placeholder="$t('table.searchBar.max')"
:min="5"
:max="30"
:precision="0"
@@ -89,13 +89,13 @@
</el-form-item>
</el-col>
<el-col v-bind="setSpan(6)">
<el-form-item label="奖励配置" prop="reward_ui_text">
<el-input v-model="formData.reward_ui_text" placeholder="前端显示文本模糊" clearable />
<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>
</el-col>
<el-col v-bind="setSpan(6)">
<el-form-item label="中奖名(档位)" prop="reward_tier">
<el-select v-model="formData.reward_tier" placeholder="全部" clearable style="width: 100%">
<el-form-item :label="$t('table.columns.dice.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" />
<el-option label="T3" value="T3" />

View File

@@ -205,22 +205,22 @@
apiFn: listApi,
columnsFactory: () => [
{ type: 'selection' },
{ prop: 'id', label: 'ID', width: 80 },
{ prop: 'lottery_config_id', label: '彩金池配置', width: 120, useSlot: true },
{ prop: 'lottery_type', label: '抽奖类型', width: 100, useSlot: true },
{ prop: 'is_win', label: '是否中大奖', width: 100, useSlot: true },
{ prop: 'win_coin', label: '赢取平台币', width: 110 },
{ prop: 'super_win_coin', label: '中大奖平台币', width: 120 },
{ prop: 'reward_win_coin', label: '摇色子中奖平台币', width: 140 },
{ prop: 'direction', label: '方向', width: 90, useSlot: true },
{ prop: 'start_index', label: '起始索引', width: 90 },
{ prop: 'target_index', label: '终点索引', width: 90 },
{ prop: 'roll_array', label: '摇取点数', width: 140, useSlot: true },
{ prop: 'roll_number', label: '摇取点数和', width: 110, sortable: true },
{ prop: 'reward_config_id', label: '奖励档位', width: 100, useSlot: true },
{ prop: 'status', label: '状态', width: 80, useSlot: true },
{ prop: 'create_time', label: '创建时间', width: 170 },
{ prop: 'operation', label: '操作', width: 100, fixed: 'right', useSlot: true }
{ 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: 'operation', label: 'table.actions.operation', width: 100, fixed: 'right', useSlot: true }
]
}
})

View File

@@ -9,43 +9,43 @@
@expand="handleExpand"
>
<el-col v-bind="setSpan(6)">
<el-form-item label="抽奖类型" prop="lottery_type">
<el-select v-model="formData.lottery_type" placeholder="全部" clearable style="width: 100%">
<el-form-item :label="$t('table.columns.dice.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-select>
</el-form-item>
</el-col>
<el-col v-bind="setSpan(6)">
<el-form-item label="方向" prop="direction">
<el-select v-model="formData.direction" placeholder="全部" clearable style="width: 100%">
<el-form-item :label="$t('table.columns.dice.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-select>
</el-form-item>
</el-col>
<el-col v-bind="setSpan(6)">
<el-form-item label="是否中大奖" prop="is_win">
<el-select v-model="formData.is_win" placeholder="全部" clearable style="width: 100%">
<el-form-item :label="$t('table.columns.dice.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-select>
</el-form-item>
</el-col>
<el-col v-bind="setSpan(6)">
<el-form-item label="赢取平台币" prop="win_coin_min">
<el-form-item :label="$t('table.columns.dice.winCoin')" prop="win_coin_min">
<div class="range-wrap">
<el-input-number
v-model="formData.win_coin_min"
placeholder="最小"
:placeholder="$t('table.searchBar.min')"
:precision="2"
controls-position="right"
class="range-input"
/>
<span class="range-sep"></span>
<span class="range-sep">{{ $t('table.searchBar.rangeSeparator') }}</span>
<el-input-number
v-model="formData.win_coin_max"
placeholder="最大"
:placeholder="$t('table.searchBar.max')"
:precision="2"
controls-position="right"
class="range-input"
@@ -54,8 +54,8 @@
</el-form-item>
</el-col>
<el-col v-bind="setSpan(6)">
<el-form-item label="中奖档位" prop="reward_tier">
<el-select v-model="formData.reward_tier" placeholder="全部" clearable style="width: 100%">
<el-form-item :label="$t('table.columns.dice.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" />
<el-option label="T3" value="T3" />
@@ -65,10 +65,10 @@
</el-form-item>
</el-col>
<el-col v-bind="setSpan(6)">
<el-form-item label="点数和" prop="roll_number">
<el-form-item :label="$t('table.columns.dice.rollNumber')" prop="roll_number">
<el-select
v-model="formData.roll_number"
placeholder="全部"
:placeholder="$t('table.searchBar.all')"
clearable
style="width: 100%"
>

View File

@@ -12,7 +12,7 @@
<template #icon>
<ArtSvgIcon icon="ri:add-fill" />
</template>
新增
{{ $t('table.actions.add') }}
</ElButton>
<ElButton
v-permission="'dice:player:index:destroy'"
@@ -23,7 +23,7 @@
<template #icon>
<ArtSvgIcon icon="ri:delete-bin-5-line" />
</template>
删除
{{ $t('table.actions.delete') }}
</ElButton>
</ElSpace>
</template>
@@ -150,73 +150,73 @@
apiFn: api.list,
columnsFactory: () => [
{ type: 'selection' },
{ prop: 'username', label: '用户名', align: 'center' },
{ prop: 'phone', label: '手机号', align: 'center' },
{ prop: 'name', label: '昵称', align: 'center' },
{ 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: 'status',
label: '状态',
label: 'table.columns.common.status',
width: 88,
align: 'center',
useSlot: true
},
{
prop: 'coin',
label: '平台币',
label: 'table.columns.dice.coin',
width: 100,
align: 'center',
useSlot: true
},
{
prop: 'lottery_config_id',
label: '彩金池配置',
label: 'table.columns.dice.lotteryPoolConfig',
width: 120,
align: 'center',
formatter: (row: any) => lotteryConfigNameFormatter(row)
},
{
prop: 't1_weight',
label: 'T1权重',
label: 'table.columns.dice.t1Weight',
width: 80,
align: 'center',
formatter: weightFormatter('t1_weight')
},
{
prop: 't2_weight',
label: 'T2权重',
label: 'table.columns.dice.t2Weight',
width: 100,
align: 'center',
formatter: weightFormatter('t2_weight')
},
{
prop: 't3_weight',
label: 'T3权重',
label: 'table.columns.dice.t3Weight',
width: 100,
align: 'center',
formatter: weightFormatter('t3_weight')
},
{
prop: 't4_weight',
label: 'T4权重',
label: 'table.columns.dice.t4Weight',
width: 100,
align: 'center',
formatter: weightFormatter('t4_weight')
},
{
prop: 't5_weight',
label: 'T5权重',
label: 'table.columns.dice.t5Weight',
width: 100,
align: 'center',
formatter: weightFormatter('t5_weight')
},
{ prop: 'total_ticket_count', label: '总抽奖次数', align: 'center' },
{ prop: 'paid_ticket_count', label: '购买抽奖次数', align: 'center' },
{ prop: 'free_ticket_count', label: '赠送抽奖次数', align: 'center' },
{ prop: 'create_time', label: '创建时间', align: 'center' },
{ prop: 'update_time', label: '更新时间', 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: 'create_time', label: 'table.columns.common.createTime', align: 'center' },
{ prop: 'update_time', label: 'table.columns.common.updateTime', align: 'center' },
{
prop: 'operation',
label: '操作',
label: 'table.actions.operation',
width: 100,
align: 'center',
fixed: 'right',

View File

@@ -9,45 +9,45 @@
@expand="handleExpand"
>
<el-col v-bind="setSpan(6)">
<el-form-item label="用户名" prop="username">
<el-input v-model="formData.username" placeholder="请输入用户名" clearable />
<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>
</el-col>
<el-col v-bind="setSpan(6)">
<el-form-item label="昵称" prop="name">
<el-input v-model="formData.name" placeholder="请输入昵称" clearable />
<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>
</el-col>
<el-col v-bind="setSpan(6)">
<el-form-item label="手机号" prop="phone">
<el-input v-model="formData.phone" placeholder="手机号模糊查询" clearable />
<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>
</el-col>
<el-col v-bind="setSpan(6)">
<el-form-item label="状态" prop="status">
<el-select v-model="formData.status" placeholder="全部" clearable style="width: 100%">
<el-option label="启用" :value="1" />
<el-option label="禁用" :value="0" />
<el-form-item :label="$t('table.columns.common.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" />
</el-select>
</el-form-item>
</el-col>
<el-col v-bind="setSpan(6)">
<el-form-item label="平台币" prop="coin">
<el-form-item :label="$t('table.columns.dice.coin')" prop="coin">
<el-input-number
v-model="formData.coin"
:min="0"
:precision="2"
placeholder="精确搜索"
:placeholder="$t('table.searchBar.exactSearch')"
controls-position="right"
style="width: 100%"
/>
</el-form-item>
</el-col>
<el-col v-bind="setSpan(6)">
<el-form-item label="彩金池配置" prop="lottery_config_id">
<el-form-item :label="$t('table.columns.dice.lotteryPoolConfig')" prop="lottery_config_id">
<el-select
v-model="formData.lottery_config_id"
placeholder="全部"
:placeholder="$t('table.searchBar.all')"
clearable
style="width: 100%"
>

View File

@@ -127,22 +127,22 @@
row?.dicePlayer?.username ?? row?.player_id ?? '-'
return [
// { type: 'selection' },
{ prop: 'id', label: 'ID', width: 80, align: 'center' },
{ prop: 'id', label: 'table.columns.common.id', width: 80, align: 'center' },
{
prop: 'player_id',
label: '玩家用户名',
label: 'table.columns.dice.playerUsername',
align: 'center',
formatter: (row: Record<string, any>) => usernameFormatter(row)
},
{ prop: 'use_coins', label: '消耗硬币', align: 'center' },
{ prop: 'total_ticket_count', label: '总抽奖次数', align: 'center' },
{ prop: 'paid_ticket_count', label: '购买抽奖次数', align: 'center' },
{ prop: 'free_ticket_count', label: '赠送抽奖次数', align: 'center' },
{ prop: 'remark', label: '备注', width: 100, align: 'center', showOverflowTooltip: true },
{ prop: 'create_time', label: '创建时间', width: 170, align: 'center' },
{ 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: 'operation',
label: '操作',
label: 'table.actions.operation',
width: 60,
align: 'center',
fixed: 'right',

View File

@@ -9,24 +9,24 @@
@expand="handleExpand"
>
<el-col v-bind="setSpan(6)">
<el-form-item label="玩家(用户名)" prop="username">
<el-input v-model="formData.username" placeholder="按用户名搜索" clearable />
<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>
</el-col>
<el-col v-bind="setSpan(6)">
<el-form-item label="消耗硬币" prop="use_coins_min">
<el-form-item :label="$t('table.columns.dice.useCoins')" prop="use_coins_min">
<div class="range-wrap">
<el-input-number
v-model="formData.use_coins_min"
placeholder="最小"
:placeholder="$t('table.searchBar.min')"
:min="0"
controls-position="right"
class="range-input"
/>
<span class="range-sep"></span>
<span class="range-sep">{{ $t('table.searchBar.rangeSeparator') }}</span>
<el-input-number
v-model="formData.use_coins_max"
placeholder="最大"
:placeholder="$t('table.searchBar.max')"
:min="0"
controls-position="right"
class="range-input"
@@ -35,19 +35,19 @@
</el-form-item>
</el-col>
<el-col v-bind="setSpan(6)">
<el-form-item label="总抽奖次数" prop="total_ticket_count_min">
<el-form-item :label="$t('table.columns.dice.totalDrawCount')" prop="total_ticket_count_min">
<div class="range-wrap">
<el-input-number
v-model="formData.total_ticket_count_min"
placeholder="最小"
:placeholder="$t('table.searchBar.min')"
:min="0"
controls-position="right"
class="range-input"
/>
<span class="range-sep"></span>
<span class="range-sep">{{ $t('table.searchBar.rangeSeparator') }}</span>
<el-input-number
v-model="formData.total_ticket_count_max"
placeholder="最大"
:placeholder="$t('table.searchBar.max')"
:min="0"
controls-position="right"
class="range-input"
@@ -56,19 +56,19 @@
</el-form-item>
</el-col>
<el-col v-bind="setSpan(6)">
<el-form-item label="购买抽奖次数" prop="paid_ticket_count_min">
<el-form-item :label="$t('table.columns.dice.paidDrawCount')" prop="paid_ticket_count_min">
<div class="range-wrap">
<el-input-number
v-model="formData.paid_ticket_count_min"
placeholder="最小"
:placeholder="$t('table.searchBar.min')"
:min="0"
controls-position="right"
class="range-input"
/>
<span class="range-sep"></span>
<span class="range-sep">{{ $t('table.searchBar.rangeSeparator') }}</span>
<el-input-number
v-model="formData.paid_ticket_count_max"
placeholder="最大"
:placeholder="$t('table.searchBar.max')"
:min="0"
controls-position="right"
class="range-input"
@@ -77,19 +77,19 @@
</el-form-item>
</el-col>
<el-col v-bind="setSpan(6)">
<el-form-item label="赠送抽奖次数" prop="free_ticket_count_min">
<el-form-item :label="$t('table.columns.dice.freeDrawCount')" prop="free_ticket_count_min">
<div class="range-wrap">
<el-input-number
v-model="formData.free_ticket_count_min"
placeholder="最小"
:placeholder="$t('table.searchBar.min')"
:min="0"
controls-position="right"
class="range-input"
/>
<span class="range-sep"></span>
<span class="range-sep">{{ $t('table.searchBar.rangeSeparator') }}</span>
<el-input-number
v-model="formData.free_ticket_count_max"
placeholder="最大"
:placeholder="$t('table.searchBar.max')"
:min="0"
controls-position="right"
class="range-input"
@@ -98,13 +98,13 @@
</el-form-item>
</el-col>
<el-col v-bind="setSpan(8)">
<el-form-item label="创建时间" prop="create_time_min">
<el-form-item :label="$t('table.columns.common.createTime')" prop="create_time_min">
<el-date-picker
v-model="formData.create_time"
type="datetimerange"
range-separator=""
start-placeholder="开始时间"
end-placeholder="结束时间"
:range-separator="$t('table.searchBar.rangeSeparator')"
:start-placeholder="$t('table.searchBar.startTime')"
:end-placeholder="$t('table.searchBar.endTime')"
value-format="YYYY-MM-DD HH:mm:ss"
style="width: 100%"
clearable

View File

@@ -163,18 +163,18 @@
apiFn: api.list,
columnsFactory: () => [
{ type: 'selection', align: 'center' },
{ prop: 'id', label: 'ID', width: 80, align: 'center' },
{ prop: 'id', label: 'table.columns.common.id', width: 80, align: 'center' },
{
prop: 'player_id',
label: '用户',
label: 'table.columns.dice.user',
width: 120,
align: 'center',
formatter: usernameFormatter
},
{ prop: 'coin', label: '平台币变化', width: 110, align: 'center' },
{ prop: 'coin', label: 'table.columns.dice.coinChange', width: 110, align: 'center' },
{
prop: 'type',
label: '类型',
label: 'table.columns.dice.type',
width: 140,
align: 'center',
useSlot: true,
@@ -182,27 +182,27 @@
},
{
prop: 'user_id',
label: '操作人',
label: 'table.columns.dice.operator',
width: 100,
align: 'center',
formatter: operatorFormatter
},
{ prop: 'wallet_before', label: '钱包操作前', width: 110, align: 'center' },
{ prop: 'wallet_after', label: '钱包操作后', width: 110, align: 'center' },
{ 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: 'remark',
label: '备注',
label: 'table.columns.common.remark',
width: 100,
align: 'center',
showOverflowTooltip: true
},
{ prop: 'total_ticket_count', label: '总抽奖次数', align: 'center' },
{ prop: 'paid_ticket_count', label: '购买抽奖次数', align: 'center' },
{ prop: 'free_ticket_count', label: '赠送抽奖次数', align: 'center' },
{ prop: 'create_time', label: '创建时间', width: 170, 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: 'create_time', label: 'table.columns.common.createTime', width: 170, align: 'center' },
{
prop: 'operation',
label: '操作',
label: 'table.actions.operation',
width: 60,
align: 'center',
fixed: 'right',

View File

@@ -9,8 +9,8 @@
@expand="handleExpand"
>
<el-col v-bind="setSpan(5)">
<el-form-item label="类型" prop="type">
<el-select v-model="formData.type" placeholder="全部" clearable style="width: 100%">
<el-form-item :label="$t('table.columns.dice.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" />
@@ -20,24 +20,24 @@
</el-form-item>
</el-col>
<el-col v-bind="setSpan(5)">
<el-form-item label="用户(用户名)" prop="username">
<el-input v-model="formData.username" placeholder="按用户名搜索" clearable />
<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>
</el-col>
<el-col v-bind="setSpan(8)">
<el-form-item label="平台币" prop="coin_min">
<el-form-item :label="$t('table.columns.dice.coin')" prop="coin_min">
<div class="coin-range-wrap">
<el-input-number
v-model="formData.coin_min"
placeholder="最小"
:placeholder="$t('table.searchBar.min')"
:precision="2"
controls-position="right"
class="coin-range-input"
/>
<span class="coin-range-sep"></span>
<span class="coin-range-sep">{{ $t('table.searchBar.rangeSeparator') }}</span>
<el-input-number
v-model="formData.coin_max"
placeholder="最大"
:placeholder="$t('table.searchBar.max')"
:precision="2"
controls-position="right"
class="coin-range-input"
@@ -46,13 +46,13 @@
</el-form-item>
</el-col>
<el-col v-bind="setSpan(8)">
<el-form-item label="创建时间" prop="create_time">
<el-form-item :label="$t('table.columns.common.createTime')" prop="create_time">
<el-date-picker
v-model="formData.create_time"
type="datetimerange"
range-separator=""
start-placeholder="开始时间"
end-placeholder="结束时间"
:range-separator="$t('table.searchBar.rangeSeparator')"
:start-placeholder="$t('table.searchBar.startTime')"
:end-placeholder="$t('table.searchBar.endTime')"
value-format="YYYY-MM-DD HH:mm:ss"
style="width: 100%"
/>

View File

@@ -99,12 +99,12 @@
apiFn: listApi,
apiParams: { direction: 0, limit: 100 },
columnsFactory: () => [
{ prop: 'start_index', label: '起始索引', width: 100, align: 'center' },
{ prop: 'end_index', label: '结束索引(end_index)', width: 110, align: 'center' },
{ prop: 'tier', label: '档位', width: 90, align: 'center', sortable: true },
{ 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: 'grid_number',
label: '色子点数(摇取5-30)',
label: 'table.columns.dice.dicePoints',
width: 120,
align: 'center',
sortable: true,
@@ -112,14 +112,14 @@
},
{
prop: 'ui_text',
label: '显示文本',
label: 'table.columns.dice.displayText',
minWidth: 100,
align: 'center',
showOverflowTooltip: true
},
{ prop: 'real_ev', label: '实际中奖金额', width: 110, align: 'center' },
{ prop: 'remark', label: '备注', minWidth: 80, align: 'center', showOverflowTooltip: true },
{ prop: 'weight', label: '权重(1-10000)', width: 110, align: 'center' }
{ 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' }
]
}
})

View File

@@ -8,8 +8,8 @@
@search="handleSearch"
>
<el-col v-bind="setSpan(8)">
<el-form-item label="档位" prop="tier">
<el-select v-model="formData.tier" placeholder="全部" clearable style="width: 100%">
<el-form-item :label="$t('table.columns.dice.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" />
<el-option label="T3" value="T3" />

View File

@@ -9,18 +9,18 @@
@expand="handleExpand"
>
<el-col v-bind="setSpan(6)">
<el-form-item label="色子点数" prop="grid_number_min">
<el-form-item :label="$t('table.columns.dice.dicePoints')" prop="grid_number_min">
<div class="range-wrap">
<el-input-number
v-model="formData.grid_number_min"
placeholder="最小"
:placeholder="$t('table.searchBar.min')"
controls-position="right"
class="range-input"
/>
<span class="range-sep"></span>
<span class="range-sep">{{ $t('table.searchBar.rangeSeparator') }}</span>
<el-input-number
v-model="formData.grid_number_max"
placeholder="最大"
:placeholder="$t('table.searchBar.max')"
controls-position="right"
class="range-input"
/>
@@ -28,24 +28,24 @@
</el-form-item>
</el-col>
<el-col v-bind="setSpan(6)">
<el-form-item label="前端显示文本" prop="ui_text">
<el-input v-model="formData.ui_text" placeholder="模糊查询" clearable />
<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>
</el-col>
<el-col v-bind="setSpan(6)">
<el-form-item label="真实资金结算" prop="real_ev_min">
<el-form-item :label="$t('table.columns.dice.realEv')" prop="real_ev_min">
<div class="range-wrap">
<el-input-number
v-model="formData.real_ev_min"
placeholder="最小"
:placeholder="$t('table.searchBar.min')"
:precision="2"
controls-position="right"
class="range-input"
/>
<span class="range-sep"></span>
<span class="range-sep">{{ $t('table.searchBar.rangeSeparator') }}</span>
<el-input-number
v-model="formData.real_ev_max"
placeholder="最大"
:placeholder="$t('table.searchBar.max')"
:precision="2"
controls-position="right"
class="range-input"
@@ -54,8 +54,8 @@
</el-form-item>
</el-col>
<el-col v-bind="setSpan(6)">
<el-form-item label="所属档位" prop="tier">
<el-select v-model="formData.tier" placeholder="全部" clearable style="width: 100%">
<el-form-item :label="$t('table.columns.dice.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" />
<el-option label="T3" value="T3" />

View File

@@ -168,47 +168,47 @@
apiParams: { limit: 100 },
columnsFactory: () => [
{ type: 'selection' },
{ prop: 'id', label: 'ID', width: 80, align: 'center' },
{ prop: 'id', label: 'table.columns.common.id', width: 80, align: 'center' },
{
prop: 'status',
label: '状态',
label: 'table.columns.common.status',
width: 90,
align: 'center',
useSlot: true
},
{
prop: 'paid_draw',
label: '付费抽取',
label: 'table.columns.dice.paidDraw',
width: 160,
align: 'center',
useSlot: true
},
{
prop: 'free_draw',
label: '免费抽取',
label: 'table.columns.dice.freeDraw',
width: 160,
align: 'center',
useSlot: true
},
{
prop: 'platform_profit',
label: '平台赚取金额',
label: 'table.columns.dice.platformProfit',
width: 120,
align: 'center',
useSlot: true
},
{ prop: 'total_play_count', label: '总抽奖次数', width: 110, align: 'center' },
{ prop: 'total_play_count', label: 'table.columns.dice.totalDrawCount', width: 110, align: 'center' },
{
prop: 'admin_name',
label: '创建管理员',
label: 'table.columns.dice.createdBy',
width: 120,
align: 'center',
showOverflowTooltip: true
},
{ prop: 'create_time', label: '创建时间', width: 170, align: 'center' },
{ prop: 'create_time', label: 'table.columns.common.createTime', width: 170, align: 'center' },
{
prop: 'operation',
label: '操作',
label: 'table.actions.operation',
width: 100,
align: 'center',
fixed: 'right',

View File

@@ -244,19 +244,19 @@
},
columnsFactory: () => [
{ type: 'selection' },
{ prop: 'url', label: '预览', saiType: 'image', width: 80 },
{ prop: 'origin_name', label: '文件名称', minWidth: 160, showOverflowTooltip: true },
{ prop: 'url', label: 'table.columns.safeguard.preview', saiType: 'image', width: 80 },
{ prop: 'origin_name', label: 'table.columns.safeguard.fileName', minWidth: 160, showOverflowTooltip: true },
{
prop: 'storage_mode',
label: '存储模式',
label: 'table.columns.safeguard.storageMode',
width: 100,
saiType: 'dict',
saiDict: 'upload_mode'
},
{ prop: 'mime_type', label: '文件类型', width: 160, showOverflowTooltip: true },
{ prop: 'size_info', label: '文件大小', width: 100 },
{ prop: 'create_time', label: '上传时间', width: 180, sortable: true },
{ prop: 'operation', label: '操作', width: 100, fixed: 'right', useSlot: true }
{ 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: 'operation', label: 'table.actions.operation', width: 100, fixed: 'right', useSlot: true }
]
}
})

View File

@@ -9,18 +9,18 @@
@expand="handleExpand"
>
<el-col v-bind="setSpan(6)">
<el-form-item label="用户名" prop="username">
<el-input v-model="formData.username" placeholder="请输入用户名" clearable />
<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>
</el-col>
<el-col v-bind="setSpan(6)">
<el-form-item label="手机号" prop="phone">
<el-input v-model="formData.phone" placeholder="请输入手机号" clearable />
<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>
</el-col>
<el-col v-bind="setSpan(6)">
<el-form-item label="状态" prop="status">
<sa-select v-model="formData.status" dict="data_status" clearable />
<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>
</el-col>
</sa-search-bar>

View File

@@ -125,16 +125,16 @@
},
columnsFactory: () => [
{ type: 'selection' },
{ prop: 'name', label: '表名称', minWidth: 200 },
{ prop: 'comment', label: '表注释', minWidth: 150, showOverflowTooltip: true },
{ prop: 'engine', label: '表引擎', width: 120 },
{ prop: 'update_time', label: '更新时间', width: 180, sortable: true },
{ prop: 'rows', label: '总行数', width: 120 },
{ prop: 'data_free', label: '碎片大小', width: 120 },
{ prop: 'data_length', label: '数据大小', width: 120 },
{ prop: 'collation', label: '字符集', width: 180 },
{ prop: 'create_time', label: '创建时间', width: 180, sortable: true },
{ prop: 'operation', label: '操作', width: 100, fixed: 'right', useSlot: true }
{ 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: 'operation', label: 'table.actions.operation', width: 100, fixed: 'right', useSlot: true }
]
}
})

View File

@@ -140,8 +140,8 @@
},
columnsFactory: () => [
{ type: 'selection' },
{ prop: 'delete_time', label: '删除时间', width: 180 },
{ prop: 'json_data', label: '数据详情', useSlot: true, showOverflowTooltip: true }
{ prop: 'delete_time', label: 'table.columns.safeguard.deleteTime', width: 180 },
{ prop: 'json_data', label: 'table.columns.safeguard.dataDetail', useSlot: true, showOverflowTooltip: true }
]
}
})

View File

@@ -9,8 +9,8 @@
@expand="handleExpand"
>
<el-col v-bind="setSpan(6)">
<el-form-item label="表名称" prop="name">
<el-input v-model="formData.name" placeholder="请输入表名称" clearable />
<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>
</el-col>
</sa-search-bar>

View File

@@ -268,10 +268,10 @@
...typeSearch.value
},
columnsFactory: () => [
{ prop: 'id', label: '选中', width: 80, align: 'center', useSlot: true },
{ prop: 'name', label: '字典名称', useHeaderSlot: true, width: 150 },
{ prop: 'code', label: '字典标识', useHeaderSlot: true, width: 150 },
{ prop: 'status', label: '状态', saiType: 'dict', saiDict: 'data_status', width: 100 }
{ 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 }
]
}
})
@@ -312,12 +312,12 @@
},
columnsFactory: () => [
{ type: 'selection' },
{ prop: 'label', label: '字典标签', useSlot: true },
{ prop: 'value', label: '字典键值' },
{ prop: 'color', label: '颜色' },
{ prop: 'sort', label: '排序' },
{ prop: 'status', label: '状态', saiType: 'dict', saiDict: 'data_status' },
{ prop: 'operation', label: '操作', useSlot: true, width: 120 }
{ 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: 'operation', label: 'table.actions.operation', useSlot: true, width: 120 }
]
}
})

View File

@@ -103,15 +103,15 @@
},
columnsFactory: () => [
{ type: 'selection' },
{ prop: 'id', label: '编号', width: 100, align: 'center' },
{ prop: 'gateway', label: '服务Host' },
{ prop: 'from', label: '发件人', minWidth: 150, showOverflowTooltip: true },
{ prop: 'email', label: '收件人', minWidth: 150, showOverflowTooltip: true },
{ prop: 'code', label: '验证码' },
{ prop: 'status', label: '发送状态', useSlot: true },
{ prop: 'response', label: '发送结果', minWidth: 150, showOverflowTooltip: true },
{ prop: 'create_time', label: '发送时间', width: 180, sortable: true },
{ prop: 'operation', label: '操作', width: 80, fixed: 'right', useSlot: true }
{ 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: 'operation', label: 'table.actions.operation', width: 80, fixed: 'right', useSlot: true }
]
}
})

View File

@@ -9,31 +9,31 @@
@expand="handleExpand"
>
<el-col v-bind="setSpan(6)">
<el-form-item label="发件人" prop="from">
<el-input v-model="formData.from" placeholder="请输入发件人" clearable />
<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>
</el-col>
<el-col v-bind="setSpan(6)">
<el-form-item label="收件人" prop="email">
<el-input v-model="formData.email" placeholder="请输入收件人" clearable />
<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>
</el-col>
<el-col v-bind="setSpan(6)">
<el-form-item label="发送状态" prop="status">
<el-select v-model="formData.status" placeholder="请选择发送状态" clearable>
<el-option label="成功" value="success" />
<el-option label="失败" value="failure" />
<el-form-item :label="$t('table.searchBar.placeholderSendStatus')" prop="status">
<el-select v-model="formData.status" :placeholder="$t('table.searchBar.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="发送时间" prop="create_time">
<el-form-item :label="$t('table.columns.safeguard.operTime')" prop="create_time">
<el-date-picker
v-model="formData.create_time"
type="datetimerange"
range-separator=""
start-placeholder="开始时间"
end-placeholder="结束时间"
:range-separator="$t('table.searchBar.rangeSeparator')"
:start-placeholder="$t('table.searchBar.startTime')"
:end-placeholder="$t('table.searchBar.endTime')"
value-format="YYYY-MM-DD HH:mm:ss"
clearable
/>

View File

@@ -103,16 +103,16 @@
},
columnsFactory: () => [
{ type: 'selection' },
{ prop: 'id', label: '编号', width: 100, align: 'center' },
{ prop: 'username', label: '登录用户' },
{ prop: 'status', label: '登录状态', useSlot: true },
{ prop: 'ip', label: '登录IP' },
{ prop: 'ip_location', label: '登录地点' },
{ prop: 'os', label: '操作系统' },
{ prop: 'browser', label: '浏览器' },
{ prop: 'message', label: '登录信息', showOverflowTooltip: true },
{ prop: 'login_time', label: '登录时间', width: 180, sortable: true },
{ prop: 'operation', label: '操作', width: 80, fixed: 'right', useSlot: true }
{ 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: 'operation', label: 'table.actions.operation', width: 80, fixed: 'right', useSlot: true }
]
}
})

View File

@@ -9,31 +9,31 @@
@expand="handleExpand"
>
<el-col v-bind="setSpan(6)">
<el-form-item label="登录用户" prop="username">
<el-input v-model="formData.username" placeholder="请输入登录用户" clearable />
<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>
</el-col>
<el-col v-bind="setSpan(6)">
<el-form-item label="登录IP" prop="ip">
<el-input v-model="formData.ip" placeholder="请输入登录IP" clearable />
<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>
</el-col>
<el-col v-bind="setSpan(6)">
<el-form-item label="登录状态" prop="status">
<el-select v-model="formData.status" placeholder="请选择登录状态" clearable>
<el-option label="成功" value="1" />
<el-option label="失败" value="0" />
<el-form-item :label="$t('table.columns.safeguard.loginStatus')" prop="status">
<el-select v-model="formData.status" :placeholder="$t('table.searchBar.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="登录时间" prop="login_time">
<el-form-item :label="$t('table.columns.safeguard.operTime')" prop="login_time">
<el-date-picker
v-model="formData.login_time"
type="datetimerange"
range-separator=""
start-placeholder="开始时间"
end-placeholder="结束时间"
:range-separator="$t('table.searchBar.rangeSeparator')"
:start-placeholder="$t('table.searchBar.startTime')"
:end-placeholder="$t('table.searchBar.endTime')"
value-format="YYYY-MM-DD HH:mm:ss"
clearable
/>

View File

@@ -21,7 +21,7 @@
<template #icon>
<ArtSvgIcon icon="ri:delete-bin-5-line" />
</template>
删除
{{ $t('table.actions.delete') }}
</ElButton>
</ElSpace>
</template>
@@ -102,14 +102,14 @@
},
columnsFactory: () => [
{ type: 'selection' },
{ prop: 'id', label: '编号', width: 100, align: 'center' },
{ prop: 'username', label: '操作用户' },
{ prop: 'service_name', label: '业务名称' },
{ prop: 'router', label: '路由', minWidth: 180, showOverflowTooltip: true },
{ prop: 'ip', label: '操作IP' },
{ prop: 'ip_location', label: '操作地点' },
{ prop: 'create_time', label: '操作时间', width: 180, sortable: true },
{ prop: 'operation', label: '操作', width: 100, fixed: 'right', useSlot: true }
{ 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: 'operation', label: 'table.actions.operation', width: 100, fixed: 'right', useSlot: true }
]
}
})

View File

@@ -9,28 +9,28 @@
@expand="handleExpand"
>
<el-col v-bind="setSpan(6)">
<el-form-item label="操作用户" prop="username">
<el-input v-model="formData.username" placeholder="请输入操作用户" clearable />
<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>
</el-col>
<el-col v-bind="setSpan(6)">
<el-form-item label="操作路由" prop="router">
<el-input v-model="formData.router" placeholder="请输入操作路由" clearable />
<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>
</el-col>
<el-col v-bind="setSpan(6)">
<el-form-item label="操作IP" prop="ip">
<el-input v-model="formData.ip" placeholder="请输入操作IP" clearable />
<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>
</el-col>
<el-col v-bind="setSpan(12)" v-show="isExpanded">
<el-form-item label="操作时间" prop="create_time">
<el-form-item :label="$t('table.columns.safeguard.operTime')" prop="create_time">
<el-date-picker
v-model="formData.create_time"
type="datetimerange"
range-separator=""
start-placeholder="开始时间"
end-placeholder="结束时间"
:range-separator="$t('table.searchBar.rangeSeparator')"
:start-placeholder="$t('table.searchBar.startTime')"
:end-placeholder="$t('table.searchBar.endTime')"
value-format="YYYY-MM-DD HH:mm:ss"
clearable
/>

View File

@@ -300,9 +300,9 @@
...configSearch.value
},
columnsFactory: () => [
{ prop: 'id', label: '选中', width: 80, align: 'center', useSlot: true },
{ prop: 'name', label: '配置名称', useHeaderSlot: true, width: 150 },
{ prop: 'code', label: '配置标识', useHeaderSlot: true, width: 150 }
{ 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 }
]
}
})

View File

@@ -160,12 +160,12 @@
},
columnsFactory: () => [
{ type: 'selection' },
{ prop: 'key', label: '配置标识' },
{ prop: 'name', label: '配置标题' },
{ prop: 'input_type', label: '组件类型', width: 100 },
{ prop: 'sort', label: '排序', width: 100, sortable: true },
{ prop: 'remark', label: '备注' },
{ prop: 'operation', label: '操作', useSlot: true, width: 100 }
{ prop: 'key', label: 'table.columns.system.configKey' },
{ prop: 'name', label: 'table.columns.system.configTitle' },
{ prop: 'input_type', label: 'table.columns.system.inputType', width: 100 },
{ prop: 'sort', label: 'table.columns.common.sort', width: 100, sortable: true },
{ prop: 'remark', label: 'table.columns.common.remark' },
{ prop: 'operation', label: 'table.actions.operation', useSlot: true, width: 100 }
]
}
})

View File

@@ -12,14 +12,14 @@
<template #icon>
<ArtSvgIcon icon="ri:add-fill" />
</template>
新增
{{ $t('table.actions.add') }}
</ElButton>
<ElButton @click="toggleExpand" v-ripple>
<template #icon>
<ArtSvgIcon v-if="isExpanded" icon="ri:collapse-diagonal-line" />
<ArtSvgIcon v-else icon="ri:expand-diagonal-line" />
</template>
{{ isExpanded ? '收起' : '展开' }}
{{ isExpanded ? $t('table.searchBar.collapse') : $t('table.searchBar.expand') }}
</ElButton>
</ElSpace>
</template>
@@ -106,14 +106,14 @@
core: {
apiFn: api.list,
columnsFactory: () => [
{ prop: 'name', label: '部门名称', minWidth: 200 },
{ prop: 'code', label: '部门编码', minWidth: 120 },
{ prop: 'leader.username', label: '部门领导', minWidth: 120 },
{ prop: 'remark', label: '描述', minWidth: 150, showOverflowTooltip: true },
{ prop: 'sort', label: '排序', width: 100 },
{ prop: 'status', label: '状态', saiType: 'dict', saiDict: 'data_status', width: 100 },
{ prop: 'create_time', label: '创建日期', width: 180, sortable: true },
{ prop: 'operation', label: '操作', width: 100, fixed: 'right', useSlot: true }
{ 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: '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: 'operation', label: 'table.actions.operation', width: 100, fixed: 'right', useSlot: true }
]
}
})

View File

@@ -9,18 +9,18 @@
@expand="handleExpand"
>
<el-col v-bind="setSpan(6)">
<el-form-item label="部门名称" prop="name">
<el-input v-model="formData.name" placeholder="请输入部门名称" clearable />
<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>
</el-col>
<el-col v-bind="setSpan(6)">
<el-form-item label="部门编码" prop="code">
<el-input v-model="formData.code" placeholder="请输入部门编码" clearable />
<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>
</el-col>
<el-col v-bind="setSpan(6)">
<el-form-item label="状态" prop="status">
<sa-select v-model="formData.status" dict="data_status" clearable />
<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>
</el-col>
</sa-search-bar>

View File

@@ -16,7 +16,7 @@
<template #icon>
<ArtSvgIcon icon="ri:add-fill" />
</template>
新增
{{ $t('table.actions.add') }}
</ElButton>
<ElButton
v-permission="'core:menu:destroy'"
@@ -27,7 +27,7 @@
<template #icon>
<ArtSvgIcon icon="ri:delete-bin-5-line" />
</template>
删除
{{ $t('table.actions.delete') }}
</ElButton>
<ElButton @click="toggleExpand" v-ripple>
<template #icon>
@@ -129,10 +129,10 @@
apiFn: api.list,
columnsFactory: () => [
{ type: 'selection' },
{ prop: 'name', label: '菜单名称', minWidth: 150 },
{ prop: 'name', label: 'table.columns.system.menuName', minWidth: 150 },
{
prop: 'type',
label: '菜单类型',
label: 'table.columns.system.menuType',
align: 'center',
saiType: 'dict',
saiDict: 'menu_type',
@@ -140,17 +140,17 @@
},
{
prop: 'icon',
label: '图标',
label: 'table.columns.system.icon',
align: 'center',
width: 80,
formatter: (row: any) => {
return h(ArtSvgIcon, { icon: row.icon })
}
},
{ prop: 'code', label: '组件名称' },
{ prop: 'code', label: 'table.columns.system.component' },
{
prop: 'path',
label: '路由',
label: 'table.columns.system.route',
formatter: (row: any) => {
if (row.type === 3) return ''
return row.path || ''
@@ -158,7 +158,7 @@
},
{
prop: 'slug',
label: '权限标识',
label: 'table.columns.system.auth',
minWidth: 160,
formatter: (row: any) => {
if (row.type === 2) {
@@ -170,9 +170,9 @@
return ''
}
},
{ prop: 'sort', label: '排序', width: 100 },
{ prop: 'status', label: '状态', saiType: 'dict', saiDict: 'data_status', width: 100 },
{ prop: 'operation', label: '操作', width: 140, fixed: 'right', useSlot: 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: 'operation', label: 'table.actions.operation', width: 140, fixed: 'right', useSlot: true }
]
}
})

View File

@@ -9,18 +9,18 @@
@expand="handleExpand"
>
<el-col v-bind="setSpan(6)">
<el-form-item label="菜单名称" prop="name">
<el-input v-model="formData.name" placeholder="请输入菜单名称" clearable />
<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>
</el-col>
<el-col v-bind="setSpan(6)">
<el-form-item label="菜单路由" prop="path">
<el-input v-model="formData.path" placeholder="请输入菜单路由" clearable />
<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>
</el-col>
<el-col v-bind="setSpan(6)">
<el-form-item label="状态" prop="status">
<sa-select v-model="formData.status" dict="data_status" clearable />
<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>
</el-col>
</sa-search-bar>

View File

@@ -12,7 +12,7 @@
<template #icon>
<ArtSvgIcon icon="ri:add-fill" />
</template>
新增
{{ $t('table.actions.add') }}
</ElButton>
<ElButton
v-permission="'core:post:destroy'"
@@ -23,7 +23,7 @@
<template #icon>
<ArtSvgIcon icon="ri:delete-bin-5-line" />
</template>
删除
{{ $t('table.actions.delete') }}
</ElButton>
<SaImport
v-permission="'core:post:import'"
@@ -116,14 +116,14 @@
apiFn: api.list,
columnsFactory: () => [
{ type: 'selection' },
{ prop: 'id', label: '编号', width: 100, align: 'center' },
{ prop: 'name', label: '岗位名称', minWidth: 120 },
{ prop: 'code', label: '岗位编码', minWidth: 120 },
{ prop: 'remark', label: '描述', minWidth: 150, showOverflowTooltip: true },
{ prop: 'sort', label: '排序', width: 100 },
{ prop: 'status', label: '状态', saiType: 'dict', saiDict: 'data_status', width: 100 },
{ prop: 'create_time', label: '创建日期', width: 180, sortable: true },
{ prop: 'operation', label: '操作', width: 100, fixed: 'right', useSlot: true }
{ 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: '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: 'operation', label: 'table.actions.operation', width: 100, fixed: 'right', useSlot: true }
]
}
})

View File

@@ -9,18 +9,18 @@
@expand="handleExpand"
>
<el-col v-bind="setSpan(6)">
<el-form-item label="岗位名称" prop="name">
<el-input v-model="formData.name" placeholder="请输入岗位名称" clearable />
<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>
</el-col>
<el-col v-bind="setSpan(6)">
<el-form-item label="岗位编码" prop="code">
<el-input v-model="formData.code" placeholder="请输入岗位编码" clearable />
<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>
</el-col>
<el-col v-bind="setSpan(6)">
<el-form-item label="状态" prop="status">
<sa-select v-model="formData.status" dict="data_status" clearable />
<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>
</el-col>
</sa-search-bar>

View File

@@ -16,7 +16,7 @@
<template #icon>
<ArtSvgIcon icon="ri:add-fill" />
</template>
新增
{{ $t('table.actions.add') }}
</ElButton>
</ElSpace>
</template>
@@ -126,15 +126,15 @@
core: {
apiFn: api.list,
columnsFactory: () => [
{ prop: 'id', label: '编号', minWidth: 60, align: 'center' },
{ prop: 'name', label: '角色名称', minWidth: 120 },
{ prop: 'code', label: '角色编码', minWidth: 120 },
{ prop: 'level', label: '角色级别', minWidth: 100, sortable: true },
{ prop: 'remark', label: '角色描述', minWidth: 150, showOverflowTooltip: true },
{ prop: 'sort', label: '排序', minWidth: 100 },
{ prop: 'status', label: '状态', saiType: 'dict', saiDict: 'data_status' },
{ prop: 'create_time', label: '创建日期', width: 180, sortable: true },
{ prop: 'operation', label: '操作', width: 140, fixed: 'right', useSlot: true }
{ 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: '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: 'operation', label: 'table.actions.operation', width: 140, fixed: 'right', useSlot: true }
]
}
})

View File

@@ -9,18 +9,18 @@
@expand="handleExpand"
>
<el-col v-bind="setSpan(6)">
<el-form-item label="角色名称" prop="name">
<el-input v-model="formData.name" placeholder="请输入角色名称" clearable />
<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>
</el-col>
<el-col v-bind="setSpan(6)">
<el-form-item label="角色编码" prop="code">
<el-input v-model="formData.code" placeholder="请输入角色编码" clearable />
<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>
</el-col>
<el-col v-bind="setSpan(6)">
<el-form-item label="状态" prop="status">
<sa-select v-model="formData.status" dict="data_status" clearable />
<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>
</el-col>
</sa-search-bar>

View File

@@ -32,7 +32,7 @@
<template #icon>
<ArtSvgIcon icon="ri:add-fill" />
</template>
新增
{{ $t('table.actions.add') }}
</ElButton>
</ElSpace>
</template>
@@ -180,30 +180,30 @@
...searchForm.value
},
columnsFactory: () => [
{ type: 'index', width: 60, label: '序号' },
{ type: 'index', width: 60, label: 'table.column.index' },
{
prop: 'avatar',
label: '用户名',
label: 'table.columns.system.username',
minWidth: 200,
saiType: 'imageAndText',
saiFirst: 'username',
saiSecond: 'email'
},
{ prop: 'phone', label: '手机号', width: 120 },
{ prop: 'phone', label: 'table.columns.system.phone', width: 120 },
{
prop: 'dept_id',
label: '部门',
label: 'table.columns.system.dept',
minWidth: 150,
sortable: true,
formatter: (row: any) => row.depts?.name ?? ''
},
{ prop: 'status', label: '状态', width: 80, saiType: 'dict', saiDict: 'data_status' },
{ prop: 'agent_id', label: '代理ID', width: 120, showOverflowTooltip: true },
{ prop: 'dashboard', label: '首页', width: 100, saiType: 'dict', saiDict: 'dashboard' },
{ prop: 'login_time', label: '上次登录', width: 170, sortable: true },
{ 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: 'operation',
label: '操作',
label: 'table.actions.operation',
width: 140,
fixed: 'right',
useSlot: true

View File

@@ -9,18 +9,18 @@
@expand="handleExpand"
>
<el-col v-bind="setSpan(6)">
<el-form-item label="用户名" prop="username">
<el-input v-model="formData.username" placeholder="请输入用户名" clearable />
<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>
</el-col>
<el-col v-bind="setSpan(6)">
<el-form-item label="手机号" prop="phone">
<el-input v-model="formData.phone" placeholder="请输入手机号" clearable />
<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>
</el-col>
<el-col v-bind="setSpan(6)">
<el-form-item label="状态" prop="status">
<sa-select v-model="formData.status" dict="data_status" clearable />
<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>
</el-col>
</sa-search-bar>

View File

@@ -217,11 +217,11 @@
},
columnsFactory: () => [
{ type: 'selection' },
{ prop: 'name', label: '表名称' },
{ prop: 'comment', label: '表注释' },
{ prop: 'engine', label: '引擎' },
{ prop: 'collation', label: '编码' },
{ prop: 'create_time', label: '创建时间' }
{ 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' }
]
}
})

View File

@@ -195,14 +195,14 @@
},
columnsFactory: () => [
{ type: 'selection', width: 50 },
{ prop: 'table_name', label: '表名称', minWidth: 180, align: 'left' },
{ prop: 'table_comment', label: '表描述', minWidth: 150, align: 'left' },
{ prop: 'template', label: '应用类型', minWidth: 120 },
{ prop: 'namespace', label: '应用名称', minWidth: 120 },
{ prop: 'stub', label: '模板类型', minWidth: 120 },
{ prop: 'tpl_category', label: '生成类型', minWidth: 120, useSlot: true },
{ prop: 'update_time', label: '更新时间', width: 180, sortable: true },
{ prop: 'operation', label: '操作', width: 220, fixed: 'right', useSlot: true }
{ 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: 'operation', label: 'table.actions.operation', width: 220, fixed: 'right', useSlot: true }
]
}
})

View File

@@ -8,13 +8,13 @@
@search="handleSearch"
>
<el-col v-bind="setSpan(6)">
<el-form-item label="表名称" prop="table_name">
<el-input v-model="formData.table_name" placeholder="请输入数据表名称" clearable />
<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>
</el-col>
<el-col v-bind="setSpan(6)">
<el-form-item label="数据源" prop="source">
<el-input v-model="formData.source" placeholder="请输入数据源名称" clearable />
<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>
</el-col>
</sa-search-bar>

View File

@@ -12,7 +12,7 @@
<template #icon>
<ArtSvgIcon icon="ri:add-fill" />
</template>
新增
{{ $t('table.actions.add') }}
</ElButton>
</ElSpace>
</template>
@@ -115,20 +115,20 @@
core: {
apiFn: api.list,
columnsFactory: () => [
{ prop: 'id', label: '编号', width: 100, align: 'center' },
{ prop: 'name', label: '任务名称', minWidth: 120 },
{ prop: 'id', label: 'table.columns.common.no', width: 100, align: 'center' },
{ prop: 'name', label: 'table.columns.tool.taskName', minWidth: 120 },
{
prop: 'type',
label: '任务类型',
label: 'table.columns.tool.taskType',
saiType: 'dict',
saiDict: 'crontab_task_type',
minWidth: 120
},
{ prop: 'rule', label: '定时规则', minWidth: 140 },
{ prop: 'target', label: '调用目标', minWidth: 200, showOverflowTooltip: true },
{ prop: 'status', label: '状态', saiType: 'dict', saiDict: 'data_status', width: 100 },
{ prop: 'update_time', label: '更新日期', width: 180, sortable: true },
{ prop: 'operation', label: '操作', width: 180, fixed: 'right', useSlot: true }
{ 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: 'operation', label: 'table.actions.operation', width: 180, fixed: 'right', useSlot: true }
]
}
})

View File

@@ -212,10 +212,10 @@
},
columnsFactory: () => [
{ type: 'selection' },
{ prop: 'create_time', label: '执行时间', sortable: true },
{ prop: 'target', label: '调用目标' },
{ prop: 'parameter', label: '任务参数' },
{ prop: 'status', label: '执行状态', useSlot: true, width: 100 }
{ 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 }
]
}
})

View File

@@ -9,18 +9,18 @@
@expand="handleExpand"
>
<el-col v-bind="setSpan(6)">
<el-form-item label="任务名称" prop="name">
<el-input v-model="formData.name" placeholder="请输入任务名称" clearable />
<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>
</el-col>
<el-col v-bind="setSpan(6)">
<el-form-item label="任务类型" prop="type">
<sa-select v-model="formData.type" dict="crontab_task_type" clearable />
<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>
</el-col>
<el-col v-bind="setSpan(6)">
<el-form-item label="状态" prop="status">
<sa-select v-model="formData.status" dict="data_status" clearable />
<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>
</el-col>
</sa-search-bar>