diff --git a/templates/MetaLab-2026/html/posts/show.html b/templates/MetaLab-2026/html/posts/show.html index 3ca1664..36c33a9 100644 --- a/templates/MetaLab-2026/html/posts/show.html +++ b/templates/MetaLab-2026/html/posts/show.html @@ -36,18 +36,37 @@
- -
- - - + + {{else}} + + + {{end}} + +
@@ -59,9 +78,6 @@ {{if and $.Post (eq $.Post.UserID $.UID) (or (eq $.Post.Status "draft") (eq $.Post.Status "rejected")) (not $.Post.IsLocked)}} {{end}} - {{if and $.Post (ne $.Post.UserID $.UID)}} - - {{end}} @@ -158,5 +174,42 @@ + diff --git a/templates/MetaLab-2026/static/css/posts.css b/templates/MetaLab-2026/static/css/posts.css index 6417d03..c81e37d 100644 --- a/templates/MetaLab-2026/static/css/posts.css +++ b/templates/MetaLab-2026/static/css/posts.css @@ -1248,3 +1248,85 @@ font-size: 11px; margin-left: 8px; } + +/* ========== 右下角悬浮操作栏 ========== */ +.post-float-bar { + position: fixed; + right: 20px; + bottom: 120px; + display: flex; + flex-direction: column; + gap: 4px; + z-index: 100; + background: var(--color-surface, #fff); + border-radius: 12px; + box-shadow: 0 4px 24px rgba(0,0,0,.1); + padding: 6px; +} + +.float-btn { + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + width: 44px; + height: 44px; + border: none; + background: transparent; + border-radius: 8px; + cursor: pointer; + color: #6b7280; + transition: all .15s; + position: relative; +} + +.float-btn:hover { + background: #f3f4f6; + color: #6366f1; +} + +.float-btn.active { + color: #6366f1; + background: #eef2ff; +} + +.float-btn svg { + width: 20px; + height: 20px; +} + +.float-count { + font-size: 10px; + font-weight: 600; + line-height: 1; + margin-top: 2px; + color: inherit; +} + +.float-top-btn { + border-top: 1px solid #f3f4f6; + border-radius: 0 0 8px 8px; + margin-top: 2px; + padding-top: 6px; +} + +/* 赋能 Toast */ +.energize-toast { + position: fixed; + top: 80px; + left: 50%; + transform: translateX(-50%); + background: #1f2937; + color: #fff; + padding: 10px 24px; + border-radius: 8px; + font-size: 14px; + opacity: 0; + transition: opacity .3s; + z-index: 10000; + pointer-events: none; +} + +.energize-toast.show { + opacity: 1; +} diff --git a/templates/MetaLab-2026/static/js/post-comments.js b/templates/MetaLab-2026/static/js/post-comments.js index 5a3ba7e..a9e4db7 100644 --- a/templates/MetaLab-2026/static/js/post-comments.js +++ b/templates/MetaLab-2026/static/js/post-comments.js @@ -4,7 +4,7 @@ var commentsSection = document.getElementById('comments'); if (!commentsSection) return; - var postId = commentsSection.closest('.container').querySelector('#postReactions').dataset.postId; + var postId = commentsSection.closest('.container').querySelector('#postFloatBar').dataset.postId; var commentsList = document.getElementById('commentsList'); var commentsTotal = document.getElementById('commentsTotal'); var loadMoreBtn = document.getElementById('commentsLoadMore'); diff --git a/templates/MetaLab-2026/static/js/post-energize.js b/templates/MetaLab-2026/static/js/post-energize.js index 5ea167b..0e17b2d 100644 --- a/templates/MetaLab-2026/static/js/post-energize.js +++ b/templates/MetaLab-2026/static/js/post-energize.js @@ -9,6 +9,20 @@ if (!btn || !overlay) return; var postId = btn.dataset.id; + var isAuthor = btn.dataset.uid && btn.dataset.authorUid && + btn.dataset.uid === btn.dataset.authorUid; + + function showToast(msg) { + var toast = document.createElement('div'); + toast.className = 'energize-toast'; + toast.textContent = msg; + document.body.appendChild(toast); + setTimeout(function() { toast.classList.add('show'); }, 10); + setTimeout(function() { + toast.classList.remove('show'); + setTimeout(function() { toast.remove(); }, 300); + }, 2000); + } function showOverlay() { overlay.style.display = 'flex'; @@ -21,6 +35,10 @@ } btn.addEventListener('click', function() { + if (isAuthor) { + showToast('无法给自己赋能'); + return; + } fetch('/api/energy/info') .then(function(r) { return r.json(); }) .then(function(d) { diff --git a/templates/MetaLab-2026/static/js/post-favorite.js b/templates/MetaLab-2026/static/js/post-favorite.js index 65ec12f..838eb26 100644 --- a/templates/MetaLab-2026/static/js/post-favorite.js +++ b/templates/MetaLab-2026/static/js/post-favorite.js @@ -2,7 +2,7 @@ (function() { var favBtn = document.getElementById('favBtn'); var favCountEl = document.getElementById('favCount'); - var container = document.getElementById('postReactions'); + var container = document.getElementById('postFloatBar'); var overlay = document.getElementById('favOverlay'); var closeBtn = document.getElementById('favClose'); var folderListEl = document.getElementById('favFolderCheckList'); diff --git a/templates/MetaLab-2026/static/js/post-reactions.js b/templates/MetaLab-2026/static/js/post-reactions.js index a5b6917..9bedce2 100644 --- a/templates/MetaLab-2026/static/js/post-reactions.js +++ b/templates/MetaLab-2026/static/js/post-reactions.js @@ -1,6 +1,6 @@ // 赞/踩系统 (function() { - var container = document.getElementById('postReactions'); + var container = document.getElementById('postFloatBar'); var likeBtn = document.getElementById('likeBtn'); var dislikeBtn = document.getElementById('dislikeBtn'); var likesCountEl = document.getElementById('likesCount');