创建中英双语对照
This commit is contained in:
@@ -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 }
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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": "表头背景"
|
||||
|
||||
@@ -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',
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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',
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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 }
|
||||
]
|
||||
}
|
||||
})
|
||||
|
||||
@@ -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" />
|
||||
|
||||
@@ -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 }
|
||||
]
|
||||
}
|
||||
})
|
||||
|
||||
@@ -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%"
|
||||
>
|
||||
|
||||
@@ -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',
|
||||
|
||||
@@ -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%"
|
||||
>
|
||||
|
||||
@@ -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',
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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',
|
||||
|
||||
@@ -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%"
|
||||
/>
|
||||
|
||||
@@ -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' }
|
||||
]
|
||||
}
|
||||
})
|
||||
|
||||
@@ -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" />
|
||||
|
||||
@@ -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" />
|
||||
|
||||
@@ -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',
|
||||
|
||||
@@ -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 }
|
||||
]
|
||||
}
|
||||
})
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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 }
|
||||
]
|
||||
}
|
||||
})
|
||||
|
||||
@@ -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 }
|
||||
]
|
||||
}
|
||||
})
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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 }
|
||||
]
|
||||
}
|
||||
})
|
||||
|
||||
@@ -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 }
|
||||
]
|
||||
}
|
||||
})
|
||||
|
||||
@@ -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
|
||||
/>
|
||||
|
||||
@@ -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 }
|
||||
]
|
||||
}
|
||||
})
|
||||
|
||||
@@ -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
|
||||
/>
|
||||
|
||||
@@ -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 }
|
||||
]
|
||||
}
|
||||
})
|
||||
|
||||
@@ -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
|
||||
/>
|
||||
|
||||
@@ -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 }
|
||||
]
|
||||
}
|
||||
})
|
||||
|
||||
@@ -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 }
|
||||
]
|
||||
}
|
||||
})
|
||||
|
||||
@@ -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 }
|
||||
]
|
||||
}
|
||||
})
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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 }
|
||||
]
|
||||
}
|
||||
})
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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 }
|
||||
]
|
||||
}
|
||||
})
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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 }
|
||||
]
|
||||
}
|
||||
})
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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' }
|
||||
]
|
||||
}
|
||||
})
|
||||
|
||||
@@ -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 }
|
||||
]
|
||||
}
|
||||
})
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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 }
|
||||
]
|
||||
}
|
||||
})
|
||||
|
||||
@@ -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 }
|
||||
]
|
||||
}
|
||||
})
|
||||
|
||||
@@ -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>
|
||||
|
||||
Reference in New Issue
Block a user