Skip to content

feat: 管理面板bug修复和新功能#316

Merged
lioensky merged 11 commits into
lioensky:mainfrom
Asaiuta:main
May 10, 2026
Merged

feat: 管理面板bug修复和新功能#316
lioensky merged 11 commits into
lioensky:mainfrom
Asaiuta:main

Conversation

@Asaiuta
Copy link
Copy Markdown
Contributor

@Asaiuta Asaiuta commented May 10, 2026

(部分修改可能导致其他bug,可能有一部分不相关的修改被提交,如果合并建议开分支测试)

一、新增功能

  1. 插件商店系统 (Plugin Store)
  • 新增 routes/admin/pluginStore.js (1286行) — 完整的插件市场后端
  • 新增 AdminPanel-Vue/src/views/PluginStore.vue (2161行) — 前端界面
  • 新增 AdminPanel-Vue/src/api/pluginStore.ts — API 层
  • 功能:管理自定义源(官方 Registry / GitHub 仓库)、一键安装插件、支持 zip/tar/tgz 上传、自动检测并运行 npm
    install、SSE 实时日志流
  • 新增依赖:extract-zip、multer、tar
  1. 表情包画廊 (Emoji Gallery)
  • 新增 AdminPanel-Vue/src/views/EmojiGallery.vue (2585行) — 完整的表情包浏览管理界面
  • 大幅重写 routes/admin/emojis.js (+700行) — 后端支持图片上传、压缩包导入、缩略图生成缓存、分页扫描
  • 新增 AdminPanel-Vue/src/api/emojis.ts (379行) — API 层
  • 新增 AdminPanel-Vue/src/features/emoji-gallery/ — 路由状态管理、上传选择逻辑
  • 功能:浏览 image 目录、搜索/目录筛选、批量上传(单文件+压缩包)、缩略图缓存、分页、大图预览
  1. 主题编辑器 (Theme Editor)
  • 新增 AdminPanel-Vue/src/views/ThemeEditor.vue (2367行) — 完整的主题定制界面
  • 新增 AdminPanel-Vue/src/features/theme-editor/themeEngine.ts (636行) — 主题引擎
  • 功能:预设主题选择、逐项 CSS 变量调整、自定义背景图片、自定义 CSS 覆盖、主题导入/导出

二、增强

  1. BaseConfig 全局配置页面重构
  • AdminPanel-Vue/src/views/BaseConfig.vue 从 ~235 行扩展到 ~900 行
  • 新增 AdminPanel-Vue/src/utils/configDocumentationParser.ts (290行) — 从 config.env.example
    注释中解析分组/小节/键级说明
  • 新增 AdminPanel-Vue/src/utils/mainConfigMerge.ts (139行) — 配置合并逻辑
  • 后端 routes/admin/config.js 增加了 config.env 与 config.env.example 的对比逻辑,返回 source/是否自定义等元数据
  • 改进:配置项按分组/小节展示,侧边栏导航,比原来的平铺列表体验好很多
  1. ToolListEditor 工具列表编辑器安全加固
  • routes/admin/toolListEditor.js 新增输入验证:安全文件名正则、路径穿越防护 (resolveInside)、工具描述长度限制
    (2000字)、HTML 注释/Markdown 标题/代码围栏清理、提示注入检测(检测 "ignore previous instructions" 等危险短语并替换为
    [已移除潜在注入语句])
  • 前端 ToolListEditor.vue 及子组件大幅扩展 (+700行)
  1. ToolboxManager 工具箱管理器
  • AdminPanel-Vue/src/views/ToolboxManager.vue 大幅扩展 (+1360行)
  • 后端新增 DELETE /toolbox/file/:encodedPath 接口 — 支持删除工具箱文件
  • 修复缓存失效逻辑:使用 path.resolve() 而非原始路径作为缓存 key
  1. TvsFilesEditor TVS 文件编辑器
  • AdminPanel-Vue/src/views/TvsFilesEditor.vue 大幅扩展 (+1100行)
  • 后端新增 DELETE /tvsvars/:fileName 接口 — 支持删除 TVS 文件
  1. VcpForum 论坛功能
  • AdminPanel-Vue/src/features/vcp-forum/useVcpForum.ts 重写 (+260行变更)
  • AdminPanel-Vue/src/views/VcpForum.vue 及子组件更新
  1. VcptavernEditor 酒馆编辑器
  • AdminPanel-Vue/src/features/vcptavern-editor/useVcptavernEditor.ts 重写 (+261行变更)

三、UI 基础设施新增

  1. 通用 UI 组件库扩展
  • AppCheckbox.vue — 统一复选框组件
  • AppSwitch.vue — 统一开关组件
  • BaseModal.vue (237行) — 通用模态框(支持 Teleport、焦点陷阱、ESC 关闭、滚动锁定)
  • ConfirmDialog.vue (152行) — 确认对话框
  • InputDialog.vue (223行) — 输入对话框
  • DragHandle.vue — 拖拽手柄组件
  1. 反馈系统升级
  • feedbackState.ts 新增 ConfirmDialog 和 InputDialog 状态管理
  • feedbackBus.ts 新增对应事件类型
  • 支持 await confirm() / await input() 的 Promise 化调用
  1. 新增 Composables
  • useActiveGroupTracker.ts — 滚动时追踪当前活跃分组
  • useConsoleCollapse.ts — 控制台折叠逻辑
  • useToolListData.ts / useToolListPreview.ts — 工具列表数据与预览

四、Bug 修复与安全改进

  1. adminServer.js 代理修复
  • 修复 multipart/form-data 请求透传:不再删除 content-length,改为 req.pipe(proxyReq) 流式转发
  • 支持 application/x-www-form-urlencoded 和 text/plain 内容类型
  • 修复:之前上传文件会因为 body 被 JSON.stringify 而损坏

@lioensky
Copy link
Copy Markdown
Owner

测了一会儿没啥问题。

@lioensky lioensky merged commit c39d266 into lioensky:main May 10, 2026
1 check failed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants