Restore login log management entry

This commit is contained in:
2026-06-10 10:01:06 +08:00
parent defe2d6ef5
commit 17221a93bf
7 changed files with 112 additions and 10 deletions
+45
View File
@@ -7388,6 +7388,51 @@
"sys_dept_id": null
}
},
{
"model": "core.menu.model.Menu",
"pk": "ai-agent-admin-system-login-log",
"fields": {
"application_id": null,
"is_system": true,
"parent_id": "2c03f7a0-f4b5-43a9-94",
"name": "SystemLoginLog",
"title": "menu-title.loginLog",
"authCode": null,
"path": "/system/login-log",
"type": "menu",
"component": "/_core/login-log/index",
"redirect": null,
"activePath": null,
"query": null,
"noBasicLayout": false,
"icon": "lucide:history",
"activeIcon": null,
"order": 45,
"hideInMenu": false,
"hideChildrenInMenu": false,
"hideInBreadcrumb": false,
"hideInTab": false,
"affixTab": false,
"affixTabOrder": null,
"keepAlive": false,
"maxNumOfOpenTab": null,
"fullPathKey": true,
"link": null,
"iframeSrc": null,
"openInNewWindow": false,
"badge": null,
"badgeType": null,
"badgeVariants": null,
"id": "ai-agent-admin-system-login-log",
"sort": 45,
"is_deleted": false,
"sys_create_datetime": "2026-06-10T00:00:00.000000",
"sys_update_datetime": "2026-06-10T00:00:00.000000",
"sys_creator_id": null,
"sys_modifier_id": null,
"sys_dept_id": null
}
},
{
"model": "core.menu.model.Menu",
"pk": "c4b8daa0-7e1c-4039-9a",
+1
View File
@@ -27,6 +27,7 @@ const modules = import.meta.glob([
'./langs/*/announcement.json',
'./langs/*/authentication.json',
'./langs/*/common.json',
'./langs/*/loginLog.json',
'./langs/*/menu.json',
'./langs/*/menu-title.json',
'./langs/*/message.json',
@@ -4,6 +4,14 @@
"username": "Username",
"userId": "User ID",
"status": "Login Status",
"loginType": "Login Type",
"passwordLogin": "Password",
"codeLogin": "Verification Code",
"qrcodeLogin": "QR Code",
"wechatLogin": "WeChat",
"microsoftLogin": "Microsoft",
"dingtalkLogin": "DingTalk",
"feishuLogin": "Feishu",
"statusSuccess": "Success",
"statusFailed": "Failed",
"failureReason": "Failure Reason",
@@ -47,6 +55,7 @@
"searchPlaceholder": "Please enter {0}",
"selectPlaceholder": "Please select {0}",
"selectStatus": "Please select login status",
"selectLoginType": "Please select login type",
"selectFailureReason": "Please select failure reason",
"selectDeviceType": "Please select device type",
"startTime": "Start Time",
@@ -4,6 +4,14 @@
"username": "用户名",
"userId": "用户ID",
"status": "登录状态",
"loginType": "登录方式",
"passwordLogin": "密码登录",
"codeLogin": "验证码登录",
"qrcodeLogin": "二维码登录",
"wechatLogin": "微信",
"microsoftLogin": "微软",
"dingtalkLogin": "钉钉",
"feishuLogin": "飞书",
"statusSuccess": "成功",
"statusFailed": "失败",
"failureReason": "失败原因",
@@ -47,6 +55,7 @@
"searchPlaceholder": "请输入{0}",
"selectPlaceholder": "请选择{0}",
"selectStatus": "请选择登录状态",
"selectLoginType": "请选择登录方式",
"selectFailureReason": "请选择失败原因",
"selectDeviceType": "请选择设备类型",
"startTime": "开始时间",
@@ -4,6 +4,14 @@
"username": "用戶名",
"userId": "用戶ID",
"status": "登錄狀態",
"loginType": "登錄方式",
"passwordLogin": "密碼登錄",
"codeLogin": "驗證碼登錄",
"qrcodeLogin": "二維碼登錄",
"wechatLogin": "微信",
"microsoftLogin": "微軟",
"dingtalkLogin": "釘釘",
"feishuLogin": "飛書",
"statusSuccess": "成功",
"statusFailed": "失敗",
"failureReason": "失敗原因",
@@ -47,6 +55,7 @@
"searchPlaceholder": "請輸入{0}",
"selectPlaceholder": "請選擇{0}",
"selectStatus": "請選擇登錄狀態",
"selectLoginType": "請選擇登錄方式",
"selectFailureReason": "請選擇失敗原因",
"selectDeviceType": "請選擇設備類型",
"startTime": "開始時間",
+1
View File
@@ -28,6 +28,7 @@ async function generateAccess(options: GenerateMenuAndRoutesOptions) {
'../views/_core/dept/index.vue',
'../views/_core/dict/index.vue',
'../views/_core/fallback/**/*.vue',
'../views/_core/login-log/index.vue',
'../views/_core/menu/index.vue',
'../views/_core/message/index.vue',
'../views/_core/org-chart/index.vue',
@@ -41,17 +41,45 @@ export function getDeviceTypeOptions() {
export function getLoginTypeOptions() {
return [
{ label: '密码登录', value: 'password', type: 'info' as TagType },
{ label: '验证码登录', value: 'code', type: 'info' as TagType },
{ label: '二维码登录', value: 'qrcode', type: 'info' as TagType },
{
label: $t('loginLog.passwordLogin'),
type: 'info' as TagType,
value: 'password',
},
{
label: $t('loginLog.codeLogin'),
type: 'info' as TagType,
value: 'code',
},
{
label: $t('loginLog.qrcodeLogin'),
type: 'info' as TagType,
value: 'qrcode',
},
{ label: 'Gitee', value: 'gitee', type: 'success' as TagType },
{ label: 'GitHub', value: 'github', type: 'success' as TagType },
{ label: 'QQ', value: 'qq', type: 'success' as TagType },
{ label: 'Google', value: 'google', type: 'success' as TagType },
{ label: '微信', value: 'wechat', type: 'success' as TagType },
{ label: '微软', value: 'microsoft', type: 'success' as TagType },
{ label: '钉钉', value: 'dingtalk', type: 'success' as TagType },
{ label: '飞书', value: 'feishu', type: 'success' as TagType },
{
label: $t('loginLog.wechatLogin'),
type: 'success' as TagType,
value: 'wechat',
},
{
label: $t('loginLog.microsoftLogin'),
type: 'success' as TagType,
value: 'microsoft',
},
{
label: $t('loginLog.dingtalkLogin'),
type: 'success' as TagType,
value: 'dingtalk',
},
{
label: $t('loginLog.feishuLogin'),
type: 'success' as TagType,
value: 'feishu',
},
];
}
@@ -96,9 +124,9 @@ export function useSearchFormSchema(): VbenFormSchema[] {
{
component: 'Select',
fieldName: 'login_type',
label: '登录方式',
label: $t('loginLog.loginType'),
componentProps: {
placeholder: '请选择登录方式',
placeholder: $t('loginLog.selectLoginType'),
options: getLoginTypeOptions(),
clearable: true,
},
@@ -123,7 +151,7 @@ export function useZqTableColumns(): Column[] {
},
{
key: 'login_type',
title: '登录方式',
title: $t('loginLog.loginType'),
width: 120,
align: 'center' as const,
slots: { default: 'cell-login_type' },