From 9ed446f95a894bb3acc934c2362e4dbd1edb4969 Mon Sep 17 00:00:00 2001 From: yuetsh <517252939@qq.com> Date: Wed, 28 Oct 2026 15:15:46 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=9E=E9=AA=8C=E9=A1=B5=EF=BC=9A=E7=A8=8B?= =?UTF-8?q?=E5=BA=8F=E8=BF=90=E8=A1=8C=E6=97=B6=E6=94=B9=E4=BA=86=E4=BB=A3?= =?UTF-8?q?=E7=A0=81=E6=88=96=E8=AE=BE=E8=AE=A1=E5=99=A8=EF=BC=8C=E5=81=9C?= =?UTF-8?q?=E6=89=8B=201.5=20=E7=A7=92=E5=90=8E=E8=87=AA=E5=8A=A8=E9=87=8D?= =?UTF-8?q?=E6=96=B0=E8=BF=90=E8=A1=8C=EF=BC=8C=E4=B8=8D=E7=94=A8=E5=86=8D?= =?UTF-8?q?=E6=8C=89=20F5=E3=80=82=E9=87=8D=E5=90=AF=E5=89=8D=E5=85=88?= =?UTF-8?q?=E7=94=A8=E8=BE=B9=E5=86=99=E8=BE=B9=E6=A3=80=E6=9F=A5=E7=9A=84?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E6=A3=80=E6=9F=A5=E6=95=B4=E4=B8=AA=E5=B7=A5?= =?UTF-8?q?=E7=A8=8B=EF=BC=8C=E6=9C=89=E9=94=99=E8=AF=AF=E5=B0=B1=E4=B8=8D?= =?UTF-8?q?=E9=87=8D=E5=90=AF=EF=BC=8C=E5=8E=9F=E6=9D=A5=E7=9A=84=E7=A8=8B?= =?UTF-8?q?=E5=BA=8F=E6=8E=A5=E7=9D=80=E8=BF=90=E8=A1=8C=EF=BC=8C=E5=B7=A5?= =?UTF-8?q?=E5=85=B7=E6=A0=8F=E6=8F=90=E7=A4=BA"=E4=BB=A3=E7=A0=81?= =?UTF-8?q?=E6=9C=89=E9=94=99=E8=AF=AF=EF=BC=8C=E6=94=B9=E5=A5=BD=E5=90=8E?= =?UTF-8?q?=E8=87=AA=E5=8A=A8=E9=87=8D=E6=96=B0=E8=BF=90=E8=A1=8C"?= =?UTF-8?q?=EF=BC=9B=E6=A3=80=E6=9F=A5=E6=9C=9F=E9=97=B4=E5=8F=88=E6=94=B9?= =?UTF-8?q?=E4=BA=86=E3=80=81=E7=A8=8B=E5=BA=8F=E5=B7=B2=E5=81=9C=E6=88=96?= =?UTF-8?q?=E6=8D=A2=E4=BA=86=E5=B7=A5=E7=A8=8B=E6=97=B6=E4=BD=9C=E5=BA=9F?= =?UTF-8?q?=EF=BC=9B=E5=81=9C=E6=AD=A2=E5=90=8E=E6=94=B9=E5=8A=A8=E4=B8=8D?= =?UTF-8?q?=E4=BC=9A=E8=87=AA=E5=8A=A8=E5=90=AF=E5=8A=A8=E7=A8=8B=E5=BA=8F?= =?UTF-8?q?=E3=80=82=E4=BD=BF=E7=94=A8=E8=AF=B4=E6=98=8E=E3=80=81=E8=AE=BE?= =?UTF-8?q?=E8=AE=A1=E6=96=B9=E6=A1=88=E5=90=8C=E6=AD=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 5.5 --- docs/设计方案.md | 1 + web/src/pages/HelpPage.vue | 1 + web/src/pages/WorkbenchPage.vue | 50 +++++++++++++++++++++++++++++++++ 3 files changed, 52 insertions(+) diff --git a/docs/设计方案.md b/docs/设计方案.md index 8a3653b..9ccebf5 100644 --- a/docs/设计方案.md +++ b/docs/设计方案.md @@ -334,6 +334,7 @@ flowchart TB - 2026-10-26:**窗体改名**。23 个示例里 11 个的主窗体不叫 Form1(Login、frm_analog、frm_LED、frm_control、Main),学生的空白工程却只有 Form1,以前属性窗口改不了窗体名(项目 8 任务 2 的评分还要找 Main 窗体)。现在选中窗体可以改"名称":和 VS 一样,类名、构造函数、各文件里的 `new X()` 和 X 类型的变量都改(跳过字符串和注释),Designer.cs 里窗体的块头注释和 `this.Name` 也改,两个文件跟着改名;事件处理方法名(如 Form1_Load)和窗体标题不变。改名不进设计器的撤销历史。任务说明里提示先改名再双击窗体生成 Load 事件。 - 2026-10-26:代码用 **bun fmt** 格式化,格式写在 `bunfig.toml`(不写分号、单引号、一行最长 160,和原来的写法一致);`docs/教材摘要/` 是书上的摘录,不格式化。 - 2026-10-28:**兼容机房的 Chrome 94**。用 Chromium 94 实测,打开 http 地址时实验页报 `crypto.randomUUID is not a function`(这个函数只在 https 和 localhost 下有);还时好时坏地一片空白:Chrome 94 在 Promise 回调里调用 `import()`(Vite 的预加载就是这样)时,有时把 `import("./X.js")` 相对于网页地址解析,请求 `/X.js` 拿到首页 HTML。改法:打包目标改成 Chrome / Edge 94;`web/src/polyfills.ts` 补上 `crypto.randomUUID`、`structuredClone`(只复制普通数据)、`findLast` / `findLastIndex`;`vite.config.ts` 的小插件在 Vite 找完预加载依赖之后把代码块之间的 `import("./X.js")` 改成 `import("/assets/X.js")`,改过的代码块换新文件名(不用缓存里的旧文件);容器查询(Chrome 105)改成 ResizeObserver 量宽度加 class(实训台的三档布局、设计器窄时隐藏提示文字);`:has()`(Chrome 105)改成 class(只读和禁用的文本框灰底、没标题的分组框)。Monaco 自带的几条 `:has()`、`color-mix()` 样式在 Chrome 94 里不生效,只影响 Markdown 悬停提示里的复选框等细节。实测 Chrome 94 经 http 打开登录、实验页(设计器改属性、代码补全、运行程序)、数据库、班级管理、使用说明,各页面直接打开 5 遍都正常。 +- 2026-10-28:**运行中改了自动重新运行**。以前改了代码或设计器,运行区的窗体不变,要按 F5 才看得到。现在程序运行时(`WorkbenchPage.vue`)每次修改后等 1.5 秒没有新的改动,先用语言服务检查整个工程(和边写边检查同一个接口,不生成程序集):没有错误就重新编译运行;有错误就不重启,原来的程序接着运行,工具栏提示"代码有错误,改好后自动重新运行"。检查期间又改了、程序已经停了或换了工程,这次作废。只在运行中触发,停止后改动不会自动启动程序。 ## 技术风险与待确认事项 diff --git a/web/src/pages/HelpPage.vue b/web/src/pages/HelpPage.vue index 615f89d..cef4237 100644 --- a/web/src/pages/HelpPage.vue +++ b/web/src/pages/HelpPage.vue @@ -91,6 +91,7 @@ onBeforeUnmount(() => window.removeEventListener('keydown', onKey))

4. 写代码、运行