Compare commits
16 Commits
main
...
feature/wo
Author | SHA1 | Date | |
---|---|---|---|
|
ff0b2487bb | ||
|
c4e8b8e466 | ||
|
47c8a797a5 | ||
|
23e69988e1 | ||
|
56b0ba2a09 | ||
|
a5630f0f63 | ||
|
2ca95d5703 | ||
|
52c70198d9 | ||
|
26becfe3d4 | ||
|
1eb0fa31b5 | ||
|
5188d3d795 | ||
|
49635fcf5a | ||
|
3345960351 | ||
|
04766db716 | ||
|
bf9a423064 | ||
|
c46176e39e |
39
.github/workflows/codecov.yml
vendored
Normal file
39
.github/workflows/codecov.yml
vendored
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
# Unit Test Coverage Report
|
||||||
|
name: Test Coverage
|
||||||
|
|
||||||
|
on:
|
||||||
|
pull_request:
|
||||||
|
branches:
|
||||||
|
- feature/workflow
|
||||||
|
- develop
|
||||||
|
- main
|
||||||
|
- releases/**
|
||||||
|
- feature/**
|
||||||
|
paths:
|
||||||
|
- server/**
|
||||||
|
workflow_dispatch:
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
name: Coverage
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Checkout
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- name: Setup node
|
||||||
|
uses: actions/setup-node@v4
|
||||||
|
with:
|
||||||
|
node-version: 20
|
||||||
|
|
||||||
|
- name: Install dependencies
|
||||||
|
run: cd server && npm install
|
||||||
|
|
||||||
|
- name: Run tests and collect coverage
|
||||||
|
run: cd server && npm run test:cov
|
||||||
|
|
||||||
|
- name: Upload coverage to Codecov
|
||||||
|
uses: codecov/codecov-action@v4
|
||||||
|
env:
|
||||||
|
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
|
34
.github/workflows/server-lint.yml
vendored
Normal file
34
.github/workflows/server-lint.yml
vendored
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
# Lint
|
||||||
|
name: Server Lint
|
||||||
|
|
||||||
|
on:
|
||||||
|
pull_request:
|
||||||
|
branches:
|
||||||
|
- feature/workflow
|
||||||
|
- develop
|
||||||
|
- main
|
||||||
|
- releases/**
|
||||||
|
- feature/**
|
||||||
|
paths:
|
||||||
|
- server/**
|
||||||
|
workflow_dispatch:
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
name: Lint
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Checkout
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- name: Setup node
|
||||||
|
uses: actions/setup-node@v4
|
||||||
|
with:
|
||||||
|
node-version: 20
|
||||||
|
|
||||||
|
- name: Install dependencies
|
||||||
|
run: cd server && npm install
|
||||||
|
|
||||||
|
- name: Lint
|
||||||
|
run: cd server && npm run lint
|
34
.github/workflows/web-lint.yml
vendored
Normal file
34
.github/workflows/web-lint.yml
vendored
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
# Lint
|
||||||
|
name: Web Lint
|
||||||
|
|
||||||
|
on:
|
||||||
|
pull_request:
|
||||||
|
branches:
|
||||||
|
- feature/workflow
|
||||||
|
- develop
|
||||||
|
- main
|
||||||
|
- releases/**
|
||||||
|
- feature/**
|
||||||
|
paths:
|
||||||
|
- web/**
|
||||||
|
workflow_dispatch:
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
name: Lint
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Checkout
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- name: Setup node
|
||||||
|
uses: actions/setup-node@v4
|
||||||
|
with:
|
||||||
|
node-version: 20
|
||||||
|
|
||||||
|
- name: Install dependencies
|
||||||
|
run: cd web && npm install
|
||||||
|
|
||||||
|
- name: Lint
|
||||||
|
run: cd web && npm run lint
|
27
README.md
27
README.md
@ -28,6 +28,7 @@
|
|||||||
  系统已沉淀 40+种题型,累积精选模板 100+,适用于市场调研、客户满意度调研、在线考试、投票、报道、测评等众多场景。数据能力上,经过上亿量级打磨,沉淀了分题统计、交叉分析、多渠道分析等在线报表能力,快速满足专业化分析。
|
  系统已沉淀 40+种题型,累积精选模板 100+,适用于市场调研、客户满意度调研、在线考试、投票、报道、测评等众多场景。数据能力上,经过上亿量级打磨,沉淀了分题统计、交叉分析、多渠道分析等在线报表能力,快速满足专业化分析。
|
||||||
|
|
||||||
# 简介
|
# 简介
|
||||||
|
|
||||||
本次开源主要围绕问卷生命周期提供了完整的产品化能力:
|
本次开源主要围绕问卷生命周期提供了完整的产品化能力:
|
||||||
|
|
||||||
- 问卷管理:创、编、投、收、数据分析
|
- 问卷管理:创、编、投、收、数据分析
|
||||||
@ -47,25 +48,28 @@
|
|||||||
_**(个人和企业用户均可快速构建特定领域的调研类解决方案。)**_
|
_**(个人和企业用户均可快速构建特定领域的调研类解决方案。)**_
|
||||||
|
|
||||||
# 技术
|
# 技术
|
||||||
|
|
||||||
Web 端:Vue2(Vue3 版本 24 年上半年推出)+ ElementUI
|
Web 端:Vue2(Vue3 版本 24 年上半年推出)+ ElementUI
|
||||||
|
|
||||||
Server 端:Nestjs + MongoDB
|
Server 端:Nestjs + MongoDB
|
||||||
|
|
||||||
架构:[架构解读](https://xiaojusurvey.didi.cn/docs/next/document/%E8%AE%BE%E8%AE%A1%E5%8E%9F%E7%90%86/%E6%9E%B6%E6%9E%84)
|
架构:[架构解读](https://xiaojusurvey.didi.cn/docs/next/document/%E8%AE%BE%E8%AE%A1%E5%8E%9F%E7%90%86/%E6%9E%B6%E6%9E%84)
|
||||||
|
|
||||||
|
|
||||||
# 项目优势
|
# 项目优势
|
||||||
|
|
||||||
**一、具备全面的综合性和专业性**
|
**一、具备全面的综合性和专业性**
|
||||||
|
|
||||||
- [制定了问卷标准化协议规范](https://xiaojusurvey.didi.cn/docs/next/agreement/%E3%80%8A%E9%97%AE%E5%8D%B7Meta%E5%8D%8F%E8%AE%AE%E3%80%8B)
|
- [制定了问卷标准化协议规范](https://xiaojusurvey.didi.cn/docs/next/agreement/%E3%80%8A%E9%97%AE%E5%8D%B7Meta%E5%8D%8F%E8%AE%AE%E3%80%8B)
|
||||||
|
|
||||||
领域标准保障概念互通,是全系统的基础和核心。基于实际业务经验,沉淀了两大类:
|
领域标准保障概念互通,是全系统的基础和核心。基于实际业务经验,沉淀了两大类:
|
||||||
|
|
||||||
- 业务描述:问卷协议、题型协议
|
- 业务描述:问卷协议、题型协议
|
||||||
- 物料描述:题型物料协议,包含题型和设置器
|
- 物料描述:题型物料协议,包含题型和设置器
|
||||||
|
|
||||||
- [制定了问卷 UI/UX 规范](https://xiaojusurvey.didi.cn/docs/next/design/%E3%80%8A%E8%AE%BE%E8%AE%A1%E8%A7%84%E8%8C%83%E3%80%8B)
|
- [制定了问卷 UI/UX 规范](https://xiaojusurvey.didi.cn/docs/next/design/%E3%80%8A%E8%AE%BE%E8%AE%A1%E8%A7%84%E8%8C%83%E3%80%8B)
|
||||||
|
|
||||||
设计语言是系统灵活性、一致性的基石,保障系统支撑的实际业务运转拥有极高的用户体验。包含两部分:
|
设计语言是系统灵活性、一致性的基石,保障系统支撑的实际业务运转拥有极高的用户体验。包含两部分:
|
||||||
|
|
||||||
- 设计规范:灵活、降噪、统一
|
- 设计规范:灵活、降噪、统一
|
||||||
- 交互规范:遵循用户行为特征,遵循产品定位,遵循成熟的用户习惯
|
- 交互规范:遵循用户行为特征,遵循产品定位,遵循成熟的用户习惯
|
||||||
|
|
||||||
@ -83,6 +87,7 @@ Server端:Nestjs + MongoDB
|
|||||||
数据加密传输、敏感信息精细化检测、投票防刷等能力,保障问卷发布、数据回收链路安全性。
|
数据加密传输、敏感信息精细化检测、投票防刷等能力,保障问卷发布、数据回收链路安全性。
|
||||||
|
|
||||||
**二、轻量化设计,快速接入、灵活扩展**
|
**二、轻量化设计,快速接入、灵活扩展**
|
||||||
|
|
||||||
- [产品级开源方案,快速产出一套调研流程](https://xiaojusurvey.didi.cn/docs/next/document/%E4%BA%A7%E5%93%81%E6%89%8B%E5%86%8C/%E6%A6%82%E8%BF%B0)
|
- [产品级开源方案,快速产出一套调研流程](https://xiaojusurvey.didi.cn/docs/next/document/%E4%BA%A7%E5%93%81%E6%89%8B%E5%86%8C/%E6%A6%82%E8%BF%B0)
|
||||||
|
|
||||||
围绕问卷生命周期提供了完整的产品化能力,包含用户管理: 登录、注册、问卷权限,问卷管理: 创、编、投、收、数据分析,可快速构建特定领域的调研类解决方案。
|
围绕问卷生命周期提供了完整的产品化能力,包含用户管理: 登录、注册、问卷权限,问卷管理: 创、编、投、收、数据分析,可快速构建特定领域的调研类解决方案。
|
||||||
@ -105,6 +110,7 @@ Node版本 >= 16.x,
|
|||||||
[查看环境准备指导](https://xiaojusurvey.didi.cn/docs/next/document/%E6%A6%82%E8%BF%B0/%E5%BF%AB%E9%80%9F%E5%BC%80%E5%A7%8B)
|
[查看环境准备指导](https://xiaojusurvey.didi.cn/docs/next/document/%E6%A6%82%E8%BF%B0/%E5%BF%AB%E9%80%9F%E5%BC%80%E5%A7%8B)
|
||||||
|
|
||||||
复制工程
|
复制工程
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
git clone git@github.com:didi/xiaoju-survey.git
|
git clone git@github.com:didi/xiaoju-survey.git
|
||||||
```
|
```
|
||||||
@ -112,15 +118,18 @@ git clone git@github.com:didi/xiaoju-survey.git
|
|||||||
## 服务端启动
|
## 服务端启动
|
||||||
|
|
||||||
### 方案一、快速启动,无需安装数据库
|
### 方案一、快速启动,无需安装数据库
|
||||||
|
|
||||||
> _便于快速预览工程,对于正式项目需要使用方案二。_
|
> _便于快速预览工程,对于正式项目需要使用方案二。_
|
||||||
|
|
||||||
#### 1、安装依赖
|
#### 1、安装依赖
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
cd server
|
cd server
|
||||||
npm install
|
npm install
|
||||||
```
|
```
|
||||||
|
|
||||||
#### 2、启动
|
#### 2、启动
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
npm run local
|
npm run local
|
||||||
```
|
```
|
||||||
@ -140,33 +149,41 @@ npm run local
|
|||||||
- 启动本地数据库,查看[MongoDB 启动](https://xiaojusurvey.didi.cn/docs/next/document/%E6%A6%82%E8%BF%B0/%E6%95%B0%E6%8D%AE%E5%BA%93#%E4%BA%94%E5%90%AF%E5%8A%A8)
|
- 启动本地数据库,查看[MongoDB 启动](https://xiaojusurvey.didi.cn/docs/next/document/%E6%A6%82%E8%BF%B0/%E6%95%B0%E6%8D%AE%E5%BA%93#%E4%BA%94%E5%90%AF%E5%8A%A8)
|
||||||
|
|
||||||
#### 2、安装依赖
|
#### 2、安装依赖
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
cd server
|
cd server
|
||||||
npm install
|
npm install
|
||||||
```
|
```
|
||||||
|
|
||||||
#### 3、启动
|
#### 3、启动
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
npm run dev
|
npm run dev
|
||||||
```
|
```
|
||||||
|
|
||||||
## 前端启动
|
## 前端启动
|
||||||
|
|
||||||
### 安装依赖
|
### 安装依赖
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
cd web
|
cd web
|
||||||
npm install
|
npm install
|
||||||
```
|
```
|
||||||
|
|
||||||
### 启动
|
### 启动
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
npm run serve
|
npm run serve
|
||||||
```
|
```
|
||||||
|
|
||||||
## 访问
|
## 访问
|
||||||
|
|
||||||
### 问卷管理端
|
### 问卷管理端
|
||||||
|
|
||||||
[http://localhost:8080/management](http://localhost:8080)
|
[http://localhost:8080/management](http://localhost:8080)
|
||||||
|
|
||||||
### 问卷投放端
|
### 问卷投放端
|
||||||
|
|
||||||
创建并发布问卷。
|
创建并发布问卷。
|
||||||
|
|
||||||
[http://localhost:8080/render/:surveyPath](http://localhost:8080/render/:surveyPath)
|
[http://localhost:8080/render/:surveyPath](http://localhost:8080/render/:surveyPath)
|
||||||
@ -182,21 +199,23 @@ npm run serve
|
|||||||
[<img src="https://img-hxy021.didistatic.com/static/starimg/img/iJUmLIHKV21700192846057.png" width="210" />](http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=P61UJI_q8AzizyBLGOm-bUvzNrUnSQq-&authKey=yZFtL9biGB5yiIME3%2Bi%2Bf6XMOdTNiuf0pCIaviEEAIryySNzVy6LJ4xl7uHdEcrM&noverify=0&group_code=920623419)
|
[<img src="https://img-hxy021.didistatic.com/static/starimg/img/iJUmLIHKV21700192846057.png" width="210" />](http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=P61UJI_q8AzizyBLGOm-bUvzNrUnSQq-&authKey=yZFtL9biGB5yiIME3%2Bi%2Bf6XMOdTNiuf0pCIaviEEAIryySNzVy6LJ4xl7uHdEcrM&noverify=0&group_code=920623419)
|
||||||
|
|
||||||
## Star
|
## Star
|
||||||
|
|
||||||
如果该项目对你有帮助,star 一下 ❤️❤️❤️
|
如果该项目对你有帮助,star 一下 ❤️❤️❤️
|
||||||
|
|
||||||
[![Star History Chart](https://api.star-history.com/svg?repos=didi/xiaoju-survey&type=Date)](https://star-history.com/#didi/xiaoju-survey&Date)
|
[![Star History Chart](https://api.star-history.com/svg?repos=didi/xiaoju-survey&type=Date)](https://star-history.com/#didi/xiaoju-survey&Date)
|
||||||
|
|
||||||
## 记录
|
## 记录
|
||||||
|
|
||||||
[谁在使用](https://github.com/didi/xiaoju-survey/issues/64)
|
[谁在使用](https://github.com/didi/xiaoju-survey/issues/64)
|
||||||
|
|
||||||
## 贡献
|
## 贡献
|
||||||
|
|
||||||
[贡献者指南](https://xiaojusurvey.didi.cn/docs/next/share/%E7%94%9F%E6%80%81%E5%BB%BA%E8%AE%BE)
|
[贡献者指南](https://xiaojusurvey.didi.cn/docs/next/share/%E7%94%9F%E6%80%81%E5%BB%BA%E8%AE%BE)
|
||||||
|
|
||||||
## Feature
|
## Feature
|
||||||
|
|
||||||
[官方 Feature](https://github.com/didi/xiaoju-survey/issues/45)
|
[官方 Feature](https://github.com/didi/xiaoju-survey/issues/45)
|
||||||
|
|
||||||
## CHANGELOG
|
## CHANGELOG
|
||||||
[MAJOR CHANGELOG](https://github.com/didi/xiaoju-survey/issues/48)
|
|
||||||
|
|
||||||
## 分享
|
[MAJOR CHANGELOG](https://github.com/didi/xiaoju-survey/issues/48)
|
||||||
[文章](https://github.com/didi/xiaoju-survey/issues)
|
|
||||||
|
@ -4,8 +4,8 @@
|
|||||||
"private": true,
|
"private": true,
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"serve": "vite",
|
"serve": "npm run dev",
|
||||||
"dev": "vite",
|
"dev": "vite --open",
|
||||||
"build": "run-p type-check \"build-only {@}\" --",
|
"build": "run-p type-check \"build-only {@}\" --",
|
||||||
"preview": "vite preview",
|
"preview": "vite preview",
|
||||||
"build-only": "vite build",
|
"build-only": "vite build",
|
||||||
@ -43,6 +43,7 @@
|
|||||||
"@vue/tsconfig": "^0.5.1",
|
"@vue/tsconfig": "^0.5.1",
|
||||||
"eslint": "^8.49.0",
|
"eslint": "^8.49.0",
|
||||||
"eslint-plugin-vue": "^9.17.0",
|
"eslint-plugin-vue": "^9.17.0",
|
||||||
|
"husky": "^9.0.11",
|
||||||
"npm-run-all2": "^6.1.1",
|
"npm-run-all2": "^6.1.1",
|
||||||
"prettier": "^3.0.3",
|
"prettier": "^3.0.3",
|
||||||
"sass": "^1.72.0",
|
"sass": "^1.72.0",
|
||||||
@ -54,8 +55,19 @@
|
|||||||
"vite-plugin-virtual-mpa": "^1.11.0",
|
"vite-plugin-virtual-mpa": "^1.11.0",
|
||||||
"vue-tsc": "^1.8.27"
|
"vue-tsc": "^1.8.27"
|
||||||
},
|
},
|
||||||
|
"husky": {
|
||||||
|
"hooks": {
|
||||||
|
"pre-commit": "lint-staged"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"lint-staged": {
|
||||||
|
"src/**/*.{.vue,.js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts}": [
|
||||||
|
"prettier --write",
|
||||||
|
"eslint --fix"
|
||||||
|
]
|
||||||
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=14.21.0",
|
"node": ">=18.0.0",
|
||||||
"npm": ">=6.14.17"
|
"npm": ">=8.6.0"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -37,6 +37,7 @@ export default {
|
|||||||
},
|
},
|
||||||
watch: {
|
watch: {
|
||||||
skinConf(value) {
|
skinConf(value) {
|
||||||
|
console.log(11111111)
|
||||||
this.setSkin(value)
|
this.setSkin(value)
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
Loading…
Reference in New Issue
Block a user