diff --git a/apps/src/views/app-system/login-logger.vue b/apps/src/views/app-system/login-logger.vue index e0d6a93..ceda2ae 100644 --- a/apps/src/views/app-system/login-logger.vue +++ b/apps/src/views/app-system/login-logger.vue @@ -47,13 +47,15 @@ const columns = [ { dataIndex: 'user', key: 'user', title: '用户', width: 240 }, { dataIndex: 'deviceId', key: 'deviceId', title: '设备ID', width: 220 }, { dataIndex: 'ip', key: 'ip', title: 'IP', width: 160 }, + { dataIndex: 'ipLocation', key: 'ipLocation', title: 'IP地区', width: 220 }, + { dataIndex: 'loginBlocked', key: 'loginBlocked', title: '是否屏蔽', width: 120 }, { dataIndex: 'loginTypeName', key: 'loginTypeName', title: '登录方式', width: 120 }, { dataIndex: 'appVersion', key: 'appVersion', title: 'App版本', width: 120 }, { dataIndex: 'createTime', key: 'createTime', title: '登录时间', width: 180 }, { dataIndex: 'actions', key: 'actions', title: '操作', width: 220 }, ]; -const tableScroll = computed(() => ({ x: 1480 })); +const tableScroll = computed(() => ({ x: 1820 })); function getUserId(record: Record) { return String(record.userProfile?.id || record.id || record.userId || ''); @@ -75,6 +77,14 @@ function getVipStatusName(record: Record) { return record.userProfile?.vipStatusName || record.vipStatusName || ''; } +function getIpLocation(record: Record) { + const parts = [ + record.ipCountryName || record.ipCountryCode, + record.ipRegion, + ].filter(Boolean); + return parts.length > 0 ? parts.join(' / ') : '-'; +} + async function loadData(reset = false) { if (reset) { query.cursor = 1; @@ -179,6 +189,20 @@ loadData(true); {{ record.ip || '-' }} + + @@ -272,6 +296,12 @@ loadData(true); font-size: 12px; } +.block-reason { + color: rgb(100 116 139); + font-size: 12px; + margin-top: 4px; +} + .pager { display: flex; justify-content: flex-end;