## 3dPlatform 使用Threejs开源框架,实现WEB端三维模型的定制化展示 项目源码地址:[https://github.com/TONKIA/3dPlatform](https://github.com/TONKIA/3dPlatform) ## 项目运行 ```bash cnpm install nodemon app ``` ## 效果图 #### 登录页面 ![](./picture/loginPage.png) #### 用户主页 ![](./picture/homePage.png) #### 创建方案 ![](./picture/create.png) ![](./picture/sidebar.png) #### 方案分享 ![](./picture/share.png) #### 分享页面 ![](./picture/sharePage.png) ## 接口 | URL | Method | 请求JSON参数 | 描述 | 返回 | |-|-|-|-|-| | / | get | 无 | 请求主页 | 返回登录主页index.html文件 | | / | post | {account, password} | 登录验证 | 1:登录成功, 0:登录失败 | | /home | get | 无 | 请求用户主页 | 返回用户主页home.html文件 | | /home | post | 无 | 请求用户主页的数据 | {user, schemeList{id, name, img, share_state, share_password}, shareLink} | | /logout | get | 无 | 用户注销 | 重定向到 / | | /create | get | 无 | 返回一个空的方案创建页面 | 返回createScheme.html页面 | | /create/:id | get | 无 | 返回指定id的方案修改页面 | 返回createScheme.html页面 | | /getScheme | post | 无 | 获得一个空的方案初始data数据 | {name: '默认方案', components: [], img: null, id: null, maxHeight: 10, height: 2, maxDistance: 30, distance: 10 } | | /getScheme/:id | post | 无 | 返回指定id的方案数据 | { name, components, img, id, maxHeight, height, maxDistance, distance} | | /changeShareConfig | {id, share_password, share_state} | 无 | 主页修改分享数据 | {affectedRows} | | /upload/:fileType | post | file | 接受文件上传,并且返回文件名 | {originalname, mimetype, size, destination, filename, path} | | /files/thumbnail/:filename | get | 无 | 返回相应文件名贴图文件的缩略图 | file | | /files/:fileType/:fileName | get | 无 | 返回相应类型文件名的文件 | file | | /saveScheme | post | { name, components, img, id, maxHeight, height, maxDistance, distance} | 方案保存 | {affectedRows} | | /share/:id | get | 无 | 返回分享页面 | 返回share.html页面 | | /share/:id | post | 无 | 获取分享的状态 | 0:不共享 1:共享 2:密码共享 3:当前分享页面不存在 | | /shareData/:id | post | {state, password} | 获取分享页面的数据 | {msg, data{name, components, img, id, maxHeight, height, maxDistance, distance}} | ## 数据库 #### user | 列名 | 数据类型 | 长度 | 默认 | 主键 | 非空 | 自增 | 注释 | | - | - | - | - | - | - | - | - | | id | int | 11 | | ✔ | ✔ | ✔ | | | account | varchar | 20 | | | ✔ | | | | password | varchar | 20 | | | ✔ | | | | name | varchar | 20 | | | | | | #### scheme | 列名 | 数据类型 | 长度 | 默认 | 主键 | 非空 | 自增 | 注释 | | - | - | - | - | - | - | - | - | | id | int | 11 | | ✔ | ✔ | ✔ | | | uid | int | 11 | | | ✔ | | | | name | varchar | 20 | | | | | | | img | longtext | | | | | | | | data | text | | | | ✔ | | | | share_state | int | 11 | 0 | | | | 0:不共享/1:共享/2:密码共享 | | share_password | varchar | 20 | | | | | | ## 第三方开源 - Three.js [https://github.com/mrdoob/three.js](https://github.com/mrdoob/three.js) - ZUI [https://github.com/easysoft/zui](https://github.com/easysoft/zui)