fix: 测试清单(7) 第7轮修复 — ZWQ/PMC/团队 8处真bug

- ZWQ-1 商品库: 编辑删图真生效 + 刷新后悬停垃圾桶图标恢复 (products.tsx/css)
- ZWQ-2 工作台: 最近项目进度条 5→4 段对齐视频项目, 完成态末段红→绿 (dashboard.tsx)
- PMC-4 消息中心: 收件箱文字错位修正 (messages-page.css)
- PMC-5 图片生成: 平台套图费用预估漏乘平台数, 改为 平台数×候选数×单价 对齐实扣(仅改展示, 不动扣费) (ai-tools.tsx)
- PMC-10 火山生图: 失败不再吞 response body, 错误体上抛便于定位 (volcano.py)
- PMC-11 团队: 创建账户弹窗禁止点遮罩误关 (overlays.tsx + team.tsx)

构建: npm run build EXIT=0 (1754 模块); volcano.py AST OK
注: PMC-10/YYX-8角标 等后端项需部署生效

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
zyc
2026-06-29 11:41:00 +08:00
co-authored by Claude Opus 4.8
parent 6e7425048c
commit f3b89f3d49
9 changed files with 150 additions and 32 deletions
+4 -2
View File
@@ -100,7 +100,7 @@ export function SettingRow({ title, desc, action, toggle, checked }: { title: st
);
}
export function TeamModal({ open, title, subtitle, icon, close, children, footer }: {
export function TeamModal({ open, title, subtitle, icon, close, children, footer, dismissable = true }: {
open: boolean;
title: string;
subtitle: string;
@@ -108,13 +108,15 @@ export function TeamModal({ open, title, subtitle, icon, close, children, footer
close: () => void;
children: ReactNode;
footer?: ReactNode;
/** 是否允许点击遮罩关闭弹窗。默认 true(保持原有行为);传 false 则点遮罩不响应。 */
dismissable?: boolean;
}) {
useBodyScrollLock(open);
const { mounted, show } = useOverlayTransition(open, close);
if (!mounted) return null;
// 挂到 body:脱离 .content(z-index:1)层叠上下文,遮罩才能盖住头部/侧栏
return createPortal(
<div className={`modal-bg${show ? " show" : ""}`} onClick={close}>
<div className={`modal-bg${show ? " show" : ""}`} onClick={dismissable ? close : undefined}>
<div className="modal invite-modal" onClick={(event) => event.stopPropagation()}>
<span className="corner-tr">+</span><span className="corner-bl">+</span>
<div className="modal-h"><div className="ic-m">{icon}</div><div className="ti">{title}<span>{subtitle}</span></div><button className="x modal-x" type="button" onClick={close} aria-label="关闭"><X size={14} /></button></div>