SuperAPI AI 工具集

spree-dashboard

通用与其它

查看项目

更新于 10-16 04:29

技能介绍

用途:在自有 Spree 6 项目中定制 React 管理后台(位于 apps/dashboard/),该后台仅访问 Admin API(/api/v3/admin/*),属开发者预览版,包版本为 1.0.0-beta.x,API 仍可能变动。另需分发为 npm 插件请见 spree-dashboard-plugins。

主要能力:通过 defineDashboardPlugin 注册导航、设置导航、运行时路由、插槽、表格列、表单扩展字段与自定义字段组件;提供 nav.add/insertAfter/update/remove 等命令式 API;权限通过 usePermissions、Can 组件与 subject/action 做 UI 门控;数据访问使用 adminClient(@spree/admin-sdk 单例)与 useResourceKey 保证查询键按店铺隔离,useResourceMutation 处理错误与刷新。

使用方式:新项目 npx create-spree-app my-store 并选择 React Dashboard;已有项目执行 spree add dashboard(支持 --template、--no-install)。开发时先 spree dev 运行 API,再进入 apps/dashboard 执行 pnpm dev 访问 http://localhost:5173,使用管理员邮箱密码登录(JWT 内存存储、httpOnly 刷新 cookie)。主机应用统一从 @spree/dashboard 导入,仅分发插件才直接从 -core/-ui 包入口导入,禁止深层路径。

适用场景:为店铺后台添加自定义页面、菜单项、设置分组、资源表格列、表单字段与插槽组件。

限制:注册表为模块单例,键与 id 必须唯一,重复会在启动时抛出 AggregateError;路由注册页面不在类型化路由树中,链接需类型转换;subject 在直接导航时渲染 403;排序筛选经 Ransack 需服务端白名单;表格批量操作与行操作无法注入内置表格;插槽组件不注入环境权限,需自行调用 usePermissions/useStore/useAuth;隐藏按钮不构成授权,服务端仍须校验;ID 为带前缀字符串,不可解析或去除。