修复单屏发布闪烁+编辑界面增强+新增页面默认值优化
- 修复单屏发布/轮播切页屏幕闪烁与任务栏闪现(所有窗体创建即预设全屏,切换仅 show/hide/focus,先隐旧再显新) - 轮播取消循环:越界保持当前页并在左上角提示,自动轮播到边界即停 - 编辑窗体:预览区地址栏新增复制按钮、页面属性 URL 输入框加高两行 - 配置窗体:工程路径新增复制按钮、去掉工具按钮组与桌面快捷方式入口 - 新增/插入页面默认值:URL/参数/描述留空,所属屏幕与控制器编号取当前最大值+1
This commit is contained in:
@@ -237,3 +237,9 @@
|
||||
- **发布组 4 按钮图标统一**:预览本页/单屏发布/多屏发布/交互发布 由 emoji 换成**统一样式线性 SVG**(显示器族:24 viewBox、stroke currentColor 1.8、15px、在 `.rb-icon` flex 容器内自动居中着色):预览=显示器+播放三角、单屏=显示器+轮播旋转箭头、多屏=前后双显示器、交互=显示器+双向箭头。`Ribbon.tsx` 顶部定义 `svgIconProps` + 4 个图标组件,`RibbonItem.icon` 类型改为 `string | React.JSX.Element`(emoji 字符串兼容)。CDP 实测发布组 `svgs=4`。
|
||||
- **属性面板**:URL 输入框 `rows 2→3`;页面参数 textarea `rows=4`(默认 2 加 2 行)并**删除 placeholder 水印**(URL 的 placeholder 保留)。`.prop-item textarea` 仅 `min-height:46px`+`resize:vertical`,无固定高度,rows 生效。
|
||||
- **CDP 验证 build 产物**注意:`npm run build` 后必须用 `node_modules\electron\dist\electron.exe . --remote-debugging-port=9223`(`electron.cmd` 不在 PATH 会报 file not found),页面 URL 是 `file://...out/renderer/index.html`,脚本匹配 page 类型须排除 chrome:// 与 devtools。验证完已杀实例重启 dev 至 5173。
|
||||
- **已提交并推送**:commit `aa8f070`「v0.2.0: 交互发布+多屏发布增强+页面管理优化」(22 files, +657/-134),`git push` 成功 `8d96f51..aa8f070 main -> main`(github.bbitcn.net/fanhongcai/DataViewCenter.git)。提交信息用 `git commit -F`(UTF-8 文件,规避 GBK 乱码)。推送时出现 `credential-manager-core is not a git command` 警告为无害提示(GCM 凭据已缓存)。
|
||||
- **UI 调整 4 项(未提交)**:① 编辑窗体预览区地址栏 `.ct-url` 右侧新增复制地址按钮(`IconCopy` + `navigator.clipboard` + toast,Canvas.tsx);② 页面属性「大屏页面 URL」textarea rows 3→5(PropertyPanel.tsx);③ 配置窗体「当前工程」工程路径行新增「复制」按钮(`.cfg-path` flex 布局,ProjectInfo.tsx);④ Ribbon 配置视图删除「工具」组(含桌面快捷方式按钮),renderer 不再引用 `window.api.createShortcut`(preload/IPC 保留未删,ShortcutPanel 配置菜单页仍可用)。
|
||||
- **修复单屏发布切页闪烁/任务栏闪现(screens.ts,未提交)**:第一版(预设全屏+先 hide 后 show+防御性 setFullScreen)用户实测无效。**第二版彻底方案(已实施)**:Windows 上 hide 全屏窗体本身就会导致任务栏重排闪现,故轮播全部窗体就绪后**保持显示叠放、永不 hide**;切换只 `moveTop()+focus()` 把目标窗体置顶(同尺寸全屏窗体完全叠放),最顶层始终有全屏窗体覆盖任务栏。ready-to-show 任一窗体就绪即 show,并把 `wins[0]` 置顶。400ms/120ms 兜底 focus 同步改为 moveTop 语义。经验:**Windows Electron 多全屏窗体切换禁用 hide/show,用 moveTop 置顶切换**。
|
||||
- **主程序关闭确认+子页面联动退出(ipc.ts,未提交)**:installCloseGuard 改为统一弹「确认退出」对话框(合并未保存警告),确认后先 `closeAllScreens()` 再 `win.close()` → `window-all-closed` → `app.quit()`(before-quit 里 closeAllScreens 幂等无副作用)。此前仅 dirty 时弹「工程尚未保存」,且主窗关后子窗口仍存活 app 不退出。
|
||||
- **轮播取消循环+边界左上角提示(screens.ts,未提交)**:switchCarousel 去掉 `%n` 取模回绕,越界(next<0 或 next>=n)时保持当前页,并新增 `hintAt(win,text)` 在页面左上角注入 DOM overlay(position:fixed 深色圆角小条,2 秒自动移除,`executeJavaScript` 注入,不受页面 CSP 限制)提示「当前已经是第一屏/最后一屏」;自动轮播播到边界后 clearInterval 并置 `state.auto=false`(避免反复提示)。**单屏轮播与交互发布主屏共用 switchCarousel,因此两者同时生效**。
|
||||
- **新增/插入页面默认值调整(store.ts,未提交)**:新增 `blankPage()` 辅助函数:url=''、params=''、desc='' 全留空;screen/ctrl 取现有页面**最大值 +1**(需求更正:先是"取最大值",用户又改为"最大值+1")。addPage 与 insertBefore 共用,同时修正标题拼接 bug `'新页面 ' + pages.length + 1`(字符串拼接得到"新页面 41")→ `(pages.length + 1)`。空 url 经 `pageSrc`/`resolvePageUrl` 安全返回 about:blank。renderer 改动 HMR 生效。
|
||||
|
||||
Reference in New Issue
Block a user