Restore login log management entry
This commit is contained in:
@@ -7388,6 +7388,51 @@
|
|||||||
"sys_dept_id": null
|
"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",
|
"model": "core.menu.model.Menu",
|
||||||
"pk": "c4b8daa0-7e1c-4039-9a",
|
"pk": "c4b8daa0-7e1c-4039-9a",
|
||||||
|
|||||||
@@ -27,6 +27,7 @@ const modules = import.meta.glob([
|
|||||||
'./langs/*/announcement.json',
|
'./langs/*/announcement.json',
|
||||||
'./langs/*/authentication.json',
|
'./langs/*/authentication.json',
|
||||||
'./langs/*/common.json',
|
'./langs/*/common.json',
|
||||||
|
'./langs/*/loginLog.json',
|
||||||
'./langs/*/menu.json',
|
'./langs/*/menu.json',
|
||||||
'./langs/*/menu-title.json',
|
'./langs/*/menu-title.json',
|
||||||
'./langs/*/message.json',
|
'./langs/*/message.json',
|
||||||
|
|||||||
@@ -4,6 +4,14 @@
|
|||||||
"username": "Username",
|
"username": "Username",
|
||||||
"userId": "User ID",
|
"userId": "User ID",
|
||||||
"status": "Login Status",
|
"status": "Login Status",
|
||||||
|
"loginType": "Login Type",
|
||||||
|
"passwordLogin": "Password",
|
||||||
|
"codeLogin": "Verification Code",
|
||||||
|
"qrcodeLogin": "QR Code",
|
||||||
|
"wechatLogin": "WeChat",
|
||||||
|
"microsoftLogin": "Microsoft",
|
||||||
|
"dingtalkLogin": "DingTalk",
|
||||||
|
"feishuLogin": "Feishu",
|
||||||
"statusSuccess": "Success",
|
"statusSuccess": "Success",
|
||||||
"statusFailed": "Failed",
|
"statusFailed": "Failed",
|
||||||
"failureReason": "Failure Reason",
|
"failureReason": "Failure Reason",
|
||||||
@@ -47,6 +55,7 @@
|
|||||||
"searchPlaceholder": "Please enter {0}",
|
"searchPlaceholder": "Please enter {0}",
|
||||||
"selectPlaceholder": "Please select {0}",
|
"selectPlaceholder": "Please select {0}",
|
||||||
"selectStatus": "Please select login status",
|
"selectStatus": "Please select login status",
|
||||||
|
"selectLoginType": "Please select login type",
|
||||||
"selectFailureReason": "Please select failure reason",
|
"selectFailureReason": "Please select failure reason",
|
||||||
"selectDeviceType": "Please select device type",
|
"selectDeviceType": "Please select device type",
|
||||||
"startTime": "Start Time",
|
"startTime": "Start Time",
|
||||||
|
|||||||
@@ -4,6 +4,14 @@
|
|||||||
"username": "用户名",
|
"username": "用户名",
|
||||||
"userId": "用户ID",
|
"userId": "用户ID",
|
||||||
"status": "登录状态",
|
"status": "登录状态",
|
||||||
|
"loginType": "登录方式",
|
||||||
|
"passwordLogin": "密码登录",
|
||||||
|
"codeLogin": "验证码登录",
|
||||||
|
"qrcodeLogin": "二维码登录",
|
||||||
|
"wechatLogin": "微信",
|
||||||
|
"microsoftLogin": "微软",
|
||||||
|
"dingtalkLogin": "钉钉",
|
||||||
|
"feishuLogin": "飞书",
|
||||||
"statusSuccess": "成功",
|
"statusSuccess": "成功",
|
||||||
"statusFailed": "失败",
|
"statusFailed": "失败",
|
||||||
"failureReason": "失败原因",
|
"failureReason": "失败原因",
|
||||||
@@ -47,6 +55,7 @@
|
|||||||
"searchPlaceholder": "请输入{0}",
|
"searchPlaceholder": "请输入{0}",
|
||||||
"selectPlaceholder": "请选择{0}",
|
"selectPlaceholder": "请选择{0}",
|
||||||
"selectStatus": "请选择登录状态",
|
"selectStatus": "请选择登录状态",
|
||||||
|
"selectLoginType": "请选择登录方式",
|
||||||
"selectFailureReason": "请选择失败原因",
|
"selectFailureReason": "请选择失败原因",
|
||||||
"selectDeviceType": "请选择设备类型",
|
"selectDeviceType": "请选择设备类型",
|
||||||
"startTime": "开始时间",
|
"startTime": "开始时间",
|
||||||
|
|||||||
@@ -4,6 +4,14 @@
|
|||||||
"username": "用戶名",
|
"username": "用戶名",
|
||||||
"userId": "用戶ID",
|
"userId": "用戶ID",
|
||||||
"status": "登錄狀態",
|
"status": "登錄狀態",
|
||||||
|
"loginType": "登錄方式",
|
||||||
|
"passwordLogin": "密碼登錄",
|
||||||
|
"codeLogin": "驗證碼登錄",
|
||||||
|
"qrcodeLogin": "二維碼登錄",
|
||||||
|
"wechatLogin": "微信",
|
||||||
|
"microsoftLogin": "微軟",
|
||||||
|
"dingtalkLogin": "釘釘",
|
||||||
|
"feishuLogin": "飛書",
|
||||||
"statusSuccess": "成功",
|
"statusSuccess": "成功",
|
||||||
"statusFailed": "失敗",
|
"statusFailed": "失敗",
|
||||||
"failureReason": "失敗原因",
|
"failureReason": "失敗原因",
|
||||||
@@ -47,6 +55,7 @@
|
|||||||
"searchPlaceholder": "請輸入{0}",
|
"searchPlaceholder": "請輸入{0}",
|
||||||
"selectPlaceholder": "請選擇{0}",
|
"selectPlaceholder": "請選擇{0}",
|
||||||
"selectStatus": "請選擇登錄狀態",
|
"selectStatus": "請選擇登錄狀態",
|
||||||
|
"selectLoginType": "請選擇登錄方式",
|
||||||
"selectFailureReason": "請選擇失敗原因",
|
"selectFailureReason": "請選擇失敗原因",
|
||||||
"selectDeviceType": "請選擇設備類型",
|
"selectDeviceType": "請選擇設備類型",
|
||||||
"startTime": "開始時間",
|
"startTime": "開始時間",
|
||||||
|
|||||||
@@ -28,6 +28,7 @@ async function generateAccess(options: GenerateMenuAndRoutesOptions) {
|
|||||||
'../views/_core/dept/index.vue',
|
'../views/_core/dept/index.vue',
|
||||||
'../views/_core/dict/index.vue',
|
'../views/_core/dict/index.vue',
|
||||||
'../views/_core/fallback/**/*.vue',
|
'../views/_core/fallback/**/*.vue',
|
||||||
|
'../views/_core/login-log/index.vue',
|
||||||
'../views/_core/menu/index.vue',
|
'../views/_core/menu/index.vue',
|
||||||
'../views/_core/message/index.vue',
|
'../views/_core/message/index.vue',
|
||||||
'../views/_core/org-chart/index.vue',
|
'../views/_core/org-chart/index.vue',
|
||||||
|
|||||||
@@ -41,17 +41,45 @@ export function getDeviceTypeOptions() {
|
|||||||
|
|
||||||
export function getLoginTypeOptions() {
|
export function getLoginTypeOptions() {
|
||||||
return [
|
return [
|
||||||
{ label: '密码登录', value: 'password', type: 'info' as TagType },
|
{
|
||||||
{ label: '验证码登录', value: 'code', type: 'info' as TagType },
|
label: $t('loginLog.passwordLogin'),
|
||||||
{ label: '二维码登录', value: 'qrcode', type: 'info' as TagType },
|
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: 'Gitee', value: 'gitee', type: 'success' as TagType },
|
||||||
{ label: 'GitHub', value: 'github', type: 'success' as TagType },
|
{ label: 'GitHub', value: 'github', type: 'success' as TagType },
|
||||||
{ label: 'QQ', value: 'qq', type: 'success' as TagType },
|
{ label: 'QQ', value: 'qq', type: 'success' as TagType },
|
||||||
{ label: 'Google', value: 'google', 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: $t('loginLog.wechatLogin'),
|
||||||
{ label: '钉钉', value: 'dingtalk', type: 'success' as TagType },
|
type: 'success' as TagType,
|
||||||
{ label: '飞书', value: 'feishu', 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',
|
component: 'Select',
|
||||||
fieldName: 'login_type',
|
fieldName: 'login_type',
|
||||||
label: '登录方式',
|
label: $t('loginLog.loginType'),
|
||||||
componentProps: {
|
componentProps: {
|
||||||
placeholder: '请选择登录方式',
|
placeholder: $t('loginLog.selectLoginType'),
|
||||||
options: getLoginTypeOptions(),
|
options: getLoginTypeOptions(),
|
||||||
clearable: true,
|
clearable: true,
|
||||||
},
|
},
|
||||||
@@ -123,7 +151,7 @@ export function useZqTableColumns(): Column[] {
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
key: 'login_type',
|
key: 'login_type',
|
||||||
title: '登录方式',
|
title: $t('loginLog.loginType'),
|
||||||
width: 120,
|
width: 120,
|
||||||
align: 'center' as const,
|
align: 'center' as const,
|
||||||
slots: { default: 'cell-login_type' },
|
slots: { default: 'cell-login_type' },
|
||||||
|
|||||||
Reference in New Issue
Block a user