From bfa4e3107f48c00f465c1e6f0e195643f6ada258 Mon Sep 17 00:00:00 2001 From: wfz <1040079213@qq.com> Date: Tue, 20 Jan 2026 21:53:09 +0800 Subject: [PATCH] =?UTF-8?q?ai=E7=89=9B=E9=80=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 166 ++++++ draggable-panels/README.md | 5 - draggable-panels/config.json | 108 +--- .../designComponents/GridTable/index.json | 41 +- .../designComponents/GridTable/index.vue | 63 --- .../designComponents/GridTable/template.html | 9 + .../designComponents/RadioSelect/index.json | 46 +- .../designComponents/RadioSelect/index.vue | 75 --- .../RadioSelect/template.html | 11 + .../designComponents/TextInput/index.json | 52 +- .../designComponents/TextInput/index.vue | 49 -- .../designComponents/TextInput/template.html | 7 + .../src/fauto/materials/DataTable/index.json | 17 +- .../src/fauto/materials/DataTable/index.vue | 375 ++++++++----- .../DesignCenter/InteractiveWrapper.vue | 127 +++++ .../materials/DesignComponentList/index.vue | 12 +- .../src/fauto/materials/TreeViewer/index.json | 36 +- .../src/fauto/materials/TreeViewer/index.vue | 530 +++++++++++++++--- .../src/fauto/plugins/dragStore.ts | 50 +- .../src/fauto/stores/designStore.ts | 107 +++- draggable-panels/src/views/TestPage1.vue | 78 ++- vue-template-service/src/index.js | 276 ++++++++- .../src/services/templateService.js | 506 +++++++++++++++++ 23 files changed, 2154 insertions(+), 592 deletions(-) create mode 100644 README.md delete mode 100644 draggable-panels/README.md delete mode 100644 draggable-panels/src/fauto/designComponents/GridTable/index.vue create mode 100644 draggable-panels/src/fauto/designComponents/GridTable/template.html delete mode 100644 draggable-panels/src/fauto/designComponents/RadioSelect/index.vue create mode 100644 draggable-panels/src/fauto/designComponents/RadioSelect/template.html delete mode 100644 draggable-panels/src/fauto/designComponents/TextInput/index.vue create mode 100644 draggable-panels/src/fauto/designComponents/TextInput/template.html diff --git a/README.md b/README.md new file mode 100644 index 0000000..ede3dc0 --- /dev/null +++ b/README.md @@ -0,0 +1,166 @@ +# Fauto Design - Vue页面可视化设计器 + +
+
+
+
+
+
+
+ 🤖 本项目完全由 Qoder AI 开发,所有代码均为 AI 生成 +
+ +--- + +## 📖 项目简介 + +**Fauto Design** 是一个基于 Vue3 的**可视化页面设计器**,通过拖拽操作直接编辑真实的 Vue 源文件。与传统低代码平台不同,本项目直接操作 `.vue` 文件,生成的代码即是最终代码。 + +### ✨ 核心特性 + +- 🎯 **直接编辑源码** - 拖拽操作实时修改 Vue 文件,所见即所得 +- 🖱️ **智能拖拽交互** - 两阶段拖拽:先选源元素层级,再选目标位置 +- ⌨️ **键盘层级选择** - ↑↓ 键切换嵌套元素层级,精准定位 +- 🔄 **跨类型拖放** - 支持 el-row/el-col 之间的灵活布局调整 +- 📝 **保持代码格式** - AST 解析 + 智能缩进,保持源码整洁 + +--- + +## 🏗️ 技术架构 + +``` +┌─────────────────────────────────────────────────┐ +│ 前端 (Vue3 + Vite) │ +│ ┌─────────────┐ ┌─────────────┐ ┌─────────┐ │ +│ │ PageManager │ │DesignCenter│ │DropZone │ │ +│ └─────────────┘ └─────────────┘ └─────────┘ │ +│ ↓ ↓ ↓ │ +│ ┌──────────────────────────────────────────┐ │ +│ │ dragStore (Pinia) │ │ +│ │ 两阶段拖拽 | 层级选择 | 跨类型判断 │ │ +│ └──────────────────────────────────────────┘ │ +└─────────────────────────────────────────────────┘ + │ HTTP + ▼ +┌─────────────────────────────────────────────────┐ +│ 后端 (Node.js + Express) │ +│ ┌──────────────────────────────────────────┐ │ +│ │ templateService.js │ │ +│ │ @vue/compiler-sfc | AST解析 | 元素移动 │ │ +│ └──────────────────────────────────────────┘ │ +└─────────────────────────────────────────────────┘ + │ + ▼ + Vue 源文件 (*.vue) +``` + +--- + +## 🚀 快速开始 + +### 环境要求 + +- Node.js >= 18.x +- npm >= 9.x + +### 安装依赖 + +```bash +# 前端 +cd draggable-panels +npm install + +# 后端 +cd vue-template-service +npm install +``` + +### 启动服务 + +```bash +# 终端1 - 启动前端 (端口 5173) +cd draggable-panels +npm run dev + +# 终端2 - 启动后端 (端口 3001) +cd vue-template-service +node src/index.js +``` + +### 访问 + +打开浏览器访问:**http://localhost:5173/draggable** + +--- + +## 📁 项目结构 + +``` +fauto-design/ +├── 项目上下文.md # AI 协作上下文文档 +├── 项目设计文档.md # 详细技术设计文档 +├── README.md # 本文件 +│ +├── draggable-panels/ # 前端项目 +│ └── src/ +│ ├── fauto/ # 设计器核心 +│ │ ├── components/ # UI组件 +│ │ ├── materials/ # 物料组件 +│ │ ├── plugins/ # 核心插件 (dragStore等) +│ │ └── stores/ # 状态管理 +│ └── views/ # 示例页面 +│ +└── vue-template-service/ # 后端服务 + └── src/ + └── services/ + └── templateService.js # Vue模板解析修改 +``` + +--- + +## 🎮 使用方法 + +1. **选择页面** - 在左侧面板选择要编辑的 Vue 页面 +2. **开始拖拽** - 点击页面中的 el-row 或 el-col 元素 +3. **选择源层级** - 按 ↑↓ 键切换要移动的层级 +4. **移动到目标** - 拖动到目标元素上 +5. **选择目标层级** - 按 ↑↓ 键切换目标层级 +6. **确认位置** - 松开鼠标,选择放置方向(上/下/左/右/内部) +7. **自动保存** - 源文件自动更新,页面热刷新 + +--- + +## 🤖 关于 AI 开发 + +本项目是一个 **AI 驱动开发**的实验性项目: + +- **开发工具**:Qoder AI(AI 编程助手) +- **代码生成**:100% 由 AI 生成 +- **人工参与**:需求描述、测试反馈、方向指导 + +这证明了 AI 辅助开发在复杂前端项目中的可行性,包括: +- 状态管理设计 +- 拖拽交互实现 +- AST 解析与修改 +- 多阶段工作流 + +--- + +## 📄 相关文档 + +- [项目上下文.md](./项目上下文.md) - AI 协作快速恢复上下文 +- [项目设计文档.md](./项目设计文档.md) - 详细技术设计 + +--- + +## 📜 License + +MIT License + +--- + ++ 🚀 Powered by Qoder AI +
diff --git a/draggable-panels/README.md b/draggable-panels/README.md deleted file mode 100644 index 33895ab..0000000 --- a/draggable-panels/README.md +++ /dev/null @@ -1,5 +0,0 @@ -# Vue 3 + TypeScript + Vite - -This template should help get you started developing with Vue 3 and TypeScript in Vite. The template uses Vue 3 ` - - -| {{ header }} | -
|---|
| - 单元格 {{ row }}-{{ col }} - | -