diff --git a/tenant-platform/src/api/license.ts b/tenant-platform/src/api/license.ts index 2dca8a7..3a5c675 100644 --- a/tenant-platform/src/api/license.ts +++ b/tenant-platform/src/api/license.ts @@ -83,6 +83,14 @@ export interface LicenseDevice { companyId: string deviceId: string deviceName?: string | null + deviceModel?: string | null + deviceVendor?: string | null + osVersion?: string | null + userId?: string | null + userName?: string | null + userEmail?: string | null + userPhone?: string | null + userInfoJson?: string | null registeredAt: string lastVerifiedAt?: string | null isActive: boolean diff --git a/tenant-platform/src/views/license/LicenseManagementView.vue b/tenant-platform/src/views/license/LicenseManagementView.vue index f75a470..40c4b3b 100644 --- a/tenant-platform/src/views/license/LicenseManagementView.vue +++ b/tenant-platform/src/views/license/LicenseManagementView.vue @@ -80,6 +80,30 @@ {{ row.deviceName || '-' }} + + + + {{ row.userName || row.userId || '-' }} + {{ row.userId }} + + + + + + + {{ row.userPhone || '-' }} + {{ row.userEmail }} + + + + + + + {{ [row.deviceVendor, row.deviceModel].filter(Boolean).join(' ') || '-' }} + {{ row.osVersion }} + + + {{ formatDate(row.registeredAt) }} @@ -347,4 +371,6 @@ onMounted(() => { .table-wrap { overflow-x: auto; } .portal-bar { display: flex; align-items: center; gap: 12px; margin-bottom: 20px; } .portal-bar-title { font-size: 18px; font-weight: 600; } +.user-cell { display: flex; flex-direction: column; gap: 2px; line-height: 1.35; } +.user-cell small { color: #909399; font-size: 12px; }