Files
xiaobaifupan/app/docs/migration/evidence/slice-10
..

切片 10:前端 Shell、页面、样式与移动端职责归位

基线:38de3de(切片 09 回档标签:xiaobai-preservation-slice-10-20260731 结论:源码、静态资产、API、数据库、桌面/移动页面及动画差分通过;最终视觉仍等待全站人工验收

1. 原实现归位

本切片只移动和拆分原版前端源码,没有从next/取用代码,也没有重写页面、样式、动画、交互或响应式规则。

原位置 新位置 处理方式
static/index.html app/frontend/index.html 原 DOM 骨架,仅调整静态资源路径和拆分脚本加载顺序
static/app.js app/frontend/app.jspages/*/page.jspages/market/runtime.jsshared/export.js 按连续源码行机械拆分
static/styles.css等公共样式 app/frontend/styles/ 字节级移动
static/wentian-v2.css app/frontend/pages/heaven/page.css 字节级移动
static/ui-core.js app/frontend/shared/ui-core.js 字节级移动
static/heaven-loading-v2.js app/frontend/pages/heaven/loading-v2.js 字节级移动
static/pages/shared/vendor/ app/frontend/同职责目录 字节级移动

app/backend/bootstrap/config.py现在只把静态根目录从app/static/切换到app/frontend/。原app/static/已不再存在,避免形成两套可被误改的前端实现。

2. 源码与静态资产等价

  • static/app.js共 9,283 行,SHA-256 为c020d0bc68f8a96b352a0ffa62c913a0ea3f5ca0afc41f70969f833e447166a6
  • 所有拆分文件中的保真源码片段按原行号重组后,SHA-256仍为同一值,9,283行无遗漏、无重排、无内容变化。
  • 七层原版样式、问天样式、加载动画、共享脚本、页面注册脚本及Lucide供应商文件在移动后保持字节一致。
  • index.html的差异仅限资源新路径和两个机械拆分脚本入口;反向替换后与原版逐字符一致。
  • 浏览器请求仍只有shared/api.js一个fetch出口。
  • 完整行号映射见frontend-source-map.json。该映射继续作为切片10的历史证据;一次性拆分工具在人工验收和当前所有者契约建立后已退役,不再进入维护工具链。

3. API 与数据库差分

  • 同一管理员账号和同一固定日期下,对原版与迁移版执行21个全站只读请求。
  • 请求覆盖账号、行情、情绪、轮动、竞价、题材、人气、龙虎榜、选股、问师、问天、复盘与提醒;状态码和规范化业务JSON全部一致。
  • 两个数据库副本均包含62个schema对象,schema哈希一致。
  • 21张关键表的记录数、顺序和规范化内容逐行一致;screener_strategies仅排除每次初始化可能更新的updated_at
  • 完整结果见api-requests.jsonapi-diff.jsondatabase-diff.json,两份差分文件的all_equal均为true

4. 真实浏览器差分

  • 1920×1080日间模式检查情绪周期、智能选股、观势、观气、观心介绍及观心呼吸。
  • 1920×1080夜间模式检查情绪周期的背景、字体、表格、几何和横向溢出。
  • 390×844检查情绪周期与观势:移动Shell、底部五入口、页面纵向滚动、无横向溢出及问天特效均一致。
  • 观势星空节点90个、观气100个、观心110个;三页八卦节点均为2个。
  • 观势与观气保留wt-twwt-spin动画;观心呼吸保留heart-incense-burnheart-incense-glow及动态波纹。
  • 观气五行行业为5组且默认折叠;观心介绍到呼吸流程可正常进入。
  • 原版和迁移版检查流程均未产生新增控制台error或warn。
  • 动画帧、焦点框和动态状态文字属于采样瞬时状态,因此截图文件哈希不要求相同;可见布局几何、计算样式、节点、动画名称和交互结果必须一致,本次均通过。
  • 两个服务使用相同主机名、不同端口时会共享并覆盖登录Cookie;曾导致迁移版切页被误判为失效。逐服务重新登录后行为一致,该问题属于并行验收环境限制,不是产品回归。
  • 2026-08-01像素复核发现frontend-migrated-auction-light-1920x1080实际截取了登录状态失效页, 不能证明集合竞价视觉等价,文件已重命名为INVALID-login-session。集合竞价仍有切片05真实页面、 本切片源码/样式保真、API及Playwright证据,但最终视觉明确留待人工验收,不以替代证据冒充 本切片截图差分。
  • 机器可读记录见browser-acceptance.json,截图均保存在本目录。

5. 自动验证与保留边界

验证 结果
前端专项测试 85项通过
原版python -m unittest discover -s tests -q 231项通过
迁移版python -m unittest discover -s tests -q 294项通过
npx.cmd playwright test --reporter=dot 45项通过(2.3分钟)
全部拆分后JavaScript执行node --check 通过
git diff --check 通过
  • demo_data.pyfrontend/heaven-loading.js、五个疑似无引用前端函数和wencai_saved_queries继续保留到切片11逐项审计。
  • 没有修改next/、正式数据库、Docker/NAS或8765服务。
  • 自动差分只能证明已检查范围一致;依据迁移总纲,未经用户最终人工确认不得宣称全站视觉已经完全等价。