` 只渲染一份。 * ⚠️ 这正是项目一直在治的那类问题:每行内联一套表单,条目一多就是几千个 `
`, * 密码管理器逐个扫描会把主线程占死(用户报过两次,见 ledger/people 的注释)。 * * ⚠️ 按钮放在 `` 里为什么不会误开合: * `` 内任意位置点击都会 toggle `
`(浏览器默认行为), * 所以四个按钮的 click 处理里**必须** `preventDefault()`(见文件末尾脚本的说明)。 * 真机探针专门断言了「点按钮 → 弹框打开、且这一条**没有**被展开」。 * * ⚠️ 结构性约束:`` 里只能放 **phrasing content** —— * 所以按钮组写成 span(class 为 res-ops)而不是 div; * `` 更是绝对不能放进去(那是 flow content)。 * 这也是"四个动作必须进弹框"的一条额外理由:删除/补传/共享/编辑在原实现里 * 全都是 ``,留在标题行会直接产出非法 HTML。 * * @param array $rows 我能看到的资源(带 perm / owner_nick) * @param array $people 名册(新建/编辑时选归属人、共享给别人) * @param array $attachs resource_id => 附件列表 * @param array $shares resource_id => 共享列表 */ $isEditing = !empty($editing); $canWrite = \App\Auth::canWrite(); $myPerson = (int)\App\Auth::personId(); ?>

资源

共 条
只读账号
清除
>

资源列表 匹配「」的 条 count($rows)): ?> 只显示最新的 条(共 条) 共 条

(int)$r['owner_id'], 'name' => (string)$r['owner_name'], 'my_nickname' => (string)($r['owner_nick'] ?? ''), 'avatar' => $r['avatar'] ?? null, 'avatar_color' => $r['avatar_color'] ?? null, ]; ?>
个附件 包(phrasing content);`
`/`
` 放 里是非法 HTML。 ⚠️ 每个按钮都带 `data-res-open`,脚本里对它 `preventDefault()` 以阻止 顺带把这一条展开。 */ ?>

"膨胀的最后一处。 */ ?>
所有者 共享给 (还没有共享给谁)
count($rows)): ?>
显示全部 条 只按「」取了前 条 —— 找不到就直接搜。
集中在这里渲染**一份**。 ⚠️ `[hidden]` 必须自己声明:`.res-modal` 与 `.res-panel-lg` 都写了 `display:flex`, 浏览器默认的 `[hidden]{display:none}` 会被它们盖过 —— 于是"关不掉"。 (项目在 `.pv` / `.pp-item` 上各栽过一次,所以 CSS 里 `.res-modal[hidden]` 是硬要求。) */ ?>