16 changed files with 0 additions and 2314 deletions
Binary file not shown.
@ -1 +0,0 @@ |
|||||
open_basedir=/www/wwwroot/hnhbty.cn/:/tmp/ |
|
||||
@ -1,980 +0,0 @@ |
|||||
# 智慧教务系统 API 接口文档 |
|
||||
|
|
||||
## 📋 接口概述 |
|
||||
|
|
||||
### 基础信息 |
|
||||
- **API Base URL**: `http://localhost:20080` |
|
||||
- **接口版本**: v1.0 |
|
||||
- **数据格式**: JSON |
|
||||
- **字符编码**: UTF-8 |
|
||||
- **认证方式**: JWT Token |
|
||||
|
|
||||
### 接口前缀 |
|
||||
- **管理端接口**: `/adminapi/*` |
|
||||
- **客户端接口**: `/api/*` |
|
||||
|
|
||||
### 统一响应格式 |
|
||||
```json |
|
||||
{ |
|
||||
"code": 1, // 状态码:1-成功,0-失败 |
|
||||
"msg": "操作成功", // 响应消息 |
|
||||
"data": {} // 响应数据 |
|
||||
} |
|
||||
``` |
|
||||
|
|
||||
### 状态码说明 |
|
||||
| 状态码 | 说明 | 描述 | |
|
||||
|--------|------|------| |
|
||||
| 1 | 成功 | 请求处理成功 | |
|
||||
| 0 | 失败 | 请求处理失败 | |
|
||||
| 401 | 未授权 | Token无效或已过期 | |
|
||||
| 403 | 禁止访问 | 权限不足 | |
|
||||
| 404 | 未找到 | 资源不存在 | |
|
||||
| 500 | 服务器错误 | 内部服务器错误 | |
|
||||
|
|
||||
## 🔐 认证机制 |
|
||||
|
|
||||
### JWT Token 认证 |
|
||||
所有需要认证的接口都需要在请求头中携带Token: |
|
||||
|
|
||||
```http |
|
||||
Authorization: Bearer {token} |
|
||||
``` |
|
||||
|
|
||||
### Token 获取 |
|
||||
通过登录接口获取Token,Token有效期为24小时。 |
|
||||
|
|
||||
### Token 刷新 |
|
||||
当Token即将过期时,可通过刷新接口获取新Token。 |
|
||||
|
|
||||
## 🔑 管理端接口 (/adminapi) |
|
||||
|
|
||||
### 认证相关 |
|
||||
|
|
||||
#### 1. 管理员登录 |
|
||||
**接口地址**: `POST /adminapi/login/login` |
|
||||
|
|
||||
**请求参数**: |
|
||||
```json |
|
||||
{ |
|
||||
"username": "admin", // 用户名 |
|
||||
"password": "123456" // 密码 |
|
||||
} |
|
||||
``` |
|
||||
|
|
||||
**响应示例**: |
|
||||
```json |
|
||||
{ |
|
||||
"code": 1, |
|
||||
"msg": "登录成功", |
|
||||
"data": { |
|
||||
"token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9...", |
|
||||
"expire": 86400, |
|
||||
"user_info": { |
|
||||
"uid": 1, |
|
||||
"username": "admin", |
|
||||
"nickname": "超级管理员", |
|
||||
"avatar": "", |
|
||||
"role_ids": [1], |
|
||||
"permissions": ["*"] |
|
||||
} |
|
||||
} |
|
||||
} |
|
||||
``` |
|
||||
|
|
||||
**curl 示例**: |
|
||||
```bash |
|
||||
curl -X POST http://localhost:20080/adminapi/login/login \ |
|
||||
-H "Content-Type: application/json" \ |
|
||||
-d '{"username":"admin","password":"123456"}' |
|
||||
``` |
|
||||
|
|
||||
#### 2. 获取用户信息 |
|
||||
**接口地址**: `GET /adminapi/user/info` |
|
||||
|
|
||||
**请求头**: |
|
||||
```http |
|
||||
Authorization: Bearer {token} |
|
||||
``` |
|
||||
|
|
||||
**响应示例**: |
|
||||
```json |
|
||||
{ |
|
||||
"code": 1, |
|
||||
"msg": "获取成功", |
|
||||
"data": { |
|
||||
"uid": 1, |
|
||||
"username": "admin", |
|
||||
"nickname": "超级管理员", |
|
||||
"avatar": "", |
|
||||
"role_ids": [1], |
|
||||
"permissions": ["*"], |
|
||||
"campus_ids": [0] // 0表示所有校区 |
|
||||
} |
|
||||
} |
|
||||
``` |
|
||||
|
|
||||
#### 3. 退出登录 |
|
||||
**接口地址**: `POST /adminapi/login/logout` |
|
||||
|
|
||||
**请求头**: |
|
||||
```http |
|
||||
Authorization: Bearer {token} |
|
||||
``` |
|
||||
|
|
||||
**响应示例**: |
|
||||
```json |
|
||||
{ |
|
||||
"code": 1, |
|
||||
"msg": "退出成功", |
|
||||
"data": null |
|
||||
} |
|
||||
``` |
|
||||
|
|
||||
### 校区管理 |
|
||||
|
|
||||
#### 1. 校区列表 |
|
||||
**接口地址**: `GET /adminapi/campus/list` |
|
||||
|
|
||||
**请求参数**: |
|
||||
``` |
|
||||
page: 1 // 页码 |
|
||||
limit: 20 // 每页数量 |
|
||||
keyword: "" // 搜索关键词 |
|
||||
status: "" // 状态筛选:1-启用,0-禁用 |
|
||||
``` |
|
||||
|
|
||||
**响应示例**: |
|
||||
```json |
|
||||
{ |
|
||||
"code": 1, |
|
||||
"msg": "获取成功", |
|
||||
"data": { |
|
||||
"list": [ |
|
||||
{ |
|
||||
"id": 1, |
|
||||
"campus_name": "总校区", |
|
||||
"address": "北京市朝阳区xxx路xxx号", |
|
||||
"phone": "010-12345678", |
|
||||
"contact_person": "张三", |
|
||||
"status": 1, |
|
||||
"created_at": "2025-01-01 10:00:00", |
|
||||
"updated_at": "2025-01-14 15:30:00" |
|
||||
} |
|
||||
], |
|
||||
"total": 1, |
|
||||
"page": 1, |
|
||||
"limit": 20 |
|
||||
} |
|
||||
} |
|
||||
``` |
|
||||
|
|
||||
#### 2. 新增校区 |
|
||||
**接口地址**: `POST /adminapi/campus/add` |
|
||||
|
|
||||
**请求参数**: |
|
||||
```json |
|
||||
{ |
|
||||
"campus_name": "新校区", |
|
||||
"address": "北京市海淀区xxx路xxx号", |
|
||||
"phone": "010-87654321", |
|
||||
"contact_person": "李四", |
|
||||
"status": 1, |
|
||||
"remark": "备注信息" |
|
||||
} |
|
||||
``` |
|
||||
|
|
||||
**响应示例**: |
|
||||
```json |
|
||||
{ |
|
||||
"code": 1, |
|
||||
"msg": "添加成功", |
|
||||
"data": { |
|
||||
"id": 2 |
|
||||
} |
|
||||
} |
|
||||
``` |
|
||||
|
|
||||
#### 3. 编辑校区 |
|
||||
**接口地址**: `PUT /adminapi/campus/edit/{id}` |
|
||||
|
|
||||
**请求参数**: |
|
||||
```json |
|
||||
{ |
|
||||
"campus_name": "更新后的校区名称", |
|
||||
"address": "更新后的地址", |
|
||||
"phone": "010-11111111", |
|
||||
"contact_person": "王五", |
|
||||
"status": 1, |
|
||||
"remark": "更新后的备注" |
|
||||
} |
|
||||
``` |
|
||||
|
|
||||
#### 4. 删除校区 |
|
||||
**接口地址**: `DELETE /adminapi/campus/delete/{id}` |
|
||||
|
|
||||
**响应示例**: |
|
||||
```json |
|
||||
{ |
|
||||
"code": 1, |
|
||||
"msg": "删除成功", |
|
||||
"data": null |
|
||||
} |
|
||||
``` |
|
||||
|
|
||||
### 人员管理 |
|
||||
|
|
||||
#### 1. 员工列表 |
|
||||
**接口地址**: `GET /adminapi/personnel/list` |
|
||||
|
|
||||
**请求参数**: |
|
||||
``` |
|
||||
page: 1 |
|
||||
limit: 20 |
|
||||
keyword: "" // 姓名或工号搜索 |
|
||||
campus_id: "" // 校区筛选 |
|
||||
dept_id: "" // 部门筛选 |
|
||||
status: "" // 状态筛选 |
|
||||
``` |
|
||||
|
|
||||
**响应示例**: |
|
||||
```json |
|
||||
{ |
|
||||
"code": 1, |
|
||||
"msg": "获取成功", |
|
||||
"data": { |
|
||||
"list": [ |
|
||||
{ |
|
||||
"id": 51, |
|
||||
"name": "花花", |
|
||||
"employee_id": "EMP001", |
|
||||
"phone": "13800138000", |
|
||||
"email": "huahua@example.com", |
|
||||
"dept_name": "教练部", |
|
||||
"campus_name": "总校区", |
|
||||
"role_type": 10, |
|
||||
"role_name": "校长", |
|
||||
"status": 1, |
|
||||
"created_at": "2025-01-01 10:00:00" |
|
||||
} |
|
||||
], |
|
||||
"total": 1, |
|
||||
"page": 1, |
|
||||
"limit": 20 |
|
||||
} |
|
||||
} |
|
||||
``` |
|
||||
|
|
||||
#### 2. 新增员工 |
|
||||
**接口地址**: `POST /adminapi/personnel/add` |
|
||||
|
|
||||
**请求参数**: |
|
||||
```json |
|
||||
{ |
|
||||
"name": "新员工", |
|
||||
"employee_id": "EMP002", |
|
||||
"phone": "13900139000", |
|
||||
"email": "newstaff@example.com", |
|
||||
"dept_id": 2, |
|
||||
"campus_ids": [1, 2], |
|
||||
"role_type": 5, |
|
||||
"password": "123456", |
|
||||
"status": 1 |
|
||||
} |
|
||||
``` |
|
||||
|
|
||||
#### 3. 学员列表 |
|
||||
**接口地址**: `GET /adminapi/student/list` |
|
||||
|
|
||||
**请求参数**: |
|
||||
``` |
|
||||
page: 1 |
|
||||
limit: 20 |
|
||||
keyword: "" // 姓名或学号搜索 |
|
||||
campus_id: "" // 校区筛选 |
|
||||
class_id: "" // 班级筛选 |
|
||||
status: "" // 状态筛选 |
|
||||
``` |
|
||||
|
|
||||
**响应示例**: |
|
||||
```json |
|
||||
{ |
|
||||
"code": 1, |
|
||||
"msg": "获取成功", |
|
||||
"data": { |
|
||||
"list": [ |
|
||||
{ |
|
||||
"id": 1, |
|
||||
"student_name": "小明", |
|
||||
"student_no": "STU001", |
|
||||
"gender": 1, |
|
||||
"age": 8, |
|
||||
"phone": "13700137000", |
|
||||
"parent_name": "明爸爸", |
|
||||
"parent_phone": "13600136000", |
|
||||
"campus_name": "总校区", |
|
||||
"class_name": "跳绳初级班", |
|
||||
"status": 1, |
|
||||
"created_at": "2025-01-01 10:00:00" |
|
||||
} |
|
||||
], |
|
||||
"total": 1, |
|
||||
"page": 1, |
|
||||
"limit": 20 |
|
||||
} |
|
||||
} |
|
||||
``` |
|
||||
|
|
||||
### 课程管理 |
|
||||
|
|
||||
#### 1. 课程列表 |
|
||||
**接口地址**: `GET /adminapi/course/list` |
|
||||
|
|
||||
**请求参数**: |
|
||||
``` |
|
||||
page: 1 |
|
||||
limit: 20 |
|
||||
keyword: "" // 课程名称搜索 |
|
||||
course_type: "" // 课程类型筛选 |
|
||||
status: "" // 状态筛选 |
|
||||
``` |
|
||||
|
|
||||
**响应示例**: |
|
||||
```json |
|
||||
{ |
|
||||
"code": 1, |
|
||||
"msg": "获取成功", |
|
||||
"data": { |
|
||||
"list": [ |
|
||||
{ |
|
||||
"id": 1, |
|
||||
"course_name": "跳绳基础课程", |
|
||||
"course_type": "跳绳", |
|
||||
"duration": 60, |
|
||||
"session_count": 12, |
|
||||
"single_session_count": 1, |
|
||||
"price": 1200.00, |
|
||||
"age_range": "6-12岁", |
|
||||
"description": "适合初学者的跳绳课程", |
|
||||
"cover_image": "/uploads/course/cover1.jpg", |
|
||||
"status": 1, |
|
||||
"created_at": "2025-01-01 10:00:00" |
|
||||
} |
|
||||
], |
|
||||
"total": 1, |
|
||||
"page": 1, |
|
||||
"limit": 20 |
|
||||
} |
|
||||
} |
|
||||
``` |
|
||||
|
|
||||
#### 2. 新增课程 |
|
||||
**接口地址**: `POST /adminapi/course/add` |
|
||||
|
|
||||
**请求参数**: |
|
||||
```json |
|
||||
{ |
|
||||
"course_name": "新课程", |
|
||||
"course_type": "篮球", |
|
||||
"duration": 90, |
|
||||
"session_count": 16, |
|
||||
"single_session_count": 1, |
|
||||
"price": 1600.00, |
|
||||
"age_range": "8-16岁", |
|
||||
"description": "篮球基础技能训练", |
|
||||
"cover_image": "/uploads/course/cover2.jpg", |
|
||||
"status": 1 |
|
||||
} |
|
||||
``` |
|
||||
|
|
||||
### 班级管理 |
|
||||
|
|
||||
#### 1. 班级列表 |
|
||||
**接口地址**: `GET /adminapi/class/list` |
|
||||
|
|
||||
**请求参数**: |
|
||||
``` |
|
||||
page: 1 |
|
||||
limit: 20 |
|
||||
keyword: "" // 班级名称搜索 |
|
||||
campus_id: "" // 校区筛选 |
|
||||
course_id: "" // 课程筛选 |
|
||||
status: "" // 状态筛选 |
|
||||
``` |
|
||||
|
|
||||
**响应示例**: |
|
||||
```json |
|
||||
{ |
|
||||
"code": 1, |
|
||||
"msg": "获取成功", |
|
||||
"data": { |
|
||||
"list": [ |
|
||||
{ |
|
||||
"id": 1, |
|
||||
"class_name": "跳绳初级班A", |
|
||||
"campus_name": "总校区", |
|
||||
"course_name": "跳绳基础课程", |
|
||||
"head_coach": "张教练", |
|
||||
"assistant_coach": "李助教", |
|
||||
"capacity": 15, |
|
||||
"current_count": 12, |
|
||||
"status": 1, |
|
||||
"created_at": "2025-01-01 10:00:00" |
|
||||
} |
|
||||
], |
|
||||
"total": 1, |
|
||||
"page": 1, |
|
||||
"limit": 20 |
|
||||
} |
|
||||
} |
|
||||
``` |
|
||||
|
|
||||
#### 2. 新增班级 |
|
||||
**接口地址**: `POST /adminapi/class/add` |
|
||||
|
|
||||
**请求参数**: |
|
||||
```json |
|
||||
{ |
|
||||
"class_name": "新班级", |
|
||||
"campus_id": 1, |
|
||||
"course_id": 1, |
|
||||
"head_coach": 51, |
|
||||
"assistant_coach": 52, |
|
||||
"capacity": 20, |
|
||||
"status": 1, |
|
||||
"remark": "备注信息" |
|
||||
} |
|
||||
``` |
|
||||
|
|
||||
### 排课系统 |
|
||||
|
|
||||
#### 1. 课程安排列表 |
|
||||
**接口地址**: `GET /adminapi/schedule/list` |
|
||||
|
|
||||
**请求参数**: |
|
||||
``` |
|
||||
page: 1 |
|
||||
limit: 20 |
|
||||
date_start: "2025-01-01" // 开始日期 |
|
||||
date_end: "2025-01-31" // 结束日期 |
|
||||
campus_id: "" // 校区筛选 |
|
||||
coach_id: "" // 教练筛选 |
|
||||
venue_id: "" // 场地筛选 |
|
||||
``` |
|
||||
|
|
||||
**响应示例**: |
|
||||
```json |
|
||||
{ |
|
||||
"code": 1, |
|
||||
"msg": "获取成功", |
|
||||
"data": { |
|
||||
"list": [ |
|
||||
{ |
|
||||
"id": 1, |
|
||||
"course_name": "跳绳基础课程", |
|
||||
"class_name": "跳绳初级班A", |
|
||||
"coach_name": "张教练", |
|
||||
"venue_name": "训练场地A", |
|
||||
"course_date": "2025-01-15", |
|
||||
"time_slot": "09:00-10:00", |
|
||||
"available_capacity": 15, |
|
||||
"booked_count": 12, |
|
||||
"status": 1, |
|
||||
"remarks": "正常上课" |
|
||||
} |
|
||||
], |
|
||||
"total": 1, |
|
||||
"page": 1, |
|
||||
"limit": 20 |
|
||||
} |
|
||||
} |
|
||||
``` |
|
||||
|
|
||||
#### 2. 新增课程安排 |
|
||||
**接口地址**: `POST /adminapi/schedule/add` |
|
||||
|
|
||||
**请求参数**: |
|
||||
```json |
|
||||
{ |
|
||||
"course_id": 1, |
|
||||
"class_id": 1, |
|
||||
"coach_id": 51, |
|
||||
"venue_id": 1, |
|
||||
"course_date": "2025-01-15", |
|
||||
"time_slot": "09:00-10:00", |
|
||||
"available_capacity": 15, |
|
||||
"remarks": "正常上课" |
|
||||
} |
|
||||
``` |
|
||||
|
|
||||
### 财务管理 |
|
||||
|
|
||||
#### 1. 收费记录列表 |
|
||||
**接口地址**: `GET /adminapi/finance/payment/list` |
|
||||
|
|
||||
**请求参数**: |
|
||||
``` |
|
||||
page: 1 |
|
||||
limit: 20 |
|
||||
date_start: "2025-01-01" |
|
||||
date_end: "2025-01-31" |
|
||||
campus_id: "" |
|
||||
student_id: "" |
|
||||
payment_type: "" // 支付方式 |
|
||||
status: "" // 状态 |
|
||||
``` |
|
||||
|
|
||||
**响应示例**: |
|
||||
```json |
|
||||
{ |
|
||||
"code": 1, |
|
||||
"msg": "获取成功", |
|
||||
"data": { |
|
||||
"list": [ |
|
||||
{ |
|
||||
"id": 1, |
|
||||
"student_name": "小明", |
|
||||
"course_name": "跳绳基础课程", |
|
||||
"amount": 1200.00, |
|
||||
"payment_type": "微信支付", |
|
||||
"payment_time": "2025-01-15 10:30:00", |
|
||||
"operator": "收费员", |
|
||||
"status": 1, |
|
||||
"remark": "学费" |
|
||||
} |
|
||||
], |
|
||||
"total": 1, |
|
||||
"page": 1, |
|
||||
"limit": 20, |
|
||||
"summary": { |
|
||||
"total_amount": 1200.00, |
|
||||
"count": 1 |
|
||||
} |
|
||||
} |
|
||||
} |
|
||||
``` |
|
||||
|
|
||||
#### 2. 新增收费记录 |
|
||||
**接口地址**: `POST /adminapi/finance/payment/add` |
|
||||
|
|
||||
**请求参数**: |
|
||||
```json |
|
||||
{ |
|
||||
"student_id": 1, |
|
||||
"course_id": 1, |
|
||||
"amount": 1200.00, |
|
||||
"payment_type": "微信支付", |
|
||||
"payment_time": "2025-01-15 10:30:00", |
|
||||
"remark": "学费" |
|
||||
} |
|
||||
``` |
|
||||
|
|
||||
### 数据统计 |
|
||||
|
|
||||
#### 1. 数据看板 |
|
||||
**接口地址**: `GET /adminapi/statistics/dashboard` |
|
||||
|
|
||||
**请求参数**: |
|
||||
``` |
|
||||
date_start: "2025-01-01" |
|
||||
date_end: "2025-01-31" |
|
||||
campus_id: "" // 校区筛选,空表示所有校区 |
|
||||
``` |
|
||||
|
|
||||
**响应示例**: |
|
||||
```json |
|
||||
{ |
|
||||
"code": 1, |
|
||||
"msg": "获取成功", |
|
||||
"data": { |
|
||||
"today": { |
|
||||
"income": 5600.00, |
|
||||
"new_students": 3, |
|
||||
"classes": 12, |
|
||||
"attendance_rate": 95.5 |
|
||||
}, |
|
||||
"month": { |
|
||||
"income": 156000.00, |
|
||||
"new_students": 45, |
|
||||
"total_students": 320, |
|
||||
"total_classes": 280 |
|
||||
}, |
|
||||
"trends": { |
|
||||
"income_trend": [1200, 1500, 1800, 2100, 1900, 2200, 2400], |
|
||||
"student_trend": [2, 3, 1, 4, 2, 3, 5], |
|
||||
"attendance_trend": [92.5, 94.2, 96.1, 93.8, 95.5, 97.2, 95.8] |
|
||||
} |
|
||||
} |
|
||||
} |
|
||||
``` |
|
||||
|
|
||||
#### 2. 收入统计 |
|
||||
**接口地址**: `GET /adminapi/statistics/income` |
|
||||
|
|
||||
**请求参数**: |
|
||||
``` |
|
||||
date_start: "2025-01-01" |
|
||||
date_end: "2025-01-31" |
|
||||
campus_id: "" |
|
||||
group_by: "day" // 分组方式:day/week/month |
|
||||
``` |
|
||||
|
|
||||
**响应示例**: |
|
||||
```json |
|
||||
{ |
|
||||
"code": 1, |
|
||||
"msg": "获取成功", |
|
||||
"data": { |
|
||||
"total_amount": 156000.00, |
|
||||
"chart_data": [ |
|
||||
{ |
|
||||
"date": "2025-01-01", |
|
||||
"amount": 5200.00, |
|
||||
"count": 4 |
|
||||
}, |
|
||||
{ |
|
||||
"date": "2025-01-02", |
|
||||
"amount": 6800.00, |
|
||||
"count": 5 |
|
||||
} |
|
||||
], |
|
||||
"summary": { |
|
||||
"avg_daily": 5200.00, |
|
||||
"max_daily": 8900.00, |
|
||||
"min_daily": 2100.00 |
|
||||
} |
|
||||
} |
|
||||
} |
|
||||
``` |
|
||||
|
|
||||
## 📱 客户端接口 (/api) |
|
||||
|
|
||||
### 员工端认证 |
|
||||
|
|
||||
#### 1. 员工登录 |
|
||||
**接口地址**: `POST /api/staff/login` |
|
||||
|
|
||||
**请求参数**: |
|
||||
```json |
|
||||
{ |
|
||||
"employee_id": "EMP001", // 工号 |
|
||||
"password": "123456" // 密码 |
|
||||
} |
|
||||
``` |
|
||||
|
|
||||
**响应示例**: |
|
||||
```json |
|
||||
{ |
|
||||
"code": 1, |
|
||||
"msg": "登录成功", |
|
||||
"data": { |
|
||||
"token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9...", |
|
||||
"expire": 86400, |
|
||||
"user_info": { |
|
||||
"user_id": 51, |
|
||||
"name": "花花", |
|
||||
"employee_id": "EMP001", |
|
||||
"role_type": 10, |
|
||||
"role_name": "校长", |
|
||||
"campus_ids": [1, 2], |
|
||||
"avatar": "/uploads/avatar/51.jpg" |
|
||||
} |
|
||||
} |
|
||||
} |
|
||||
``` |
|
||||
|
|
||||
#### 2. 获取员工信息 |
|
||||
**接口地址**: `GET /api/staff/info` |
|
||||
|
|
||||
**请求头**: |
|
||||
```http |
|
||||
Authorization: Bearer {token} |
|
||||
``` |
|
||||
|
|
||||
**响应示例**: |
|
||||
```json |
|
||||
{ |
|
||||
"code": 1, |
|
||||
"msg": "获取成功", |
|
||||
"data": { |
|
||||
"user_id": 51, |
|
||||
"name": "花花", |
|
||||
"employee_id": "EMP001", |
|
||||
"phone": "13800138000", |
|
||||
"email": "huahua@example.com", |
|
||||
"role_type": 10, |
|
||||
"role_name": "校长", |
|
||||
"dept_name": "管理部", |
|
||||
"campus_ids": [1, 2], |
|
||||
"campus_names": ["总校区", "分校区A"], |
|
||||
"avatar": "/uploads/avatar/51.jpg" |
|
||||
} |
|
||||
} |
|
||||
``` |
|
||||
|
|
||||
### 员工端业务功能 |
|
||||
|
|
||||
#### 1. 我的课程安排 |
|
||||
**接口地址**: `GET /api/staff/schedule` |
|
||||
|
|
||||
**请求参数**: |
|
||||
``` |
|
||||
date: "2025-01-15" // 查询日期,默认今天 |
|
||||
``` |
|
||||
|
|
||||
**响应示例**: |
|
||||
```json |
|
||||
{ |
|
||||
"code": 1, |
|
||||
"msg": "获取成功", |
|
||||
"data": [ |
|
||||
{ |
|
||||
"id": 1, |
|
||||
"course_name": "跳绳基础课程", |
|
||||
"class_name": "跳绳初级班A", |
|
||||
"venue_name": "训练场地A", |
|
||||
"time_slot": "09:00-10:00", |
|
||||
"student_count": 12, |
|
||||
"status": 1, |
|
||||
"remarks": "正常上课" |
|
||||
} |
|
||||
] |
|
||||
} |
|
||||
``` |
|
||||
|
|
||||
#### 2. 班级学员列表 |
|
||||
**接口地址**: `GET /api/staff/class/{class_id}/students` |
|
||||
|
|
||||
**响应示例**: |
|
||||
```json |
|
||||
{ |
|
||||
"code": 1, |
|
||||
"msg": "获取成功", |
|
||||
"data": { |
|
||||
"class_info": { |
|
||||
"id": 1, |
|
||||
"class_name": "跳绳初级班A", |
|
||||
"course_name": "跳绳基础课程", |
|
||||
"capacity": 15, |
|
||||
"current_count": 12 |
|
||||
}, |
|
||||
"students": [ |
|
||||
{ |
|
||||
"id": 1, |
|
||||
"student_name": "小明", |
|
||||
"student_no": "STU001", |
|
||||
"gender": 1, |
|
||||
"age": 8, |
|
||||
"parent_name": "明爸爸", |
|
||||
"parent_phone": "13600136000", |
|
||||
"avatar": "/uploads/student/1.jpg", |
|
||||
"status": 1 |
|
||||
} |
|
||||
] |
|
||||
} |
|
||||
} |
|
||||
``` |
|
||||
|
|
||||
#### 3. 考勤打卡 |
|
||||
**接口地址**: `POST /api/staff/attendance/checkin` |
|
||||
|
|
||||
**请求参数**: |
|
||||
```json |
|
||||
{ |
|
||||
"type": 1, // 打卡类型:1-上班,2-下班 |
|
||||
"latitude": 39.9042, // 纬度 |
|
||||
"longitude": 116.4074, // 经度 |
|
||||
"address": "北京市朝阳区xxx路xxx号", |
|
||||
"remark": "正常打卡" |
|
||||
} |
|
||||
``` |
|
||||
|
|
||||
**响应示例**: |
|
||||
```json |
|
||||
{ |
|
||||
"code": 1, |
|
||||
"msg": "打卡成功", |
|
||||
"data": { |
|
||||
"id": 1, |
|
||||
"checkin_time": "2025-01-15 08:30:00", |
|
||||
"type": 1, |
|
||||
"status": 1 |
|
||||
} |
|
||||
} |
|
||||
``` |
|
||||
|
|
||||
### 学员端功能 |
|
||||
|
|
||||
#### 1. 学员登录 |
|
||||
**接口地址**: `POST /api/student/login` |
|
||||
|
|
||||
**请求参数**: |
|
||||
```json |
|
||||
{ |
|
||||
"phone": "13700137000", // 手机号 |
|
||||
"code": "123456" // 验证码 |
|
||||
} |
|
||||
``` |
|
||||
|
|
||||
#### 2. 我的课程 |
|
||||
**接口地址**: `GET /api/student/courses` |
|
||||
|
|
||||
**响应示例**: |
|
||||
```json |
|
||||
{ |
|
||||
"code": 1, |
|
||||
"msg": "获取成功", |
|
||||
"data": [ |
|
||||
{ |
|
||||
"id": 1, |
|
||||
"course_name": "跳绳基础课程", |
|
||||
"class_name": "跳绳初级班A", |
|
||||
"coach_name": "张教练", |
|
||||
"total_sessions": 12, |
|
||||
"completed_sessions": 8, |
|
||||
"remaining_sessions": 4, |
|
||||
"next_class_time": "2025-01-16 09:00:00", |
|
||||
"venue_name": "训练场地A" |
|
||||
} |
|
||||
] |
|
||||
} |
|
||||
``` |
|
||||
|
|
||||
#### 3. 课程预约 |
|
||||
**接口地址**: `POST /api/student/booking` |
|
||||
|
|
||||
**请求参数**: |
|
||||
```json |
|
||||
{ |
|
||||
"schedule_id": 1, // 课程安排ID |
|
||||
"remark": "正常预约" |
|
||||
} |
|
||||
``` |
|
||||
|
|
||||
## 🔧 开发调试 |
|
||||
|
|
||||
### 环境配置 |
|
||||
```bash |
|
||||
# 启动开发环境 |
|
||||
./start.sh |
|
||||
|
|
||||
# 查看服务状态 |
|
||||
docker ps |
|
||||
|
|
||||
# 查看API日志 |
|
||||
docker-compose logs -f php |
|
||||
``` |
|
||||
|
|
||||
### 测试工具 |
|
||||
|
|
||||
#### Postman 集合 |
|
||||
可以导入以下Postman集合进行接口测试: |
|
||||
|
|
||||
```json |
|
||||
{ |
|
||||
"info": { |
|
||||
"name": "智慧教务系统API", |
|
||||
"schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json" |
|
||||
}, |
|
||||
"variable": [ |
|
||||
{ |
|
||||
"key": "base_url", |
|
||||
"value": "http://localhost:20080" |
|
||||
}, |
|
||||
{ |
|
||||
"key": "admin_token", |
|
||||
"value": "" |
|
||||
}, |
|
||||
{ |
|
||||
"key": "staff_token", |
|
||||
"value": "" |
|
||||
} |
|
||||
] |
|
||||
} |
|
||||
``` |
|
||||
|
|
||||
#### curl 测试脚本 |
|
||||
```bash |
|
||||
#!/bin/bash |
|
||||
|
|
||||
# 设置基础URL |
|
||||
BASE_URL="http://localhost:20080" |
|
||||
|
|
||||
# 管理员登录 |
|
||||
echo "=== 管理员登录 ===" |
|
||||
ADMIN_TOKEN=$(curl -s -X POST $BASE_URL/adminapi/login/login \ |
|
||||
-H "Content-Type: application/json" \ |
|
||||
-d '{"username":"admin","password":"123456"}' | \ |
|
||||
jq -r '.data.token') |
|
||||
|
|
||||
echo "Admin Token: $ADMIN_TOKEN" |
|
||||
|
|
||||
# 获取校区列表 |
|
||||
echo "=== 获取校区列表 ===" |
|
||||
curl -s -H "Authorization: Bearer $ADMIN_TOKEN" \ |
|
||||
"$BASE_URL/adminapi/campus/list" | jq |
|
||||
|
|
||||
# 获取员工列表 |
|
||||
echo "=== 获取员工列表 ===" |
|
||||
curl -s -H "Authorization: Bearer $ADMIN_TOKEN" \ |
|
||||
"$BASE_URL/adminapi/personnel/list" | jq |
|
||||
``` |
|
||||
|
|
||||
### 错误处理 |
|
||||
|
|
||||
#### 常见错误码 |
|
||||
| 错误码 | 错误信息 | 解决方案 | |
|
||||
|--------|----------|----------| |
|
||||
| 10001 | 参数错误 | 检查请求参数格式和必填字段 | |
|
||||
| 10002 | Token无效 | 重新登录获取新Token | |
|
||||
| 10003 | 权限不足 | 检查用户角色权限 | |
|
||||
| 10004 | 数据不存在 | 确认请求的资源ID是否正确 | |
|
||||
| 10005 | 数据库错误 | 检查数据库连接和SQL语句 | |
|
||||
|
|
||||
#### 调试技巧 |
|
||||
1. **查看详细错误信息** |
|
||||
```bash |
|
||||
# 开启调试模式 |
|
||||
echo "APP_DEBUG=true" >> niucloud/.env |
|
||||
|
|
||||
# 重启PHP服务 |
|
||||
docker-compose restart php |
|
||||
``` |
|
||||
|
|
||||
2. **查看SQL执行日志** |
|
||||
```bash |
|
||||
# 进入MySQL容器 |
|
||||
docker exec -it niucloud_mysql mysql -u niucloud -pniucloud123 |
|
||||
|
|
||||
# 开启查询日志 |
|
||||
SET GLOBAL general_log = 'ON'; |
|
||||
SET GLOBAL general_log_file = '/var/log/mysql/query.log'; |
|
||||
``` |
|
||||
|
|
||||
3. **API响应时间监控** |
|
||||
```bash |
|
||||
# 使用curl测试响应时间 |
|
||||
curl -w "@curl-format.txt" -o /dev/null -s "http://localhost:20080/adminapi/user/info" |
|
||||
``` |
|
||||
|
|
||||
## 📋 更新日志 |
|
||||
|
|
||||
### v1.0.0 (2025-01-14) |
|
||||
- 初始版本发布 |
|
||||
- 完成基础认证功能 |
|
||||
- 实现校区管理接口 |
|
||||
- 实现人员管理接口 |
|
||||
- 实现课程管理接口 |
|
||||
- 实现班级管理接口 |
|
||||
- 实现排课系统接口 |
|
||||
- 实现财务管理接口 |
|
||||
- 实现数据统计接口 |
|
||||
- 完成员工端基础功能 |
|
||||
- 完成学员端基础功能 |
|
||||
|
|
||||
--- |
|
||||
|
|
||||
**文档维护**: 开发团队 |
|
||||
**最后更新**: 2025-01-14 |
|
||||
**文档版本**: v1.0 |
|
||||
**联系方式**: [技术支持邮箱] |
|
||||
@ -1,638 +0,0 @@ |
|||||
| 1月汇总数据 | | | | 2月汇总数据 | | | | 3月汇总数据 | | | | 4月汇总数据 | | | | 5月汇总数据 | | | | 6月汇总数据 | | | | 7月汇总数据 | | | | 8月汇总数据 | | | | |
|
||||
|--------|-----------|------|----|--------|-----------|------|----|--------|-----------|------|----|--------|-----------|------|----|--------|-----------|------|----|--------|-----------|------|----|--------|-----------|------|----|--------|-----------|------|--------| |
|
||||
| 时限 | 渠道 | 具体内容 | 合计 | 时限 | 渠道 | 具体内容 | 合计 | 时限 | 渠道 | 具体内容 | 合计 | 时限 | 渠道 | 具体内容 | 合计 | 时限 | 渠道 | 具体内容 | 合计 | 时限 | 渠道 | 具体内容 | 合计 | 时限 | 渠道 | 具体内容 | 合计 | 时限 | 渠道 | 具体内容 | 合计 | |
|
||||
| 当月 | 体验包(地推)一访 | 名单数 | | 当月 | 体验包(地推)一访 | 名单数 | | 当月 | 体验包(地推)一访 | 名单数 | | 当月 | 体验包(地推)一访 | 名单数 | | 当月 | 体验包(地推)一访 | 名单数 | | 当月 | 体验包(地推)一访 | 名单数 | | 当月 | 体验包(地推)一访 | 名单数 | | 当月 | 体验包(地推)一访 | 名单数 | | |
|
||||
| | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | |
|
||||
| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | |
|
||||
| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | |
|
||||
| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | |
|
||||
| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | |
|
||||
| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | |
|
||||
| | 体验包(地推)二访 | 邀约数 | | | 体验包(地推)二访 | 邀约数 | | | 体验包(地推)二访 | 邀约数 | | | 体验包(地推)二访 | 邀约数 | | | 体验包(地推)二访 | 邀约数 | | | 体验包(地推)二访 | 邀约数 | | | 体验包(地推)二访 | 邀约数 | | | 体验包(地推)二访 | 邀约数 | | |
|
||||
| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | |
|
||||
| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | |
|
||||
| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | |
|
||||
| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | |
|
||||
| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | |
|
||||
| | 体验包(活动)一访 | 名单数 | | | 体验包(活动)一访 | 名单数 | | | 体验包(活动)一访 | 名单数 | | | 体验包(活动)一访 | 名单数 | | | 体验包(活动)一访 | 名单数 | | | 体验包(活动)一访 | 名单数 | | | 体验包(活动)一访 | 名单数 | | | 体验包(活动)一访 | 名单数 | | |
|
||||
| | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | |
|
||||
| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | |
|
||||
| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | |
|
||||
| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | |
|
||||
| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | |
|
||||
| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | |
|
||||
| | 体验包(活动)二访 | 邀约数 | | | 体验包(活动)二访 | 邀约数 | | | 体验包(活动)二访 | 邀约数 | | | 体验包(活动)二访 | 邀约数 | | | 体验包(活动)二访 | 邀约数 | | | 体验包(活动)二访 | 邀约数 | | | 体验包(活动)二访 | 邀约数 | | | 体验包(活动)二访 | 邀约数 | | |
|
||||
| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | |
|
||||
| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | |
|
||||
| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | |
|
||||
| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | |
|
||||
| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | |
|
||||
| | 转介绍 | 名单数 | | | 转介绍 | 名单数 | | | 转介绍 | 名单数 | | | 转介绍 | 名单数 | | | 转介绍 | 名单数 | | | 转介绍 | 名单数 | | | 转介绍 | 名单数 | | | 转介绍 | 名单数 | | |
|
||||
| | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | |
|
||||
| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | |
|
||||
| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | |
|
||||
| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | |
|
||||
| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | |
|
||||
| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | |
|
||||
| | 上门(一访) | 名单数 | | | 上门(一访) | 名单数 | | | 上门(一访) | 名单数 | | | 上门(一访) | 名单数 | | | 上门(一访) | 名单数 | | | 上门(一访) | 名单数 | | | 上门(一访) | 名单数 | | | 上门(一访) | 名单数 | | |
|
||||
| | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | |
|
||||
| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | |
|
||||
| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | |
|
||||
| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | |
|
||||
| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | |
|
||||
| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | |
|
||||
| | 上门(二访) | 邀约数 | | | 上门(二访) | 邀约数 | | | 上门(二访) | 邀约数 | | | 上门(二访) | 邀约数 | | | 上门(二访) | 邀约数 | | | 上门(二访) | 邀约数 | | | 上门(二访) | 邀约数 | | | 上门(二访) | 邀约数 | | |
|
||||
| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | |
|
||||
| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | |
|
||||
| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | |
|
||||
| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | |
|
||||
| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | |
|
||||
| | 美团(一访) | 名单数 | | | 美团(一访) | 名单数 | | | 美团(一访) | 名单数 | | | 美团(一访) | 名单数 | | | 美团(一访) | 名单数 | | | 美团(一访) | 名单数 | | | 美团(一访) | 名单数 | | | 美团(一访) | 名单数 | | |
|
||||
| | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | |
|
||||
| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | |
|
||||
| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | |
|
||||
| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | |
|
||||
| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | |
|
||||
| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | |
|
||||
| | 美团(二访) | 邀约数 | | | 美团(二访) | 邀约数 | | | 美团(二访) | 邀约数 | | | 美团(二访) | 邀约数 | | | 美团(二访) | 邀约数 | | | 美团(二访) | 邀约数 | | | 美团(二访) | 邀约数 | | | 美团(二访) | 邀约数 | | |
|
||||
| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | |
|
||||
| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | |
|
||||
| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | |
|
||||
| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | |
|
||||
| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | |
|
||||
| | 大众点评(一访) | 名单数 | | | 大众点评(一访) | 名单数 | | | 大众点评(一访) | 名单数 | | | 大众点评(一访) | 名单数 | | | 大众点评(一访) | 名单数 | | | 大众点评(一访) | 名单数 | | | 大众点评(一访) | 名单数 | | | 大众点评(一访) | 名单数 | | |
|
||||
| | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | |
|
||||
| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | |
|
||||
| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | |
|
||||
| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | |
|
||||
| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | |
|
||||
| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | |
|
||||
| | 大众点评(二访) | 邀约数 | | | 大众点评(二访) | 邀约数 | | | 大众点评(二访) | 邀约数 | | | 大众点评(二访) | 邀约数 | | | 大众点评(二访) | 邀约数 | | | 大众点评(二访) | 邀约数 | | | 大众点评(二访) | 邀约数 | | | 大众点评(二访) | 邀约数 | | |
|
||||
| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | |
|
||||
| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | |
|
||||
| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | |
|
||||
| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | |
|
||||
| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | |
|
||||
| | 抖音(一访) | 名单数 | | | 抖音(一访) | 名单数 | | | 抖音(一访) | 名单数 | | | 抖音(一访) | 名单数 | | | 抖音(一访) | 名单数 | | | 抖音(一访) | 名单数 | | | 抖音(一访) | 名单数 | | | 抖音(一访) | 名单数 | | |
|
||||
| | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | |
|
||||
| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | |
|
||||
| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | |
|
||||
| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | |
|
||||
| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | |
|
||||
| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | |
|
||||
| | 抖音(二访) | 邀约数 | | | 抖音(二访) | 邀约数 | | | 抖音(二访) | 邀约数 | | | 抖音(二访) | 邀约数 | | | 抖音(二访) | 邀约数 | | | 抖音(二访) | 邀约数 | | | 抖音(二访) | 邀约数 | | | 抖音(二访) | 邀约数 | | |
|
||||
| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | |
|
||||
| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | |
|
||||
| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | |
|
||||
| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | |
|
||||
| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | |
|
||||
| | 小红书(一访) | 名单数 | | | 小红书(一访) | 名单数 | | | 小红书(一访) | 名单数 | | | 小红书(一访) | 名单数 | | | 小红书(一访) | 名单数 | | | 小红书(一访) | 名单数 | | | 小红书(一访) | 名单数 | | | 小红书(一访) | 名单数 | | |
|
||||
| | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | |
|
||||
| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | |
|
||||
| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | |
|
||||
| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | |
|
||||
| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | |
|
||||
| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | |
|
||||
| | 小红书(二访) | 邀约数 | | | 小红书(二访) | 邀约数 | | | 小红书(二访) | 邀约数 | | | 小红书(二访) | 邀约数 | | | 小红书(二访) | 邀约数 | | | 小红书(二访) | 邀约数 | | | 小红书(二访) | 邀约数 | | | 小红书(二访) | 邀约数 | | |
|
||||
| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | |
|
||||
| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | |
|
||||
| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | |
|
||||
| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | |
|
||||
| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | |
|
||||
| | 异业合作(一访) | 名单数 | | | 异业合作(一访) | 名单数 | | | 异业合作(一访) | 名单数 | | | 异业合作(一访) | 名单数 | | | 异业合作(一访) | 名单数 | | | 异业合作(一访) | 名单数 | | | 异业合作(一访) | 名单数 | | | 异业合作(一访) | 名单数 | | |
|
||||
| | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | |
|
||||
| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | |
|
||||
| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | |
|
||||
| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | |
|
||||
| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | |
|
||||
| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | |
|
||||
| | 异业合作(二访) | 邀约数 | | | 异业合作(二访) | 邀约数 | | | 异业合作(二访) | 邀约数 | | | 异业合作(二访) | 邀约数 | | | 异业合作(二访) | 邀约数 | | | 异业合作(二访) | 邀约数 | | | 异业合作(二访) | 邀约数 | | | 异业合作(二访) | 邀约数 | | |
|
||||
| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | |
|
||||
| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | |
|
||||
| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | |
|
||||
| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | |
|
||||
| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | |
|
||||
| | 其他(一访) | 名单数 | | | 其他(一访) | 名单数 | | | 其他(一访) | 名单数 | | | 其他(一访) | 名单数 | | | 其他(一访) | 名单数 | | | 其他(一访) | 名单数 | | | 其他(一访) | 名单数 | | | 其他(一访) | 名单数 | | |
|
||||
| | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | |
|
||||
| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | |
|
||||
| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | |
|
||||
| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | |
|
||||
| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | |
|
||||
| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | |
|
||||
| | 其他(二访) | 邀约数 | | | 其他(二访) | 邀约数 | | | 其他(二访) | 邀约数 | | | 其他(二访) | 邀约数 | | | 其他(二访) | 邀约数 | | | 其他(二访) | 邀约数 | | | 其他(二访) | 邀约数 | | | 其他(二访) | 邀约数 | | |
|
||||
| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | |
|
||||
| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | |
|
||||
| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | |
|
||||
| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | |
|
||||
| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | |
|
||||
| | 全渠道(当月汇总) | 名单数 | | | 全渠道(当月汇总) | 名单数 | | | 全渠道(当月汇总) | 名单数 | | | 全渠道(当月汇总) | 名单数 | | | 全渠道(当月汇总) | 名单数 | | | 全渠道(当月汇总) | 名单数 | | | 全渠道(当月汇总) | 名单数 | | | 全渠道(当月汇总) | 名单数 | | |
|
||||
| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | |
|
||||
| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | |
|
||||
| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | |
|
||||
| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | |
|
||||
| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | |
|
||||
| 往月 | 体验包(地推)一访 | 邀约数 | | 往月 | 体验包(地推)一访 | 邀约数 | | 往月 | 体验包(地推)一访 | 邀约数 | | 往月 | 体验包(地推)一访 | 邀约数 | | 往月 | 体验包(地推)一访 | 邀约数 | | 往月 | 体验包(地推)一访 | 邀约数 | | 往月 | 体验包(地推)一访 | 邀约数 | | 往月 | 体验包(地推)一访 | 邀约数 | | |
|
||||
| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | |
|
||||
| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | |
|
||||
| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | |
|
||||
| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | |
|
||||
| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | |
|
||||
| | 体验包(地推)二访 | 邀约数 | | | 体验包(地推)二访 | 邀约数 | | | 体验包(地推)二访 | 邀约数 | | | 体验包(地推)二访 | 邀约数 | | | 体验包(地推)二访 | 邀约数 | | | 体验包(地推)二访 | 邀约数 | | | 体验包(地推)二访 | 邀约数 | | | 体验包(地推)二访 | 邀约数 | | |
|
||||
| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | |
|
||||
| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | |
|
||||
| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | |
|
||||
| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | |
|
||||
| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | |
|
||||
| | 体验包(活动)一访 | 邀约数 | | | 体验包(活动)一访 | 邀约数 | | | 体验包(活动)一访 | 邀约数 | | | 体验包(活动)一访 | 邀约数 | | | 体验包(活动)一访 | 邀约数 | | | 体验包(活动)一访 | 邀约数 | | | 体验包(活动)一访 | 邀约数 | | | 体验包(活动)一访 | 邀约数 | | |
|
||||
| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | |
|
||||
| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | |
|
||||
| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | |
|
||||
| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | |
|
||||
| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | |
|
||||
| | 体验包(活动)二访 | 邀约数 | | | 体验包(活动)二访 | 邀约数 | | | 体验包(活动)二访 | 邀约数 | | | 体验包(活动)二访 | 邀约数 | | | 体验包(活动)二访 | 邀约数 | | | 体验包(活动)二访 | 邀约数 | | | 体验包(活动)二访 | 邀约数 | | | 体验包(活动)二访 | 邀约数 | | |
|
||||
| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | |
|
||||
| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | |
|
||||
| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | |
|
||||
| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | |
|
||||
| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | |
|
||||
| | 转介绍 | 名单数 | | | 转介绍 | 名单数 | | | 转介绍 | 名单数 | | | 转介绍 | 名单数 | | | 转介绍 | 名单数 | | | 转介绍 | 名单数 | | | 转介绍 | 名单数 | | | 转介绍 | 名单数 | | |
|
||||
| | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | |
|
||||
| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | |
|
||||
| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | |
|
||||
| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | |
|
||||
| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | |
|
||||
| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | |
|
||||
| | 上门(一访) | 邀约数 | | | 上门(一访) | 邀约数 | | | 上门(一访) | 邀约数 | | | 上门(一访) | 邀约数 | | | 上门(一访) | 邀约数 | | | 上门(一访) | 邀约数 | | | 上门(一访) | 邀约数 | | | 上门(一访) | 邀约数 | | |
|
||||
| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | |
|
||||
| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | |
|
||||
| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | |
|
||||
| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | |
|
||||
| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | |
|
||||
| | 上门(二访) | 邀约数 | | | 上门(二访) | 邀约数 | | | 上门(二访) | 邀约数 | | | 上门(二访) | 邀约数 | | | 上门(二访) | 邀约数 | | | 上门(二访) | 邀约数 | | | 上门(二访) | 邀约数 | | | 上门(二访) | 邀约数 | | |
|
||||
| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | |
|
||||
| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | |
|
||||
| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | |
|
||||
| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | |
|
||||
| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | |
|
||||
| | 美团(一访) | 邀约数 | | | 美团(一访) | 邀约数 | | | 美团(一访) | 邀约数 | | | 美团(一访) | 邀约数 | | | 美团(一访) | 邀约数 | | | 美团(一访) | 邀约数 | | | 美团(一访) | 邀约数 | | | 美团(一访) | 邀约数 | | |
|
||||
| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | |
|
||||
| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | |
|
||||
| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | |
|
||||
| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | |
|
||||
| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | |
|
||||
| | 美团(二访) | 邀约数 | | | 美团(二访) | 邀约数 | | | 美团(二访) | 邀约数 | | | 美团(二访) | 邀约数 | | | 美团(二访) | 邀约数 | | | 美团(二访) | 邀约数 | | | 美团(二访) | 邀约数 | | | 美团(二访) | 邀约数 | | |
|
||||
| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | |
|
||||
| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | |
|
||||
| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | |
|
||||
| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | |
|
||||
| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | |
|
||||
| | 大众点评(一访) | 邀约数 | | | 大众点评(一访) | 邀约数 | | | 大众点评(一访) | 邀约数 | | | 大众点评(一访) | 邀约数 | | | 大众点评(一访) | 邀约数 | | | 大众点评(一访) | 邀约数 | | | 大众点评(一访) | 邀约数 | | | 大众点评(一访) | 邀约数 | | |
|
||||
| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | |
|
||||
| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | |
|
||||
| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | |
|
||||
| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | |
|
||||
| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | |
|
||||
| | 大众点评(二访) | 邀约数 | | | 大众点评(二访) | 邀约数 | | | 大众点评(二访) | 邀约数 | | | 大众点评(二访) | 邀约数 | | | 大众点评(二访) | 邀约数 | | | 大众点评(二访) | 邀约数 | | | 大众点评(二访) | 邀约数 | | | 大众点评(二访) | 邀约数 | | |
|
||||
| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | |
|
||||
| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | |
|
||||
| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | |
|
||||
| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | |
|
||||
| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | |
|
||||
| | 抖音(一访) | 邀约数 | | | 抖音(一访) | 邀约数 | | | 抖音(一访) | 邀约数 | | | 抖音(一访) | 邀约数 | | | 抖音(一访) | 邀约数 | | | 抖音(一访) | 邀约数 | | | 抖音(一访) | 邀约数 | | | 抖音(一访) | 邀约数 | | |
|
||||
| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | |
|
||||
| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | |
|
||||
| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | |
|
||||
| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | |
|
||||
| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | |
|
||||
| | 抖音(二访) | 邀约数 | | | 抖音(二访) | 邀约数 | | | 抖音(二访) | 邀约数 | | | 抖音(二访) | 邀约数 | | | 抖音(二访) | 邀约数 | | | 抖音(二访) | 邀约数 | | | 抖音(二访) | 邀约数 | | | 抖音(二访) | 邀约数 | | |
|
||||
| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | |
|
||||
| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | |
|
||||
| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | |
|
||||
| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | |
|
||||
| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | |
|
||||
| | 小红书(一访) | 邀约数 | | | 小红书(一访) | 邀约数 | | | 小红书(一访) | 邀约数 | | | 小红书(一访) | 邀约数 | | | 小红书(一访) | 邀约数 | | | 小红书(一访) | 邀约数 | | | 小红书(一访) | 邀约数 | | | 小红书(一访) | 邀约数 | | |
|
||||
| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | |
|
||||
| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | |
|
||||
| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | |
|
||||
| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | |
|
||||
| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | |
|
||||
| | 小红书(二访) | 邀约数 | | | 小红书(二访) | 邀约数 | | | 小红书(二访) | 邀约数 | | | 小红书(二访) | 邀约数 | | | 小红书(二访) | 邀约数 | | | 小红书(二访) | 邀约数 | | | 小红书(二访) | 邀约数 | | | 小红书(二访) | 邀约数 | | |
|
||||
| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | |
|
||||
| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | |
|
||||
| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | |
|
||||
| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | |
|
||||
| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | |
|
||||
| | 异业合作(一访) | 邀约数 | | | 异业合作(一访) | 邀约数 | | | 异业合作(一访) | 邀约数 | | | 异业合作(一访) | 邀约数 | | | 异业合作(一访) | 邀约数 | | | 异业合作(一访) | 邀约数 | | | 异业合作(一访) | 邀约数 | | | 异业合作(一访) | 邀约数 | | |
|
||||
| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | |
|
||||
| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | |
|
||||
| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | |
|
||||
| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | |
|
||||
| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | |
|
||||
| | 异业合作(二访) | 邀约数 | | | 异业合作(二访) | 邀约数 | | | 异业合作(二访) | 邀约数 | | | 异业合作(二访) | 邀约数 | | | 异业合作(二访) | 邀约数 | | | 异业合作(二访) | 邀约数 | | | 异业合作(二访) | 邀约数 | | | 异业合作(二访) | 邀约数 | | |
|
||||
| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | |
|
||||
| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | |
|
||||
| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | |
|
||||
| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | |
|
||||
| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | |
|
||||
| | 其他(一访) | 邀约数 | | | 其他(一访) | 邀约数 | | | 其他(一访) | 邀约数 | | | 其他(一访) | 邀约数 | | | 其他(一访) | 邀约数 | | | 其他(一访) | 邀约数 | | | 其他(一访) | 邀约数 | | | 其他(一访) | 邀约数 | | |
|
||||
| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | |
|
||||
| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | |
|
||||
| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | |
|
||||
| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | |
|
||||
| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | |
|
||||
| | 其他(二访) | 邀约数 | | | 其他(二访) | 邀约数 | | | 其他(二访) | 邀约数 | | | 其他(二访) | 邀约数 | | | 其他(二访) | 邀约数 | | | 其他(二访) | 邀约数 | | | 其他(二访) | 邀约数 | | | 其他(二访) | 邀约数 | | |
|
||||
| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | |
|
||||
| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | |
|
||||
| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | |
|
||||
| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | |
|
||||
| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | |
|
||||
| 合计 | 体验包(地推) | 名单数 | | 合计 | 体验包(地推) | 名单数 | | 合计 | 体验包(地推) | 名单数 | | 合计 | 体验包(地推) | 名单数 | | 合计 | 体验包(地推) | 名单数 | | 合计 | 体验包(地推) | 名单数 | | 合计 | 体验包(地推) | 名单数 | | 合计 | 体验包(地推) | 名单数 | | |
|
||||
| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | |
|
||||
| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | |
|
||||
| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | |
|
||||
| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | |
|
||||
| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | |
|
||||
| | 体验包(活动) | 名单数 | | | 体验包(活动) | 名单数 | | | 体验包(活动) | 名单数 | | | 体验包(活动) | 名单数 | | | 体验包(活动) | 名单数 | | | 体验包(活动) | 名单数 | | | 体验包(活动) | 名单数 | | | 体验包(活动) | 名单数 | | |
|
||||
| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | |
|
||||
| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | |
|
||||
| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | |
|
||||
| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | |
|
||||
| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | |
|
||||
| | 体验包(合计) | 名单数 | | | 体验包(合计) | 名单数 | | | 体验包(合计) | 名单数 | | | 体验包(合计) | 名单数 | | | 体验包(合计) | 名单数 | | | 体验包(合计) | 名单数 | | | 体验包(合计) | 名单数 | | | 体验包(合计) | 名单数 | | |
|
||||
| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | |
|
||||
| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | |
|
||||
| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | |
|
||||
| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | |
|
||||
| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | |
|
||||
| | 转介绍 | 名单数 | | | 转介绍 | 名单数 | | | 转介绍 | 名单数 | | | 转介绍 | 名单数 | | | 转介绍 | 名单数 | | | 转介绍 | 名单数 | | | 转介绍 | 名单数 | | | 转介绍 | 名单数 | | |
|
||||
| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | |
|
||||
| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | |
|
||||
| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | |
|
||||
| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | |
|
||||
| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | |
|
||||
| | 上门 | 名单数 | | | 上门 | 名单数 | | | 上门 | 名单数 | | | 上门 | 名单数 | | | 上门 | 名单数 | | | 上门 | 名单数 | | | 上门 | 名单数 | | | 上门 | 名单数 | | |
|
||||
| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | |
|
||||
| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | |
|
||||
| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | |
|
||||
| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | |
|
||||
| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | |
|
||||
| | 美团 | 名单数 | | | 美团 | 名单数 | | | 美团 | 名单数 | | | 美团 | 名单数 | | | 美团 | 名单数 | | | 美团 | 名单数 | | | 美团 | 名单数 | | | 美团 | 名单数 | | |
|
||||
| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | |
|
||||
| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | |
|
||||
| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | |
|
||||
| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | |
|
||||
| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | |
|
||||
| | 大众点评 | 名单数 | | | 大众点评 | 名单数 | | | 大众点评 | 名单数 | | | 大众点评 | 名单数 | | | 大众点评 | 名单数 | | | 大众点评 | 名单数 | | | 大众点评 | 名单数 | | | 大众点评 | 名单数 | | |
|
||||
| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | |
|
||||
| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | |
|
||||
| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | |
|
||||
| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | |
|
||||
| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | |
|
||||
| | 抖音 | 名单数 | | | 抖音 | 名单数 | | | 抖音 | 名单数 | | | 抖音 | 名单数 | | | 抖音 | 名单数 | | | 抖音 | 名单数 | | | 抖音 | 名单数 | | | 抖音 | 名单数 | | |
|
||||
| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | |
|
||||
| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | |
|
||||
| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | |
|
||||
| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | |
|
||||
| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | |
|
||||
| | 小红书 | 名单数 | | | 小红书 | 名单数 | | | 小红书 | 名单数 | | | 小红书 | 名单数 | | | 小红书 | 名单数 | | | 小红书 | 名单数 | | | 小红书 | 名单数 | | | 小红书 | 名单数 | | |
|
||||
| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | |
|
||||
| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | |
|
||||
| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | |
|
||||
| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | |
|
||||
| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | |
|
||||
| | 异业合作 | 名单数 | | | 异业合作 | 名单数 | | | 异业合作 | 名单数 | | | 异业合作 | 名单数 | | | 异业合作 | 名单数 | | | 异业合作 | 名单数 | | | 异业合作 | 名单数 | | | 异业合作 | 名单数 | | |
|
||||
| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | |
|
||||
| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | |
|
||||
| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | |
|
||||
| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | |
|
||||
| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | |
|
||||
| | 其他 | 名单数 | | | 其他 | 名单数 | | | 其他 | 名单数 | | | 其他 | 名单数 | | | 其他 | 名单数 | | | 其他 | 名单数 | | | 其他 | 名单数 | | | 其他 | 名单数 | | |
|
||||
| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | |
|
||||
| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | |
|
||||
| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | |
|
||||
| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | |
|
||||
| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | |
|
||||
| 汇总 | 全渠道 | 名单数 | | 汇总 | 全渠道 | 名单数 | | 汇总 | 全渠道 | 名单数 | | 汇总 | 全渠道 | 名单数 | | 汇总 | 全渠道 | 名单数 | | 汇总 | 全渠道 | 名单数 | | 汇总 | 全渠道 | 名单数 | | 汇总 | 全渠道 | 名单数 | | |
|
||||
| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | |
|
||||
| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | |
|
||||
| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | |
|
||||
| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | |
|
||||
| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | 1月汇总数据 | | | | 2月汇总数据 | | | | 3月汇总数据 | | | | 4月汇总数据 | | | | 5月汇总数据 | | | | 6月汇总数据 | | | | 7月汇总数据 | | | | 8月汇总数据 | | | | |
|
||||
| 时限 | 渠道 | 具体内容 | 合计 | 时限 | 渠道 | 具体内容 | 合计 | 时限 | 渠道 | 具体内容 | 合计 | 时限 | 渠道 | 具体内容 | 合计 | 时限 | 渠道 | 具体内容 | 合计 | 时限 | 渠道 | 具体内容 | 合计 | 时限 | 渠道 | 具体内容 | 合计 | 时限 | 渠道 | 具体内容 | 合计 | |
|
||||
| 当月 | 体验包(地推)一访 | 名单数 | | 当月 | 体验包(地推)一访 | 名单数 | | 当月 | 体验包(地推)一访 | 名单数 | | 当月 | 体验包(地推)一访 | 名单数 | | 当月 | 体验包(地推)一访 | 名单数 | | 当月 | 体验包(地推)一访 | 名单数 | | 当月 | 体验包(地推)一访 | 名单数 | | 当月 | 体验包(地推)一访 | 名单数 | | |
|
||||
| | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | |
|
||||
| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | |
|
||||
| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | |
|
||||
| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | |
|
||||
| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | |
|
||||
| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | |
|
||||
| | 体验包(地推)二访 | 邀约数 | | | 体验包(地推)二访 | 邀约数 | | | 体验包(地推)二访 | 邀约数 | | | 体验包(地推)二访 | 邀约数 | | | 体验包(地推)二访 | 邀约数 | | | 体验包(地推)二访 | 邀约数 | | | 体验包(地推)二访 | 邀约数 | | | 体验包(地推)二访 | 邀约数 | | |
|
||||
| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | |
|
||||
| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | |
|
||||
| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | |
|
||||
| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | |
|
||||
| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | |
|
||||
| | 体验包(活动)一访 | 名单数 | | | 体验包(活动)一访 | 名单数 | | | 体验包(活动)一访 | 名单数 | | | 体验包(活动)一访 | 名单数 | | | 体验包(活动)一访 | 名单数 | | | 体验包(活动)一访 | 名单数 | | | 体验包(活动)一访 | 名单数 | | | 体验包(活动)一访 | 名单数 | | |
|
||||
| | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | |
|
||||
| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | |
|
||||
| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | |
|
||||
| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | |
|
||||
| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | |
|
||||
| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | |
|
||||
| | 体验包(活动)二访 | 邀约数 | | | 体验包(活动)二访 | 邀约数 | | | 体验包(活动)二访 | 邀约数 | | | 体验包(活动)二访 | 邀约数 | | | 体验包(活动)二访 | 邀约数 | | | 体验包(活动)二访 | 邀约数 | | | 体验包(活动)二访 | 邀约数 | | | 体验包(活动)二访 | 邀约数 | | |
|
||||
| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | |
|
||||
| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | |
|
||||
| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | |
|
||||
| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | |
|
||||
| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | |
|
||||
| | 转介绍 | 名单数 | | | 转介绍 | 名单数 | | | 转介绍 | 名单数 | | | 转介绍 | 名单数 | | | 转介绍 | 名单数 | | | 转介绍 | 名单数 | | | 转介绍 | 名单数 | | | 转介绍 | 名单数 | | |
|
||||
| | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | |
|
||||
| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | |
|
||||
| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | |
|
||||
| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | |
|
||||
| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | |
|
||||
| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | |
|
||||
| | 上门(一访) | 名单数 | | | 上门(一访) | 名单数 | | | 上门(一访) | 名单数 | | | 上门(一访) | 名单数 | | | 上门(一访) | 名单数 | | | 上门(一访) | 名单数 | | | 上门(一访) | 名单数 | | | 上门(一访) | 名单数 | | |
|
||||
| | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | |
|
||||
| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | |
|
||||
| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | |
|
||||
| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | |
|
||||
| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | |
|
||||
| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | |
|
||||
| | 上门(二访) | 邀约数 | | | 上门(二访) | 邀约数 | | | 上门(二访) | 邀约数 | | | 上门(二访) | 邀约数 | | | 上门(二访) | 邀约数 | | | 上门(二访) | 邀约数 | | | 上门(二访) | 邀约数 | | | 上门(二访) | 邀约数 | | |
|
||||
| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | |
|
||||
| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | |
|
||||
| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | |
|
||||
| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | |
|
||||
| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | |
|
||||
| | 美团(一访) | 名单数 | | | 美团(一访) | 名单数 | | | 美团(一访) | 名单数 | | | 美团(一访) | 名单数 | | | 美团(一访) | 名单数 | | | 美团(一访) | 名单数 | | | 美团(一访) | 名单数 | | | 美团(一访) | 名单数 | | |
|
||||
| | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | |
|
||||
| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | |
|
||||
| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | |
|
||||
| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | |
|
||||
| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | |
|
||||
| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | |
|
||||
| | 美团(二访) | 邀约数 | | | 美团(二访) | 邀约数 | | | 美团(二访) | 邀约数 | | | 美团(二访) | 邀约数 | | | 美团(二访) | 邀约数 | | | 美团(二访) | 邀约数 | | | 美团(二访) | 邀约数 | | | 美团(二访) | 邀约数 | | |
|
||||
| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | |
|
||||
| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | |
|
||||
| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | |
|
||||
| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | |
|
||||
| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | |
|
||||
| | 大众点评(一访) | 名单数 | | | 大众点评(一访) | 名单数 | | | 大众点评(一访) | 名单数 | | | 大众点评(一访) | 名单数 | | | 大众点评(一访) | 名单数 | | | 大众点评(一访) | 名单数 | | | 大众点评(一访) | 名单数 | | | 大众点评(一访) | 名单数 | | |
|
||||
| | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | |
|
||||
| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | |
|
||||
| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | |
|
||||
| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | |
|
||||
| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | |
|
||||
| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | |
|
||||
| | 大众点评(二访) | 邀约数 | | | 大众点评(二访) | 邀约数 | | | 大众点评(二访) | 邀约数 | | | 大众点评(二访) | 邀约数 | | | 大众点评(二访) | 邀约数 | | | 大众点评(二访) | 邀约数 | | | 大众点评(二访) | 邀约数 | | | 大众点评(二访) | 邀约数 | | |
|
||||
| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | |
|
||||
| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | |
|
||||
| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | |
|
||||
| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | |
|
||||
| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | |
|
||||
| | 抖音(一访) | 名单数 | | | 抖音(一访) | 名单数 | | | 抖音(一访) | 名单数 | | | 抖音(一访) | 名单数 | | | 抖音(一访) | 名单数 | | | 抖音(一访) | 名单数 | | | 抖音(一访) | 名单数 | | | 抖音(一访) | 名单数 | | |
|
||||
| | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | |
|
||||
| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | |
|
||||
| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | |
|
||||
| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | |
|
||||
| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | |
|
||||
| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | |
|
||||
| | 抖音(二访) | 邀约数 | | | 抖音(二访) | 邀约数 | | | 抖音(二访) | 邀约数 | | | 抖音(二访) | 邀约数 | | | 抖音(二访) | 邀约数 | | | 抖音(二访) | 邀约数 | | | 抖音(二访) | 邀约数 | | | 抖音(二访) | 邀约数 | | |
|
||||
| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | |
|
||||
| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | |
|
||||
| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | |
|
||||
| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | |
|
||||
| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | |
|
||||
| | 小红书(一访) | 名单数 | | | 小红书(一访) | 名单数 | | | 小红书(一访) | 名单数 | | | 小红书(一访) | 名单数 | | | 小红书(一访) | 名单数 | | | 小红书(一访) | 名单数 | | | 小红书(一访) | 名单数 | | | 小红书(一访) | 名单数 | | |
|
||||
| | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | |
|
||||
| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | |
|
||||
| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | |
|
||||
| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | |
|
||||
| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | |
|
||||
| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | |
|
||||
| | 小红书(二访) | 邀约数 | | | 小红书(二访) | 邀约数 | | | 小红书(二访) | 邀约数 | | | 小红书(二访) | 邀约数 | | | 小红书(二访) | 邀约数 | | | 小红书(二访) | 邀约数 | | | 小红书(二访) | 邀约数 | | | 小红书(二访) | 邀约数 | | |
|
||||
| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | |
|
||||
| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | |
|
||||
| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | |
|
||||
| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | |
|
||||
| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | |
|
||||
| | 异业合作(一访) | 名单数 | | | 异业合作(一访) | 名单数 | | | 异业合作(一访) | 名单数 | | | 异业合作(一访) | 名单数 | | | 异业合作(一访) | 名单数 | | | 异业合作(一访) | 名单数 | | | 异业合作(一访) | 名单数 | | | 异业合作(一访) | 名单数 | | |
|
||||
| | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | |
|
||||
| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | |
|
||||
| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | |
|
||||
| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | |
|
||||
| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | |
|
||||
| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | |
|
||||
| | 异业合作(二访) | 邀约数 | | | 异业合作(二访) | 邀约数 | | | 异业合作(二访) | 邀约数 | | | 异业合作(二访) | 邀约数 | | | 异业合作(二访) | 邀约数 | | | 异业合作(二访) | 邀约数 | | | 异业合作(二访) | 邀约数 | | | 异业合作(二访) | 邀约数 | | |
|
||||
| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | |
|
||||
| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | |
|
||||
| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | |
|
||||
| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | |
|
||||
| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | |
|
||||
| | 其他(一访) | 名单数 | | | 其他(一访) | 名单数 | | | 其他(一访) | 名单数 | | | 其他(一访) | 名单数 | | | 其他(一访) | 名单数 | | | 其他(一访) | 名单数 | | | 其他(一访) | 名单数 | | | 其他(一访) | 名单数 | | |
|
||||
| | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | |
|
||||
| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | |
|
||||
| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | |
|
||||
| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | |
|
||||
| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | |
|
||||
| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | |
|
||||
| | 其他(二访) | 邀约数 | | | 其他(二访) | 邀约数 | | | 其他(二访) | 邀约数 | | | 其他(二访) | 邀约数 | | | 其他(二访) | 邀约数 | | | 其他(二访) | 邀约数 | | | 其他(二访) | 邀约数 | | | 其他(二访) | 邀约数 | | |
|
||||
| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | |
|
||||
| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | |
|
||||
| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | |
|
||||
| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | |
|
||||
| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | |
|
||||
| | 全渠道(当月汇总) | 名单数 | | | 全渠道(当月汇总) | 名单数 | | | 全渠道(当月汇总) | 名单数 | | | 全渠道(当月汇总) | 名单数 | | | 全渠道(当月汇总) | 名单数 | | | 全渠道(当月汇总) | 名单数 | | | 全渠道(当月汇总) | 名单数 | | | 全渠道(当月汇总) | 名单数 | | |
|
||||
| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | |
|
||||
| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | |
|
||||
| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | |
|
||||
| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | |
|
||||
| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | |
|
||||
| 往月 | 体验包(地推)一访 | 邀约数 | | 往月 | 体验包(地推)一访 | 邀约数 | | 往月 | 体验包(地推)一访 | 邀约数 | | 往月 | 体验包(地推)一访 | 邀约数 | | 往月 | 体验包(地推)一访 | 邀约数 | | 往月 | 体验包(地推)一访 | 邀约数 | | 往月 | 体验包(地推)一访 | 邀约数 | | 往月 | 体验包(地推)一访 | 邀约数 | | |
|
||||
| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | |
|
||||
| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | |
|
||||
| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | |
|
||||
| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | |
|
||||
| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | |
|
||||
| | 体验包(地推)二访 | 邀约数 | | | 体验包(地推)二访 | 邀约数 | | | 体验包(地推)二访 | 邀约数 | | | 体验包(地推)二访 | 邀约数 | | | 体验包(地推)二访 | 邀约数 | | | 体验包(地推)二访 | 邀约数 | | | 体验包(地推)二访 | 邀约数 | | | 体验包(地推)二访 | 邀约数 | | |
|
||||
| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | |
|
||||
| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | |
|
||||
| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | |
|
||||
| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | |
|
||||
| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | |
|
||||
| | 体验包(活动)一访 | 邀约数 | | | 体验包(活动)一访 | 邀约数 | | | 体验包(活动)一访 | 邀约数 | | | 体验包(活动)一访 | 邀约数 | | | 体验包(活动)一访 | 邀约数 | | | 体验包(活动)一访 | 邀约数 | | | 体验包(活动)一访 | 邀约数 | | | 体验包(活动)一访 | 邀约数 | | |
|
||||
| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | |
|
||||
| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | |
|
||||
| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | |
|
||||
| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | |
|
||||
| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | |
|
||||
| | 体验包(活动)二访 | 邀约数 | | | 体验包(活动)二访 | 邀约数 | | | 体验包(活动)二访 | 邀约数 | | | 体验包(活动)二访 | 邀约数 | | | 体验包(活动)二访 | 邀约数 | | | 体验包(活动)二访 | 邀约数 | | | 体验包(活动)二访 | 邀约数 | | | 体验包(活动)二访 | 邀约数 | | |
|
||||
| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | |
|
||||
| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | |
|
||||
| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | |
|
||||
| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | |
|
||||
| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | |
|
||||
| | 转介绍 | 名单数 | | | 转介绍 | 名单数 | | | 转介绍 | 名单数 | | | 转介绍 | 名单数 | | | 转介绍 | 名单数 | | | 转介绍 | 名单数 | | | 转介绍 | 名单数 | | | 转介绍 | 名单数 | | |
|
||||
| | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | |
|
||||
| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | |
|
||||
| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | |
|
||||
| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | |
|
||||
| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | |
|
||||
| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | |
|
||||
| | 上门(一访) | 邀约数 | | | 上门(一访) | 邀约数 | | | 上门(一访) | 邀约数 | | | 上门(一访) | 邀约数 | | | 上门(一访) | 邀约数 | | | 上门(一访) | 邀约数 | | | 上门(一访) | 邀约数 | | | 上门(一访) | 邀约数 | | |
|
||||
| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | |
|
||||
| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | |
|
||||
| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | |
|
||||
| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | |
|
||||
| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | |
|
||||
| | 上门(二访) | 邀约数 | | | 上门(二访) | 邀约数 | | | 上门(二访) | 邀约数 | | | 上门(二访) | 邀约数 | | | 上门(二访) | 邀约数 | | | 上门(二访) | 邀约数 | | | 上门(二访) | 邀约数 | | | 上门(二访) | 邀约数 | | |
|
||||
| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | |
|
||||
| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | |
|
||||
| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | |
|
||||
| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | |
|
||||
| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | |
|
||||
| | 美团(一访) | 邀约数 | | | 美团(一访) | 邀约数 | | | 美团(一访) | 邀约数 | | | 美团(一访) | 邀约数 | | | 美团(一访) | 邀约数 | | | 美团(一访) | 邀约数 | | | 美团(一访) | 邀约数 | | | 美团(一访) | 邀约数 | | |
|
||||
| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | |
|
||||
| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | |
|
||||
| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | |
|
||||
| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | |
|
||||
| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | |
|
||||
| | 美团(二访) | 邀约数 | | | 美团(二访) | 邀约数 | | | 美团(二访) | 邀约数 | | | 美团(二访) | 邀约数 | | | 美团(二访) | 邀约数 | | | 美团(二访) | 邀约数 | | | 美团(二访) | 邀约数 | | | 美团(二访) | 邀约数 | | |
|
||||
| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | |
|
||||
| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | |
|
||||
| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | |
|
||||
| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | |
|
||||
| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | |
|
||||
| | 大众点评(一访) | 邀约数 | | | 大众点评(一访) | 邀约数 | | | 大众点评(一访) | 邀约数 | | | 大众点评(一访) | 邀约数 | | | 大众点评(一访) | 邀约数 | | | 大众点评(一访) | 邀约数 | | | 大众点评(一访) | 邀约数 | | | 大众点评(一访) | 邀约数 | | |
|
||||
| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | |
|
||||
| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | |
|
||||
| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | |
|
||||
| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | |
|
||||
| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | |
|
||||
| | 大众点评(二访) | 邀约数 | | | 大众点评(二访) | 邀约数 | | | 大众点评(二访) | 邀约数 | | | 大众点评(二访) | 邀约数 | | | 大众点评(二访) | 邀约数 | | | 大众点评(二访) | 邀约数 | | | 大众点评(二访) | 邀约数 | | | 大众点评(二访) | 邀约数 | | |
|
||||
| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | |
|
||||
| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | |
|
||||
| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | |
|
||||
| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | |
|
||||
| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | |
|
||||
| | 抖音(一访) | 邀约数 | | | 抖音(一访) | 邀约数 | | | 抖音(一访) | 邀约数 | | | 抖音(一访) | 邀约数 | | | 抖音(一访) | 邀约数 | | | 抖音(一访) | 邀约数 | | | 抖音(一访) | 邀约数 | | | 抖音(一访) | 邀约数 | | |
|
||||
| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | |
|
||||
| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | |
|
||||
| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | |
|
||||
| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | |
|
||||
| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | |
|
||||
| | 抖音(二访) | 邀约数 | | | 抖音(二访) | 邀约数 | | | 抖音(二访) | 邀约数 | | | 抖音(二访) | 邀约数 | | | 抖音(二访) | 邀约数 | | | 抖音(二访) | 邀约数 | | | 抖音(二访) | 邀约数 | | | 抖音(二访) | 邀约数 | | |
|
||||
| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | |
|
||||
| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | |
|
||||
| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | |
|
||||
| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | |
|
||||
| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | |
|
||||
| | 小红书(一访) | 邀约数 | | | 小红书(一访) | 邀约数 | | | 小红书(一访) | 邀约数 | | | 小红书(一访) | 邀约数 | | | 小红书(一访) | 邀约数 | | | 小红书(一访) | 邀约数 | | | 小红书(一访) | 邀约数 | | | 小红书(一访) | 邀约数 | | |
|
||||
| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | |
|
||||
| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | |
|
||||
| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | |
|
||||
| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | |
|
||||
| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | |
|
||||
| | 小红书(二访) | 邀约数 | | | 小红书(二访) | 邀约数 | | | 小红书(二访) | 邀约数 | | | 小红书(二访) | 邀约数 | | | 小红书(二访) | 邀约数 | | | 小红书(二访) | 邀约数 | | | 小红书(二访) | 邀约数 | | | 小红书(二访) | 邀约数 | | |
|
||||
| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | |
|
||||
| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | |
|
||||
| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | |
|
||||
| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | |
|
||||
| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | |
|
||||
| | 异业合作(一访) | 邀约数 | | | 异业合作(一访) | 邀约数 | | | 异业合作(一访) | 邀约数 | | | 异业合作(一访) | 邀约数 | | | 异业合作(一访) | 邀约数 | | | 异业合作(一访) | 邀约数 | | | 异业合作(一访) | 邀约数 | | | 异业合作(一访) | 邀约数 | | |
|
||||
| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | |
|
||||
| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | |
|
||||
| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | |
|
||||
| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | |
|
||||
| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | |
|
||||
| | 异业合作(二访) | 邀约数 | | | 异业合作(二访) | 邀约数 | | | 异业合作(二访) | 邀约数 | | | 异业合作(二访) | 邀约数 | | | 异业合作(二访) | 邀约数 | | | 异业合作(二访) | 邀约数 | | | 异业合作(二访) | 邀约数 | | | 异业合作(二访) | 邀约数 | | |
|
||||
| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | |
|
||||
| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | |
|
||||
| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | |
|
||||
| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | |
|
||||
| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | |
|
||||
| | 其他(一访) | 邀约数 | | | 其他(一访) | 邀约数 | | | 其他(一访) | 邀约数 | | | 其他(一访) | 邀约数 | | | 其他(一访) | 邀约数 | | | 其他(一访) | 邀约数 | | | 其他(一访) | 邀约数 | | | 其他(一访) | 邀约数 | | |
|
||||
| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | |
|
||||
| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | |
|
||||
| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | |
|
||||
| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | |
|
||||
| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | |
|
||||
| | 其他(二访) | 邀约数 | | | 其他(二访) | 邀约数 | | | 其他(二访) | 邀约数 | | | 其他(二访) | 邀约数 | | | 其他(二访) | 邀约数 | | | 其他(二访) | 邀约数 | | | 其他(二访) | 邀约数 | | | 其他(二访) | 邀约数 | | |
|
||||
| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | |
|
||||
| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | |
|
||||
| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | |
|
||||
| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | |
|
||||
| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | |
|
||||
| 合计 | 体验包(地推) | 名单数 | | 合计 | 体验包(地推) | 名单数 | | 合计 | 体验包(地推) | 名单数 | | 合计 | 体验包(地推) | 名单数 | | 合计 | 体验包(地推) | 名单数 | | 合计 | 体验包(地推) | 名单数 | | 合计 | 体验包(地推) | 名单数 | | 合计 | 体验包(地推) | 名单数 | | |
|
||||
| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | |
|
||||
| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | |
|
||||
| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | |
|
||||
| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | |
|
||||
| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | |
|
||||
| | 体验包(活动) | 名单数 | | | 体验包(活动) | 名单数 | | | 体验包(活动) | 名单数 | | | 体验包(活动) | 名单数 | | | 体验包(活动) | 名单数 | | | 体验包(活动) | 名单数 | | | 体验包(活动) | 名单数 | | | 体验包(活动) | 名单数 | | |
|
||||
| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | |
|
||||
| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | |
|
||||
| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | |
|
||||
| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | |
|
||||
| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | |
|
||||
| | 体验包(合计) | 名单数 | | | 体验包(合计) | 名单数 | | | 体验包(合计) | 名单数 | | | 体验包(合计) | 名单数 | | | 体验包(合计) | 名单数 | | | 体验包(合计) | 名单数 | | | 体验包(合计) | 名单数 | | | 体验包(合计) | 名单数 | | |
|
||||
| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | |
|
||||
| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | |
|
||||
| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | |
|
||||
| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | |
|
||||
| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | |
|
||||
| | 转介绍 | 名单数 | | | 转介绍 | 名单数 | | | 转介绍 | 名单数 | | | 转介绍 | 名单数 | | | 转介绍 | 名单数 | | | 转介绍 | 名单数 | | | 转介绍 | 名单数 | | | 转介绍 | 名单数 | | |
|
||||
| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | |
|
||||
| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | |
|
||||
| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | |
|
||||
| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | |
|
||||
| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | |
|
||||
| | 上门 | 名单数 | | | 上门 | 名单数 | | | 上门 | 名单数 | | | 上门 | 名单数 | | | 上门 | 名单数 | | | 上门 | 名单数 | | | 上门 | 名单数 | | | 上门 | 名单数 | | |
|
||||
| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | |
|
||||
| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | |
|
||||
| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | |
|
||||
| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | |
|
||||
| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | |
|
||||
| | 美团 | 名单数 | | | 美团 | 名单数 | | | 美团 | 名单数 | | | 美团 | 名单数 | | | 美团 | 名单数 | | | 美团 | 名单数 | | | 美团 | 名单数 | | | 美团 | 名单数 | | |
|
||||
| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | |
|
||||
| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | |
|
||||
| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | |
|
||||
| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | |
|
||||
| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | |
|
||||
| | 大众点评 | 名单数 | | | 大众点评 | 名单数 | | | 大众点评 | 名单数 | | | 大众点评 | 名单数 | | | 大众点评 | 名单数 | | | 大众点评 | 名单数 | | | 大众点评 | 名单数 | | | 大众点评 | 名单数 | | |
|
||||
| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | |
|
||||
| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | |
|
||||
| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | |
|
||||
| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | |
|
||||
| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | |
|
||||
| | 抖音 | 名单数 | | | 抖音 | 名单数 | | | 抖音 | 名单数 | | | 抖音 | 名单数 | | | 抖音 | 名单数 | | | 抖音 | 名单数 | | | 抖音 | 名单数 | | | 抖音 | 名单数 | | |
|
||||
| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | |
|
||||
| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | |
|
||||
| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | |
|
||||
| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | |
|
||||
| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | |
|
||||
| | 小红书 | 名单数 | | | 小红书 | 名单数 | | | 小红书 | 名单数 | | | 小红书 | 名单数 | | | 小红书 | 名单数 | | | 小红书 | 名单数 | | | 小红书 | 名单数 | | | 小红书 | 名单数 | | |
|
||||
| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | |
|
||||
| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | |
|
||||
| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | |
|
||||
| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | |
|
||||
| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | |
|
||||
| | 异业合作 | 名单数 | | | 异业合作 | 名单数 | | | 异业合作 | 名单数 | | | 异业合作 | 名单数 | | | 异业合作 | 名单数 | | | 异业合作 | 名单数 | | | 异业合作 | 名单数 | | | 异业合作 | 名单数 | | |
|
||||
| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | |
|
||||
| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | |
|
||||
| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | |
|
||||
| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | |
|
||||
| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | |
|
||||
| | 其他 | 名单数 | | | 其他 | 名单数 | | | 其他 | 名单数 | | | 其他 | 名单数 | | | 其他 | 名单数 | | | 其他 | 名单数 | | | 其他 | 名单数 | | | 其他 | 名单数 | | |
|
||||
| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | |
|
||||
| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | |
|
||||
| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | |
|
||||
| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | |
|
||||
| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | |
|
||||
| 汇总 | 全渠道 | 名单数 | | 汇总 | 全渠道 | 名单数 | | 汇总 | 全渠道 | 名单数 | | 汇总 | 全渠道 | 名单数 | | 汇总 | 全渠道 | 名单数 | | 汇总 | 全渠道 | 名单数 | | 汇总 | 全渠道 | 名单数 | | 汇总 | 全渠道 | 名单数 | | |
|
||||
| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | |
|
||||
| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | |
|
||||
| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | |
|
||||
| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | |
|
||||
| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | |
|
||||
@ -1,309 +0,0 @@ |
|||||
# Dashboard WebView 业务逻辑文档 |
|
||||
|
|
||||
## 概述 |
|
||||
|
|
||||
Dashboard WebView 是一个为移动端应用提供数据可视化展示的功能模块,通过WebView组件在客户端中嵌入HTML页面,展示不同角色的统计数据和图表。 |
|
||||
|
|
||||
## 系统架构 |
|
||||
|
|
||||
### 技术栈 |
|
||||
- **后端**: ThinkPHP 框架 |
|
||||
- **前端**: HTML5 + CSS3 + JavaScript |
|
||||
- **图表库**: ECharts 5.4.0 |
|
||||
- **渲染方式**: ThinkPHP view() 模板渲染 |
|
||||
- **数据传输**: JWT Token + HTTP GET 参数 |
|
||||
|
|
||||
### 文件结构 |
|
||||
``` |
|
||||
niucloud/app/api/ |
|
||||
├── controller/Dashboard.php # 控制器(业务逻辑) |
|
||||
└── view/dashboard/ # 视图模板目录 |
|
||||
├── main.html # 主页面模板 |
|
||||
├── error.html # 错误页面模板 |
|
||||
└── layouts/ |
|
||||
└── base.html # 基础布局模板 |
|
||||
``` |
|
||||
|
|
||||
## 业务流程 |
|
||||
|
|
||||
### 1. 页面访问流程 |
|
||||
``` |
|
||||
客户端 → API请求 → Token验证 → 角色识别 → 页面类型判断 → 数据获取 → 模板渲染 → HTML输出 |
|
||||
``` |
|
||||
|
|
||||
### 2. 请求参数说明 |
|
||||
| 参数名 | 类型 | 必填 | 说明 | 示例值 | |
|
||||
|--------|------|------|------|--------| |
|
||||
| type | string | 否 | 页面类型 | my_data / dept_data / campus_data | |
|
||||
| token | string | 是 | 用户认证Token | JWT格式 | |
|
||||
| platform | string | 否 | 平台标识 | web / app / miniprogram | |
|
||||
|
|
||||
### 3. 页面类型定义 |
|
||||
- **my_data**: 我的数据 - 显示个人业绩统计 |
|
||||
- **dept_data**: 部门数据 - 显示所属部门统计 |
|
||||
- **campus_data**: 校区数据 - 显示整个校区统计 |
|
||||
|
|
||||
## 数据统计业务逻辑 |
|
||||
|
|
||||
### 1. 我的数据 (my_data) |
|
||||
**适用角色**: |
|
||||
市场人员(school_departments.id=1的部门=school_sys_role.dept_id的角色) |
|
||||
**数据维度**: |
|
||||
- 本月录入资源数量 |
|
||||
- 当天录入资源数量 |
|
||||
- 获得绩效金额 |
|
||||
- 其他奖金 |
|
||||
|
|
||||
**图表展示**: |
|
||||
- 月度录入资源数量趋势图(折线图) |
|
||||
- 客户来源分布图(饼图) |
|
||||
|
|
||||
**算法逻辑**: |
|
||||
|
|
||||
|
|
||||
### 2. 部门数据 (dept_data) |
|
||||
**适用角色**: 部门主管及以上 |
|
||||
**权限控制**: 只能查看本部门数据 |
|
||||
**数据维度**: |
|
||||
- 部门总业绩 |
|
||||
- 团队人数 |
|
||||
- 人均业绩 |
|
||||
- 部门排名 |
|
||||
|
|
||||
**图表展示**: |
|
||||
- 团队成员业绩排行榜(柱状图) |
|
||||
- 部门月度趋势对比(折线图) |
|
||||
|
|
||||
**算法逻辑**: |
|
||||
```php |
|
||||
// 基于用户所属部门统计部门数据 |
|
||||
function getDeptData($userInfo) { |
|
||||
$deptId = $userInfo['department_id']; |
|
||||
|
|
||||
// 部门总业绩:部门内所有员工的本月业绩总和 |
|
||||
$deptPerformance = Contract::whereIn('staff_id', function($query) use ($deptId) { |
|
||||
$query->select('id')->from('staff')->where('department_id', $deptId); |
|
||||
})->where('status', 'signed') |
|
||||
->whereMonth('sign_time', date('m')) |
|
||||
->sum('amount'); |
|
||||
|
|
||||
// 团队人数:部门内员工总数 |
|
||||
$teamCount = Staff::where('department_id', $deptId) |
|
||||
->where('status', 'active') |
|
||||
->count(); |
|
||||
|
|
||||
// 人均业绩:部门总业绩 / 团队人数 |
|
||||
$avgPerformance = $teamCount > 0 ? $deptPerformance / $teamCount : 0; |
|
||||
|
|
||||
// 部门排名:按业绩排序获取当前部门排名 |
|
||||
$deptRanking = $this->calculateDeptRanking($deptId); |
|
||||
} |
|
||||
``` |
|
||||
|
|
||||
### 3. 校区数据 (campus_data) |
|
||||
**适用角色**: 校区管理员、校长级别 |
|
||||
**权限控制**: 只能查看所属校区数据 |
|
||||
**数据维度**: |
|
||||
- 校区总业绩 |
|
||||
- 部门数量 |
|
||||
- 员工总数 |
|
||||
- 客户总数 |
|
||||
|
|
||||
**图表展示**: |
|
||||
- 各部门业绩对比(柱状图) |
|
||||
- 校区业绩趋势图(折线图) |
|
||||
|
|
||||
**算法逻辑**: |
|
||||
```php |
|
||||
// 基于用户所属校区统计校区数据 |
|
||||
function getCampusData($userInfo) { |
|
||||
$campusId = $userInfo['campus_id']; |
|
||||
|
|
||||
// 校区总业绩:校区内所有员工的本月业绩总和 |
|
||||
$campusPerformance = Contract::whereIn('staff_id', function($query) use ($campusId) { |
|
||||
$query->select('id')->from('staff')->where('campus_id', $campusId); |
|
||||
})->where('status', 'signed') |
|
||||
->whereMonth('sign_time', date('m')) |
|
||||
->sum('amount'); |
|
||||
|
|
||||
// 部门数量:校区内部门总数 |
|
||||
$deptCount = Department::where('campus_id', $campusId) |
|
||||
->where('status', 'active') |
|
||||
->count(); |
|
||||
|
|
||||
// 员工总数:校区内所有员工数量 |
|
||||
$staffCount = Staff::where('campus_id', $campusId) |
|
||||
->where('status', 'active') |
|
||||
->count(); |
|
||||
|
|
||||
// 客户总数:校区内所有客户数量 |
|
||||
$customerCount = Customer::whereIn('staff_id', function($query) use ($campusId) { |
|
||||
$query->select('id')->from('staff')->where('campus_id', $campusId); |
|
||||
})->count(); |
|
||||
} |
|
||||
``` |
|
||||
|
|
||||
## 权限控制逻辑 |
|
||||
|
|
||||
### 1. Token验证 |
|
||||
```php |
|
||||
// JWT Token 解析获取用户信息 |
|
||||
function verifyToken($token) { |
|
||||
try { |
|
||||
$payload = JWT::decode($token, $secretKey); |
|
||||
return [ |
|
||||
'user_id' => $payload->user_id, |
|
||||
'user_type' => $payload->user_type, |
|
||||
'role_type' => $payload->role_type, |
|
||||
'campus_id' => $payload->campus_id ?? 0, |
|
||||
'department_id' => $payload->department_id ?? 0 |
|
||||
]; |
|
||||
} catch (Exception $e) { |
|
||||
throw new AuthException('Token验证失败'); |
|
||||
} |
|
||||
} |
|
||||
``` |
|
||||
|
|
||||
### 2. 页面访问权限 |
|
||||
```php |
|
||||
// 页面类型访问权限控制 |
|
||||
function checkPageAccess($pageType, $userInfo) { |
|
||||
$rolePermissions = [ |
|
||||
'staff' => ['my_data'], // 普通员工只能查看个人数据 |
|
||||
'supervisor' => ['my_data', 'dept_data'], // 主管可查看个人和部门数据 |
|
||||
'manager' => ['my_data', 'dept_data', 'campus_data'], // 经理可查看所有类型数据 |
|
||||
'admin' => ['my_data', 'dept_data', 'campus_data'] // 管理员可查看所有类型数据 |
|
||||
]; |
|
||||
|
|
||||
$userRole = $this->getUserRole($userInfo['user_id']); |
|
||||
$allowedPages = $rolePermissions[$userRole] ?? []; |
|
||||
|
|
||||
if (!in_array($pageType, $allowedPages)) { |
|
||||
throw new PermissionException('无权限访问该页面'); |
|
||||
} |
|
||||
} |
|
||||
``` |
|
||||
|
|
||||
### 3. 数据范围控制 |
|
||||
```php |
|
||||
// 数据查询范围限制 |
|
||||
function applyDataScope($query, $userInfo, $pageType) { |
|
||||
switch ($pageType) { |
|
||||
case 'my_data': |
|
||||
// 只能查看自己的数据 |
|
||||
$query->where('staff_id', $userInfo['user_id']); |
|
||||
break; |
|
||||
|
|
||||
case 'dept_data': |
|
||||
// 只能查看本部门数据 |
|
||||
$deptStaffIds = Staff::where('department_id', $userInfo['department_id']) |
|
||||
->pluck('id')->toArray(); |
|
||||
$query->whereIn('staff_id', $deptStaffIds); |
|
||||
break; |
|
||||
|
|
||||
case 'campus_data': |
|
||||
// 只能查看本校区数据 |
|
||||
$campusStaffIds = Staff::where('campus_id', $userInfo['campus_id']) |
|
||||
->pluck('id')->toArray(); |
|
||||
$query->whereIn('staff_id', $campusStaffIds); |
|
||||
break; |
|
||||
} |
|
||||
} |
|
||||
``` |
|
||||
|
|
||||
## 图表配置说明 |
|
||||
|
|
||||
### 1. ECharts 配置标准 |
|
||||
- **主题色**: #29d3b4 (青绿色) |
|
||||
- **背景色**: #181A20 (深灰色) |
|
||||
- **字体**: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif |
|
||||
|
|
||||
### 2. 图表类型映射 |
|
||||
- **折线图**: 趋势数据(月度业绩、时间序列) |
|
||||
- **柱状图**: 对比数据(成员排行、部门对比) |
|
||||
- **饼图**: 占比数据(客户来源分布、业务分布) |
|
||||
|
|
||||
### 3. 响应式设计 |
|
||||
- 移动端优化:小于480px时单列布局 |
|
||||
- 图表自适应:监听窗口大小变化自动调整 |
|
||||
|
|
||||
## 性能优化 |
|
||||
|
|
||||
### 1. 缓存策略 |
|
||||
```php |
|
||||
// Redis缓存用户统计数据(5分钟有效期) |
|
||||
$cacheKey = "dashboard_data_{$userInfo['user_id']}_{$pageType}"; |
|
||||
$cachedData = Redis::get($cacheKey); |
|
||||
|
|
||||
if (!$cachedData) { |
|
||||
$data = $this->calculateRealData($pageType, $userInfo); |
|
||||
Redis::setex($cacheKey, 300, json_encode($data)); // 5分钟缓存 |
|
||||
} else { |
|
||||
$data = json_decode($cachedData, true); |
|
||||
} |
|
||||
``` |
|
||||
|
|
||||
### 2. 数据库优化 |
|
||||
- 为统计查询添加复合索引 |
|
||||
- 使用预计算表存储统计结果 |
|
||||
- 分页查询避免大数据量 |
|
||||
|
|
||||
### 3. 前端优化 |
|
||||
- CDN加载ECharts库 |
|
||||
- 图片懒加载和压缩 |
|
||||
- CSS压缩和合并 |
|
||||
|
|
||||
## 扩展规划 |
|
||||
|
|
||||
### 1. 角色细分支持 |
|
||||
**计划支持的角色类型**: |
|
||||
- **销售专员**: 基础销售数据统计 |
|
||||
- **销售主管**: 团队管理数据 + 个人数据 |
|
||||
- **市场专员**: 线索获取和转化数据 |
|
||||
- **客服专员**: 客户服务相关数据 |
|
||||
- **财务专员**: 收款和财务相关数据 |
|
||||
- **教研专员**: 课程和教学数据 |
|
||||
- **校长**: 全校区综合数据 |
|
||||
|
|
||||
### 2. 数据维度扩展 |
|
||||
**计划新增的统计维度**: |
|
||||
- 客户满意度统计 |
|
||||
- 课程完成率统计 |
|
||||
- 退费率统计 |
|
||||
- 续费率统计 |
|
||||
- 员工绩效评分 |
|
||||
- 市场推广效果统计 |
|
||||
|
|
||||
### 3. 图表类型扩展 |
|
||||
**计划支持的图表类型**: |
|
||||
- 雷达图:综合能力评估 |
|
||||
- 热力图:时间分布统计 |
|
||||
- 仪表盘:目标完成度 |
|
||||
- 漏斗图:业务流程转化 |
|
||||
- 地图:地域分布统计 |
|
||||
|
|
||||
## 数据表设计要求 |
|
||||
|
|
||||
### 统计相关表 |
|
||||
|
|
||||
|
|
||||
## 错误处理 |
|
||||
|
|
||||
### 1. 异常类型定义 |
|
||||
```php |
|
||||
class DashboardException extends Exception { |
|
||||
const TOKEN_INVALID = 1001; // Token无效 |
|
||||
const PERMISSION_DENIED = 1002; // 权限不足 |
|
||||
const DATA_NOT_FOUND = 1003; // 数据不存在 |
|
||||
const TEMPLATE_ERROR = 1004; // 模板渲染错误 |
|
||||
} |
|
||||
``` |
|
||||
|
|
||||
### 2. 错误页面展示 |
|
||||
- 友好的错误提示界面 |
|
||||
- 错误代码和消息展示 |
|
||||
- 返回和重试按钮 |
|
||||
|
|
||||
|
|
||||
|
|
||||
*该文档会根据实际开发需求持续更新和完善* |
|
||||
Binary file not shown.
@ -1,28 +0,0 @@ |
|||||
-- 赠品表设计 |
|
||||
-- 创建时间:2025-01-24 |
|
||||
-- 设计说明:根据项目现有数据库规范设计 |
|
||||
|
|
||||
DROP TABLE IF EXISTS `shcool_resources_gift`; |
|
||||
CREATE TABLE `shcool_resources_gift` ( |
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '赠品主键ID', |
|
||||
`gift_name` varchar(255) NOT NULL DEFAULT '' COMMENT '赠品名称', |
|
||||
`gift_type` varchar(50) NOT NULL DEFAULT '' COMMENT '赠品类型:course(赠课),voucher(代金券)', |
|
||||
`gift_time` int(11) NOT NULL DEFAULT 0 COMMENT '赠送时间', |
|
||||
`giver_id` int(11) NOT NULL DEFAULT 0 COMMENT '赠送来源人员ID', |
|
||||
`resource_id` int(11) NOT NULL DEFAULT 0 COMMENT '赠品归属资源ID', |
|
||||
`order_id` int(11) NOT NULL DEFAULT 0 COMMENT '赠品使用的订单ID(0表示未使用)', |
|
||||
`gift_status` tinyint(4) NOT NULL DEFAULT 1 COMMENT '赠品状态:1=未使用,2=已使用,3=已过期,4=已作废', |
|
||||
`use_time` int(11) NOT NULL DEFAULT 0 COMMENT '赠品使用时间', |
|
||||
`create_time` int(11) NOT NULL DEFAULT 0 COMMENT '创建时间', |
|
||||
`update_time` int(11) NOT NULL DEFAULT 0 COMMENT '更新时间', |
|
||||
`delete_time` int(11) NOT NULL DEFAULT 0 COMMENT '删除时间', |
|
||||
PRIMARY KEY (`id`) USING BTREE |
|
||||
) ENGINE=InnoDB CHARACTER SET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='赠品表' ROW_FORMAT=Dynamic; |
|
||||
|
|
||||
-- 添加索引 |
|
||||
ALTER TABLE `shcool_resources_gift` ADD INDEX `IDX_gift_giver_id` (`giver_id`); |
|
||||
ALTER TABLE `shcool_resources_gift` ADD INDEX `IDX_gift_resource_id` (`resource_id`); |
|
||||
ALTER TABLE `shcool_resources_gift` ADD INDEX `IDX_gift_order_id` (`order_id`); |
|
||||
ALTER TABLE `shcool_resources_gift` ADD INDEX `IDX_gift_status` (`gift_status`); |
|
||||
ALTER TABLE `shcool_resources_gift` ADD INDEX `IDX_gift_type` (`gift_type`); |
|
||||
ALTER TABLE `shcool_resources_gift` ADD INDEX `IDX_gift_time` (`gift_time`); |
|
||||
@ -1,8 +0,0 @@ |
|||||
{ |
|
||||
"host": "localhost", |
|
||||
"port": 23306, |
|
||||
"user": "niucloud", |
|
||||
"password": "niucloud123", |
|
||||
"database": "niucloud", |
|
||||
"ssl": false |
|
||||
} |
|
||||
Binary file not shown.
@ -1,326 +0,0 @@ |
|||||
#!/bin/bash |
|
||||
|
|
||||
# 颜色输出函数 |
|
||||
print_message() { |
|
||||
echo -e "\033[1;32m[INFO] $1\033[0m" |
|
||||
} |
|
||||
|
|
||||
print_warning() { |
|
||||
echo -e "\033[1;33m[WARNING] $1\033[0m" |
|
||||
} |
|
||||
|
|
||||
print_error() { |
|
||||
echo -e "\033[1;31m[ERROR] $1\033[0m" |
|
||||
} |
|
||||
|
|
||||
# 设置项目名称 |
|
||||
PROJECT_NAME="NiuCloud" |
|
||||
|
|
||||
# 检查Docker环境 |
|
||||
check_docker() { |
|
||||
if ! command -v docker &> /dev/null; then |
|
||||
print_error "Docker未安装,请先安装Docker" |
|
||||
exit 1 |
|
||||
fi |
|
||||
if ! command -v docker-compose &> /dev/null; then |
|
||||
print_error "Docker Compose未安装,请先安装Docker Compose" |
|
||||
exit 1 |
|
||||
fi |
|
||||
} |
|
||||
|
|
||||
# 创建必要的目录结构 |
|
||||
create_directories() { |
|
||||
print_message "创建必要的目录结构..." |
|
||||
mkdir -p docker/{logs/{nginx,mysql},data/{mysql,redis,node_modules},nginx/conf.d,php,mysql,redis} |
|
||||
} |
|
||||
|
|
||||
# 检查并生成配置文件 |
|
||||
check_config_files() { |
|
||||
print_message "检查必要的配置文件..." |
|
||||
|
|
||||
# Nginx 主配置 |
|
||||
if [ ! -f "docker/nginx/nginx.conf" ]; then |
|
||||
print_warning "Nginx主配置文件不存在,创建默认配置..." |
|
||||
cat > docker/nginx/nginx.conf << 'EOF' |
|
||||
user nginx; |
|
||||
worker_processes auto; |
|
||||
error_log /var/log/nginx/error.log warn; |
|
||||
pid /var/run/nginx.pid; |
|
||||
|
|
||||
events { |
|
||||
worker_connections 1024; |
|
||||
} |
|
||||
|
|
||||
http { |
|
||||
include /etc/nginx/mime.types; |
|
||||
default_type application/octet-stream; |
|
||||
|
|
||||
log_format main '$remote_addr - $remote_user [$time_local] "$request" ' |
|
||||
'$status $body_bytes_sent "$http_referer" ' |
|
||||
'"$http_user_agent" "$http_x_forwarded_for"'; |
|
||||
|
|
||||
access_log /var/log/nginx/access.log main; |
|
||||
|
|
||||
sendfile on; |
|
||||
keepalive_timeout 65; |
|
||||
client_max_body_size 20M; |
|
||||
|
|
||||
include /etc/nginx/conf.d/*.conf; |
|
||||
} |
|
||||
EOF |
|
||||
fi |
|
||||
|
|
||||
# Nginx 站点配置 |
|
||||
if [ ! -f "docker/nginx/conf.d/default.conf" ]; then |
|
||||
print_warning "Nginx站点配置文件不存在,创建默认配置..." |
|
||||
cat > docker/nginx/conf.d/default.conf << 'EOF' |
|
||||
server { |
|
||||
listen 80; |
|
||||
server_name localhost; |
|
||||
root /var/www/html/public; |
|
||||
index index.php index.html; |
|
||||
|
|
||||
location / { |
|
||||
try_files $uri $uri/ /index.php?$query_string; |
|
||||
} |
|
||||
|
|
||||
location ~ \.php$ { |
|
||||
fastcgi_pass php:9000; |
|
||||
fastcgi_index index.php; |
|
||||
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; |
|
||||
include fastcgi_params; |
|
||||
} |
|
||||
} |
|
||||
|
|
||||
server { |
|
||||
listen 8080; |
|
||||
server_name localhost; |
|
||||
root /var/www/admin; |
|
||||
index index.html; |
|
||||
|
|
||||
location / { |
|
||||
try_files $uri $uri/ /index.html; |
|
||||
} |
|
||||
} |
|
||||
EOF |
|
||||
fi |
|
||||
|
|
||||
# PHP 配置 |
|
||||
if [ ! -f "docker/php/php.ini" ]; then |
|
||||
print_warning "PHP配置文件不存在,创建默认配置..." |
|
||||
cat > docker/php/php.ini << 'EOF' |
|
||||
[PHP] |
|
||||
memory_limit = 256M |
|
||||
upload_max_filesize = 20M |
|
||||
post_max_size = 20M |
|
||||
max_execution_time = 300 |
|
||||
date.timezone = Asia/Shanghai |
|
||||
display_errors = On |
|
||||
error_reporting = E_ALL |
|
||||
log_errors = On |
|
||||
error_log = /var/log/php_errors.log |
|
||||
|
|
||||
[opcache] |
|
||||
opcache.enable=1 |
|
||||
opcache.memory_consumption=128 |
|
||||
opcache.interned_strings_buffer=8 |
|
||||
opcache.max_accelerated_files=4000 |
|
||||
EOF |
|
||||
fi |
|
||||
|
|
||||
# PHP-FPM 配置 |
|
||||
if [ ! -f "docker/php/www.conf" ]; then |
|
||||
print_warning "PHP-FPM配置文件不存在,创建默认配置..." |
|
||||
cat > docker/php/www.conf << 'EOF' |
|
||||
[www] |
|
||||
user = www-data |
|
||||
group = www-data |
|
||||
listen = 9000 |
|
||||
pm = dynamic |
|
||||
pm.max_children = 5 |
|
||||
pm.start_servers = 2 |
|
||||
pm.min_spare_servers = 1 |
|
||||
pm.max_spare_servers = 3 |
|
||||
EOF |
|
||||
fi |
|
||||
|
|
||||
# MySQL 配置 |
|
||||
if [ ! -f "docker/mysql/my.cnf" ]; then |
|
||||
print_warning "MySQL配置文件不存在,创建默认配置..." |
|
||||
cat > docker/mysql/my.cnf << 'EOF' |
|
||||
[mysqld] |
|
||||
character-set-server = utf8mb4 |
|
||||
collation-server = utf8mb4_unicode_ci |
|
||||
default-authentication-plugin = mysql_native_password |
|
||||
max_allowed_packet = 64M |
|
||||
sql_mode = '' |
|
||||
|
|
||||
[client] |
|
||||
default-character-set = utf8mb4 |
|
||||
EOF |
|
||||
fi |
|
||||
|
|
||||
# Redis 配置 |
|
||||
if [ ! -f "docker/redis/redis.conf" ]; then |
|
||||
print_warning "Redis配置文件不存在,创建默认配置..." |
|
||||
cat > docker/redis/redis.conf << 'EOF' |
|
||||
requirepass niucloud123456 |
|
||||
appendonly yes |
|
||||
EOF |
|
||||
fi |
|
||||
} |
|
||||
|
|
||||
# 启动服务 |
|
||||
start_services() { |
|
||||
print_message "启动 ${PROJECT_NAME} 服务..." |
|
||||
|
|
||||
# 检查是否存在冲突的容器并清理 |
|
||||
print_message "检查并清理可能冲突的容器..." |
|
||||
|
|
||||
# 检查并停止冲突的容器 |
|
||||
for container in niucloud_mysql niucloud_redis niucloud_php niucloud_nginx niucloud_composer niucloud_node; do |
|
||||
if docker ps -a --format "table {{.Names}}" | grep -q "^${container}$"; then |
|
||||
print_warning "发现已存在的容器: $container,正在清理..." |
|
||||
docker stop $container 2>/dev/null || true |
|
||||
docker rm $container 2>/dev/null || true |
|
||||
fi |
|
||||
done |
|
||||
|
|
||||
# 清理可能存在的网络 |
|
||||
if docker network ls --format "table {{.Name}}" | grep -q "^zhjwxt_niucloud_network$"; then |
|
||||
print_warning "发现已存在的网络,正在清理..." |
|
||||
docker network rm zhjwxt_niucloud_network 2>/dev/null || true |
|
||||
fi |
|
||||
|
|
||||
# 启动服务 |
|
||||
docker-compose up -d |
|
||||
} |
|
||||
|
|
||||
# 停止服务 |
|
||||
stop_services() { |
|
||||
print_message "停止 ${PROJECT_NAME} 服务..." |
|
||||
docker-compose down |
|
||||
} |
|
||||
|
|
||||
# 强制清理所有容器和网络 |
|
||||
force_cleanup() { |
|
||||
print_message "强制清理所有相关容器和网络..." |
|
||||
|
|
||||
# 停止并删除所有相关容器 |
|
||||
for container in niucloud_mysql niucloud_redis niucloud_php niucloud_nginx niucloud_composer niucloud_node; do |
|
||||
if docker ps -a --format "table {{.Names}}" | grep -q "^${container}$"; then |
|
||||
print_warning "正在删除容器: $container" |
|
||||
docker stop $container 2>/dev/null || true |
|
||||
docker rm $container 2>/dev/null || true |
|
||||
fi |
|
||||
done |
|
||||
|
|
||||
# 删除网络 |
|
||||
if docker network ls --format "table {{.Name}}" | grep -q "^zhjwxt_niucloud_network$"; then |
|
||||
print_warning "正在删除网络: zhjwxt_niucloud_network" |
|
||||
docker network rm zhjwxt_niucloud_network 2>/dev/null || true |
|
||||
fi |
|
||||
|
|
||||
# 删除未使用的网络 |
|
||||
docker network prune -f 2>/dev/null || true |
|
||||
|
|
||||
print_message "清理完成!" |
|
||||
} |
|
||||
|
|
||||
# 重启服务 |
|
||||
restart_services() { |
|
||||
print_message "重启 ${PROJECT_NAME} 服务..." |
|
||||
docker-compose restart |
|
||||
} |
|
||||
|
|
||||
# 查看服务状态 |
|
||||
check_status() { |
|
||||
print_message "${PROJECT_NAME} 服务状态:" |
|
||||
docker-compose ps |
|
||||
} |
|
||||
|
|
||||
# 查看服务日志 |
|
||||
view_logs() { |
|
||||
service=$1 |
|
||||
if [ -z "$service" ]; then |
|
||||
print_message "查看所有服务日志..." |
|
||||
docker-compose logs |
|
||||
else |
|
||||
print_message "查看 $service 服务日志..." |
|
||||
docker-compose logs $service |
|
||||
fi |
|
||||
} |
|
||||
|
|
||||
# 初始化项目 |
|
||||
init_project() { |
|
||||
print_message "初始化 ${PROJECT_NAME} 项目..." |
|
||||
|
|
||||
# 检查是否存在 docker-compose.yml |
|
||||
if [ ! -f "docker-compose.yml" ]; then |
|
||||
print_error "缺少 docker-compose.yml 文件,请先创建!" |
|
||||
exit 1 |
|
||||
fi |
|
||||
|
|
||||
create_directories |
|
||||
check_config_files |
|
||||
|
|
||||
# 构建自定义 PHP 镜像 |
|
||||
print_message "构建自定义 PHP 镜像..." |
|
||||
docker build -t niucloud-php:8.2 ./docker/php |
|
||||
|
|
||||
# 拉取其他 Docker 镜像 |
|
||||
print_message "拉取Docker镜像..." |
|
||||
docker-compose pull |
|
||||
|
|
||||
print_message "项目初始化完成,现在可以启动服务了" |
|
||||
} |
|
||||
|
|
||||
# 显示帮助信息 |
|
||||
show_help() { |
|
||||
echo "用法: $0 [选项]" |
|
||||
echo "" |
|
||||
echo "选项:" |
|
||||
echo " start 启动所有服务" |
|
||||
echo " stop 停止所有服务" |
|
||||
echo " restart 重启所有服务" |
|
||||
echo " status 查看服务状态" |
|
||||
echo " logs 查看所有服务日志" |
|
||||
echo " logs <服务名> 查看指定服务日志" |
|
||||
echo " cleanup 强制清理所有容器和网络" |
|
||||
echo " init 初始化项目" |
|
||||
echo " help 显示此帮助信息" |
|
||||
} |
|
||||
|
|
||||
# 主程序入口 |
|
||||
main() { |
|
||||
check_docker |
|
||||
|
|
||||
case "$1" in |
|
||||
start) |
|
||||
start_services |
|
||||
;; |
|
||||
stop) |
|
||||
stop_services |
|
||||
;; |
|
||||
restart) |
|
||||
restart_services |
|
||||
;; |
|
||||
status) |
|
||||
check_status |
|
||||
;; |
|
||||
logs) |
|
||||
view_logs "$2" |
|
||||
;; |
|
||||
cleanup) |
|
||||
force_cleanup |
|
||||
;; |
|
||||
init) |
|
||||
init_project |
|
||||
;; |
|
||||
help|*) |
|
||||
show_help |
|
||||
;; |
|
||||
esac |
|
||||
} |
|
||||
|
|
||||
main "$@" |
|
||||
@ -1,24 +0,0 @@ |
|||||
#!/bin/bash |
|
||||
# start-claude-v2ray.sh |
|
||||
|
|
||||
echo "检查 V2Ray 是否运行..." |
|
||||
if ! pgrep -x "v2ray" > /dev/null; then |
|
||||
echo "启动 V2Ray..." |
|
||||
nohup v2ray run -config config.json > /tmp/v2ray.log 2>&1 & |
|
||||
sleep 3 |
|
||||
fi |
|
||||
|
|
||||
echo "设置代理: 127.0.0.1:1087" |
|
||||
export HTTP_PROXY=http://127.0.0.1:1087 |
|
||||
export HTTPS_PROXY=http://127.0.0.1:1087 |
|
||||
|
|
||||
# 测试连接 |
|
||||
echo "测试代理连接..." |
|
||||
if curl --proxy $HTTP_PROXY --max-time 10 -s https://api.anthropic.com > /dev/null; then |
|
||||
echo "✅ 代理连接正常" |
|
||||
echo "启动 Claude Code..." |
|
||||
claude |
|
||||
else |
|
||||
echo "❌ 代理连接失败,请检查 V2Ray 配置" |
|
||||
exit 1 |
|
||||
fi |
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Loading…
Reference in new issue