Repository navigation
优化tab切换速度、模块折叠交互及仪表盘多选逻辑,微调了一下样式以及进入详细设置的点击范围 - #17
Conversation
多选逻辑增强: 卡片视图下也增加了 Checkbox(原本只有 Radio),使得 selectedAccounts 可在两种视图下使用。 “清理全部”按钮不再依赖 isTableView,改为只要有选中账号就清理选中的,否则清理全部。 UI 细节: 表格视图的列宽、内边距微调。 账号名称输入框增加了自动聚焦和光标定位逻辑(useEffect + ref)。 样式优化(边框、背景、悬停效果)。 默认账号选择: 卡片视图下仍使用 RadioGroup + Radio,与 Checkbox 互不干扰。 合并影响: 新增的 Checkbox 和 Radio 共存在卡片视图中,功能分离明确(Checkbox 用于批量操作,Radio 用于默认账号)。 清理逻辑更统一,需确保 handleCleanDailyAll 正确遍历选中的账号。 输入框聚焦优化不会影响原有交互。
新增功能: 导入 clearAreaConfigCache 并在 handleImportSuccess 中调用,用于导入配置后清空区服缓存。 增加 useEffect 在组件卸载时清空当前账号的缓存。 其他:ConfigImportExport 的 onImportSuccess 改为 handleImportSuccess(旧为 refreshAccountData)。 合并影响: 需要 Area 组件导出 clearAreaConfigCache(新 Area 已实现)。 缓存机制不会破坏旧逻辑,只会在导入或离开时清理,提升性能。
UI 折叠方式改变:
旧版使用条件渲染 {isExpanded && <Card.Body>...},新版改用 Chakra UI 的 <Collapsible.Root> 和 <Collapsible.Content>,实现平滑动画。
保存策略优化:
引入 enqueueConfigSave(来自 ./Config)替代直接 putAccountConfig,实现防抖/队列保存。
细节样式:
调整了 gap、padding 等间距。
在折叠切换前主动失焦输入框,避免草稿丢失。
合并影响:
需确保 ./Config 导出 enqueueConfigSave(新 Config 应包含,若缺失需同步更新)。
Collapsible 组件需在项目中可用(Chakra UI v3 内置)。
行为变化(防抖)不会破坏现有功能,但需测试保存逻辑是否正常。
新增缓存机制: 引入 areaConfigCache Map,提供 getCachedAreaConfig、setCachedAreaConfig,以及导出的 clearAreaConfigCache。 useEffect 优先读取缓存,缓存未命中才请求 API。 handleConfigUpdate 同步更新缓存。 合并影响: 旧代码每次挂载都会请求,新代码会减少冗余请求,完全向后兼容。 导出的 clearAreaConfigCache 供 $account.tsx 使用,需同时更新该文件。
|
嗯……想请问一下这个是有什么不行吗……? |
|
模块配置修改后,折叠后再次展开,配置项会恢复成原来的样子? |
|
修复多项问题:区服 Tab 多开卡顿、折叠后设置回退、一览改名/IME、创建空名、卡片热区、执行 loading、同步含自身、表头勾选对齐等。 配置保存统一回写父级缓存;错误文案安全解析。 用户可感知修复 更改文件:项与函数 |
|
啊请问下是修复后有什么问题吗=、= |
|
后端加一个@singlechoice就好了。模块特定功能不太适合硬编码在前端,前端只负责如何展示,不应该混入某模块的特定逻辑。
感觉得对这一栏重新设计下,不然,第一个是清日常所有,第二个是批量运行,第三个是自定义功能,中间不顶号,左右会顶号,让人小心翼翼的 我觉得可以交换一下 清日常所有 和 批量运行 的位置,批量运行 改名成 批量配置,然后 清日常所有 换成 和你这个逻辑一样的,先勾选,再清日常这样,和自定义功能一样的操作逻辑 |
我的意思是在这里这样增加4个框,然后自己想要左边成怎样,就直接点。这样可以批量改类型,有一个想要任意也比切换其他来得快 其实我也没明白清理全部跟批量运行到底区别在哪 如果批量配置应该是右侧的功能,那可以放右边。 另外麻烦看看代码能不能合并?能的话我就根据这个基础先设计一下 |
|
周末我测测 |
可以的
看着不错,只是感觉头重了(不过我也没想好怎么改 |






变更概述
本次 PR 对
account详情页、Area区服组件、Module模块卡片以及仪表盘(DashBoard)进行了系统性重构,主要包含:Area新增areaConfigCache),减少重复 API 请求,提升切换 Tab 和返回详情页的响应速度,现在应该可以做到在tab之间反复切换也不会卡顿了。Module改用 Chakra UICollapsible组件,并增加输入框失焦保护)。Checkbox选择,清理逻辑统一为“选中优先”)。主要文件改动
$account.tsxclearAreaConfigCache,在handleImportSuccess中调用,确保导入后区服配置缓存失效,下次加载拉取最新数据。useEffect返回清理函数,组件卸载时清除当前账号的缓存,释放内存。ConfigImportExport的onImportSuccess回调替换为handleImportSuccess(内部调用refreshAccountData并清理缓存)。Area.tsxareaConfigCache及相关工具函数(getCachedAreaConfig、setCachedAreaConfig、clearAreaConfigCache)。useEffect优先从缓存读取数据,命中则直接使用并跳过网络请求;未命中再调用 API,并将结果存入缓存。handleConfigUpdate更新 state 的同时同步写回缓存,保证缓存与 UI 一致。clearAreaConfigCache供外部调用。Module.tsx<Collapsible.Root>+<Collapsible.Content>替换原本的条件渲染{isExpanded && ...},实现平滑展开/收起动画。document.activeElement.blur()),防止未保存的草稿丢失。enqueueConfigSave(来自Config组件),实现防抖和队列化,减少频繁请求。gap、padding)和样式细节。DashBoard.tsxCheckbox用于多选,同时保留原有的Radio用于选择默认账号(二者功能独立)。useEffect+setSelectionRange)。handleDefaultAccount,并更新userInfo状态以保持一致性。兼容性与依赖
Config组件导出enqueueConfigSave函数(已同步更新)。测试建议
.autopcrcfg文件,检查区服缓存是否被清除(下次加载会重新请求)。回归影响范围
/daily/_sidebar/account/$account)/daily/_sidebar/account)已知风险
Config组件未同步更新enqueueConfigSave,会导致保存报错(需确保 PR 一并合入)。alias和key组合作为键,若alias变化(如账号重命名)可能导致旧缓存残留,但无负面影响(自动清理)。