57 Commits

Author SHA1 Message Date
Your Name
30f9a3e735 feat: 优化数据分析页面
- 支持月份选择器,可查看指定月份数据
- 新增4个Tab:需求分析、设计师绩效、流程效率、预警监控
- 核心指标卡片:总任务数、待处理、进行中、已完成、完成率、准时率
- 设计师绩效:接单量、完成量、准时率、好评率、工作负载排行
- 流程效率:各环节耗时分析、瓶颈识别、环比对比
- 预警监控:超时预警、即将超时、长期未接单、审批滞后
- 后端新增3个API:设计师绩效、流程效率、预警任务
2026-01-04 08:57:45 +08:00
Your Name
17d3799870 feat: 完善抢单权限控制、草稿状态编辑、群通知新模板等功能
- 后端: 子任务抢单权限校验(部门类型、任务类型限制)
- 后端: 子任务组驳回联动主任务逻辑
- 后端: 群通知新模板样式
- 后端: 个人钉钉通知自动绑定
- 前端: 抢单按钮状态判断优化
- 前端: 草稿状态显示及编辑功能
- 前端: 驳回状态样式
- 前端: 指定设计师功能增强
2026-01-03 18:31:49 +08:00
Your Name
2bd4163328 fix: 修复任务审核弹窗UI对齐和设计师列表权限问题,排查详情信息缺失
1. 前端 TaskHall.vue:
   - 修复接单方式单选框的对齐问题,改为 Flex 布局并排显示且等高
   - 调整样式使其更整齐

2. 后端 UserController.java:
   - getDesignersWithWorkload 方法增加权限控制
   - 如果未传 deptId,非管理员用户强制使用自己的 deptId
   - 修复了其他部门负责人可以看到全公司设计师的问题

3. 后端 TaskApprovalService.java:
   - 在 getPendingApprovalTasks 中添加日志
   - 记录品牌、类目、平台信息填充失败的情况,便于排查数据问题
2026-01-03 13:44:23 +08:00
Your Name
6113bb3b0c style: 适配全站灰绿配色主题,优化审批弹窗样式
- 将弹窗主题改为深色背景 (#1f1f1f)
- 标签颜色改为深灰背景+白色文字
- Radio 选中颜色和 hover 颜色改为全站主色 (#31f08b)
- 按钮和下拉框聚焦颜色统一为绿色主题
- 修复指定设计师功能点击无效的问题
2026-01-03 13:28:47 +08:00
Your Name
c3454123db feat: 优化指派设计师功能,改用Select下拉框并显示工作量和预计完成时间
问题修复:
✅ 修复指派设计师按钮点击无效的问题
✅ 将Radio组改为Select下拉框,体验更好

功能优化:

1. 后端增强 (UserService.java)
   ✅ 新增返回设计师最早预计完成时间 (earliestDeadline)
   ✅ 查询该设计师进行中任务的最早deadline
   ✅ 便于负责人评估设计师工作量

2. 前端界面优化 (TaskHall.vue)
   ✅ 将RadioGroup改为Select下拉框
   ✅ 下拉框尺寸改为large,更易操作
   ✅ 显示设计师姓名
   ✅ 显示进行中任务数量
   ✅ 显示预计最早完成时间(相对时间)
   ✅ 根据工作量显示不同颜色:
      - 0个任务:绿色 "空闲"
      - 1-3个:绿色 "进行中: X个"
      - 4-5个:橙色 "进行中: X个"
      - 6+个:红色 "进行中: X个"

3. 时间显示格式
   ✅ 相对时间显示(例如:2天8小时后)
   ✅ 24小时内显示小时数
   ✅ 已逾期显示为"已逾期"

4. 下拉框选项样式
   ✅ 双栏布局:左侧姓名,右侧工作信息
   ✅ 工作量和完成时间用 | 分隔
   ✅ 信息一目了然

使用示例:
- 选择"指定设计师接单"
- 点击下拉框
- 看到:张三 | 进行中: 2个 | 最早完成: 1天5小时后
- 方便评估后选择最合适的设计师
2026-01-03 12:27:52 +08:00
Your Name
7e970fa614 style: 优化审核弹窗UI风格,统一使用Ant Design组件
优化内容:

1. 组件替换
   ✅ 使用 Button 替换原生 button
   ✅ 使用 Select 替换原生 select
   ✅ 使用 InputNumber 替换 input[type=number]
   ✅ 使用 Space 组件优化布局
   ✅ 使用 Tag 组件显示标签

2. 任务类型编辑区域
   ✅ 改用浅灰背景 (#fafafa)
   ✅ 边框颜色统一 (#e8e8e8)
   ✅ 任务类型显示为蓝色 Tag
   ✅ 使用 InputNumber 组件调整数量
   ✅ 删除按钮使用 text + danger 样式
   ✅ 添加按钮使用 primary + 绿色样式

3. 接单方式选择
   ✅ Radio 选项卡片化设计
   ✅ 选中状态浅蓝背景 (#e6f7ff)
   ✅ 添加图标前缀 (🏢/👤)
   ✅ 卡片圆角 6px
   ✅ 过渡动画效果

4. 设计师列表
   ✅ 卡片化设计,选中高亮
   ✅ 使用 Tag 显示任务数量
   ✅ 根据任务量显示不同颜色:
      - 0-3个:success (绿色)
      - 4-5个:warning (橙色)
      - 6+个:error (红色)

5. 弹窗样式
   ✅ 标题添加 emoji 图标
   ✅ 宽度调整为 650px
   ✅ 按钮尺寸统一为 large
   ✅ 按钮最小宽度 100px

6. 驳回弹窗
   ✅ 同样优化风格
   ✅ 增加内边距
   ✅ 文本域高度增加到 5 行
   ✅ 统一按钮样式

整体效果:
- 与系统其他页面风格一致
- 使用 Ant Design 标准组件
- 视觉层次更清晰
- 交互体验更友好
- 响应式过渡动画
2026-01-03 12:07:54 +08:00
Your Name
9d431d0f0e fix: 修复任务类型编辑弹窗语法错误 2026-01-03 11:58:01 +08:00
Your Name
a241730633 feat: 接单部门负责人审核时可编辑任务类型
新增功能:
1. 审核弹窗增加任务类型编辑区域
   - 显示当前所有任务类型
   - 每个类型可调整数量
   - 可删除任务类型
   - 可添加新的任务类型
   - 自动从下拉列表选择(防重复)

2. 编辑界面优化
   - 灰色背景区域突出显示
   - 每个任务类型独立卡片
   - 数量输入框(最小值1)
   - 红色删除按钮
   - 绿色添加按钮

3. 数据提交
   - 审核时携带taskUpdates参数
   - 包含修改后的任务类型列表
   - 后端自动重新计算总积分
   - 支持流水线任务和普通任务

4. 后端支持(已有)
   - TaskApprovalService.applyTaskUpdates()
   - 自动更新taskTypeIds字段
   - 重新计算totalScore
   - 记录审核日志

使用场景:
- 接单部门负责人审核任务时
- 发现任务类型需要调整
- 直接在审核弹窗中编辑
- 编辑后再选择指派设计师或发布到大厅
2026-01-03 11:53:46 +08:00
Your Name
193810628a fix: 修复三个问题
问题1:接单部门负责人审核缺少指派选项
- 已在之前修复handleApproveTask函数,接单部门负责人审核时会调用handleApproveTwoLevelTask
- 提供完整的审核选项(指派设计师/发布到大厅)

问题2:被驳回任务状态显示和编辑功能
- 修复状态显示:rejected显示"已驳回"(之前显示"已取消")
- 添加"重新编辑提交"按钮到被驳回的任务卡片
- 点击跳转到任务创建页面进行编辑
- 用户可以修改任务信息后重新提交审核

问题3:钉钉群通知调试改进
- 添加更详细的日志记录
- 在发送前后都记录日志
- 记录sendRobotMessage的返回值
- 方便排查通知发送失败的问题

改进内容:
1. 任务状态映射优化
   - rejected -> "已驳回"
   - cancelled -> "已取消"
   - 不再混淆这两种状态

2. 被驳回任务编辑流程
   - 任务卡片显示"重新编辑提交"按钮
   - 跳转到创建页面(带editId和mode参数)
   - 保留原有任务信息,允许修改后重新提交

3. 钉钉通知日志增强
   - "准备发送钉钉群通知"
   - "准备调用钉钉机器人发送消息"
   - "钉钉群通知发送成功/失败"
   - 详细的异常堆栈信息
2026-01-03 11:48:28 +08:00
Your Name
fdda2e5878 feat: 添加任务发布到大厅时的钉钉群机器人通知
问题:
- 任务审核通过并发布到大厅时,没有触发钉钉群机器人通知
- 设计师无法第一时间知道有新任务可接单

修复内容:
1. TaskApprovalService.approveReceivingLevel()
   - 接单部门负责人审核通过时
   - 如果未指定设计师(发布到大厅)
   - 自动发送钉钉群机器人消息
   - 包含任务标题、编号、积分、品牌等信息

2. TaskItemService.approveTaskGroup()
   - 子任务组审核通过时
   - 如果未指定设计师(发布到大厅)
   - 自动发送钉钉群机器人消息
   - 包含主任务标题、子任务组信息、任务列表

3. 通知内容:
   - 标题:🎯 新任务发布 / 🎯 新子任务组发布
   - 详细信息:任务编号、积分、品牌、类目、平台等
   - 行动提示:💡 赶快去任务大厅抢单吧!

4. 错误处理:
   - 通知发送失败不影响主流程
   - 记录错误日志便于排查

影响范围:
- 每次任务发布到大厅时,接单部门群会收到通知
- 提高设计师接单效率
- 通知发送失败不会影响任务正常流转
2026-01-03 11:35:36 +08:00
Your Name
371cfd5b2a feat: 为任务卡片添加子任务进度统计功能
新增功能:
1. Task实体新增字段:
   - subTaskTotal: 子任务总数
   - subTaskCompleted: 已完成子任务数
   - subTaskInProgress: 进行中子任务数
   - subTaskPending: 待接单子任务数
   - subTasks: 子任务列表(包含处理人信息)

2. TaskService新增方法:
   - fillSubTaskStats(): 填充流水线任务的子任务统计信息
   - 自动在getMyPublishedTasks和getMyReceivedTasks中调用
   - 统计各状态子任务数量
   - 自动填充处理人信息

3. 同时修复流水线任务主任务状态同步问题:
   - 设计师接单第一个子任务时,主任务状态更新为in_progress
   - 确保需求方能正确看到任务进度

影响范围:
- 需求方查看"我发起的"任务时,可以看到子任务进度
- 设计师查看接收的任务时,可以看到子任务详情
- 为后续前端显示提供数据支持
2026-01-03 11:32:16 +08:00
Your Name
ef7e39cb00 fix: 修复接单部门负责人审核时缺少指派设计师选项的问题
问题:
- 在任务卡片和详情页点击通过审核按钮时
- 接单部门负责人无法选择指派设计师或发布到大厅
- 只能直接通过审核并发布到大厅

原因:
- handleApproveTask函数使用了简化版的审核逻辑
- 没有调用handleApproveTwoLevelTask中的完整功能

修复内容:
- 修改handleApproveTask函数
- 当currentApproverRole === 'receiving_leader'时
- 自动跳转到handleApproveTwoLevelTask函数
- 提供完整的审核选项:
  ✅ 指派部门内的设计师接单
  ✅ 发布到任务大厅抢单
  ✅ 显示设计师当前进行中的任务数量

现在接单部门负责人在任何地方审核任务时,都会看到:
1. 选择发布方式(指派设计师 / 发布到大厅)
2. 如果选择指派,可以看到每个设计师的工作量
3. 审核通过后,任务按选择的方式分配
2026-01-03 11:22:02 +08:00
Your Name
038659bd41 fix: 修复用户管理和任务抢单权限控制
1. 修复设置管理员报错
   - 修正BusinessException构造函数调用

2. 完善抢单权限控制
   - 需求部门成员不能抢单
   - 所有部门负责人不能抢单(包括需求和接单部门)
   - 只有指定接单部门的普通成员可以抢单
   - 验证部门是否允许接该需求类型
   - 抢单成功后发送通知给任务发起人

3. 前端抢单按钮状态控制
   - 添加canGrabTask方法判断抢单权限
   - 可接单:绿色按钮
   - 不可接单:灰色按钮并禁用
   - 鼠标悬停显示不能抢单的原因
   - 支持任务列表和详情页面

4. 优化用户体验
   - 点击不可抢单按钮时提示具体原因
   - 按钮文案动态显示状态
2026-01-03 11:07:42 +08:00
Your Name
93781bb202 fix: 修复用户管理表格布局问题
- 增加操作列宽度从250px到320px(容纳3个按钮)
- 添加表格横向滚动配置(scroll x: 1200)
- 确保固定的操作列不会遮挡其他内容
2026-01-03 10:50:41 +08:00
Your Name
e0a9402efd feat: 添加用户管理员身份设置功能
- 数据库添加is_admin字段和索引
- User实体类添加isAdmin字段
- 后端添加setAdmin API(UserController和UserService)
- 前端用户管理界面添加管理员标识列
- 添加设置/取消管理员按钮及功能
- 用户管理表格显示管理员标识(红色标签)
2026-01-03 10:13:29 +08:00
Your Name
3f57f6d3de fix: 修复通知图标颜色继承问题 2026-01-02 20:26:48 +08:00
Your Name
36fadab2be style: 调整通知图标颜色为浅白色
- 改为rgba(255, 255, 255, 0.75)浅白色,与系统设置图标颜色一致
- 悬停时改为rgba(255, 255, 255, 0.95)更亮的白色
2026-01-02 20:21:49 +08:00
Your Name
9c6f5351fa feat: 恢复任务卡片进度条显示
- 在进行中的任务中保留进度条显示
- 在我发起的任务中添加进度条(进行中和已完成状态显示)
- 在已完成任务中添加进度条(显示100%)
- 移除我发起的任务中冗余的文本进度显示
2026-01-02 20:17:57 +08:00
Your Name
9c27f8c9f4 fix: 替换通知图标为统一的Icon组件样式
- 移除自定义SVG图标,使用Icon组件的bell图标
- 确保通知图标与系统设置、成就、签到等图标风格统一
- 修复类型检查错误
2026-01-02 20:11:27 +08:00
Your Name
6314d2e034 feat: 实现子任务组审核功能
- 修改子任务完成逻辑,解锁后的子任务组设置为pending_group_approval状态
- 添加子任务组审核API(approveTaskGroup, rejectTaskGroup)
- 在待审核Tab中集成子任务组显示,统一管理主任务和子任务组审核
- 子任务组卡片显示子任务组标识
- 审核时支持选择发布到大厅或指定设计师
- 修复通知图标样式,与系统设置图标对齐统一
2026-01-02 20:02:45 +08:00
Your Name
2a7f9f7cd7 feat: 隐藏招募任务和指定任务发布类型,只保留默认模式 2026-01-02 19:54:25 +08:00
Your Name
73e47a3d71 fix: 进行中任务Tab同时显示普通任务和子任务,支持子任务的进度更新和完结操作 2026-01-02 19:42:59 +08:00
Your Name
e86b5a45f3 feat: 接单部门审核时添加指定设计师接单功能,显示设计师工作量 2026-01-02 19:32:53 +08:00
Your Name
b44a7e744f feat: 可接任务Tab同时显示普通任务和子任务,并添加子任务标签 2026-01-02 19:28:21 +08:00
Your Name
94e5986673 修复部门搜索框UI样式重叠问题
将a-input-search改为a-input,避免自带搜索按钮与prefix图标重叠
2026-01-02 18:58:22 +08:00
Your Name
302def1e7c 为部门管理添加搜索功能
1. 添加部门搜索框,支持搜索部门名称、编码和负责人
2. 部门负责人下拉选择已有搜索功能(show-search和filterUserOption)
3. 实时显示搜索结果数量
2026-01-02 18:48:58 +08:00
Your Name
3b9fb61312 修复待审核任务审核API调用和Tab数量显示问题
1. 修复TaskHall.vue中handleApproveTask和handleRejectTask使用错误的API
   - 改为使用两级审核API:approveDemandLevel/approveReceivingLevel
   - 改为使用rejectByDemandLeader/rejectByReceivingLeader

2. 修复Tab标签数量显示为0的问题
   - 新增loadAllTabCounts函数在页面初始化时加载所有Tab数量
   - 在任务操作后刷新Tab数量统计

3. 优化通知图标类型映射
   - 支持大小写不敏感的通知类型匹配
   - 支持task_approval等下划线格式的通知类型
2026-01-02 18:42:00 +08:00
Your Name
e978a7cdb1 修复发布任务失败问题并添加编码自动生成功能
1. 修复task表approval_status字段长度问题(VARCHAR(20)->VARCHAR(50))
2. 为品牌、平台、类目、任务子类型添加自动生成编码功能
3. 优化编码输入体验,添加自动生成按钮
2026-01-02 18:28:41 +08:00
Your Name
6df38c4f89 修复部门设置负责人失败的问题
- 前端:允许选择所有用户作为部门负责人,不限于该部门成员
- 前端:修复leaderId和parentId的类型兼容性问题
- 后端:添加leaderId有效性验证,防止设置不存在的用户
2026-01-02 18:00:20 +08:00
Your Name
e40cf047fa 修复设置部门负责人:前端使用0表示清除负责人(后端会将0转换为null) 2026-01-02 16:40:59 +08:00
Your Name
ffed3d0856 修复设置部门负责人:改进leaderId处理逻辑,支持清除负责人 2026-01-02 16:33:02 +08:00
Your Name
f17415f44e 修复设置部门负责人:允许设置为null或0来清除负责人 2026-01-02 16:27:55 +08:00
Your Name
cfa38c9b36 修复三个问题:1.钉钉登录时保留管理员角色 2.用户管理已支持设置管理员角色 3.网站设置添加注册功能开关 2026-01-02 16:08:44 +08:00
Your Name
9197c06cc3 优化Navbar管理员判断:优先检查roleIds,添加调试日志 2026-01-02 15:58:50 +08:00
Your Name
94a4e79a31 修复UserInfo接口:添加roleIds字段以支持管理员角色判断 2026-01-02 15:53:07 +08:00
Your Name
171f329b15 优化Navbar菜单点击:在menu-item上添加@click.stop防止事件冒泡 2026-01-02 15:46:19 +08:00
Your Name
549ee6ce98 修复Profile.vue样式错误:将-primary-hover替换为-hover 2026-01-02 14:55:44 +08:00
Your Name
8bcdb7af90 修复Profile.vue样式错误:将未定义的-md替换为具体值 2026-01-02 14:52:57 +08:00
Your Name
7bdddffa14 修复Navbar菜单点击事件:增强事件参数处理,添加调试日志 2026-01-02 14:52:20 +08:00
Your Name
5840d8a88e 修复Navbar:优化管理员角色判断逻辑,支持通过roleIds判断管理员 2026-01-02 14:48:28 +08:00
Your Name
c4ebdb4d71 优化Profile.vue用户信息加载逻辑 2026-01-02 14:44:32 +08:00
Your Name
8b599d2226 添加个人中心页面:创建Profile.vue,添加路由,修复Navbar个人信息菜单点击事件 2026-01-02 14:43:50 +08:00
Your Name
f36ec495a2 修复同步部门接口超时设置(使用request实例) 2026-01-02 14:14:54 +08:00
Your Name
9256c0e2da 为同步钉钉部门接口增加超时时间到60秒 2026-01-02 14:11:30 +08:00
Your Name
aa0edbf778 修复syncingDepartments变量未定义的问题 2026-01-02 14:05:27 +08:00
Your Name
9ad09332cb 在系统设置页面添加同步钉钉部门按钮 2026-01-02 13:51:26 +08:00
Your Name
949eecaf37 修复钉钉登录:使用官方logo SVG路径,优化部门匹配逻辑(匹配失败时使用默认部门) 2026-01-02 13:26:14 +08:00
Your Name
7f89ceb66d 优化钉钉logo SVG:使用更清晰的白色圆形图标样式 2026-01-02 13:19:36 +08:00
Your Name
2967af3c8f 修复钉钉logo显示:使用SVG图标替代外部图片链接 2026-01-02 13:17:41 +08:00
Your Name
28d179aba7 完善钉钉登录按钮样式:修正logo显示和按钮样式 2026-01-02 13:12:33 +08:00