优化: 前端审批队列核验销账+清理无引用CSS变量

This commit is contained in:
lxy
2026-08-15 18:46:13 +08:00
parent 5ac815b9ca
commit 871416637a
6 changed files with 13 additions and 14 deletions
+4 -3
View File
@@ -139,7 +139,8 @@ export function useStreamRenderer(opts: UseStreamRendererOptions) {
}
/// 流式渲染:增量切块 + 块级 memo(前块缓存/末块重 parse)
/// 返回 { html, key } 数组:key 用 block 文本 hash(已完成块稳定/末块递增),
/// 返回 { html, key } 数组:已完成块 key 用 block 文本 hash(DOM 稳定),
/// 末块 key 恒为 'tail-1'(内容更新靠 v-html 响应式重设,不依赖 key 变化),
/// 模板 v-for + v-html 分块渲染,已完成块 DOM 不重建 → 选文字保持。
///
/// AC-EFF-S1-1 增量:追加场景复用上一帧已完成块,只对「旧末块+增长段」增量 lexer,
@@ -179,7 +180,7 @@ export function useStreamRenderer(opts: UseStreamRendererOptions) {
_prevStreamText = text
const n = blocks.length
let tailSeq = 0 // 末块递增序号,确保末块 key 每次不同触发更新
let tailSeq = 0 // 末块 key 序号:每帧函数内重置且仅一个末块,key 恒为 'tail-1'
return blocks.map((b, i) => {
const isTail = i === n - 1
// AR-1 代码块降级:末块若是未闭合的代码围栏(```/~~~ 数为奇数,说明代码块还没结束),
@@ -193,7 +194,7 @@ export function useStreamRenderer(opts: UseStreamRendererOptions) {
const html = (degrade || longSingleBlock)
? escapeFallback(b)
: isTail ? parseBlockNoCache(b) : parseBlock(b)
// 已完成块用文本做 key(DOM 稳定不重建);末块用递增序号(每帧更新)
// 已完成块用文本做 key(DOM 稳定不重建);末块 key 恒为 'tail-1'(v-html 每帧重设内容)
const key = isTail ? `tail-${++tailSeq}` : `b-${simpleHash(b)}`
return { html, key }
})