Skip to content

Repository files navigation

Enterprise Connector · Admin UI

Vue 3 + TypeScript + Element Plus 实现的 Enterprise Connector 后台。 对接后端 36 个 REST 端点, 一体化管理租户 / 数据源 / 模板 / 授权 / 字典 / 异步任务。

后端仓库:sea_star_enterprise_connector_public(独立, 通过 OpenAPI 契约对接) License:Apache 2.0 (与后端一致)

美学方向

工程蓝图 × 终端仪表 × 高密度 × 仪式感破坏动作。每个表格行都有 4px 状态色条 + 等宽 ID, 整个后台像一份机械工单, 而不是 SaaS dashboard。

完整规范见 docs/DESIGN_TOKENS.md

技术栈

模块 选型
框架 Vue 3.5 + TypeScript 5.6
构建 Vite 6
UI 库 Element Plus 2.8 (CSS Variables 全局覆盖)
状态 Pinia 2
路由 vue-router 4 (hash mode)
HTTP axios 1.7 + @tanstack/vue-query 5
i18n vue-i18n 10 (中 / 日 / 英)
表单 vee-validate 4 + zod 3
SQL 编辑器 monaco-editor 0.52 (多方言高亮 + 占位符 lint)
图表 @unovis/vue
图标 lucide-vue-next (line 1.5px)
测试 vitest + playwright
包管理 pnpm 9

快速开始

四步:装依赖 → 配置后端地址(可选)→ 起后端(另一个终端)→ 起前端。 下面三个版本任选一个整段照抄;差异只在「复制 .env」和「调 mvnw」两处。

Base(bash · Linux / macOS / Git Bash)

# 1. 装依赖
pnpm install

# 2. 配置后端地址(可选,默认 http://localhost:8080)
cp .env.example .env          # 编辑 VITE_BACKEND_URL

# 3. 启动后端(另一个终端)
cd ../sea_star_enterprise_connector_public
./mvnw spring-boot:run        # Linux/macOS; Windows 的 Git Bash 用 ./mvnw.cmd

# 4. 启动前端
pnpm dev                      # 打开 http://127.0.0.1:5173

PowerShell

# 1. 装依赖
pnpm install

# 2. 配置后端地址(可选)
Copy-Item .env.example .env   # 编辑 VITE_BACKEND_URL

# 3. 启动后端(另一个终端)
cd ..\sea_star_enterprise_connector_public
.\mvnw.cmd spring-boot:run

# 4. 启动前端
pnpm dev                      # 打开 http://127.0.0.1:5173

cmd

:: 1. 装依赖
pnpm install

:: 2. 配置后端地址(可选)
copy .env.example .env

:: 3. 启动后端(另一个终端)
cd ..\sea_star_enterprise_connector_public
mvnw.cmd spring-boot:run

:: 4. 启动前端
pnpm dev

首次访问需要在 /login 输入 X-API-Key (后端 application.yaml 里的 ADMIN_API_KEY)。

目录结构

src/
├── shared/           # 共通层 (所有跨页面共用的能力)
│   ├── http/         # axios + 拦截器 + 错误规范化
│   ├── api/          # 8 个 controller 对应的 8 个文件 → 36 端点
│   ├── router/       # 路由集中表 + 守卫
│   ├── stores/       # auth / ui (theme/density/lang) / toast / trace
│   ├── i18n/         # vue-i18n + 共通字典 zh/ja/en
│   ├── components/   # Ec* 原子组件 (待补)
│   ├── composables/  # usePurge / useConfirm / usePolling / useToast / usePagination
│   ├── styles/       # tokens.css (方案 B 已应用)
│   └── utils/        # format / tenantId
├── views/            # 页面层, 只组合 shared
│   ├── overview/         # 首页仪表盘
│   ├── tenants/          # 租户三栏 (含 ds / actions / SQL 编辑器)
│   ├── datasources/      # 数据源管理
│   ├── templates/        # action 模板分组
│   ├── action-configs/   # 授权管理
│   ├── dict/             # sys_dict 热更新
│   ├── tasks/            # 异步任务列表
│   ├── danger-zone/      # purge / restore 集中页
│   ├── login/            # X-API-Key 输入
│   └── _misc/            # 404 等
├── App.vue
└── main.ts
docs/
├── API_COVERAGE.md     # 36 端点 → UI 入口 checklist (核心交付物)
├── COMMON_LAYER.md     # 共通层使用指南
└── DESIGN_TOKENS.md    # 设计规范
CLAUDE.md              # Claude Code 协作指引

接口覆盖

36 个后端端点的实施 checklist:docs/API_COVERAGE.md

当前进度:0/36 (脚手架阶段)

阶段目标:

  • Phase 1 scaffold (现在) → 工程骨架 / 共通层 / 类型定义
  • Phase 2 read paths → 12/36 (所有 GET 类端点 + 列表页)
  • Phase 3 full CRUD → 30/36 (除 purge/restore 外都做完)
  • Phase 4 danger ops → 35/36 (含 purge/restore, 唯一不做的是 POST /internal/callback 因为是后端→后端回调)
  • GA → 35/36 + 至少 60% 端点 e2e 测试

与后端的契约边界

  • 前端只依赖后端 REST 契约 (URL / method / request / response shape), 不依赖后端代码
  • 后端 ErrorResponse { code, message, details?, traceId? }shared/http/error.ts 规范化为 BizError
  • 后端 mybatis-flex Page<T>shared/http/types.tsPage<T> 类型对齐
  • 后端 enum (Tier / AccessType / TaskStatus) 由 shared/api/*.ts 的 string union type 对齐, 后端改 enum 时必须同步前端类型

部署建议

开发:pnpm dev, Vite 反代后端 生产:pnpm builddist/, Nginx 托管 + 反向代理 /admin /health /mcp /internal 到后端

公网部署额外要求(MVP 不在范围内):

  • X-API-Key 改成 httpOnly cookie + 真实账号体系
  • 启用 CSP (与 Monaco editor 兼容需放开 worker-src 'self' blob:)
  • 国密 / 字段加密 / 操作审计

国际化

支持 中 / 日 / 英 三语切换, 顶栏 中 / 日 / EN 三格切换器。 首次访问按 navigator.language 检测, 之后存 localStorage.ec.lang

翻译原则(详见 CLAUDE.md i18n 章节):等宽字体里的技术字面量都不翻译 —— ID、SQL、占位符、API path、错误码、时间戳。

License

Apache 2.0

About

Enterprise Connector Admin UI · Vue 3 + TypeScript + Element Plus 运维/租户/模板/字典/可观测一体控制台

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages