CodeWave 核心架构
整体架构
┌─────────────────────────────────────────────────────────────┐
│ 设计时(Design Time) │
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────────┐ │
│ │ 数据建模器 │ │ 前端设计器 │ │ 逻辑编排器 │ │
│ │ (ER 设计) │ │ (拖拽 UI) │ │ (流程/表达式) │ │
│ └──────────────┘ └──────────────┘ └──────────────────┘ │
└──────────────────────────┬──────────────────────────────────┘
│ 元数据(JSON/YAML)
┌──────────────────────────▼──────────────────────────────────┐
│ 代码生成引擎 │
│ 前端代码生成(Vue 3) 后端代码生成(Node.js/Java) │
└──────────────────────────┬──────────────────────────────────┘
│
┌──────────────────────────▼──────────────────────────────────┐
│ 运行时(Runtime) │
│ ┌──────────────────┐ ┌──────────────────────────────────┐ │
│ │ 前端运行时 │ │ 后端运行时 │ │
│ │ Vue 3 + Router │ │ API 服务 + 数据库访问层 │ │
│ └──────────────────┘ └──────────────────────────────────┘ │
└──────────────────────────┬──────────────────────────────────┘
│
┌──────────────────────────▼──────────────────────────────────┐
│ 基础设施层 │
│ MySQL Redis 对象存储 消息队列 第三方 API │
└─────────────────────────────────────────────────────────────┘数据建模引擎
实体建模
实体定义示例(员工管理)
实体:Employee(员工)
├── 字段
│ ├── id: Long(主键,自增)
│ ├── name: String(姓名,必填,最大 50 字符)
│ ├── email: String(邮箱,唯一,格式校验)
│ ├── department: Department(关联部门实体)
│ ├── status: Enum(在职/离职/试用)
│ └── created_at: DateTime(创建时间,自动填充)
└── 关系
├── 多对一:Employee → Department
└── 一对多:Employee → LeaveRecord(请假记录)自动生成:
- 数据库表(DDL)
- CRUD API(REST)
- 数据验证逻辑
- 基础 CRUD 页面(可选)
数据权限
数据权限模型
├── 行级权限(Row-Level Security)
│ └── 示例:员工只能看自己部门的数据
│ └── 配置:WHERE department_id = ${currentUser.departmentId}
└── 列级权限(Column-Level Security)
└── 示例:普通员工看不到薪资字段
└── 配置:salary 字段仅 HR 角色可见前端设计器
组件体系
组件分类(100+ 组件)
├── 基础组件
│ ├── 文本、图片、图标
│ ├── 按钮、链接
│ └── 分割线、空白
├── 表单组件
│ ├── 输入框、文本域
│ ├── 下拉选择、多选
│ ├── 日期选择器
│ ├── 文件上传
│ └── 富文本编辑器
├── 数据展示
│ ├── 表格(支持排序、筛选、分页)
│ ├── 列表
│ ├── 卡片
│ └── 图表(折线、柱状、饼图)
├── 导航组件
│ ├── 菜单、面包屑
│ ├── 标签页
│ └── 步骤条
└── 高级组件
├── 树形控件
├── 甘特图
└── 地图页面布局
布局方式
├── 栅格布局(12 列栅格系统)
├── 弹性布局(Flexbox)
├── 绝对定位(自由布局)
└── 响应式(PC/平板/手机自适应)逻辑编排
事件处理
事件 → 动作链
按钮点击
↓
[动作1] 表单验证
↓(验证通过)
[动作2] 调用 API(保存数据)
↓(成功)
[动作3] 显示成功提示
↓
[动作4] 跳转到列表页
↓(失败)
[动作5] 显示错误信息表达式引擎
支持在任意属性中使用表达式:
javascript
// 条件显示(按钮只有管理员可见)
visible: currentUser.role === 'admin'
// 动态样式(金额为负数时显示红色)
style.color: record.amount < 0 ? 'red' : 'green'
// 计算字段(含税金额)
value: (price * 1.13).toFixed(2)
// 数据过滤(只显示本部门数据)
filter: { departmentId: currentUser.departmentId }API 集成
外部 API 集成配置
├── 请求配置
│ ├── URL:https://api.example.com/users
│ ├── Method:GET / POST / PUT / DELETE
│ ├── Headers:Authorization: Bearer ${token}
│ └── Body:{ name: formData.name, email: formData.email }
├── 响应处理
│ ├── 成功:data = response.data.list
│ └── 失败:showError(response.message)
└── 缓存配置
└── 缓存时间:5 分钟部署架构
SaaS 部署
用户浏览器 → CDN → CodeWave 前端
→ CodeWave API 服务 → 用户数据库(隔离)私有化部署
客户内网
├── Nginx(反向代理)
├── CodeWave 设计器(Docker)
├── CodeWave 运行时(Docker)
├── MySQL(元数据 + 应用数据)
└── Redis(缓存、会话)
最小配置:2 台服务器(4C8G)
推荐配置:3 台服务器(8C16G)