6336 lines
266 KiB
Markdown
6336 lines
266 KiB
Markdown
# 设计师任务抢单管理系统 - 项目需求文档
|
||
|
||
## 📋 项目概述
|
||
|
||
### 1.1 项目背景
|
||
本系统旨在建立一个高效的设计师任务分配与管理平台,通过积分制度和任务大厅机制,实现设计任务的智能分配、进度跟踪和绩效评估。
|
||
|
||
### 1.2 项目目标
|
||
- 提高设计任务分配效率
|
||
- 实现任务进度可视化管理
|
||
- 建立公平的积分激励机制
|
||
- 提供多维度的数据分析和绩效评估
|
||
- 增强团队协作和透明度
|
||
|
||
### 1.3 核心价值
|
||
- **效率提升**:自动化任务分配,减少人工协调成本
|
||
- **透明化管理**:实时查看任务进度和设计师工作负荷
|
||
- **激励机制**:积分制度激发设计师积极性
|
||
- **数据驱动**:多维度数据分析支持决策优化
|
||
|
||
---
|
||
|
||
## 🏗️ 系统架构设计
|
||
|
||
### 2.1 技术栈建议
|
||
|
||
#### 前端技术栈
|
||
- **框架**:Vue 3 + TypeScript / React 18 + TypeScript
|
||
- **UI组件库**:Ant Design Vue / Ant Design / Element Plus
|
||
- **状态管理**:Pinia / Zustand / Redux Toolkit
|
||
- **路由管理**:Vue Router / React Router
|
||
- **图表库**:ECharts / Apache ECharts
|
||
- **日历组件**:FullCalendar / Vue-Calendar
|
||
- **文件上传**:Vue-Upload-Component / react-dropzone
|
||
- **HTTP客户端**:Axios
|
||
|
||
#### 后端技术栈
|
||
- **主框架**:Spring Boot 3.x / Node.js (NestJS / Express)
|
||
- **数据库**:MySQL 8.0 + Redis
|
||
- **ORM框架**:MyBatis Plus / Hibernate / TypeORM
|
||
- **认证授权**:
|
||
- OAuth 2.0 / OpenID Connect
|
||
- 推荐开源方案:Keycloak / Auth0 / Casdoor
|
||
- JWT Token
|
||
- **钉钉集成**:DingTalk Open API SDK
|
||
- **文件存储**:阿里云OSS / MinIO / 七牛云
|
||
- **任务调度**:Quartz / XXL-JOB
|
||
- **API文档**:Swagger / OpenAPI
|
||
|
||
#### 数据库设计
|
||
- **主数据库**:MySQL(业务数据)
|
||
- **缓存层**:Redis(会话、热点数据)
|
||
- **搜索引擎**:Elasticsearch(可选,用于高级搜索)
|
||
|
||
#### 部署方案
|
||
- **容器化**:Docker + Docker Compose
|
||
- **CI/CD**:Jenkins / GitLab CI / GitHub Actions
|
||
- **服务器**:Nginx(反向代理)+ 应用服务器
|
||
|
||
### 2.2 系统模块划分
|
||
|
||
```
|
||
├── 用户认证模块
|
||
│ ├── 开源认证系统集成
|
||
│ ├── 钉钉登录集成
|
||
│ └── 权限管理
|
||
├── 组织架构模块
|
||
│ ├── 组织架构同步
|
||
│ ├── 部门类型管理(需求部门/接单部门)
|
||
│ ├── 团队管理
|
||
│ ├── 部门负责人管理
|
||
│ └── 积分池管理
|
||
├── 任务管理模块
|
||
│ ├── 任务发起
|
||
│ ├── 任务分配
|
||
│ ├── 任务接收
|
||
│ ├── 任务审核
|
||
│ └── 任务调配(管理员)
|
||
├── 任务大厅模块
|
||
│ ├── 任务列表展示
|
||
│ ├── 任务搜索筛选
|
||
│ └── 任务抢单
|
||
├── 进度管理模块
|
||
│ ├── 我的任务进度
|
||
│ ├── 日历视图
|
||
│ └── 任务状态追踪
|
||
├── 设计师大厅模块
|
||
│ ├── 设计师列表
|
||
│ ├── 实时进度看板
|
||
│ └── 积分统计
|
||
├── 数据分析模块
|
||
│ ├── 绩效统计
|
||
│ ├── 需求统计展板
|
||
│ ├── 多维度报表
|
||
│ └── 排行榜
|
||
├── 系统配置模块
|
||
│ ├── 需求类型配置
|
||
│ ├── 品牌配置
|
||
│ ├── 类目配置
|
||
│ ├── 平台配置
|
||
│ └── 激励系统配置
|
||
├── 激励系统模块
|
||
│ ├── 成就勋章系统
|
||
│ ├── 实时排名系统
|
||
│ ├── 里程碑提醒
|
||
│ ├── 目标管理
|
||
│ ├── 每日签到
|
||
│ ├── 竞赛活动
|
||
│ ├── 团队PK
|
||
│ └── 智能推荐
|
||
├── 激励配置管理模块(管理员)
|
||
│ ├── 激励游戏开关
|
||
│ ├── 成就勋章配置
|
||
│ ├── 自动奖励规则配置
|
||
│ ├── 竞赛活动管理
|
||
│ ├── 团队PK管理
|
||
│ ├── 排名规则配置
|
||
│ └── 激励积分池管理
|
||
└── 通知提醒模块
|
||
├── 站内消息
|
||
├── 钉钉推送
|
||
└── 邮件通知
|
||
```
|
||
|
||
---
|
||
|
||
## 📝 功能需求详细说明
|
||
|
||
## 一、用户认证与授权模块
|
||
|
||
### 1.1 开源认证系统集成
|
||
|
||
#### 推荐方案
|
||
**Casdoor** - 开源的身份访问管理平台
|
||
- 优势:
|
||
- 支持多种身份提供商(钉钉、企业微信等)
|
||
- 提供完整的UI界面
|
||
- 易于集成和定制
|
||
- 支持RBAC权限模型
|
||
- 开源免费
|
||
|
||
#### 功能要点
|
||
- 用户注册与登录
|
||
- 单点登录(SSO)
|
||
- 会话管理
|
||
- 密码策略管理
|
||
- 安全日志记录
|
||
|
||
### 1.2 钉钉登录集成
|
||
|
||
#### 实现方式
|
||
```
|
||
流程:
|
||
1. 用户点击"钉钉登录"
|
||
2. 跳转到钉钉授权页面
|
||
3. 用户授权后回调系统
|
||
4. 系统获取钉钉用户信息
|
||
5. 查询并同步组织架构
|
||
6. 匹配或创建系统用户
|
||
7. 生成JWT Token
|
||
8. 跳转到系统首页
|
||
```
|
||
|
||
#### 组织架构同步
|
||
- **同步频率**:定时任务(每天凌晨)+ 手动触发
|
||
- **同步内容**:
|
||
- 部门层级结构
|
||
- 用户基本信息(姓名、工号、头像)
|
||
- 用户部门关系
|
||
- 团队积分池配置
|
||
|
||
#### 权限角色设计
|
||
| 角色 | 权限说明 |
|
||
|------|----------|
|
||
| 超级管理员 | 系统全部权限,配置管理,任务全局调配 |
|
||
| 管理员 | 任务调配、任务转移、查看全部任务数据 |
|
||
| 需求部门负责人 | 发起任务、查看本部门数据、设置积分消耗限制、管理部门成员 |
|
||
| 接单部门主管 | 任务分配、审核、查看所属团队数据 |
|
||
| 设计师(接单部门) | 接收任务、提交交付、查看个人数据 |
|
||
| 需求方(需求部门) | 发起任务、审核交付、查看自己发起的任务 |
|
||
| 观察者 | 只读权限,查看数据分析 |
|
||
|
||
---
|
||
|
||
## 一之二、组织架构与部门管理模块
|
||
|
||
### 1.3 功能概述
|
||
组织架构管理是系统的基础模块,通过部门分类(需求部门/接单部门)实现职责明确的任务流转。需求部门负责发起任务并提供积分,接单部门负责接收和完成任务。
|
||
|
||
### 1.4 部门类型管理
|
||
|
||
#### 1.4.1 部门类型定义
|
||
|
||
**两种部门类型**
|
||
|
||
| 部门类型 | 职责 | 权限 | 积分关系 |
|
||
|---------|------|------|---------|
|
||
| 需求部门 | 发起设计需求 | 只能发布任务,不能接单 | 拥有积分池,发布任务消耗积分 |
|
||
| 接单部门 | 接收并完成任务 | 只能接单,不能发起任务 | 完成任务获得积分奖励 |
|
||
|
||
**典型场景示例**
|
||
```
|
||
需求部门:
|
||
- 产品部
|
||
- 市场部
|
||
- 运营部
|
||
- 电商部
|
||
|
||
接单部门:
|
||
- 设计部
|
||
- 视觉设计组
|
||
- UI设计组
|
||
- 视频制作组
|
||
```
|
||
|
||
#### 1.4.2 部门类型配置界面
|
||
|
||
**部门列表管理**
|
||
```
|
||
┌──────────────────────────────────────────────────┐
|
||
│ 组织架构 - 部门管理 │
|
||
├──────────────────────────────────────────────────┤
|
||
│ 🔄 [同步钉钉组织架构] [+ 新增部门] │
|
||
│ ──────────────────────────────────────────── │
|
||
│ │
|
||
│ 🏢 公司总部 │
|
||
│ │ │
|
||
│ ├─ 📋 产品部 [需求部门] │
|
||
│ │ 负责人:张三 │
|
||
│ │ 成员:15人 | 积分池:5,000 │
|
||
│ │ 消耗限制:500分/周 │
|
||
│ │ [编辑] [查看详情] [设置负责人] │
|
||
│ │ │
|
||
│ ├─ 📋 市场部 [需求部门] │
|
||
│ │ 负责人:李四 │
|
||
│ │ 成员:12人 | 积分池:3,500 │
|
||
│ │ 消耗限制:无限制 │
|
||
│ │ [编辑] [查看详情] [设置负责人] │
|
||
│ │ │
|
||
│ ├─ 🎨 设计部 [接单部门] │
|
||
│ │ 主管:王五 │
|
||
│ │ 成员:25人 | 本月完成:156个任务 │
|
||
│ │ [编辑] [查看详情] [管理成员] │
|
||
│ │ │
|
||
│ └─ 📺 视频制作组 [接单部门] │
|
||
│ 主管:赵六 │
|
||
│ 成员:8人 | 本月完成:45个任务 │
|
||
│ [编辑] [查看详情] [管理成员] │
|
||
│ │
|
||
└──────────────────────────────────────────────────┘
|
||
```
|
||
|
||
**编辑部门表单**
|
||
```
|
||
┌───────────────────────────────────┐
|
||
│ 编辑部门 │
|
||
├───────────────────────────────────┤
|
||
│ 部门名称: │
|
||
│ [产品部] │
|
||
│ │
|
||
│ [必填] 部门类型: │
|
||
│ ● 需求部门 │
|
||
│ ○ 接单部门 │
|
||
│ │
|
||
│ 上级部门: │
|
||
│ [公司总部 ▼] │
|
||
│ │
|
||
│ 部门描述: │
|
||
│ ┌─────────────────────────────┐ │
|
||
│ │ 负责产品设计需求... │ │
|
||
│ └─────────────────────────────┘ │
|
||
│ │
|
||
│ === 需求部门专属配置 === │
|
||
│ │
|
||
│ 部门负责人: │
|
||
│ [张三 ▼] │
|
||
│ │
|
||
│ 积分池余额: │
|
||
│ [5000] 分 │
|
||
│ │
|
||
│ 积分消耗限制: │
|
||
│ ☑ 启用消耗限制 │
|
||
│ 周期:[每周 ▼] │
|
||
│ 限制:[500] 分 │
|
||
│ │
|
||
│ 预警设置: │
|
||
│ ☑ 剩余20%时预警 │
|
||
│ ☑ 超过限制时预警 │
|
||
│ │
|
||
│ === 接单部门专属配置 === │
|
||
│ (部门类型为需求部门时隐藏) │
|
||
│ │
|
||
│ 部门主管: │
|
||
│ [王五 ▼] │
|
||
│ │
|
||
│ 可接单的需求类型: │
|
||
│ ☑ 主图设计 │
|
||
│ ☑ 详情页设计 │
|
||
│ ☑ 视频剪辑 │
|
||
│ ☐ 图片修图 │
|
||
│ │
|
||
│ [取消] [保存] │
|
||
└───────────────────────────────────┘
|
||
```
|
||
|
||
#### 1.4.3 部门类型权限控制
|
||
|
||
**权限验证规则**
|
||
```javascript
|
||
// 发起任务权限验证
|
||
function canPublishTask(user) {
|
||
// 1. 检查用户所属部门
|
||
const userDept = user.department;
|
||
|
||
// 2. 验证部门类型
|
||
if (userDept.type !== 'DEMAND') {
|
||
return {
|
||
allowed: false,
|
||
message: '您所在的部门为接单部门,无权发起任务'
|
||
};
|
||
}
|
||
|
||
// 3. 检查积分余额
|
||
if (userDept.scoreBalance < minScore) {
|
||
return {
|
||
allowed: false,
|
||
message: '部门积分余额不足,请联系部门负责人充值'
|
||
};
|
||
}
|
||
|
||
// 4. 检查消耗限制
|
||
if (userDept.hasLimit && userDept.periodUsed >= userDept.periodLimit) {
|
||
return {
|
||
allowed: false,
|
||
message: `已达到本${userDept.limitPeriod}消耗上限,请等待下一周期或联系负责人调整`
|
||
};
|
||
}
|
||
|
||
return { allowed: true };
|
||
}
|
||
|
||
// 接单权限验证
|
||
function canReceiveTask(user, task) {
|
||
// 1. 检查用户所属部门
|
||
const userDept = user.department;
|
||
|
||
// 2. 验证部门类型
|
||
if (userDept.type !== 'RECEIVER') {
|
||
return {
|
||
allowed: false,
|
||
message: '您所在的部门为需求部门,无法接收任务'
|
||
};
|
||
}
|
||
|
||
// 3. 检查技能匹配(可选)
|
||
if (!userDept.allowedDemandTypes.includes(task.demandType)) {
|
||
return {
|
||
allowed: false,
|
||
message: '您所在部门不支持该类型的任务'
|
||
};
|
||
}
|
||
|
||
return { allowed: true };
|
||
}
|
||
```
|
||
|
||
**前端权限控制**
|
||
```
|
||
需求部门用户登录后:
|
||
✓ 显示"发起任务"按钮
|
||
✗ 隐藏"任务大厅"(抢单)
|
||
✓ 显示"我发起的任务"
|
||
✗ 隐藏"我接收的任务"
|
||
|
||
接单部门用户登录后:
|
||
✗ 隐藏"发起任务"按钮
|
||
✓ 显示"任务大厅"(抢单)
|
||
✗ 隐藏"我发起的任务"
|
||
✓ 显示"我接收的任务"
|
||
```
|
||
|
||
### 1.5 需求部门负责人管理
|
||
|
||
#### 1.5.1 负责人设置
|
||
|
||
**设置负责人**
|
||
```
|
||
┌───────────────────────────────────┐
|
||
│ 设置部门负责人 │
|
||
├───────────────────────────────────┤
|
||
│ 部门:产品部(需求部门) │
|
||
│ 当前负责人:张三 │
|
||
│ │
|
||
│ 更改负责人: │
|
||
│ [搜索部门成员] │
|
||
│ ○ 张三(当前) │
|
||
│ ○ 李四 │
|
||
│ ● 王五 │
|
||
│ ○ 赵六 │
|
||
│ │
|
||
│ 授权权限: │
|
||
│ ☑ 查看部门所有任务 │
|
||
│ ☑ 管理部门积分池 │
|
||
│ ☑ 设置积分消耗限制 │
|
||
│ ☑ 审批部门成员发起的任务(可选)│
|
||
│ ☑ 查看部门数据统计 │
|
||
│ ☑ 管理部门成员 │
|
||
│ │
|
||
│ 生效时间: │
|
||
│ ● 立即生效 │
|
||
│ ○ 指定时间 [日期选择器] │
|
||
│ │
|
||
│ 通知方式: │
|
||
│ ☑ 站内消息 │
|
||
│ ☑ 钉钉通知 │
|
||
│ ☑ 邮件通知 │
|
||
│ │
|
||
│ [取消] [确认] │
|
||
└───────────────────────────────────┘
|
||
```
|
||
|
||
#### 1.5.2 积分消耗限制管理
|
||
|
||
**限制设置界面**
|
||
```
|
||
┌──────────────────────────────────────────────┐
|
||
│ 积分消耗限制管理 - 产品部 │
|
||
├──────────────────────────────────────────────┤
|
||
│ 部门负责人:张三 │
|
||
│ 积分池余额:5,000 分 │
|
||
│ ──────────────────────────────────────── │
|
||
│ │
|
||
│ 消耗限制设置: │
|
||
│ ☑ 启用积分消耗限制 │
|
||
│ │
|
||
│ 限制周期: │
|
||
│ ○ 每天 │
|
||
│ ● 每周 │
|
||
│ ○ 每月 │
|
||
│ │
|
||
│ 限制额度: │
|
||
│ [500] 分 / 周 │
|
||
│ │
|
||
│ 本周期统计(2025.11.04 - 2025.11.10): │
|
||
│ ┌────────────────────────────────────┐ │
|
||
│ │ 已消耗:320 分(64%) │ │
|
||
│ │ 剩余额度:180 分 │ │
|
||
│ │ 进度:████████░░░ 64% │ │
|
||
│ │ │ │
|
||
│ │ 本周发起任务:18 个 │ │
|
||
│ │ 待审核:2 个 │ │
|
||
│ │ 进行中:12 个 │ │
|
||
│ │ 已完成:4 个 │ │
|
||
│ └────────────────────────────────────┘ │
|
||
│ │
|
||
│ 预警设置: │
|
||
│ ☑ 达到 80% 时预警(400分) │
|
||
│ ☑ 达到 100% 时禁止发起新任务 │
|
||
│ ☑ 每周一发送消耗报告 │
|
||
│ │
|
||
│ 超限处理: │
|
||
│ ● 禁止发起新任务 │
|
||
│ ○ 仅提醒,不限制 │
|
||
│ ○ 需要管理员审批 │
|
||
│ │
|
||
│ 历史记录: │
|
||
│ ┌────────────────────────────────────┐ │
|
||
│ │ 2025-11-04周:已用420/500(84%) │ │
|
||
│ │ 2025-10-28周:已用480/500(96%) │ │
|
||
│ │ 2025-10-21周:已用350/500(70%) │ │
|
||
│ │ [查看更多] │ │
|
||
│ └────────────────────────────────────┘ │
|
||
│ │
|
||
│ 临时调整: │
|
||
│ [本周期临时增加额度] [暂停限制1周] │
|
||
│ │
|
||
│ [重置为默认] [保存配置] │
|
||
└──────────────────────────────────────────────┘
|
||
```
|
||
|
||
**消耗限制算法**
|
||
```javascript
|
||
// 检查是否可以发起任务
|
||
function checkScoreLimit(dept, taskScore) {
|
||
// 1. 检查是否启用限制
|
||
if (!dept.limitEnabled) {
|
||
return { allowed: true };
|
||
}
|
||
|
||
// 2. 获取当前周期
|
||
const currentPeriod = getCurrentPeriod(dept.limitPeriod);
|
||
|
||
// 3. 计算当前周期已使用
|
||
const periodUsed = calculatePeriodUsage(dept.id, currentPeriod);
|
||
|
||
// 4. 计算使用后的总额
|
||
const afterUse = periodUsed + taskScore;
|
||
|
||
// 5. 判断是否超限
|
||
if (afterUse > dept.periodLimit) {
|
||
return {
|
||
allowed: false,
|
||
message: `超过本${periodName}消耗限制`,
|
||
details: {
|
||
limit: dept.periodLimit,
|
||
used: periodUsed,
|
||
required: taskScore,
|
||
remaining: dept.periodLimit - periodUsed
|
||
}
|
||
};
|
||
}
|
||
|
||
// 6. 预警提示
|
||
const usageRate = afterUse / dept.periodLimit;
|
||
if (usageRate >= 0.8) {
|
||
return {
|
||
allowed: true,
|
||
warning: `将达到本${periodName}消耗限制的${(usageRate * 100).toFixed(0)}%`
|
||
};
|
||
}
|
||
|
||
return { allowed: true };
|
||
}
|
||
|
||
// 周期计算
|
||
function getCurrentPeriod(periodType) {
|
||
const now = new Date();
|
||
|
||
if (periodType === 'DAILY') {
|
||
return now.toISOString().split('T')[0]; // 2025-11-07
|
||
} else if (periodType === 'WEEKLY') {
|
||
const weekStart = getWeekStart(now); // 本周一
|
||
return weekStart.toISOString().split('T')[0];
|
||
} else if (periodType === 'MONTHLY') {
|
||
return `${now.getFullYear()}-${(now.getMonth() + 1).toString().padStart(2, '0')}`;
|
||
}
|
||
}
|
||
```
|
||
|
||
**超限提示**
|
||
```
|
||
┌─────────────────────────────────────┐
|
||
│ ⚠️ 积分消耗限制提醒 │
|
||
├─────────────────────────────────────┤
|
||
│ 您的部门本周积分消耗即将达到上限 │
|
||
│ │
|
||
│ 部门:产品部 │
|
||
│ 本周限制:500 分 │
|
||
│ 已使用:420 分(84%) │
|
||
│ 剩余额度:80 分 │
|
||
│ │
|
||
│ 本次任务需要:100 分 │
|
||
│ │
|
||
│ ❌ 无法发起任务 │
|
||
│ │
|
||
│ 建议: │
|
||
│ 1. 等待下周一重置(还剩2天) │
|
||
│ 2. 联系部门负责人临时增加额度 │
|
||
│ 3. 降低任务规模减少积分消耗 │
|
||
│ │
|
||
│ [联系负责人] [知道了] │
|
||
└─────────────────────────────────────┘
|
||
```
|
||
|
||
### 1.6 部门数据权限
|
||
|
||
**数据可见性规则**
|
||
```
|
||
需求部门负责人可见:
|
||
✓ 本部门所有成员发起的任务
|
||
✓ 本部门积分使用明细
|
||
✓ 本部门消耗统计和趋势
|
||
✓ 本部门成员需求发起排名
|
||
✗ 其他部门的任务和数据
|
||
|
||
接单部门主管可见:
|
||
✓ 本部门所有设计师接收的任务
|
||
✓ 本部门设计师的进度和绩效
|
||
✓ 本部门获得的积分统计
|
||
✓ 本部门设计师排行榜
|
||
✗ 其他部门的设计师数据
|
||
|
||
超级管理员/管理员:
|
||
✓ 全部部门的所有数据
|
||
```
|
||
|
||
---
|
||
|
||
## 二、任务发起模块
|
||
|
||
### 2.1 功能流程图
|
||
|
||
```
|
||
开始 → 检查用户权限 → 查询团队积分 → 填写任务信息 → 计算所需积分
|
||
→ 积分验证 → 选择发布类型 → 提交审核 → 发送通知 → 结束
|
||
```
|
||
|
||
### 2.2 详细功能点
|
||
|
||
#### 2.2.1 需求类型选择
|
||
|
||
**配置管理(系统设置)**
|
||
- 需求类型名称(如:主图设计、详情页设计、视频剪辑等)
|
||
- 单价分值(每个类型对应的积分单价)
|
||
- 预估耗时(小时/天)
|
||
- 类型状态(启用/禁用)
|
||
- 类型描述和要求
|
||
|
||
**前端交互**
|
||
- 下拉选择框展示已启用的需求类型
|
||
- 快速新增按钮(需管理员权限)
|
||
- 显示类型详细信息(单价、耗时)
|
||
|
||
**数据示例**
|
||
| 需求类型 | 单价分值 | 预估耗时 | 状态 |
|
||
|----------|----------|----------|------|
|
||
| 主图设计 | 50 | 4小时 | 启用 |
|
||
| 详情页设计 | 200 | 2天 | 启用 |
|
||
| 视频剪辑 | 150 | 1天 | 启用 |
|
||
| 图片修图 | 30 | 2小时 | 启用 |
|
||
|
||
#### 2.2.2 数量输入与积分计算
|
||
|
||
**实时计算逻辑**
|
||
```javascript
|
||
总积分 = 需求类型单价 × 数量
|
||
预估完成时间 = 需求类型耗时 × 数量
|
||
```
|
||
|
||
**积分验证机制**
|
||
```
|
||
1. 实时查询用户所属团队的积分池余额
|
||
2. 对比:总积分 vs 团队余额
|
||
3. 不足时:
|
||
- 显示红色警告
|
||
- 显示当前余额和所需积分
|
||
- 提示联系管理员充值
|
||
- 禁用提交按钮
|
||
4. 充足时:
|
||
- 显示绿色提示
|
||
- 显示扣除后余额
|
||
- 允许提交
|
||
```
|
||
|
||
**优化建议**
|
||
- 添加积分预算预警功能(余额<阈值时提前通知)
|
||
- 团队积分充值审批流程
|
||
- 积分使用历史记录和统计
|
||
|
||
#### 2.2.3 任务类型选择
|
||
- **新品**:全新产品的设计需求
|
||
- **优化**:对已有设计进行优化改进
|
||
- **改图**:对现有图片进行修改
|
||
- **其它**:自定义说明的其他需求
|
||
|
||
#### 2.2.4 品牌选择
|
||
|
||
**配置管理(系统设置)**
|
||
- 品牌名称
|
||
- 品牌LOGO
|
||
- 品牌说明
|
||
- 品牌风格指南(可选)
|
||
- 状态(启用/禁用)
|
||
|
||
**前端展示**
|
||
- 下拉选择框
|
||
- 支持搜索过滤
|
||
- 显示品牌LOGO和名称
|
||
|
||
#### 2.2.5 叶子类目选择
|
||
|
||
**配置管理(系统设置)**
|
||
- 多级类目树形结构
|
||
- 类目名称
|
||
- 类目层级(一级/二级/三级/叶子类目)
|
||
- 关联品牌(可选)
|
||
- 状态管理
|
||
|
||
**前端交互**
|
||
- 级联选择器
|
||
- 支持搜索
|
||
- 只能选择叶子类目
|
||
|
||
**数据结构示例**
|
||
```
|
||
服装
|
||
├── 女装
|
||
│ ├── 连衣裙 [叶子]
|
||
│ ├── T恤 [叶子]
|
||
│ └── 裤子 [叶子]
|
||
└── 男装
|
||
├── 衬衫 [叶子]
|
||
└── 牛仔裤 [叶子]
|
||
```
|
||
|
||
#### 2.2.6 SPU信息输入
|
||
- 文本输入框
|
||
- 支持多行
|
||
- 字数限制(如500字)
|
||
- 支持复制粘贴
|
||
|
||
#### 2.2.7 平台选择
|
||
|
||
**配置管理(系统设置)**
|
||
- 平台名称(淘宝、天猫、京东、拼多多、抖音等)
|
||
- 平台图标
|
||
- 平台设计规范说明
|
||
- 状态管理
|
||
|
||
**前端交互**
|
||
- 下拉选择或标签选择
|
||
- 支持多选(一个任务可发布到多个平台)
|
||
|
||
#### 2.2.8 需求附件上传
|
||
|
||
**⚠️ 重要说明**
|
||
- **发布需求时**:只需上传需求表格文件(Excel/Word),无需上传设计源文件(PSD、AI等)
|
||
- **设计师交付时**:只需填写素材存储路径,无需上传文件到系统
|
||
|
||
**文件类型支持(仅需求表格)**
|
||
- 需求表格:.xls, .xlsx, .doc, .docx
|
||
- 参考文档:.pdf
|
||
- 压缩包:.zip(如需多个表格时)
|
||
|
||
**文件限制**
|
||
- 单文件大小:≤ 50MB
|
||
- 文件数量:≤ 5个(通常1-2个表格即可)
|
||
- 总大小:≤ 100MB
|
||
|
||
**功能要求**
|
||
- 拖拽上传
|
||
- 上传进度显示
|
||
- 文件预览(支持Excel/Word在线预览)
|
||
- 删除功能
|
||
- 下载功能
|
||
|
||
**设计说明**
|
||
```
|
||
┌────────────────────────────────────────┐
|
||
│ 上传需求表格 │
|
||
├────────────────────────────────────────┤
|
||
│ │
|
||
│ 📎 已上传文件: │
|
||
│ ┌──────────────────────────────────┐ │
|
||
│ │ 📄 11月主图设计需求表.xlsx │ │
|
||
│ │ 大小:2.3MB 上传时间:10:30 │ │
|
||
│ │ [预览] [下载] [删除] │ │
|
||
│ └──────────────────────────────────┘ │
|
||
│ │
|
||
│ [+ 点击上传] 或 拖拽文件到此处 │
|
||
│ │
|
||
│ 💡 提示: │
|
||
│ • 仅需上传需求说明表格 │
|
||
│ • 支持格式:Excel (.xlsx/.xls) │
|
||
│ • 无需上传设计源文件(PSD/AI等) │
|
||
│ • 设计师交付时仅需填写素材路径 │
|
||
│ │
|
||
└────────────────────────────────────────┘
|
||
```
|
||
|
||
#### 2.2.9 任务发布类型
|
||
|
||
##### A. 指定任务
|
||
- 从设计师列表中选择指定人员
|
||
- 显示该设计师当前任务负荷
|
||
- 支持选择多人(任务拆分)
|
||
- 任务直接进入指定设计师的待办列表
|
||
|
||
##### B. 招募任务(任务大厅)
|
||
- 任务发布到任务大厅
|
||
- 所有设计师可见
|
||
- 设计师主动抢单
|
||
- 遵循"先到先得"或"评分优先"规则
|
||
|
||
##### C. 默认模式(主管分配)
|
||
- 任务进入主管待分配池
|
||
- 主管根据设计师负荷和专长分配
|
||
- 主管可设置任务优先级
|
||
- 分配后通知设计师
|
||
|
||
**优化建议:智能推荐**
|
||
- 根据设计师历史任务类型匹配度推荐
|
||
- 根据设计师当前负荷推荐
|
||
- 根据设计师评分推荐
|
||
- AI自动分配模式(可选)
|
||
|
||
#### 2.2.10 交付地址信息(素材路径)
|
||
|
||
**⚠️ 重要说明**
|
||
设计师交付时**无需上传文件**到系统,只需填写或粘贴素材的存储路径即可。
|
||
|
||
**信息收集(由接收任务人填写)**
|
||
- 共享盘路径(如:\\\\server\\design\\2025-11\\project01\\)
|
||
- 云盘链接(如:https://pan.baidu.com/s/xxxxx)
|
||
- 本地服务器路径(如:/mnt/design/2025-11/)
|
||
- Git仓库地址(如:https://github.com/xxx/project.git)
|
||
- 其他说明(文件夹结构、命名规范等)
|
||
|
||
**填写时机**
|
||
- 任务接收时可选填写(预计交付位置)
|
||
- 任务进行中可修改
|
||
- 任务完成提交时必须填写(实际交付位置)
|
||
|
||
**交付路径输入界面**
|
||
```
|
||
┌────────────────────────────────────────┐
|
||
│ 填写素材交付路径 │
|
||
├────────────────────────────────────────┤
|
||
│ │
|
||
│ 素材存储路径:* │
|
||
│ ┌──────────────────────────────────┐ │
|
||
│ │ \\server\design\2025-11\main-img│ │
|
||
│ └──────────────────────────────────┘ │
|
||
│ │
|
||
│ 路径类型: │
|
||
│ ● 共享盘路径 ○ 云盘链接 ○ 其他 │
|
||
│ │
|
||
│ 文件夹结构说明: │
|
||
│ ┌──────────────────────────────────┐ │
|
||
│ │ /源文件(PSD、AI等) │ │
|
||
│ │ /导出图(JPG、PNG等) │ │
|
||
│ │ /参考素材 │ │
|
||
│ └──────────────────────────────────┘ │
|
||
│ │
|
||
│ 补充说明: │
|
||
│ ┌──────────────────────────────────┐ │
|
||
│ │ 已按需求表格顺序命名,请查收 │ │
|
||
│ └──────────────────────────────────┘ │
|
||
│ │
|
||
│ 💡 提示: │
|
||
│ • 请确保路径可访问 │
|
||
│ • 建议使用共享盘或云盘链接 │
|
||
│ • 无需上传文件到系统 │
|
||
│ • 确保文件夹权限已设置 │
|
||
│ │
|
||
│ [取消] [确认提交] │
|
||
└────────────────────────────────────────┘
|
||
```
|
||
|
||
**路径验证规则**
|
||
- 必填项:至少填写一个有效路径
|
||
- 格式检查:UNC路径、HTTP链接等格式验证
|
||
- 长度限制:单个路径≤500字符
|
||
- 支持多行输入:可填写多个路径
|
||
|
||
### 2.3 任务发起表单设计
|
||
|
||
**表单布局建议**
|
||
|
||
```
|
||
┌─────────────────────────────────────┐
|
||
│ 发起任务需求 │
|
||
├─────────────────────────────────────┤
|
||
│ │
|
||
│ 团队积分余额:1,000 分 │
|
||
│ │
|
||
│ [必填] 需求类型: │
|
||
│ [下拉选择 ▼] → [+ 新增] │
|
||
│ 显示:单价50分/个,预估4小时 │
|
||
│ │
|
||
│ [必填] 数量: │
|
||
│ [___] 个 │
|
||
│ ✓ 需消耗:250分 │
|
||
│ ✓ 剩余:750分 │
|
||
│ ✓ 预估完成时间:20小时 │
|
||
│ │
|
||
│ [必填] 任务类型: │
|
||
│ ○ 新品 ○ 优化 ○ 改图 ○ 其它 │
|
||
│ │
|
||
│ [必填] 品牌: │
|
||
│ [下拉选择 ▼] │
|
||
│ │
|
||
│ [必填] 叶子类目: │
|
||
│ [级联选择 ▼] │
|
||
│ │
|
||
│ [必填] SPU信息: │
|
||
│ [多行文本框] │
|
||
│ 0/500 字 │
|
||
│ │
|
||
│ [必填] 平台: │
|
||
│ [多选下拉 ▼] │
|
||
│ │
|
||
│ [必填] 需求附件: │
|
||
│ [拖拽上传区域或点击上传] │
|
||
│ 已上传:design.psd (5.2MB) [×] │
|
||
│ │
|
||
│ [必填] 发布类型: │
|
||
│ ○ 指定任务 [选择设计师 ▼] │
|
||
│ ○ 招募任务(发布到任务大厅) │
|
||
│ ● 默认模式(由主管分配) │
|
||
│ │
|
||
│ 期望完成时间: │
|
||
│ [日期选择器] │
|
||
│ │
|
||
│ 备注说明: │
|
||
│ [文本框] │
|
||
│ │
|
||
│ [取消] [保存草稿] [提交] │
|
||
│ │
|
||
└─────────────────────────────────────┘
|
||
```
|
||
|
||
---
|
||
|
||
## 三、任务大厅模块
|
||
|
||
### 3.1 功能概述
|
||
任务大厅是招募任务的展示平台,设计师可以浏览、筛选和抢单。
|
||
|
||
### 3.2 任务卡片展示
|
||
|
||
**卡片信息结构**
|
||
```
|
||
┌──────────────────────────────────────┐
|
||
│ [主图设计] 🔥热门 │
|
||
│ ────────────────────────────────── │
|
||
│ 发布人:张三(产品部) │
|
||
│ 发布时间:2025-11-07 10:30 │
|
||
│ 任务类型:新品 │
|
||
│ 预估积分:250分 │
|
||
│ 任务时效:2天 │
|
||
│ ────────────────────────────────── │
|
||
│ 📦 品牌:Nike │
|
||
│ 📑 类目:服装 > 女装 > 连衣裙 │
|
||
│ 🏷️ SPU:夏季新款连衣裙系列 │
|
||
│ 🌐 平台:淘宝、天猫 │
|
||
│ ────────────────────────────────── │
|
||
│ 数量:5个 | 还剩:2个可抢 │
|
||
│ │
|
||
│ [查看详情] [立即抢单] │
|
||
└──────────────────────────────────────┘
|
||
```
|
||
|
||
**任务状态标识**
|
||
- 🔥 热门任务(抢单人数多)
|
||
- ⚡ 紧急任务(时效短)
|
||
- 💎 高分任务(积分高)
|
||
- 🆕 新发布任务(1小时内)
|
||
|
||
### 3.3 筛选和搜索功能
|
||
|
||
**筛选条件**
|
||
- 任务类型(新品/优化/改图/其它)
|
||
- 需求类型(下拉多选)
|
||
- 品牌(下拉多选)
|
||
- 类目(树形选择)
|
||
- 平台(多选)
|
||
- 积分范围(滑块)
|
||
- 时效范围(今天/3天内/一周内/自定义)
|
||
- 发布时间(今天/本周/本月/自定义)
|
||
|
||
**搜索功能**
|
||
- 关键词搜索(SPU信息、任务描述)
|
||
- 发布人搜索
|
||
|
||
**排序方式**
|
||
- 最新发布
|
||
- 积分最高
|
||
- 时效最短
|
||
- 最热门
|
||
|
||
### 3.4 抢单机制
|
||
|
||
#### 抢单规则
|
||
1. **资格校验**
|
||
- 用户角色为设计师
|
||
- 账号状态正常
|
||
- 当前任务负荷未超限(可配置)
|
||
|
||
2. **抢单冲突处理**
|
||
- 并发控制:乐观锁/悲观锁
|
||
- 先到先得原则
|
||
- 数量限制(一个任务可被多人抢,每人抢部分数量)
|
||
|
||
3. **抢单确认**
|
||
- 显示任务详细信息
|
||
- 确认接收数量
|
||
- 填写预计完成时间
|
||
- 填写交付地址信息
|
||
|
||
#### 抢单后流程
|
||
```
|
||
抢单成功 → 任务进入"我的任务" → 开始计时 → 设计师进度大厅更新
|
||
```
|
||
|
||
### 3.5 任务详情页
|
||
|
||
**展示内容**
|
||
- 任务基本信息(扩展版卡片信息)
|
||
- 需求附件下载
|
||
- 发布人联系方式
|
||
- 任务历史记录(如被抢单记录)
|
||
- 相关任务推荐
|
||
|
||
---
|
||
|
||
## 四、我的任务进度模块
|
||
|
||
### 4.1 功能概述
|
||
为发布人和接收人提供任务进度的可视化管理界面。
|
||
|
||
### 4.2 双视角设计
|
||
|
||
#### 视角一:发布人视角
|
||
- 查看自己发起的所有任务
|
||
- 查看每个任务的接收人和进度
|
||
- 审核任务交付
|
||
- 评价任务完成情况
|
||
|
||
#### 视角二:接收人视角
|
||
- 查看自己接收的所有任务
|
||
- 更新任务进度
|
||
- 提交任务交付
|
||
- 查看任务评价
|
||
|
||
### 4.3 任务卡片(增强版)
|
||
|
||
**卡片信息结构**
|
||
```
|
||
┌──────────────────────────────────────────┐
|
||
│ [主图设计] #T20251107001 │
|
||
│ ──────────────────────────────────── │
|
||
│ 发布人:张三 接收人:李四 │
|
||
│ 发布时间:11-07 10:30 开始:11-07 11:00│
|
||
│ 任务类型:新品 预期:11-09 │
|
||
│ 预估积分:250分 │
|
||
│ ──────────────────────────────────── │
|
||
│ 📦 品牌:Nike │
|
||
│ 📑 类目:服装 > 女装 > 连衣裙 │
|
||
│ 🏷️ SPU:夏季新款连衣裙系列 │
|
||
│ 🌐 平台:淘宝、天猫 │
|
||
│ ──────────────────────────────────── │
|
||
│ 进度:███████████░░░░░ 75% │
|
||
│ 状态:⚙️ 进行中 │
|
||
│ ──────────────────────────────────── │
|
||
│ [查看详情] [更新进度] [提交交付] │
|
||
│ ──────────────────────────────────── │
|
||
│ 💬 备注:需要增加模特图... │
|
||
└──────────────────────────────────────────┘
|
||
```
|
||
|
||
**任务状态流转**
|
||
```
|
||
待接收 → 进行中 → 待审核 → [审核通过 / 打回修改] → 已完成
|
||
```
|
||
|
||
| 状态 | 说明 | 可操作 |
|
||
|------|------|--------|
|
||
| 待接收 | 已分配但未开始 | 接收人:接受/拒绝 |
|
||
| 进行中 | 设计师正在处理 | 接收人:更新进度、提交交付 |
|
||
| 待审核 | 已提交交付 | 发布人:审核通过、打回修改 |
|
||
| 打回修改 | 审核未通过 | 接收人:重新提交 |
|
||
| 已完成 | 审核通过 | 发布人:评价 |
|
||
| 已取消 | 任务取消 | - |
|
||
|
||
### 4.4 审核功能
|
||
|
||
#### 审核通过
|
||
1. 点击"审核通过"按钮
|
||
2. 填写五星评价
|
||
- 质量评分(1-5星)
|
||
- 时效评分(1-5星)
|
||
- 沟通评分(1-5星)
|
||
- 综合评分(自动计算平均值)
|
||
- 评价内容(文字,可选)
|
||
3. 确认提交
|
||
4. 积分奖励发放给设计师
|
||
5. 任务状态更新为"已完成"
|
||
|
||
**评价维度建议**
|
||
```
|
||
┌──────────────────────────┐
|
||
│ 任务完成评价 │
|
||
├──────────────────────────┤
|
||
│ 质量评分:★★★★★ │
|
||
│ 时效评分:★★★★☆ │
|
||
│ 沟通评分:★★★★★ │
|
||
│ ────────────────────── │
|
||
│ 综合评分:4.7分 │
|
||
│ ────────────────────── │
|
||
│ 评价内容: │
|
||
│ [文本框] │
|
||
│ 设计质量很高,符合要求... │
|
||
│ │
|
||
│ [取消] [提交] │
|
||
└──────────────────────────┘
|
||
```
|
||
|
||
#### 打回修改
|
||
1. 点击"打回修改"按钮
|
||
2. 填写打回原因(必填)
|
||
3. 上传标注图片(可选)
|
||
4. 设置最晚交付时间(必填)
|
||
5. 确认提交
|
||
6. 发送通知给设计师
|
||
7. 任务状态更新为"打回修改"
|
||
|
||
**打回记录**
|
||
- 记录每次打回的原因和时间
|
||
- 显示打回次数(过多可能影响评分)
|
||
- 保留完整的沟通记录
|
||
|
||
### 4.5 日历视图
|
||
|
||
**功能描述**
|
||
以日历的形式展示任务的时间线和进度,类似项目甘特图。
|
||
|
||
**视图类型**
|
||
- 月视图
|
||
- 周视图
|
||
- 日视图
|
||
|
||
**展示元素**
|
||
```
|
||
周一 周二 周三 周四 周五
|
||
┌─────┬─────┬─────┬─────┬─────┐
|
||
张三 │█████│█████│ │ │ │ 主图设计
|
||
│ │ │░░░░░│░░░░░│ │ 详情页优化
|
||
├─────┼─────┼─────┼─────┼─────┤
|
||
李四 │ │█████│█████│█████│ │ 视频剪辑
|
||
│ │ │ │░░░░░│░░░░░│ 新品设计
|
||
└─────┴─────┴─────┴─────┴─────┘
|
||
|
||
图例:
|
||
█ 任务执行时间
|
||
░ 任务预留时间
|
||
红色边框:延期任务
|
||
黄色标记:即将到期
|
||
```
|
||
|
||
**交互功能**
|
||
- 点击任务条查看详情
|
||
- 拖拽调整任务时间(主管权限)
|
||
- 悬浮显示任务摘要
|
||
- 筛选显示(按人员、状态、类型)
|
||
|
||
**优化建议**
|
||
- 添加时间轴缩放功能
|
||
- 支持导出PDF/图片
|
||
- 支持打印功能
|
||
- 与钉钉日历同步
|
||
|
||
### 4.6 任务详情抽屉/弹窗
|
||
|
||
**详细信息展示**
|
||
- 任务完整信息
|
||
- 附件下载
|
||
- 交付地址信息
|
||
- 进度更新记录
|
||
- 沟通留言板
|
||
- 操作日志
|
||
|
||
---
|
||
|
||
## 四之二、管理员任务调配模块
|
||
|
||
### 4.7 功能概述
|
||
管理员任务调配模块是系统的核心管理功能之一,允许管理员对系统中的任务进行灵活调配,包括对进行中的任务进行转移、重新分配,以及对任务池(任务大厅)中的招募任务进行管理和调配。这个功能可以有效应对突发情况、优化资源分配、平衡设计师工作负荷。
|
||
|
||
### 4.8 任务调配权限
|
||
|
||
**权限要求**
|
||
- **超级管理员**:可以调配所有任务,无限制
|
||
- **管理员**:可以调配指定部门或团队的任务
|
||
- **主管**:只能调配自己团队内的任务(可选功能)
|
||
|
||
**权限控制**
|
||
```
|
||
调配权限 = 角色权限 + 部门权限 + 特殊授权
|
||
```
|
||
|
||
### 4.9 进行中任务调配
|
||
|
||
#### 4.9.1 功能入口
|
||
|
||
**调配面板位置**
|
||
- 我的任务进度页面(管理员视图)
|
||
- 设计师进度大厅页面
|
||
- 任务详情页面(管理员权限可见)
|
||
|
||
**展示方式**
|
||
```
|
||
┌──────────────────────────────────────────┐
|
||
│ 进行中的任务管理 │
|
||
├──────────────────────────────────────────┤
|
||
│ 🔍 筛选:[部门▼] [设计师▼] [任务状态▼] │
|
||
│ [批量调配] [导出] │
|
||
├──────────────────────────────────────────┤
|
||
│ │
|
||
│ ☑ [进行中] #T20251107001 - 主图设计 │
|
||
│ 接收人:张三 | 进度:60% | 剩余:1天 │
|
||
│ 发布人:产品部-王经理 │
|
||
│ [查看详情] [转移任务] [调整优先级] │
|
||
│ ──────────────────────────────────── │
|
||
│ ☑ [进行中] #T20251107002 - 详情页优化 │
|
||
│ 接收人:李四 | 进度:30% | 剩余:3天 │
|
||
│ 发布人:市场部-刘总监 │
|
||
│ [查看详情] [转移任务] [调整优先级] │
|
||
│ ──────────────────────────────────── │
|
||
│ ☑ [延期] #T20251107003 - 视频剪辑 │
|
||
│ 接收人:王五 | 进度:45% | 已延期2天 │
|
||
│ 发布人:运营部-陈主管 │
|
||
│ [查看详情] [转移任务] [调整优先级] │
|
||
│ │
|
||
│ [1] 2 3 ... 10 │
|
||
└──────────────────────────────────────────┘
|
||
```
|
||
|
||
#### 4.9.2 任务转移功能
|
||
|
||
**转移场景**
|
||
1. **设计师请假/离职**:紧急转移任务给其他设计师
|
||
2. **负荷不均衡**:从繁忙设计师转移任务给空闲设计师
|
||
3. **技能匹配**:转移给更擅长该类型的设计师
|
||
4. **任务延期**:转移给效率更高的设计师加急处理
|
||
5. **质量问题**:转移给经验更丰富的设计师
|
||
|
||
**转移操作流程**
|
||
|
||
**步骤1:选择任务**
|
||
```
|
||
支持单个转移和批量转移
|
||
- 单个:点击任务卡片的"转移任务"按钮
|
||
- 批量:勾选多个任务,点击"批量调配"
|
||
```
|
||
|
||
**步骤2:填写转移信息**
|
||
```
|
||
┌─────────────────────────────────────┐
|
||
│ 任务转移 │
|
||
├─────────────────────────────────────┤
|
||
│ 当前任务:#T20251107001 - 主图设计 │
|
||
│ 当前接收人:张三(UI设计师) │
|
||
│ 当前进度:60% │
|
||
│ ───────────────────────────────── │
|
||
│ [必填] 转移给: │
|
||
│ [选择设计师 ▼] │
|
||
│ 智能推荐: │
|
||
│ ✓ 李四(负荷:40%,评分4.8) │
|
||
│ ✓ 赵六(负荷:35%,评分4.7) │
|
||
│ │
|
||
│ [必填] 转移原因: │
|
||
│ ○ 原设计师请假/离职 │
|
||
│ ○ 负荷调整 │
|
||
│ ○ 技能不匹配 │
|
||
│ ○ 任务延期 │
|
||
│ ● 其他(请说明) │
|
||
│ │
|
||
│ 详细说明: │
|
||
│ ┌─────────────────────────────┐ │
|
||
│ │ [文本框] │ │
|
||
│ │ 张三因病请假,任务紧急... │ │
|
||
│ └─────────────────────────────┘ │
|
||
│ │
|
||
│ 是否保留原进度: │
|
||
│ ☑ 是(新接收人继续当前进度) │
|
||
│ ☐ 否(任务重置为0%,重新开始) │
|
||
│ │
|
||
│ 调整交付时间: │
|
||
│ 原定:2025-11-09 │
|
||
│ 新定:[日期选择器] │
|
||
│ │
|
||
│ 积分处理: │
|
||
│ ○ 按进度分配(张三60%,李四40%) │
|
||
│ ○ 全部给新接收人 │
|
||
│ ● 由管理员最终确定 │
|
||
│ │
|
||
│ 通知设置: │
|
||
│ ☑ 通知原接收人 │
|
||
│ ☑ 通知新接收人 │
|
||
│ ☑ 通知发布人 │
|
||
│ ☑ 通知主管 │
|
||
│ │
|
||
│ [取消] [确认转移] │
|
||
└─────────────────────────────────────┘
|
||
```
|
||
|
||
**步骤3:系统处理**
|
||
```
|
||
1. 权限校验(管理员权限验证)
|
||
2. 检查新接收人状态(是否在职、负荷是否过高)
|
||
3. 计算原设计师的延误情况和扣分
|
||
- 判断是否存在延误(当前时间 > 原定交付时间)
|
||
- 如果延误,计算延误天数/小时
|
||
- 根据系统扣分规则计算扣分值
|
||
- 记录延误数据到原设计师档案
|
||
- 执行积分扣除操作
|
||
- 标注"因任务转移扣分"
|
||
4. 重新计算任务时效
|
||
- 评估剩余工作量(根据当前进度)
|
||
- 计算新的预计完成时间
|
||
- 考虑新设计师的当前负荷
|
||
- 设置新的交付期限
|
||
5. 更新任务接收人信息
|
||
6. 记录转移日志(原因、操作人、时间、延误扣分情况)
|
||
7. 处理积分分配(按进度分配奖励积分,扣除延误扣分)
|
||
8. 发送通知给相关人员(包含延误扣分信息)
|
||
9. 更新任务状态和时间线
|
||
10. 在任务详情中显示转移记录和延误记录
|
||
```
|
||
|
||
**步骤4:转移记录**
|
||
```
|
||
任务操作历史:
|
||
────────────────────────────────────
|
||
2025-11-07 14:30 [任务转移]
|
||
操作人:管理员-陈经理
|
||
转移:张三 → 李四
|
||
原因:原设计师请假
|
||
进度保留:是(60%)
|
||
|
||
⚠️ 延误情况:
|
||
- 原定交付时间:2025-11-07 12:00
|
||
- 转移时间:2025-11-07 14:30
|
||
- 延误时长:2小时30分钟
|
||
- 扣分:-5分(按延误扣分规则)
|
||
- 延误记录已记入张三档案
|
||
|
||
积分处理:
|
||
- 张三获得进度积分:150分(60%)
|
||
- 张三延误扣分:-5分
|
||
- 张三实际获得:145分
|
||
- 李四将获得:100分(40%)
|
||
|
||
时效重新计算:
|
||
- 原定交付时间:2025-11-07 12:00(已延误)
|
||
- 剩余工作量:40%
|
||
- 预估需要时间:8小时
|
||
- 新交付时间:2025-11-08 10:00
|
||
- 新接收人:李四(当前负荷:40%)
|
||
|
||
说明:张三因病请假,任务紧急转移给李四继续完成
|
||
────────────────────────────────────
|
||
2025-11-07 10:00 [任务开始]
|
||
接收人:张三
|
||
原定交付时间:2025-11-07 12:00
|
||
────────────────────────────────────
|
||
```
|
||
|
||
#### 4.9.3 延误扣分机制
|
||
|
||
**延误判定标准**
|
||
```
|
||
延误判定 = 当前时间 > 原定交付时间
|
||
|
||
延误分类:
|
||
- 轻微延误:< 2小时
|
||
- 一般延误:2-8小时
|
||
- 严重延误:8-24小时
|
||
- 重大延误:> 24小时
|
||
```
|
||
|
||
**扣分规则(在系统配置中可调整)**
|
||
|
||
| 延误程度 | 延误时长 | 扣分规则 | 示例 |
|
||
|---------|---------|---------|------|
|
||
| 轻微延误 | < 2小时 | 每小时扣2分 | 延误1.5小时 → 扣3分 |
|
||
| 一般延误 | 2-8小时 | 每小时扣3分 | 延误5小时 → 扣15分 |
|
||
| 严重延误 | 8-24小时 | 每小时扣5分 | 延误10小时 → 扣50分 |
|
||
| 重大延误 | > 24小时 | 基础50分+每天10分 | 延误2天 → 扣70分 |
|
||
|
||
**扣分计算公式**
|
||
```javascript
|
||
function calculateDelayPenalty(delayHours) {
|
||
if (delayHours < 0) return 0; // 未延误
|
||
|
||
if (delayHours < 2) {
|
||
// 轻微延误
|
||
return Math.ceil(delayHours * 2);
|
||
} else if (delayHours < 8) {
|
||
// 一般延误
|
||
return Math.ceil(delayHours * 3);
|
||
} else if (delayHours < 24) {
|
||
// 严重延误
|
||
return Math.ceil(delayHours * 5);
|
||
} else {
|
||
// 重大延误
|
||
const days = Math.floor(delayHours / 24);
|
||
return 50 + days * 10;
|
||
}
|
||
}
|
||
|
||
// 示例
|
||
延误2.5小时 → 扣分 = 2.5 × 3 = 8分
|
||
延误10小时 → 扣分 = 10 × 5 = 50分
|
||
延误48小时 → 扣分 = 50 + 2 × 10 = 70分
|
||
```
|
||
|
||
**延误数据留存**
|
||
|
||
**设计师延误档案**
|
||
```
|
||
张三 - 延误记录:
|
||
|
||
┌──────────────────────────────────────┐
|
||
│ 延误记录 #1 │
|
||
├──────────────────────────────────────┤
|
||
│ 任务:#T20251107001 - 主图设计 │
|
||
│ 原定交付:2025-11-07 12:00 │
|
||
│ 实际情况:任务转移时延误 │
|
||
│ 延误时长:2小时30分钟 │
|
||
│ 延误程度:一般延误 │
|
||
│ 扣分:-5分 │
|
||
│ 原因标注:因病请假导致任务转移 │
|
||
│ 进度完成:60% │
|
||
│ 记录时间:2025-11-07 14:30 │
|
||
│ 操作人:管理员-陈经理 │
|
||
└──────────────────────────────────────┘
|
||
|
||
影响统计:
|
||
- 本月延误次数:1次
|
||
- 本月延误扣分:-5分
|
||
- 延误率:4.2%(1/24)
|
||
- 影响平均评分:-0.1分
|
||
```
|
||
|
||
**延误记录字段**
|
||
- 任务ID和名称
|
||
- 原定交付时间
|
||
- 延误发生时间
|
||
- 延误时长(精确到分钟)
|
||
- 延误程度分类
|
||
- 扣分值
|
||
- 原因标注(任务转移/正常延误)
|
||
- 当时进度完成情况
|
||
- 是否因特殊原因(病假/事假等)
|
||
- 管理员备注
|
||
- 是否申诉
|
||
|
||
**延误扣分通知**
|
||
|
||
**通知原设计师**
|
||
```
|
||
┌─────────────────────────────────────┐
|
||
│ ⚠️ 延误扣分通知 │
|
||
├─────────────────────────────────────┤
|
||
│ 您的任务因延误产生扣分 │
|
||
│ │
|
||
│ 任务:#T20251107001 - 主图设计 │
|
||
│ 原定交付:2025-11-07 12:00 │
|
||
│ 转移时间:2025-11-07 14:30 │
|
||
│ 延误时长:2小时30分钟 │
|
||
│ │
|
||
│ 扣分详情: │
|
||
│ - 延误扣分:-5分 │
|
||
│ - 进度积分:+150分(60%完成) │
|
||
│ - 实际获得:+145分 │
|
||
│ │
|
||
│ 原因:因病请假导致任务转移 │
|
||
│ 备注:管理员已标注特殊原因 │
|
||
│ │
|
||
│ 您的延误记录: │
|
||
│ - 本月延误次数:1次 │
|
||
│ - 本月延误扣分:-5分 │
|
||
│ │
|
||
│ [查看详情] [申诉] │
|
||
└─────────────────────────────────────┘
|
||
```
|
||
|
||
**延误申诉机制**
|
||
|
||
设计师如果认为延误有正当理由,可以提出申诉:
|
||
1. 填写申诉原因
|
||
2. 上传证明材料(如病假条、邮件截图等)
|
||
3. 提交给管理员审核
|
||
4. 管理员审核通过后可撤销扣分或减少扣分
|
||
5. 记录申诉历史
|
||
|
||
**时效重新计算算法**
|
||
|
||
```javascript
|
||
function recalculateDeadline(task, newDesigner) {
|
||
// 1. 计算剩余工作量
|
||
const remainingWork = 1 - task.progress; // 40% = 0.4
|
||
|
||
// 2. 获取原始预估时长
|
||
const originalEstimatedHours = task.demandType.estimateTime; // 20小时
|
||
|
||
// 3. 计算剩余工作时长
|
||
const remainingHours = originalEstimatedHours * remainingWork; // 8小时
|
||
|
||
// 4. 考虑新设计师的熟练度系数(可选)
|
||
const proficiencyFactor = calculateProficiency(newDesigner, task.demandType);
|
||
// 0.8 = 很熟练,1.0 = 正常,1.2 = 不太熟练
|
||
|
||
// 5. 考虑新设计师的当前负荷
|
||
const workloadFactor = calculateWorkloadFactor(newDesigner.currentWorkload);
|
||
// 负荷高则需要更多时间
|
||
// 负荷<50%: 1.0, 50-70%: 1.1, 70-90%: 1.2, >90%: 1.3
|
||
|
||
// 6. 计算实际需要时间
|
||
const actualHours = remainingHours * proficiencyFactor * workloadFactor;
|
||
// 8 × 1.0 × 1.1 = 8.8小时
|
||
|
||
// 7. 计算新的交付时间(考虑工作日历)
|
||
const newDeadline = calculateWorkingDeadline(
|
||
new Date(), // 从现在开始
|
||
actualHours, // 需要的小时数
|
||
'9:00-18:00' // 工作时间
|
||
);
|
||
|
||
return {
|
||
newDeadline: newDeadline,
|
||
estimatedHours: actualHours,
|
||
proficiencyFactor: proficiencyFactor,
|
||
workloadFactor: workloadFactor,
|
||
reason: '任务转移,时效重新计算'
|
||
};
|
||
}
|
||
|
||
// 示例输出
|
||
{
|
||
newDeadline: '2025-11-08 10:00',
|
||
estimatedHours: 8.8,
|
||
proficiencyFactor: 1.0,
|
||
workloadFactor: 1.1,
|
||
reason: '任务转移,时效重新计算'
|
||
}
|
||
```
|
||
|
||
**时效重新计算展示**
|
||
```
|
||
┌─────────────────────────────────────┐
|
||
│ 时效重新计算 │
|
||
├─────────────────────────────────────┤
|
||
│ 原定交付时间:2025-11-07 12:00(已过)│
|
||
│ 当前时间:2025-11-07 14:30 │
|
||
│ 已延误:2小时30分钟 │
|
||
│ │
|
||
│ 剩余工作量:40% │
|
||
│ 预估工作时长:8小时 │
|
||
│ │
|
||
│ 新接收人:李四 │
|
||
│ - 熟练度系数:1.0(熟练) │
|
||
│ - 负荷系数:1.1(负荷适中) │
|
||
│ │
|
||
│ 实际需要时间:8.8小时 │
|
||
│ 新交付时间:2025-11-08 10:00 │
|
||
│ │
|
||
│ [确认] [调整] │
|
||
└─────────────────────────────────────┘
|
||
```
|
||
|
||
#### 4.9.4 智能推荐算法
|
||
|
||
**推荐设计师的评分算法**
|
||
```javascript
|
||
推荐分数 =
|
||
负荷权重 × (1 - 当前负荷率) × 30% +
|
||
技能权重 × 技能匹配度 × 25% +
|
||
评分权重 × 历史平均评分 × 20% +
|
||
效率权重 × 按时完成率 × 15% +
|
||
经验权重 × 同类型任务完成数 × 10%
|
||
|
||
按推荐分数降序排列,展示Top 5
|
||
```
|
||
|
||
**推荐标签**
|
||
- 🔥 最佳匹配:综合评分最高
|
||
- ⚡ 效率之选:历史效率最高
|
||
- 💎 质量保证:历史评分最高
|
||
- 🆓 空闲优先:当前负荷最低
|
||
- 🎯 经验丰富:同类型任务完成最多
|
||
|
||
#### 4.9.4 批量转移
|
||
|
||
**批量转移场景**
|
||
- 设计师长期离职,转移所有在手任务
|
||
- 部门调整,批量转移任务归属
|
||
- 紧急情况,批量分散任务
|
||
|
||
**批量操作界面**
|
||
```
|
||
┌─────────────────────────────────────┐
|
||
│ 批量任务转移 (已选择 5 个任务) │
|
||
├─────────────────────────────────────┤
|
||
│ 任务列表: │
|
||
│ ☑ #T001 - 主图设计 (张三, 60%) │
|
||
│ ☑ #T002 - 详情页优化 (张三, 30%) │
|
||
│ ☑ #T005 - 视频剪辑 (张三, 45%) │
|
||
│ ☑ #T008 - 改图 (张三, 80%) │
|
||
│ ☑ #T012 - 新品设计 (张三, 15%) │
|
||
│ ───────────────────────────────── │
|
||
│ 转移策略: │
|
||
│ ○ 统一转移给单人 │
|
||
│ ● 智能分配给多人(推荐) │
|
||
│ ○ 手动指定每个任务的接收人 │
|
||
│ │
|
||
│ 智能分配预览: │
|
||
│ 李四:接收2个任务 (#T001, #T002) │
|
||
│ 王五:接收2个任务 (#T005, #T008) │
|
||
│ 赵六:接收1个任务 (#T012) │
|
||
│ │
|
||
│ 转移原因:[必填] │
|
||
│ 积分处理:[选择策略] │
|
||
│ 通知设置:[勾选] │
|
||
│ │
|
||
│ [取消] [执行转移] │
|
||
└─────────────────────────────────────┘
|
||
```
|
||
|
||
#### 4.9.5 任务优先级调整
|
||
|
||
**优先级管理**
|
||
```
|
||
优先级级别:
|
||
P0 - 特急(红色):需立即处理,1天内完成
|
||
P1 - 紧急(橙色):优先处理,3天内完成
|
||
P2 - 普通(蓝色):正常处理,1周内完成
|
||
P3 - 低优(灰色):可延后处理,2周内完成
|
||
```
|
||
|
||
**优先级调整界面**
|
||
```
|
||
┌───────────────────────────────┐
|
||
│ 调整任务优先级 │
|
||
├───────────────────────────────┤
|
||
│ 任务:#T20251107001 │
|
||
│ 标题:主图设计 │
|
||
│ 当前优先级:P2 (普通) │
|
||
│ ─────────────────────────── │
|
||
│ 调整为: │
|
||
│ ○ P0 - 特急 │
|
||
│ ● P1 - 紧急 │
|
||
│ ○ P2 - 普通 │
|
||
│ ○ P3 - 低优 │
|
||
│ │
|
||
│ 调整原因:[必填] │
|
||
│ ┌─────────────────────────┐ │
|
||
│ │ 客户要求提前上线... │ │
|
||
│ └─────────────────────────┘ │
|
||
│ │
|
||
│ 是否通知接收人: │
|
||
│ ☑ 站内消息 │
|
||
│ ☑ 钉钉推送 │
|
||
│ ☑ 短信提醒(紧急时) │
|
||
│ │
|
||
│ [取消] [确认] │
|
||
└───────────────────────────────┘
|
||
```
|
||
|
||
### 4.10 任务池(任务大厅)调配
|
||
|
||
#### 4.10.1 功能概述
|
||
管理员可以对任务大厅中的招募任务进行管理,包括:
|
||
- 查看所有招募任务的状态
|
||
- 指定接收人(将招募任务转为指定任务)
|
||
- 撤回任务到待分配池
|
||
- 调整任务信息
|
||
- 关闭/取消任务
|
||
|
||
#### 4.10.2 任务池管理界面
|
||
|
||
**管理入口**
|
||
```
|
||
任务大厅 → 管理员视图(切换按钮)
|
||
```
|
||
|
||
**界面布局**
|
||
```
|
||
┌──────────────────────────────────────────┐
|
||
│ 任务池管理(管理员) │
|
||
├──────────────────────────────────────────┤
|
||
│ 📊 统计: │
|
||
│ 招募中:23个 | 无人抢单:5个 | 今日新增:8个 │
|
||
│ ──────────────────────────────────── │
|
||
│ 🔍 筛选:[状态▼] [部门▼] [发布时间▼] │
|
||
│ [高级筛选] [批量操作▼] [刷新] │
|
||
│ ──────────────────────────────────── │
|
||
│ │
|
||
│ ┌────────────────────────────────────┐ │
|
||
│ │ 🔥 [招募中] #T20251107010 │ │
|
||
│ │ 主图设计 | 250分 | 2天 │ │
|
||
│ │ 发布人:产品部-王经理 │ │
|
||
│ │ 发布时间:2小时前 │ │
|
||
│ │ 浏览:15次 | 收藏:3人 | 抢单:0人│ │
|
||
│ │ ⚠️ 提示:发布2小时无人抢单 │ │
|
||
│ │ │ │
|
||
│ │ [查看详情] [指定接收人] [撤回] │ │
|
||
│ │ [调整] [推广] [关闭] │ │
|
||
│ └────────────────────────────────────┘ │
|
||
│ │
|
||
│ ┌────────────────────────────────────┐ │
|
||
│ │ ✅ [已抢单] #T20251107011 │ │
|
||
│ │ 详情页优化 | 200分 | 1天 │ │
|
||
│ │ 发布人:市场部-刘总监 │ │
|
||
│ │ 接收人:李四 │ │
|
||
│ │ 抢单时间:30分钟前 │ │
|
||
│ │ │ │
|
||
│ │ [查看详情] [转移] [调整] │ │
|
||
│ └────────────────────────────────────┘ │
|
||
│ │
|
||
└──────────────────────────────────────────┘
|
||
```
|
||
|
||
#### 4.10.3 指定接收人功能
|
||
|
||
**使用场景**
|
||
- 招募任务长时间无人抢单
|
||
- 任务紧急需要快速分配
|
||
- 特定任务需要特定设计师处理
|
||
|
||
**操作流程**
|
||
```
|
||
┌─────────────────────────────────────┐
|
||
│ 为任务指定接收人 │
|
||
├─────────────────────────────────────┤
|
||
│ 任务:#T20251107010 - 主图设计 │
|
||
│ 当前状态:招募中(无人抢单) │
|
||
│ 发布时间:2小时前 │
|
||
│ ───────────────────────────────── │
|
||
│ 选择接收人: │
|
||
│ [搜索设计师] │
|
||
│ │
|
||
│ 智能推荐: │
|
||
│ ┌─────────────────────────────┐ │
|
||
│ │ ○ 李四 🔥 最佳匹配 │ │
|
||
│ │ UI设计师 | 负荷40% | 评分4.8 │ │
|
||
│ │ 同类型完成:28个 │ │
|
||
│ ├─────────────────────────────┤ │
|
||
│ │ ● 王五 ⚡ 效率之选 │ │
|
||
│ │ 视觉设计师 | 负荷35% | 评分4.6│ │
|
||
│ │ 同类型完成:22个 │ │
|
||
│ ├─────────────────────────────┤ │
|
||
│ │ ○ 赵六 🆓 空闲优先 │ │
|
||
│ │ UI设计师 | 负荷20% | 评分4.7 │ │
|
||
│ │ 同类型完成:15个 │ │
|
||
│ └─────────────────────────────┘ │
|
||
│ │
|
||
│ 指定原因: │
|
||
│ ○ 任务紧急 │
|
||
│ ● 长时间无人抢单 │
|
||
│ ○ 需要特定设计师 │
|
||
│ ○ 其他 │
|
||
│ │
|
||
│ 说明:[选填] │
|
||
│ ┌─────────────────────────────┐ │
|
||
│ │ 任务已发布2小时无人抢单... │ │
|
||
│ └─────────────────────────────┘ │
|
||
│ │
|
||
│ 是否通知: │
|
||
│ ☑ 接收人(钉钉+站内) │
|
||
│ ☑ 发布人(站内) │
|
||
│ │
|
||
│ 备注:指定后任务状态将变为"进行中" │
|
||
│ │
|
||
│ [取消] [确认指定] │
|
||
└─────────────────────────────────────┘
|
||
```
|
||
|
||
#### 4.10.4 任务撤回功能
|
||
|
||
**撤回场景**
|
||
- 任务信息有误需要修改
|
||
- 任务需求变更
|
||
- 任务取消或暂停
|
||
- 重新评估任务优先级
|
||
|
||
**撤回操作**
|
||
```
|
||
┌───────────────────────────────┐
|
||
│ 撤回任务 │
|
||
├───────────────────────────────┤
|
||
│ 任务:#T20251107010 │
|
||
│ 当前状态:招募中 │
|
||
│ ─────────────────────────── │
|
||
│ 撤回后状态: │
|
||
│ ● 待分配(进入主管待办) │
|
||
│ ○ 草稿箱(暂时保存) │
|
||
│ ○ 取消任务(积分退回) │
|
||
│ │
|
||
│ 撤回原因:[必填] │
|
||
│ ┌─────────────────────────┐ │
|
||
│ │ 任务信息需要修改... │ │
|
||
│ └─────────────────────────┘ │
|
||
│ │
|
||
│ 积分处理: │
|
||
│ ☑ 退回到发布人团队积分池 │
|
||
│ │
|
||
│ 通知设置: │
|
||
│ ☑ 通知发布人 │
|
||
│ ☑ 通知关注的设计师 │
|
||
│ │
|
||
│ [取消] [确认撤回] │
|
||
└───────────────────────────────┘
|
||
```
|
||
|
||
#### 4.10.5 任务推广功能
|
||
|
||
**推广场景**
|
||
- 重要任务长时间无人接单
|
||
- 紧急任务需要快速响应
|
||
- 高分任务需要更多曝光
|
||
|
||
**推广方式**
|
||
```
|
||
┌───────────────────────────────┐
|
||
│ 任务推广 │
|
||
├───────────────────────────────┤
|
||
│ 任务:#T20251107010 │
|
||
│ ─────────────────────────── │
|
||
│ 推广方式: │
|
||
│ ☑ 置顶显示(任务大厅顶部) │
|
||
│ ☑ 标记为热门任务 │
|
||
│ ☑ 钉钉群发通知 │
|
||
│ ☑ 站内消息推送(全体设计师)│
|
||
│ ☐ 短信通知(谨慎使用) │
|
||
│ │
|
||
│ 置顶时长: │
|
||
│ ○ 1小时 ● 3小时 ○ 6小时 │
|
||
│ ○ 12小时 ○ 24小时 │
|
||
│ │
|
||
│ 推广理由: │
|
||
│ ┌─────────────────────────┐ │
|
||
│ │ 紧急任务,需尽快接单... │ │
|
||
│ └─────────────────────────┘ │
|
||
│ │
|
||
│ [取消] [开始推广] │
|
||
└───────────────────────────────┘
|
||
```
|
||
|
||
#### 4.10.6 批量调配任务池
|
||
|
||
**批量操作**
|
||
```
|
||
支持的批量操作:
|
||
- 批量指定接收人(选择多个任务,分配给不同设计师)
|
||
- 批量撤回(将多个任务从大厅撤回)
|
||
- 批量调整优先级
|
||
- 批量推广
|
||
- 批量关闭/取消
|
||
```
|
||
|
||
**批量指定界面**
|
||
```
|
||
┌─────────────────────────────────────┐
|
||
│ 批量指定接收人 (已选择 3 个任务) │
|
||
├─────────────────────────────────────┤
|
||
│ 任务列表: │
|
||
│ ☑ #T010 - 主图设计 (250分, 2天) │
|
||
│ ☑ #T011 - 详情页优化 (200分, 1天) │
|
||
│ ☑ #T015 - 视频剪辑 (150分, 1天) │
|
||
│ ───────────────────────────────── │
|
||
│ 分配策略: │
|
||
│ ○ 统一分配给单人 │
|
||
│ ● 智能分配(根据技能和负荷) │
|
||
│ ○ 手动指定每个任务 │
|
||
│ │
|
||
│ 智能分配预览: │
|
||
│ ┌─────────────────────────────┐ │
|
||
│ │ #T010 → 李四 │ │
|
||
│ │ 匹配度:95% | 当前负荷:40% │ │
|
||
│ ├─────────────────────────────┤ │
|
||
│ │ #T011 → 王五 │ │
|
||
│ │ 匹配度:88% | 当前负荷:35% │ │
|
||
│ ├─────────────────────────────┤ │
|
||
│ │ #T015 → 赵六 │ │
|
||
│ │ 匹配度:92% | 当前负荷:30% │ │
|
||
│ └─────────────────────────────┘ │
|
||
│ │
|
||
│ [调整分配] [取消] [确认批量指定] │
|
||
└─────────────────────────────────────┘
|
||
```
|
||
|
||
### 4.11 调配监控与统计
|
||
|
||
#### 4.11.1 调配日志
|
||
|
||
**完整记录**
|
||
```
|
||
所有调配操作都会记录详细日志:
|
||
- 操作时间
|
||
- 操作人
|
||
- 操作类型(转移/指定/撤回/调整等)
|
||
- 任务信息
|
||
- 变更详情(从谁到谁)
|
||
- 操作原因
|
||
- 处理结果
|
||
```
|
||
|
||
**日志查询界面**
|
||
```
|
||
┌──────────────────────────────────────────┐
|
||
│ 任务调配日志 │
|
||
├──────────────────────────────────────────┤
|
||
│ 🔍 [时间范围▼] [操作人▼] [操作类型▼] │
|
||
│ [任务编号] [搜索] │
|
||
│ ──────────────────────────────────── │
|
||
│ 2025-11-07 14:30:25 │
|
||
│ [任务转移] 管理员-陈经理 │
|
||
│ #T20251107001 - 主图设计 │
|
||
│ 张三 → 李四 │
|
||
│ 原因:原设计师请假 │
|
||
│ 积分处理:按进度分配(60%:40%) │
|
||
│ [查看详情] │
|
||
│ ──────────────────────────────────── │
|
||
│ 2025-11-07 13:15:10 │
|
||
│ [指定接收人] 管理员-陈经理 │
|
||
│ #T20251107010 - 主图设计 │
|
||
│ 招募中 → 李四 │
|
||
│ 原因:长时间无人抢单 │
|
||
│ [查看详情] │
|
||
│ ──────────────────────────────────── │
|
||
└──────────────────────────────────────────┘
|
||
```
|
||
|
||
#### 4.11.2 调配统计
|
||
|
||
**统计维度**
|
||
```
|
||
管理员工作台 - 任务调配统计
|
||
|
||
本月调配概况:
|
||
┌─────────────┐ ┌─────────────┐ ┌─────────────┐
|
||
│ 调配次数 │ │ 转移任务 │ │ 指定任务 │
|
||
│ 156次 │ │ 89个 │ │ 67个 │
|
||
│ ↑ 较上月+12│ │ ↑ 较上月+8 │ │ ↑ 较上月+4 │
|
||
└─────────────┘ └─────────────┘ └─────────────┘
|
||
|
||
调配原因分布(饼图):
|
||
- 负荷调整:35%
|
||
- 设计师请假/离职:25%
|
||
- 任务延期:20%
|
||
- 技能不匹配:12%
|
||
- 无人抢单:8%
|
||
|
||
调配效果分析:
|
||
- 调配后按时完成率:94.5%
|
||
- 调配后平均评分:4.7⭐
|
||
- 调配后延误率:5.5%
|
||
```
|
||
|
||
### 4.12 调配权限审计
|
||
|
||
**审计功能**
|
||
```
|
||
系统自动审计调配操作:
|
||
1. 记录所有调配行为
|
||
2. 监控异常调配(如频繁转移同一任务)
|
||
3. 权限使用统计
|
||
4. 定期生成审计报告
|
||
5. 支持审计日志导出
|
||
```
|
||
|
||
**异常告警**
|
||
```
|
||
触发告警的场景:
|
||
- 同一任务被转移超过3次
|
||
- 管理员单日调配超过50次
|
||
- 非授权调配尝试
|
||
- 批量调配超过20个任务
|
||
- 积分异常变动
|
||
```
|
||
|
||
### 4.13 移动端调配支持
|
||
|
||
**移动端功能**
|
||
```
|
||
管理员可在钉钉工作台或移动App进行:
|
||
✓ 查看待调配任务列表
|
||
✓ 快速转移任务
|
||
✓ 指定接收人
|
||
✓ 调整优先级
|
||
✓ 接收调配提醒
|
||
✓ 审批调配申请(可选流程)
|
||
```
|
||
|
||
---
|
||
|
||
## 五、设计师进度大厅模块
|
||
|
||
### 5.1 功能概述
|
||
为管理层提供全局视角,实时查看所有设计师的工作状态、负荷和绩效。
|
||
|
||
### 5.2 设计师看板
|
||
|
||
**看板布局**
|
||
```
|
||
┌────────────────────────────────────────────────┐
|
||
│ 🔍 筛选:[部门▼] [在职状态▼] [排序:积分▼] │
|
||
├────────────────────────────────────────────────┤
|
||
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
|
||
│ │ 👤 张三 │ │ 👤 李四 │ │ 👤 王五 │ │
|
||
│ │ UI设计师 │ │ 视觉设计师│ │ 视频剪辑师│ │
|
||
│ ├──────────┤ ├──────────┤ ├──────────┤ │
|
||
│ │📊 负荷:●●│ │📊 负荷:●●│ │📊 负荷:●○│ │
|
||
│ │ ●●●○○ │ │ ●●○○○ │ │ ●○○○○ │ │
|
||
│ │ │ │ │ │ │ │
|
||
│ │⚙️ 进行中:│ │⚙️ 进行中:│ │⚙️ 进行中:│ │
|
||
│ │ 3个 │ │ 2个 │ │ 1个 │ │
|
||
│ │ │ │ │ │ │ │
|
||
│ │📅 排队: │ │📅 排队: │ │📅 排队: │ │
|
||
│ │ 2个 │ │ 1个 │ │ 0个 │ │
|
||
│ │ │ │ │ │ │ │
|
||
│ │💎 累计积分│ │💎 累计积分│ │💎 累计积分│ │
|
||
│ │ 1,250 │ │ 980 │ │ 650 │ │
|
||
│ │ │ │ │ │ │ │
|
||
│ │⭐ 平均评分│ │⭐ 平均评分│ │⭐ 平均评分│ │
|
||
│ │ 4.8⭐ │ │ 4.5⭐ │ │ 4.9⭐ │ │
|
||
│ │ │ │ │ │ │ │
|
||
│ │⚠️ 延误: │ │⚠️ 延误: │ │⚠️ 延误: │ │
|
||
│ │ 0次 │ │ 1次 │ │ 0次 │ │
|
||
│ │ │ │ │ │ │ │
|
||
│ │✅ 完成: │ │✅ 完成: │ │✅ 完成: │ │
|
||
│ │ 25个 │ │ 18个 │ │ 12个 │ │
|
||
│ │ │ │ │ │ │ │
|
||
│ │[查看详情]│ │[查看详情]│ │[查看详情]│ │
|
||
│ └──────────┘ └──────────┘ └──────────┘ │
|
||
└────────────────────────────────────────────────┘
|
||
```
|
||
|
||
**卡片信息项**
|
||
| 指标 | 说明 |
|
||
|------|------|
|
||
| 负荷状态 | 用圆点数量表示当前任务饱和度 |
|
||
| 进行中任务 | 当前正在执行的任务数量 |
|
||
| 排队任务 | 已接收但未开始的任务数量 |
|
||
| 累计积分 | 本月/本季度/累计获得的积分 |
|
||
| 平均评分 | 历史任务的平均评分 |
|
||
| 延误次数 | 本月/累计延误交付的次数 |
|
||
| 完成数量 | 本月/累计完成的任务数量 |
|
||
|
||
**负荷状态算法**
|
||
```
|
||
负荷值 = (进行中任务数 × 1.5 + 排队任务数) / 设计师容量
|
||
负荷等级:
|
||
- 0-2分:空闲(○○○○○)
|
||
- 3-4分:轻度(●○○○○)
|
||
- 5-6分:适中(●●○○○)
|
||
- 7-8分:繁忙(●●●○○)
|
||
- 9-10分:饱和(●●●●○)
|
||
- 10+分:超负荷(●●●●●)红色警告
|
||
```
|
||
|
||
### 5.3 激励提示系统
|
||
|
||
#### 5.3.1 功能概述
|
||
通过实时排名、成就系统、目标追踪等多种激励手段,激发设计师的工作积极性和竞争意识,营造良性竞争氛围。
|
||
|
||
#### 5.3.2 实时排名提示
|
||
|
||
**个人排名卡片**
|
||
```
|
||
┌─────────────────────────────────────┐
|
||
│ 🏆 您的实时排名 │
|
||
├─────────────────────────────────────┤
|
||
│ 本月积分排名:#3 / 28 │
|
||
│ ▲ 较上月上升 2 名 │
|
||
│ │
|
||
│ 💪 再完成 2 个任务即可超越李四! │
|
||
│ (当前:980分,李四:1,050分) │
|
||
│ │
|
||
│ 🎯 本月目标:进入前 3 名 │
|
||
│ 进度:██████░░░░ 60% │
|
||
│ 还差:150 分 │
|
||
│ │
|
||
│ [查看详细排名] [设定新目标] │
|
||
└─────────────────────────────────────┘
|
||
```
|
||
|
||
**排名变化实时提醒**
|
||
```
|
||
📢 排名变动通知:
|
||
"恭喜!您在本月积分榜上升至第3名,超越了赵六!继续加油💪"
|
||
|
||
📢 被超越提醒:
|
||
"王五刚刚超过了你,当前排名第4。只差50分就能反超!🔥"
|
||
|
||
📢 接近目标提醒:
|
||
"距离您的目标(前3名)只差150分了,加油!还剩15天⏰"
|
||
```
|
||
|
||
#### 5.3.3 成就勋章系统
|
||
|
||
**成就类别**
|
||
|
||
| 成就类型 | 成就名称 | 获得条件 | 奖励 |
|
||
|---------|---------|---------|------|
|
||
| 数量类 | 🥉 百战老兵 | 累计完成100个任务 | +100积分 |
|
||
| 数量类 | 🥈 千锤百炼 | 累计完成500个任务 | +500积分 |
|
||
| 数量类 | 🥇 万事通 | 累计完成1000个任务 | +1000积分 |
|
||
| 质量类 | ⭐ 完美主义 | 连续10个5星好评 | +200积分 |
|
||
| 质量类 | 💎 品质保证 | 月均评分≥4.8分 | +150积分 |
|
||
| 质量类 | 👑 质量之王 | 季度评分第一 | +500积分 |
|
||
| 效率类 | ⚡ 闪电侠 | 单日完成5个任务 | +50积分 |
|
||
| 效率类 | 🚀 极速传说 | 连续7天按时交付 | +200积分 |
|
||
| 效率类 | ⏰ 守时达人 | 连续30天零延误 | +500积分 |
|
||
| 特殊类 | 🌟 新星 | 新人首月完成20个 | +100积分 |
|
||
| 特殊类 | 🔥 月度之星 | 月度积分第一 | +300积分 |
|
||
| 特殊类 | 🎖️ 全能战士 | 完成所有类型任务 | +200积分 |
|
||
|
||
**成就展示**
|
||
```
|
||
┌─────────────────────────────────────┐
|
||
│ 🏅 我的成就勋章 │
|
||
├─────────────────────────────────────┤
|
||
│ 已获得:8个 | 总积分奖励:1,500 │
|
||
│ ───────────────────────────────── │
|
||
│ │
|
||
│ ✨ 最新获得 │
|
||
│ 🥉 百战老兵 │
|
||
│ 2025-11-07 获得 │
|
||
│ 完成第100个任务! │
|
||
│ │
|
||
│ 📋 我的勋章墙 │
|
||
│ 🥇🥈🥉 ⭐💎 ⚡🚀⏰ 🌟🔥🎖️ │
|
||
│ 已解锁:●●●●●●●● ○○○○ │
|
||
│ │
|
||
│ 🎯 即将获得(还差一点) │
|
||
│ ⏰ 守时达人 │
|
||
│ 连续按时交付:21/30天 │
|
||
│ ███████░░░ 70% │
|
||
│ │
|
||
│ 💎 品质保证 │
|
||
│ 月均评分:4.75/4.8分 │
|
||
│ ████████░░ 80% │
|
||
│ │
|
||
│ [查看全部成就] [成就排行榜] │
|
||
└─────────────────────────────────────┘
|
||
```
|
||
|
||
**成就获得通知**
|
||
```
|
||
🎉 恭喜!您获得新成就!
|
||
|
||
┌─────────────────────────────────────┐
|
||
│ 🥉 百战老兵 │
|
||
│ │
|
||
│ 您已累计完成 100 个任务! │
|
||
│ │
|
||
│ 奖励积分:+100 分 │
|
||
│ 获得时间:2025-11-07 │
|
||
│ │
|
||
│ "每一次交付都是成长的印记" │
|
||
│ │
|
||
│ [分享成就] [继续努力] │
|
||
└─────────────────────────────────────┘
|
||
```
|
||
|
||
#### 5.3.4 里程碑提醒
|
||
|
||
**个人里程碑**
|
||
```
|
||
📍 里程碑提醒:
|
||
|
||
✅ 已达成
|
||
• 本月完成第10个任务 🎯
|
||
• 本月获得500积分 💎
|
||
• 连续7天按时交付 ⚡
|
||
|
||
🎯 即将达成
|
||
• 本月完成20个任务(当前:18个)
|
||
还差:2个 | 预计:2天后达成
|
||
|
||
• 本月获得1000积分(当前:980分)
|
||
还差:20分 | 下个任务即可达成
|
||
|
||
• 累计完成100个任务(当前:98个)
|
||
还差:2个 | 历史性时刻即将到来!
|
||
|
||
💪 挑战目标
|
||
• 本月进入积分榜前3(当前:第4)
|
||
还差:70分 | 完成1个大任务即可
|
||
|
||
• 月均评分达到4.8⭐(当前:4.75⭐)
|
||
需要:接下来3个任务都拿5星
|
||
```
|
||
|
||
#### 5.3.5 积分冲刺提示
|
||
|
||
**月末冲刺**
|
||
```
|
||
┌─────────────────────────────────────┐
|
||
│ 🔥 本月积分冲刺 │
|
||
├─────────────────────────────────────┤
|
||
│ 距离月底还有:5天 │
|
||
│ ───────────────────────────────── │
|
||
│ │
|
||
│ 您当前排名:#4 │
|
||
│ 本月积分:980 分 │
|
||
│ │
|
||
│ 🎯 冲刺目标:进入前3名 │
|
||
│ 需要超越:李四(1,050分) │
|
||
│ 还需积分:70+ 分 │
|
||
│ │
|
||
│ 💪 冲刺方案建议: │
|
||
│ • 接1个详情页任务(200分)✅ │
|
||
│ • 或接2个主图任务(100分)✅ │
|
||
│ • 或接3个改图任务(90分)✅ │
|
||
│ │
|
||
│ 📊 成功率预测:78% │
|
||
│ (基于您的历史效率和剩余时间) │
|
||
│ │
|
||
│ [查看可接任务] [设定提醒] │
|
||
└─────────────────────────────────────┘
|
||
```
|
||
|
||
**周冲刺提醒**
|
||
```
|
||
📢 周冲刺提醒:
|
||
"本周还剩2天,再完成1个任务即可达成本周目标(5个任务)!
|
||
任务大厅有3个适合您的主图设计任务,快去抢单吧!🚀"
|
||
```
|
||
|
||
#### 5.3.6 同事对比(友好竞争)
|
||
|
||
**与同事对比卡片**
|
||
```
|
||
┌─────────────────────────────────────┐
|
||
│ 📊 与同事对比 │
|
||
├─────────────────────────────────────┤
|
||
│ 对比对象:李四(同部门/同职级) │
|
||
│ ───────────────────────────────── │
|
||
│ │
|
||
│ 本月任务完成数: │
|
||
│ 你:18个 ████████░░ 90% │
|
||
│ 他:20个 ██████████ 100% │
|
||
│ 差距:-2个 │
|
||
│ │
|
||
│ 本月积分: │
|
||
│ 你:980分 ████████░░ 93% │
|
||
│ 他:1,050分 ██████████ 100% │
|
||
│ 差距:-70分 │
|
||
│ │
|
||
│ 平均评分: │
|
||
│ 你:4.75⭐ █████████░ 95% │
|
||
│ 他:4.8⭐ ██████████ 100% │
|
||
│ 差距:-0.05⭐ │
|
||
│ │
|
||
│ 按时完成率: │
|
||
│ 你:95% ██████████░ 95% │
|
||
│ 他:92% █████████░░ 92% │
|
||
│ 领先:+3% 💪 │
|
||
│ │
|
||
│ 💡 超越建议: │
|
||
│ "再完成2个任务并保持5星好评, │
|
||
│ 本月你将在综合排名上超越李四!" │
|
||
│ │
|
||
│ [换个对比对象] [查看详细数据] │
|
||
└─────────────────────────────────────┘
|
||
```
|
||
|
||
#### 5.3.7 每日激励卡片
|
||
|
||
**每日签到激励**
|
||
```
|
||
┌─────────────────────────────────────┐
|
||
│ 🌅 早安,张三! │
|
||
├─────────────────────────────────────┤
|
||
│ 今天是 2025-11-07 周四 │
|
||
│ ───────────────────────────────── │
|
||
│ │
|
||
│ 📅 连续签到:21天 🔥 │
|
||
│ 本月签到:21/30天 │
|
||
│ (连续签到30天可获得勋章+50积分) │
|
||
│ │
|
||
│ 📋 今日待办: │
|
||
│ • 主图设计 #T001(截止今天18:00)⚠️ │
|
||
│ • 详情页优化 #T015(截止明天) │
|
||
│ • 改图 #T028(排队中) │
|
||
│ │
|
||
│ 🎯 今日目标建议: │
|
||
│ • 完成1个任务(当前进度:2/5) │
|
||
│ • 保持5星好评(连续5星:4个) │
|
||
│ • 按时交付(连续按时:21天) │
|
||
│ │
|
||
│ 💪 加油语录: │
|
||
│ "每一次精心设计,都是向卓越迈进!" │
|
||
│ │
|
||
│ [开始工作] [查看任务] │
|
||
└─────────────────────────────────────┘
|
||
```
|
||
|
||
#### 5.3.8 即时激励弹窗
|
||
|
||
**完成任务时**
|
||
```
|
||
✨ 任务完成!
|
||
|
||
┌─────────────────────────────────────┐
|
||
│ 🎉 恭喜完成任务! │
|
||
├─────────────────────────────────────┤
|
||
│ 任务:主图设计 #T001 │
|
||
│ 用时:1.5天(提前0.5天)✅ │
|
||
│ ───────────────────────────────── │
|
||
│ │
|
||
│ 获得积分:+50分 💎 │
|
||
│ 累计积分:1,030分 │
|
||
│ ───────────────────────────────── │
|
||
│ │
|
||
│ 📊 排名变化 │
|
||
│ 本月积分排名:#4 → #3 ▲ │
|
||
│ 超越了:李四 │
|
||
│ │
|
||
│ 🎯 里程碑 │
|
||
│ • 本月第19个任务 ✅ │
|
||
│ • 连续22天按时交付 🔥 │
|
||
│ • 距离"守时达人"勋章还差8天 │
|
||
│ │
|
||
│ 💪 激励 │
|
||
│ "太棒了!你的速度快人一步!" │
|
||
│ "继续保持,月度之星就是你!" │
|
||
│ │
|
||
│ [分享成果] [接下一个任务] │
|
||
└─────────────────────────────────────┘
|
||
```
|
||
|
||
**获得好评时**
|
||
```
|
||
⭐ 获得5星好评!
|
||
|
||
┌─────────────────────────────────────┐
|
||
│ 🌟 客户给了你5星好评! │
|
||
├─────────────────────────────────────┤
|
||
│ 任务:详情页优化 #T015 │
|
||
│ 评价:"设计质量非常高,超出预期!" │
|
||
│ ───────────────────────────────── │
|
||
│ │
|
||
│ 📊 评分统计 │
|
||
│ • 连续5星好评:5个 🔥 │
|
||
│ • 本月平均评分:4.8⭐ │
|
||
│ • 好评榜排名:#2 ▲ │
|
||
│ │
|
||
│ 🎯 成就进度 │
|
||
│ • "完美主义"勋章:5/10 个5星 │
|
||
│ █████░░░░░ 50% │
|
||
│ │
|
||
│ 💡 提示 │
|
||
│ 再获得5个5星好评即可解锁"完美主义" │
|
||
│ 勋章,奖励200积分! │
|
||
│ │
|
||
│ [查看评价详情] │
|
||
└─────────────────────────────────────┘
|
||
```
|
||
|
||
#### 5.3.9 竞赛活动提示
|
||
|
||
**月度竞赛**
|
||
```
|
||
┌─────────────────────────────────────┐
|
||
│ 🏆 本月竞赛活动 │
|
||
├─────────────────────────────────────┤
|
||
│ 活动主题:"设计马拉松" │
|
||
│ 时间:11月1日-11月30日 │
|
||
│ ───────────────────────────────── │
|
||
│ │
|
||
│ 🎯 竞赛规则 │
|
||
│ • 完成任务数量排名 │
|
||
│ • 平均评分≥4.5分 │
|
||
│ • 零延误记录 │
|
||
│ │
|
||
│ 🏅 奖励设置 │
|
||
│ 🥇 第一名:2000积分 + 荣誉证书 │
|
||
│ 🥈 第二名:1500积分 │
|
||
│ 🥉 第三名:1000积分 │
|
||
│ 🎖️ 4-10名:500积分 │
|
||
│ │
|
||
│ 📊 您的当前排名:#5 │
|
||
│ 完成任务:18个 │
|
||
│ 平均评分:4.75⭐ │
|
||
│ 距离前3名:2个任务的差距 │
|
||
│ │
|
||
│ 💪 冲刺建议 │
|
||
│ "距离活动结束还有5天,加油冲刺!" │
|
||
│ "再完成3个高质量任务,进前3有望!" │
|
||
│ │
|
||
│ [查看排行榜] [活动规则] │
|
||
└─────────────────────────────────────┘
|
||
```
|
||
|
||
#### 5.3.10 团队PK提示
|
||
|
||
**部门团队PK**
|
||
```
|
||
┌─────────────────────────────────────┐
|
||
│ ⚔️ 部门PK战 │
|
||
├─────────────────────────────────────┤
|
||
│ 设计部 UI组 vs 视觉组 │
|
||
│ ───────────────────────────────── │
|
||
│ │
|
||
│ 📊 实时战况 │
|
||
│ UI组: │
|
||
│ • 完成任务:45个 ████████░░ 82% │
|
||
│ • 团队积分:2,250分 │
|
||
│ • 平均评分:4.7⭐ │
|
||
│ │
|
||
│ 视觉组: │
|
||
│ • 完成任务:55个 ██████████ 100% │
|
||
│ • 团队积分:2,750分 │
|
||
│ • 平均评分:4.8⭐ │
|
||
│ │
|
||
│ 📈 差距分析 │
|
||
│ • 任务数:落后10个 │
|
||
│ • 积分:落后500分 │
|
||
│ • 每人需完成:2个任务 │
|
||
│ │
|
||
│ 💪 团队激励 │
|
||
│ "UI组加油!我们能行!" │
|
||
│ "张三、李四刚刚各完成1个任务!" │
|
||
│ "王五正在冲刺,距离完成还有2小时!" │
|
||
│ │
|
||
│ 🎁 获胜奖励 │
|
||
│ • 团队成员各+300积分 │
|
||
│ • 团队荣誉墙展示 │
|
||
│ • 团队聚餐基金 │
|
||
│ │
|
||
│ [为团队加油] [查看详情] │
|
||
└─────────────────────────────────────┘
|
||
```
|
||
|
||
#### 5.3.11 智能提醒和建议
|
||
|
||
**任务推荐**
|
||
```
|
||
💡 智能推荐
|
||
|
||
基于你的历史表现,以下任务很适合你:
|
||
|
||
┌─────────────────────────────────────┐
|
||
│ 🎯 推荐任务 #T088 │
|
||
│ 类型:主图设计 │
|
||
│ 积分:50分 | 时效:1天 │
|
||
│ ───────────────────────────────── │
|
||
│ 推荐原因: │
|
||
│ ✓ 你在该类型任务上平均用时0.8天 │
|
||
│ ✓ 该类型任务的平均评分4.9⭐ │
|
||
│ ✓ 完成后可超越李四,升至第3名! │
|
||
│ ✓ 客户是你的老客户(5次合作) │
|
||
│ │
|
||
│ 预期收益: │
|
||
│ • 积分:+50分 │
|
||
│ • 排名:#4 → #3 │
|
||
│ • 里程碑:本月第20个任务达成 │
|
||
│ │
|
||
│ 成功率预测:95% 💪 │
|
||
│ │
|
||
│ [立即抢单] [查看详情] │
|
||
└─────────────────────────────────────┘
|
||
```
|
||
|
||
**休息提醒**
|
||
```
|
||
⏰ 适度休息提醒
|
||
|
||
张三,你今天已经连续工作5小时了,
|
||
完成了3个任务,表现非常出色!👍
|
||
|
||
建议休息15-20分钟,劳逸结合效率更高!
|
||
|
||
你的今日工作数据:
|
||
• 完成任务:3个 ✅
|
||
• 获得积分:150分 💎
|
||
• 工作时长:5小时
|
||
• 效率评分:优秀 ⭐
|
||
|
||
"休息是为了走更远的路" 😊
|
||
|
||
[休息一下] [继续工作]
|
||
```
|
||
|
||
#### 5.3.12 可视化激励看板
|
||
|
||
**个人激励看板**
|
||
```
|
||
┌─────────────────────────────────────────────────┐
|
||
│ ✨ 我的激励看板 │
|
||
├─────────────────────────────────────────────────┤
|
||
│ │
|
||
│ 🏆 本月成就 │
|
||
│ ┌─────────┐ ┌─────────┐ ┌─────────┐ │
|
||
│ │ 积分排名 │ │ 完成任务 │ │ 好评数 │ │
|
||
│ │ #3 │ │ 18个 │ │ 15个 │ │
|
||
│ │ ▲ +2 │ │ ▲ +5 │ │ ▲ +3 │ │
|
||
│ └─────────┘ └─────────┘ └─────────┘ │
|
||
│ │
|
||
│ 📈 趋势曲线(近30天) │
|
||
│ 积分 │ ╱ │
|
||
│ 1000│ ╱ │
|
||
│ 800│╱ │
|
||
│ 600└───────────────── │
|
||
│ 1周 2周 3周 4周 │
|
||
│ │
|
||
│ 🎯 目标进度 │
|
||
│ 月度目标:1200积分 │
|
||
│ 当前进度:980分 ████████░░ 82% │
|
||
│ 还需:220分(预计3天可达成) │
|
||
│ │
|
||
│ 🔥 连续记录 │
|
||
│ • 连续签到:21天 🔥🔥🔥 │
|
||
│ • 连续按时:22天 ⚡⚡⚡ │
|
||
│ • 连续5星:5个 ⭐⭐⭐ │
|
||
│ │
|
||
│ 💎 本月收获 │
|
||
│ • 获得积分:980分 │
|
||
│ • 解锁成就:2个 │
|
||
│ • 获得好评:15个 │
|
||
│ • 被感谢:8次 │
|
||
│ │
|
||
└─────────────────────────────────────────────────┘
|
||
```
|
||
|
||
### 5.4 实时进度跟踪
|
||
|
||
**甘特图视图**
|
||
- 横轴:时间线(按天/周显示)
|
||
- 纵轴:设计师列表
|
||
- 任务条:显示任务名称、进度、状态
|
||
- 颜色标识:
|
||
- 绿色:正常进行
|
||
- 黄色:即将到期
|
||
- 红色:已延期
|
||
- 灰色:已完成
|
||
|
||
**时间线视图示例**
|
||
```
|
||
设计师 11/7 11/8 11/9 11/10 11/11
|
||
────────────────────────────────────────────
|
||
张三 [████主图设计█████]
|
||
[░░░░详情页░░░░░░░░░░░░]
|
||
────────────────────────────────────────────
|
||
李四 [██████视频剪辑████]
|
||
[░新品░░░]
|
||
────────────────────────────────────────────
|
||
王五 [█改图█]
|
||
[░░░░░优化设计░░░░░░░]
|
||
```
|
||
|
||
### 5.4 数据分析看板
|
||
|
||
#### 5.4.1 总览卡片
|
||
|
||
**设计师团队总览**
|
||
```
|
||
┌─────────────┐ ┌─────────────┐ ┌─────────────┐
|
||
│ 👥 团队人数 │ │ 📊 总任务量 │ │ ✅ 完成率 │
|
||
│ │ │ │ │ │
|
||
│ 28人 │ │ 156个 │ │ 92.3% │
|
||
│ │ │ │ │ │
|
||
│ ↑ 较上月+2 │ │ ↑ 较上月+8 │ │ ↓ 较上月-1%│
|
||
└─────────────┘ └─────────────┘ └─────────────┘
|
||
|
||
┌─────────────┐ ┌─────────────┐ ┌─────────────┐
|
||
│ ⭐ 平均评分 │ │ ⚠️ 延误率 │ │ 💎 总积分 │
|
||
│ │ │ │ │ │
|
||
│ 4.6 ⭐ │ │ 5.2% │ │ 28,500 │
|
||
│ │ │ │ │ │
|
||
│ ↑ 较上月+0.2│ │ ↓ 较上月-2%│ │ ↑ 较上月+3K│
|
||
└─────────────┘ └─────────────┘ └─────────────┘
|
||
```
|
||
|
||
#### 5.4.2 多维度分析图表
|
||
|
||
**A. 任务完成趋势图(折线图)**
|
||
- X轴:时间(周/月)
|
||
- Y轴:任务数量
|
||
- 多条线:发起、完成、延误
|
||
|
||
**B. 需求类型分布(饼图)**
|
||
- 各类型需求占比
|
||
- 点击可查看详细数据
|
||
|
||
**C. 设计师积分排名(柱状图)**
|
||
- 显示Top 20
|
||
- 对比上月排名变化
|
||
|
||
**D. 任务时效分析(雷达图)**
|
||
- 多维度:质量、时效、沟通、复用率、创新度
|
||
|
||
**E. 品牌/类目热力图**
|
||
- 哪些品牌/类目的任务最多
|
||
- 用于资源分配参考
|
||
|
||
**F. 设计师负荷热力图**
|
||
- 日历视图
|
||
- 颜色深浅代表负荷程度
|
||
|
||
#### 5.4.3 排行榜
|
||
|
||
**好评榜(五星好评榜)**
|
||
```
|
||
排名 设计师 五星数 平均评分 完成任务数
|
||
─────────────────────────────────────────
|
||
🥇 张三 45 4.9⭐ 48
|
||
🥈 王五 38 4.8⭐ 42
|
||
🥉 李四 35 4.7⭐ 45
|
||
4 赵六 32 4.6⭐ 40
|
||
5 孙七 30 4.7⭐ 38
|
||
```
|
||
|
||
**积分榜**
|
||
```
|
||
排名 设计师 本月积分 累计积分 环比增长
|
||
─────────────────────────────────────────
|
||
🥇 李四 1,250 12,500 ↑15%
|
||
🥈 张三 1,180 15,200 ↑8%
|
||
🥉 王五 980 9,800 ↑12%
|
||
```
|
||
|
||
**效率榜(按时完成率)**
|
||
```
|
||
排名 设计师 完成任务 按时完成 按时率
|
||
─────────────────────────────────────────
|
||
🥇 王五 42 42 100%
|
||
🥈 张三 48 47 97.9%
|
||
🥉 李四 45 43 95.6%
|
||
```
|
||
|
||
**勤奋榜(任务数量)**
|
||
```
|
||
排名 设计师 本月完成 累计完成 月均完成
|
||
─────────────────────────────────────────
|
||
🥇 张三 48 520 43
|
||
🥈 李四 45 480 40
|
||
🥉 王五 42 450 38
|
||
```
|
||
|
||
#### 5.4.4 高级筛选
|
||
|
||
**筛选维度**
|
||
- 时间范围:本周/本月/本季度/本年/自定义
|
||
- 部门/团队
|
||
- 设计师
|
||
- 任务类型
|
||
- 需求类型
|
||
- 品牌
|
||
- 状态
|
||
|
||
**导出功能**
|
||
- 导出Excel报表
|
||
- 导出PDF报告
|
||
- 定时邮件推送(周报/月报)
|
||
|
||
---
|
||
|
||
## 五之二、需求统计展板模块
|
||
|
||
### 5.5 功能概述
|
||
需求统计展板为管理层和各部门提供全局的需求发起数据分析,通过用户维度和部门维度的多角度统计,帮助了解需求分布、消耗趋势和团队协作情况。
|
||
|
||
### 5.6 统计展板首页
|
||
|
||
**整体布局**
|
||
```
|
||
┌──────────────────────────────────────────────────┐
|
||
│ 需求统计展板 │
|
||
├──────────────────────────────────────────────────┤
|
||
│ 筛选:[本月▼] [全部部门▼] [导出报表] │
|
||
│ ────────────────────────────────────────────── │
|
||
│ │
|
||
│ 📊 总览数据卡片 │
|
||
│ ┌────────┐ ┌────────┐ ┌────────┐ ┌────────┐ │
|
||
│ │发起总数 │ │消耗积分 │ │完成率 │ │平均时效 │ │
|
||
│ │ 256个 │ │ 12,500 │ │ 92.3% │ │ 1.8天 │ │
|
||
│ │↑ +15% │ │↑ +8% │ │↓ -1.2% │ │↓ -0.3天│ │
|
||
│ └────────┘ └────────┘ └────────┘ └────────┘ │
|
||
│ │
|
||
│ ────────────────────────────────────────────── │
|
||
│ [部门维度] [用户维度] [趋势分析] [类型分析] │
|
||
│ ────────────────────────────────────────────── │
|
||
│ │
|
||
│ (下方显示对应的统计内容) │
|
||
│ │
|
||
└──────────────────────────────────────────────────┘
|
||
```
|
||
|
||
### 5.7 部门维度统计
|
||
|
||
**部门积分余额消耗提醒看板**
|
||
```
|
||
┌──────────────────────────────────────────────────┐
|
||
│ 💰 部门积分消耗月报(激励消耗) │
|
||
├──────────────────────────────────────────────────┤
|
||
│ 当前月份:2025年11月 | 剩余天数:⏰ 5天 │
|
||
│ ────────────────────────────────────────────── │
|
||
│ │
|
||
│ 🔥 消耗提醒:月底将至,抓紧消耗您的积分额度! │
|
||
│ │
|
||
│ ┌─────────────────────────────────────────┐ │
|
||
│ │ 产品部 - 负责人:张三 │ │
|
||
│ │ ───────────────────────────────────── │ │
|
||
│ │ 月度积分池:10,000 分 │ │
|
||
│ │ 已使用:4,250 分(42.5%) │ │
|
||
│ │ 剩余可用:5,750 分(57.5%) │ │
|
||
│ │ ▓▓▓▓▓▓▓▓░░░░░░░░░░░░ │ │
|
||
│ │ │ │
|
||
│ │ 💡 建议:还有5,750分可用,可发起约115个 │ │
|
||
│ │ 主图设计任务(50分/个) │ │
|
||
│ │ │ │
|
||
│ │ ⚠️ 提醒:月底剩余积分将清零,请合理利用! │ │
|
||
│ │ [立即发起任务] │ │
|
||
│ └─────────────────────────────────────────┘ │
|
||
│ │
|
||
│ ┌─────────────────────────────────────────┐ │
|
||
│ │ 市场部 - 负责人:李四 │ │
|
||
│ │ ───────────────────────────────────── │ │
|
||
│ │ 月度积分池:8,000 分 │ │
|
||
│ │ 已使用:3,400 分(42.5%) │ │
|
||
│ │ 剩余可用:4,600 分(57.5%) │ │
|
||
│ │ ▓▓▓▓▓▓▓▓░░░░░░░░░░░░ │ │
|
||
│ │ │ │
|
||
│ │ 💡 建议:还有4,600分可用 │ │
|
||
│ │ [立即发起任务] │ │
|
||
│ └─────────────────────────────────────────┘ │
|
||
│ │
|
||
│ ┌─────────────────────────────────────────┐ │
|
||
│ │ 运营部 - 负责人:王五 │ │
|
||
│ │ ───────────────────────────────────── │ │
|
||
│ │ 月度积分池:5,000 分 │ │
|
||
│ │ 已使用:4,800 分(96%) │ │
|
||
│ │ 剩余可用:200 分(4%)🎉 快消耗完了! │ │
|
||
│ │ ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓░ │ │
|
||
│ │ │ │
|
||
│ │ ✅ 优秀:积分利用率高达96%! │ │
|
||
│ │ [立即发起任务] │ │
|
||
│ └─────────────────────────────────────────┘ │
|
||
│ │
|
||
│ 🏆 本月积分消耗率排行榜 │
|
||
│ 1. 运营部 96% (4,800/5,000) 🥇 第一名 │
|
||
│ 2. 电商部 85% (3,400/4,000) 🥈 第二名 │
|
||
│ 3. 产品部 42% (4,250/10,000) 🥉 第三名 │
|
||
│ 4. 市场部 42% (3,400/8,000) │
|
||
│ │
|
||
│ ⏰ 月底倒计时:还有 5 天 │
|
||
│ 📢 温馨提示:月底未使用的积分将清零,请各部门 │
|
||
│ 负责人合理安排任务发起,充分利用积分资源! │
|
||
│ │
|
||
│ [查看历史消耗] [导出消耗报告] [钉钉提醒] │
|
||
└──────────────────────────────────────────────────┘
|
||
```
|
||
|
||
**积分消耗提醒规则**
|
||
- **绿色区域(0-50%)**:🟢 消耗率偏低,提醒"还有XX分可用,请合理安排任务"
|
||
- **黄色区域(51-80%)**:🟡 消耗率适中,提醒"进度良好,还可继续使用"
|
||
- **橙色区域(81-95%)**:🟠 消耗率较高,提醒"积分利用率高,再接再厉"
|
||
- **红色区域(96-100%)**:🔴 即将用完,祝贺"太棒了!积分利用率极高"
|
||
|
||
**月底倒计时提醒**
|
||
- 距离月底30天:无特殊提醒
|
||
- 距离月底15天:显示"还有15天,请注意积分使用进度"
|
||
- 距离月底7天:显示"⚠️ 还有7天,抓紧时间消耗积分"
|
||
- 距离月底3天:显示"🔥 紧急提醒:还有3天!快发起任务"
|
||
- 距离月底1天:显示"⚡ 最后1天!积分即将清零"
|
||
|
||
**智能建议功能**
|
||
系统根据剩余积分和常用任务类型,自动计算并推荐可发起的任务数量:
|
||
```javascript
|
||
// 智能建议算法
|
||
function calculateSuggestion(remainingScore, deptHistory) {
|
||
// 获取部门最常发起的任务类型
|
||
const topTaskTypes = getTopTaskTypes(deptHistory, 3);
|
||
|
||
const suggestions = topTaskTypes.map(taskType => {
|
||
const count = Math.floor(remainingScore / taskType.unitScore);
|
||
return {
|
||
taskTypeName: taskType.name,
|
||
unitScore: taskType.unitScore,
|
||
suggestedCount: count,
|
||
totalScore: count * taskType.unitScore
|
||
};
|
||
});
|
||
|
||
return suggestions;
|
||
}
|
||
```
|
||
|
||
**部门排行榜**
|
||
```
|
||
┌──────────────────────────────────────────────────┐
|
||
│ 需求部门统计排行(本月) │
|
||
├──────────────────────────────────────────────────┤
|
||
│ │
|
||
│ 排名 部门 发起数 消耗积分 完成率 平均评分│
|
||
│ ──────────────────────────────────────────── │
|
||
│ 🥇 产品部 85个 4,250 94.1% 4.8⭐ │
|
||
│ 负责人:张三 │
|
||
│ 本月积分池:10000分 | 已用:4250分(42%) │
|
||
│ 💰 剩余:5750分 🔥 抓紧消耗 │
|
||
│ [查看详情] [查看明细] [立即发起任务] │
|
||
│ ──────────────────────────────────────────── │
|
||
│ 🥈 市场部 68个 3,400 91.2% 4.7⭐ │
|
||
│ 负责人:李四 │
|
||
│ 本月积分池:8000分 | 已用:3400分(42%) │
|
||
│ 💰 剩余:4600分 🔥 抓紧消耗 │
|
||
│ [查看详情] [查看明细] [立即发起任务] │
|
||
│ ──────────────────────────────────────────── │
|
||
│ 🥉 运营部 52个 4,800 89.8% 4.6⭐ │
|
||
│ 负责人:王五 │
|
||
│ 本月积分池:5000分 | 已用:4800分(96%) │
|
||
│ ✅ 剩余:200分 优秀利用率 │
|
||
│ [查看详情] [查看明细] [立即发起任务] │
|
||
│ ──────────────────────────────────────────── │
|
||
│ 4 电商部 41个 3,400 93.7% 4.9⭐ │
|
||
│ 积分池:4000分 | 已用:3400分(85%) 🟠 │
|
||
│ 5 设计部 10个 500 95.0% 4.8⭐ │
|
||
│ 积分池:6000分 | 已用:500分(8%) 🟢 │
|
||
│ │
|
||
│ [查看全部部门] │
|
||
└──────────────────────────────────────────────────┘
|
||
```
|
||
|
||
**部门详情卡片**
|
||
```
|
||
┌──────────────────────────────────────────────────┐
|
||
│ 产品部 - 需求统计详情 │
|
||
├──────────────────────────────────────────────────┤
|
||
│ 负责人:张三 | 成员:15人 │
|
||
│ ────────────────────────────────────────────── │
|
||
│ │
|
||
│ 📈 本月概况(2025-11) │
|
||
│ ┌────────┐ ┌────────┐ ┌────────┐ ┌────────┐ │
|
||
│ │发起任务 │ │消耗积分 │ │完成任务 │ │进行中 │ │
|
||
│ │ 85个 │ │ 4,250 │ │ 71个 │ │ 12个 │ │
|
||
│ └────────┘ └────────┘ └────────┘ └────────┘ │
|
||
│ │
|
||
│ 💰 积分使用情况 │
|
||
│ 本月限制:2,000 分 │
|
||
│ 实际消耗:4,250 分 ⚠️(超限2,250分) │
|
||
│ 进度:████████████████████░ 212% │
|
||
│ │
|
||
│ ⚠️ 提示:已超出本月限制,请控制需求发起 │
|
||
│ │
|
||
│ 📊 需求类型分布 │
|
||
│ ┌────────────────────────────────────────┐ │
|
||
│ │ ████████ 主图设计 35个 (41%) │ │
|
||
│ │ ██████ 详情页设计 25个 (29%) │ │
|
||
│ │ ████ 视频剪辑 15个 (18%) │ │
|
||
│ │ ██ 改图 10个 (12%) │ │
|
||
│ └────────────────────────────────────────┘ │
|
||
│ │
|
||
│ 📅 每周发起趋势 │
|
||
│ ┌────────────────────────────────────────┐ │
|
||
│ │ 25│ ● │ │
|
||
│ │ 20│ ● ● │ │
|
||
│ │ 15│ ● ● │ │
|
||
│ │ 10│ ● ● │ │
|
||
│ │ 0└───────────────────── │ │
|
||
│ │ W1 W2 W3 W4 W5 │ │
|
||
│ └────────────────────────────────────────┘ │
|
||
│ │
|
||
│ 👥 部门成员发起排名(Top 5) │
|
||
│ 1. 张三 28个 1,400分 ⭐4.9 │
|
||
│ 2. 李四 22个 1,100分 ⭐4.8 │
|
||
│ 3. 王五 18个 900分 ⭐4.7 │
|
||
│ 4. 赵六 12个 600分 ⭐4.6 │
|
||
│ 5. 孙七 5个 250分 ⭐4.8 │
|
||
│ │
|
||
│ [导出明细] [设置消耗限制] [积分充值] │
|
||
└──────────────────────────────────────────────────┘
|
||
```
|
||
|
||
### 5.8 用户维度统计
|
||
|
||
**用户发起排行榜**
|
||
```
|
||
┌──────────────────────────────────────────────────┐
|
||
│ 需求发起用户排行(本月) │
|
||
├──────────────────────────────────────────────────┤
|
||
│ 🔍 搜索:[姓名/工号] 筛选:[部门▼] [排序▼] │
|
||
│ ────────────────────────────────────────────── │
|
||
│ │
|
||
│ 排名 用户 部门 发起数 消耗积分 完成率│
|
||
│ ──────────────────────────────────────────── │
|
||
│ 🥇 张三 产品部 28个 1,400 96.4% │
|
||
│ 最常发起:主图设计(12个) │
|
||
│ 平均评分:4.9⭐ │
|
||
│ [查看详情] │
|
||
│ ──────────────────────────────────────────── │
|
||
│ 🥈 李四 市场部 25个 1,250 92.0% │
|
||
│ 最常发起:详情页设计(10个) │
|
||
│ 平均评分:4.8⭐ │
|
||
│ [查看详情] │
|
||
│ ──────────────────────────────────────────── │
|
||
│ 🥉 王五 产品部 22个 1,100 90.9% │
|
||
│ 最常发起:视频剪辑(8个) │
|
||
│ 平均评分:4.7⭐ │
|
||
│ [查看详情] │
|
||
│ ──────────────────────────────────────────── │
|
||
│ 4 赵六 运营部 20个 1,000 95.0% │
|
||
│ 5 孙七 市场部 18个 900 88.9% │
|
||
│ ... │
|
||
│ │
|
||
│ [查看全部] [导出列表] │
|
||
└──────────────────────────────────────────────────┘
|
||
```
|
||
|
||
**用户详情分析**
|
||
```
|
||
┌──────────────────────────────────────────────────┐
|
||
│ 张三 - 需求发起详情 │
|
||
├──────────────────────────────────────────────────┤
|
||
│ 👤 产品部 - 产品经理 | 工号:EP001 │
|
||
│ ────────────────────────────────────────────── │
|
||
│ │
|
||
│ 📊 统计概览 │
|
||
│ ┌────────┐ ┌────────┐ ┌────────┐ ┌────────┐ │
|
||
│ │本月发起 │ │消耗积分 │ │完成率 │ │平均评分 │ │
|
||
│ │ 28个 │ │ 1,400 │ │ 96.4% │ │ 4.9⭐ │ │
|
||
│ │↑ +5个 │ │↑ +250 │ │↑ +2.1% │ │持平 │ │
|
||
│ └────────┘ └────────┘ └────────┘ └────────┘ │
|
||
│ │
|
||
│ 📈 需求类型偏好 │
|
||
│ ┌────────────────────────────────────────┐ │
|
||
│ │ ████████████ 主图设计 12个 (43%) │ │
|
||
│ │ ████████ 详情页设计 8个 (29%) │ │
|
||
│ │ ████ 视频剪辑 5个 (18%) │ │
|
||
│ │ ██ 改图 3个 (11%) │ │
|
||
│ └────────────────────────────────────────┘ │
|
||
│ │
|
||
│ 🎯 品牌分布 │
|
||
│ Nike: 10个 | Adidas: 8个 | Puma: 6个 | 其他: 4个│
|
||
│ │
|
||
│ 📅 发起时间分布 │
|
||
│ ┌────────────────────────────────────────┐ │
|
||
│ │ 周一: ███ 5个 │ │
|
||
│ │ 周二: ████ 6个 │ │
|
||
│ │ 周三: ████ 6个 │ │
|
||
│ │ 周四: ███ 5个 │ │
|
||
│ │ 周五: ██ 4个 │ │
|
||
│ │ 周六: █ 1个 │ │
|
||
│ │ 周日: █ 1个 │ │
|
||
│ └────────────────────────────────────────┘ │
|
||
│ │
|
||
│ ⏱️ 平均任务时效:1.6天 │
|
||
│ 📍 最常合作设计师:李四(接收8个任务) │
|
||
│ │
|
||
│ 📋 最近发起的任务(Top 5) │
|
||
│ 1. #T001 主图设计 已完成 ⭐5.0 2天 │
|
||
│ 2. #T015 详情页优化 进行中 - - │
|
||
│ 3. #T028 视频剪辑 已完成 ⭐4.8 1.5天 │
|
||
│ 4. #T042 改图 已完成 ⭐5.0 0.5天 │
|
||
│ 5. #T055 新品设计 待接收 - - │
|
||
│ │
|
||
│ [查看全部任务] [导出数据] │
|
||
└──────────────────────────────────────────────────┘
|
||
```
|
||
|
||
### 5.9 趋势分析
|
||
|
||
**时间趋势图**
|
||
```
|
||
┌──────────────────────────────────────────────────┐
|
||
│ 需求发起趋势分析 │
|
||
├──────────────────────────────────────────────────┤
|
||
│ 时间范围:[近6个月▼] 对比:[同比▼] │
|
||
│ ────────────────────────────────────────────── │
|
||
│ │
|
||
│ 📈 需求发起数量趋势 │
|
||
│ 300│ │
|
||
│ │ ●● │
|
||
│ 250│ ●● │
|
||
│ │ ●● │
|
||
│ 200│ ●● │
|
||
│ │ ●● │
|
||
│ 150│ ●● │
|
||
│ │ ●● │
|
||
│ 100│ ●● │
|
||
│ └───────────────────────────────── │
|
||
│ 6月 7月 8月 9月 10月 11月 │
|
||
│ │
|
||
│ 💰 积分消耗趋势 │
|
||
│ 15K│ │
|
||
│ │ ●● │
|
||
│ 12K│ ●● │
|
||
│ │ ●● │
|
||
│ 9K│ ●● │
|
||
│ │ ●● │
|
||
│ 6K│ ●● │
|
||
│ │ ●● │
|
||
│ 3K│ ●● │
|
||
│ └───────────────────────────────── │
|
||
│ 6月 7月 8月 9月 10月 11月 │
|
||
│ │
|
||
│ 📊 环比数据 │
|
||
│ 本月 vs 上月: │
|
||
│ - 发起数:256个 vs 223个 (↑14.8%) │
|
||
│ - 消耗积分:12,500 vs 11,580 (↑7.9%) │
|
||
│ - 完成率:92.3% vs 93.5% (↓1.3%) │
|
||
│ │
|
||
└──────────────────────────────────────────────────┘
|
||
```
|
||
|
||
### 5.10 类型分析
|
||
|
||
**需求类型统计**
|
||
```
|
||
┌──────────────────────────────────────────────────┐
|
||
│ 需求类型分析 │
|
||
├──────────────────────────────────────────────────┤
|
||
│ │
|
||
│ 📊 类型分布(本月) │
|
||
│ ┌────────────────────────────────────────┐ │
|
||
│ │ │ │
|
||
│ │ ██████████ 主图设计 40% │ │
|
||
│ │ ███████ 详情页设计 28% │ │
|
||
│ │ █████ 视频剪辑 20% │ │
|
||
│ │ ███ 改图 12% │ │
|
||
│ │ │ │
|
||
│ └────────────────────────────────────────┘ │
|
||
│ │
|
||
│ 类型 数量 占比 平均积分 平均时效 完成率 │
|
||
│ ──────────────────────────────────────────── │
|
||
│ 主图 102 40% 50分 1.5天 94% │
|
||
│ 详情 72 28% 200分 2.5天 91% │
|
||
│ 视频 51 20% 150分 2.0天 89% │
|
||
│ 改图 31 12% 30分 0.8天 98% │
|
||
│ │
|
||
│ 📈 类型趋势对比 │
|
||
│ (折线图显示各类型近6个月的变化) │
|
||
│ │
|
||
│ 🏆 最受欢迎:主图设计(102个,4,590分) │
|
||
│ 💎 最高价值:详情页设计(平均200分/个) │
|
||
│ ⚡ 最快完成:改图(平均0.8天) │
|
||
│ │
|
||
└──────────────────────────────────────────────────┘
|
||
```
|
||
|
||
### 5.11 导出与报表
|
||
|
||
**导出功能**
|
||
```
|
||
支持导出格式:
|
||
✓ Excel(详细明细)
|
||
✓ PDF(可视化报表)
|
||
✓ CSV(原始数据)
|
||
✓ 图片(图表截图)
|
||
|
||
导出内容:
|
||
✓ 部门统计数据
|
||
✓ 用户发起明细
|
||
✓ 任务完成情况
|
||
✓ 积分消耗记录
|
||
✓ 趋势分析图表
|
||
|
||
定时报表:
|
||
✓ 每周一早9:00发送上周统计
|
||
✓ 每月1号早9:00发送上月统计
|
||
✓ 季度/年度报告
|
||
```
|
||
|
||
**报表订阅**
|
||
```
|
||
┌───────────────────────────────┐
|
||
│ 统计报表订阅 │
|
||
├───────────────────────────────┤
|
||
│ 订阅类型: │
|
||
│ ☑ 周报(每周一) │
|
||
│ ☑ 月报(每月1号) │
|
||
│ ☐ 季报(每季度首日) │
|
||
│ │
|
||
│ 接收人: │
|
||
│ ☑ 自己 │
|
||
│ ☑ 部门负责人 │
|
||
│ ☑ 上级领导 │
|
||
│ ☐ 其他人员 [添加] │
|
||
│ │
|
||
│ 发送方式: │
|
||
│ ☑ 邮件 │
|
||
│ ☑ 钉钉 │
|
||
│ ☐ 短信 │
|
||
│ │
|
||
│ [取消] [保存] │
|
||
└───────────────────────────────┘
|
||
```
|
||
|
||
---
|
||
|
||
## 六、系统配置模块
|
||
|
||
### 6.1 功能清单
|
||
|
||
#### 6.1.1 需求类型配置
|
||
```
|
||
列表视图:
|
||
ID 类型名称 单价分值 预估耗时 状态 操作
|
||
───────────────────────────────────────────────
|
||
1 主图设计 50 4小时 启用 [编辑] [禁用]
|
||
2 详情页设计 200 2天 启用 [编辑] [禁用]
|
||
3 视频剪辑 150 1天 启用 [编辑] [禁用]
|
||
4 图片修图 30 2小时 禁用 [编辑] [启用]
|
||
|
||
[+ 新增需求类型]
|
||
```
|
||
|
||
**表单字段**
|
||
- 类型名称(必填)
|
||
- 单价分值(必填,数字)
|
||
- 预估耗时(必填,小时/天)
|
||
- 类型描述(选填,富文本)
|
||
- 交付要求(选填,富文本)
|
||
- 排序(数字,用于前端显示顺序)
|
||
- 状态(启用/禁用)
|
||
|
||
#### 6.1.2 品牌配置
|
||
```
|
||
列表视图(卡片或表格):
|
||
|
||
┌──────────┐ ┌──────────┐ ┌──────────┐
|
||
│ [LOGO] │ │ [LOGO] │ │ [LOGO] │
|
||
│ Nike │ │ Adidas │ │ Puma │
|
||
│ │ │ │ │ │
|
||
│ 任务数:25│ │ 任务数:18│ │ 任务数:12│
|
||
│ │ │ │ │ │
|
||
│[编辑][删] │ │[编辑][删] │ │[编辑][删] │
|
||
└──────────┘ └──────────┘ └──────────┘
|
||
|
||
[+ 新增品牌]
|
||
```
|
||
|
||
**表单字段**
|
||
- 品牌名称(必填)
|
||
- 品牌LOGO(图片上传)
|
||
- 品牌官网(选填)
|
||
- 品牌说明(选填)
|
||
- 设计风格指南(选填,富文本或附件)
|
||
- 排序
|
||
- 状态
|
||
|
||
#### 6.1.3 类目配置
|
||
```
|
||
树形结构视图:
|
||
|
||
+ 服装
|
||
+ 女装
|
||
- 连衣裙 [编辑] [删除] [添加子类目]
|
||
- T恤 [编辑] [删除]
|
||
- 裤子 [编辑] [删除]
|
||
+ 男装
|
||
- 衬衫 [编辑] [删除]
|
||
- 牛仔裤 [编辑] [删除]
|
||
+ 鞋类
|
||
+ 运动鞋
|
||
- 跑步鞋 [编辑] [删除]
|
||
- 篮球鞋 [编辑] [删除]
|
||
+ 配饰
|
||
|
||
[+ 新增一级类目]
|
||
```
|
||
|
||
**表单字段**
|
||
- 类目名称(必填)
|
||
- 父级类目(选择,为空则为一级类目)
|
||
- 类目描述(选填)
|
||
- 是否叶子类目(系统自动判断)
|
||
- 排序
|
||
- 状态
|
||
|
||
**功能要求**
|
||
- 支持拖拽排序
|
||
- 支持批量导入(Excel)
|
||
- 支持批量操作(启用/禁用/删除)
|
||
- 删除校验(有关联任务时不允许删除)
|
||
|
||
#### 6.1.4 平台配置
|
||
```
|
||
列表视图:
|
||
|
||
┌──────────┐ ┌──────────┐ ┌──────────┐
|
||
│ [图标] │ │ [图标] │ │ [图标] │
|
||
│ 淘宝 │ │ 天猫 │ │ 京东 │
|
||
│ │ │ │ │ │
|
||
│ 任务数:88│ │ 任务数:56│ │ 任务数:34│
|
||
│ │ │ │ │ │
|
||
│[编辑][删] │ │[编辑][删] │ │[编辑][删] │
|
||
└──────────┘ └──────────┘ └──────────┘
|
||
|
||
[+ 新增平台]
|
||
```
|
||
|
||
**表单字段**
|
||
- 平台名称(必填)
|
||
- 平台图标(图片上传)
|
||
- 平台官网(选填)
|
||
- 设计规范说明(选填,富文本或附件)
|
||
- 排序
|
||
- 状态
|
||
|
||
#### 6.1.5 积分管理
|
||
|
||
**团队积分池配置**
|
||
```
|
||
团队列表:
|
||
团队名称 当前积分 已使用 总充值 操作
|
||
─────────────────────────────────────────────
|
||
产品一部 2,500 7,500 10,000 [充值] [明细]
|
||
产品二部 1,200 3,800 5,000 [充值] [明细]
|
||
市场部 800 1,200 2,000 [充值] [明细]
|
||
|
||
充值记录:[查看所有充值记录]
|
||
```
|
||
|
||
**充值表单**
|
||
- 选择团队
|
||
- 充值积分数量
|
||
- 充值原因/说明
|
||
- 审批人(可选)
|
||
|
||
**积分明细**
|
||
- 时间
|
||
- 操作类型(充值/消耗/退回)
|
||
- 积分变动
|
||
- 关联任务(如果是消耗)
|
||
- 操作人
|
||
- 余额
|
||
|
||
#### 6.1.6 延误扣分规则配置
|
||
|
||
**延误扣分规则管理**
|
||
```
|
||
┌──────────────────────────────────────────────┐
|
||
│ 延误扣分规则配置 │
|
||
├──────────────────────────────────────────────┤
|
||
│ 规则状态:● 启用 ○ 禁用 │
|
||
│ ──────────────────────────────────────── │
|
||
│ 延误等级配置: │
|
||
│ │
|
||
│ ┌─────────────────────────────────────┐ │
|
||
│ │ 轻微延误 │ │
|
||
│ │ 延误时长:< 2 小时 │ │
|
||
│ │ 扣分规则:每小时 [2] 分 │ │
|
||
│ │ 状态:启用 [编辑] [删除] │ │
|
||
│ └─────────────────────────────────────┘ │
|
||
│ │
|
||
│ ┌─────────────────────────────────────┐ │
|
||
│ │ 一般延误 │ │
|
||
│ │ 延误时长:2-8 小时 │ │
|
||
│ │ 扣分规则:每小时 [3] 分 │ │
|
||
│ │ 状态:启用 [编辑] [删除] │ │
|
||
│ └─────────────────────────────────────┘ │
|
||
│ │
|
||
│ ┌─────────────────────────────────────┐ │
|
||
│ │ 严重延误 │ │
|
||
│ │ 延误时长:8-24 小时 │ │
|
||
│ │ 扣分规则:每小时 [5] 分 │ │
|
||
│ │ 状态:启用 [编辑] [删除] │ │
|
||
│ └─────────────────────────────────────┘ │
|
||
│ │
|
||
│ ┌─────────────────────────────────────┐ │
|
||
│ │ 重大延误 │ │
|
||
│ │ 延误时长:> 24 小时 │ │
|
||
│ │ 扣分规则:基础 [50] 分 + 每天 [10] 分│ │
|
||
│ │ 状态:启用 [编辑] [删除] │ │
|
||
│ └─────────────────────────────────────┘ │
|
||
│ │
|
||
│ [+ 新增延误等级] │
|
||
│ ──────────────────────────────────────── │
|
||
│ 其他设置: │
|
||
│ ☑ 任务转移时自动计算延误扣分 │
|
||
│ ☑ 允许设计师申诉延误扣分 │
|
||
│ ☑ 显示延误预警提醒 │
|
||
│ □ 延误扣分翻倍(重复延误) │
|
||
│ │
|
||
│ 申诉审核: │
|
||
│ 审核人:[主管] ▼ │
|
||
│ 审核时限:[48小时] │
|
||
│ │
|
||
│ [重置为默认] [保存配置] │
|
||
└──────────────────────────────────────────────┘
|
||
```
|
||
|
||
**编辑延误等级表单**
|
||
```
|
||
┌───────────────────────────────┐
|
||
│ 编辑延误等级 │
|
||
├───────────────────────────────┤
|
||
│ 等级名称: │
|
||
│ [一般延误] │
|
||
│ │
|
||
│ 延误时长范围: │
|
||
│ 最小:[2] 小时 │
|
||
│ 最大:[8] 小时 │
|
||
│ │
|
||
│ 扣分规则: │
|
||
│ ○ 固定扣分 │
|
||
│ ● 按时长扣分 │
|
||
│ ○ 阶梯扣分 │
|
||
│ │
|
||
│ 按时长扣分参数: │
|
||
│ 每小时扣:[3] 分 │
|
||
│ 最高扣分:[24] 分(可选) │
|
||
│ │
|
||
│ 说明: │
|
||
│ ┌─────────────────────────┐ │
|
||
│ │ 一般程度的延误... │ │
|
||
│ └─────────────────────────┘ │
|
||
│ │
|
||
│ 状态:● 启用 ○ 禁用 │
|
||
│ │
|
||
│ [取消] [保存] │
|
||
└───────────────────────────────┘
|
||
```
|
||
|
||
**延误扣分预览测试**
|
||
```
|
||
输入延误时长:[10] 小时
|
||
|
||
计算结果:
|
||
- 匹配规则:严重延误(8-24小时)
|
||
- 扣分规则:每小时 5 分
|
||
- 计算过程:10 × 5 = 50 分
|
||
- 扣分结果:-50 分
|
||
|
||
[重新计算]
|
||
```
|
||
|
||
#### 6.1.7 系统参数配置
|
||
|
||
**通用配置**
|
||
```
|
||
参数名称 当前值 操作
|
||
───────────────────────────────────────────────
|
||
设计师最大任务并发数 5 [修改]
|
||
任务抢单超时时间(分钟) 30 [修改]
|
||
任务延期预警提前时间(小时) 24 [修改]
|
||
积分预警阈值 500 [修改]
|
||
文件上传大小限制(MB) 100 [修改]
|
||
任务自动关闭时间(天) 30 [修改]
|
||
时效重新计算默认系数 1.0 [修改]
|
||
设计师熟练度系数范围 0.8-1.2 [修改]
|
||
```
|
||
|
||
**通知配置**
|
||
- 站内消息开关
|
||
- 钉钉通知开关
|
||
- 邮件通知开关
|
||
- 延误扣分通知开关
|
||
- 通知模板配置
|
||
|
||
#### 6.1.8 激励系统配置
|
||
|
||
**功能概述**
|
||
管理员可以在后台对激励系统进行全面配置,包括:
|
||
- **激励游戏开关**:控制各类激励功能的启用/禁用
|
||
- **奖励积分设置**:为不同激励行为配置奖励积分
|
||
- **自动奖励周期**:设置按周/月自动发放奖励
|
||
- **激励规则定制**:自定义成就条件、排名规则等
|
||
|
||
##### 6.1.8.1 激励游戏总开关
|
||
|
||
```
|
||
┌──────────────────────────────────────────────┐
|
||
│ 激励系统总控制面板 │
|
||
├──────────────────────────────────────────────┤
|
||
│ 系统状态:● 全局启用 ○ 全局禁用 │
|
||
│ ──────────────────────────────────────── │
|
||
│ 功能模块开关: │
|
||
│ │
|
||
│ ┌─────────────────────────────────────┐ │
|
||
│ │ 📊 实时排名系统 │ │
|
||
│ │ 状态:● 启用 ○ 禁用 │ │
|
||
│ │ 更新频率:[实时] ▼ │ │
|
||
│ │ 排名范围:[全体] ▼ │ │
|
||
│ │ [高级设置] │ │
|
||
│ └─────────────────────────────────────┘ │
|
||
│ │
|
||
│ ┌─────────────────────────────────────┐ │
|
||
│ │ 🏅 成就勋章系统 │ │
|
||
│ │ 状态:● 启用 ○ 禁用 │ │
|
||
│ │ 弹窗提醒:☑ 启用 │ │
|
||
│ │ 勋章墙展示:☑ 启用 │ │
|
||
│ │ [成就管理] [奖励设置] │ │
|
||
│ └─────────────────────────────────────┘ │
|
||
│ │
|
||
│ ┌─────────────────────────────────────┐ │
|
||
│ │ 🎯 里程碑提醒系统 │ │
|
||
│ │ 状态:● 启用 ○ 禁用 │ │
|
||
│ │ 提醒时机:☑ 达成时 ☑ 接近时 │ │
|
||
│ │ 奖励发放:● 自动 ○ 手动 │ │
|
||
│ │ [里程碑管理] │ │
|
||
│ └─────────────────────────────────────┘ │
|
||
│ │
|
||
│ ┌─────────────────────────────────────┐ │
|
||
│ │ 🚀 积分冲刺提示 │ │
|
||
│ │ 状态:● 启用 ○ 禁用 │ │
|
||
│ │ 提醒周期:[每周一] ▼ │ │
|
||
│ │ 冲刺奖励:● 启用 ○ 禁用 │ │
|
||
│ │ [冲刺规则设置] │ │
|
||
│ └─────────────────────────────────────┘ │
|
||
│ │
|
||
│ ┌─────────────────────────────────────┐ │
|
||
│ │ 👥 同事对比(友好竞争) │ │
|
||
│ │ 状态:● 启用 ○ 禁用 │ │
|
||
│ │ 对比维度:☑ 任务数 ☑ 积分 ☑ 评分 │ │
|
||
│ │ 显示模式:[匿名对比] ▼ │ │
|
||
│ │ [对比规则] │ │
|
||
│ └─────────────────────────────────────┘ │
|
||
│ │
|
||
│ ┌─────────────────────────────────────┐ │
|
||
│ │ 📅 每日激励卡片 │ │
|
||
│ │ 状态:● 启用 ○ 禁用 │ │
|
||
│ │ 展示时间:[登录时] ▼ │ │
|
||
│ │ 签到奖励:● 启用 ○ 禁用 │ │
|
||
│ │ [卡片模板] [签到规则] │ │
|
||
│ └─────────────────────────────────────┘ │
|
||
│ │
|
||
│ ┌─────────────────────────────────────┐ │
|
||
│ │ ⚡ 即时激励弹窗 │ │
|
||
│ │ 状态:● 启用 ○ 禁用 │ │
|
||
│ │ 触发场景:☑ 任务完成 ☑ 好评收到 │ │
|
||
│ │ 弹窗频率:[适中] ▼ │ │
|
||
│ │ [弹窗模板] │ │
|
||
│ └─────────────────────────────────────┘ │
|
||
│ │
|
||
│ ┌─────────────────────────────────────┐ │
|
||
│ │ 🏆 竞赛活动系统 │ │
|
||
│ │ 状态:● 启用 ○ 禁用 │ │
|
||
│ │ 当前竞赛:[月度设计之星] [管理] │ │
|
||
│ │ 下期竞赛:[未设置] [创建] │ │
|
||
│ │ [竞赛历史] [规则模板] │ │
|
||
│ └─────────────────────────────────────┘ │
|
||
│ │
|
||
│ ┌─────────────────────────────────────┐ │
|
||
│ │ ⚔️ 团队PK系统 │ │
|
||
│ │ 状态:● 启用 ○ 禁用 │ │
|
||
│ │ PK周期:[每月] ▼ │ │
|
||
│ │ 奖励分配:[胜方额外20%积分] ▼ │ │
|
||
│ │ [PK管理] [历史战况] │ │
|
||
│ └─────────────────────────────────────┘ │
|
||
│ │
|
||
│ ┌─────────────────────────────────────┐ │
|
||
│ │ 🤖 智能提醒和建议 │ │
|
||
│ │ 状态:● 启用 ○ 禁用 │ │
|
||
│ │ 任务推荐:☑ 启用 │ │
|
||
│ │ 休息提醒:☑ 启用(连续4小时触发) │ │
|
||
│ │ [推荐算法调优] │ │
|
||
│ └─────────────────────────────────────┘ │
|
||
│ │
|
||
│ ┌─────────────────────────────────────┐ │
|
||
│ │ 📊 可视化激励看板 │ │
|
||
│ │ 状态:● 启用 ○ 禁用 │ │
|
||
│ │ 默认视图:[综合视图] ▼ │ │
|
||
│ │ 数据范围:[近6个月] ▼ │ │
|
||
│ │ [看板布局] │ │
|
||
│ └─────────────────────────────────────┘ │
|
||
│ │
|
||
│ [全部启用] [全部禁用] [保存设置] │
|
||
└──────────────────────────────────────────────┘
|
||
```
|
||
|
||
##### 6.1.8.2 成就勋章配置
|
||
|
||
**成就勋章列表**
|
||
```
|
||
┌──────────────────────────────────────────────────────────┐
|
||
│ 成就勋章管理 │
|
||
├──────────────────────────────────────────────────────────┤
|
||
│ 分类:[全部] [数量类] [质量类] [效率类] [特殊类] │
|
||
│ 状态:[全部] [启用] [禁用] [+ 新增成就] │
|
||
│ ────────────────────────────────────────────────────── │
|
||
│ │
|
||
│ 勋章 名称 类别 触发条件 奖励 状态 │
|
||
│ ──────────────────────────────────────────────────── │
|
||
│ 🏆 新手上路 数量 完成首个任务 +10 启用 [编辑]│
|
||
│ 💯 百任达人 数量 累计完成100任务 +100 启用 [编辑]│
|
||
│ ⭐ 五星之光 质量 连续10个五星好评 +50 启用 [编辑]│
|
||
│ 🚀 效率之王 效率 10次提前完成任务 +80 启用 [编辑]│
|
||
│ 🎯 精准狙击 效率 单日完成5个任务 +60 启用 [编辑]│
|
||
│ 🏅 月度冠军 特殊 月度排名第一 +200 启用 [编辑]│
|
||
│ 💪 连续奋进 特殊 连续签到30天 +30 启用 [编辑]│
|
||
│ 🎨 创意大师 质量 获得20个客户表扬 +150 启用 [编辑]│
|
||
│ ⏰ 守时模范 效率 30天零延误 +100 启用 [编辑]│
|
||
│ 🌟 全能选手 综合 各类任务都完成 +120 启用 [编辑]│
|
||
│ 📈 进步之星 特殊 月度排名提升10位 +50 禁用 [编辑]│
|
||
│ │
|
||
└──────────────────────────────────────────────────────────┘
|
||
```
|
||
|
||
**成就编辑表单**
|
||
```
|
||
┌───────────────────────────────────────┐
|
||
│ 编辑成就勋章 │
|
||
├───────────────────────────────────────┤
|
||
│ 成就名称: │
|
||
│ [五星之光] │
|
||
│ │
|
||
│ 成就图标: │
|
||
│ [⭐] [选择图标] [上传自定义] │
|
||
│ │
|
||
│ 成就类别: │
|
||
│ ○ 数量类 ● 质量类 ○ 效率类 │
|
||
│ ○ 特殊类 ○ 综合类 │
|
||
│ │
|
||
│ 触发条件类型: │
|
||
│ [连续好评次数] ▼ │
|
||
│ │
|
||
│ 条件参数设置: │
|
||
│ 连续获得:[10] 次 │
|
||
│ 评分要求:[5] 星 │
|
||
│ 时间限制:[不限] ▼ │
|
||
│ │
|
||
│ 成就描述: │
|
||
│ ┌─────────────────────────────────┐ │
|
||
│ │ 连续获得10个五星好评,你就是客户│ │
|
||
│ │ 心中的设计之光! │ │
|
||
│ └─────────────────────────────────┘ │
|
||
│ │
|
||
│ 奖励设置: │
|
||
│ 奖励积分:[50] 分 │
|
||
│ 额外奖励:[称号:五星设计师] │
|
||
│ 奖励有效期:[永久] ▼ │
|
||
│ │
|
||
│ 通知设置: │
|
||
│ ☑ 弹窗通知(即时) │
|
||
│ ☑ 站内消息 │
|
||
│ ☑ 钉钉推送 │
|
||
│ ☑ 勋章墙展示 │
|
||
│ │
|
||
│ 成就等级:(多级成就) │
|
||
│ ○ 单级成就 │
|
||
│ ● 多级成就: │
|
||
│ - 铜牌:5次五星 奖励20分 │
|
||
│ - 银牌:10次五星 奖励50分 │
|
||
│ - 金牌:20次五星 奖励100分 │
|
||
│ [+ 添加等级] │
|
||
│ │
|
||
│ 成就状态: │
|
||
│ ● 启用 ○ 禁用 │
|
||
│ │
|
||
│ 排序:[5] │
|
||
│ │
|
||
│ [取消] [保存] │
|
||
└───────────────────────────────────────┘
|
||
```
|
||
|
||
##### 6.1.8.3 自动奖励规则配置
|
||
|
||
**自动奖励周期设置**
|
||
```
|
||
┌──────────────────────────────────────────────┐
|
||
│ 自动奖励规则配置 │
|
||
├──────────────────────────────────────────────┤
|
||
│ 功能状态:● 启用自动奖励 ○ 禁用 │
|
||
│ ──────────────────────────────────────── │
|
||
│ 奖励周期配置: │
|
||
│ │
|
||
│ ┌─────────────────────────────────────┐ │
|
||
│ │ 📅 每日奖励(按天) │ │
|
||
│ │ 状态:● 启用 │ │
|
||
│ │ ───────────────────────────────── │ │
|
||
│ │ • 每日签到奖励:+5 分 │ │
|
||
│ │ • 连续签到3天:+10 分 │ │
|
||
│ │ • 连续签到7天:+30 分 │ │
|
||
│ │ • 连续签到30天:+150 分 │ │
|
||
│ │ • 完成每日目标:+20 分 │ │
|
||
│ │ │ │
|
||
│ │ 发放时间:[自动,完成时即时发放] │ │
|
||
│ │ [编辑规则] │ │
|
||
│ └─────────────────────────────────────┘ │
|
||
│ │
|
||
│ ┌─────────────────────────────────────┐ │
|
||
│ │ 📊 每周奖励(按周) │ │
|
||
│ │ 状态:● 启用 │ │
|
||
│ │ 发放时间:[每周一 09:00] │ │
|
||
│ │ ───────────────────────────────── │ │
|
||
│ │ 周度排名奖励: │ │
|
||
│ │ • 第1名:+300 分 │ │
|
||
│ │ • 第2名:+200 分 │ │
|
||
│ │ • 第3名:+150 分 │ │
|
||
│ │ • 第4-10名:+100 分 │ │
|
||
│ │ │ │
|
||
│ │ 周度任务量奖励: │ │
|
||
│ │ • 完成≥20个任务:+200 分 │ │
|
||
│ │ • 完成15-19个任务:+150 分 │ │
|
||
│ │ • 完成10-14个任务:+100 分 │ │
|
||
│ │ • 完成5-9个任务:+50 分 │ │
|
||
│ │ │ │
|
||
│ │ 周度好评奖励: │ │
|
||
│ │ • 五星好评率≥95%:+150 分 │ │
|
||
│ │ • 五星好评率≥90%:+100 分 │ │
|
||
│ │ • 五星好评率≥85%:+50 分 │ │
|
||
│ │ │ │
|
||
│ │ 周度零延误奖励: │ │
|
||
│ │ • 全周无延误:+100 分 │ │
|
||
│ │ • 延误≤1次:+50 分 │ │
|
||
│ │ │ │
|
||
│ │ [编辑规则] [测试发放] │ │
|
||
│ └─────────────────────────────────────┘ │
|
||
│ │
|
||
│ ┌─────────────────────────────────────┐ │
|
||
│ │ 📆 每月奖励(按月) │ │
|
||
│ │ 状态:● 启用 │ │
|
||
│ │ 发放时间:[每月1日 10:00] │ │
|
||
│ │ ───────────────────────────────── │ │
|
||
│ │ 月度排名奖励: │ │
|
||
│ │ • 冠军(第1名):+1000 分 + 🏆 │ │
|
||
│ │ • 亚军(第2名):+800 分 + 🥈 │ │
|
||
│ │ • 季军(第3名):+600 分 + 🥉 │ │
|
||
│ │ • 第4-10名:+400 分 │ │
|
||
│ │ • 第11-20名:+200 分 │ │
|
||
│ │ │ │
|
||
│ │ 月度任务量奖励: │ │
|
||
│ │ • 完成≥80个任务:+800 分 │ │
|
||
│ │ • 完成60-79个任务:+600 分 │ │
|
||
│ │ • 完成40-59个任务:+400 分 │ │
|
||
│ │ • 完成20-39个任务:+200 分 │ │
|
||
│ │ │ │
|
||
│ │ 月度质量奖励: │ │
|
||
│ │ • 五星好评率≥98%:+500 分 │ │
|
||
│ │ • 五星好评率≥95%:+300 分 │ │
|
||
│ │ • 五星好评率≥90%:+200 分 │ │
|
||
│ │ │ │
|
||
│ │ 月度效率奖励: │ │
|
||
│ │ • 平均提前完成≥2天:+400 分 │ │
|
||
│ │ • 平均提前完成≥1天:+300 分 │ │
|
||
│ │ • 准时完成率100%:+200 分 │ │
|
||
│ │ │ │
|
||
│ │ 月度进步奖: │ │
|
||
│ │ • 排名提升≥20位:+300 分 │ │
|
||
│ │ • 排名提升≥10位:+200 分 │ │
|
||
│ │ • 排名提升≥5位:+100 分 │ │
|
||
│ │ │ │
|
||
│ │ 月度全勤奖: │ │
|
||
│ │ • 全月签到:+200 分 │ │
|
||
│ │ • 签到≥25天:+100 分 │ │
|
||
│ │ │ │
|
||
│ │ [编辑规则] [测试发放] [历史记录] │ │
|
||
│ └─────────────────────────────────────┘ │
|
||
│ │
|
||
│ ┌─────────────────────────────────────┐ │
|
||
│ │ 🎊 季度/年度特殊奖励 │ │
|
||
│ │ 状态:● 启用 │ │
|
||
│ │ ───────────────────────────────── │ │
|
||
│ │ 季度MVP:+3000 分 + 专属称号 │ │
|
||
│ │ 年度最佳设计师:+10000 分 + 实物奖励 │ │
|
||
│ │ 年度进步之星:+5000 分 │ │
|
||
│ │ │ │
|
||
│ │ [编辑规则] │ │
|
||
│ └─────────────────────────────────────┘ │
|
||
│ │
|
||
│ ────────────────────────────────────── │
|
||
│ 奖励发放设置: │
|
||
│ ☑ 自动计算并发放 │
|
||
│ ☑ 发放前管理员审核 │
|
||
│ ☑ 发放后通知接收人 │
|
||
│ ☑ 发放记录留存归档 │
|
||
│ │
|
||
│ 积分来源: │
|
||
│ ● 系统积分池(无限) │
|
||
│ ○ 指定部门积分池:[运营部] ▼ │
|
||
│ │
|
||
│ [重置为默认] [测试奖励计算] [保存配置] │
|
||
└──────────────────────────────────────────────┘
|
||
```
|
||
|
||
**自动奖励发放日志**
|
||
```
|
||
┌──────────────────────────────────────────────────────┐
|
||
│ 自动奖励发放记录 │
|
||
├──────────────────────────────────────────────────────┤
|
||
│ 筛选:[本周] [本月] [本季度] [导出记录] │
|
||
│ ──────────────────────────────────────────────── │
|
||
│ │
|
||
│ 发放时间 周期 规则名称 发放人数 总积分│
|
||
│ ────────────────────────────────────────────────── │
|
||
│ 2025-11-04 09:00 每周 周度排名奖励 10人 1,500│
|
||
│ 2025-11-04 09:00 每周 周度任务量奖励 15人 1,800│
|
||
│ 2025-11-04 09:00 每周 周度好评奖励 12人 1,200│
|
||
│ 2025-11-04 09:00 每周 周度零延误奖励 8人 800 │
|
||
│ 2025-11-01 10:00 每月 月度排名奖励 20人 8,000│
|
||
│ 2025-11-01 10:00 每月 月度质量奖励 25人 7,500│
|
||
│ 2025-11-01 10:00 每月 月度效率奖励 18人 5,400│
|
||
│ │
|
||
│ [查看详情] [重新发放] [撤销发放] │
|
||
└──────────────────────────────────────────────────────┘
|
||
```
|
||
|
||
##### 6.1.8.4 竞赛活动配置
|
||
|
||
**竞赛活动管理**
|
||
```
|
||
┌──────────────────────────────────────────────┐
|
||
│ 竞赛活动管理 │
|
||
├──────────────────────────────────────────────┤
|
||
│ [+ 创建新竞赛] [竞赛模板] │
|
||
│ ──────────────────────────────────────── │
|
||
│ 当前竞赛: │
|
||
│ │
|
||
│ ┌─────────────────────────────────────┐ │
|
||
│ │ 🏆 11月设计之星月度挑战赛 │ │
|
||
│ │ 状态:● 进行中 │ │
|
||
│ │ 时间:2025-11-01 至 2025-11-30 │ │
|
||
│ │ 参与人数:28人 │ │
|
||
│ │ ───────────────────────────────── │ │
|
||
│ │ 竞赛规则: │ │
|
||
│ │ • 完成任务数 × 2分 │ │
|
||
│ │ • 五星好评 × 10分 │ │
|
||
│ │ • 提前完成 × 5分 │ │
|
||
│ │ • 被表扬 × 15分 │ │
|
||
│ │ │ │
|
||
│ │ 奖励设置: │ │
|
||
│ │ • 第1名:+1500分 + 月度冠军勋章 │ │
|
||
│ │ • 第2名:+1000分 + 月度亚军勋章 │ │
|
||
│ │ • 第3名:+800分 + 月度季军勋章 │ │
|
||
│ │ • 参与奖:完成≥10任务 +100分 │ │
|
||
│ │ │ │
|
||
│ │ 实时排名:[查看] [导出] │ │
|
||
│ │ │ │
|
||
│ │ [编辑] [暂停] [提前结束] [结算奖励] │ │
|
||
│ └─────────────────────────────────────┘ │
|
||
│ │
|
||
│ 即将开始: │
|
||
│ • 无 [创建下期] │
|
||
│ │
|
||
│ 历史竞赛: │
|
||
│ • 10月设计之星(已结束) [查看] │
|
||
│ • 9月效率挑战赛(已结束) [查看] │
|
||
│ • 8月质量月(已结束) [查看] │
|
||
│ │
|
||
└──────────────────────────────────────────────┘
|
||
```
|
||
|
||
**创建竞赛表单**
|
||
```
|
||
┌───────────────────────────────────────┐
|
||
│ 创建竞赛活动 │
|
||
├───────────────────────────────────────┤
|
||
│ 竞赛名称: │
|
||
│ [12月年终冲刺赛] │
|
||
│ │
|
||
│ 竞赛类型: │
|
||
│ ● 月度竞赛 ○ 周度竞赛 ○ 专项竞赛 │
|
||
│ │
|
||
│ 竞赛时间: │
|
||
│ 开始:[2025-12-01 00:00] │
|
||
│ 结束:[2025-12-31 23:59] │
|
||
│ │
|
||
│ 参与对象: │
|
||
│ ● 全体设计师 │
|
||
│ ○ 指定部门:[选择部门] ▼ │
|
||
│ ○ 指定人员:[选择人员] │
|
||
│ │
|
||
│ 竞赛维度与权重: │
|
||
│ 任务完成数:[2] 分/个 权重30% │
|
||
│ 五星好评数:[10] 分/个 权重25% │
|
||
│ 提前完成次数:[5] 分/次 权重20% │
|
||
│ 被客户表扬:[15] 分/次 权重15% │
|
||
│ 无延误天数:[2] 分/天 权重10% │
|
||
│ [+ 添加维度] │
|
||
│ │
|
||
│ 排名计算方式: │
|
||
│ ● 综合得分排名 │
|
||
│ ○ 单项排名 │
|
||
│ ○ 混合排名 │
|
||
│ │
|
||
│ 奖励设置: │
|
||
│ ┌─────────────────────────────────┐ │
|
||
│ │ 排名 奖励积分 额外奖励 │ │
|
||
│ │ ───────────────────────────────│ │
|
||
│ │ 第1名 2000 年终冠军勋章 │ │
|
||
│ │ 第2名 1500 年终亚军勋章 │ │
|
||
│ │ 第3名 1000 年终季军勋章 │ │
|
||
│ │ 4-10名 500 优秀设计师称号 │ │
|
||
│ │ [+ 添加奖励档位] │ │
|
||
│ └─────────────────────────────────┘ │
|
||
│ │
|
||
│ 参与奖: │
|
||
│ ☑ 完成≥15个任务:+150分 │
|
||
│ ☑ 参与满30天:+100分 │
|
||
│ │
|
||
│ 通知设置: │
|
||
│ ☑ 竞赛开始通知(钉钉+站内) │
|
||
│ ☑ 每日进度提醒(站内) │
|
||
│ ☑ 排名变化提醒(站内) │
|
||
│ ☑ 竞赛结束通知(钉钉+站内) │
|
||
│ ☑ 奖励发放通知(钉钉+站内) │
|
||
│ │
|
||
│ 竞赛说明: │
|
||
│ ┌─────────────────────────────────┐ │
|
||
│ │ 年终冲刺,冲击年度最佳设计师!│ │
|
||
│ │ 让我们一起用实力说话... │ │
|
||
│ └─────────────────────────────────┘ │
|
||
│ │
|
||
│ 状态: │
|
||
│ ○ 草稿 ● 立即发布 ○ 定时发布 │
|
||
│ │
|
||
│ [保存为模板] [取消] [创建] │
|
||
└───────────────────────────────────────┘
|
||
```
|
||
|
||
##### 6.1.8.5 团队PK配置
|
||
|
||
**团队PK管理**
|
||
```
|
||
┌──────────────────────────────────────────────┐
|
||
│ 团队PK管理 │
|
||
├──────────────────────────────────────────────┤
|
||
│ [+ 创建新PK] │
|
||
│ ──────────────────────────────────────── │
|
||
│ 当前PK: │
|
||
│ │
|
||
│ ┌─────────────────────────────────────┐ │
|
||
│ │ ⚔️ 11月部门对抗赛 │ │
|
||
│ │ 状态:● 激战中 │ │
|
||
│ │ 时间:2025-11-01 至 2025-11-30 │ │
|
||
│ │ ───────────────────────────────── │ │
|
||
│ │ 🔵 设计一部(12人)VS 🔴 设计二部(15人)│ │
|
||
│ │ │ │
|
||
│ │ 当前比分: │ │
|
||
│ │ 设计一部:15,200 分 🔥 领先 │ │
|
||
│ │ 设计二部:14,800 分 ⚡ 追赶 │ │
|
||
│ │ 差距:400 分 │ │
|
||
│ │ │ │
|
||
│ │ PK维度: │ │
|
||
│ │ • 任务完成总数(当前:68 vs 72) │ │
|
||
│ │ • 五星好评总数(当前:45 vs 48) │ │
|
||
│ │ • 准时完成率(当前:92% vs 89%) │ │
|
||
│ │ • 平均任务评分(当前:4.7 vs 4.6)│ │
|
||
│ │ │ │
|
||
│ │ 奖励设置: │ │
|
||
│ │ • 胜方团队:每人+200分 │ │
|
||
│ │ • 败方团队:每人+100分(参与奖) │ │
|
||
│ │ • MVP(胜方最高贡献):额外+300分 │ │
|
||
│ │ │ │
|
||
│ │ 实时战况:[查看详情] │ │
|
||
│ │ │ │
|
||
│ │ [编辑] [暂停] [提前结束] [结算] │ │
|
||
│ └─────────────────────────────────────┘ │
|
||
│ │
|
||
│ 历史PK: │
|
||
│ • 10月部门对抗赛(设计一部胜) [查看] │
|
||
│ • 9月新老对决(老将队胜) [查看] │
|
||
│ │
|
||
└──────────────────────────────────────────────┘
|
||
```
|
||
|
||
##### 6.1.8.6 排名规则配置
|
||
|
||
**排名系统配置**
|
||
```
|
||
┌──────────────────────────────────────────────┐
|
||
│ 排名系统规则配置 │
|
||
├──────────────────────────────────────────────┤
|
||
│ 排名维度与权重设置: │
|
||
│ │
|
||
│ 综合排名算法: │
|
||
│ ┌─────────────────────────────────────┐ │
|
||
│ │ 维度 权重 计分方式 │ │
|
||
│ │ ───────────────────────────────── │ │
|
||
│ │ 任务完成数 30% 1任务=2分 │ │
|
||
│ │ 五星好评数 25% 1好评=10分 │ │
|
||
│ │ 累计获得积分 20% 1积分=0.1分 │ │
|
||
│ │ 准时完成率 15% 比例×100分 │ │
|
||
│ │ 平均任务评分 10% 评分×20分 │ │
|
||
│ │ [+ 添加维度] [重置权重] │ │
|
||
│ └─────────────────────────────────────┘ │
|
||
│ │
|
||
│ 排名更新频率: │
|
||
│ ● 实时更新(每次任务变化) │
|
||
│ ○ 定时更新:[每小时] ▼ │
|
||
│ ○ 手动更新 │
|
||
│ │
|
||
│ 排名范围设置: │
|
||
│ 显示范围:[全体] [前50名] [前100名] ▼ │
|
||
│ 分组排名:☑ 启用部门内排名 │
|
||
│ ☑ 启用等级内排名 │
|
||
│ │
|
||
│ 排名变化通知: │
|
||
│ ☑ 排名上升≥5位时通知 │
|
||
│ ☑ 进入前10名时通知 │
|
||
│ ☑ 被他人超越时通知 │
|
||
│ ☑ 掉出前10名时通知 │
|
||
│ │
|
||
│ 排名保护机制: │
|
||
│ ☑ 新人保护期:入职[30]天内不显示排名 │
|
||
│ ☑ 休假保护:休假期间排名冻结 │
|
||
│ ☑ 异常保护:任务量<3时不参与排名 │
|
||
│ │
|
||
│ [预览排名结果] [保存配置] │
|
||
└──────────────────────────────────────────────┘
|
||
```
|
||
|
||
##### 6.1.8.7 激励积分池管理
|
||
|
||
**激励专用积分池**
|
||
```
|
||
┌──────────────────────────────────────────────┐
|
||
│ 激励系统积分池 │
|
||
├──────────────────────────────────────────────┤
|
||
│ 积分来源: │
|
||
│ ● 系统独立积分池(推荐,不占用团队积分) │
|
||
│ ○ 从指定部门扣除 │
|
||
│ │
|
||
│ ──────────────────────────────────────── │
|
||
│ 系统积分池(当前月): │
|
||
│ │
|
||
│ ┌─────────────────────────────────────┐ │
|
||
│ │ 本月预算:50,000 分 │ │
|
||
│ │ 已发放: 28,500 分(57%) │ │
|
||
│ │ 剩余: 21,500 分(43%) │ │
|
||
│ │ │ │
|
||
│ │ ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓░░░░░░░░░░░░░░░ │ │
|
||
│ │ │ │
|
||
│ │ 预计本月总需求:45,000 分 │ │
|
||
│ │ 状态:✅ 充足 │ │
|
||
│ └─────────────────────────────────────┘ │
|
||
│ │
|
||
│ 月度预算设置: │
|
||
│ 每月预算:[50000] 分 │
|
||
│ 预警阈值:剩余 [20]% 时预警 │
|
||
│ 超支处理: │
|
||
│ ● 自动扩容 │
|
||
│ ○ 暂停发放 │
|
||
│ ○ 降低奖励 │
|
||
│ │
|
||
│ 分项预算分配(参考): │
|
||
│ • 每日签到奖励:约 4,200 分/月 │
|
||
│ • 每周奖励:约 8,000 分/月 │
|
||
│ • 每月奖励:约 15,000 分/月 │
|
||
│ • 成就奖励:约 8,000 分/月 │
|
||
│ • 竞赛奖励:约 10,000 分/月 │
|
||
│ • 团队PK奖励:约 5,000 分/月 │
|
||
│ • 其他奖励:约 3,000 分/月 │
|
||
│ │
|
||
│ 历史统计: │
|
||
│ • 10月发放:48,500 分 │
|
||
│ • 9月发放:46,200 分 │
|
||
│ • 8月发放:51,800 分 │
|
||
│ 平均:48,833 分/月 │
|
||
│ │
|
||
│ [查看详细记录] [导出报表] [调整预算] │
|
||
└──────────────────────────────────────────────┘
|
||
```
|
||
|
||
---
|
||
|
||
## 七、通知提醒模块
|
||
|
||
### 7.1 通知场景
|
||
|
||
| 场景 | 接收人 | 通知方式 |
|
||
|------|--------|----------|
|
||
| 任务发布(指定) | 指定设计师 | 站内+钉钉 |
|
||
| 任务发布(招募) | 所有设计师 | 站内 |
|
||
| 任务被抢单 | 发布人 | 站内+钉钉 |
|
||
| 任务分配(主管) | 接收设计师 | 站内+钉钉 |
|
||
| **任务被转移(原接收人)** | **原接收设计师** | **站内+钉钉** |
|
||
| **任务被转移(新接收人)** | **新接收设计师** | **站内+钉钉** |
|
||
| **任务被指定接收** | **指定设计师、发布人** | **站内+钉钉** |
|
||
| **任务被撤回** | **发布人、关注者** | **站内** |
|
||
| **任务优先级调整** | **接收设计师** | **站内+钉钉** |
|
||
| **任务被推广** | **全体设计师** | **站内+钉钉** |
|
||
| **任务转移延误扣分** | **原接收设计师** | **站内+钉钉** |
|
||
| **延误申诉提交** | **管理员、主管** | **站内** |
|
||
| **延误申诉审核结果** | **申诉设计师** | **站内+钉钉** |
|
||
| **部门消耗限制预警** | **部门负责人、部门成员** | **站内+钉钉** |
|
||
| **部门消耗超限** | **部门负责人、发起人** | **站内+钉钉+邮件** |
|
||
| **部门消耗周报/月报** | **部门负责人** | **邮件** |
|
||
| **部门负责人变更** | **新负责人、旧负责人** | **站内+钉钉** |
|
||
| **获得成就勋章** | **设计师本人** | **站内+弹窗** |
|
||
| **排名上升** | **设计师本人** | **站内** |
|
||
| **排名下降/被超越** | **设计师本人** | **站内** |
|
||
| **里程碑达成** | **设计师本人** | **站内+弹窗** |
|
||
| **冲刺提醒** | **设计师本人** | **站内** |
|
||
| **目标达成** | **设计师本人** | **站内+弹窗** |
|
||
| **竞赛开始/结束** | **参赛设计师** | **站内+钉钉** |
|
||
| **团队PK进度** | **团队成员** | **站内** |
|
||
| **连续记录提醒** | **设计师本人** | **站内** |
|
||
| **自动奖励发放(每日/每周/每月)** | **获奖设计师** | **站内+弹窗** |
|
||
| **竞赛奖励发放** | **获奖设计师** | **站内+钉钉+弹窗** |
|
||
| **团队PK奖励发放** | **团队成员** | **站内+钉钉** |
|
||
| **激励积分池预警** | **超级管理员** | **站内+邮件** |
|
||
| **激励规则变更通知** | **全体设计师** | **站内** |
|
||
| 任务即将到期 | 接收设计师、发布人 | 站内+钉钉 |
|
||
| 任务延期 | 接收设计师、发布人、主管 | 站内+钉钉+邮件 |
|
||
| 任务提交交付 | 发布人 | 站内+钉钉 |
|
||
| 任务审核通过 | 接收设计师 | 站内+钉钉 |
|
||
| 任务被打回 | 接收设计师 | 站内+钉钉 |
|
||
| 积分不足 | 发布人、主管 | 站内+钉钉 |
|
||
| 积分充值 | 团队成员 | 站内 |
|
||
| 排行榜更新 | 相关设计师 | 站内(周/月) |
|
||
|
||
### 7.2 站内消息
|
||
|
||
**消息中心**
|
||
```
|
||
┌──────────────────────────────────────┐
|
||
│ 🔔 消息中心 (5) [全部已读] │
|
||
├──────────────────────────────────────┤
|
||
│ ● [系统通知] │
|
||
│ 您有一个新任务 #T20251107001 │
|
||
│ 2分钟前 │
|
||
│ │
|
||
│ ○ [任务提醒] │
|
||
│ 任务"主图设计"将在2小时后到期 │
|
||
│ 1小时前 │
|
||
│ │
|
||
│ ○ [审核通知] │
|
||
│ 您的任务"详情页优化"审核通过 │
|
||
│ 3小时前 │
|
||
└──────────────────────────────────────┘
|
||
```
|
||
|
||
**消息类型**
|
||
- 系统通知(红点)
|
||
- 任务提醒(黄点)
|
||
- 审核通知(蓝点)
|
||
- 积分变动(绿点)
|
||
- 调配通知(紫点)
|
||
|
||
### 7.3 钉钉通知集成
|
||
|
||
**⚠️ 重要:钉钉通知链接预留**
|
||
系统所有站内通知都需预留与钉钉通知的集成接口,确保重要通知能够同步推送到钉钉。
|
||
|
||
**工作通知消息卡片**
|
||
```
|
||
┌─────────────────────────────┐
|
||
│ 【新任务通知】 │
|
||
│ │
|
||
│ 任务:主图设计 │
|
||
│ 发布人:张三 │
|
||
│ 预估积分:250分 │
|
||
│ 期望完成:2025-11-09 │
|
||
│ │
|
||
│ [查看详情] [接受任务] │
|
||
└─────────────────────────────┘
|
||
```
|
||
|
||
**钉钉集成技术实现**
|
||
|
||
**1. 通知数据结构设计**
|
||
所有站内通知消息必须包含钉钉推送所需字段:
|
||
```javascript
|
||
// 通知消息统一数据结构
|
||
{
|
||
// 基础信息
|
||
id: "notify_20251107_001",
|
||
type: "task_assign", // 通知类型
|
||
title: "新任务通知",
|
||
content: "您有一个新任务需要处理",
|
||
|
||
// 接收人信息
|
||
receiverUserId: "U123456",
|
||
receiverDingUserId: "ding_abc123", // 钉钉用户ID(关键)
|
||
|
||
// 跳转链接(H5页面或小程序)
|
||
link: "https://xxx.com/task/detail?id=T001",
|
||
mobileLink: "dingtalk://dingtalkclient/page/link?url=xxx",
|
||
|
||
// 时间信息
|
||
createTime: "2025-11-07 10:30:00",
|
||
sendTime: "2025-11-07 10:30:05", // 实际发送时间
|
||
|
||
// 钉钉推送相关
|
||
dingNotification: {
|
||
enabled: true, // 是否推送钉钉
|
||
messageType: "oa", // 消息类型:text/oa/markdown/actionCard
|
||
priority: "normal", // 优先级:normal/urgent
|
||
pushed: false, // 是否已推送
|
||
pushTime: null, // 推送时间
|
||
pushResult: null // 推送结果
|
||
},
|
||
|
||
// 业务数据(可选)
|
||
businessData: {
|
||
taskId: "T001",
|
||
taskType: "主图设计",
|
||
publisher: "张三",
|
||
score: 250
|
||
}
|
||
}
|
||
```
|
||
|
||
**2. 钉钉消息推送接口封装**
|
||
```javascript
|
||
// 钉钉通知推送服务
|
||
class DingTalkNotificationService {
|
||
|
||
/**
|
||
* 发送工作通知消息
|
||
* @param {Object} notification 通知对象
|
||
* @returns {Promise}
|
||
*/
|
||
async sendWorkNotification(notification) {
|
||
// 1. 检查是否需要推送钉钉
|
||
if (!notification.dingNotification.enabled) {
|
||
return { success: true, skipped: true };
|
||
}
|
||
|
||
// 2. 获取钉钉access_token
|
||
const accessToken = await this.getAccessToken();
|
||
|
||
// 3. 构建钉钉消息体
|
||
const message = this.buildDingMessage(notification);
|
||
|
||
// 4. 调用钉钉API
|
||
const result = await this.callDingTalkAPI({
|
||
url: 'https://oapi.dingtalk.com/topapi/message/corpconversation/asyncsend_v2',
|
||
accessToken,
|
||
body: {
|
||
agent_id: process.env.DING_AGENT_ID,
|
||
userid_list: notification.receiverDingUserId,
|
||
msg: message
|
||
}
|
||
});
|
||
|
||
// 5. 更新推送状态
|
||
await this.updatePushStatus(notification.id, result);
|
||
|
||
return result;
|
||
}
|
||
|
||
/**
|
||
* 构建不同类型的钉钉消息
|
||
*/
|
||
buildDingMessage(notification) {
|
||
const { type, title, content, link, businessData } = notification;
|
||
|
||
switch (notification.dingNotification.messageType) {
|
||
case 'oa':
|
||
// OA消息(推荐,样式美观)
|
||
return {
|
||
msgtype: 'oa',
|
||
oa: {
|
||
head: {
|
||
text: title,
|
||
bgcolor: 'FFBBBBBB'
|
||
},
|
||
body: {
|
||
title: title,
|
||
form: [
|
||
{ key: '任务类型:', value: businessData.taskType },
|
||
{ key: '发布人:', value: businessData.publisher },
|
||
{ key: '积分:', value: businessData.score + '分' }
|
||
]
|
||
},
|
||
message_url: link,
|
||
pc_message_url: link
|
||
}
|
||
};
|
||
|
||
case 'actionCard':
|
||
// 卡片消息(支持多按钮)
|
||
return {
|
||
msgtype: 'action_card',
|
||
action_card: {
|
||
title: title,
|
||
markdown: content,
|
||
single_title: '查看详情',
|
||
single_url: link
|
||
}
|
||
};
|
||
|
||
case 'markdown':
|
||
// Markdown消息
|
||
return {
|
||
msgtype: 'markdown',
|
||
markdown: {
|
||
title: title,
|
||
text: this.formatMarkdown(notification)
|
||
}
|
||
};
|
||
|
||
default:
|
||
// 文本消息(默认)
|
||
return {
|
||
msgtype: 'text',
|
||
text: {
|
||
content: `${title}\n${content}`
|
||
}
|
||
};
|
||
}
|
||
}
|
||
|
||
/**
|
||
* 格式化Markdown消息
|
||
*/
|
||
formatMarkdown(notification) {
|
||
const { title, businessData } = notification;
|
||
return `### ${title}\n` +
|
||
`- **任务类型**:${businessData.taskType}\n` +
|
||
`- **发布人**:${businessData.publisher}\n` +
|
||
`- **积分**:${businessData.score}分\n` +
|
||
`\n[点击查看详情](${notification.link})`;
|
||
}
|
||
}
|
||
```
|
||
|
||
**3. 通知发送流程**
|
||
```
|
||
站内消息生成 → 保存到数据库 → 检查是否需要钉钉推送
|
||
→ 异步推送到钉钉 → 更新推送状态 → 记录推送日志
|
||
```
|
||
|
||
**4. 通知队列机制(推荐)**
|
||
```javascript
|
||
// 使用消息队列异步处理钉钉推送
|
||
// 避免同步推送影响主业务性能
|
||
|
||
// 发送通知时
|
||
async function sendNotification(notification) {
|
||
// 1. 保存站内消息
|
||
await saveNotification(notification);
|
||
|
||
// 2. 如需钉钉推送,加入队列
|
||
if (notification.dingNotification.enabled) {
|
||
await notificationQueue.add('ding-push', {
|
||
notificationId: notification.id,
|
||
priority: notification.dingNotification.priority
|
||
});
|
||
}
|
||
}
|
||
|
||
// 队列处理器
|
||
notificationQueue.process('ding-push', async (job) => {
|
||
const { notificationId } = job.data;
|
||
const notification = await getNotificationById(notificationId);
|
||
|
||
// 调用钉钉推送服务
|
||
await dingTalkService.sendWorkNotification(notification);
|
||
});
|
||
```
|
||
|
||
**5. 数据库表设计(通知表扩展字段)**
|
||
```sql
|
||
-- 通知消息表
|
||
CREATE TABLE `sys_notification` (
|
||
`id` bigint PRIMARY KEY,
|
||
`type` varchar(50) COMMENT '通知类型',
|
||
`title` varchar(200) COMMENT '标题',
|
||
`content` text COMMENT '内容',
|
||
`receiver_user_id` bigint COMMENT '接收人用户ID',
|
||
`receiver_ding_user_id` varchar(100) COMMENT '接收人钉钉UserID',
|
||
`link_url` varchar(500) COMMENT '跳转链接',
|
||
`mobile_link_url` varchar(500) COMMENT '移动端跳转链接',
|
||
|
||
-- 钉钉推送相关字段
|
||
`ding_enabled` tinyint DEFAULT 0 COMMENT '是否推送钉钉: 0-否, 1-是',
|
||
`ding_message_type` varchar(20) COMMENT '钉钉消息类型: text/oa/markdown/actionCard',
|
||
`ding_priority` varchar(20) DEFAULT 'normal' COMMENT '优先级: normal/urgent',
|
||
`ding_pushed` tinyint DEFAULT 0 COMMENT '是否已推送: 0-未推送, 1-已推送',
|
||
`ding_push_time` datetime COMMENT '推送时间',
|
||
`ding_task_id` varchar(100) COMMENT '钉钉任务ID',
|
||
`ding_push_result` text COMMENT '推送结果JSON',
|
||
|
||
`business_type` varchar(50) COMMENT '业务类型: task/score/achievement等',
|
||
`business_id` varchar(100) COMMENT '业务ID',
|
||
`business_data` json COMMENT '业务数据JSON',
|
||
|
||
`is_read` tinyint DEFAULT 0 COMMENT '是否已读',
|
||
`read_time` datetime COMMENT '阅读时间',
|
||
|
||
`create_time` datetime DEFAULT CURRENT_TIMESTAMP,
|
||
`update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||
|
||
INDEX `idx_receiver` (`receiver_user_id`, `is_read`),
|
||
INDEX `idx_ding_push` (`ding_enabled`, `ding_pushed`),
|
||
INDEX `idx_create_time` (`create_time`)
|
||
) COMMENT '系统通知表';
|
||
```
|
||
|
||
**通知策略**
|
||
- 工作时间(9:00-18:00)实时推送
|
||
- 非工作时间汇总推送(可配置)
|
||
- 紧急任务不限时间
|
||
- 用户可自定义免打扰时段
|
||
- 支持消息撤回和重推
|
||
- 推送失败自动重试(最多3次)
|
||
|
||
**钉钉消息类型选择建议**
|
||
- **OA消息**:适用于任务通知、审核通知(推荐)
|
||
- **ActionCard**:适用于需要操作按钮的场景
|
||
- **Markdown**:适用于内容丰富的通知
|
||
- **Text**:适用于简单文本通知
|
||
|
||
### 7.4 邮件通知
|
||
|
||
**周报/月报**
|
||
- 收件人:设计师本人、主管
|
||
- 内容:任务统计、积分统计、排行榜、评价汇总
|
||
- 发送时间:每周一早9:00 / 每月1号早9:00
|
||
|
||
**紧急通知**
|
||
- 任务严重延期
|
||
- 系统异常告警
|
||
|
||
---
|
||
|
||
## 八、数据库设计要点
|
||
|
||
### 8.1 核心表结构
|
||
|
||
#### 用户表(sys_user)
|
||
- id, username, password, name, avatar, phone, email
|
||
- ding_user_id, ding_union_id, dept_id
|
||
- role, status, create_time, update_time
|
||
|
||
#### 部门表(sys_dept)
|
||
- id, dept_name, parent_id, ding_dept_id
|
||
- dept_type(部门类型:DEMAND需求部门/RECEIVER接单部门)
|
||
- level, sort, leader_user_id, score_balance
|
||
- limit_enabled, limit_period(每天/每周/每月), period_limit
|
||
- alert_threshold, over_limit_action
|
||
- allowed_demand_types(接单部门可接的需求类型,JSON)
|
||
- description, status
|
||
- create_time, update_time
|
||
|
||
#### 部门消耗限制记录表(dept_limit_record)
|
||
- id, dept_id, period_type, period_start, period_end
|
||
- period_limit, period_used, period_remaining
|
||
- task_count, is_over_limit
|
||
- create_time, update_time
|
||
|
||
#### 任务表(task)
|
||
- id, task_no, title, description
|
||
- demand_type_id, demand_quantity, demand_score
|
||
- task_type, brand_id, category_id, spu_info, platform_ids
|
||
- publish_type, publish_user_id, publish_dept_id
|
||
- assign_user_id, assign_time
|
||
- expect_finish_time, actual_start_time, actual_finish_time
|
||
- status, progress, delivery_info
|
||
- review_score, review_comment
|
||
- create_time, update_time
|
||
|
||
#### 需求类型表(demand_type)
|
||
- id, type_name, unit_score, estimate_time
|
||
- description, requirement, sort, status
|
||
- create_time, update_time
|
||
|
||
#### 品牌表(brand)
|
||
- id, brand_name, logo_url, website
|
||
- description, style_guide, sort, status
|
||
- create_time, update_time
|
||
|
||
#### 类目表(category)
|
||
- id, category_name, parent_id, level
|
||
- is_leaf, sort, status
|
||
- create_time, update_time
|
||
|
||
#### 平台表(platform)
|
||
- id, platform_name, icon_url, website
|
||
- design_spec, sort, status
|
||
- create_time, update_time
|
||
|
||
#### 任务附件表(task_attachment)
|
||
- id, task_id, file_name, file_url, file_size
|
||
- file_type, upload_user_id, upload_time
|
||
|
||
#### 任务日志表(task_log)
|
||
- id, task_id, operation_type, operation_desc
|
||
- operator_id, create_time
|
||
|
||
#### 任务调配记录表(task_transfer_log)
|
||
- id, task_id, transfer_type(转移/指定/撤回)
|
||
- from_user_id, to_user_id, operator_id
|
||
- reason, reason_detail, progress_keep
|
||
- score_allocation, old_deadline, new_deadline
|
||
- delay_hours, delay_penalty_score(延误时长、延误扣分)
|
||
- notify_settings, create_time
|
||
|
||
#### 延误扣分记录表(delay_penalty_record)
|
||
- id, task_id, user_id, task_transfer_log_id
|
||
- original_deadline, actual_time(原定时间、实际时间)
|
||
- delay_hours, delay_minutes(延误小时、延误分钟)
|
||
- delay_level(延误等级:轻微/一般/严重/重大)
|
||
- penalty_score(扣分值)
|
||
- penalty_reason(原因:任务转移/正常延误)
|
||
- is_special_case(是否特殊情况:病假/事假等)
|
||
- admin_note(管理员备注)
|
||
- is_appealed, appeal_status(是否申诉、申诉状态)
|
||
- appeal_reason, appeal_result(申诉原因、申诉结果)
|
||
- create_time, update_time
|
||
|
||
#### 延误扣分规则表(delay_penalty_rule)
|
||
- id, rule_name, level_name
|
||
- min_hours, max_hours(时长范围)
|
||
- penalty_type(扣分类型:固定/按时长/阶梯)
|
||
- penalty_rate(扣分比率,如每小时N分)
|
||
- base_penalty, daily_penalty(基础扣分、每天扣分,用于重大延误)
|
||
- max_penalty(最高扣分限制,可选)
|
||
- description, sort, status
|
||
- create_time, update_time
|
||
|
||
#### 积分记录表(score_record)
|
||
- id, dept_id, user_id, score_change
|
||
- change_type, task_id, balance_after
|
||
- delay_penalty_record_id(关联延误扣分记录)
|
||
- remark, create_time
|
||
|
||
#### 评价表(task_review)
|
||
- id, task_id, reviewer_id, reviewee_id
|
||
- quality_score, timeliness_score, communication_score
|
||
- avg_score, comment, review_time
|
||
|
||
#### 成就勋章表(achievement)
|
||
- id, achievement_name, achievement_icon, achievement_desc
|
||
- achievement_type(数量类/质量类/效率类/特殊类)
|
||
- condition_type, condition_value(获得条件)
|
||
- reward_score(奖励积分)
|
||
- sort, status
|
||
- create_time, update_time
|
||
|
||
#### 用户成就记录表(user_achievement)
|
||
- id, user_id, achievement_id
|
||
- achieve_time, is_shared
|
||
- create_time
|
||
|
||
#### 用户目标表(user_goal)
|
||
- id, user_id, goal_type
|
||
- goal_name, goal_target, goal_period
|
||
- current_progress, is_completed
|
||
- start_time, complete_time
|
||
- create_time, update_time
|
||
|
||
#### 用户签到记录表(user_check_in)
|
||
- id, user_id, check_in_date
|
||
- continuous_days, month_count
|
||
- create_time
|
||
|
||
#### 激励系统配置表(incentive_config)
|
||
- id, config_key(配置键:ranking_enabled, achievement_enabled等)
|
||
- config_value(配置值)
|
||
- config_type(配置类型:boolean, string, number, json)
|
||
- module_name(模块名称:排名系统、成就系统等)
|
||
- description(配置说明)
|
||
- status(启用/禁用)
|
||
- create_time, update_time
|
||
|
||
#### 自动奖励规则表(auto_reward_rule)
|
||
- id, rule_name, rule_type(每日/每周/每月/季度/年度)
|
||
- period_type(daily, weekly, monthly, quarterly, yearly)
|
||
- trigger_condition(触发条件:JSON格式)
|
||
- reward_score(奖励积分)
|
||
- extra_reward(额外奖励:JSON格式,如勋章、称号等)
|
||
- target_users(目标用户:all全体/部门/指定用户)
|
||
- schedule_time(定时发放时间)
|
||
- is_auto_issue(是否自动发放)
|
||
- need_approval(是否需要审核)
|
||
- description, status
|
||
- create_time, update_time
|
||
|
||
#### 自动奖励发放记录表(auto_reward_log)
|
||
- id, rule_id, period_start, period_end
|
||
- issue_time(发放时间)
|
||
- user_count(获奖人数)
|
||
- total_score(总积分)
|
||
- status(pending待发放/issued已发放/cancelled已取消)
|
||
- operator_id(操作人)
|
||
- remark
|
||
- create_time, update_time
|
||
|
||
#### 自动奖励明细表(auto_reward_detail)
|
||
- id, log_id, rule_id, user_id
|
||
- reward_score(奖励积分)
|
||
- extra_reward(额外奖励:JSON)
|
||
- trigger_data(触发数据:如完成任务数、好评数等)
|
||
- score_record_id(关联积分记录ID)
|
||
- status(issued已发放/failed失败)
|
||
- create_time
|
||
|
||
#### 竞赛活动表(competition)
|
||
- id, competition_name, competition_type(月度/周度/专项)
|
||
- start_time, end_time
|
||
- participant_scope(参与范围:all/dept/users)
|
||
- participant_json(参与者JSON:如部门ID列表、用户ID列表)
|
||
- rule_dimensions(竞赛维度:JSON,包含权重)
|
||
- ranking_method(排名方式:综合得分/单项排名/混合排名)
|
||
- reward_config(奖励配置:JSON)
|
||
- participation_reward(参与奖配置:JSON)
|
||
- notify_settings(通知设置:JSON)
|
||
- description
|
||
- status(draft草稿/ongoing进行中/ended已结束/cancelled已取消)
|
||
- creator_id, create_time, update_time
|
||
|
||
#### 竞赛排名表(competition_ranking)
|
||
- id, competition_id, user_id
|
||
- total_score(总得分)
|
||
- dimension_scores(各维度得分:JSON)
|
||
- final_rank(最终排名)
|
||
- reward_score(奖励积分)
|
||
- extra_reward(额外奖励:JSON)
|
||
- is_rewarded(是否已发放奖励)
|
||
- update_time
|
||
|
||
#### 团队PK表(team_pk)
|
||
- id, pk_name, pk_type(部门对抗/分组对抗)
|
||
- start_time, end_time
|
||
- team_a_id, team_a_name, team_a_score
|
||
- team_b_id, team_b_name, team_b_score
|
||
- pk_dimensions(PK维度:JSON)
|
||
- reward_config(奖励配置:JSON)
|
||
- winner_team(获胜队伍:team_a/team_b/draw平局)
|
||
- status(ongoing进行中/ended已结束/cancelled已取消)
|
||
- creator_id, create_time, update_time
|
||
|
||
#### 团队PK成员表(team_pk_member)
|
||
- id, pk_id, team_side(team_a/team_b)
|
||
- user_id, contribution_score(个人贡献分)
|
||
- task_count, good_review_count
|
||
- is_mvp(是否MVP)
|
||
- reward_score(获得积分)
|
||
- create_time
|
||
|
||
#### 排名规则配置表(ranking_rule)
|
||
- id, rule_name, dimension_name(维度名称)
|
||
- dimension_weight(权重)
|
||
- score_formula(计分公式)
|
||
- dimension_order(排序)
|
||
- status
|
||
- create_time, update_time
|
||
|
||
#### 激励积分池表(incentive_pool)
|
||
- id, period_month(周期月份:YYYY-MM)
|
||
- monthly_budget(月度预算)
|
||
- issued_score(已发放积分)
|
||
- remaining_score(剩余积分)
|
||
- alert_threshold(预警阈值)
|
||
- alert_status(预警状态:normal正常/warning预警/critical严重)
|
||
- daily_issued, weekly_issued, monthly_issued(各周期发放统计)
|
||
- achievement_issued, competition_issued, team_pk_issued(各模块发放统计)
|
||
- create_time, update_time
|
||
|
||
### 8.2 索引设计
|
||
- task表:task_no、publish_user_id、assign_user_id、status、publish_dept_id
|
||
- 复合索引:(status, publish_user_id)、(status, assign_user_id)
|
||
- 全文索引:task.description、task.spu_info(如需高级搜索)
|
||
|
||
### 8.3 数据字典
|
||
|
||
**任务状态(task_status)**
|
||
- 0: 待接收
|
||
- 1: 进行中
|
||
- 2: 待审核
|
||
- 3: 打回修改
|
||
- 4: 已完成
|
||
- 5: 已取消
|
||
|
||
**任务类型(task_type)**
|
||
- 1: 新品
|
||
- 2: 优化
|
||
- 3: 改图
|
||
- 4: 其它
|
||
|
||
**发布类型(publish_type)**
|
||
- 1: 指定任务
|
||
- 2: 招募任务
|
||
- 3: 默认模式(主管分配)
|
||
|
||
**积分变动类型(score_change_type)**
|
||
- 1: 充值
|
||
- 2: 任务消耗
|
||
- 3: 任务退回
|
||
- 4: 任务奖励
|
||
- 5: 调整
|
||
- 6: 延误扣分
|
||
- 7: 延误申诉返还
|
||
|
||
**部门类型(dept_type)**
|
||
- DEMAND: 需求部门(只能发起任务)
|
||
- RECEIVER: 接单部门(只能接收任务)
|
||
|
||
**消耗限制周期(limit_period)**
|
||
- DAILY: 每天
|
||
- WEEKLY: 每周
|
||
- MONTHLY: 每月
|
||
|
||
**激励配置类型(incentive_config_type)**
|
||
- boolean: 布尔值(开关)
|
||
- string: 字符串
|
||
- number: 数字
|
||
- json: JSON对象
|
||
|
||
**奖励规则周期类型(reward_period_type)**
|
||
- daily: 每日
|
||
- weekly: 每周
|
||
- monthly: 每月
|
||
- quarterly: 每季度
|
||
- yearly: 每年
|
||
|
||
**自动奖励发放状态(reward_log_status)**
|
||
- pending: 待发放
|
||
- issued: 已发放
|
||
- cancelled: 已取消
|
||
- failed: 发放失败
|
||
|
||
**竞赛状态(competition_status)**
|
||
- draft: 草稿
|
||
- ongoing: 进行中
|
||
- ended: 已结束
|
||
- cancelled: 已取消
|
||
|
||
**团队PK状态(team_pk_status)**
|
||
- ongoing: 进行中
|
||
- ended: 已结束
|
||
- cancelled: 已取消
|
||
|
||
**积分池预警状态(pool_alert_status)**
|
||
- normal: 正常
|
||
- warning: 预警
|
||
- critical: 严重(紧急)
|
||
|
||
---
|
||
|
||
## 九、接口设计要点
|
||
|
||
### 9.1 RESTful API 规范
|
||
|
||
**基础路径**
|
||
```
|
||
/api/v1
|
||
```
|
||
|
||
**认证方式**
|
||
```
|
||
Authorization: Bearer {JWT_TOKEN}
|
||
```
|
||
|
||
### 9.2 核心接口列表
|
||
|
||
#### 认证模块
|
||
```
|
||
POST /auth/login # 用户名密码登录
|
||
POST /auth/ding-login # 钉钉登录
|
||
POST /auth/refresh-token # 刷新Token
|
||
POST /auth/logout # 登出
|
||
GET /auth/user-info # 获取当前用户信息
|
||
```
|
||
|
||
#### 任务模块
|
||
```
|
||
POST /tasks # 创建任务
|
||
GET /tasks # 任务列表(分页、筛选)
|
||
GET /tasks/:id # 任务详情
|
||
PUT /tasks/:id # 更新任务
|
||
DELETE /tasks/:id # 删除任务
|
||
POST /tasks/:id/grab # 抢单
|
||
POST /tasks/:id/assign # 分配任务
|
||
PUT /tasks/:id/progress # 更新进度
|
||
POST /tasks/:id/submit # 提交交付
|
||
POST /tasks/:id/review # 审核任务
|
||
POST /tasks/:id/reject # 打回任务
|
||
GET /tasks/my-published # 我发布的任务
|
||
GET /tasks/my-received # 我接收的任务
|
||
GET /tasks/hall # 任务大厅列表
|
||
GET /tasks/calendar # 日历视图数据
|
||
|
||
# 任务调配(管理员)
|
||
POST /tasks/:id/transfer # 转移任务
|
||
POST /tasks/batch-transfer # 批量转移任务
|
||
POST /tasks/:id/designate # 指定接收人(从任务池)
|
||
POST /tasks/batch-designate # 批量指定接收人
|
||
POST /tasks/:id/withdraw # 撤回任务
|
||
POST /tasks/batch-withdraw # 批量撤回任务
|
||
PUT /tasks/:id/priority # 调整任务优先级
|
||
POST /tasks/:id/promote # 推广任务
|
||
GET /tasks/admin-view # 管理员任务视图
|
||
GET /tasks/pool # 任务池管理(管理员)
|
||
GET /tasks/transfer-logs # 调配日志
|
||
GET /tasks/transfer-stats # 调配统计
|
||
POST /tasks/:id/recommend # 获取推荐设计师列表
|
||
```
|
||
|
||
#### 设计师模块
|
||
```
|
||
GET /designers # 设计师列表
|
||
GET /designers/:id # 设计师详情
|
||
GET /designers/:id/tasks # 设计师任务列表
|
||
GET /designers/:id/stats # 设计师统计数据
|
||
GET /designers/:id/delays # 设计师延误记录
|
||
GET /designers/leaderboard # 排行榜
|
||
```
|
||
|
||
#### 激励系统模块
|
||
```
|
||
# 成就勋章
|
||
GET /achievements # 获取成就列表
|
||
GET /achievements/:id # 获取成就详情
|
||
GET /user/achievements # 我的成就勋章
|
||
GET /user/achievements/progress # 成就进度
|
||
POST /user/achievements/:id/share # 分享成就
|
||
GET /achievements/leaderboard # 成就排行榜
|
||
|
||
# 排名和对比
|
||
GET /user/ranking # 我的实时排名
|
||
GET /user/ranking/trend # 排名趋势
|
||
GET /user/compare/:userId # 与同事对比
|
||
GET /user/milestones # 我的里程碑
|
||
GET /user/sprint-status # 冲刺状态
|
||
|
||
# 目标管理
|
||
GET /user/goals # 我的目标列表
|
||
POST /user/goals # 设定新目标
|
||
PUT /user/goals/:id # 更新目标
|
||
DELETE /user/goals/:id # 删除目标
|
||
GET /user/goals/:id/progress # 目标进度
|
||
|
||
# 签到和激励
|
||
POST /user/check-in # 每日签到
|
||
GET /user/check-in/records # 签到记录
|
||
GET /user/daily-motivation # 每日激励卡片
|
||
GET /user/motivation-board # 激励看板
|
||
|
||
# 竞赛活动
|
||
GET /competitions # 竞赛活动列表
|
||
GET /competitions/:id # 竞赛详情
|
||
GET /competitions/:id/ranking # 竞赛排名
|
||
POST /competitions/:id/join # 参加竞赛
|
||
|
||
# 团队PK
|
||
GET /team-pk # 团队PK列表
|
||
GET /team-pk/:id # PK详情
|
||
GET /team-pk/:id/realtime # 实时战况
|
||
POST /team-pk/:id/cheer # 为团队加油
|
||
|
||
# 智能推荐
|
||
GET /recommendations/tasks # 推荐任务
|
||
GET /recommendations/rest # 休息提醒
|
||
```
|
||
|
||
#### 激励配置管理模块(管理员)
|
||
```
|
||
# 激励总开关配置
|
||
GET /admin/incentive/config # 获取激励系统总配置
|
||
PUT /admin/incentive/config # 更新激励系统总配置
|
||
PUT /admin/incentive/config/modules/:module # 更新指定模块开关(ranking/achievement等)
|
||
POST /admin/incentive/config/batch-enable # 批量启用模块
|
||
POST /admin/incentive/config/batch-disable # 批量禁用模块
|
||
|
||
# 成就勋章配置
|
||
GET /admin/achievements # 获取成就配置列表
|
||
POST /admin/achievements # 创建新成就
|
||
PUT /admin/achievements/:id # 更新成就配置
|
||
DELETE /admin/achievements/:id # 删除成就
|
||
PUT /admin/achievements/:id/status # 启用/禁用成就
|
||
POST /admin/achievements/batch-update # 批量更新成就
|
||
GET /admin/achievements/:id/statistics # 成就获得统计
|
||
|
||
# 自动奖励规则配置
|
||
GET /admin/reward-rules # 获取自动奖励规则列表
|
||
POST /admin/reward-rules # 创建新规则
|
||
PUT /admin/reward-rules/:id # 更新规则
|
||
DELETE /admin/reward-rules/:id # 删除规则
|
||
PUT /admin/reward-rules/:id/status # 启用/禁用规则
|
||
POST /admin/reward-rules/:id/test # 测试规则(计算预估奖励)
|
||
POST /admin/reward-rules/:id/execute # 手动触发执行规则
|
||
|
||
# 自动奖励发放记录
|
||
GET /admin/reward-logs # 获取发放记录列表
|
||
GET /admin/reward-logs/:id # 获取发放记录详情
|
||
GET /admin/reward-logs/:id/details # 获取发放明细
|
||
POST /admin/reward-logs/:id/reissue # 重新发放
|
||
POST /admin/reward-logs/:id/cancel # 取消发放
|
||
GET /admin/reward-logs/statistics # 发放统计数据
|
||
POST /admin/reward-logs/export # 导出发放记录
|
||
|
||
# 竞赛活动管理
|
||
GET /admin/competitions # 获取竞赛列表
|
||
POST /admin/competitions # 创建新竞赛
|
||
PUT /admin/competitions/:id # 更新竞赛
|
||
DELETE /admin/competitions/:id # 删除竞赛
|
||
PUT /admin/competitions/:id/status # 更改竞赛状态(开始/暂停/结束)
|
||
POST /admin/competitions/:id/settle # 结算竞赛奖励
|
||
GET /admin/competitions/:id/ranking # 查看竞赛排名
|
||
POST /admin/competitions/:id/ranking/refresh # 刷新排名
|
||
GET /admin/competitions/templates # 获取竞赛模板
|
||
POST /admin/competitions/from-template # 从模板创建竞赛
|
||
|
||
# 团队PK管理
|
||
GET /admin/team-pk # 获取PK列表
|
||
POST /admin/team-pk # 创建新PK
|
||
PUT /admin/team-pk/:id # 更新PK
|
||
DELETE /admin/team-pk/:id # 删除PK
|
||
PUT /admin/team-pk/:id/status # 更改PK状态
|
||
POST /admin/team-pk/:id/settle # 结算PK奖励
|
||
GET /admin/team-pk/:id/realtime # 实时战况(详细数据)
|
||
POST /admin/team-pk/:id/adjust # 调整PK参数(如延长时间)
|
||
|
||
# 排名规则配置
|
||
GET /admin/ranking-rules # 获取排名规则配置
|
||
PUT /admin/ranking-rules # 更新排名规则
|
||
POST /admin/ranking-rules/preview # 预览规则效果
|
||
POST /admin/ranking-rules/reset # 重置为默认规则
|
||
POST /admin/ranking/refresh # 刷新全局排名
|
||
|
||
# 激励积分池管理
|
||
GET /admin/incentive-pool # 获取积分池状态
|
||
GET /admin/incentive-pool/:month # 获取指定月份积分池
|
||
PUT /admin/incentive-pool/:month/budget # 调整月度预算
|
||
GET /admin/incentive-pool/statistics # 积分池统计数据
|
||
GET /admin/incentive-pool/forecast # 积分池预测(基于历史数据)
|
||
POST /admin/incentive-pool/export # 导出积分池报表
|
||
|
||
# 激励数据分析
|
||
GET /admin/incentive/analytics/overview # 激励系统总览
|
||
GET /admin/incentive/analytics/effectiveness # 激励效果分析
|
||
GET /admin/incentive/analytics/participation # 参与度分析
|
||
GET /admin/incentive/analytics/trends # 趋势分析
|
||
POST /admin/incentive/analytics/export # 导出分析报告
|
||
```
|
||
|
||
#### 延误扣分模块
|
||
```
|
||
GET /delay-penalties # 延误扣分记录列表
|
||
GET /delay-penalties/:id # 延误扣分记录详情
|
||
POST /delay-penalties/:id/appeal # 提交延误申诉
|
||
PUT /delay-penalties/:id/appeal # 审核延误申诉
|
||
GET /delay-penalties/my-records # 我的延误记录
|
||
GET /delay-penalties/stats # 延误统计数据
|
||
POST /delay-penalties/calculate # 计算延误扣分(用于预览)
|
||
```
|
||
|
||
#### 部门管理模块
|
||
```
|
||
GET /departments # 获取部门列表(树形结构)
|
||
GET /departments/:id # 获取部门详情
|
||
POST /departments # 创建部门
|
||
PUT /departments/:id # 更新部门
|
||
DELETE /departments/:id # 删除部门
|
||
POST /departments/sync-dingtalk # 同步钉钉组织架构
|
||
PUT /departments/:id/leader # 设置部门负责人
|
||
PUT /departments/:id/limit # 设置积分消耗限制
|
||
GET /departments/:id/limit-usage # 获取部门消耗情况
|
||
POST /departments/:id/limit-adjust # 临时调整消耗限制
|
||
GET /departments/:id/members # 获取部门成员
|
||
GET /departments/:id/tasks # 获取部门任务列表
|
||
GET /departments/:id/stats # 获取部门统计数据
|
||
```
|
||
|
||
#### 需求统计模块
|
||
```
|
||
GET /demand-stats/overview # 需求统计总览
|
||
GET /demand-stats/departments # 部门维度统计
|
||
GET /demand-stats/departments/:id # 指定部门详情统计
|
||
GET /demand-stats/users # 用户维度统计
|
||
GET /demand-stats/users/:id # 指定用户详情统计
|
||
GET /demand-stats/trends # 需求发起趋势
|
||
GET /demand-stats/types # 需求类型分析
|
||
GET /demand-stats/export # 导出统计报表
|
||
POST /demand-stats/subscribe # 订阅定时报表
|
||
```
|
||
|
||
#### 配置模块
|
||
```
|
||
# 需求类型
|
||
GET /config/demand-types
|
||
POST /config/demand-types
|
||
PUT /config/demand-types/:id
|
||
DELETE /config/demand-types/:id
|
||
|
||
# 品牌
|
||
GET /config/brands
|
||
POST /config/brands
|
||
PUT /config/brands/:id
|
||
DELETE /config/brands/:id
|
||
|
||
# 类目
|
||
GET /config/categories/tree
|
||
POST /config/categories
|
||
PUT /config/categories/:id
|
||
DELETE /config/categories/:id
|
||
|
||
# 平台
|
||
GET /config/platforms
|
||
POST /config/platforms
|
||
PUT /config/platforms/:id
|
||
DELETE /config/platforms/:id
|
||
|
||
# 延误扣分规则
|
||
GET /config/delay-penalty-rules # 获取延误扣分规则列表
|
||
POST /config/delay-penalty-rules # 创建延误扣分规则
|
||
PUT /config/delay-penalty-rules/:id # 更新延误扣分规则
|
||
DELETE /config/delay-penalty-rules/:id # 删除延误扣分规则
|
||
POST /config/delay-penalty-rules/test # 测试延误扣分计算
|
||
```
|
||
|
||
#### 积分模块
|
||
```
|
||
GET /scores/dept/:id # 部门积分信息
|
||
POST /scores/recharge # 积分充值
|
||
GET /scores/records # 积分记录
|
||
```
|
||
|
||
#### 数据分析模块
|
||
```
|
||
GET /stats/overview # 总览数据
|
||
GET /stats/trends # 趋势数据
|
||
GET /stats/distribution # 分布数据
|
||
GET /stats/leaderboard # 排行榜数据
|
||
```
|
||
|
||
#### 通知模块
|
||
```
|
||
GET /notifications # 消息列表
|
||
PUT /notifications/:id/read # 标记已读
|
||
PUT /notifications/read-all # 全部已读
|
||
```
|
||
|
||
#### 文件上传
|
||
```
|
||
POST /upload/file # 文件上传
|
||
POST /upload/image # 图片上传
|
||
```
|
||
|
||
### 9.3 响应格式
|
||
|
||
**成功响应**
|
||
```json
|
||
{
|
||
"code": 200,
|
||
"message": "success",
|
||
"data": {
|
||
// 业务数据
|
||
},
|
||
"timestamp": 1699344000000
|
||
}
|
||
```
|
||
|
||
**失败响应**
|
||
```json
|
||
{
|
||
"code": 400,
|
||
"message": "参数错误",
|
||
"data": null,
|
||
"timestamp": 1699344000000
|
||
}
|
||
```
|
||
|
||
**分页响应**
|
||
```json
|
||
{
|
||
"code": 200,
|
||
"message": "success",
|
||
"data": {
|
||
"list": [],
|
||
"total": 100,
|
||
"page": 1,
|
||
"page_size": 20
|
||
}
|
||
}
|
||
```
|
||
|
||
---
|
||
|
||
## 十、UI/UX 设计规范
|
||
|
||
### ⚠️ 重要声明:严格遵循 OpenAI 官方 UI 设计规范
|
||
|
||
本项目页面外观开发**必须严格按照 OpenAI 官方 UI 设计规范**进行设计和实现,以确保界面的现代性、简洁性和用户体验的一致性。
|
||
|
||
### 10.1 OpenAI 风格设计规范
|
||
|
||
#### 10.1.1 核心设计原则
|
||
|
||
**1. 极简主义(Minimalism)**
|
||
- 去除一切不必要的视觉元素
|
||
- 专注于内容和功能本身
|
||
- 留白充足,让界面呼吸感更强
|
||
- 避免过度装饰和复杂渐变
|
||
|
||
**2. 现代化与科技感(Modern & Tech-forward)**
|
||
- 使用柔和的深色模式和明亮的浅色模式
|
||
- 流畅的动画过渡
|
||
- 微妙的交互反馈
|
||
- 前沿的视觉设计语言
|
||
|
||
**3. 清晰的信息层次(Clear Hierarchy)**
|
||
- 使用字重、大小、颜色来建立视觉层级
|
||
- 重要信息突出显示
|
||
- 次要信息适当弱化
|
||
- 引导用户视线流动
|
||
|
||
**4. 一致性(Consistency)**
|
||
- 统一的间距系统
|
||
- 统一的圆角规范
|
||
- 统一的阴影样式
|
||
- 统一的动效规则
|
||
|
||
#### 10.1.2 配色方案(参考 OpenAI)
|
||
|
||
**深色模式(主推荐,符合OpenAI风格)**
|
||
```
|
||
背景色系:
|
||
- 主背景:#0D0D0D / #171717(极深黑)
|
||
- 次背景:#202020 / #2A2A2A(深灰)
|
||
- 卡片背景:#2A2A2A / #353535(中深灰)
|
||
- 悬浮背景:#353535 / #404040(灰)
|
||
|
||
文字色系:
|
||
- 主文字:#ECECEC / #FFFFFF(接近白色)
|
||
- 次文字:#AFAFAF / #B4B4B4(浅灰)
|
||
- 辅助文字:#737373 / #808080(中灰)
|
||
- 禁用文字:#4A4A4A(深灰)
|
||
|
||
品牌色(参考OpenAI):
|
||
- 主品牌色:#10A37F(翠绿色,OpenAI经典色)
|
||
- 悬浮状态:#1A7F64(深翠绿)
|
||
- 按下状态:#0D8B6D(更深翠绿)
|
||
|
||
功能色:
|
||
- 成功:#10A37F(翠绿,与品牌色统一)
|
||
- 警告:#FFA500(橙色)
|
||
- 错误:#EF4444(红色)
|
||
- 信息:#3B82F6(蓝色)
|
||
|
||
边框色:
|
||
- 主边框:#3A3A3A / #404040(深灰边框)
|
||
- 次边框:#2A2A2A(更深边框)
|
||
- 分割线:#262626(极细分割线)
|
||
```
|
||
|
||
**浅色模式(可选)**
|
||
```
|
||
背景色系:
|
||
- 主背景:#FFFFFF(纯白)
|
||
- 次背景:#F7F7F8(极浅灰)
|
||
- 卡片背景:#FFFFFF(纯白)
|
||
- 悬浮背景:#F0F0F0(浅灰)
|
||
|
||
文字色系:
|
||
- 主文字:#0D0D0D(极深黑)
|
||
- 次文字:#666666(深灰)
|
||
- 辅助文字:#8E8E8E(中灰)
|
||
|
||
品牌色与功能色:同深色模式
|
||
```
|
||
|
||
#### 10.1.3 字体规范(参考 OpenAI)
|
||
|
||
**字体家族**
|
||
```css
|
||
/* 主字体(参考OpenAI使用的字体) */
|
||
font-family:
|
||
"Söhne",
|
||
-apple-system,
|
||
BlinkMacSystemFont,
|
||
"Segoe UI",
|
||
"Helvetica Neue",
|
||
Arial,
|
||
"Noto Sans",
|
||
sans-serif,
|
||
"Apple Color Emoji",
|
||
"Segoe UI Emoji";
|
||
|
||
/* 中文字体 */
|
||
font-family:
|
||
-apple-system,
|
||
BlinkMacSystemFont,
|
||
"PingFang SC",
|
||
"Microsoft YaHei",
|
||
"Helvetica Neue",
|
||
Helvetica,
|
||
Arial,
|
||
sans-serif;
|
||
|
||
/* 等宽字体(用于代码、路径等) */
|
||
font-family:
|
||
"SF Mono",
|
||
"Monaco",
|
||
"Cascadia Code",
|
||
"Roboto Mono",
|
||
"Consolas",
|
||
monospace;
|
||
```
|
||
|
||
**字体大小系统**
|
||
```
|
||
超大标题:32px / 2rem(页面主标题)
|
||
大标题: 24px / 1.5rem(区块标题)
|
||
中标题: 20px / 1.25rem(卡片标题)
|
||
小标题: 16px / 1rem(列表项标题)
|
||
正文: 14px / 0.875rem(主要内容)
|
||
辅助文字:12px / 0.75rem(次要信息)
|
||
小字: 11px / 0.6875rem(标签、时间戳)
|
||
```
|
||
|
||
**字重规范**
|
||
```
|
||
Bold(700): 重要标题、强调文字
|
||
Semibold(600):次级标题
|
||
Medium(500): 按钮文字、标签
|
||
Regular(400):正文
|
||
Light(300): 辅助说明
|
||
```
|
||
|
||
#### 10.1.4 间距系统(8px 基准)
|
||
|
||
```
|
||
XXS:2px - 细微间距
|
||
XS: 4px - 极小间距
|
||
SM: 8px - 小间距(基准单位)
|
||
MD: 16px - 中间距
|
||
LG: 24px - 大间距
|
||
XL: 32px - 特大间距
|
||
XXL:48px - 超大间距
|
||
XXXL:64px - 巨大间距
|
||
|
||
内边距:
|
||
- 紧凑卡片:16px
|
||
- 标准卡片:24px
|
||
- 宽松卡片:32px
|
||
|
||
外边距:
|
||
- 组件间隔:16px
|
||
- 区块间隔:24px
|
||
- 页面边距:32px
|
||
```
|
||
|
||
#### 10.1.5 圆角规范(参考 OpenAI)
|
||
|
||
```
|
||
微圆角: 4px - 按钮、输入框、标签
|
||
小圆角: 8px - 小卡片、下拉菜单
|
||
中圆角: 12px - 标准卡片
|
||
大圆角: 16px - 大型容器
|
||
特大圆角:24px - 模态框、抽屉
|
||
|
||
完全圆角:50% - 头像、图标按钮
|
||
```
|
||
|
||
#### 10.1.6 阴影系统
|
||
|
||
```css
|
||
/* 轻微阴影(悬浮卡片) */
|
||
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12);
|
||
|
||
/* 标准阴影(卡片) */
|
||
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
|
||
|
||
/* 浮起阴影(悬浮状态) */
|
||
box-shadow: 0 4px 16px rgba(0, 0, 0, 0.2);
|
||
|
||
/* 强阴影(模态框) */
|
||
box-shadow: 0 8px 32px rgba(0, 0, 0, 0.3);
|
||
|
||
/* 深色模式阴影(更柔和) */
|
||
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.4);
|
||
```
|
||
|
||
#### 10.1.7 动画与过渡(参考 OpenAI 流畅体验)
|
||
|
||
```css
|
||
/* 标准过渡时间 */
|
||
--transition-fast: 150ms;
|
||
--transition-base: 250ms;
|
||
--transition-slow: 350ms;
|
||
|
||
/* 缓动函数(OpenAI风格) */
|
||
--ease-out: cubic-bezier(0.16, 1, 0.3, 1);
|
||
--ease-in-out: cubic-bezier(0.45, 0, 0.55, 1);
|
||
|
||
/* 常用过渡 */
|
||
transition: all 250ms cubic-bezier(0.16, 1, 0.3, 1);
|
||
```
|
||
|
||
**动效原则**
|
||
- 所有交互都应有微妙的动效反馈
|
||
- 避免突兀的变化
|
||
- 状态切换使用淡入淡出
|
||
- 悬浮效果:轻微上浮 + 阴影增强
|
||
- 按钮点击:微缩放 + 颜色变化
|
||
- 加载状态:优雅的骨架屏或脉冲动画
|
||
|
||
#### 10.1.8 组件设计规范
|
||
|
||
**按钮(参考 OpenAI)**
|
||
```css
|
||
/* 主按钮(品牌色) */
|
||
.btn-primary {
|
||
background: #10A37F;
|
||
color: #FFFFFF;
|
||
border: none;
|
||
border-radius: 8px;
|
||
padding: 10px 20px;
|
||
font-size: 14px;
|
||
font-weight: 500;
|
||
transition: all 250ms ease;
|
||
}
|
||
.btn-primary:hover {
|
||
background: #1A7F64;
|
||
transform: translateY(-1px);
|
||
box-shadow: 0 4px 12px rgba(16, 163, 127, 0.3);
|
||
}
|
||
|
||
/* 次按钮(轮廓) */
|
||
.btn-secondary {
|
||
background: transparent;
|
||
color: #ECECEC;
|
||
border: 1px solid #3A3A3A;
|
||
border-radius: 8px;
|
||
padding: 10px 20px;
|
||
}
|
||
.btn-secondary:hover {
|
||
border-color: #10A37F;
|
||
color: #10A37F;
|
||
}
|
||
|
||
/* 文字按钮 */
|
||
.btn-text {
|
||
background: transparent;
|
||
color: #AFAFAF;
|
||
border: none;
|
||
padding: 8px 12px;
|
||
}
|
||
.btn-text:hover {
|
||
color: #10A37F;
|
||
}
|
||
```
|
||
|
||
**输入框(参考 OpenAI)**
|
||
```css
|
||
.input {
|
||
background: #2A2A2A;
|
||
border: 1px solid #3A3A3A;
|
||
border-radius: 8px;
|
||
color: #ECECEC;
|
||
padding: 10px 16px;
|
||
font-size: 14px;
|
||
transition: all 250ms ease;
|
||
}
|
||
.input:focus {
|
||
border-color: #10A37F;
|
||
outline: none;
|
||
box-shadow: 0 0 0 3px rgba(16, 163, 127, 0.1);
|
||
}
|
||
.input::placeholder {
|
||
color: #737373;
|
||
}
|
||
```
|
||
|
||
**卡片(参考 OpenAI)**
|
||
```css
|
||
.card {
|
||
background: #2A2A2A;
|
||
border: 1px solid #3A3A3A;
|
||
border-radius: 12px;
|
||
padding: 24px;
|
||
transition: all 250ms ease;
|
||
}
|
||
.card:hover {
|
||
border-color: #404040;
|
||
box-shadow: 0 4px 16px rgba(0, 0, 0, 0.2);
|
||
transform: translateY(-2px);
|
||
}
|
||
```
|
||
|
||
### 10.2 首页 UI 布局设计(重点)
|
||
|
||
#### 10.2.1 首页整体布局
|
||
|
||
**布局结构(深色模式,OpenAI风格)**
|
||
```
|
||
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
|
||
┃ ┌─────────────────────────────────────────────────┐ ┃
|
||
┃ │ 🎨 Logo 工作台 任务大厅 我的任务 数据分析 │👤│ ┃ ← 顶部导航栏
|
||
┃ └─────────────────────────────────────────────────┘ ┃ (高度: 64px)
|
||
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
|
||
┃ ┃
|
||
┃ ┌────────────────────────────────────────────┐ ┃
|
||
┃ │ 👋 欢迎回来,张三 │ ┃ ← 欢迎区域
|
||
┃ │ 今天是2025年11月7日 星期四 │ ┃ (Hero Section)
|
||
┃ └────────────────────────────────────────────┘ ┃
|
||
┃ ┃
|
||
┃ ┌───────┐ ┌───────┐ ┌───────┐ ┌───────┐ ┃
|
||
┃ │ 📊 │ │ ✅ │ │ ⏰ │ │ 💎 │ ┃ ← 数据卡片区
|
||
┃ │ 8个 │ │ 12个 │ │ 2个 │ │ 1,250│ ┃ (Data Cards)
|
||
┃ │进行中 │ │已完成 │ │待审核 │ │ 积分 │ ┃
|
||
┃ └───────┘ └───────┘ └───────┘ └───────┘ ┃
|
||
┃ ┃
|
||
┃ ┌─────────────────────┐ ┌──────────────────┐ ┃
|
||
┃ │ 📋 今日待办 │ │ 📈 本周数据 │ ┃
|
||
┃ │ ───────────────── │ │ ────────────── │ ┃ ← 主要内容区
|
||
┃ │ • 主图设计 [紧急] │ │ [图表] │ ┃ (Main Content)
|
||
┃ │ • 详情页优化 │ │ 任务完成趋势 │ ┃
|
||
┃ │ • 视频剪辑 │ │ │ ┃
|
||
┃ │ │ │ │ ┃
|
||
┃ │ [查看全部任务] │ │ [查看详情] │ ┃
|
||
┃ └─────────────────────┘ └──────────────────┘ ┃
|
||
┃ ┃
|
||
┃ ┌───────────────────────────────────────────┐ ┃
|
||
┃ │ 🏆 设计师排行榜 │ ┃ ← 排行榜区域
|
||
┃ │ 🥇 李四 28个任务 4.9⭐ │ ┃ (Leaderboard)
|
||
┃ │ 🥈 王五 22个任务 4.8⭐ │ ┃
|
||
┃ │ 🥉 赵六 18个任务 4.7⭐ │ ┃
|
||
┃ └───────────────────────────────────────────┘ ┃
|
||
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
|
||
```
|
||
|
||
#### 10.2.2 顶部导航栏详细设计
|
||
|
||
**导航栏规范**
|
||
```
|
||
┌─────────────────────────────────────────────────────────┐
|
||
│ │
|
||
│ 🎨 DesignHub 工作台 任务大厅 我的任务 数据分析 │
|
||
│ [Logo + 名称] [导航菜单] │
|
||
│ │
|
||
│ 🔔(3) ⚙️ 👤 张三 │
|
||
│ [通知] [设置] [用户] │
|
||
└─────────────────────────────────────────────────────────┘
|
||
```
|
||
|
||
**详细样式说明**
|
||
```css
|
||
/* 导航栏容器 */
|
||
.navbar {
|
||
height: 64px;
|
||
background: #171717; /* 深色背景 */
|
||
border-bottom: 1px solid #262626; /* 极细分割线 */
|
||
padding: 0 32px;
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: space-between;
|
||
position: sticky;
|
||
top: 0;
|
||
z-index: 1000;
|
||
backdrop-filter: blur(12px); /* 毛玻璃效果 */
|
||
}
|
||
|
||
/* Logo 区域 */
|
||
.navbar-logo {
|
||
display: flex;
|
||
align-items: center;
|
||
gap: 12px;
|
||
font-size: 20px;
|
||
font-weight: 600;
|
||
color: #ECECEC;
|
||
}
|
||
.navbar-logo-icon {
|
||
width: 32px;
|
||
height: 32px;
|
||
border-radius: 8px;
|
||
background: linear-gradient(135deg, #10A37F 0%, #1A7F64 100%);
|
||
}
|
||
|
||
/* 导航菜单 */
|
||
.navbar-menu {
|
||
display: flex;
|
||
gap: 8px;
|
||
}
|
||
.nav-item {
|
||
padding: 8px 16px;
|
||
border-radius: 8px;
|
||
font-size: 14px;
|
||
font-weight: 400;
|
||
color: #AFAFAF;
|
||
cursor: pointer;
|
||
transition: all 250ms cubic-bezier(0.16, 1, 0.3, 1);
|
||
}
|
||
.nav-item:hover {
|
||
color: #ECECEC;
|
||
background: #2A2A2A;
|
||
}
|
||
.nav-item.active {
|
||
color: #10A37F;
|
||
background: rgba(16, 163, 127, 0.1);
|
||
}
|
||
|
||
/* 右侧操作区 */
|
||
.navbar-actions {
|
||
display: flex;
|
||
align-items: center;
|
||
gap: 16px;
|
||
}
|
||
.navbar-icon {
|
||
width: 40px;
|
||
height: 40px;
|
||
border-radius: 50%;
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: center;
|
||
color: #AFAFAF;
|
||
cursor: pointer;
|
||
position: relative;
|
||
transition: all 250ms ease;
|
||
}
|
||
.navbar-icon:hover {
|
||
background: #2A2A2A;
|
||
color: #ECECEC;
|
||
}
|
||
.navbar-icon .badge {
|
||
position: absolute;
|
||
top: 6px;
|
||
right: 6px;
|
||
width: 18px;
|
||
height: 18px;
|
||
background: #EF4444;
|
||
border-radius: 50%;
|
||
font-size: 11px;
|
||
color: white;
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: center;
|
||
}
|
||
```
|
||
|
||
#### 10.2.3 欢迎区域(Hero Section)
|
||
|
||
```
|
||
┌───────────────────────────────────────────────────────┐
|
||
│ │
|
||
│ 👋 欢迎回来,张三 │
|
||
│ 今天是2025年11月7日 星期四 ☀️ │
|
||
│ │
|
||
│ 您的部门积分余额:5,750 分 [充值] │
|
||
│ 💡 本月还剩5天,快抓紧时间发起任务吧! │
|
||
│ │
|
||
│ [+ 发起新任务] [查看任务进度] │
|
||
│ │
|
||
└───────────────────────────────────────────────────────┘
|
||
```
|
||
|
||
**样式实现**
|
||
```css
|
||
.hero-section {
|
||
margin: 32px auto;
|
||
max-width: 1200px;
|
||
padding: 48px;
|
||
background: linear-gradient(135deg, #2A2A2A 0%, #1F1F1F 100%);
|
||
border: 1px solid #3A3A3A;
|
||
border-radius: 16px;
|
||
position: relative;
|
||
overflow: hidden;
|
||
}
|
||
|
||
/* 装饰性背景 */
|
||
.hero-section::before {
|
||
content: '';
|
||
position: absolute;
|
||
top: -50%;
|
||
right: -10%;
|
||
width: 500px;
|
||
height: 500px;
|
||
background: radial-gradient(circle, rgba(16, 163, 127, 0.05) 0%, transparent 70%);
|
||
border-radius: 50%;
|
||
}
|
||
|
||
.hero-title {
|
||
font-size: 32px;
|
||
font-weight: 700;
|
||
color: #ECECEC;
|
||
margin-bottom: 8px;
|
||
}
|
||
|
||
.hero-subtitle {
|
||
font-size: 16px;
|
||
color: #AFAFAF;
|
||
margin-bottom: 24px;
|
||
}
|
||
|
||
.hero-info {
|
||
display: flex;
|
||
align-items: center;
|
||
gap: 16px;
|
||
padding: 16px;
|
||
background: rgba(16, 163, 127, 0.1);
|
||
border: 1px solid rgba(16, 163, 127, 0.2);
|
||
border-radius: 12px;
|
||
margin-bottom: 24px;
|
||
}
|
||
|
||
.hero-actions {
|
||
display: flex;
|
||
gap: 16px;
|
||
}
|
||
```
|
||
|
||
#### 10.2.4 数据卡片区域(Data Cards)
|
||
|
||
```
|
||
┌─────────────┐ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐
|
||
│ 📊 │ │ ✅ │ │ ⏰ │ │ 💎 │
|
||
│ │ │ │ │ │ │ │
|
||
│ 8 个 │ │ 12 个 │ │ 2 个 │ │ 1,250 │
|
||
│ 进行中 │ │ 已完成 │ │ 待审核 │ │ 积分 │
|
||
│ │ │ │ │ │ │ │
|
||
│ ↑ +2 今日 │ │ ↑ +3 今日 │ │ ⚠️ 紧急 │ │ ↑ +150 │
|
||
└─────────────┘ └─────────────┘ └─────────────┘ └─────────────┘
|
||
```
|
||
|
||
**样式实现**
|
||
```css
|
||
.data-cards {
|
||
display: grid;
|
||
grid-template-columns: repeat(4, 1fr);
|
||
gap: 24px;
|
||
margin: 32px auto;
|
||
max-width: 1200px;
|
||
}
|
||
|
||
.data-card {
|
||
background: #2A2A2A;
|
||
border: 1px solid #3A3A3A;
|
||
border-radius: 12px;
|
||
padding: 24px;
|
||
transition: all 250ms cubic-bezier(0.16, 1, 0.3, 1);
|
||
cursor: pointer;
|
||
}
|
||
|
||
.data-card:hover {
|
||
border-color: #10A37F;
|
||
transform: translateY(-4px);
|
||
box-shadow: 0 8px 24px rgba(0, 0, 0, 0.3);
|
||
}
|
||
|
||
.data-card-icon {
|
||
font-size: 32px;
|
||
margin-bottom: 16px;
|
||
}
|
||
|
||
.data-card-value {
|
||
font-size: 36px;
|
||
font-weight: 700;
|
||
color: #ECECEC;
|
||
margin-bottom: 4px;
|
||
}
|
||
|
||
.data-card-label {
|
||
font-size: 14px;
|
||
color: #AFAFAF;
|
||
margin-bottom: 12px;
|
||
}
|
||
|
||
.data-card-trend {
|
||
font-size: 12px;
|
||
color: #10A37F;
|
||
display: flex;
|
||
align-items: center;
|
||
gap: 4px;
|
||
}
|
||
|
||
.data-card-trend.down {
|
||
color: #EF4444;
|
||
}
|
||
```
|
||
|
||
#### 10.2.5 主要内容区域(双列布局)
|
||
|
||
```
|
||
┌──────────────────────────┐ ┌─────────────────────────┐
|
||
│ 📋 今日待办 [全部3个] │ │ 📈 本周数据 │
|
||
│ ─────────────────────── │ │ ────────────────────── │
|
||
│ │ │ │
|
||
│ ┌────────────────────┐ │ │ [折线图] │
|
||
│ │ ⏰ 主图设计 │ │ │ 任务完成趋势 │
|
||
│ │ 截止:今天 18:00 │ │ │ │
|
||
│ │ 🔥 紧急 │ │ │ 本周完成:15个 │
|
||
│ │ [查看详情] │ │ │ 上周:12个 ↑25% │
|
||
│ └────────────────────┘ │ │ │
|
||
│ │ │ │
|
||
│ ┌────────────────────┐ │ │ ┌───────────────────┐ │
|
||
│ │ 📝 详情页优化 │ │ │ │ 🎯 本周目标 │ │
|
||
│ │ 截止:明天 12:00 │ │ │ │ 完成20个任务 │ │
|
||
│ │ [查看详情] │ │ │ │ ████░░░░ 75% │ │
|
||
│ └────────────────────┘ │ │ └───────────────────┘ │
|
||
│ │ │ │
|
||
│ [查看全部任务 →] │ │ [查看详细报表 →] │
|
||
└──────────────────────────┘ └─────────────────────────┘
|
||
```
|
||
|
||
**样式实现**
|
||
```css
|
||
.main-content {
|
||
display: grid;
|
||
grid-template-columns: 1fr 1fr;
|
||
gap: 24px;
|
||
margin: 32px auto;
|
||
max-width: 1200px;
|
||
}
|
||
|
||
.content-card {
|
||
background: #2A2A2A;
|
||
border: 1px solid #3A3A3A;
|
||
border-radius: 12px;
|
||
padding: 24px;
|
||
min-height: 400px;
|
||
}
|
||
|
||
.content-card-header {
|
||
display: flex;
|
||
justify-content: space-between;
|
||
align-items: center;
|
||
margin-bottom: 24px;
|
||
padding-bottom: 16px;
|
||
border-bottom: 1px solid #3A3A3A;
|
||
}
|
||
|
||
.content-card-title {
|
||
font-size: 18px;
|
||
font-weight: 600;
|
||
color: #ECECEC;
|
||
display: flex;
|
||
align-items: center;
|
||
gap: 8px;
|
||
}
|
||
|
||
.task-item {
|
||
background: #1F1F1F;
|
||
border: 1px solid #3A3A3A;
|
||
border-radius: 8px;
|
||
padding: 16px;
|
||
margin-bottom: 12px;
|
||
transition: all 250ms ease;
|
||
}
|
||
|
||
.task-item:hover {
|
||
border-color: #10A37F;
|
||
background: #252525;
|
||
}
|
||
|
||
.task-item-title {
|
||
font-size: 16px;
|
||
font-weight: 500;
|
||
color: #ECECEC;
|
||
margin-bottom: 8px;
|
||
}
|
||
|
||
.task-item-meta {
|
||
display: flex;
|
||
gap: 16px;
|
||
font-size: 12px;
|
||
color: #AFAFAF;
|
||
}
|
||
|
||
.task-urgent {
|
||
display: inline-flex;
|
||
align-items: center;
|
||
padding: 4px 8px;
|
||
background: rgba(239, 68, 68, 0.1);
|
||
border: 1px solid rgba(239, 68, 68, 0.3);
|
||
border-radius: 4px;
|
||
color: #EF4444;
|
||
font-size: 11px;
|
||
font-weight: 500;
|
||
}
|
||
```
|
||
|
||
#### 10.2.6 排行榜区域
|
||
|
||
```
|
||
┌─────────────────────────────────────────────────────┐
|
||
│ 🏆 本月设计师排行榜 [查看全部] │
|
||
│ ──────────────────────────────────────────────────│
|
||
│ │
|
||
│ 🥇 李四 28个任务 4.9⭐ +1,400分 │
|
||
│ UI设计师 本月第一 │
|
||
│ ────────────────────────────────────────────────│
|
||
│ 🥈 王五 22个任务 4.8⭐ +1,100分 │
|
||
│ 视觉设计师 本月第二 │
|
||
│ ────────────────────────────────────────────────│
|
||
│ 🥉 赵六 18个任务 4.7⭐ +900分 │
|
||
│ 平面设计师 本月第三 │
|
||
│ ────────────────────────────────────────────────│
|
||
│ │
|
||
│ 你当前排名第8位,再完成2个任务即可进入前5! │
|
||
│ │
|
||
└─────────────────────────────────────────────────────┘
|
||
```
|
||
|
||
**样式实现**
|
||
```css
|
||
.leaderboard {
|
||
background: #2A2A2A;
|
||
border: 1px solid #3A3A3A;
|
||
border-radius: 12px;
|
||
padding: 24px;
|
||
margin: 32px auto;
|
||
max-width: 1200px;
|
||
}
|
||
|
||
.leaderboard-item {
|
||
display: flex;
|
||
align-items: center;
|
||
gap: 16px;
|
||
padding: 16px;
|
||
background: #1F1F1F;
|
||
border: 1px solid #3A3A3A;
|
||
border-radius: 8px;
|
||
margin-bottom: 12px;
|
||
transition: all 250ms ease;
|
||
}
|
||
|
||
.leaderboard-item:hover {
|
||
background: #252525;
|
||
border-color: #10A37F;
|
||
transform: translateX(4px);
|
||
}
|
||
|
||
.leaderboard-rank {
|
||
font-size: 32px;
|
||
min-width: 48px;
|
||
text-align: center;
|
||
}
|
||
|
||
.leaderboard-info {
|
||
flex: 1;
|
||
}
|
||
|
||
.leaderboard-name {
|
||
font-size: 18px;
|
||
font-weight: 600;
|
||
color: #ECECEC;
|
||
margin-bottom: 4px;
|
||
}
|
||
|
||
.leaderboard-role {
|
||
font-size: 12px;
|
||
color: #737373;
|
||
}
|
||
|
||
.leaderboard-stats {
|
||
display: flex;
|
||
gap: 24px;
|
||
font-size: 14px;
|
||
color: #AFAFAF;
|
||
}
|
||
|
||
.leaderboard-highlight {
|
||
padding: 16px;
|
||
background: rgba(16, 163, 127, 0.1);
|
||
border: 1px solid rgba(16, 163, 127, 0.2);
|
||
border-radius: 8px;
|
||
text-align: center;
|
||
color: #10A37F;
|
||
font-size: 14px;
|
||
margin-top: 16px;
|
||
}
|
||
```
|
||
|
||
#### 10.2.7 响应式适配
|
||
|
||
**桌面端(≥1200px)**
|
||
- 数据卡片:4列
|
||
- 主要内容:2列
|
||
- 最大宽度:1200px
|
||
|
||
**平板端(768px - 1199px)**
|
||
- 数据卡片:2列
|
||
- 主要内容:1列
|
||
- 侧边距:24px
|
||
|
||
**移动端(<768px)**
|
||
- 数据卡片:1列
|
||
- 主要内容:1列
|
||
- 侧边距:16px
|
||
- 导航栏折叠为汉堡菜单
|
||
|
||
```css
|
||
@media (max-width: 1199px) {
|
||
.data-cards {
|
||
grid-template-columns: repeat(2, 1fr);
|
||
}
|
||
.main-content {
|
||
grid-template-columns: 1fr;
|
||
}
|
||
}
|
||
|
||
@media (max-width: 767px) {
|
||
.data-cards {
|
||
grid-template-columns: 1fr;
|
||
}
|
||
.navbar {
|
||
padding: 0 16px;
|
||
}
|
||
.hero-section {
|
||
padding: 24px;
|
||
}
|
||
}
|
||
```
|
||
|
||
### 10.3 响应式设计
|
||
- 支持桌面端(主要)
|
||
- 支持平板端
|
||
- 支持移动端(查看为主)
|
||
|
||
### 10.4 交互动效
|
||
- 页面切换:淡入淡出
|
||
- 卡片悬浮:轻微上浮 + 阴影加深
|
||
- 按钮点击:涟漪效果
|
||
- 加载状态:骨架屏/加载动画
|
||
- 数据更新:数字滚动动效
|
||
|
||
### 10.4 关键页面布局
|
||
|
||
#### 任务大厅
|
||
```
|
||
┌──────────────────────────────────────┐
|
||
│ Logo 任务大厅 我的任务 设计师大厅 │ 顶部导航栏
|
||
│ 系统配置 [通知] [头像]│
|
||
├──────────────────────────────────────┤
|
||
│ ┌──────────────┐ │
|
||
│ │ 筛选条件 │ 任务列表(卡片流) │
|
||
│ │ │ ┌────┐ ┌────┐ │
|
||
│ │ 任务类型 │ │卡片│ │卡片│ │
|
||
│ │ ☑ 新品 │ └────┘ └────┘ │
|
||
│ │ ☑ 优化 │ ┌────┐ ┌────┐ │
|
||
│ │ │ │卡片│ │卡片│ │
|
||
│ │ 品牌 │ └────┘ └────┘ │
|
||
│ │ [搜索框] │ │
|
||
│ │ │ [加载更多] │
|
||
│ │ 积分范围 │ │
|
||
│ │ [滑块] │ │
|
||
│ └──────────────┘ │
|
||
└──────────────────────────────────────┘
|
||
```
|
||
|
||
#### 我的任务(日历视图)
|
||
```
|
||
┌──────────────────────────────────────┐
|
||
│ Logo 任务大厅 我的任务 设计师大厅 │
|
||
│ 系统配置 [通知] [头像]│
|
||
├──────────────────────────────────────┤
|
||
│ ┌列表视图┐ ┌日历视图┐ │
|
||
│ └────────┘ └────────┘ │
|
||
│ │
|
||
│ 2025年11月 < > │
|
||
│ │
|
||
│ 日 一 二 三 四 五 六 │
|
||
│ 1 2 3 4 │
|
||
│ 5 6 7 8 9 10 11 │
|
||
│ 12 13 14 15 16 17 18 │
|
||
│ │
|
||
│ 当日任务: │
|
||
│ ┌────────────────────┐ │
|
||
│ │ 主图设计 [进行中] │ │
|
||
│ │ 进度:75% │ │
|
||
│ └────────────────────┘ │
|
||
└──────────────────────────────────────┘
|
||
```
|
||
|
||
### 10.5 无障碍设计
|
||
- 支持键盘快捷键
|
||
- 色盲友好的颜色组合
|
||
- 合理的对比度(符合WCAG AA标准)
|
||
- 图片ALT文本
|
||
|
||
---
|
||
|
||
## 十一、安全性设计
|
||
|
||
### 11.1 认证与授权
|
||
- JWT Token机制
|
||
- Token过期和刷新策略
|
||
- 权限控制(RBAC)
|
||
- 接口权限校验
|
||
|
||
### 11.2 数据安全
|
||
- 密码加密存储(BCrypt)
|
||
- 敏感信息脱敏
|
||
- SQL注入防护(参数化查询)
|
||
- XSS攻击防护
|
||
- CSRF防护
|
||
|
||
### 11.3 文件安全
|
||
- 文件类型校验
|
||
- 文件大小限制
|
||
- 恶意文件扫描
|
||
- 文件访问权限控制
|
||
|
||
### 11.4 日志与审计
|
||
- 操作日志记录
|
||
- 异常日志记录
|
||
- 登录日志
|
||
- 敏感操作审计
|
||
|
||
---
|
||
|
||
## 十二、性能优化
|
||
|
||
### 12.1 前端优化
|
||
- 代码分割(Code Splitting)
|
||
- 懒加载
|
||
- 图片懒加载和压缩
|
||
- CDN加速
|
||
- 浏览器缓存
|
||
- Gzip压缩
|
||
|
||
### 12.2 后端优化
|
||
- 数据库索引优化
|
||
- Redis缓存热点数据
|
||
- 接口响应时间监控
|
||
- SQL查询优化
|
||
- 连接池配置
|
||
|
||
### 12.3 数据库优化
|
||
- 读写分离
|
||
- 分库分表(数据量大时)
|
||
- 慢查询监控
|
||
- 定期数据归档
|
||
|
||
---
|
||
|
||
## 十三、测试策略
|
||
|
||
### 13.1 测试类型
|
||
- 单元测试
|
||
- 集成测试
|
||
- 接口测试
|
||
- 前端E2E测试
|
||
- 性能测试
|
||
- 安全测试
|
||
|
||
### 13.2 测试覆盖率
|
||
- 核心业务逻辑:>80%
|
||
- 工具类方法:>90%
|
||
|
||
### 13.3 测试环境
|
||
- 开发环境(Dev)
|
||
- 测试环境(Test)
|
||
- 预发布环境(Staging)
|
||
- 生产环境(Production)
|
||
|
||
---
|
||
|
||
## 十四、部署与运维
|
||
|
||
### 14.1 部署方案
|
||
```
|
||
前端:Nginx静态资源服务
|
||
后端:Docker容器 + Kubernetes(可选)
|
||
数据库:主从复制 + 定期备份
|
||
缓存:Redis集群
|
||
```
|
||
|
||
### 14.2 监控告警
|
||
- 应用性能监控(APM)
|
||
- 服务器资源监控
|
||
- 数据库监控
|
||
- 日志监控
|
||
- 告警通知(钉钉群/邮件/短信)
|
||
|
||
### 14.3 备份策略
|
||
- 数据库:每日全量备份 + 实时binlog
|
||
- 文件:定期备份到对象存储
|
||
- 配置:版本控制
|
||
|
||
---
|
||
|
||
## 十五、项目计划
|
||
|
||
### 15.1 开发阶段
|
||
|
||
#### 第一阶段:基础框架搭建(2周)
|
||
- 技术选型确认
|
||
- 项目初始化
|
||
- 数据库设计
|
||
- 认证系统集成(开源方案)
|
||
- 钉钉登录集成
|
||
- 组织架构同步
|
||
|
||
#### 第二阶段:核心功能开发(4周)
|
||
- 任务发起模块
|
||
- 任务大厅模块
|
||
- 任务分配和接收
|
||
- 进度跟踪
|
||
- 审核评价
|
||
|
||
#### 第三阶段:配置与管理(2周)
|
||
- 系统配置模块
|
||
- 积分管理
|
||
- 权限管理
|
||
- 通知模块
|
||
|
||
#### 第四阶段:数据分析与展示(2周)
|
||
- 设计师进度大厅
|
||
- 数据统计
|
||
- 图表展示
|
||
- 排行榜
|
||
|
||
#### 第五阶段:优化与测试(2周)
|
||
- UI/UX优化
|
||
- 性能优化
|
||
- 全面测试
|
||
- Bug修复
|
||
|
||
#### 第六阶段:部署上线(1周)
|
||
- 部署环境准备
|
||
- 数据迁移
|
||
- 上线部署
|
||
- 培训和文档
|
||
|
||
### 15.2 时间线
|
||
总计:**13周**(约3个月)
|
||
|
||
---
|
||
|
||
## 十六、风险与挑战
|
||
|
||
### 16.1 技术风险
|
||
| 风险 | 影响 | 应对措施 |
|
||
|------|------|----------|
|
||
| 钉钉API变更 | 登录和同步失败 | 关注官方文档,及时适配 |
|
||
| 并发抢单冲突 | 超卖问题 | 使用锁机制,充分测试 |
|
||
| 大文件上传 | 性能问题 | 分片上传,限制大小 |
|
||
| 数据库性能 | 响应慢 | 索引优化,缓存策略 |
|
||
|
||
### 16.2 业务风险
|
||
| 风险 | 影响 | 应对措施 |
|
||
|------|------|----------|
|
||
| 积分滥用 | 激励失效 | 审批机制,日志审计 |
|
||
| 恶意抢单 | 资源浪费 | 限制规则,信用体系 |
|
||
| 任务延期 | 影响业务 | 预警机制,责任追溯 |
|
||
|
||
### 16.3 团队风险
|
||
| 风险 | 影响 | 应对措施 |
|
||
|------|------|----------|
|
||
| 人员变动 | 进度延误 | 代码规范,文档完善 |
|
||
| 需求变更 | 开发返工 | 敏捷开发,小步迭代 |
|
||
|
||
---
|
||
|
||
## 十七、后续优化方向
|
||
|
||
### 17.1 功能增强
|
||
- **AI智能分配**:基于历史数据,AI推荐最合适的设计师
|
||
- **任务拆分**:大任务自动拆分为子任务
|
||
- **协同设计**:多人协作完成同一任务
|
||
- **版本管理**:设计稿版本控制和对比
|
||
- **移动端App**:独立的移动应用
|
||
- **消息即时通讯**:任务内置聊天功能
|
||
- **积分商城**:积分兑换奖品
|
||
- **成长体系**:设计师等级和勋章系统
|
||
|
||
### 17.2 技术优化
|
||
- **微服务架构**:拆分为多个独立服务
|
||
- **GraphQL**:更灵活的API查询
|
||
- **WebSocket**:实时消息推送
|
||
- **大数据分析**:更深入的数据挖掘
|
||
- **机器学习**:任务时长预测、质量评估
|
||
|
||
### 17.3 集成扩展
|
||
- **集成更多设计工具**:Figma、Sketch等
|
||
- **集成项目管理工具**:Jira、Trello等
|
||
- **对接财务系统**:积分与奖金挂钩
|
||
- **对接HR系统**:绩效考核数据同步
|
||
|
||
---
|
||
|
||
## 十八、参考资料
|
||
|
||
### 18.1 开源认证系统推荐
|
||
1. **Casdoor**
|
||
- 官网:https://casdoor.org/
|
||
- 特点:UI友好,易于集成,支持多种身份提供商
|
||
|
||
2. **Keycloak**
|
||
- 官网:https://www.keycloak.org/
|
||
- 特点:功能强大,企业级,支持复杂场景
|
||
|
||
3. **Auth0**(部分开源)
|
||
- 官网:https://auth0.com/
|
||
- 特点:云服务,集成简单
|
||
|
||
### 18.2 技术文档
|
||
- Vue 3官方文档:https://vuejs.org/
|
||
- React官方文档:https://react.dev/
|
||
- Spring Boot官方文档:https://spring.io/projects/spring-boot
|
||
- 钉钉开放平台:https://open.dingtalk.com/
|
||
- Ant Design:https://ant.design/
|
||
|
||
### 18.3 最佳实践
|
||
- RESTful API设计规范
|
||
- 前端工程化实践
|
||
- 数据库设计范式
|
||
- 安全编码规范
|
||
|
||
---
|
||
|
||
## 十九、附录
|
||
|
||
### 19.1 术语表
|
||
| 术语 | 说明 |
|
||
|------|------|
|
||
| SPU | Standard Product Unit,标准产品单位 |
|
||
| 叶子类目 | 类目树中最底层、不可再分的类目 |
|
||
| 抢单 | 设计师主动接受任务大厅中的招募任务 |
|
||
| 积分池 | 每个团队拥有的可用积分总额 |
|
||
| 甘特图 | 项目进度的条形图表示 |
|
||
| 任务调配 | 管理员对进行中任务和任务池任务进行转移、指定、撤回等管理操作 |
|
||
| 任务转移 | 将进行中的任务从一个设计师转移给另一个设计师 |
|
||
| 指定接收人 | 管理员为任务池中的招募任务指定具体接收设计师 |
|
||
| 任务撤回 | 将任务从任务大厅撤回到待分配状态 |
|
||
| 任务池 | 任务大厅中所有招募任务的集合 |
|
||
| 智能推荐 | 基于设计师负荷、技能、评分等维度推荐最合适的设计师 |
|
||
| 延误扣分 | 当任务转移时如果存在延误,根据延误时长对原设计师进行积分扣除 |
|
||
| 时效重新计算 | 任务转移给新设计师后,根据剩余工作量和新设计师情况重新计算交付时间 |
|
||
| 延误等级 | 将延误按时长分为轻微、一般、严重、重大四个等级 |
|
||
| 延误申诉 | 设计师对延误扣分有异议时,可提交申诉由管理员审核 |
|
||
| 熟练度系数 | 设计师对特定类型任务的熟练程度系数,影响时效计算(0.8-1.2) |
|
||
| 负荷系数 | 设计师当前工作负荷对新任务完成时间的影响系数(1.0-1.3) |
|
||
| 需求部门 | 只能发起任务、不能接单的部门,拥有积分池消耗积分 |
|
||
| 接单部门 | 只能接单、不能发起任务的部门,完成任务获得积分奖励 |
|
||
| 部门负责人 | 需求部门的管理者,可设置积分消耗限制和管理部门成员 |
|
||
| 积分消耗限制 | 对需求部门按天/周/月设置的积分使用上限,用于控制资源合理使用 |
|
||
| 需求统计展板 | 展示需求发起数据的可视化看板,包含部门和用户维度的多角度分析 |
|
||
| 成就勋章 | 设计师达成特定条件后获得的虚拟勋章,附带积分奖励 |
|
||
| 里程碑 | 设计师在工作过程中达成的重要节点(如完成100个任务) |
|
||
| 实时排名 | 根据积分、任务数等维度实时更新的设计师排名 |
|
||
| 冲刺提示 | 在周末或月末提醒设计师完成目标的激励信息 |
|
||
| 同事对比 | 将个人数据与同部门同事进行对比,激发竞争意识 |
|
||
| 竞赛活动 | 系统组织的短期比赛活动,如"设计马拉松" |
|
||
| 团队PK | 不同部门或小组之间的团队对抗赛 |
|
||
| 连续记录 | 设计师连续达成某个目标的天数(如连续21天按时交付) |
|
||
| 激励看板 | 综合展示设计师成就、排名、目标等激励信息的可视化界面 |
|
||
| 激励游戏开关 | 管理员控制各种激励功能(排名、成就等)的启用/禁用开关 |
|
||
| 自动奖励规则 | 系统按周期(每日/周/月)自动计算并发放奖励的规则配置 |
|
||
| 奖励积分配置 | 为各种激励行为(签到、完成任务、好评等)设置的积分奖励值 |
|
||
| 激励积分池 | 专门用于激励系统奖励发放的独立积分池,不占用团队积分 |
|
||
| 竞赛模板 | 预设的竞赛活动配置模板,可快速创建新竞赛 |
|
||
| 排名规则 | 综合排名的计算规则,包含各维度的权重和计分公式 |
|
||
| 自动发放 | 系统根据设定规则自动计算并发放奖励,无需人工干预 |
|
||
| 奖励审核 | 管理员对系统自动计算的奖励进行审核后再发放 |
|
||
|
||
### 19.2 联系方式
|
||
- 项目负责人:[姓名]
|
||
- 技术负责人:[姓名]
|
||
- 产品负责人:[姓名]
|
||
|
||
---
|
||
|
||
## 📌 总结
|
||
|
||
本系统是一个**设计师任务抢单管理平台**,核心目标是:
|
||
1. ✅ 提高任务分配效率
|
||
2. ✅ 实现进度透明化管理
|
||
3. ✅ 建立公平的积分激励机制
|
||
4. ✅ 提供多维度的数据分析
|
||
|
||
**核心亮点**:
|
||
- 🎯 灵活的任务发布方式(指定/招募/分配)
|
||
- 🔄 **强大的任务调配功能(管理员可灵活调配进行中任务和任务池)**
|
||
- 🏢 **清晰的部门职责划分(需求部门 vs 接单部门)**
|
||
- 💰 **智能积分消耗控制(按天/周/月限制,防止资源滥用)**
|
||
- 📊 **多维度需求统计展板(部门/用户视角,数据可视化)**
|
||
- 🎮 **游戏化激励系统(成就勋章、排名竞赛、团队PK)**
|
||
- ⚙️ **完善的激励配置后台(自动奖励、积分配置、游戏开关)**
|
||
- 💎 积分制度激励设计师
|
||
- 📈 可视化的进度管理(日历/甘特图)
|
||
- 🏆 多维度排行榜和数据分析
|
||
- 🤖 智能推荐算法(任务转移时推荐最合适设计师)
|
||
- ⚠️ 延误扣分与申诉机制(公平透明)
|
||
- 🔔 完善的通知提醒机制
|
||
- 🔐 企业级的认证授权体系
|
||
- 📝 完整的调配日志和审计功能
|
||
|
||
**技术特点**:
|
||
- 前后端分离架构
|
||
- 开源认证系统集成
|
||
- 钉钉生态深度集成
|
||
- 现代化UI/UX设计
|
||
- 高性能和高可用性
|
||
|
||
---
|
||
|
||
## 📝 文档版本
|
||
|
||
- **版本**:v1.7
|
||
- **日期**:2025-11-07
|
||
- **状态**:待评审
|
||
|
||
### 更新记录
|
||
|
||
**v1.7 (2025-11-07)**
|
||
- 🎨 新增:OpenAI 官方 UI 设计规范(10.1章节)
|
||
- 明确要求严格遵循 OpenAI 官方 UI 设计规范
|
||
- 核心设计原则(极简主义、现代化、清晰层次、一致性)
|
||
- 完整配色方案(深色模式为主,参考OpenAI经典翠绿色#10A37F)
|
||
- 字体规范(Söhne字体家族、字体大小系统、字重规范)
|
||
- 间距系统(8px基准、统一内外边距)
|
||
- 圆角规范(4px-24px分级圆角)
|
||
- 阴影系统(4级阴影深度)
|
||
- 动画与过渡(OpenAI流畅体验、标准缓动函数)
|
||
- 组件设计规范(按钮、输入框、卡片等完整CSS实现)
|
||
- 🏠 新增:首页 UI 布局详细设计(10.2章节)
|
||
- 首页整体布局(导航栏+欢迎区+数据卡片+内容区+排行榜)
|
||
- 顶部导航栏详细设计(含完整CSS实现、毛玻璃效果)
|
||
- 欢迎区域(Hero Section)设计(含积分余额提醒)
|
||
- 数据卡片区域(4列网格、悬浮动效)
|
||
- 主要内容区域(双列布局、今日待办+本周数据)
|
||
- 排行榜区域(本月设计师Top3展示)
|
||
- 响应式适配方案(桌面/平板/移动端)
|
||
- 📐 完善:所有UI组件提供完整的CSS代码示例
|
||
- 🎯 特色:深色模式优先、OpenAI经典翠绿色品牌色、流畅动效体验
|
||
|
||
**v1.6 (2025-11-07)**
|
||
- 💰 新增:部门积分余额消耗提醒看板(5.7章节)
|
||
- 部门积分消耗月报展示(月底倒计时、消耗率排行)
|
||
- 智能建议功能(根据剩余积分推荐可发起任务数)
|
||
- 积分消耗提醒规则(分级提醒:绿/黄/橙/红)
|
||
- 月底倒计时提醒(30天/15天/7天/3天/1天分级提醒)
|
||
- 部门排行榜增加积分余额和消耗率展示
|
||
- 目的:激发需求部门在月底前充分利用积分资源
|
||
- 📎 优化:文件上传和交付方式说明(2.2.8、2.2.10章节)
|
||
- 明确发布需求时仅需上传需求表格(Excel/Word)
|
||
- 明确设计师交付时无需上传文件,仅填写素材路径
|
||
- 添加交付路径输入界面设计
|
||
- 支持共享盘路径、云盘链接、服务器路径等多种方式
|
||
- 添加路径验证规则和格式检查
|
||
- 🔔 完善:钉钉通知集成技术方案(7.3章节)
|
||
- 详细的通知数据结构设计(包含钉钉推送所需字段)
|
||
- 钉钉消息推送接口封装(DingTalkNotificationService类)
|
||
- 支持多种钉钉消息类型(OA/ActionCard/Markdown/Text)
|
||
- 通知队列机制(异步处理,避免影响主业务性能)
|
||
- 通知表数据库设计(sys_notification表,含钉钉推送字段)
|
||
- 推送策略和失败重试机制
|
||
- 确保所有站内通知都预留钉钉推送接口
|
||
|
||
**v1.5 (2025-11-07)**
|
||
- ⚙️ 新增:激励系统后台配置管理功能(6.1.8章节)
|
||
- 激励游戏总开关(11个独立模块开关控制)
|
||
- 成就勋章配置(创建、编辑、多级成就、奖励设置)
|
||
- 自动奖励规则配置(每日/周/月/季度/年度,多种奖励类型)
|
||
- 竞赛活动配置(创建竞赛、设置规则、奖励结算、模板管理)
|
||
- 团队PK配置(对抗赛创建、实时战况、结算管理)
|
||
- 排名规则配置(维度权重、更新频率、保护机制)
|
||
- 激励积分池管理(预算设置、实时监控、趋势预测)
|
||
- 📝 更新:数据库设计(增加10张配置管理表)
|
||
- 激励系统配置表(incentive_config)
|
||
- 自动奖励规则表(auto_reward_rule)
|
||
- 自动奖励发放记录表(auto_reward_log)
|
||
- 自动奖励明细表(auto_reward_detail)
|
||
- 竞赛活动表(competition)
|
||
- 竞赛排名表(competition_ranking)
|
||
- 团队PK表(team_pk)
|
||
- 团队PK成员表(team_pk_member)
|
||
- 排名规则配置表(ranking_rule)
|
||
- 激励积分池表(incentive_pool)
|
||
- 📝 更新:接口设计
|
||
- 新增:激励配置管理模块API(62个管理接口)
|
||
- 涵盖:总开关管理、成就配置、自动奖励、竞赛管理、团队PK、排名规则、积分池、数据分析
|
||
- 📝 更新:通知场景(增加5个自动奖励通知)
|
||
- 📝 更新:数据字典(增加7个配置相关枚举类型)
|
||
- 📝 更新:系统模块划分(增加激励配置管理模块)
|
||
- 📝 更新:核心亮点(增加完善的激励配置后台)
|
||
- 📝 更新:术语表(增加8个配置相关术语)
|
||
- 💡 特色:管理员可灵活配置激励规则,系统自动按周期发放奖励,激励游戏可独立开关控制
|
||
|
||
**v1.4 (2025-11-07)**
|
||
- ✨ 新增:设计师激励提示系统(5.3章节)
|
||
- 实时排名提示(排名变化、超越提醒)
|
||
- 成就勋章系统(12种成就,积分奖励)
|
||
- 里程碑提醒(已达成/即将达成/挑战目标)
|
||
- 积分冲刺提示(月末冲刺、周冲刺)
|
||
- 同事对比功能(友好竞争)
|
||
- 每日激励卡片(签到、待办、加油语录)
|
||
- 即时激励弹窗(完成任务、获得好评)
|
||
- 竞赛活动提示(月度竞赛)
|
||
- 团队PK提示(部门对抗赛)
|
||
- 智能提醒建议(任务推荐、休息提醒)
|
||
- 可视化激励看板(趋势曲线、目标进度)
|
||
- 📝 更新:数据库设计
|
||
- 新增:成就勋章表(achievement)
|
||
- 新增:用户成就记录表(user_achievement)
|
||
- 新增:用户目标表(user_goal)
|
||
- 新增:用户签到记录表(user_check_in)
|
||
- 📝 更新:接口设计
|
||
- 新增:激励系统模块API(28个接口)
|
||
- 涵盖:成就、排名、目标、签到、竞赛、团队PK、智能推荐
|
||
- 📝 更新:通知场景(增加9个激励相关通知)
|
||
- 💡 特色:通过游戏化设计激发设计师积极性和竞争意识
|
||
|
||
**v1.3 (2025-11-07)**
|
||
- ✨ 新增:组织架构与部门管理模块(一之二章节)
|
||
- 部门类型管理(需求部门/接单部门)
|
||
- 部门权限控制(发起/接单分离)
|
||
- 需求部门负责人管理
|
||
- 积分消耗限制功能(按天/周/月)
|
||
- 部门数据权限隔离
|
||
- ✨ 新增:需求统计展板模块(五之二章节)
|
||
- 部门维度统计和排行榜
|
||
- 用户维度统计和排行榜
|
||
- 需求发起趋势分析
|
||
- 需求类型分析
|
||
- 数据导出和报表订阅
|
||
- 📝 更新:权限角色设计
|
||
- 新增:需求部门负责人角色
|
||
- 区分:接单部门主管 vs 需求部门负责人
|
||
- 细化:设计师和需求方的部门归属
|
||
- 📝 更新:数据库设计
|
||
- 更新:部门表(增加部门类型、消耗限制等字段)
|
||
- 新增:部门消耗限制记录表(dept_limit_record)
|
||
- 📝 更新:接口设计
|
||
- 新增:部门管理模块API(12个接口)
|
||
- 新增:需求统计模块API(9个接口)
|
||
- 📝 更新:数据字典
|
||
- 新增:部门类型枚举(DEMAND/RECEIVER)
|
||
- 新增:消耗限制周期枚举(DAILY/WEEKLY/MONTHLY)
|
||
- 📝 更新:通知场景(增加4个部门管理相关通知)
|
||
- 📝 更新:术语表(增加5个术语)
|
||
- 📝 更新:核心亮点(突出部门管理和统计功能)
|
||
|
||
**v1.2 (2025-11-07)**
|
||
- ✨ 新增:延误扣分机制(4.9.3章节)
|
||
- 延误判定标准(4级延误分类)
|
||
- 可配置的扣分规则(轻微/一般/严重/重大)
|
||
- 延误扣分计算公式和算法
|
||
- 设计师延误档案和数据留存
|
||
- 延误扣分通知系统
|
||
- 延误申诉机制
|
||
- ✨ 新增:时效重新计算算法
|
||
- 剩余工作量计算
|
||
- 设计师熟练度系数
|
||
- 设计师负荷系数
|
||
- 智能计算新交付时间
|
||
- ✨ 新增:延误扣分规则配置(6.1.6章节)
|
||
- 可视化规则管理界面
|
||
- 延误等级配置(可增删改)
|
||
- 扣分规则测试工具
|
||
- 申诉审核配置
|
||
- 📝 更新:任务转移流程(增加延误检测和扣分步骤)
|
||
- 📝 更新:数据库设计
|
||
- 新增:延误扣分记录表(delay_penalty_record)
|
||
- 新增:延误扣分规则表(delay_penalty_rule)
|
||
- 更新:任务调配记录表(增加延误字段)
|
||
- 更新:积分记录表(增加延误扣分关联)
|
||
- 📝 更新:接口设计
|
||
- 新增:延误扣分模块API(7个接口)
|
||
- 新增:延误扣分规则配置API(5个接口)
|
||
- 更新:设计师模块API(增加延误记录查询)
|
||
- 📝 更新:积分变动类型(增加延误扣分和申诉返还)
|
||
- 📝 更新:通知场景(增加3个延误相关通知)
|
||
- 📝 更新:系统参数配置(增加时效计算相关参数)
|
||
|
||
**v1.1 (2025-11-07)**
|
||
- ✨ 新增:管理员任务调配模块(四之二章节)
|
||
- ✨ 新增:进行中任务转移功能(单个/批量)
|
||
- ✨ 新增:任务池管理功能(指定接收人、撤回、推广)
|
||
- ✨ 新增:智能推荐算法(推荐最合适的设计师)
|
||
- ✨ 新增:任务优先级调整功能
|
||
- ✨ 新增:调配日志和统计功能
|
||
- ✨ 新增:调配权限审计功能
|
||
- 📝 更新:权限角色设计(增加管理员角色)
|
||
- 📝 更新:系统模块划分(增加任务调配模块)
|
||
- 📝 更新:接口设计(增加13个调配相关API)
|
||
- 📝 更新:数据库设计(增加任务调配记录表)
|
||
- 📝 更新:通知场景(增加6个调配相关通知)
|
||
- 📝 更新:术语表(增加调配相关术语)
|
||
|
||
**v1.0 (2025-11-07)**
|
||
- 🎉 初始版本发布
|
||
- 完整的需求分析和功能设计
|
||
- 技术架构和实施方案
|
||
|
||
---
|
||
|
||
**祝项目开发顺利!** 🎉
|
||
|