diff --git a/templates/MetaLab-2026/html/settings/index.html b/templates/MetaLab-2026/html/settings/index.html index 3c05dda..7dcf627 100644 --- a/templates/MetaLab-2026/html/settings/index.html +++ b/templates/MetaLab-2026/html/settings/index.html @@ -68,56 +68,7 @@
{{if .User.Avatar}} avatar - {{else if eq .ActiveTab "sessions"}} - -
-
-

登录管理

-

查看和管理你的登录设备,保护账号安全

-
-
-
- {{range .Sessions}} -
-
- {{if eq .DeviceInfo.Device "Mobile"}} - {{else if eq .DeviceInfo.Device "Tablet"}} - {{else}} - {{end}} -
-
-
- {{.DeviceInfo.Browser}} - / {{.DeviceInfo.OS}} - {{if .IsCurrent}}当前设备{{end}} -
-
- IP: {{.IP}} - 登录于 {{.CreatedAt.Format "2006-01-02 15:04"}} - 最后活动 {{.LastAccess.Format "2006-01-02 15:04"}} -
-
- -
-
-
- {{if not .IsCurrent}} - - {{end}} -
-
- {{end}} - {{if not .Sessions}} -
暂无活跃的登录会话
- {{end}} -
-
- -
- {{else}} + {{else}}
@@ -194,55 +145,7 @@ 将强制退出除当前设备外的所有登录会话
- {{else if eq .ActiveTab "sessions"}} - -
-
-

登录管理

-

查看和管理你的登录设备,保护账号安全

-
-
-
- {{range .Sessions}} -
-
- {{if eq .DeviceInfo.Device "Mobile"}} - {{else if eq .DeviceInfo.Device "Tablet"}} - {{else}} - {{end}} -
-
-
- {{.DeviceInfo.Browser}} - / {{.DeviceInfo.OS}} - {{if .IsCurrent}}当前设备{{end}} -
-
- IP: {{.IP}} - 登录于 {{.CreatedAt.Format "2006-01-02 15:04"}} - 最后活动 {{.LastAccess.Format "2006-01-02 15:04"}} -
-
- -
-
-
- {{if not .IsCurrent}} - - {{end}} -
-
- {{end}} - {{if not .Sessions}} -
暂无活跃的登录会话
- {{end}} -
-
- -
+ {{else}}
@@ -489,8 +392,6 @@ var iw = imgDW * zoom, ih = imgDH * zoom; var cx = Math.round((sw - iw) / 2); // 图片居中时的基准偏移 var cy = Math.round((sh - ih) / 2); - // 图片左边界必须在框左边之左:cx + panX <= fLeft → panX <= fLeft - cx - // 图片右边界必须在框右边之右:cx + panX + iw >= fLeft + fSize → panX >= fLeft + fSize - cx - iw panX = Math.max(fLeft + fSize - cx - iw, Math.min(panX, fLeft - cx)); panY = Math.max(fTop + fSize - cy - ih, Math.min(panY, fTop - cy)); } @@ -506,7 +407,6 @@ cropImageEl.style.left = ox + 'px'; cropImageEl.style.top = oy + 'px'; - // 裁切框固定不变 cropFrame.style.left = fLeft + 'px'; cropFrame.style.top = fTop + 'px'; cropFrame.style.width = fSize + 'px'; @@ -546,16 +446,14 @@ pendingFile = null; } - // 将裁切框映射回原图像素坐标 function getCropParams() { var sw = cropStage.clientWidth, sh = cropStage.clientHeight; var iw = imgDW * zoom, ih = imgDH * zoom; var ox = Math.round((sw - iw) / 2) + panX; var oy = Math.round((sh - ih) / 2) + panY; - // 裁切框中心在 zoom=1 图片坐标中的位置 var cx = (fLeft + fSize / 2 - ox) / zoom; var cy = (fTop + fSize / 2 - oy) / zoom; - var cs = fSize / zoom; // zoom=1 坐标中的裁切边长 + var cs = fSize / zoom; var sx = imgNW / imgDW, sy = imgNH / imgDH; return { x: Math.round((cx - cs / 2) * sx), @@ -564,7 +462,7 @@ }; } - // ---- 图片平移(点击拖拽 stage 任意位置) ---- + // ---- 图片平移 ---- var panning = false, panStartX = 0, panStartY = 0, panInitX = 0, panInitY = 0; function startPan(clientX, clientY) { @@ -596,7 +494,6 @@ cropStage.style.cursor = 'grab'; }); - // 触屏平移 cropStage.addEventListener('touchstart', function (e) { e.preventDefault(); var t = e.touches[0]; @@ -612,7 +509,6 @@ cropStage.style.cursor = 'grab'; }); - // ---- 滚轮缩放 ---- cropStage.addEventListener('wheel', function (e) { e.preventDefault(); if (panning) return; @@ -709,7 +605,6 @@ showSettingsToast('密码已修改,请重新登录'); currentPwd.value = ''; newPwd.value = ''; - // 延时后执行登出并跳转到首页 setTimeout(function () { window.location.href = '/'; }, 2000); @@ -798,7 +693,6 @@ var res = JSON.parse(xhr.responseText); if (res.success) { showSettingsToast(res.message || '已踢出该设备'); - // 移除该设备行(带淡出动画) var item = btn.closest('.session-item'); if (item) { item.style.transition = 'opacity .3s ease, transform .3s ease'; @@ -840,7 +734,6 @@ var res = JSON.parse(xhr.responseText); if (res.success) { showSettingsToast(res.message || '已踢出所有其他设备'); - // 移除非当前设备行 var others = document.querySelectorAll('.session-item:not(.session-current)'); others.forEach(function (item, i) { setTimeout(function () {