企业级问卷调查解决方案
- Node.js + Express
- MySQL 8.0
- JWT 认证
- Vue 3 + TypeScript
- Element Plus
- vue-draggable-plus (拖拽)
- ECharts (图表)
- ExcelJS (导出)
mozin-questionnaire/
├── server/ # 后端项目
│ ├── src/
│ │ ├── config/ # 配置文件
│ │ ├── middleware/ # 中间件
│ │ ├── routes/ # 路由
│ │ └── scripts/ # 脚本
│ └── package.json
│
└── client/ # 前端项目
├── src/
│ ├── components/ # 组件
│ ├── views/ # 页面
│ ├── stores/ # 状态管理
│ ├── router/ # 路由
│ └── utils/ # 工具函数
└── package.json
# 配置数据库连接
cp server/.env.example server/.env
# 编辑 .env 文件,设置数据库密码
# 初始化数据库表
cd server
npm run init-dbcd server
npm start
# 或开发模式
npm run dev后端服务将在 http://localhost:3000 启动
cd client
npm install
npm run dev前端应用将在 http://localhost:5173 启动
默认管理员账号:
- 用户名:admin
- 密码:admin123
| 方法 | 路径 | 说明 |
|---|---|---|
| POST | /api/auth/login | 登录 |
| POST | /api/auth/logout | 登出 |
| GET | /api/auth/me | 获取当前用户 |
| 方法 | 路径 | 说明 |
|---|---|---|
| GET | /api/questionnaires | 问卷列表 |
| POST | /api/questionnaires | 创建问卷 |
| GET | /api/questionnaires/:id | 获取问卷详情 |
| PUT | /api/questionnaires/:id | 更新问卷 |
| DELETE | /api/questionnaires/:id | 删除问卷 |
| POST | /api/questionnaires/:id/publish | 发布问卷 |
| POST | /api/questionnaires/:id/close | 关闭问卷 |
| 方法 | 路径 | 说明 |
|---|---|---|
| GET | /api/questions/questionnaire/:id | 获取题目列表 |
| POST | /api/questions/questionnaire/:id | 创建题目 |
| PUT | /api/questions/:id | 更新题目 |
| DELETE | /api/questions/:id | 删除题目 |
| PUT | /api/questions/questionnaire/:id/sort | 题目排序 |
| 方法 | 路径 | 说明 |
|---|---|---|
| GET | /api/responses/questionnaire/:id | 答卷列表 |
| GET | /api/responses/:id | 答卷详情 |
| POST | /api/responses/questionnaire/:id/submit | 提交答卷 |
| DELETE | /api/responses/:id | 删除答卷 |
| 方法 | 路径 | 说明 |
|---|---|---|
| GET | /api/statistics/questionnaire/:id | 统计概览 |
| GET | /api/statistics/questionnaire/:id/question/:questionId | 题目统计 |
- 用户登录/登出
- 问卷管理(创建、编辑、删除、发布)
- 问卷编辑器(拖拽添加题目)
- 题目类型:单选题、多选题、填空题、量表题、评分题
- 答卷提交
- 简单统计(数量、百分比、图表)
- 问卷复制功能
- 条件逻辑(跳题)
- 矩阵题
- 文件上传题
- Excel 导出
- 交叉分析
- Webhook 集成
MIT