e022146c51f229fe5a8535cd9a8efb1730ed600b
- vite: 增 /park/tenants、/park/auth 代理键(此前仅 /park/api,/park/tenants 被当作 SPA 返回 HTML→JSON 解析失败→界面空白/无反应)。 - park.ts/types: 增 screens CRUD(按 tenant) + ParkScreen。 - 新增 screens-tab(屏幕管理):登记本园区大屏设备(device_id/name/role/location)+删除;腾换 index 的“配置/建园区”为“屏幕管理”。 (“创建园区”改为运营端平台功能,见下一步园区账密登录的园区端视图建设。)
云超服 · 运营管理平台(admin-portal)
React 18 + TypeScript + Vite 6 + Tailwind v4 + shadcn/ui(radix-ui,严格遵循
design/installation.md)。面向云超服所有管理功能(运营/政务/企业/载体/服务商/投资人/OPC)。 前端接入server-core(/auth、/admin/*),经统一身份与八端口 RBAC 隔离。
技术栈 / 规范
- Vite 6、React 18、TypeScript(strict)
- Tailwind v4(
@tailwindcss/vite)+ shadcn 组件(components.json、src/components/ui/*、cn()) - Radix UI(radix-ui 单片)+ lucide 图标 + class-variance-authority
- React Router 7;认证经
/auth/login+/auth/select-identity
启动
cd code/admin-portal
npm install
cp .env.example .env # 如需覆盖后端地址
npm run dev # 默认 http://localhost:5175(/auth /admin 代理到 :8090)
npm run build # 类型检查 + 产物
目录
src/
api/ client.ts(fetch+token) · auth.ts · resources.ts(业务模块)
components/ ui/(shadcn) · generic/(DataTable/PageHeader/StatusBadge/useResource) · layout/AppShell
lib/ utils.ts(cn) · auth.tsx(认证上下文) · rbac.tsx(八端口导航/权限)
pages/ login · overview · users · courses · activities · bookings · tests · compute · park
types.ts
身份与权限
- 登录:账号密码 → 返回多端口身份 → 多身份时进入「选择身份」。
- 路由按 identity.role 守卫(
RoleRoute);侧边栏导航由navForRole过滤。 - 需要
operator(部分carrier)身份访问管理页。
与后端现状
部分 /admin/* 端点(课程/活动/报名/测评/园区)仍在 server-core 阶段2-3 建设中,本次前端已铺好
列表/详情/审核骨架并优雅降级(未实现时提示「暂未接入」,后端补齐即自动生效)。算力页 ping/provision
已在 server-core 阶段0-1 落地,可直接联调。
约定
- 端点路径集中在
src/api/resources.ts;后端路径调整仅改该文件。 - 前端 UI 基调沿用仓库主基调(shadcn + 云超服品牌
--mascot-accent)。
Description
Languages
TypeScript
99.3%
CSS
0.6%