Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
108 changes: 107 additions & 1 deletion packages/code-less/README.md
Original file line number Diff line number Diff line change
@@ -1 +1,107 @@
订单系统前端低代码构建组件
# 低代码开发系统

订单系统前端低代码构建组件,提供可视化页面搭建能力。

## 功能特性

- 📦 **组件库** - 预置多种常用组件(表单、表格、按钮等)
- 🎨 **可视化编辑** - 拖拽式页面设计器
- 👁️ **实时预览** - 所见即所得的预览体验
- 💾 **页面管理** - 创建、编辑、复制、发布页面

## 技术架构

### 后端
- Express.js 服务框架
- SQLite 数据库(better-sqlite3)
- RESTful API 设计

### 前端
- Vue 2 + Element UI
- 拖拽组件设计
- 动态组件渲染

## 快速开始

### 1. 安装依赖

```bash
# 在项目根目录
yarn install

# 或单独安装 code-less 依赖
cd packages/code-less
npm install
```

### 2. 启动后端服务

```bash
# 在 packages/code-less 目录
npm start

# 服务将在 http://localhost:3100 启动
```

### 3. 访问系统

在订单系统中,点击右上角用户名 → 低代码开发

## API 接口

### 页面管理

| 方法 | 路径 | 描述 |
|------|------|------|
| GET | /api/codeless/pages | 获取页面列表 |
| GET | /api/codeless/pages/:id | 获取单个页面 |
| POST | /api/codeless/pages | 创建页面 |
| PUT | /api/codeless/pages/:id | 更新页面 |
| DELETE | /api/codeless/pages/:id | 删除页面 |
| POST | /api/codeless/pages/:id/copy | 复制页面 |

### 组件管理

| 方法 | 路径 | 描述 |
|------|------|------|
| GET | /api/codeless/components | 获取组件列表 |
| GET | /api/codeless/components/categories | 获取组件分类 |

## 目录结构

```
packages/code-less/
├── server/ # 后端服务
│ ├── app.js # Express 入口
│ ├── db.js # 数据库初始化
│ └── routes/ # API 路由
│ ├── pages.js # 页面管理
│ └── components.js # 组件管理
├── src/ # 前端源码
│ ├── api/ # API 封装
│ ├── components/ # 公共组件
│ └── views/ # 页面视图
│ ├── index.vue # 首页
│ ├── editor.vue # 编辑器
│ └── preview.vue # 预览
├── data/ # SQLite 数据文件
├── package.json
└── README.md
```

## 预置组件

### 基础组件
- **文本** - 静态文本展示
- **按钮** - 操作按钮

### 表单组件
- **输入框** - 单行文本输入
- **多行文本** - 多行文本输入
- **下拉选择** - 单选/多选下拉
- **日期选择** - 日期选择器
- **单选框** - 单选选项
- **多选框** - 多选选项

### 数据组件
- **表格** - 数据表格展示
Binary file added packages/code-less/data/codeless.db
Binary file not shown.
16 changes: 16 additions & 0 deletions packages/code-less/package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
{
"name": "@order-system/code-less",
"version": "1.0.0",
"description": "低代码开发系统 - 可视化页面构建工具",
"main": "server/app.js",
"scripts": {
"start": "node server/app.js",
"dev": "node server/app.js"
},
"dependencies": {
"better-sqlite3": "^9.4.3",
"cors": "^2.8.5",
"express": "^4.21.2",
"uuid": "^9.0.0"
}
}
48 changes: 48 additions & 0 deletions packages/code-less/server/app.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
/**
* 低代码系统后端服务
*/
const express = require('express');
const cors = require('cors');
const path = require('path');
const fs = require('fs');
const { initDatabase } = require('./db');

const app = express();
const PORT = process.env.CODELESS_PORT || 3100;

// 确保数据目录存在
const dataDir = path.join(__dirname, '../data');
if (!fs.existsSync(dataDir)) {
fs.mkdirSync(dataDir, { recursive: true });
}

// 初始化数据库
initDatabase();

// 中间件
app.use(cors());
app.use(express.json({ limit: '10mb' }));

// 路由
app.use('/api/codeless/pages', require('./routes/pages'));
app.use('/api/codeless/components', require('./routes/components'));

// 健康检查
app.get('/api/codeless/health', (req, res) => {
res.json({ code: 200, msg: '低代码服务运行正常', timestamp: new Date().toISOString() });
});

// 错误处理
app.use((err, req, res, next) => {
console.error('服务错误:', err);
res.status(500).json({ code: 500, msg: '服务器内部错误' });
});

app.listen(PORT, () => {
console.log(`\n🚀 低代码系统后端服务已启动`);
console.log(`📍 地址: http://localhost:${PORT}`);
console.log(`📖 API 文档:`);
console.log(` - 页面管理: GET/POST /api/codeless/pages`);
console.log(` - 组件列表: GET /api/codeless/components`);
console.log(` - 健康检查: GET /api/codeless/health\n`);
});
Loading
Loading