Merge branch 'main' of http://192.168.2.166:3180/OMC/ems_frontend_vue3
This commit is contained in:
@@ -8,6 +8,8 @@ export default {
|
|||||||
title: 'Core Network Management Platform',
|
title: 'Core Network Management Platform',
|
||||||
desc: 'Core Network Management Platform',
|
desc: 'Core Network Management Platform',
|
||||||
loading: 'Please wait...',
|
loading: 'Please wait...',
|
||||||
|
ipnutPlease: 'Please input',
|
||||||
|
selectPlease: 'please select',
|
||||||
tipTitle: 'Prompt',
|
tipTitle: 'Prompt',
|
||||||
msgSuccess: 'Success {msg}',
|
msgSuccess: 'Success {msg}',
|
||||||
errorFields: 'Please fill in the required information in {num} correctly!',
|
errorFields: 'Please fill in the required information in {num} correctly!',
|
||||||
@@ -25,11 +27,13 @@ export default {
|
|||||||
editText: 'Edit',
|
editText: 'Edit',
|
||||||
deleteText: 'Delete',
|
deleteText: 'Delete',
|
||||||
downloadText: 'Download',
|
downloadText: 'Download',
|
||||||
|
import:'Import',
|
||||||
export:'Export',
|
export:'Export',
|
||||||
uploadText: 'Upload',
|
uploadText: 'Upload',
|
||||||
unableNull:' Cannot be empty',
|
unableNull:' Cannot be empty',
|
||||||
moreText: 'More',
|
moreText: 'More',
|
||||||
searchBarText: 'Search bar',
|
searchBarText: 'Search bar',
|
||||||
|
tableStripedText: 'Form Zebra',
|
||||||
reloadText: 'Refresh',
|
reloadText: 'Refresh',
|
||||||
sizeText: 'Density',
|
sizeText: 'Density',
|
||||||
size: {
|
size: {
|
||||||
@@ -59,7 +63,7 @@ export default {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
// 导入
|
// 组件
|
||||||
components: {
|
components: {
|
||||||
UploadModal:{
|
UploadModal:{
|
||||||
uploadTitle:'Data Import',
|
uploadTitle:'Data Import',
|
||||||
@@ -89,6 +93,23 @@ export default {
|
|||||||
codeSmsSend: 'Successfully sent, please pay attention to checking the SMS',
|
codeSmsSend: 'Successfully sent, please pay attention to checking the SMS',
|
||||||
},
|
},
|
||||||
|
|
||||||
|
// 布局
|
||||||
|
loayouts: {
|
||||||
|
rightContent: {
|
||||||
|
fullscreen: "Full Screen",
|
||||||
|
logout: "Logout",
|
||||||
|
profile: "Profile",
|
||||||
|
settings: "Settings",
|
||||||
|
},
|
||||||
|
tabs: {
|
||||||
|
reload: "Refresh current",
|
||||||
|
more: "More Options",
|
||||||
|
closeCurrent: "Close Current",
|
||||||
|
closeOther: "Close Other",
|
||||||
|
closeAll: "Close All",
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
// 页面
|
// 页面
|
||||||
views: {
|
views: {
|
||||||
index: {
|
index: {
|
||||||
@@ -106,6 +127,22 @@ export default {
|
|||||||
serialNum: 'serialNum',
|
serialNum: 'serialNum',
|
||||||
expiryDate: 'expiryDate',
|
expiryDate: 'expiryDate',
|
||||||
},
|
},
|
||||||
|
error: {
|
||||||
|
err403: {
|
||||||
|
ttile: 'No access',
|
||||||
|
subTitle:'Please do not perform illegal operations, you can go back to the main page or return to the',
|
||||||
|
backHome: 'Back to Home',
|
||||||
|
back: 'Back',
|
||||||
|
},
|
||||||
|
err404: {
|
||||||
|
ttile: 'Match page not found',
|
||||||
|
subTitle:'Sorry, the page you are looking for does not exist.',
|
||||||
|
backHome: 'Back to Home',
|
||||||
|
tipTitle: "Can't find the page?",
|
||||||
|
paragraph: 'Try checking the URL for errors and then press the refresh button on your browser.',
|
||||||
|
paragraph1: 'Try to find other content in our application.',
|
||||||
|
},
|
||||||
|
},
|
||||||
login: {
|
login: {
|
||||||
tabPane1: 'Account password login',
|
tabPane1: 'Account password login',
|
||||||
tabPane2: 'Login with phone number',
|
tabPane2: 'Login with phone number',
|
||||||
@@ -361,6 +398,8 @@ export default {
|
|||||||
execUPFStart: 'Execution successful, please stop capturing packets according to the situation',
|
execUPFStart: 'Execution successful, please stop capturing packets according to the situation',
|
||||||
execUPFStopA: 'Stopped, please start capturing packets according to the situation',
|
execUPFStopA: 'Stopped, please start capturing packets according to the situation',
|
||||||
execUPFStop: 'Execution successful, packet capture stopped',
|
execUPFStop: 'Execution successful, packet capture stopped',
|
||||||
|
execUPFCmdA: 'Suitable for other network element anomalies',
|
||||||
|
execUPFCmdB: 'Suitable for UPF anomalies',
|
||||||
},
|
},
|
||||||
task: {
|
task: {
|
||||||
neTypePlease: 'Query network element type',
|
neTypePlease: 'Query network element type',
|
||||||
@@ -487,20 +526,27 @@ export default {
|
|||||||
logoutSuccess: "User {num} has been forcibly retired",
|
logoutSuccess: "User {num} has been forcibly retired",
|
||||||
},
|
},
|
||||||
monitor:{
|
monitor:{
|
||||||
avgLoad: '平均负载',
|
filter: "Global Filter",
|
||||||
memory: '内存',
|
startTime: 'Start Time',
|
||||||
cache: '缓存',
|
endTime: 'End Time',
|
||||||
io: '磁盘',
|
today: 'Today',
|
||||||
network: '网络',
|
yesterday: 'Yesterday',
|
||||||
loadDetail: "负载率",
|
week: 'This Week',
|
||||||
resourceUsage: "资源使用率",
|
month: 'This Month',
|
||||||
read: '读取',
|
avgLoad: 'Average loads',
|
||||||
write: '写入',
|
memory: 'RAM',
|
||||||
readWriteCount: '读写次数',
|
cache: 'Cache',
|
||||||
count: '次',
|
io: 'Disk',
|
||||||
readWriteTime: '读写延迟',
|
network: 'Network',
|
||||||
up: '上行',
|
loadDetail: "Load Factor",
|
||||||
down: '下行',
|
resourceUsage: "Resource utilization rate",
|
||||||
|
read: 'retrieve',
|
||||||
|
write: 'write',
|
||||||
|
readWriteCount: 'Number of reads and writes',
|
||||||
|
count: 'substandard',
|
||||||
|
readWriteTime: 'Read/Write Delay',
|
||||||
|
up: 'up train',
|
||||||
|
down: 'down train',
|
||||||
},
|
},
|
||||||
online:{
|
online:{
|
||||||
mettingId:'Session number',
|
mettingId:'Session number',
|
||||||
@@ -547,23 +593,81 @@ export default {
|
|||||||
email:'E-mail',
|
email:'E-mail',
|
||||||
fromClass:'DEPARTMENT',
|
fromClass:'DEPARTMENT',
|
||||||
userWork:'User position',
|
userWork:'User position',
|
||||||
|
userWorkPlease: 'Please select user post',
|
||||||
userTip:'User Description',
|
userTip:'User Description',
|
||||||
loginPwd:'Login password',
|
loginPwd:'Login password',
|
||||||
updateSure:'Do you want to update existing data',
|
updateSure:'Do you want to update existing data',
|
||||||
downloadObj:'Download Tpl',
|
downloadObj:'Download Tpl',
|
||||||
},
|
},
|
||||||
|
setting: {
|
||||||
|
charMaxLen: 'bit character length',
|
||||||
|
saveSubmit: 'Submit Save',
|
||||||
|
saveSuccess: 'Submit Save Successful',
|
||||||
|
revert: 'Vat',
|
||||||
|
revertSuccess: 'Vat Successful',
|
||||||
|
uploadFormat: 'Only the upload image format ({format}) is supported',
|
||||||
|
uploadSize: 'Image file size must be less than {size}MB',
|
||||||
|
uploadSuccess: 'File uploaded successfully, submit and save to take effect',
|
||||||
|
sysLogo: 'System Logo',
|
||||||
|
sysLogoBrand: 'Brand',
|
||||||
|
sysLogoIcon: 'Icon',
|
||||||
|
sysLogoUpload: 'Upload Logo',
|
||||||
|
sysLogoTipContent: 'Confirm that you want to submit the currently changed logo file?',
|
||||||
|
sysLogoTipContentUpload: 'Are you sure you want to upload the logo file?',
|
||||||
|
sysLogoInstruction: 'The system logo display style is shown in the preview area.',
|
||||||
|
sysLogoInstruction1: 'If you want to change the image, please adjust it accordingly before uploading.',
|
||||||
|
sysLogoInstruction2: 'Show the whole picture to the system logo area, please use transparent background, size ratio size',
|
||||||
|
sysLogoInstruction3: 'Displayed as logo + system name to the system logo area.',
|
||||||
|
sysLogoInstruction4: 'Logo size ratio size',
|
||||||
|
sysName: 'System Name',
|
||||||
|
sysNamePlease: 'Please enter the system name',
|
||||||
|
sysNameLimitation: 'System Name Restrictions',
|
||||||
|
sysNameTipContent: 'Confirm that you want to submit the current changed system name?',
|
||||||
|
sysCopyright: 'Copyright Notice',
|
||||||
|
sysCopyrightPlease: 'Please enter copyright notice',
|
||||||
|
sysCopyrightLimitation: 'Copyright Notice Limitation',
|
||||||
|
sysCopyrightTipContent: 'Confirmation of submitting a copyright notice for the current change?',
|
||||||
|
sysLoginBg: 'Login screen background',
|
||||||
|
sysLoginBgNone: 'No background image',
|
||||||
|
sysLoginBgUpload: 'Upload background image',
|
||||||
|
sysLoginBgTipContentUpload: 'Confirmed to upload login screen background file?',
|
||||||
|
sysLoginBgTipContent: 'Are you sure you want to submit the currently changed login screen background?',
|
||||||
|
sysLoginBgTipContentRevert: 'Are you sure you want to restore the background image to the initial system default background?',
|
||||||
|
sysLoginBgInstruction: 'The background style of the system login interface is shown in the preview area, please refer to the actual display.',
|
||||||
|
sysLoginBgInstruction1: 'Please select the appropriate image for uploading.',
|
||||||
|
sysLoginBgInstruction2: 'Restore the background image to the initial system default background by clicking the Restore button.',
|
||||||
|
},
|
||||||
role:{
|
role:{
|
||||||
allScopeOptions:'All data permissions',
|
allScopeOptions:'All data permissions',
|
||||||
byMyselfScopeOptions:'Custom data permissions',
|
byMyselfScopeOptions:'Custom data permissions',
|
||||||
onlyClassScopeOptions:'Data permissions of this department',
|
onlyClassScopeOptions:'Data permissions of this department',
|
||||||
classAllScopeOptions:'Data permissions for this department and the following',
|
classAllScopeOptions:'Data permissions for this department and the following',
|
||||||
myselfScopeOptions:'Only personal data permissions',
|
myselfScopeOptions:'Only personal data permissions',
|
||||||
roleId:'Role number',
|
roleId:'Role Id',
|
||||||
roleName:'Role Name',
|
roleName:'Role Name',
|
||||||
roleKey:'Role key',
|
roleKey:'Role Key',
|
||||||
roleSort:'Role order',
|
roleSort:'Role order',
|
||||||
roleStatus:'Role status',
|
roleStatus:'Status',
|
||||||
createTime:'Creation time',
|
createTime:'Creation time',
|
||||||
|
trueValue:'Please enter {msg} correctly',
|
||||||
|
roleInfo:'Role information',
|
||||||
|
distribute:'Assign data permissions',
|
||||||
|
open:'Enable',
|
||||||
|
close:'Deactivate',
|
||||||
|
statusSure:'Are you sure you want {text} {roleName} role?',
|
||||||
|
statusFailed:'{roleName} {text} failed',
|
||||||
|
delSure:'Confirm to delete the data item with role number [{roleId}]?',
|
||||||
|
distributeUser:'Assign users',
|
||||||
|
roleMark:'Role Description',
|
||||||
|
menu:'Menu permissions',
|
||||||
|
roleKeyTip:"Example of permission identification: Use permission identification in dba controller, such as: @PreAuthorize({ hasRoles: ['dba'] })",
|
||||||
|
openSwitch:'Expand/Collapse',
|
||||||
|
selAllSwitch:'Select all/Deselect all',
|
||||||
|
relationSwitch:'Father and son linkage',
|
||||||
|
normal:'Normal',
|
||||||
|
stop:'Pause',
|
||||||
|
preScope:'Scope of authority',
|
||||||
|
dataPer:'Data permission',
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -8,6 +8,8 @@ export default {
|
|||||||
title: '核心网管理平台',
|
title: '核心网管理平台',
|
||||||
desc: '核心网管理平台',
|
desc: '核心网管理平台',
|
||||||
loading: '请稍等...',
|
loading: '请稍等...',
|
||||||
|
ipnutPlease: '请输入',
|
||||||
|
selectPlease: '请选择',
|
||||||
tipTitle: '提示',
|
tipTitle: '提示',
|
||||||
msgSuccess: '{msg}成功 ',
|
msgSuccess: '{msg}成功 ',
|
||||||
errorFields: '请正确填写 {num} 处必填信息!',
|
errorFields: '请正确填写 {num} 处必填信息!',
|
||||||
@@ -25,11 +27,13 @@ export default {
|
|||||||
editText: '编辑',
|
editText: '编辑',
|
||||||
deleteText: '删除',
|
deleteText: '删除',
|
||||||
downloadText: '下载',
|
downloadText: '下载',
|
||||||
|
import:'导入',
|
||||||
export:'导出',
|
export:'导出',
|
||||||
uploadText: '上传',
|
uploadText: '上传',
|
||||||
unableNull:'不能为空',
|
unableNull:'不能为空',
|
||||||
moreText: '更多',
|
moreText: '更多',
|
||||||
searchBarText: '搜索栏',
|
searchBarText: '搜索栏',
|
||||||
|
tableStripedText: '表格斑马纹',
|
||||||
reloadText: '刷新',
|
reloadText: '刷新',
|
||||||
sizeText: '密度',
|
sizeText: '密度',
|
||||||
size: {
|
size: {
|
||||||
@@ -59,7 +63,7 @@ export default {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
// 导入
|
// 组件
|
||||||
components: {
|
components: {
|
||||||
UploadModal:{
|
UploadModal:{
|
||||||
uploadTitle:'数据导入',
|
uploadTitle:'数据导入',
|
||||||
@@ -89,6 +93,23 @@ export default {
|
|||||||
codeSmsSend: '发送成功,请注意查看短信',
|
codeSmsSend: '发送成功,请注意查看短信',
|
||||||
},
|
},
|
||||||
|
|
||||||
|
// 布局
|
||||||
|
loayouts: {
|
||||||
|
rightContent: {
|
||||||
|
fullscreen: "全屏显示",
|
||||||
|
logout: "退出登录",
|
||||||
|
profile: "个人中心",
|
||||||
|
settings: "个人设置",
|
||||||
|
},
|
||||||
|
tabs: {
|
||||||
|
reload: "刷新当前",
|
||||||
|
more: "更多选项",
|
||||||
|
closeCurrent: "关闭当前",
|
||||||
|
closeOther: "关闭其他",
|
||||||
|
closeAll: "关闭全部",
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
// 页面
|
// 页面
|
||||||
views: {
|
views: {
|
||||||
index: {
|
index: {
|
||||||
@@ -106,6 +127,22 @@ export default {
|
|||||||
serialNum: '序列号',
|
serialNum: '序列号',
|
||||||
expiryDate: '许可证到期日期',
|
expiryDate: '许可证到期日期',
|
||||||
},
|
},
|
||||||
|
error: {
|
||||||
|
err403: {
|
||||||
|
ttile: '没有访问权限',
|
||||||
|
subTitle:'请不要进行非法操作,您可以返回主页面或返回',
|
||||||
|
backHome: '返回首页',
|
||||||
|
back: '返回',
|
||||||
|
},
|
||||||
|
err404: {
|
||||||
|
ttile: '找不到匹配页面',
|
||||||
|
subTitle:'对不起,您正在寻找的页面不存在。',
|
||||||
|
backHome: '返回首页',
|
||||||
|
tipTitle: '找不到网页?',
|
||||||
|
paragraph: '尝试检查URL的错误,然后按浏览器上的刷新按钮。',
|
||||||
|
paragraph1: '尝试在我们的应用程序中找到其他内容。',
|
||||||
|
},
|
||||||
|
},
|
||||||
login: {
|
login: {
|
||||||
tabPane1: '账号密码登录',
|
tabPane1: '账号密码登录',
|
||||||
tabPane2: '手机号登录',
|
tabPane2: '手机号登录',
|
||||||
@@ -361,6 +398,8 @@ export default {
|
|||||||
execUPFStart: '执行成功, 请根据情况停止抓包',
|
execUPFStart: '执行成功, 请根据情况停止抓包',
|
||||||
execUPFStopA: '已经停止, 请根据情况开始抓包',
|
execUPFStopA: '已经停止, 请根据情况开始抓包',
|
||||||
execUPFStop: '执行成功, 抓包已停止',
|
execUPFStop: '执行成功, 抓包已停止',
|
||||||
|
execUPFCmdA: '适合其他网元异常,UPF配合抓包的情况',
|
||||||
|
execUPFCmdB: '适合UPF异常需要抓包分析的情况',
|
||||||
},
|
},
|
||||||
task: {
|
task: {
|
||||||
neTypePlease: '请选择网元类型',
|
neTypePlease: '请选择网元类型',
|
||||||
@@ -487,6 +526,13 @@ export default {
|
|||||||
logoutSuccess: "已强退用户 {num}",
|
logoutSuccess: "已强退用户 {num}",
|
||||||
},
|
},
|
||||||
monitor:{
|
monitor:{
|
||||||
|
filter: "全局过滤",
|
||||||
|
startTime: '开始时间',
|
||||||
|
endTime: '结束时间',
|
||||||
|
today: '昨天',
|
||||||
|
yesterday: '今天',
|
||||||
|
week: '本周',
|
||||||
|
month: '本月',
|
||||||
avgLoad: '平均负载',
|
avgLoad: '平均负载',
|
||||||
memory: '内存',
|
memory: '内存',
|
||||||
cache: '缓存',
|
cache: '缓存',
|
||||||
@@ -547,11 +593,50 @@ export default {
|
|||||||
email:'电子邮箱',
|
email:'电子邮箱',
|
||||||
fromClass:'所属部门',
|
fromClass:'所属部门',
|
||||||
userWork:'用户岗位',
|
userWork:'用户岗位',
|
||||||
|
userWorkPlease: '请选择用户岗位',
|
||||||
userTip:'用户说明',
|
userTip:'用户说明',
|
||||||
loginPwd:'登入密码',
|
loginPwd:'登入密码',
|
||||||
updateSure:'是否更新已经存在的数据',
|
updateSure:'是否更新已经存在的数据',
|
||||||
downloadObj:'下载模板',
|
downloadObj:'下载模板',
|
||||||
},
|
},
|
||||||
|
setting: {
|
||||||
|
charMaxLen: '位字符长度',
|
||||||
|
saveSubmit: '提交保存',
|
||||||
|
saveSuccess: '提交保存成功',
|
||||||
|
revert: '还原',
|
||||||
|
revertSuccess: '还原成功',
|
||||||
|
uploadFormat: '只支持上传图片格式({format})',
|
||||||
|
uploadSize: '图片文件大小必须小于 {size}MB',
|
||||||
|
uploadSuccess: '文件上传成功,提交保存生效',
|
||||||
|
sysLogo: '系统LOGO',
|
||||||
|
sysLogoBrand: '全图',
|
||||||
|
sysLogoIcon: '小图',
|
||||||
|
sysLogoUpload: '上传LOGO',
|
||||||
|
sysLogoTipContent: '确认要提交当前变更的LOGO文件吗?',
|
||||||
|
sysLogoTipContentUpload: '确认要上传LOGO文件吗?',
|
||||||
|
sysLogoInstruction: '系统LOGO展示样式如预览区域所示',
|
||||||
|
sysLogoInstruction1: '如需变更请将图片进行对应处理调整后在进行上传。',
|
||||||
|
sysLogoInstruction2: '将整张图片展示到系统LOGO区域,请使用透明背景,尺寸比例大小',
|
||||||
|
sysLogoInstruction3: '以LOGO+系统名称的形式展示到系统LOGO区域。',
|
||||||
|
sysLogoInstruction4: 'LOGO尺寸比例大小',
|
||||||
|
sysName: '系统名称',
|
||||||
|
sysNamePlease: '请输入系统名称',
|
||||||
|
sysNameLimitation: '系统名称限制',
|
||||||
|
sysNameTipContent: '确认要提交当前变更的系统名称吗?',
|
||||||
|
sysCopyright: '版权声明',
|
||||||
|
sysCopyrightPlease: '请输入版权声明',
|
||||||
|
sysCopyrightLimitation: '版权声明限制',
|
||||||
|
sysCopyrightTipContent: '确认要提交当前变更的版权声明吗?',
|
||||||
|
sysLoginBg: '登录界面背景',
|
||||||
|
sysLoginBgNone: '暂无背景图',
|
||||||
|
sysLoginBgUpload: '上传背景图',
|
||||||
|
sysLoginBgTipContentUpload: '确认要上传登录界面背景文件吗?',
|
||||||
|
sysLoginBgTipContent: '确认要提交当前变更的登录界面背景吗?',
|
||||||
|
sysLoginBgTipContentRevert: '确认要将背景图还原到系统初始默认的背景吗?',
|
||||||
|
sysLoginBgInstruction: '系统登录界面背景样式如预览区域所示,请以实际显示为准',
|
||||||
|
sysLoginBgInstruction1: '请将选择合适的图片进行进行上传。',
|
||||||
|
sysLoginBgInstruction2: '通过点击《还原》按钮,将背景图还原到系统初始默认的背景。',
|
||||||
|
},
|
||||||
role:{
|
role:{
|
||||||
allScopeOptions:'全部数据权限',
|
allScopeOptions:'全部数据权限',
|
||||||
byMyselfScopeOptions:'自定数据权限',
|
byMyselfScopeOptions:'自定数据权限',
|
||||||
|
|||||||
@@ -50,7 +50,7 @@ function fnChangeLocale(e: any) {
|
|||||||
</a-button>
|
</a-button>
|
||||||
|
|
||||||
<a-tooltip>
|
<a-tooltip>
|
||||||
<template #title>全屏显示</template>
|
<template #title>{{ t('loayouts.rightContent.fullscreen') }}</template>
|
||||||
<a-button type="text" @click="toggle">
|
<a-button type="text" @click="toggle">
|
||||||
<template #icon>
|
<template #icon>
|
||||||
<FullscreenExitOutlined v-if="isFullscreen()" />
|
<FullscreenExitOutlined v-if="isFullscreen()" />
|
||||||
@@ -90,20 +90,20 @@ function fnChangeLocale(e: any) {
|
|||||||
<template #icon>
|
<template #icon>
|
||||||
<UserOutlined />
|
<UserOutlined />
|
||||||
</template>
|
</template>
|
||||||
<span>个人中心</span>
|
<span>{{ t('loayouts.rightContent.profile') }}</span>
|
||||||
</a-menu-item> -->
|
</a-menu-item> -->
|
||||||
<a-menu-item key="settings">
|
<a-menu-item key="settings">
|
||||||
<template #icon>
|
<template #icon>
|
||||||
<SettingOutlined />
|
<SettingOutlined />
|
||||||
</template>
|
</template>
|
||||||
<span>个人设置</span>
|
<span>{{ t('loayouts.rightContent.settings') }}</span>
|
||||||
</a-menu-item>
|
</a-menu-item>
|
||||||
<a-menu-divider />
|
<a-menu-divider />
|
||||||
<a-menu-item key="logout">
|
<a-menu-item key="logout">
|
||||||
<template #icon>
|
<template #icon>
|
||||||
<LogoutOutlined />
|
<LogoutOutlined />
|
||||||
</template>
|
</template>
|
||||||
<span>退出登录</span>
|
<span>{{ t('loayouts.rightContent.logout') }}</span>
|
||||||
</a-menu-item>
|
</a-menu-item>
|
||||||
</a-menu>
|
</a-menu>
|
||||||
</template>
|
</template>
|
||||||
|
|||||||
@@ -3,6 +3,8 @@ import IconFont from '@/components/IconFont/index.vue';
|
|||||||
import { computed, watch } from 'vue';
|
import { computed, watch } from 'vue';
|
||||||
import { useRouter } from 'vue-router';
|
import { useRouter } from 'vue-router';
|
||||||
import useTabsStore from '@/store/modules/tabs';
|
import useTabsStore from '@/store/modules/tabs';
|
||||||
|
import useI18n from '@/hooks/useI18n';
|
||||||
|
const { t } = useI18n();
|
||||||
const tabsStore = useTabsStore();
|
const tabsStore = useTabsStore();
|
||||||
const router = useRouter();
|
const router = useRouter();
|
||||||
|
|
||||||
@@ -126,7 +128,7 @@ watch(router.currentRoute, v => tabsStore.tabOpen(v), { immediate: true });
|
|||||||
<template #rightExtra>
|
<template #rightExtra>
|
||||||
<a-space :size="8" align="end">
|
<a-space :size="8" align="end">
|
||||||
<a-tooltip placement="topRight">
|
<a-tooltip placement="topRight">
|
||||||
<template #title>刷新当前</template>
|
<template #title>{{ t('loayouts.tabs.reload') }}</template>
|
||||||
<a-button
|
<a-button
|
||||||
type="ghost"
|
type="ghost"
|
||||||
shape="circle"
|
shape="circle"
|
||||||
@@ -137,16 +139,22 @@ watch(router.currentRoute, v => tabsStore.tabOpen(v), { immediate: true });
|
|||||||
</a-button>
|
</a-button>
|
||||||
</a-tooltip>
|
</a-tooltip>
|
||||||
<a-tooltip placement="topRight">
|
<a-tooltip placement="topRight">
|
||||||
<template #title>更多选项</template>
|
<template #title>{{ t('loayouts.tabs.more') }}</template>
|
||||||
<a-dropdown :trigger="['click', 'hover']" placement="bottomRight">
|
<a-dropdown :trigger="['click', 'hover']" placement="bottomRight">
|
||||||
<a-button type="ghost" shape="circle" size="small">
|
<a-button type="ghost" shape="circle" size="small">
|
||||||
<template #icon><DownOutlined /></template>
|
<template #icon><DownOutlined /></template>
|
||||||
</a-button>
|
</a-button>
|
||||||
<template #overlay>
|
<template #overlay>
|
||||||
<a-menu @click="({ key }:any) => fnTabMenu(key)">
|
<a-menu @click="({ key }:any) => fnTabMenu(key)">
|
||||||
<a-menu-item key="current">关闭当前</a-menu-item>
|
<a-menu-item key="current">
|
||||||
<a-menu-item key="other">关闭其他 </a-menu-item>
|
{{ t('loayouts.tabs.closeCurrent') }}
|
||||||
<a-menu-item key="all">关闭全部</a-menu-item>
|
</a-menu-item>
|
||||||
|
<a-menu-item key="other">
|
||||||
|
{{ t('loayouts.tabs.closeOther') }}
|
||||||
|
</a-menu-item>
|
||||||
|
<a-menu-item key="all">
|
||||||
|
{{ t('loayouts.tabs.closeAll') }}
|
||||||
|
</a-menu-item>
|
||||||
</a-menu>
|
</a-menu>
|
||||||
</template>
|
</template>
|
||||||
</a-dropdown>
|
</a-dropdown>
|
||||||
|
|||||||
@@ -1,19 +1,25 @@
|
|||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { useRouter } from 'vue-router';
|
import { useRouter } from 'vue-router';
|
||||||
|
import useI18n from '@/hooks/useI18n';
|
||||||
const router = useRouter();
|
const router = useRouter();
|
||||||
|
const { t } = useI18n();
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
<a-result
|
<a-result
|
||||||
status="403"
|
status="403"
|
||||||
title="没有访问权限"
|
:title="t('views.error.err403.ttile')"
|
||||||
sub-title="请不要进行非法操作,您可以返回主页面或返回"
|
:sub-title="t('views.error.err403.subTitle')"
|
||||||
>
|
>
|
||||||
<template #extra>
|
<template #extra>
|
||||||
<RouterLink :to="{ name: 'Index' }" :replace="true">
|
<RouterLink :to="{ name: 'Index' }" :replace="true">
|
||||||
<a-button type="primary"> 返回首页 </a-button>
|
<a-button type="primary">
|
||||||
|
{{ t('views.error.err403.backHome') }}
|
||||||
|
</a-button>
|
||||||
</RouterLink>
|
</RouterLink>
|
||||||
<a-button type="default" @click="() => router.back()"> 返回 </a-button>
|
<a-button type="default" @click="() => router.back()">
|
||||||
|
{{ t('views.error.err403.back') }}
|
||||||
|
</a-button>
|
||||||
</template>
|
</template>
|
||||||
</a-result>
|
</a-result>
|
||||||
</template>
|
</template>
|
||||||
|
|||||||
@@ -1,23 +1,30 @@
|
|||||||
<script setup lang="ts"></script>
|
<script setup lang="ts">
|
||||||
|
import useI18n from '@/hooks/useI18n';
|
||||||
|
const { t } = useI18n();
|
||||||
|
</script>
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
<a-result
|
<a-result
|
||||||
status="404"
|
status="404"
|
||||||
title="找不到匹配页面"
|
:title="t('views.error.err404.ttile')"
|
||||||
sub-title="对不起,您正在寻找的页面不存在。"
|
:sub-title="t('views.error.err404.subTitle')"
|
||||||
>
|
>
|
||||||
<template #extra>
|
<template #extra>
|
||||||
<RouterLink :to="{ name: 'Index' }" :replace="true">
|
<RouterLink :to="{ name: 'Index' }" :replace="true">
|
||||||
<a-button type="primary"> 返回首页 </a-button>
|
<a-button type="primary">
|
||||||
|
{{ t('views.error.err404.backHome') }}
|
||||||
|
</a-button>
|
||||||
</RouterLink>
|
</RouterLink>
|
||||||
</template>
|
</template>
|
||||||
<a-typography>
|
<a-typography>
|
||||||
<a-typography-title> 找不到网页? </a-typography-title>
|
<a-typography-title>
|
||||||
|
{{ t('views.error.err404.tipTitle') }}
|
||||||
|
</a-typography-title>
|
||||||
<a-typography-paragraph>
|
<a-typography-paragraph>
|
||||||
1. 尝试检查URL的错误,然后按浏览器上的刷新按钮。
|
1. {{ t('views.error.err404.paragraph') }}
|
||||||
</a-typography-paragraph>
|
</a-typography-paragraph>
|
||||||
<a-typography-paragraph>
|
<a-typography-paragraph>
|
||||||
2. 尝试在我们的应用程序中找到其他内容。
|
2. {{ t('views.error.err404.paragraph1') }}
|
||||||
</a-typography-paragraph>
|
</a-typography-paragraph>
|
||||||
</a-typography>
|
</a-typography>
|
||||||
</a-result>
|
</a-result>
|
||||||
|
|||||||
@@ -17,6 +17,7 @@ const { t } = useI18n();
|
|||||||
|
|
||||||
/**开始结束时间类型 */
|
/**开始结束时间类型 */
|
||||||
type RangePickerType = {
|
type RangePickerType = {
|
||||||
|
placeholder: [string, string];
|
||||||
ranges: Record<string, [Dayjs, Dayjs]>;
|
ranges: Record<string, [Dayjs, Dayjs]>;
|
||||||
/**全局时间 */
|
/**全局时间 */
|
||||||
all: [string, string];
|
all: [string, string];
|
||||||
@@ -34,14 +35,24 @@ type RangePickerType = {
|
|||||||
|
|
||||||
/**开始结束时间 */
|
/**开始结束时间 */
|
||||||
let rangePicker = reactive<RangePickerType>({
|
let rangePicker = reactive<RangePickerType>({
|
||||||
|
placeholder: [
|
||||||
|
t('views.monitor.monitor.startTime'),
|
||||||
|
t('views.monitor.monitor.endTime'),
|
||||||
|
],
|
||||||
ranges: {
|
ranges: {
|
||||||
昨天: [
|
[t('views.monitor.monitor.today')]: [
|
||||||
dayjs().subtract(1, 'day').startOf('day'),
|
dayjs().subtract(1, 'day').startOf('day'),
|
||||||
dayjs().subtract(1, 'day').endOf('day'),
|
dayjs().subtract(1, 'day').endOf('day'),
|
||||||
],
|
],
|
||||||
今天: [dayjs().startOf('day'), dayjs()],
|
[t('views.monitor.monitor.yesterday')]: [dayjs().startOf('day'), dayjs()],
|
||||||
本周: [dayjs().startOf('week'), dayjs().endOf('week')],
|
[t('views.monitor.monitor.week')]: [
|
||||||
本月: [dayjs().startOf('month'), dayjs().endOf('month')],
|
dayjs().startOf('week'),
|
||||||
|
dayjs().endOf('week'),
|
||||||
|
],
|
||||||
|
[t('views.monitor.monitor.month')]: [
|
||||||
|
dayjs().startOf('month'),
|
||||||
|
dayjs().endOf('month'),
|
||||||
|
],
|
||||||
},
|
},
|
||||||
all: ['', ''],
|
all: ['', ''],
|
||||||
load: ['', ''],
|
load: ['', ''],
|
||||||
@@ -427,7 +438,10 @@ onMounted(() => {
|
|||||||
<a-form name="queryParams" layout="horizontal">
|
<a-form name="queryParams" layout="horizontal">
|
||||||
<a-row :gutter="16">
|
<a-row :gutter="16">
|
||||||
<a-col :lg="10" :md="10" :xs="24">
|
<a-col :lg="10" :md="10" :xs="24">
|
||||||
<a-form-item label="全局过滤" name="neTypeSelect">
|
<a-form-item
|
||||||
|
:label="t('views.monitor.monitor.filter')"
|
||||||
|
name="neTypeSelect"
|
||||||
|
>
|
||||||
<a-range-picker
|
<a-range-picker
|
||||||
v-model:value="rangePicker.all"
|
v-model:value="rangePicker.all"
|
||||||
:allow-clear="false"
|
:allow-clear="false"
|
||||||
@@ -435,7 +449,7 @@ onMounted(() => {
|
|||||||
value-format="YYYY-MM-DD HH:mm:ss"
|
value-format="YYYY-MM-DD HH:mm:ss"
|
||||||
format="YYYY-MM-DD HH:mm:ss"
|
format="YYYY-MM-DD HH:mm:ss"
|
||||||
show-time
|
show-time
|
||||||
:placeholder="['开始时间', '结束时间']"
|
:placeholder="rangePicker.placeholder"
|
||||||
:ranges="rangePicker.ranges"
|
:ranges="rangePicker.ranges"
|
||||||
style="width: 100%"
|
style="width: 100%"
|
||||||
></a-range-picker>
|
></a-range-picker>
|
||||||
@@ -469,7 +483,7 @@ onMounted(() => {
|
|||||||
value-format="YYYY-MM-DD HH:mm:ss"
|
value-format="YYYY-MM-DD HH:mm:ss"
|
||||||
format="YYYY-MM-DD HH:mm:ss"
|
format="YYYY-MM-DD HH:mm:ss"
|
||||||
show-time
|
show-time
|
||||||
:placeholder="['开始时间', '结束时间']"
|
:placeholder="rangePicker.placeholder"
|
||||||
style="width: 100%"
|
style="width: 100%"
|
||||||
@change="(_:any, d:[string,string]) => fnGetQuery('load', d)"
|
@change="(_:any, d:[string,string]) => fnGetQuery('load', d)"
|
||||||
></a-range-picker>
|
></a-range-picker>
|
||||||
@@ -499,7 +513,7 @@ onMounted(() => {
|
|||||||
value-format="YYYY-MM-DD HH:mm:ss"
|
value-format="YYYY-MM-DD HH:mm:ss"
|
||||||
format="YYYY-MM-DD HH:mm:ss"
|
format="YYYY-MM-DD HH:mm:ss"
|
||||||
show-time
|
show-time
|
||||||
:placeholder="['开始时间', '结束时间']"
|
:placeholder="rangePicker.placeholder"
|
||||||
style="width: 100%"
|
style="width: 100%"
|
||||||
@change="(_:any, d:[string,string]) => fnGetQuery('cpu', d)"
|
@change="(_:any, d:[string,string]) => fnGetQuery('cpu', d)"
|
||||||
></a-range-picker>
|
></a-range-picker>
|
||||||
@@ -527,7 +541,7 @@ onMounted(() => {
|
|||||||
value-format="YYYY-MM-DD HH:mm:ss"
|
value-format="YYYY-MM-DD HH:mm:ss"
|
||||||
format="YYYY-MM-DD HH:mm:ss"
|
format="YYYY-MM-DD HH:mm:ss"
|
||||||
show-time
|
show-time
|
||||||
:placeholder="['开始时间', '结束时间']"
|
:placeholder="rangePicker.placeholder"
|
||||||
style="width: 100%"
|
style="width: 100%"
|
||||||
@change="(_:any, d:[string,string]) => fnGetQuery('memory', d)"
|
@change="(_:any, d:[string,string]) => fnGetQuery('memory', d)"
|
||||||
></a-range-picker>
|
></a-range-picker>
|
||||||
@@ -557,7 +571,7 @@ onMounted(() => {
|
|||||||
value-format="YYYY-MM-DD HH:mm:ss"
|
value-format="YYYY-MM-DD HH:mm:ss"
|
||||||
format="YYYY-MM-DD HH:mm:ss"
|
format="YYYY-MM-DD HH:mm:ss"
|
||||||
show-time
|
show-time
|
||||||
:placeholder="['开始时间', '结束时间']"
|
:placeholder="rangePicker.placeholder"
|
||||||
style="width: 100%"
|
style="width: 100%"
|
||||||
@change="fnGetQueryIO"
|
@change="fnGetQueryIO"
|
||||||
></a-range-picker>
|
></a-range-picker>
|
||||||
@@ -585,7 +599,7 @@ onMounted(() => {
|
|||||||
value-format="YYYY-MM-DD HH:mm:ss"
|
value-format="YYYY-MM-DD HH:mm:ss"
|
||||||
format="YYYY-MM-DD HH:mm:ss"
|
format="YYYY-MM-DD HH:mm:ss"
|
||||||
show-time
|
show-time
|
||||||
:placeholder="['开始时间', '结束时间']"
|
:placeholder="rangePicker.placeholder"
|
||||||
style="width: 100%"
|
style="width: 100%"
|
||||||
@change="fnGetQueryNetwork"
|
@change="fnGetQueryNetwork"
|
||||||
></a-range-picker>
|
></a-range-picker>
|
||||||
|
|||||||
@@ -465,7 +465,7 @@ onMounted(() => {
|
|||||||
<a-input
|
<a-input
|
||||||
v-model:value="queryParams.configName"
|
v-model:value="queryParams.configName"
|
||||||
allow-clear
|
allow-clear
|
||||||
placeholder="请输入参数名称"
|
:placeholder="t('common.ipnutPlease')"
|
||||||
></a-input>
|
></a-input>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
@@ -474,7 +474,7 @@ onMounted(() => {
|
|||||||
<a-input
|
<a-input
|
||||||
v-model:value="queryParams.configKey"
|
v-model:value="queryParams.configKey"
|
||||||
allow-clear
|
allow-clear
|
||||||
placeholder="请输入参数键名"
|
:placeholder="t('common.ipnutPlease')"
|
||||||
></a-input>
|
></a-input>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
@@ -483,7 +483,7 @@ onMounted(() => {
|
|||||||
<a-select
|
<a-select
|
||||||
v-model:value="queryParams.configType"
|
v-model:value="queryParams.configType"
|
||||||
allow-clear
|
allow-clear
|
||||||
placeholder="请选择"
|
:placeholder="t('common.selectPlease')"
|
||||||
:options="dict.sysYesNo"
|
:options="dict.sysYesNo"
|
||||||
>
|
>
|
||||||
</a-select>
|
</a-select>
|
||||||
@@ -496,7 +496,6 @@ onMounted(() => {
|
|||||||
allow-clear
|
allow-clear
|
||||||
bordered
|
bordered
|
||||||
value-format="YYYY-MM-DD"
|
value-format="YYYY-MM-DD"
|
||||||
:placeholder="['创建开始', '创建结束']"
|
|
||||||
style="width: 100%"
|
style="width: 100%"
|
||||||
></a-range-picker>
|
></a-range-picker>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
@@ -506,12 +505,12 @@ onMounted(() => {
|
|||||||
<a-space :size="8">
|
<a-space :size="8">
|
||||||
<a-button type="primary" @click.prevent="fnGetList">
|
<a-button type="primary" @click.prevent="fnGetList">
|
||||||
<template #icon><SearchOutlined /></template>
|
<template #icon><SearchOutlined /></template>
|
||||||
搜索</a-button
|
{{ t('common.search') }}
|
||||||
>
|
</a-button>
|
||||||
<a-button type="default" @click.prevent="fnQueryReset">
|
<a-button type="default" @click.prevent="fnQueryReset">
|
||||||
<template #icon><ClearOutlined /></template>
|
<template #icon><ClearOutlined /></template>
|
||||||
重置</a-button
|
{{ t('common.reset') }}
|
||||||
>
|
</a-button>
|
||||||
</a-space>
|
</a-space>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
@@ -529,7 +528,7 @@ onMounted(() => {
|
|||||||
v-perms:has="['system:config:add']"
|
v-perms:has="['system:config:add']"
|
||||||
>
|
>
|
||||||
<template #icon><PlusOutlined /></template>
|
<template #icon><PlusOutlined /></template>
|
||||||
新建
|
{{ t('common.addText') }}
|
||||||
</a-button>
|
</a-button>
|
||||||
<a-button
|
<a-button
|
||||||
type="default"
|
type="default"
|
||||||
@@ -539,7 +538,7 @@ onMounted(() => {
|
|||||||
v-perms:has="['system:config:remove']"
|
v-perms:has="['system:config:remove']"
|
||||||
>
|
>
|
||||||
<template #icon><DeleteOutlined /></template>
|
<template #icon><DeleteOutlined /></template>
|
||||||
删除
|
{{ t('common.deleteText') }}
|
||||||
</a-button>
|
</a-button>
|
||||||
<a-button
|
<a-button
|
||||||
type="dashed"
|
type="dashed"
|
||||||
@@ -556,7 +555,7 @@ onMounted(() => {
|
|||||||
v-perms:has="['system:config:export']"
|
v-perms:has="['system:config:export']"
|
||||||
>
|
>
|
||||||
<template #icon><ExportOutlined /></template>
|
<template #icon><ExportOutlined /></template>
|
||||||
导出
|
{{ t('common.export') }}
|
||||||
</a-button>
|
</a-button>
|
||||||
</a-space>
|
</a-space>
|
||||||
</template>
|
</template>
|
||||||
@@ -565,31 +564,31 @@ onMounted(() => {
|
|||||||
<template #extra>
|
<template #extra>
|
||||||
<a-space :size="8" align="center">
|
<a-space :size="8" align="center">
|
||||||
<a-tooltip>
|
<a-tooltip>
|
||||||
<template #title>搜索栏</template>
|
<template #title>{{ t('common.searchBarText') }}</template>
|
||||||
<a-switch
|
<a-switch
|
||||||
v-model:checked="tableState.seached"
|
v-model:checked="tableState.seached"
|
||||||
checked-children="显"
|
:checked-children="t('common.switch.show')"
|
||||||
un-checked-children="隐"
|
:un-checked-children="t('common.switch.hide')"
|
||||||
size="small"
|
size="small"
|
||||||
/>
|
/>
|
||||||
</a-tooltip>
|
</a-tooltip>
|
||||||
<a-tooltip>
|
<a-tooltip>
|
||||||
<template #title>表格斑马纹</template>
|
<template #title>{{ t('common.tableStripedText') }}</template>
|
||||||
<a-switch
|
<a-switch
|
||||||
v-model:checked="tableState.striped"
|
v-model:checked="tableState.striped"
|
||||||
checked-children="开"
|
:checked-children="t('common.switch.open')"
|
||||||
un-checked-children="关"
|
:un-checked-children="t('common.switch.shut')"
|
||||||
size="small"
|
size="small"
|
||||||
/>
|
/>
|
||||||
</a-tooltip>
|
</a-tooltip>
|
||||||
<a-tooltip>
|
<a-tooltip>
|
||||||
<template #title>刷新</template>
|
<template #title>{{ t('common.reloadText') }}</template>
|
||||||
<a-button type="text" @click.prevent="fnGetList">
|
<a-button type="text" @click.prevent="fnGetList">
|
||||||
<template #icon><ReloadOutlined /></template>
|
<template #icon><ReloadOutlined /></template>
|
||||||
</a-button>
|
</a-button>
|
||||||
</a-tooltip>
|
</a-tooltip>
|
||||||
<a-tooltip placement="topRight">
|
<a-tooltip placement="topRight">
|
||||||
<template #title>密度</template>
|
<template #title>{{ t('common.sizeText') }}</template>
|
||||||
<a-dropdown placement="bottomRight" trigger="click">
|
<a-dropdown placement="bottomRight" trigger="click">
|
||||||
<a-button type="text">
|
<a-button type="text">
|
||||||
<template #icon><ColumnHeightOutlined /></template>
|
<template #icon><ColumnHeightOutlined /></template>
|
||||||
@@ -599,9 +598,15 @@ onMounted(() => {
|
|||||||
:selected-keys="[tableState.size as string]"
|
:selected-keys="[tableState.size as string]"
|
||||||
@click="fnTableSize"
|
@click="fnTableSize"
|
||||||
>
|
>
|
||||||
<a-menu-item key="default">默认</a-menu-item>
|
<a-menu-item key="default">
|
||||||
<a-menu-item key="middle">中等</a-menu-item>
|
{{ t('common.size.default') }}
|
||||||
<a-menu-item key="small">紧凑</a-menu-item>
|
</a-menu-item>
|
||||||
|
<a-menu-item key="middle">
|
||||||
|
{{ t('common.size.middle') }}
|
||||||
|
</a-menu-item>
|
||||||
|
<a-menu-item key="small">
|
||||||
|
{{ t('common.size.small') }}
|
||||||
|
</a-menu-item>
|
||||||
</a-menu>
|
</a-menu>
|
||||||
</template>
|
</template>
|
||||||
</a-dropdown>
|
</a-dropdown>
|
||||||
|
|||||||
@@ -35,7 +35,7 @@ function fnEdit(v: boolean) {
|
|||||||
function fnSave() {
|
function fnSave() {
|
||||||
Modal.confirm({
|
Modal.confirm({
|
||||||
title: t('common.tipTitle'),
|
title: t('common.tipTitle'),
|
||||||
content: `确认要提交当前变更的版权声明吗?`,
|
content: t('views.system.setting.sysCopyrightTipContent'),
|
||||||
onOk() {
|
onOk() {
|
||||||
// 发送请求
|
// 发送请求
|
||||||
const hide = message.loading(t('common.loading'), 0);
|
const hide = message.loading(t('common.loading'), 0);
|
||||||
@@ -45,7 +45,7 @@ function fnSave() {
|
|||||||
state.loading = false;
|
state.loading = false;
|
||||||
hide();
|
hide();
|
||||||
if (res.code === RESULT_CODE_SUCCESS) {
|
if (res.code === RESULT_CODE_SUCCESS) {
|
||||||
message.success('提交保存成功', 3);
|
message.success(t('views.system.setting.saveSuccess'), 3);
|
||||||
appStore.copyright = state.copyright;
|
appStore.copyright = state.copyright;
|
||||||
fnEdit(false);
|
fnEdit(false);
|
||||||
} else {
|
} else {
|
||||||
@@ -72,7 +72,7 @@ onMounted(() => {
|
|||||||
v-model:value="state.copyright"
|
v-model:value="state.copyright"
|
||||||
allow-clear
|
allow-clear
|
||||||
:maxlength="40"
|
:maxlength="40"
|
||||||
placeholder="输入版权声明"
|
:placeholder="t('views.system.setting.sysCopyrightPlease')"
|
||||||
></a-input>
|
></a-input>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
|
|
||||||
@@ -82,7 +82,7 @@ onMounted(() => {
|
|||||||
:disabled="state.copyright === state.flag"
|
:disabled="state.copyright === state.flag"
|
||||||
@click="fnSave"
|
@click="fnSave"
|
||||||
>
|
>
|
||||||
提交保存
|
{{ t('views.system.setting.saveSubmit') }}
|
||||||
</a-button>
|
</a-button>
|
||||||
<a-button style="margin-left: 10px" @click="fnEdit(false)">
|
<a-button style="margin-left: 10px" @click="fnEdit(false)">
|
||||||
{{ t('common.cancel') }}
|
{{ t('common.cancel') }}
|
||||||
@@ -92,15 +92,17 @@ onMounted(() => {
|
|||||||
|
|
||||||
<template v-else>
|
<template v-else>
|
||||||
<div class="sys-copyright">{{ state.copyright }}</div>
|
<div class="sys-copyright">{{ state.copyright }}</div>
|
||||||
<a-button type="dashed" @click="fnEdit(true)"> 编辑 </a-button>
|
<a-button type="dashed" @click="fnEdit(true)">
|
||||||
|
{{ t('common.editText') }}
|
||||||
|
</a-button>
|
||||||
</template>
|
</template>
|
||||||
</a-col>
|
</a-col>
|
||||||
<a-col :lg="12" :md="12" :xs="24">
|
<a-col :lg="12" :md="12" :xs="24">
|
||||||
<a-typography>
|
<a-typography>
|
||||||
<a-typography-paragraph>
|
<a-typography-paragraph>
|
||||||
版权声明限制
|
{{ t('views.system.setting.sysCopyrightLimitation') }}
|
||||||
<a-typography-text mark>40</a-typography-text>
|
<a-typography-text mark>40</a-typography-text>
|
||||||
位字符长度
|
{{ t('views.system.setting.charMaxLen') }}
|
||||||
</a-typography-paragraph>
|
</a-typography-paragraph>
|
||||||
</a-typography>
|
</a-typography>
|
||||||
</a-col>
|
</a-col>
|
||||||
|
|||||||
@@ -36,11 +36,14 @@ function fnBeforeUpload(file: FileType) {
|
|||||||
'image/webp',
|
'image/webp',
|
||||||
].includes(file.type);
|
].includes(file.type);
|
||||||
if (!isJpgOrPng) {
|
if (!isJpgOrPng) {
|
||||||
message.error('只支持上传图片格式(jpg、png、svg、webp)', 3);
|
message.error(
|
||||||
|
t('views.system.setting.uploadFormat', { format: 'jpg、png、svg、webp' }),
|
||||||
|
3
|
||||||
|
);
|
||||||
}
|
}
|
||||||
const isLt10M = file.size / 1024 / 1024 < 10;
|
const isLt10M = file.size / 1024 / 1024 < 10;
|
||||||
if (!isLt10M) {
|
if (!isLt10M) {
|
||||||
message.error('图片文件大小必须小于 10MB', 3);
|
message.error(t('views.system.setting.uploadSize', { size: 10 }), 3);
|
||||||
}
|
}
|
||||||
return isJpgOrPng && isLt10M;
|
return isJpgOrPng && isLt10M;
|
||||||
}
|
}
|
||||||
@@ -49,7 +52,7 @@ function fnBeforeUpload(file: FileType) {
|
|||||||
function fnUpload(up: UploadRequestOption) {
|
function fnUpload(up: UploadRequestOption) {
|
||||||
Modal.confirm({
|
Modal.confirm({
|
||||||
title: t('common.tipTitle'),
|
title: t('common.tipTitle'),
|
||||||
content: `确认要上传登录界面背景文件吗?`,
|
content: t('views.system.setting.sysLoginBgTipContentUpload'),
|
||||||
onOk() {
|
onOk() {
|
||||||
// 发送请求
|
// 发送请求
|
||||||
const hide = message.loading(t('common.loading'), 0);
|
const hide = message.loading(t('common.loading'), 0);
|
||||||
@@ -61,7 +64,7 @@ function fnUpload(up: UploadRequestOption) {
|
|||||||
state.loading = false;
|
state.loading = false;
|
||||||
hide();
|
hide();
|
||||||
if (res.code === RESULT_CODE_SUCCESS) {
|
if (res.code === RESULT_CODE_SUCCESS) {
|
||||||
message.success('文件上传成功,提交保存生效', 3);
|
message.success(t('views.system.setting.uploadSuccess'), 3);
|
||||||
state.filePath = res.data.fileName;
|
state.filePath = res.data.fileName;
|
||||||
// 兼容旧前端可改配置文件
|
// 兼容旧前端可改配置文件
|
||||||
const baseUrl = import.meta.env.PROD
|
const baseUrl = import.meta.env.PROD
|
||||||
@@ -89,7 +92,7 @@ function fnEdit(v: boolean) {
|
|||||||
function fnSave() {
|
function fnSave() {
|
||||||
Modal.confirm({
|
Modal.confirm({
|
||||||
title: t('common.tipTitle'),
|
title: t('common.tipTitle'),
|
||||||
content: `确认要提交当前变更的登录界面背景吗?`,
|
content: t('views.system.setting.sysLoginBgTipContent'),
|
||||||
onOk() {
|
onOk() {
|
||||||
// 发送请求
|
// 发送请求
|
||||||
const hide = message.loading(t('common.loading'), 0);
|
const hide = message.loading(t('common.loading'), 0);
|
||||||
@@ -99,7 +102,7 @@ function fnSave() {
|
|||||||
state.loading = false;
|
state.loading = false;
|
||||||
hide();
|
hide();
|
||||||
if (res.code === RESULT_CODE_SUCCESS) {
|
if (res.code === RESULT_CODE_SUCCESS) {
|
||||||
message.success('提交保存成功', 3);
|
message.success(t('views.system.setting.saveSuccess'), 3);
|
||||||
appStore.loginBackground = state.filePath;
|
appStore.loginBackground = state.filePath;
|
||||||
fnEdit(false);
|
fnEdit(false);
|
||||||
} else {
|
} else {
|
||||||
@@ -115,7 +118,7 @@ function fnSave() {
|
|||||||
function fnRevert() {
|
function fnRevert() {
|
||||||
Modal.confirm({
|
Modal.confirm({
|
||||||
title: t('common.tipTitle'),
|
title: t('common.tipTitle'),
|
||||||
content: `确认要将背景图还原到系统初始默认的背景吗?`,
|
content: t('views.system.setting.sysLoginBgTipContentRevert'),
|
||||||
onOk() {
|
onOk() {
|
||||||
// 发送请求
|
// 发送请求
|
||||||
const hide = message.loading(t('common.loading'), 0);
|
const hide = message.loading(t('common.loading'), 0);
|
||||||
@@ -126,7 +129,7 @@ function fnRevert() {
|
|||||||
state.loading = false;
|
state.loading = false;
|
||||||
hide();
|
hide();
|
||||||
if (res.code === RESULT_CODE_SUCCESS) {
|
if (res.code === RESULT_CODE_SUCCESS) {
|
||||||
message.success('还原成功', 3);
|
message.success(t('views.system.setting.revertSuccess'), 3);
|
||||||
appStore.loginBackground = state.filePath;
|
appStore.loginBackground = state.filePath;
|
||||||
fnEdit(false);
|
fnEdit(false);
|
||||||
} else {
|
} else {
|
||||||
@@ -148,7 +151,9 @@ onMounted(() => {
|
|||||||
<a-row :gutter="16">
|
<a-row :gutter="16">
|
||||||
<a-col :lg="12" :md="12" :xs="24" style="margin-bottom: 30px">
|
<a-col :lg="12" :md="12" :xs="24" style="margin-bottom: 30px">
|
||||||
<div class="sys-login-bg">
|
<div class="sys-login-bg">
|
||||||
<span v-if="state.flag === '#'">暂无背景图</span>
|
<span v-if="state.flag === '#'">
|
||||||
|
{{ t('views.system.setting.sysLoginBgNone') }}
|
||||||
|
</span>
|
||||||
<a-image :src="state.flag" v-else />
|
<a-image :src="state.flag" v-else />
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@@ -164,7 +169,7 @@ onMounted(() => {
|
|||||||
:custom-request="fnUpload"
|
:custom-request="fnUpload"
|
||||||
>
|
>
|
||||||
<a-button type="link" :disabled="state.loading">
|
<a-button type="link" :disabled="state.loading">
|
||||||
上传背景
|
{{ t('views.system.setting.sysLoginBgUpload') }}
|
||||||
</a-button>
|
</a-button>
|
||||||
</a-upload>
|
</a-upload>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
@@ -175,7 +180,7 @@ onMounted(() => {
|
|||||||
:disabled="state.filePath === state.flag"
|
:disabled="state.filePath === state.flag"
|
||||||
@click="fnSave"
|
@click="fnSave"
|
||||||
>
|
>
|
||||||
提交保存
|
{{ t('views.system.setting.saveSubmit') }}
|
||||||
</a-button>
|
</a-button>
|
||||||
<a-button style="margin-left: 10px" @click="fnEdit(false)">
|
<a-button style="margin-left: 10px" @click="fnEdit(false)">
|
||||||
{{ t('common.cancel') }}
|
{{ t('common.cancel') }}
|
||||||
@@ -184,23 +189,25 @@ onMounted(() => {
|
|||||||
</a-form>
|
</a-form>
|
||||||
|
|
||||||
<template v-else>
|
<template v-else>
|
||||||
<a-button type="default" @click="fnEdit(true)"> 编辑 </a-button>
|
<a-button type="default" @click="fnEdit(true)">
|
||||||
|
{{ t('common.editText') }}
|
||||||
|
</a-button>
|
||||||
<a-button
|
<a-button
|
||||||
type="text"
|
type="text"
|
||||||
danger
|
danger
|
||||||
style="margin-left: 10px"
|
style="margin-left: 10px"
|
||||||
@click="fnRevert"
|
@click="fnRevert"
|
||||||
>
|
>
|
||||||
还原
|
{{ t('views.system.setting.revert') }}
|
||||||
</a-button>
|
</a-button>
|
||||||
</template>
|
</template>
|
||||||
</a-col>
|
</a-col>
|
||||||
<a-col :lg="12" :md="12" :xs="24">
|
<a-col :lg="12" :md="12" :xs="24">
|
||||||
<a-typography>
|
<a-typography>
|
||||||
<a-typography-paragraph>
|
<a-typography-paragraph>
|
||||||
系统登录界面背景样式如预览区域所示,请以实际显示为准<br />
|
{{ t('views.system.setting.sysLoginBgInstruction') }}<br />
|
||||||
请将选择合适的图片进行进行上传。<br />
|
{{ t('views.system.setting.sysLoginBgInstruction1') }}<br />
|
||||||
通过点击《还原》按钮,将背景图还原到系统初始默认的背景。
|
{{ t('views.system.setting.sysLoginBgInstruction2') }}
|
||||||
</a-typography-paragraph>
|
</a-typography-paragraph>
|
||||||
</a-typography>
|
</a-typography>
|
||||||
</a-col>
|
</a-col>
|
||||||
|
|||||||
@@ -51,7 +51,7 @@ function fnBeforeUpload(file: FileType) {
|
|||||||
function fnUpload(up: UploadRequestOption) {
|
function fnUpload(up: UploadRequestOption) {
|
||||||
Modal.confirm({
|
Modal.confirm({
|
||||||
title: t('common.tipTitle'),
|
title: t('common.tipTitle'),
|
||||||
content: `确认要上传LOGO文件吗?`,
|
content: t('views.system.setting.sysLogoTipContentUpload'),
|
||||||
onOk() {
|
onOk() {
|
||||||
// 发送请求
|
// 发送请求
|
||||||
const hide = message.loading(t('common.loading'), 0);
|
const hide = message.loading(t('common.loading'), 0);
|
||||||
@@ -63,7 +63,7 @@ function fnUpload(up: UploadRequestOption) {
|
|||||||
state.loading = false;
|
state.loading = false;
|
||||||
hide();
|
hide();
|
||||||
if (res.code === RESULT_CODE_SUCCESS) {
|
if (res.code === RESULT_CODE_SUCCESS) {
|
||||||
message.success('文件上传成功,提交保存生效', 3);
|
message.success(t('views.system.setting.uploadSuccess'), 3);
|
||||||
state.filePath = res.data.fileName;
|
state.filePath = res.data.fileName;
|
||||||
// 兼容旧前端可改配置文件
|
// 兼容旧前端可改配置文件
|
||||||
const baseUrl = import.meta.env.PROD
|
const baseUrl = import.meta.env.PROD
|
||||||
@@ -101,7 +101,7 @@ function fnEdit(v: boolean) {
|
|||||||
function fnSave() {
|
function fnSave() {
|
||||||
Modal.confirm({
|
Modal.confirm({
|
||||||
title: t('common.tipTitle'),
|
title: t('common.tipTitle'),
|
||||||
content: `确认要提交当前变更的LOGO文件吗?`,
|
content: t('views.system.setting.sysLogoTipContent'),
|
||||||
onOk() {
|
onOk() {
|
||||||
const reqArr = [];
|
const reqArr = [];
|
||||||
// 改变LOGO地址
|
// 改变LOGO地址
|
||||||
@@ -126,7 +126,7 @@ function fnSave() {
|
|||||||
state.loading = false;
|
state.loading = false;
|
||||||
hide();
|
hide();
|
||||||
if (resArr[0].code === RESULT_CODE_SUCCESS) {
|
if (resArr[0].code === RESULT_CODE_SUCCESS) {
|
||||||
message.success('提交保存成功', 3);
|
message.success(t('views.system.setting.saveSuccess'), 3);
|
||||||
if (state.filePath) {
|
if (state.filePath) {
|
||||||
appStore.setLOGO(state.type, state.filePath);
|
appStore.setLOGO(state.type, state.filePath);
|
||||||
}
|
}
|
||||||
@@ -175,15 +175,19 @@ onMounted(() => {
|
|||||||
{{ appStore.appName }}
|
{{ appStore.appName }}
|
||||||
</h1>
|
</h1>
|
||||||
</div>
|
</div>
|
||||||
<div class="header-menu">首页</div>
|
<div class="header-menu">Menu</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<a-form layout="vertical" v-if="state.edite">
|
<a-form layout="vertical" v-if="state.edite">
|
||||||
<a-form-item>
|
<a-form-item>
|
||||||
<a-space direction="horizontal" :size="18">
|
<a-space direction="horizontal" :size="18">
|
||||||
<a-radio-group v-model:value="state.type" button-style="solid">
|
<a-radio-group v-model:value="state.type" button-style="solid">
|
||||||
<a-radio value="brand">全图</a-radio>
|
<a-radio value="brand">
|
||||||
<a-radio value="icon">小图</a-radio>
|
{{ t('views.system.setting.sysLogoBrand') }}
|
||||||
|
</a-radio>
|
||||||
|
<a-radio value="icon">
|
||||||
|
{{ t('views.system.setting.sysLogoIcon') }}
|
||||||
|
</a-radio>
|
||||||
</a-radio-group>
|
</a-radio-group>
|
||||||
<a-upload
|
<a-upload
|
||||||
name="file"
|
name="file"
|
||||||
@@ -195,7 +199,7 @@ onMounted(() => {
|
|||||||
:custom-request="fnUpload"
|
:custom-request="fnUpload"
|
||||||
>
|
>
|
||||||
<a-button type="link" :loading="state.loading">
|
<a-button type="link" :loading="state.loading">
|
||||||
上传LOGO
|
{{ t('views.system.setting.sysLogoUpload') }}
|
||||||
</a-button>
|
</a-button>
|
||||||
</a-upload>
|
</a-upload>
|
||||||
</a-space>
|
</a-space>
|
||||||
@@ -203,7 +207,7 @@ onMounted(() => {
|
|||||||
|
|
||||||
<a-form-item>
|
<a-form-item>
|
||||||
<a-button type="primary" :disabled="changeStatus" @click="fnSave">
|
<a-button type="primary" :disabled="changeStatus" @click="fnSave">
|
||||||
提交保存
|
{{ t('views.system.setting.saveSubmit') }}
|
||||||
</a-button>
|
</a-button>
|
||||||
<a-button style="margin-left: 10px" @click="fnEdit(false)">
|
<a-button style="margin-left: 10px" @click="fnEdit(false)">
|
||||||
{{ t('common.cancel') }}
|
{{ t('common.cancel') }}
|
||||||
@@ -211,24 +215,31 @@ onMounted(() => {
|
|||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-form>
|
</a-form>
|
||||||
|
|
||||||
<a-button type="dashed" @click="fnEdit(true)" v-else> 编辑 </a-button>
|
<a-button type="dashed" @click="fnEdit(true)" v-else>
|
||||||
|
{{ t('common.editText') }}
|
||||||
|
</a-button>
|
||||||
</a-col>
|
</a-col>
|
||||||
<a-col :lg="12" :md="12" :xs="24">
|
<a-col :lg="12" :md="12" :xs="24">
|
||||||
<a-typography>
|
<a-typography>
|
||||||
<a-typography-paragraph>
|
<a-typography-paragraph>
|
||||||
系统LOGO展示样式如预览区域所示<br />
|
{{ t('views.system.setting.sysLogoInstruction') }}<br />
|
||||||
如需变更请将图片进行对应处理调整后在进行上传。
|
{{ t('views.system.setting.sysLogoInstruction1') }}
|
||||||
</a-typography-paragraph>
|
</a-typography-paragraph>
|
||||||
<a-typography-title :level="5">全图</a-typography-title>
|
<a-typography-title :level="5">{{
|
||||||
|
t('views.system.setting.sysLogoBrand')
|
||||||
|
}}</a-typography-title>
|
||||||
<a-typography-paragraph>
|
<a-typography-paragraph>
|
||||||
将整张图片展示到系统LOGO区域,请使用透明背景,尺寸比例大小
|
{{ t('views.system.setting.sysLogoInstruction2') }}
|
||||||
<a-typography-text mark>174x48</a-typography-text>
|
<a-typography-text mark>174x48</a-typography-text>
|
||||||
</a-typography-paragraph>
|
</a-typography-paragraph>
|
||||||
<a-typography-title :level="5">小图</a-typography-title>
|
<a-typography-title :level="5">
|
||||||
|
{{ t('views.system.setting.sysLogoIcon') }}
|
||||||
|
</a-typography-title>
|
||||||
<a-typography-paragraph>
|
<a-typography-paragraph>
|
||||||
以LOGO+系统名称的形式展示到系统LOGO区域。<br />
|
{{ t('views.system.setting.sysLogoInstruction3') }}<br />
|
||||||
LOGO尺寸比例大小<a-typography-text mark>1:1</a-typography-text>
|
{{ t('views.system.setting.sysLogoInstruction4') }}
|
||||||
列如:<a-typography-text mark>132x132</a-typography-text>
|
<a-typography-text mark>1:1</a-typography-text>
|
||||||
|
eg:<a-typography-text mark>132x132</a-typography-text>
|
||||||
</a-typography-paragraph>
|
</a-typography-paragraph>
|
||||||
</a-typography>
|
</a-typography>
|
||||||
</a-col>
|
</a-col>
|
||||||
|
|||||||
@@ -35,7 +35,7 @@ function fnEdit(v: boolean) {
|
|||||||
function fnSave() {
|
function fnSave() {
|
||||||
Modal.confirm({
|
Modal.confirm({
|
||||||
title: t('common.tipTitle'),
|
title: t('common.tipTitle'),
|
||||||
content: `确认要提交当前变更的系统名称吗?`,
|
content: t('views.system.setting.sysNameTipContent'),
|
||||||
onOk() {
|
onOk() {
|
||||||
// 发送请求
|
// 发送请求
|
||||||
const hide = message.loading(t('common.loading'), 0);
|
const hide = message.loading(t('common.loading'), 0);
|
||||||
@@ -44,7 +44,7 @@ function fnSave() {
|
|||||||
state.loading = false;
|
state.loading = false;
|
||||||
hide();
|
hide();
|
||||||
if (res.code === RESULT_CODE_SUCCESS) {
|
if (res.code === RESULT_CODE_SUCCESS) {
|
||||||
message.success('提交保存成功', 3);
|
message.success(t('views.system.setting.saveSuccess'), 3);
|
||||||
appStore.appName = state.title;
|
appStore.appName = state.title;
|
||||||
fnEdit(false);
|
fnEdit(false);
|
||||||
} else {
|
} else {
|
||||||
@@ -71,7 +71,7 @@ onMounted(() => {
|
|||||||
allow-clear
|
allow-clear
|
||||||
:maxlength="11"
|
:maxlength="11"
|
||||||
style="width: 224px"
|
style="width: 224px"
|
||||||
placeholder="输入系统名称"
|
:placeholder="t('views.system.setting.sysNamePlease')"
|
||||||
></a-input>
|
></a-input>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
|
|
||||||
@@ -81,7 +81,7 @@ onMounted(() => {
|
|||||||
:disabled="state.title === state.flag"
|
:disabled="state.title === state.flag"
|
||||||
@click="fnSave"
|
@click="fnSave"
|
||||||
>
|
>
|
||||||
提交保存
|
{{ t('views.system.setting.saveSubmit') }}
|
||||||
</a-button>
|
</a-button>
|
||||||
<a-button style="margin-left: 10px" @click="fnEdit(false)">
|
<a-button style="margin-left: 10px" @click="fnEdit(false)">
|
||||||
{{ t('common.cancel') }}
|
{{ t('common.cancel') }}
|
||||||
@@ -91,15 +91,17 @@ onMounted(() => {
|
|||||||
|
|
||||||
<template v-else>
|
<template v-else>
|
||||||
<div class="sys-title">{{ state.title }}</div>
|
<div class="sys-title">{{ state.title }}</div>
|
||||||
<a-button type="dashed" @click="fnEdit(true)"> 编辑 </a-button>
|
<a-button type="dashed" @click="fnEdit(true)">
|
||||||
|
{{ t('common.editText') }}
|
||||||
|
</a-button>
|
||||||
</template>
|
</template>
|
||||||
</a-col>
|
</a-col>
|
||||||
<a-col :lg="12" :md="12" :xs="24">
|
<a-col :lg="12" :md="12" :xs="24">
|
||||||
<a-typography>
|
<a-typography>
|
||||||
<a-typography-paragraph>
|
<a-typography-paragraph>
|
||||||
系统名称限制
|
{{ t('views.system.setting.sysNameLimitation') }}
|
||||||
<a-typography-text mark>11</a-typography-text>
|
<a-typography-text mark>11</a-typography-text>
|
||||||
位字符长度
|
{{ t('views.system.setting.charMaxLen') }}
|
||||||
</a-typography-paragraph>
|
</a-typography-paragraph>
|
||||||
</a-typography>
|
</a-typography>
|
||||||
</a-col>
|
</a-col>
|
||||||
|
|||||||
@@ -4,18 +4,28 @@ import ChangeLogo from './components/change-logo.vue';
|
|||||||
import ChangeLogoBG from './components/change-login-bg.vue';
|
import ChangeLogoBG from './components/change-login-bg.vue';
|
||||||
import ChangeTitle from './components/change-title.vue';
|
import ChangeTitle from './components/change-title.vue';
|
||||||
import ChangeCopyright from './components/change-copyright.vue';
|
import ChangeCopyright from './components/change-copyright.vue';
|
||||||
|
import useI18n from '@/hooks/useI18n';
|
||||||
|
const { t } = useI18n();
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
<PageContainer>
|
<PageContainer>
|
||||||
<a-card :bordered="false">
|
<a-card :bordered="false">
|
||||||
<a-divider orientation="left">系统LOGO</a-divider>
|
<a-divider orientation="left">
|
||||||
|
{{ t('views.system.setting.sysLogo') }}
|
||||||
|
</a-divider>
|
||||||
<ChangeLogo></ChangeLogo>
|
<ChangeLogo></ChangeLogo>
|
||||||
<a-divider orientation="left">系统名称</a-divider>
|
<a-divider orientation="left">
|
||||||
|
{{ t('views.system.setting.sysName') }}
|
||||||
|
</a-divider>
|
||||||
<ChangeTitle></ChangeTitle>
|
<ChangeTitle></ChangeTitle>
|
||||||
<a-divider orientation="left">版权声明</a-divider>
|
<a-divider orientation="left">
|
||||||
|
{{ t('views.system.setting.sysCopyright') }}
|
||||||
|
</a-divider>
|
||||||
<ChangeCopyright></ChangeCopyright>
|
<ChangeCopyright></ChangeCopyright>
|
||||||
<a-divider orientation="left">登录界面背景</a-divider>
|
<a-divider orientation="left">
|
||||||
|
{{ t('views.system.setting.sysLoginBg') }}
|
||||||
|
</a-divider>
|
||||||
<ChangeLogoBG></ChangeLogoBG>
|
<ChangeLogoBG></ChangeLogoBG>
|
||||||
</a-card>
|
</a-card>
|
||||||
</PageContainer>
|
</PageContainer>
|
||||||
|
|||||||
@@ -840,6 +840,7 @@ onMounted(() => {
|
|||||||
v-model:value="queryParams.userName"
|
v-model:value="queryParams.userName"
|
||||||
allow-clear
|
allow-clear
|
||||||
:maxlength="30"
|
:maxlength="30"
|
||||||
|
:placeholder="t('common.ipnutPlease')"
|
||||||
></a-input>
|
></a-input>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
@@ -852,6 +853,7 @@ onMounted(() => {
|
|||||||
v-model:value="queryParams.phonenumber"
|
v-model:value="queryParams.phonenumber"
|
||||||
allow-clear
|
allow-clear
|
||||||
:maxlength="11"
|
:maxlength="11"
|
||||||
|
:placeholder="t('common.ipnutPlease')"
|
||||||
></a-input>
|
></a-input>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
@@ -861,6 +863,7 @@ onMounted(() => {
|
|||||||
v-model:value="queryParams.status"
|
v-model:value="queryParams.status"
|
||||||
allow-clear
|
allow-clear
|
||||||
:options="dict.sysNormalDisable"
|
:options="dict.sysNormalDisable"
|
||||||
|
:placeholder="t('common.selectPlease')"
|
||||||
>
|
>
|
||||||
</a-select>
|
</a-select>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
@@ -911,7 +914,7 @@ onMounted(() => {
|
|||||||
v-perms:has="['system:user:import']"
|
v-perms:has="['system:user:import']"
|
||||||
>
|
>
|
||||||
<template #icon><ImportOutlined /></template>
|
<template #icon><ImportOutlined /></template>
|
||||||
{{ t('views.system.user.import') }}
|
{{ t('common.import') }}
|
||||||
</a-button>
|
</a-button>
|
||||||
<a-button
|
<a-button
|
||||||
type="dashed"
|
type="dashed"
|
||||||
@@ -919,7 +922,7 @@ onMounted(() => {
|
|||||||
v-perms:has="['system:user:export']"
|
v-perms:has="['system:user:export']"
|
||||||
>
|
>
|
||||||
<template #icon><ExportOutlined /></template>
|
<template #icon><ExportOutlined /></template>
|
||||||
{{ t('views.system.user.export') }}
|
{{ t('common.export') }}
|
||||||
</a-button>
|
</a-button>
|
||||||
</a-space>
|
</a-space>
|
||||||
</template>
|
</template>
|
||||||
@@ -936,15 +939,15 @@ onMounted(() => {
|
|||||||
size="small"
|
size="small"
|
||||||
/>
|
/>
|
||||||
</a-tooltip>
|
</a-tooltip>
|
||||||
<!-- <a-tooltip>
|
<a-tooltip>
|
||||||
<template #title>表格斑马纹</template>
|
<template #title>{{ t('common.tableStripedText') }}</template>
|
||||||
<a-switch
|
<a-switch
|
||||||
v-model:checked="tableState.striped"
|
v-model:checked="tableState.striped"
|
||||||
checked-children="开"
|
:checked-children="t('common.switch.open')"
|
||||||
un-checked-children="关"
|
:un-checked-children="t('common.switch.shut')"
|
||||||
size="small"
|
size="small"
|
||||||
/>
|
/>
|
||||||
</a-tooltip> -->
|
</a-tooltip>
|
||||||
<a-tooltip>
|
<a-tooltip>
|
||||||
<template #title>{{ t('common.reloadText') }}</template>
|
<template #title>{{ t('common.reloadText') }}</template>
|
||||||
<a-button type="text" @click.prevent="fnGetList(1)">
|
<a-button type="text" @click.prevent="fnGetList(1)">
|
||||||
@@ -962,15 +965,15 @@ onMounted(() => {
|
|||||||
:selected-keys="[tableState.size as string]"
|
:selected-keys="[tableState.size as string]"
|
||||||
@click="fnTableSize"
|
@click="fnTableSize"
|
||||||
>
|
>
|
||||||
<a-menu-item key="default">{{
|
<a-menu-item key="default">
|
||||||
t('common.size.default')
|
{{ t('common.size.default') }}
|
||||||
}}</a-menu-item>
|
</a-menu-item>
|
||||||
<a-menu-item key="middle">{{
|
<a-menu-item key="middle">
|
||||||
t('common.size.middle')
|
{{ t('common.size.middle') }}</a-menu-item
|
||||||
}}</a-menu-item>
|
>
|
||||||
<a-menu-item key="small">{{
|
<a-menu-item key="small">
|
||||||
t('common.size.small')
|
{{ t('common.size.small') }}
|
||||||
}}</a-menu-item>
|
</a-menu-item>
|
||||||
</a-menu>
|
</a-menu>
|
||||||
</template>
|
</template>
|
||||||
</a-dropdown>
|
</a-dropdown>
|
||||||
@@ -1207,7 +1210,7 @@ onMounted(() => {
|
|||||||
:value="modalState.from.postIds"
|
:value="modalState.from.postIds"
|
||||||
disabled
|
disabled
|
||||||
mode="multiple"
|
mode="multiple"
|
||||||
placeholder="请选择用户岗位"
|
:placeholder="t('views.system.user.userWorkPlease')"
|
||||||
option-label-prop="postName"
|
option-label-prop="postName"
|
||||||
:options="modalState.options.posts"
|
:options="modalState.options.posts"
|
||||||
:field-names="{ label: 'postName', value: 'postId' }"
|
:field-names="{ label: 'postName', value: 'postId' }"
|
||||||
@@ -1238,9 +1241,9 @@ onMounted(() => {
|
|||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-form>
|
</a-form>
|
||||||
<template #footer>
|
<template #footer>
|
||||||
<a-button key="cancel" @click="fnModalCancel">{{
|
<a-button key="cancel" @click="fnModalCancel">
|
||||||
t('common.close')
|
{{ t('common.close') }}
|
||||||
}}</a-button>
|
</a-button>
|
||||||
</template>
|
</template>
|
||||||
</a-modal>
|
</a-modal>
|
||||||
|
|
||||||
|
|||||||
@@ -454,7 +454,7 @@ onMounted(() => {
|
|||||||
<template v-if="column.key === 'id'">
|
<template v-if="column.key === 'id'">
|
||||||
<a-space :size="8" align="center">
|
<a-space :size="8" align="center">
|
||||||
<a-tooltip>
|
<a-tooltip>
|
||||||
<template #title>查看详情</template>
|
<template #title>{{ t('common.viewText') }}</template>
|
||||||
<a-button type="link" @click.prevent="fnModalVisible(record)">
|
<a-button type="link" @click.prevent="fnModalVisible(record)">
|
||||||
<template #icon><ProfileOutlined /></template>
|
<template #icon><ProfileOutlined /></template>
|
||||||
</a-button>
|
</a-button>
|
||||||
|
|||||||
@@ -52,13 +52,13 @@ let modalState: ModalStateType = reactive({
|
|||||||
},
|
},
|
||||||
upfCmdOptions: [
|
upfCmdOptions: [
|
||||||
{
|
{
|
||||||
label: '适合其他网元异常,UPF配合抓包的情况',
|
label: t('views.traceManage.pcap.execUPFCmdA'),
|
||||||
start: 'pcap trace rx tx max 100000 intfc any',
|
start: 'pcap trace rx tx max 100000 intfc any',
|
||||||
stop: 'pcap trace rx tx off',
|
stop: 'pcap trace rx tx off',
|
||||||
value: 'pcap trace',
|
value: 'pcap trace',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: '适合UPF异常需要抓包分析的情况',
|
label: t('views.traceManage.pcap.execUPFCmdB'),
|
||||||
start: 'pcap dispatch trace on max 100000',
|
start: 'pcap dispatch trace on max 100000',
|
||||||
stop: 'pcap dispatch trace off',
|
stop: 'pcap dispatch trace off',
|
||||||
value: 'pcap dispatch',
|
value: 'pcap dispatch',
|
||||||
|
|||||||
@@ -224,7 +224,7 @@ function fnRecordDelete(id: string) {
|
|||||||
function fnGetList(pageNum?: number) {
|
function fnGetList(pageNum?: number) {
|
||||||
if (tableState.loading) return;
|
if (tableState.loading) return;
|
||||||
tableState.loading = true;
|
tableState.loading = true;
|
||||||
if(pageNum){
|
if (pageNum) {
|
||||||
queryParams.pageNum = pageNum;
|
queryParams.pageNum = pageNum;
|
||||||
}
|
}
|
||||||
listTraceTask(toRaw(queryParams)).then(res => {
|
listTraceTask(toRaw(queryParams)).then(res => {
|
||||||
@@ -432,7 +432,7 @@ function fnModalVisibleByVive(id: string) {
|
|||||||
*/
|
*/
|
||||||
function fnModalVisibleByEdit(id?: string) {
|
function fnModalVisibleByEdit(id?: string) {
|
||||||
if (!id) {
|
if (!id) {
|
||||||
fnModalCancel()
|
fnModalCancel();
|
||||||
modalState.title = t('views.traceManage.task.addTask');
|
modalState.title = t('views.traceManage.task.addTask');
|
||||||
modalState.visibleByEdit = true;
|
modalState.visibleByEdit = true;
|
||||||
} else {
|
} else {
|
||||||
@@ -492,7 +492,7 @@ function fnModalOk() {
|
|||||||
content: t('common.msgSuccess', { msg: modalState.title }),
|
content: t('common.msgSuccess', { msg: modalState.title }),
|
||||||
duration: 3,
|
duration: 3,
|
||||||
});
|
});
|
||||||
fnModalCancel()
|
fnModalCancel();
|
||||||
} else {
|
} else {
|
||||||
message.error({
|
message.error({
|
||||||
content: `${res.msg}`,
|
content: `${res.msg}`,
|
||||||
@@ -569,25 +569,31 @@ onMounted(() => {
|
|||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
<a-col :lg="6" :md="12" :xs="24">
|
<a-col :lg="6" :md="12" :xs="24">
|
||||||
<a-form-item label="开始时间" name="beginTime">
|
<a-form-item
|
||||||
|
:label="t('views.traceManage.task.startTime')"
|
||||||
|
name="beginTime"
|
||||||
|
>
|
||||||
<a-date-picker
|
<a-date-picker
|
||||||
show-time
|
show-time
|
||||||
v-model:value="queryParams.beginTime"
|
v-model:value="queryParams.beginTime"
|
||||||
value-format="YYYY-MM-DD HH:mm:ss"
|
value-format="YYYY-MM-DD HH:mm:ss"
|
||||||
format="YYYY-MM-DD HH:mm:ss"
|
format="YYYY-MM-DD HH:mm:ss"
|
||||||
placeholder="查询结束时间"
|
:placeholder="t('views.traceManage.task.startTime')"
|
||||||
style="width: 100%"
|
style="width: 100%"
|
||||||
/>
|
/>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
<a-col :lg="6" :md="12" :xs="24">
|
<a-col :lg="6" :md="12" :xs="24">
|
||||||
<a-form-item label="结束时间" name="endTime">
|
<a-form-item
|
||||||
|
:label="t('views.traceManage.task.endTime')"
|
||||||
|
name="endTime"
|
||||||
|
>
|
||||||
<a-date-picker
|
<a-date-picker
|
||||||
show-time
|
show-time
|
||||||
v-model:value="queryParams.endTime"
|
v-model:value="queryParams.endTime"
|
||||||
value-format="YYYY-MM-DD HH:mm:ss"
|
value-format="YYYY-MM-DD HH:mm:ss"
|
||||||
format="YYYY-MM-DD HH:mm:ss"
|
format="YYYY-MM-DD HH:mm:ss"
|
||||||
placeholder="查询结束时间"
|
:placeholder="t('views.traceManage.task.endTime')"
|
||||||
style="width: 100%"
|
style="width: 100%"
|
||||||
/>
|
/>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
@@ -648,15 +654,15 @@ onMounted(() => {
|
|||||||
:selected-keys="[tableState.size as string]"
|
:selected-keys="[tableState.size as string]"
|
||||||
@click="fnTableSize"
|
@click="fnTableSize"
|
||||||
>
|
>
|
||||||
<a-menu-item key="default">{{
|
<a-menu-item key="default">
|
||||||
t('common.size.default')
|
{{ t('common.size.default') }}
|
||||||
}}</a-menu-item>
|
</a-menu-item>
|
||||||
<a-menu-item key="middle">{{
|
<a-menu-item key="middle">
|
||||||
t('common.size.middle')
|
{{ t('common.size.middle') }}
|
||||||
}}</a-menu-item>
|
</a-menu-item>
|
||||||
<a-menu-item key="small">{{
|
<a-menu-item key="small">
|
||||||
t('common.size.small')
|
{{ t('common.size.small') }}
|
||||||
}}</a-menu-item>
|
</a-menu-item>
|
||||||
</a-menu>
|
</a-menu>
|
||||||
</template>
|
</template>
|
||||||
</a-dropdown>
|
</a-dropdown>
|
||||||
|
|||||||
Reference in New Issue
Block a user