skycurtain
|
93bbea2489
|
feat(view): 行号点击选中与拖拽多选(model 层选区)+ 实现技术博客
选区状态存 model 层(anchor/active 两个行号)而非 DOM Selection——虚拟滚动跨窗口边界时 DOM 被卸载,原生选区必丢;单行点击是 anchor===active 的退化特例。高亮走 .line-selected class(model 驱动,重渲染不丢),DOM Selection 仅作 Ctrl+C 同步目标(窗口内边缘行 setStartBefore/setEndAfter);拖到容器边缘 rAF 自动滚动,速度每帧按指针位置重算(闭包旧值会导致速率漂移),出界外推贴边保持滚动。新增 2 用例(点击选中含 DOM Selection 文本断言、拖拽范围高亮)。附实现技术博客 docs/JSON预览器实现技术博客.md。
|
2026-09-08 15:20:40 +08:00 |
|
skycurtain
|
e3b1003f4d
|
fix(view): 拖拽滚动条白屏——节流补 trailing,滚动窗口持续跟随
useThrottleFn 第三参 trailing 默认 false,拖拽滚动条的连续 scroll 事件(间隔恒 ≤33ms)在节流窗口内被全部丢弃不补执行,scrollTopPx 停在起拖位置导致白屏;开启 trailing 后窗口每 33ms 补执行一次跟随滚动。新增拖拽场景测试(连续 scroll + fake timers 断言窗口跟随最终位置),曾用 stash 对照验证旧行为下测试失败。
|
2026-09-08 13:26:28 +08:00 |
|
skycurtain
|
c690e0507e
|
refactor: 组件顶部注释迁入 script setup 块内 + 全量 prettier 格式化
SFC 顶层(块标签外)不是 prettier 认识的注释位置,块注释会被重排拍平;迁入 <script setup> 顶部后 prettier 正确保留 JSDoc 格式。迁移 6 个 .vue 文件;顺带 prettier 格式化 4 个存量未格式化文件(gateway-client.ts、endpoint-queries.spec.ts、json-text-processor.spec.ts、bench-store.spec.ts)。
|
2026-09-08 11:06:47 +08:00 |
|
skycurtain
|
d4fe766373
|
feat(layout): tabs 纯导航 + 面板外置,响应区固定分区滚动
参照 t-design-starter 与 Naive UI display-directive=show 语义:t-tabs 只当导航条(list 不传 panel),EndpointPanel 渲染在外置自有容器,v-show 常驻切换(面板不销毁,sk-key/滚动位置/局部状态全保留);删除两条 :deep 穿透,仅留一条收敛规则隐藏空 panel 壳;响应区 overflow:hidden + min-height 220px 固定分区,滚动收敛到 JsonTextView 自身;新增 request-tabs 4 用例锁死显隐/不销毁语义。
|
2026-09-08 10:48:22 +08:00 |
|
skycurtain
|
c021294322
|
feat: 虚拟滚动 JSON 响应区 + README
json-text-view:DOM 恒定(可视窗口 ± overscan)、懒高亮(仅窗口内行 segments 切词)、spacer 撑高 + translateY 偏移;组件测试 stub useElementSize 固定视口断言行内容实际渲染。响应区完整化:元信息行/复制(useClipboard legacy 降级)/下载;README 定稿(运行需配 GATEWAY)。
|
2026-09-08 00:49:43 +08:00 |
|
skycurtain
|
60ba5b6306
|
feat(ui): UI 骨架与请求集成(sider、tabs、接口面板 sk-key 走 store、手动查询)
t-tabs 用官方 list prop 数据驱动(受控 value + 动态增删语义干净);请求纯手动触发,enabled 门控 + refetch,staleTime Infinity 切 tab 不重发,queryKey ['endpoint', path, skKey] 换 key 即新查询;endpoint-panel 的 sk-key computed 读写 store,切 tab 输入保留。
|
2026-09-08 00:49:37 +08:00 |
|
skycurtain
|
3f95335651
|
feat(store): bench-store(tabs 开关激活/拖拽重排 + 每 tab sk-key)
sk-key 按接口路径存取,仅内存态、刷新即重置;closeTab 清除对应 key,重开为干净面板。面板组件随 tab 切换卸载重建,输入由 store 保留。
|
2026-09-08 00:49:31 +08:00 |
|
skycurtain
|
78f2e7136e
|
feat(data): 接口静态数据、网关 fetch wrapper、虚拟滚动文本加工(纯 TS + 单测)
json-text-processor 直接以 segments 方案实现完整行重建:token 与 plain 交替,join 等于原文,括号/缩进/逗号逐字不丢;高亮输出结构化 span 无 v-html;窗口计算含 scrollTop 超界钳制。
|
2026-09-08 00:49:26 +08:00 |
|
skycurtain
|
c3d6f379f9
|
chore: 工程底座(Vite + Vue 3 + TS + TDesign + vue-query + Pinia + VueUse + Vitest)
vite dev server 代理 /api、/v1 到 GATEWAY(仅从环境变量读取,.env.example 提供示例,代码不写死默认值,dev 未配置时报错);oxlint + eslint + prettier;vitest 含 jsdom 组件测试环境。
|
2026-09-08 00:49:19 +08:00 |
|
skycurtain
|
b2e0aa4a6c
|
docs: 接口调研与设计文档
NewAPI sk-key 接口实证调研(计费参数/接口清单/坑记录)、交互设计定稿、实施计划。数据层与应用层后续按阶段提交。
|
2026-09-08 00:49:12 +08:00 |
|