mirror of
https://github.com/nsnail/NetAdmin.git
synced 2025-04-23 14:42:51 +08:00
chore: 🔨 补充语言文件
This commit is contained in:
parent
13a4896828
commit
a2de0bcbd1
@ -42,5 +42,21 @@
|
|||||||
{
|
{
|
||||||
"ApiId": "api/sys/user/set.session.user.app.config",
|
"ApiId": "api/sys/user/set.session.user.app.config",
|
||||||
"RoleId": 371729946431493,
|
"RoleId": 371729946431493,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ApiId": "api/sys/login.log/paged.query",
|
||||||
|
"RoleId": 371729946431493,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ApiId": "api/sys/login.log/get",
|
||||||
|
"RoleId": 371729946431493,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ApiId": "api/sys/login.log/count.by",
|
||||||
|
"RoleId": 371729946431493,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ApiId": "api/sys/login.log/export",
|
||||||
|
"RoleId": 371729946431493,
|
||||||
}
|
}
|
||||||
]
|
]
|
@ -23,7 +23,7 @@
|
|||||||
"sortablejs": "1.15.6",
|
"sortablejs": "1.15.6",
|
||||||
"vkbeautify": "0.99.3",
|
"vkbeautify": "0.99.3",
|
||||||
"vue": "3.5.13",
|
"vue": "3.5.13",
|
||||||
"vue-i18n": "10.0.5",
|
"vue-i18n": "11.0.1",
|
||||||
"vue-router": "4.5.0",
|
"vue-router": "4.5.0",
|
||||||
"vue3-ace-editor": "2.2.4",
|
"vue3-ace-editor": "2.2.4",
|
||||||
"vue3-json-viewer": "2.2.2",
|
"vue3-json-viewer": "2.2.2",
|
||||||
@ -36,7 +36,7 @@
|
|||||||
"prettier-plugin-organize-attributes": "1.0.0",
|
"prettier-plugin-organize-attributes": "1.0.0",
|
||||||
"sass": "1.83.0",
|
"sass": "1.83.0",
|
||||||
"terser": "5.37.0",
|
"terser": "5.37.0",
|
||||||
"vite": "6.0.5"
|
"vite": "6.0.6"
|
||||||
},
|
},
|
||||||
"browserslist": [
|
"browserslist": [
|
||||||
"> 1%",
|
"> 1%",
|
||||||
|
@ -56,9 +56,11 @@ export default {
|
|||||||
this.data = this.$TOOL.sortProperties(res.data)
|
this.data = this.$TOOL.sortProperties(res.data)
|
||||||
if (queryEs) {
|
if (queryEs) {
|
||||||
this.esData = {}
|
this.esData = {}
|
||||||
|
try {
|
||||||
this.$API.adm_tools.queryEsLog.post(queryEs).then((res) => {
|
this.$API.adm_tools.queryEsLog.post(queryEs).then((res) => {
|
||||||
this.esData = res.data
|
this.esData = res.data
|
||||||
})
|
})
|
||||||
|
} catch {}
|
||||||
}
|
}
|
||||||
return this
|
return this
|
||||||
},
|
},
|
||||||
|
@ -525,7 +525,7 @@ export default {
|
|||||||
this.loading = true
|
this.loading = true
|
||||||
try {
|
try {
|
||||||
await this.exportApi.post(this.getQueryParams(), { responseType: 'blob' })
|
await this.exportApi.post(this.getQueryParams(), { responseType: 'blob' })
|
||||||
this.$message.success(`数据已导出(上限5万条)`)
|
this.$message.success(this.$t('数据已导出(上限 {n} 条)', { n: 50000 }))
|
||||||
} catch {}
|
} catch {}
|
||||||
this.loading = false
|
this.loading = false
|
||||||
},
|
},
|
||||||
|
@ -2,7 +2,7 @@ export default {
|
|||||||
email: (_this) => {
|
email: (_this) => {
|
||||||
return {
|
return {
|
||||||
required: true,
|
required: true,
|
||||||
message: '您的邮箱地址',
|
message: _this.$t('您的邮箱地址'),
|
||||||
pattern: _this.$GLOBAL.chars.RGXL_EMAIL,
|
pattern: _this.$GLOBAL.chars.RGXL_EMAIL,
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -20,16 +20,16 @@ export default {
|
|||||||
} catch {
|
} catch {
|
||||||
//
|
//
|
||||||
}
|
}
|
||||||
callback(new Error('邮箱已被使用'))
|
callback(new Error(_this.$t('邮箱已被使用')))
|
||||||
},
|
},
|
||||||
trigger: 'blur',
|
trigger: 'blur',
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
code: () => {
|
code: (_this) => {
|
||||||
return {
|
return {
|
||||||
required: true,
|
required: true,
|
||||||
message: '请输入4位数字验证码',
|
message: _this.$t('请输入4位数字验证码'),
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
}
|
}
|
@ -2,17 +2,17 @@ export default {
|
|||||||
passwordText: (_this) => {
|
passwordText: (_this) => {
|
||||||
return {
|
return {
|
||||||
required: true,
|
required: true,
|
||||||
message: '8位以上数字字母组合',
|
message: _this.$t('8位以上数字字母组合'),
|
||||||
pattern: _this.$GLOBAL.chars.RGX_PASSWORD,
|
pattern: _this.$GLOBAL.chars.RGX_PASSWORD,
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
passwordText2: (passwordText) => [
|
passwordText2: (_this, passwordText) => [
|
||||||
{ required: true, message: '请再次输入密码' },
|
{ required: true, message: _this.$t('请再次输入密码') },
|
||||||
{
|
{
|
||||||
validator: (rule, value, callback) => {
|
validator: (rule, value, callback) => {
|
||||||
if (value !== passwordText()) {
|
if (value !== passwordText()) {
|
||||||
callback(new Error('两次输入密码不一致'))
|
callback(new Error(_this.$t('两次输入密码不一致')))
|
||||||
} else {
|
} else {
|
||||||
callback()
|
callback()
|
||||||
}
|
}
|
||||||
|
@ -2,7 +2,7 @@ export default {
|
|||||||
mobile: (_this) => {
|
mobile: (_this) => {
|
||||||
return {
|
return {
|
||||||
required: true,
|
required: true,
|
||||||
message: '您的手机号码',
|
message: _this.$t('您的手机号码'),
|
||||||
pattern: _this.$GLOBAL.chars.RGX_MOBILE,
|
pattern: _this.$GLOBAL.chars.RGX_MOBILE,
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -20,16 +20,16 @@ export default {
|
|||||||
} catch {
|
} catch {
|
||||||
//
|
//
|
||||||
}
|
}
|
||||||
callback(new Error('手机号已被使用'))
|
callback(new Error(_this.$t('手机号已被使用')))
|
||||||
},
|
},
|
||||||
trigger: 'blur',
|
trigger: 'blur',
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
code: () => {
|
code: (_this) => {
|
||||||
return {
|
return {
|
||||||
required: true,
|
required: true,
|
||||||
message: '请输入4位数字验证码',
|
message: _this.$t('请输入4位数字验证码'),
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
}
|
}
|
@ -9,9 +9,9 @@ export default (el, binding) => {
|
|||||||
value = value * 1000
|
value = value * 1000
|
||||||
}
|
}
|
||||||
if (modifiers.tip) {
|
if (modifiers.tip) {
|
||||||
el.innerHTML = tool.time.getFormatTime(value)
|
el.innerHTML = tool.time.getFormatTime(binding.instance, value)
|
||||||
el.__timeout__ = setInterval(() => {
|
el.__timeout__ = setInterval(() => {
|
||||||
el.innerHTML = tool.time.getFormatTime(value)
|
el.innerHTML = tool.time.getFormatTime(binding.instance, value)
|
||||||
}, 60000)
|
}, 60000)
|
||||||
} else {
|
} else {
|
||||||
const format = el.getAttribute('format') || undefined
|
const format = el.getAttribute('format') || undefined
|
||||||
|
@ -9,7 +9,7 @@
|
|||||||
<component :is="navMenu.meta.icon || 'el-icon-menu'" />
|
<component :is="navMenu.meta.icon || 'el-icon-menu'" />
|
||||||
</el-icon>
|
</el-icon>
|
||||||
<template #title>
|
<template #title>
|
||||||
<span>{{ navMenu.meta.title }}</span>
|
<span>{{ this.$t(navMenu.meta.title) }}</span>
|
||||||
<span v-if="navMenu.meta.tag" class="menu-tag">{{ navMenu.meta.tag }}</span>
|
<span v-if="navMenu.meta.tag" class="menu-tag">{{ navMenu.meta.tag }}</span>
|
||||||
</template>
|
</template>
|
||||||
</el-menu-item>
|
</el-menu-item>
|
||||||
@ -18,7 +18,7 @@
|
|||||||
<el-icon v-if="navMenu.meta && navMenu.meta.icon">
|
<el-icon v-if="navMenu.meta && navMenu.meta.icon">
|
||||||
<component :is="navMenu.meta.icon || 'el-icon-menu'" />
|
<component :is="navMenu.meta.icon || 'el-icon-menu'" />
|
||||||
</el-icon>
|
</el-icon>
|
||||||
<span>{{ navMenu.meta.title }}</span>
|
<span>{{ this.$t(navMenu.meta.title) }}</span>
|
||||||
<span v-if="navMenu.meta.tag" class="menu-tag">{{ navMenu.meta.tag }}</span>
|
<span v-if="navMenu.meta.tag" class="menu-tag">{{ navMenu.meta.tag }}</span>
|
||||||
</template>
|
</template>
|
||||||
<NavMenu :navMenus="navMenu.children"></NavMenu>
|
<NavMenu :navMenus="navMenu.children"></NavMenu>
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
:class="[isActive(tag) ? 'active' : '', tag.meta.affix ? 'affix' : '']"
|
:class="[isActive(tag) ? 'active' : '', tag.meta.affix ? 'affix' : '']"
|
||||||
@contextmenu.prevent="openContextMenu($event, tag)">
|
@contextmenu.prevent="openContextMenu($event, tag)">
|
||||||
<router-link :to="tag">
|
<router-link :to="tag">
|
||||||
<span>{{ tag.meta.title }}</span>
|
<span>{{ $t(tag.meta.title) }}</span>
|
||||||
<el-icon v-if="!tag.meta.affix" @click.prevent.stop="closeSelectedTag(tag)">
|
<el-icon v-if="!tag.meta.affix" @click.prevent.stop="closeSelectedTag(tag)">
|
||||||
<el-icon-close />
|
<el-icon-close />
|
||||||
</el-icon>
|
</el-icon>
|
||||||
@ -22,39 +22,39 @@
|
|||||||
<el-icon>
|
<el-icon>
|
||||||
<el-icon-refresh />
|
<el-icon-refresh />
|
||||||
</el-icon>
|
</el-icon>
|
||||||
刷新
|
{{ $t('刷新') }}
|
||||||
</li>
|
</li>
|
||||||
<li @click="scheduledRefresh()">
|
<li @click="scheduledRefresh()">
|
||||||
<el-icon>
|
<el-icon>
|
||||||
<el-icon-alarm-clock />
|
<el-icon-alarm-clock />
|
||||||
</el-icon>
|
</el-icon>
|
||||||
定时刷新
|
{{ $t('定时刷新') }}
|
||||||
</li>
|
</li>
|
||||||
<hr />
|
<hr />
|
||||||
<li :class="contextMenuItem.meta.affix ? 'disabled' : ''" @click="closeTabs()">
|
<li :class="contextMenuItem.meta.affix ? 'disabled' : ''" @click="closeTabs()">
|
||||||
<el-icon>
|
<el-icon>
|
||||||
<el-icon-close />
|
<el-icon-close />
|
||||||
</el-icon>
|
</el-icon>
|
||||||
关闭标签
|
{{ $t('关闭标签') }}
|
||||||
</li>
|
</li>
|
||||||
<li @click="closeOtherTabs()">
|
<li @click="closeOtherTabs()">
|
||||||
<el-icon>
|
<el-icon>
|
||||||
<el-icon-folder-delete />
|
<el-icon-folder-delete />
|
||||||
</el-icon>
|
</el-icon>
|
||||||
关闭其他标签
|
{{ $t('关闭其他标签') }}
|
||||||
</li>
|
</li>
|
||||||
<hr />
|
<hr />
|
||||||
<li @click="maximize()">
|
<li @click="maximize()">
|
||||||
<el-icon>
|
<el-icon>
|
||||||
<el-icon-full-screen />
|
<el-icon-full-screen />
|
||||||
</el-icon>
|
</el-icon>
|
||||||
最大化
|
{{ $t('最大化') }}
|
||||||
</li>
|
</li>
|
||||||
<li @click="openWindow()">
|
<li @click="openWindow()">
|
||||||
<el-icon>
|
<el-icon>
|
||||||
<el-icon-copy-document />
|
<el-icon-copy-document />
|
||||||
</el-icon>
|
</el-icon>
|
||||||
在新的窗口中打开
|
{{ $t('在新的窗口中打开') }}
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</transition>
|
</transition>
|
||||||
@ -200,9 +200,9 @@ export default {
|
|||||||
async scheduledRefresh() {
|
async scheduledRefresh() {
|
||||||
this.closeMenu()
|
this.closeMenu()
|
||||||
try {
|
try {
|
||||||
const sleep = await this.$prompt('刷新时间间隔(秒)', '定时刷新', {
|
const sleep = await this.$prompt(this.$t('刷新时间间隔(秒)'), this.$t('定时刷新'), {
|
||||||
inputPattern: /^[1-9]\d*$/,
|
inputPattern: /^[1-9]\d*$/,
|
||||||
inputErrorMessage: '时间必须为数字',
|
inputErrorMessage: this.$t('时间必须为数字'),
|
||||||
inputValue: '10',
|
inputValue: '10',
|
||||||
})
|
})
|
||||||
const sleepSecs = parseInt(sleep.value)
|
const sleepSecs = parseInt(sleep.value)
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
<el-container v-loading="loading">
|
<el-container v-loading="loading">
|
||||||
<el-header class="flex" style="justify-content: space-evenly; height: unset">
|
<el-header class="flex" style="justify-content: space-evenly; height: unset">
|
||||||
<div v-if="failJobs">
|
<div v-if="failJobs">
|
||||||
<el-badge :hidden="fail === 0" :value="`${$TOOL.time.getFormatTime(new Date(failJobViewTime).getTime())} 至今 ${fail}个`">
|
<el-badge :hidden="fail === 0" :value="`${$TOOL.time.getFormatTime(this, new Date(failJobViewTime).getTime())} 至今 ${fail}个`">
|
||||||
<el-button
|
<el-button
|
||||||
@click="
|
@click="
|
||||||
() => {
|
() => {
|
||||||
@ -41,9 +41,9 @@
|
|||||||
<el-col :lg="12">
|
<el-col :lg="12">
|
||||||
<el-empty v-if="!failJobs">
|
<el-empty v-if="!failJobs">
|
||||||
<template #description>
|
<template #description>
|
||||||
<p>{{ $TOOL.time.getFormatTime(new Date(failJobViewTime).getTime()) }}</p>
|
<p>{{ $TOOL.time.getFormatTime(this, new Date(failJobViewTime).getTime()) }}</p>
|
||||||
<p>至今</p>
|
<p>{{ $t('至今') }}</p>
|
||||||
<p>未发现新的异常作业</p>
|
<p>{{ $t('未发现新的异常作业') }}</p>
|
||||||
</template>
|
</template>
|
||||||
</el-empty>
|
</el-empty>
|
||||||
<el-card
|
<el-card
|
||||||
@ -88,9 +88,9 @@
|
|||||||
<div class="jobMain">
|
<div class="jobMain">
|
||||||
<div class="title">
|
<div class="title">
|
||||||
<h2>{{ job.jobName }}</h2>
|
<h2>{{ job.jobName }}</h2>
|
||||||
<p>{{ $t('上次执行:') }}<span v-time.tip="job.lastExecTime" :title="job.lastExecTime"></span></p>
|
<p>{{ $t('上次执行') }}:<span v-time.tip="job.lastExecTime" :title="job.lastExecTime"></span></p>
|
||||||
<p>
|
<p>
|
||||||
下次执行:<span>{{ job.nextExecTime }}</span>
|
{{ $t('下次执行') }}:<span>{{ job.nextExecTime }}</span>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
<div class="bottom">
|
<div class="bottom">
|
||||||
|
@ -501,4 +501,125 @@ export default {
|
|||||||
本页: 'Page',
|
本页: 'Page',
|
||||||
'JSON 格式化': 'JSON formatting',
|
'JSON 格式化': 'JSON formatting',
|
||||||
格式错误: 'Format error',
|
格式错误: 'Format error',
|
||||||
|
模块信息: 'Module information',
|
||||||
|
当前项目模块信息: 'Current project module information',
|
||||||
|
本周: 'This week',
|
||||||
|
本月: 'This month',
|
||||||
|
后退一月: 'Back a month',
|
||||||
|
最近整点: 'Last hour',
|
||||||
|
'手机号 / 邮箱': 'Phone / Email',
|
||||||
|
后退一周: 'Back a week',
|
||||||
|
用户数量: 'Number of users',
|
||||||
|
复制角色: 'Copy the role',
|
||||||
|
删除角色: 'Delete the role',
|
||||||
|
删除部门: 'Delete a department',
|
||||||
|
作业日志: 'Job logs',
|
||||||
|
上次执行状态: 'Last Execution Status',
|
||||||
|
立即执行: 'Execute it now',
|
||||||
|
复制作业: 'Copy the job',
|
||||||
|
'项名 / 项值 / 备注': 'Item Name / Item Value / Notes',
|
||||||
|
设置项值: 'Set the item value',
|
||||||
|
过期时间: 'Expiration time',
|
||||||
|
查看缓存: 'View the cache',
|
||||||
|
删除缓存: 'Delete the cache',
|
||||||
|
文档分类: 'Document classification',
|
||||||
|
档案可见性: 'Archive visibility',
|
||||||
|
文档标题: 'The title of the document',
|
||||||
|
错误码: 'Error codes',
|
||||||
|
登录用户名: 'Login username',
|
||||||
|
客户端IP地址: 'Client IP address',
|
||||||
|
授权信息: 'Authorization Information',
|
||||||
|
用户标识: 'User ID',
|
||||||
|
授权令牌: 'Authorization tokens',
|
||||||
|
复制授权令牌: 'Copy the authorization token',
|
||||||
|
异常日志: 'Exception logs',
|
||||||
|
没有正在执行的作业: 'There are no jobs in progress',
|
||||||
|
空闲: 'Idle',
|
||||||
|
请输入用户名: 'Please enter a username',
|
||||||
|
请输入密码: 'Please enter your password',
|
||||||
|
'用户名 / 手机 / 邮箱': 'Username / Phone / Email',
|
||||||
|
您的手机号码: 'Your mobile phone number',
|
||||||
|
请输入4位数字验证码: 'Please enter a 4-digit verification code',
|
||||||
|
'8位以上数字字母组合': 'A combination of more than 8 digits of numbers and letters',
|
||||||
|
请再次输入密码: 'Please enter your password again',
|
||||||
|
发送成功: 'The sending was successful',
|
||||||
|
操作指引: 'How-to instructions',
|
||||||
|
'按下 {key} 可关闭当前标签页': 'Press {key} to close the current tab',
|
||||||
|
'按下 {key} 可关闭其它标签页': 'Press {key} to close other tabs',
|
||||||
|
'按下 {key} 快速查找菜单功能': 'Press {key} to quickly find the menu function',
|
||||||
|
原手机验证码: 'The verification code of the original mobile phone',
|
||||||
|
原手机号码: 'Original mobile phone number',
|
||||||
|
手机验证码: 'Mobile phone verification code',
|
||||||
|
邮箱已被使用: 'The email is already in use',
|
||||||
|
您的邮箱地址: 'Your email address',
|
||||||
|
自定义首页布局: 'Customize the homepage layout',
|
||||||
|
'喜欢就点个 Star⭐️ 吧!': 'If you like, order a Star⭐️!',
|
||||||
|
完成: 'Finish',
|
||||||
|
没有部件啦: 'There are no parts',
|
||||||
|
恢复默认: 'Restore the default',
|
||||||
|
添加部件: 'Add a part',
|
||||||
|
添加自定义布局: 'Add custom layouts',
|
||||||
|
'请输入以空格分隔的24分栏布局:如【24】或【12 12】或【8 8 8】': 'Please enter a 24-column layout separated by spaces: e.g. 24 or 12 12 or 8 8 8',
|
||||||
|
添加一行: 'Add a line',
|
||||||
|
'第 {n} 行': 'Line {n}',
|
||||||
|
版本信息: 'Version information',
|
||||||
|
外部组件: 'External components',
|
||||||
|
至今: 'Ever since',
|
||||||
|
未发现新的异常作业: 'No new anomalous jobs were found',
|
||||||
|
刚刚: 'Newly',
|
||||||
|
'{n} 天前': '{n} days ago',
|
||||||
|
'{n} 分钟前': '{n} minutes ago',
|
||||||
|
'{n} 小时前': '{n} hours ago',
|
||||||
|
下次执行: 'Next time',
|
||||||
|
成功率: 'Success rate',
|
||||||
|
总数: 'Total',
|
||||||
|
随机延时: 'Random delay',
|
||||||
|
'结束值(毫秒)': 'End Value (ms)',
|
||||||
|
'起始值(毫秒)': 'Starting Value (ms)',
|
||||||
|
复制: 'Copy',
|
||||||
|
新增: 'New',
|
||||||
|
'数据已导出(上限 {n} 条)': 'Data exported (Maximum {n} entries)',
|
||||||
|
同步成功: 'Synchronization succeeded',
|
||||||
|
缓存详情: 'Cache details',
|
||||||
|
操作日志: 'Operation logs',
|
||||||
|
数据权限: 'Data Permissions',
|
||||||
|
首页视图: 'Home view',
|
||||||
|
删除配置: 'Delete the configuration',
|
||||||
|
所属字典目录: 'Dictionary catalog',
|
||||||
|
删除字典项: 'Delete dictionary entries',
|
||||||
|
接口总数: 'Total number of apis',
|
||||||
|
所属文档分类: 'Document catalog',
|
||||||
|
请选择所属文档分类: 'Please select the document category',
|
||||||
|
请输入文档标题: 'Please enter a title for the document',
|
||||||
|
请输入文档内容: 'Please enter the content of the document',
|
||||||
|
请选择档案可见性: 'Please select profile visibility',
|
||||||
|
文档内容: 'Document content',
|
||||||
|
主控面板: 'Dashboard',
|
||||||
|
权限管理: 'Permissions',
|
||||||
|
用户管理: 'User',
|
||||||
|
角色管理: 'Role',
|
||||||
|
部门管理: 'Department',
|
||||||
|
菜单管理: 'Menu',
|
||||||
|
系统管理: 'System',
|
||||||
|
计划作业: 'Schedule jobs',
|
||||||
|
字典管理: 'Dictionary',
|
||||||
|
消息管理: 'Message',
|
||||||
|
接口管理: 'API',
|
||||||
|
缓存管理: 'Cache',
|
||||||
|
档案管理: 'Archives',
|
||||||
|
文档管理: 'Document',
|
||||||
|
日志管理: 'Log',
|
||||||
|
开发管理: 'Development',
|
||||||
|
代码生成: 'Code generation',
|
||||||
|
定时刷新: 'Refresh on interval',
|
||||||
|
关闭标签: 'Close the tab',
|
||||||
|
关闭其他标签: 'Close other tabs',
|
||||||
|
最大化: 'Maximum',
|
||||||
|
在新的窗口中打开: 'Opens in a new window',
|
||||||
|
'刷新时间间隔(秒)': 'Refresh interval (seconds)',
|
||||||
|
时间必须为数字: 'The time must be a number',
|
||||||
|
菜单: 'Menu',
|
||||||
|
链接: 'Link',
|
||||||
|
框架: 'IFrame',
|
||||||
|
按钮: 'Button',
|
||||||
}
|
}
|
@ -501,4 +501,123 @@ export default {
|
|||||||
'按下 {key} 可关闭当前标签页': '按下 {key} 可关闭当前标签页',
|
'按下 {key} 可关闭当前标签页': '按下 {key} 可关闭当前标签页',
|
||||||
'按下 {key} 可关闭其它标签页': '按下 {key} 可关闭其它标签页',
|
'按下 {key} 可关闭其它标签页': '按下 {key} 可关闭其它标签页',
|
||||||
'按下 {key} 快速查找菜单功能': '按下 {key} 快速查找菜单功能',
|
'按下 {key} 快速查找菜单功能': '按下 {key} 快速查找菜单功能',
|
||||||
|
模块信息: '模块信息',
|
||||||
|
当前项目模块信息: '当前项目模块信息',
|
||||||
|
本周: '本周',
|
||||||
|
本月: '本月',
|
||||||
|
后退一月: '后退一月',
|
||||||
|
最近整点: '最近整点',
|
||||||
|
'手机号 / 邮箱': '手机号 / 邮箱',
|
||||||
|
后退一周: '后退一周',
|
||||||
|
用户数量: '用户数量',
|
||||||
|
复制角色: '复制角色',
|
||||||
|
删除角色: '删除角色',
|
||||||
|
删除部门: '删除部门',
|
||||||
|
作业日志: '作业日志',
|
||||||
|
上次执行状态: '上次执行状态',
|
||||||
|
立即执行: '立即执行',
|
||||||
|
复制作业: '复制作业',
|
||||||
|
'项名 / 项值 / 备注': '项名 / 项值 / 备注',
|
||||||
|
设置项值: '设置项值',
|
||||||
|
过期时间: '过期时间',
|
||||||
|
查看缓存: '查看缓存',
|
||||||
|
删除缓存: '删除缓存',
|
||||||
|
文档分类: '文档分类',
|
||||||
|
档案可见性: '档案可见性',
|
||||||
|
文档标题: '文档标题',
|
||||||
|
错误码: '错误码',
|
||||||
|
登录用户名: '登录用户名',
|
||||||
|
客户端IP地址: '客户端IP地址',
|
||||||
|
授权信息: '授权信息',
|
||||||
|
用户标识: '用户标识',
|
||||||
|
授权令牌: '授权令牌',
|
||||||
|
复制授权令牌: '复制授权令牌',
|
||||||
|
重置为默认值: '重置为默认值',
|
||||||
|
异常日志: '异常日志',
|
||||||
|
没有正在执行的作业: '没有正在执行的作业',
|
||||||
|
空闲: '空闲',
|
||||||
|
请输入用户名: '请输入用户名',
|
||||||
|
'用户名 / 手机 / 邮箱': '用户名 / 手机 / 邮箱',
|
||||||
|
请输入密码: '请输入密码',
|
||||||
|
您的手机号码: '您的手机号码',
|
||||||
|
请输入4位数字验证码: '请输入4位数字验证码',
|
||||||
|
'8位以上数字字母组合': '8位以上数字字母组合',
|
||||||
|
请再次输入密码: '请再次输入密码',
|
||||||
|
发送成功: '发送成功',
|
||||||
|
操作指引: '操作指引',
|
||||||
|
原手机验证码: '原手机验证码',
|
||||||
|
原手机号码: '原手机号码',
|
||||||
|
手机验证码: '手机验证码',
|
||||||
|
邮箱已被使用: '邮箱已被使用',
|
||||||
|
您的邮箱地址: '您的邮箱地址',
|
||||||
|
自定义首页布局: '自定义首页布局',
|
||||||
|
'喜欢就点个 Star⭐️ 吧!': '喜欢就点个 Star⭐️ 吧!',
|
||||||
|
完成: '完成',
|
||||||
|
没有部件啦: '没有部件啦',
|
||||||
|
恢复默认: '恢复默认',
|
||||||
|
添加部件: '添加部件',
|
||||||
|
添加自定义布局: '添加自定义布局',
|
||||||
|
'请输入以空格分隔的24分栏布局:如【24】或【12 12】或【8 8 8】': '请输入以空格分隔的24分栏布局:如【24】或【12 12】或【8 8 8】',
|
||||||
|
添加一行: '添加一行',
|
||||||
|
'第 {n} 行': '第 {n} 行',
|
||||||
|
版本信息: '版本信息',
|
||||||
|
外部组件: '外部组件',
|
||||||
|
至今: '至今',
|
||||||
|
未发现新的异常作业: '未发现新的异常作业',
|
||||||
|
刚刚: '刚刚',
|
||||||
|
'{n} 天前': '{n} 天前',
|
||||||
|
'{n} 分钟前': '{n} 分钟前',
|
||||||
|
'{n} 小时前': '{n} 小时前',
|
||||||
|
下次执行: '下次执行',
|
||||||
|
成功率: '成功率',
|
||||||
|
总数: '总数',
|
||||||
|
随机延时: '随机延时',
|
||||||
|
'结束值(毫秒)': '结束值(毫秒)',
|
||||||
|
'起始值(毫秒)': '起始值(毫秒)',
|
||||||
|
复制: '复制',
|
||||||
|
新增: '新增',
|
||||||
|
'数据已导出(上限 {n} 条)': '数据已导出(上限 {n} 条)',
|
||||||
|
同步成功: '同步成功',
|
||||||
|
缓存详情: '缓存详情',
|
||||||
|
操作日志: '操作日志',
|
||||||
|
数据权限: '数据权限',
|
||||||
|
首页视图: '首页视图',
|
||||||
|
删除配置: '删除配置',
|
||||||
|
所属字典目录: '所属字典目录',
|
||||||
|
删除字典项: '删除字典项',
|
||||||
|
接口总数: '接口总数',
|
||||||
|
所属文档分类: '所属文档分类',
|
||||||
|
请选择所属文档分类: '请选择所属文档分类',
|
||||||
|
请输入文档标题: '请输入文档标题',
|
||||||
|
请输入文档内容: '请输入文档内容',
|
||||||
|
请选择档案可见性: '请选择档案可见性',
|
||||||
|
文档内容: '文档内容',
|
||||||
|
主控面板: '主控面板',
|
||||||
|
权限管理: '权限管理',
|
||||||
|
用户管理: '用户管理',
|
||||||
|
角色管理: '角色管理',
|
||||||
|
部门管理: '部门管理',
|
||||||
|
菜单管理: '菜单管理',
|
||||||
|
系统管理: '系统管理',
|
||||||
|
计划作业: '计划作业',
|
||||||
|
字典管理: '字典管理',
|
||||||
|
消息管理: '消息管理',
|
||||||
|
接口管理: '接口管理',
|
||||||
|
缓存管理: '缓存管理',
|
||||||
|
档案管理: '档案管理',
|
||||||
|
文档管理: '文档管理',
|
||||||
|
日志管理: '日志管理',
|
||||||
|
开发管理: '开发管理',
|
||||||
|
代码生成: '代码生成',
|
||||||
|
定时刷新: '定时刷新',
|
||||||
|
关闭标签: '关闭标签',
|
||||||
|
关闭其他标签: '关闭其他标签',
|
||||||
|
最大化: '最大化',
|
||||||
|
在新的窗口中打开: '在新的窗口中打开',
|
||||||
|
'刷新时间间隔(秒)': '刷新时间间隔(秒)',
|
||||||
|
时间必须为数字: '时间必须为数字',
|
||||||
|
菜单: '菜单',
|
||||||
|
链接: '链接',
|
||||||
|
框架: '框架',
|
||||||
|
按钮: '按钮',
|
||||||
}
|
}
|
@ -37,7 +37,7 @@ tool.time = {
|
|||||||
return date.getFullYear() + '-' + month + '-' + day
|
return date.getFullYear() + '-' + month + '-' + day
|
||||||
},
|
},
|
||||||
//转换时间
|
//转换时间
|
||||||
getFormatTime: function (timestamp) {
|
getFormatTime: function (_this, timestamp) {
|
||||||
timestamp = new Date(timestamp)
|
timestamp = new Date(timestamp)
|
||||||
const now = this.getUnix()
|
const now = this.getUnix()
|
||||||
const today = this.getTodayUnix()
|
const today = this.getTodayUnix()
|
||||||
@ -46,15 +46,15 @@ tool.time = {
|
|||||||
let tip
|
let tip
|
||||||
|
|
||||||
if (timer <= 0) {
|
if (timer <= 0) {
|
||||||
tip = '刚刚'
|
tip = _this.$t('刚刚')
|
||||||
} else if (Math.floor(timer / 60) <= 0) {
|
} else if (Math.floor(timer / 60) <= 0) {
|
||||||
tip = '刚刚'
|
tip = _this.$t('刚刚')
|
||||||
} else if (timer < 3600) {
|
} else if (timer < 3600) {
|
||||||
tip = Math.floor(timer / 60) + '分钟前'
|
tip = _this.$t('{n} 分钟前', { n: Math.floor(timer / 60) })
|
||||||
} else if (timer >= 3600 && (timestamp - today >= 0 || Math.floor(timer / 86400) <= 0)) {
|
} else if (timer >= 3600 && (timestamp - today >= 0 || Math.floor(timer / 86400) <= 0)) {
|
||||||
tip = Math.floor(timer / 3600) + '小时前'
|
tip = _this.$t('{n} 小时前', { n: Math.floor(timer / 3600) })
|
||||||
} else if (timer / 86400 <= 31) {
|
} else if (timer / 86400 <= 31) {
|
||||||
tip = Math.floor(timer / 86400) + '天前'
|
tip = _this.$t('{n} 天前', { n: Math.floor(timer / 86400) })
|
||||||
} else {
|
} else {
|
||||||
tip = this.getLastDate(timestamp)
|
tip = this.getLastDate(timestamp)
|
||||||
}
|
}
|
||||||
|
@ -109,7 +109,7 @@ export default {
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
passwordText2: naFormPassword.passwordText2(() => this.form.passwordText),
|
passwordText2: naFormPassword.passwordText2(this, () => this.form.passwordText),
|
||||||
passwordText: naFormPassword.passwordText(this),
|
passwordText: naFormPassword.passwordText(this),
|
||||||
userName: [
|
userName: [
|
||||||
{ required: true, message: this.$t('请输入用户名') },
|
{ required: true, message: this.$t('请输入用户名') },
|
||||||
|
@ -61,7 +61,7 @@ export default {
|
|||||||
destDevice: phoneConfig.mobile(this),
|
destDevice: phoneConfig.mobile(this),
|
||||||
code: phoneConfig.code(this),
|
code: phoneConfig.code(this),
|
||||||
},
|
},
|
||||||
passwordText2: naFormPassword.passwordText2(() => this.form.passwordText),
|
passwordText2: naFormPassword.passwordText2(this, () => this.form.passwordText),
|
||||||
passwordText: naFormPassword.passwordText(this),
|
passwordText: naFormPassword.passwordText(this),
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
@ -3,19 +3,21 @@
|
|||||||
<el-form :model="form" ref="form">
|
<el-form :model="form" ref="form">
|
||||||
<el-form-item
|
<el-form-item
|
||||||
v-for="(row, index) in form.rows"
|
v-for="(row, index) in form.rows"
|
||||||
:label="`第${index + 1}行`"
|
:label="$t('第 {n} 行', { n: index + 1 })"
|
||||||
:prop="'rows.' + index + '.value'"
|
:prop="'rows.' + index + '.value'"
|
||||||
:rules="{
|
:rules="{
|
||||||
required: true,
|
required: true,
|
||||||
message: '请输入以空格分隔的24分栏布局:如【24】或【12 12】或【8 8 8】',
|
message: $t('请输入以空格分隔的24分栏布局:如【24】或【12 12】或【8 8 8】'),
|
||||||
trigger: 'blur',
|
trigger: 'blur',
|
||||||
}">
|
}">
|
||||||
<el-input
|
<el-input
|
||||||
v-model="form.rows[index].value"
|
v-model="form.rows[index].value"
|
||||||
:input="form.rows[index].value = form.rows[index].value.replace(/[^0-9 ]/g, '')"
|
:input="form.rows[index].value = form.rows[index].value.replace(/[^0-9 ]/g, '')"
|
||||||
placeholder="请输入以空格分隔的24分栏布局:如【24】或【12 12】或【8 8 8】">
|
:placeholder="$t('请输入以空格分隔的24分栏布局:如【24】或【12 12】或【8 8 8】')">
|
||||||
<template #append>
|
<template #append>
|
||||||
<el-button @click.prevent="form.rows.splice(index, 1)" icon="delete">删除</el-button>
|
<el-button @click.prevent="form.rows.splice(index, 1)" icon="el-icon-delete">
|
||||||
|
{{ $t('删除') }}
|
||||||
|
</el-button>
|
||||||
</template>
|
</template>
|
||||||
</el-input>
|
</el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
@ -32,7 +34,7 @@ export default {
|
|||||||
components: {},
|
components: {},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
title: '添加自定义布局',
|
title: this.$t('添加自定义布局'),
|
||||||
visible: false,
|
visible: false,
|
||||||
form: {
|
form: {
|
||||||
rows: [{ value: '' }],
|
rows: [{ value: '' }],
|
||||||
|
@ -33,7 +33,7 @@
|
|||||||
<el-icon>
|
<el-icon>
|
||||||
<component :is="allComps[element].icon" />
|
<component :is="allComps[element].icon" />
|
||||||
</el-icon>
|
</el-icon>
|
||||||
{{ allComps[element].title }}</label
|
{{ $t(allComps[element].title) }}</label
|
||||||
>
|
>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -51,7 +51,7 @@
|
|||||||
<el-icon>
|
<el-icon>
|
||||||
<el-icon-circle-plus-filled />
|
<el-icon-circle-plus-filled />
|
||||||
</el-icon>
|
</el-icon>
|
||||||
添加部件
|
{{ $t('添加部件') }}
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<el-button v-if="customizing" @click="save" icon="el-icon-check" round type="primary">{{ $t('完成') }}</el-button>
|
<el-button v-if="customizing" @click="save" icon="el-icon-check" round type="primary">{{ $t('完成') }}</el-button>
|
||||||
@ -77,7 +77,9 @@
|
|||||||
</div>
|
</div>
|
||||||
</el-header>
|
</el-header>
|
||||||
<el-header style="height: auto">
|
<el-header style="height: auto">
|
||||||
<el-button @click="this.dialog.customLayout = { title: '添加自定义布局' }" style="margin: 0 auto">添加自定义布局</el-button>
|
<el-button @click="this.dialog.customLayout = { title: this.$t('添加自定义布局') }" style="margin: 0 auto">
|
||||||
|
{{ this.$t('添加自定义布局') }}
|
||||||
|
</el-button>
|
||||||
</el-header>
|
</el-header>
|
||||||
<el-main class="nopadding">
|
<el-main class="nopadding">
|
||||||
<div class="widgets-list">
|
<div class="widgets-list">
|
||||||
|
@ -62,7 +62,7 @@ export default {
|
|||||||
},
|
},
|
||||||
|
|
||||||
destDevice: [emailConfig.email(this)],
|
destDevice: [emailConfig.email(this)],
|
||||||
code: emailConfig.code(),
|
code: emailConfig.code(this),
|
||||||
},
|
},
|
||||||
visible: false,
|
visible: false,
|
||||||
}
|
}
|
||||||
|
@ -58,7 +58,7 @@ export default {
|
|||||||
rules: {
|
rules: {
|
||||||
oldPassword: naFormPassword.passwordText(this),
|
oldPassword: naFormPassword.passwordText(this),
|
||||||
newPassword: naFormPassword.passwordText(this),
|
newPassword: naFormPassword.passwordText(this),
|
||||||
confirmNewPassword: naFormPassword.passwordText2(() => this.form.newPassword),
|
confirmNewPassword: naFormPassword.passwordText2(this, () => this.form.newPassword),
|
||||||
},
|
},
|
||||||
visible: false,
|
visible: false,
|
||||||
}
|
}
|
||||||
|
@ -10,7 +10,7 @@
|
|||||||
<scTable
|
<scTable
|
||||||
:export-api="$API.sys_api.export"
|
:export-api="$API.sys_api.export"
|
||||||
:query-api="$API.sys_api.query"
|
:query-api="$API.sys_api.query"
|
||||||
:summary-method="(x) => ['接口总数', countTotalRows(x.data)]"
|
:summary-method="(x) => [$t('接口总数'), countTotalRows(x.data)]"
|
||||||
default-expand-all
|
default-expand-all
|
||||||
hidePagination
|
hidePagination
|
||||||
ref="table"
|
ref="table"
|
||||||
@ -68,7 +68,7 @@ export default {
|
|||||||
this.loading = true
|
this.loading = true
|
||||||
try {
|
try {
|
||||||
await this.$API.sys_api.sync.post()
|
await this.$API.sys_api.sync.post()
|
||||||
this.$message.success('同步成功')
|
this.$message.success(this.$t('同步成功'))
|
||||||
} catch {
|
} catch {
|
||||||
//
|
//
|
||||||
}
|
}
|
||||||
|
@ -87,14 +87,14 @@
|
|||||||
:buttons="[
|
:buttons="[
|
||||||
{
|
{
|
||||||
icon: 'el-icon-view',
|
icon: 'el-icon-view',
|
||||||
title: '查看缓存',
|
title: $t('查看缓存'),
|
||||||
click: viewClick,
|
click: viewClick,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
icon: 'el-icon-delete',
|
icon: 'el-icon-delete',
|
||||||
type: 'danger',
|
type: 'danger',
|
||||||
confirm: true,
|
confirm: true,
|
||||||
title: '删除缓存',
|
title: $t('删除缓存'),
|
||||||
click: delClick,
|
click: delClick,
|
||||||
},
|
},
|
||||||
]"
|
]"
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
<el-row :gutter="15">
|
<el-row :gutter="15">
|
||||||
<el-col :lg="24">
|
<el-col :lg="24">
|
||||||
<el-card shadow="never">
|
<el-card shadow="never">
|
||||||
<scStatistic :value="statistics.total" group-separator title="总数"></scStatistic>
|
<scStatistic :title="$t('总数')" :value="statistics.total" group-separator></scStatistic>
|
||||||
</el-card>
|
</el-card>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
@ -90,7 +90,7 @@
|
|||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<naColOperation
|
<naColOperation
|
||||||
:buttons="naColOperation.buttons.concat(naColOperation.delButton('删除部门', $API.sys_config.delete))"
|
:buttons="naColOperation.buttons.concat(naColOperation.delButton(this.$t('删除配置'), $API.sys_config.delete))"
|
||||||
:vue="this"
|
:vue="this"
|
||||||
width="150" />
|
width="150" />
|
||||||
</scTable>
|
</scTable>
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
<el-row :gutter="15">
|
<el-row :gutter="15">
|
||||||
<el-col :lg="24">
|
<el-col :lg="24">
|
||||||
<el-card shadow="never">
|
<el-card shadow="never">
|
||||||
<scStatistic :value="statistics.total" group-separator title="总数"></scStatistic>
|
<scStatistic :title="$t('总数')" :value="statistics.total" group-separator></scStatistic>
|
||||||
</el-card>
|
</el-card>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
@ -103,7 +103,7 @@
|
|||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<naColOperation
|
<naColOperation
|
||||||
:buttons="naColOperation.buttons.concat(naColOperation.delButton('删除部门', $API.sys_dept.delete))"
|
:buttons="naColOperation.buttons.concat(naColOperation.delButton(this.$t('删除部门'), $API.sys_dept.delete))"
|
||||||
:vue="this"
|
:vue="this"
|
||||||
width="120" />
|
width="120" />
|
||||||
</scTable>
|
</scTable>
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
<el-row :gutter="15">
|
<el-row :gutter="15">
|
||||||
<el-col :lg="24">
|
<el-col :lg="24">
|
||||||
<el-card shadow="never">
|
<el-card shadow="never">
|
||||||
<scStatistic :value="statistics.total" group-separator title="总数"></scStatistic>
|
<scStatistic :title="$t('总数')" :value="statistics.total" group-separator></scStatistic>
|
||||||
</el-card>
|
</el-card>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
@ -100,7 +100,7 @@
|
|||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<naColOperation
|
<naColOperation
|
||||||
:buttons="naColOperation.buttons.concat(naColOperation.delButton('删除字典项', $API.sys_dic.deleteContent))"
|
:buttons="naColOperation.buttons.concat(naColOperation.delButton(this.$t('删除字典项'), $API.sys_dic.deleteContent))"
|
||||||
:vue="this"
|
:vue="this"
|
||||||
width="120" />
|
width="120" />
|
||||||
</scTable>
|
</scTable>
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
<el-row :gutter="15">
|
<el-row :gutter="15">
|
||||||
<el-col :lg="24">
|
<el-col :lg="24">
|
||||||
<el-card shadow="never">
|
<el-card shadow="never">
|
||||||
<scStatistic :value="statistics.total" group-separator title="总数"></scStatistic>
|
<scStatistic :title="$t('总数')" :value="statistics.total" group-separator></scStatistic>
|
||||||
</el-card>
|
</el-card>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
|
@ -60,10 +60,10 @@ export default {
|
|||||||
mode: 'add',
|
mode: 'add',
|
||||||
//验证规则
|
//验证规则
|
||||||
rules: {
|
rules: {
|
||||||
catalogId: [{ required: true, message: '请选择所属文档分类' }],
|
catalogId: [{ required: true, message: this.$t('请选择所属文档分类') }],
|
||||||
title: [{ required: true, message: '请输入文档标题' }],
|
title: [{ required: true, message: this.$t('请输入文档标题') }],
|
||||||
body: [{ required: true, message: '请输入文档内容' }],
|
body: [{ required: true, message: this.$t('请输入文档内容') }],
|
||||||
visibility: [{ required: true, message: '请选择档案可见性' }],
|
visibility: [{ required: true, message: this.$t('请选择档案可见性') }],
|
||||||
},
|
},
|
||||||
titleMap: {
|
titleMap: {
|
||||||
add: this.$t('新增文档'),
|
add: this.$t('新增文档'),
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
<el-row :gutter="15">
|
<el-row :gutter="15">
|
||||||
<el-col :lg="24">
|
<el-col :lg="24">
|
||||||
<el-card shadow="never">
|
<el-card shadow="never">
|
||||||
<scStatistic :value="statistics.total" group-separator title="总数"></scStatistic>
|
<scStatistic :title="$t('总数')" :value="statistics.total" group-separator></scStatistic>
|
||||||
</el-card>
|
</el-card>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
@ -211,16 +211,16 @@
|
|||||||
naColOperation.buttons.concat(
|
naColOperation.buttons.concat(
|
||||||
{
|
{
|
||||||
icon: 'el-icon-video-play',
|
icon: 'el-icon-video-play',
|
||||||
title: '立即执行',
|
title: $t('立即执行'),
|
||||||
click: execute,
|
click: execute,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
icon: 'el-icon-document-copy',
|
icon: 'el-icon-document-copy',
|
||||||
confirm: true,
|
confirm: true,
|
||||||
title: '复制作业',
|
title: $t('复制作业'),
|
||||||
click: copyJob,
|
click: copyJob,
|
||||||
},
|
},
|
||||||
naColOperation.delButton('删除作业', $API.sys_job.delete),
|
naColOperation.delButton($t('删除作业'), $API.sys_job.delete),
|
||||||
)
|
)
|
||||||
"
|
"
|
||||||
:vue="this"
|
:vue="this"
|
||||||
|
@ -4,12 +4,12 @@
|
|||||||
<el-row :gutter="15">
|
<el-row :gutter="15">
|
||||||
<el-col :span="12">
|
<el-col :span="12">
|
||||||
<el-card shadow="never">
|
<el-card shadow="never">
|
||||||
<scStatistic :value="statistics.total" group-separator title="总数"></scStatistic>
|
<scStatistic :title="$t('总数')" :value="statistics.total" group-separator></scStatistic>
|
||||||
</el-card>
|
</el-card>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="12">
|
<el-col :span="12">
|
||||||
<el-card shadow="never">
|
<el-card shadow="never">
|
||||||
<scStatistic :value="statistics.rate" suffix="%" title="成功率"></scStatistic>
|
<scStatistic :title="$t('成功率')" :value="statistics.rate" suffix="%"></scStatistic>
|
||||||
</el-card>
|
</el-card>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
<el-row :gutter="15">
|
<el-row :gutter="15">
|
||||||
<el-col :lg="24">
|
<el-col :lg="24">
|
||||||
<el-card shadow="never">
|
<el-card shadow="never">
|
||||||
<scStatistic :value="statistics.total" group-separator title="总数"></scStatistic>
|
<scStatistic :title="$t('总数')" :value="statistics.total" group-separator></scStatistic>
|
||||||
</el-card>
|
</el-card>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
<el-row :gutter="15">
|
<el-row :gutter="15">
|
||||||
<el-col :lg="24">
|
<el-col :lg="24">
|
||||||
<el-card shadow="never">
|
<el-card shadow="never">
|
||||||
<scStatistic :value="statistics.total" group-separator title="总数"></scStatistic>
|
<scStatistic :title="$t('总数')" :value="statistics.total" group-separator></scStatistic>
|
||||||
</el-card>
|
</el-card>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
|
@ -14,7 +14,7 @@
|
|||||||
:filter-node-method="treeFilterNode"
|
:filter-node-method="treeFilterNode"
|
||||||
:props="{
|
:props="{
|
||||||
label: (data) => {
|
label: (data) => {
|
||||||
return data.meta.title + ' - ' + data.sort
|
return this.$t(data.meta.title) + ' - ' + data.sort
|
||||||
},
|
},
|
||||||
}"
|
}"
|
||||||
@node-click="treeClick"
|
@node-click="treeClick"
|
||||||
|
@ -26,7 +26,9 @@
|
|||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item :label="$t('类型')" prop="meta.type">
|
<el-form-item :label="$t('类型')" prop="meta.type">
|
||||||
<el-radio-group v-model="form.meta.type">
|
<el-radio-group v-model="form.meta.type">
|
||||||
<el-radio-button v-for="(item, i) in this.$GLOBAL.enums.menuTypes" :key="i" :label="i">{{ item[1] }}</el-radio-button>
|
<el-radio-button v-for="(item, i) in this.$GLOBAL.enums.menuTypes" :key="i" :label="i">{{
|
||||||
|
this.$t(item[1])
|
||||||
|
}}</el-radio-button>
|
||||||
</el-radio-group>
|
</el-radio-group>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item :label="$t('别名')" prop="name">
|
<el-form-item :label="$t('别名')" prop="name">
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
<el-row :gutter="15">
|
<el-row :gutter="15">
|
||||||
<el-col :lg="24">
|
<el-col :lg="24">
|
||||||
<el-card shadow="never">
|
<el-card shadow="never">
|
||||||
<scStatistic :value="statistics.total" group-separator title="总数"></scStatistic>
|
<scStatistic :title="$t('总数')" :value="statistics.total" group-separator></scStatistic>
|
||||||
</el-card>
|
</el-card>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
@ -92,7 +92,7 @@
|
|||||||
<el-table-column :label="$t('消息摘要')" min-width="400" prop="summary" show-overflow-tooltip sortable="custom" />
|
<el-table-column :label="$t('消息摘要')" min-width="400" prop="summary" show-overflow-tooltip sortable="custom" />
|
||||||
|
|
||||||
<naColOperation
|
<naColOperation
|
||||||
:buttons="naColOperation.buttons.concat(naColOperation.delButton('删除消息', $API.sys_sitemsg.delete))"
|
:buttons="naColOperation.buttons.concat(naColOperation.delButton($t('删除消息'), $API.sys_sitemsg.delete))"
|
||||||
:vue="this"
|
:vue="this"
|
||||||
width="120" />
|
width="120" />
|
||||||
</scTable>
|
</scTable>
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
<el-row :gutter="15">
|
<el-row :gutter="15">
|
||||||
<el-col :lg="24">
|
<el-col :lg="24">
|
||||||
<el-card shadow="never">
|
<el-card shadow="never">
|
||||||
<scStatistic :value="statistics.total" group-separator title="总数"></scStatistic>
|
<scStatistic :title="$t('总数')" :value="statistics.total" group-separator></scStatistic>
|
||||||
</el-card>
|
</el-card>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
@ -176,10 +176,10 @@
|
|||||||
{
|
{
|
||||||
icon: 'el-icon-document-copy',
|
icon: 'el-icon-document-copy',
|
||||||
confirm: true,
|
confirm: true,
|
||||||
title: '复制角色',
|
title: $t('复制角色'),
|
||||||
click: copyRole,
|
click: copyRole,
|
||||||
},
|
},
|
||||||
naColOperation.delButton('删除角色', $API.sys_role.delete),
|
naColOperation.delButton(this.$t('删除角色'), $API.sys_role.delete),
|
||||||
)
|
)
|
||||||
"
|
"
|
||||||
:vue="this"
|
:vue="this"
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
<el-row :gutter="15">
|
<el-row :gutter="15">
|
||||||
<el-col :lg="24">
|
<el-col :lg="24">
|
||||||
<el-card shadow="never">
|
<el-card shadow="never">
|
||||||
<scStatistic :value="statistics.total" group-separator title="总数"></scStatistic>
|
<scStatistic :title="$t('总数')" :value="statistics.total" group-separator></scStatistic>
|
||||||
</el-card>
|
</el-card>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user