创建中英双语对照

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

@@ -10,7 +10,7 @@
v-bind="{ ...$attrs, ...props, height, stripe, border, size, headerCellStyle }"
@sort-change="handleSortChange"
>
<template v-for="col in columns" :key="col.prop || col.type">
<template v-for="col in displayColumns" :key="col.prop || col.type">
<!-- 渲染全局序号列 -->
<ElTableColumn v-if="col.type === 'globalIndex'" v-bind="{ ...col }">
<template #default="{ $index }">
@@ -138,6 +138,7 @@
import { useCommon } from '@/hooks/core/useCommon'
import { useTableHeight } from '@/hooks/core/useTableHeight'
import { useResizeObserver, useWindowSize } from '@vueuse/core'
import i18n, { $t } from '@/locales'
defineOptions({ name: 'ArtTable' })
@@ -307,6 +308,18 @@
// 是否显示分页器
const showPagination = computed(() => props.pagination && !isEmpty.value)
/** 表头 label 为 table. 开头的 i18n key 时自动翻译,切换语言后表头随动 */
const displayColumns = computed(() => {
const list = props.columns || []
return list.map((col) => {
const label = col.label
if (label && typeof label === 'string' && label.startsWith('table.') && i18n.global.te(label)) {
return { ...col, label: $t(label) }
}
return col
})
})
// 清理列属性,移除插槽相关的自定义属性,确保它们不会被 ElTableColumn 错误解释
const cleanColumnProps = (col: ColumnOption) => {
const columnProps = { ...col }

View File

@@ -313,7 +313,54 @@
"expand": "Expand",
"collapse": "Collapse",
"searchInputPlaceholder": "Please enter",
"searchSelectPlaceholder": "Please select"
"searchSelectPlaceholder": "Please select",
"all": "All",
"min": "Min",
"max": "Max",
"startTime": "Start Time",
"endTime": "End Time",
"placeholderUsername": "Username",
"placeholderNickname": "Nickname",
"placeholderPhone": "Phone",
"placeholderPhoneFuzzy": "Phone (fuzzy)",
"placeholderName": "Name",
"placeholderGroup": "Group",
"placeholderTitle": "Title",
"placeholderConfigName": "Config Name",
"placeholderTaskName": "Task Name",
"placeholderTableName": "Table Name",
"placeholderDataSource": "Data Source",
"placeholderDeptName": "Dept Name",
"placeholderDeptCode": "Dept Code",
"placeholderRoleName": "Role Name",
"placeholderRoleCode": "Role Code",
"placeholderPostName": "Post Name",
"placeholderPostCode": "Post Code",
"placeholderMenuName": "Menu Name",
"placeholderMenuRoute": "Menu Route",
"placeholderOperator": "Operator",
"placeholderOperRouter": "Route",
"placeholderOperIp": "IP",
"placeholderLoginUser": "Login User",
"placeholderLoginIp": "Login IP",
"placeholderLoginStatus": "Login Status",
"labelFrom": "From",
"labelTo": "To",
"placeholderFrom": "From",
"placeholderTo": "To",
"placeholderSendStatus": "Send Status",
"placeholderPoolType": "Pool Type",
"usernameFuzzy": "Username (fuzzy)",
"nameFuzzy": "Name (fuzzy)",
"uiTextFuzzy": "UI Text (fuzzy)",
"fuzzyQuery": "Fuzzy",
"byUsername": "Search by username",
"exactSearch": "Exact",
"enable": "Enable",
"disable": "Disable",
"rangeSeparator": "To",
"success": "Success",
"failure": "Failure"
},
"selection": "Select",
"sizeOptions": {
@@ -326,6 +373,184 @@
"expand": "Expand",
"index": "Index"
},
"actions": {
"add": "Add",
"delete": "Delete",
"edit": "Edit",
"operation": "Operation",
"refresh": "Refresh",
"export": "Export",
"import": "Import"
},
"columns": {
"common": {
"id": "ID",
"status": "Status",
"createTime": "Create Time",
"updateTime": "Update Time",
"operation": "Operation",
"remark": "Remark",
"sort": "Sort",
"name": "Name",
"no": "No.",
"description": "Description",
"select": "Select"
},
"system": {
"username": "Username",
"phone": "Phone",
"dept": "Department",
"dashboard": "Dashboard",
"loginTime": "Last Login",
"agentId": "Agent ID",
"postName": "Post Name",
"postCode": "Post Code",
"deptName": "Dept Name",
"deptCode": "Dept Code",
"leader": "Leader",
"roleName": "Role Name",
"roleCode": "Role Code",
"level": "Level",
"roleRemark": "Role Description",
"menuName": "Menu Name",
"menuType": "Menu Type",
"icon": "Icon",
"component": "Component",
"route": "Route",
"auth": "Auth",
"configKey": "Config Key",
"configTitle": "Config Title",
"inputType": "Input Type",
"configName": "Config Name",
"group": "Group",
"title": "Title",
"titleEn": "Title (EN)",
"value": "Value",
"valueEn": "Value (EN)",
"noParentDept": "No Parent Dept",
"noParentMenu": "No Parent Menu",
"input": "Input",
"textarea": "Textarea",
"select": "Select",
"radio": "Radio",
"uploadImage": "Image Upload",
"uploadFile": "File Upload",
"wangEditor": "Rich Editor",
"createDate": "Create Date",
"updateDate": "Update Date"
},
"safeguard": {
"operator": "Operator",
"serviceName": "Service",
"router": "Route",
"operIp": "IP",
"operLocation": "Location",
"operTime": "Time",
"loginUser": "Login User",
"loginStatus": "Login Status",
"loginIp": "Login IP",
"loginLocation": "Location",
"os": "OS",
"browser": "Browser",
"tableName": "Table Name",
"tableComment": "Table Comment",
"engine": "Engine",
"tableEngine": "Table Engine",
"totalRows": "Total Rows",
"fragmentSize": "Fragment Size",
"dataSize": "Data Size",
"collation": "Collation",
"dictName": "Dict Name",
"dictCode": "Dict Code",
"dictLabel": "Dict Label",
"dictValue": "Dict Value",
"color": "Color",
"preview": "Preview",
"fileName": "File Name",
"storageMode": "Storage",
"fileType": "File Type",
"fileSize": "File Size",
"uploadTime": "Upload Time",
"deleteTime": "Delete Time",
"dataDetail": "Data Detail",
"executeTime": "Execute Time",
"target": "Target",
"parameter": "Parameter",
"executeStatus": "Status",
"loginMessage": "Login Message",
"loginTime": "Login Time",
"gateway": "Gateway",
"emailFrom": "From",
"emailTo": "To",
"emailCode": "Code",
"emailResponse": "Response",
"sendTime": "Send Time",
"sendStatus": "Send Status"
},
"tool": {
"taskName": "Task Name",
"taskType": "Task Type",
"rule": "Rule",
"updateDate": "Update Date",
"tableDesc": "Table Desc",
"template": "Template",
"namespace": "Namespace",
"stub": "Stub",
"tplCategory": "Gen Type",
"topMenu": "Top Menu"
},
"dice": {
"player": "Player",
"lotteryPoolConfig": "Lottery Pool Config",
"drawType": "Draw Type",
"isBigWin": "Is Big Win",
"winCoin": "Win Coin",
"superWinCoin": "Super Win Coin",
"rewardWinCoin": "Reward Win Coin",
"direction": "Direction",
"startIndex": "Start Index",
"targetIndex": "Target Index",
"rollArray": "Roll Array",
"rollNumber": "Roll Number",
"rewardConfig": "Reward Config",
"user": "User",
"coinChange": "Coin Change",
"type": "Type",
"operator": "Operator",
"walletBefore": "Wallet Before",
"walletAfter": "Wallet After",
"totalDrawCount": "Total Draw Count",
"paidDrawCount": "Paid Draw Count",
"freeDrawCount": "Free Draw Count",
"paidDraw": "Paid Draw",
"freeDraw": "Free Draw",
"platformProfit": "Platform Profit",
"createdBy": "Created By",
"rewardTier": "Reward Tier",
"poolType": "Pool Type",
"safetyLine": "Safety Line",
"t1PoolWeight": "T1 Pool Weight",
"t2PoolWeight": "T2 Pool Weight",
"t3PoolWeight": "T3 Pool Weight",
"t4PoolWeight": "T4 Pool Weight",
"t5PoolWeight": "T5 Pool Weight",
"endIndex": "End Index",
"tier": "Tier",
"dicePoints": "Dice Points",
"displayText": "Display Text",
"realEv": "Real EV",
"weight": "Weight",
"nickname": "Nickname",
"coin": "Coin",
"t1Weight": "T1 Weight",
"t2Weight": "T2 Weight",
"t3Weight": "T3 Weight",
"t4Weight": "T4 Weight",
"t5Weight": "T5 Weight",
"playerUsername": "Player Username",
"useCoins": "Use Coins"
}
},
"zebra": "Zebra",
"border": "Border",
"headerBackground": "Header BG"

View File

@@ -277,7 +277,54 @@
"expand": "展开",
"collapse": "收起",
"searchInputPlaceholder": "请输入",
"searchSelectPlaceholder": "请选择"
"searchSelectPlaceholder": "请选择",
"all": "全部",
"min": "最小",
"max": "最大",
"startTime": "开始时间",
"endTime": "结束时间",
"placeholderUsername": "请输入用户名",
"placeholderNickname": "请输入昵称",
"placeholderPhone": "请输入手机号",
"placeholderPhoneFuzzy": "手机号模糊查询",
"placeholderName": "请输入名称",
"placeholderGroup": "请输入分组",
"placeholderTitle": "请输入标题",
"placeholderConfigName": "请输入配置名称",
"placeholderTaskName": "请输入任务名称",
"placeholderTableName": "请输入数据表名称",
"placeholderDataSource": "请输入数据源名称",
"placeholderDeptName": "请输入部门名称",
"placeholderDeptCode": "请输入部门编码",
"placeholderRoleName": "请输入角色名称",
"placeholderRoleCode": "请输入角色编码",
"placeholderPostName": "请输入岗位名称",
"placeholderPostCode": "请输入岗位编码",
"placeholderMenuName": "请输入菜单名称",
"placeholderMenuRoute": "请输入菜单路由",
"placeholderOperator": "请输入操作用户",
"placeholderOperRouter": "请输入操作路由",
"placeholderOperIp": "请输入操作IP",
"placeholderLoginUser": "请输入登录用户",
"placeholderLoginIp": "请输入登录IP",
"placeholderLoginStatus": "请选择登录状态",
"labelFrom": "发件人",
"labelTo": "收件人",
"placeholderFrom": "请输入发件人",
"placeholderTo": "请输入收件人",
"placeholderSendStatus": "请选择发送状态",
"placeholderPoolType": "请选择奖池类型",
"usernameFuzzy": "用户名模糊",
"nameFuzzy": "名称模糊",
"uiTextFuzzy": "前端显示文本模糊",
"fuzzyQuery": "模糊查询",
"byUsername": "按用户名搜索",
"exactSearch": "精确搜索",
"enable": "启用",
"disable": "禁用",
"rangeSeparator": "至",
"success": "成功",
"failure": "失败"
},
"selection": "选择",
"sizeOptions": {
@@ -290,6 +337,184 @@
"expand": "展开",
"index": "序号"
},
"actions": {
"add": "新增",
"delete": "删除",
"edit": "编辑",
"operation": "操作",
"refresh": "刷新",
"export": "导出",
"import": "导入"
},
"columns": {
"common": {
"id": "ID",
"status": "状态",
"createTime": "创建时间",
"updateTime": "更新时间",
"operation": "操作",
"remark": "备注",
"sort": "排序",
"name": "名称",
"no": "编号",
"description": "描述",
"select": "选中"
},
"system": {
"username": "用户名",
"phone": "手机号",
"dept": "部门",
"dashboard": "首页",
"loginTime": "上次登录",
"agentId": "代理ID",
"postName": "岗位名称",
"postCode": "岗位编码",
"deptName": "部门名称",
"deptCode": "部门编码",
"leader": "部门领导",
"roleName": "角色名称",
"roleCode": "角色编码",
"level": "角色级别",
"roleRemark": "角色描述",
"menuName": "菜单名称",
"menuType": "菜单类型",
"icon": "图标",
"component": "组件名称",
"route": "路由",
"auth": "权限标识",
"configKey": "配置标识",
"configTitle": "配置标题",
"inputType": "组件类型",
"configName": "配置名称",
"group": "分组",
"title": "标题",
"titleEn": "标题(英文)",
"value": "值",
"valueEn": "值(英文)",
"noParentDept": "无上级部门",
"noParentMenu": "无上级菜单",
"input": "文本框",
"textarea": "文本域",
"select": "下拉选择框",
"radio": "单选框",
"uploadImage": "图片上传",
"uploadFile": "文件上传",
"wangEditor": "富文本编辑器",
"createDate": "创建日期",
"updateDate": "更新日期"
},
"safeguard": {
"operator": "操作用户",
"serviceName": "业务名称",
"router": "路由",
"operIp": "操作IP",
"operLocation": "操作地点",
"operTime": "操作时间",
"loginUser": "登录用户",
"loginStatus": "登录状态",
"loginIp": "登录IP",
"loginLocation": "登录地点",
"os": "操作系统",
"browser": "浏览器",
"tableName": "表名称",
"tableComment": "表注释",
"engine": "引擎",
"tableEngine": "表引擎",
"totalRows": "总行数",
"fragmentSize": "碎片大小",
"dataSize": "数据大小",
"collation": "编码",
"dictName": "字典名称",
"dictCode": "字典标识",
"dictLabel": "字典标签",
"dictValue": "字典键值",
"color": "颜色",
"preview": "预览",
"fileName": "文件名称",
"storageMode": "存储模式",
"fileType": "文件类型",
"fileSize": "文件大小",
"uploadTime": "上传时间",
"deleteTime": "删除时间",
"dataDetail": "数据详情",
"executeTime": "执行时间",
"target": "调用目标",
"parameter": "任务参数",
"executeStatus": "执行状态",
"loginMessage": "登录信息",
"loginTime": "登录时间",
"gateway": "服务Host",
"emailFrom": "发件人",
"emailTo": "收件人",
"emailCode": "验证码",
"emailResponse": "发送结果",
"sendTime": "发送时间",
"sendStatus": "发送状态"
},
"tool": {
"taskName": "任务名称",
"taskType": "任务类型",
"rule": "定时规则",
"updateDate": "更新日期",
"tableDesc": "表描述",
"template": "应用类型",
"namespace": "应用名称",
"stub": "模板类型",
"tplCategory": "生成类型",
"topMenu": "顶级菜单"
},
"dice": {
"player": "玩家",
"lotteryPoolConfig": "彩金池配置",
"drawType": "抽奖类型",
"isBigWin": "是否中大奖",
"winCoin": "赢取平台币",
"superWinCoin": "中大奖平台币",
"rewardWinCoin": "摇色子中奖平台币",
"direction": "方向",
"startIndex": "起始索引",
"targetIndex": "终点索引",
"rollArray": "摇取点数",
"rollNumber": "摇取点数和",
"rewardConfig": "奖励配置",
"user": "用户",
"coinChange": "平台币变化",
"type": "类型",
"operator": "操作人",
"walletBefore": "钱包操作前",
"walletAfter": "钱包操作后",
"totalDrawCount": "总抽奖次数",
"paidDrawCount": "购买抽奖次数",
"freeDrawCount": "赠送抽奖次数",
"paidDraw": "付费抽取",
"freeDraw": "免费抽取",
"platformProfit": "平台赚取金额",
"createdBy": "创建管理员",
"rewardTier": "奖励档位",
"poolType": "奖池类型",
"safetyLine": "安全线",
"t1PoolWeight": "T1池权重",
"t2PoolWeight": "T2池权重",
"t3PoolWeight": "T3池权重",
"t4PoolWeight": "T4池权重",
"t5PoolWeight": "T5池权重",
"endIndex": "结束索引(end_index)",
"tier": "档位",
"dicePoints": "色子点数(摇取5-30)",
"displayText": "显示文本",
"realEv": "实际中奖金额",
"weight": "权重(1-10000)",
"nickname": "昵称",
"coin": "平台币",
"t1Weight": "T1权重",
"t2Weight": "T2权重",
"t3Weight": "T3权重",
"t4Weight": "T4权重",
"t5Weight": "T5权重",
"playerUsername": "玩家用户名",
"useCoins": "消耗硬币"
}
},
"zebra": "斑马纹",
"border": "边框",
"headerBackground": "表头背景"

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>