Commit Graph
9 Commits
Author SHA1 Message Date
hjhan 52c11e7540 fix(diag): 简化 otcDebug 调试开关命名并支持 localStorage 持久化
- __otcDiag 双源对象拆为 __diag(版本元数据, 仅供 banner 展示) + __debug(调试开关布尔值, 唯一真相来源), 消除 __私有对象 与 otcDebug.API 大小写混搭。
- __debug 解析顺序: URL ?otcdebug=1(命中即写回 localStorage) -> localStorage -> 兜底 __diag.debug。同源父子 frame 共享 localStorage, 使 _InfoLayout iframe 弹窗(新增互换交易)自动继承父页面开过的调试开关, 修复弹窗内无调试日志。
2026-07-30 14:42:10 +08:00
hjhan c519dcf44f fix: otcDebug 开关在 _InfoLayout(TradeEdit)页面也能从URL读取
根因(用户反馈:开了 ?otcdebug=1 但输入/计算无任何 console 输出):
1. 用户实际在 /swapTrade2/TradeList 页面——该页不加载 swapTradeEdit.js(埋点所在),
   只加载 swapTradeList.js(零债券代码),故三字段 trace 永远不会执行。
2. 即使跳到 TradeEdit 页面,_InfoLayout.cshtml(TradeEdit 用的 layout)
   未灌入 window.ylotc.__diag,导致 main.js 中:
     var __otcDiag = (window.ylotc && window.ylotc.__diag) || { debug: false };
   → debug 永远 false → 所有 otcDebug.log 全部空转。

修复:main.js 的 __otcDiag 初始化改为双源读取——
  优先用 _MainLayout 灌入的 ylotc.__diag(含 jsVersion/git/built 元数据);
  若 layout 未灌入(_InfoLayout 等),则从 ?otcdebug=1 / localStorage.otcdebug 直接读,
  确保 debug 开关在所有页面生效。

测试:diag 18 + bondCalc 81 = 99 例全过。
注意:此改动在 main.js 中,需重建 bundle.js 才能生效(dotnet publish 自动触发)。
2026-07-30 10:30:31 +08:00
hjhan c97d7e7995 feat(diag): 可保留调试日志+版本可追溯机制(阶段0.5止血增强)
解决 EQD-6838 排查时硬编码版本号 v20260729a 散落3处、无法按需开关、
看不到实际加载缓存戳的问题。

层1 运行时开关(核心):
- HtmlUtil.cs 新增 GitCommit(读 AssemblyInformationalVersion,零新依赖)
- _MainLayout.cshtml 注入 window.ylotc.__diag(jsVersion+git+built)
- main.js 顶部新增 otcDebug 工具(banner+log),debug 默认 false 生产零输出
- swapTradeEdit.js / fastVue.base.js 硬编码标记改为 otcDebug.banner
- 开启方式:URL ?otcdebug=1(会话)或 localStorage.setItem('otcdebug','1')(持久)

层2 构建守卫:
- pre-commit 新增第三块 bundle 版本一致性检查(rebuild-bundles.py --verify)
- 修复 Windows python3 Store stub 不可用问题(优先用 python)
- 注:bundle 头部不注入 git sha(会随 commit 变化导致 verify 永久失败),
  版本可追溯完全由运行时 __diag(后端注入)覆盖

层3 单测预防:
- 新增 diag.test.js(213测试之一),用 console spy 守卫开关行为
- 断言不再含硬编码 v20260729a + 防止第二套调试开关回归

验证:11 suites/213 tests 全绿,--verify 通过,C# 编译0错误
2026-07-30 10:06:21 +08:00
hjhan 6b32f254b1 test(fe): 阶段0止血——pre-commit守卫+postSafe+jest.config+CI脚本+otcformat精度修复 2026-07-29 22:33:45 +08:00
hjhan 56256cad0b [EQD-6838] 补充踩坑注释:main.post 业务错误走 reject、本文件独立 script 部署、bundle 大小写敏感+非致命
- base/main.js __post/main.post:标注业务错误(success=false/errcode)与网络异常均走 deferred.reject,
  调用方只挂 .done 会静默跳过失败分支(约定2补充曾因此长期不生效)。
- app/swaptrade/swapTradeEdit.js calcBondForItem:标注本文件为独立 <script>(不在 bundle.js)、须 dotnet publish
  刷新 JsVersion 缓存键才生效;并展开 .fail 注释记录约定2补充一度不生效的历史根因。
- rebuild-bundles.py:标注 bundleconfig 输入路径在 Linux 大小写敏感(曾 MISSING 打挂 publish)、
  缺失输入必须非致命(否则 exit 1 连带打挂 dotnet publish)。纯注释,无逻辑改动。
2026-07-29 19:51:42 +08:00
hjhan 14ed09d628 build: 接入 BuildBundlerMinifier 自动重建 bundle 产物并剥离源文件 BOM
- 根因:页面(_MainLayout 等)加载的是 bundle.js 等由 bundleconfig.json 打包的生成产物,
  但 csproj 未接入 BundlerMinifier,dotnet build 不会重生它们,Jenkins 只是把 git 里
  陈旧的 bundle.js 原样发布 -> 改了 fastVue.base.js 后回车不生效(部署的 bundle 仍是无
  enter 的旧版)。且源文件带 UTF-8 BOM,拼接后每个 BOM 落入文件中间成为 ZWNBSP,提交
  diff 充满不可见字符(历史上曾多次在产物上手工清 BOM 打补丁)。
- 修复:
  1. YLErpWeb.csproj 新增 BuildBundlerMinifier(3.2.449);其 BundleMinify 目标在
     BeforeCompile 自动按 bundleconfig.json 重建全部 bundle,Jenkins 构建即自动产出正确版本,
     不再需要手工重建并提交 bundle.js。
  2. .gitignore 忽略 8 个生成产物(jquery.js/bundle.js/vue.js/bundle.css/bundleV2.css/
     bundleV2.js/bundle.min.css/bundleV2.min.css) 并 git rm --cached 取消跟踪;这些产物
     永不再入版本库、永不陈旧。
  3. 剥离 15 个喂给 bundle 的源文件(及 css)开头的 UTF-8 BOM,使重建产物不再含 ZWNBSP。
- 验证:本地 dotnet build -t:BundleMinify 重建后 8 个 bundle 全部 BOM=0,bundle.js 含完整
  enter 链路(_enterFired/isEnter/$emit('enter'));删除 bundle.min.css 后构建可自动重建。
2026-07-29 15:42:35 +08:00
hjhan 39fe5a69e6 fix(auth): 解决AJAX请求401未授权处理问题
- 将全局AJAX 401处理逻辑从main.js移至_MainLayout.cshtml
- 移除main.js中的重复401状态检查代码
- 在Cookie认证配置中添加自定义重定向事件处理
- 优化中间件中AJAX请求检测逻辑,支持多种请求类型判断
- 更新依赖注入和服务注册中的命名空间引用
- 添加日志管理器相关引用和配置优化
2026-04-27 11:35:41 +08:00
hjhan 45b4ace23c fix(auth): 解决401未授权响应的统一处理问题
- 在前端全局处理AJAX 401响应,自动跳转登录页面
- 修改前端错误处理逻辑,避免401错误重复弹窗提示
- 在后端中间件中提取统一的请求拒绝处理方法
- 将多个异常情况下的重复代码替换为统一的RejectRequest方法调用
- 优化JWT令牌验证失败时的响应处理流程
2026-04-27 11:00:24 +08:00
吴方海 f9d8a256a6 从山证v2.3.0拷贝 2024-05-09 14:06:26 +08:00