From 1388fcb72b7b639a4bac9e4c75faf77a0b996fd0 Mon Sep 17 00:00:00 2001 From: qing <1776177662@qq.com> Date: Thu, 30 Jul 2026 09:21:15 +0800 Subject: [PATCH] =?UTF-8?q?feat(dnfs):=20=E5=8D=A1=E7=89=87=E7=A7=BB?= =?UTF-8?q?=E5=8A=A8=E6=8C=89=E9=92=AE=E4=B8=80=E5=B9=B6=E7=BA=B3=E5=85=A5?= =?UTF-8?q?=20can=5Foperate=20=E6=9D=83=E9=99=90=E6=98=BE=E9=9A=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 编辑/移动/删除三个按钮合并为单次权限判断(移动本质也是 update_note), 未登录或无权时不渲染整个按钮组。 --- static/public/js/dnfs.js | 41 ++++++++++++++++++++-------------------- 1 file changed, 20 insertions(+), 21 deletions(-) diff --git a/static/public/js/dnfs.js b/static/public/js/dnfs.js index bd52ec1..a713838 100644 --- a/static/public/js/dnfs.js +++ b/static/public/js/dnfs.js @@ -561,11 +561,17 @@ function load_notes(main_node) { sts_div.appendChild(makeStatItem(ICON_HEART, item.like_count)); sts_div.appendChild(makeStatItem(ICON_SHARE, item.share_count)); // 卡片操作按钮:编辑 / 移动 / 删除(stopPropagation 防止触发卡片自身的点入跳转) - // 编辑与删除按 can_operate 显隐:操作权由后端 get_notes 按 owner / is_admin 判定, - // 与 delete_note / update_note 鉴权口径一致;未登录或无权时隐藏 - let act_div = document.createElement('div'); - act_div.className = "card-actions"; + // 按钮组整体按 can_operate 显隐:操作权由后端 get_notes 按 owner / is_admin 判定, + // 与 delete_note / update_note 鉴权口径一致(移动本质也是 update_note); + // 未登录或无权时不渲染整个按钮组 + ttl.appendChild(wrt_div); + ttl.appendChild(sts_div); + let ctt = document.createElement('p'); + renderMarkdown(ctt, item.content); + card.appendChild(ctt) if (item.can_operate === true) { + let act_div = document.createElement('div'); + act_div.className = "card-actions"; let edit_btn = document.createElement('button'); edit_btn.className = "act-btn act-edit"; edit_btn.innerHTML = ICON_EDIT + "编辑"; @@ -573,17 +579,13 @@ function load_notes(main_node) { event.stopPropagation(); startEdit(item); }); - act_div.appendChild(edit_btn); - } - let move_btn = document.createElement('button'); - move_btn.className = "act-btn act-move"; - move_btn.innerHTML = ICON_MOVE + "移动"; - move_btn.addEventListener('click', function(event) { - event.stopPropagation(); - startMove(item); - }); - act_div.appendChild(move_btn); - if (item.can_operate === true) { + let move_btn = document.createElement('button'); + move_btn.className = "act-btn act-move"; + move_btn.innerHTML = ICON_MOVE + "移动"; + move_btn.addEventListener('click', function(event) { + event.stopPropagation(); + startMove(item); + }); let del_btn = document.createElement('button'); del_btn.className = "act-btn act-del"; del_btn.innerHTML = ICON_TRASH + "删除"; @@ -591,14 +593,11 @@ function load_notes(main_node) { event.stopPropagation(); deleteChild(item.id); }); + act_div.appendChild(edit_btn); + act_div.appendChild(move_btn); act_div.appendChild(del_btn); + card.appendChild(act_div); } - ttl.appendChild(wrt_div); - ttl.appendChild(sts_div); - let ctt = document.createElement('p'); - renderMarkdown(ctt, item.content); - card.appendChild(ctt) - card.appendChild(act_div); recommend_list.appendChild(card) recommend_list.appendChild(document.createElement('br')) }