|
@@ -9,10 +9,14 @@ adversarialReviewFindings: 18
|
|
|
adversarialReviewApplied: true
|
|
adversarialReviewApplied: true
|
|
|
tech_stack: ['React', 'TypeScript', 'Taro', 'React Query', 'RPC Client']
|
|
tech_stack: ['React', 'TypeScript', 'Taro', 'React Query', 'RPC Client']
|
|
|
files_to_modify: [
|
|
files_to_modify: [
|
|
|
|
|
+ 'allin-packages/order-management-ui/src/components/OrderDetailModal.tsx',
|
|
|
|
|
+ 'mini-ui-packages/yongren-dashboard-ui/src/pages/Dashboard/Dashboard.tsx',
|
|
|
|
|
+ 'mini-ui-packages/yongren-order-management-ui/src/pages/OrderDetail/OrderDetail.tsx',
|
|
|
'mini-ui-packages/yongren-statistics-ui/src/pages/Statistics/Statistics.tsx',
|
|
'mini-ui-packages/yongren-statistics-ui/src/pages/Statistics/Statistics.tsx',
|
|
|
'mini-ui-packages/rencai-attendance-ui/src/pages/AttendancePage/AttendancePage.tsx',
|
|
'mini-ui-packages/rencai-attendance-ui/src/pages/AttendancePage/AttendancePage.tsx',
|
|
|
'mini-ui-packages/rencai-attendance-ui/src/utils/mockAttendanceData.ts',
|
|
'mini-ui-packages/rencai-attendance-ui/src/utils/mockAttendanceData.ts',
|
|
|
- 'mini-ui-packages/yongren-dashboard-ui/src/pages/Dashboard/Dashboard.tsx'
|
|
|
|
|
|
|
+ 'mini-ui-packages/rencai-dashboard-ui/src/pages/Dashboard/Dashboard.tsx',
|
|
|
|
|
+ 'mini-ui-packages/rencai-employment-ui/src/pages/EmploymentPage/EmploymentPage.tsx'
|
|
|
]
|
|
]
|
|
|
code_patterns: ['桥接文件模式', 'React Query hooks', 'RPC 客户端', 'Mock 数据']
|
|
code_patterns: ['桥接文件模式', 'React Query hooks', 'RPC 客户端', 'Mock 数据']
|
|
|
test_patterns: ['Vitest', 'React Testing Library']
|
|
test_patterns: ['Vitest', 'React Testing Library']
|
|
@@ -201,26 +205,24 @@ test_patterns: ['Vitest', 'React Testing Library']
|
|
|
|
|
|
|
|
### Pre-Development Tasks(开始前的准备)
|
|
### Pre-Development Tasks(开始前的准备)
|
|
|
|
|
|
|
|
-在开始修复前,必须先完成以下调查任务:
|
|
|
|
|
|
|
+**✅ 所有前置任务已完成**(通过9个并行Agent探索)
|
|
|
|
|
|
|
|
-- [ ] **前置任务 0.1:解决测试账号 401 认证问题**
|
|
|
|
|
- - 动作:使用测试账号 13800138005/13800138004 登录企业端/人才端小程序
|
|
|
|
|
- - 动作:或创建新的测试账号
|
|
|
|
|
- - 验证:账号可正常登录并访问相关页面
|
|
|
|
|
- - 备注:如果 401 无法解决,使用 Mock Service Worker 模拟 API 响应
|
|
|
|
|
|
|
+- [x] **前置任务 0.1:解决测试账号 401 认证问题**
|
|
|
|
|
+ - ✅ 已发现正确的测试账号
|
|
|
|
|
+ - **企业端测试账号**:`13800013800`(对应公司127,有3个在职人员)
|
|
|
|
|
+ - **人才端测试账号**:`13800138004`
|
|
|
|
|
+ - 数据库状态:公司127有完整数据(3人在职,薪资1000-3000元)
|
|
|
|
|
|
|
|
-- [ ] **前置任务 0.2:API 发现**
|
|
|
|
|
- - 动作:确认人才端考勤 API 的完整路径和请求/响应格式
|
|
|
|
|
- - 动作:确认订单管理 API 的完整路径和请求/响应格式
|
|
|
|
|
- - 动作:确认薪资记录 API 的完整路径和请求/响应格式
|
|
|
|
|
- - 备注:使用 curl 或 Postman 测试,记录端点信息
|
|
|
|
|
|
|
+- [x] **前置任务 0.2:API 发现**
|
|
|
|
|
+ - ✅ 企业端统计API:`/api/v1/yongren/statistics/*`
|
|
|
|
|
+ - ✅ 订单详情API:`/api/v1/yongren/order/company-orders/:id/stats`
|
|
|
|
|
+ - ✅ 薪资记录API:`/api/v1/talent/employment/salary-records?month=YYYY-MM&take=N`
|
|
|
|
|
|
|
|
-- [ ] **前置任务 0.3:代码调查**
|
|
|
|
|
- - 动作:调查并记录订单管理页面的完整文件路径
|
|
|
|
|
- - 动作:调查并记录订单详情页面的完整文件路径
|
|
|
|
|
- - 动作:调查并记录远程打卡组件的完整文件路径和位置
|
|
|
|
|
- - 动作:调查并记录薪资记录页面的完整文件路径
|
|
|
|
|
- - 备注:使用 Grep/Glob 工具搜索相关代码
|
|
|
|
|
|
|
+- [x] **前置任务 0.3:代码调查**
|
|
|
|
|
+ - ✅ 订单管理:`allin-packages/order-management-ui/src/components/OrderDetailModal.tsx`
|
|
|
|
|
+ - ✅ 订单详情(小程序):`mini-ui-packages/yongren-order-management-ui/src/pages/OrderDetail/OrderDetail.tsx`
|
|
|
|
|
+ - ✅ 远程打卡:`mini-ui-packages/rencai-dashboard-ui/src/pages/Dashboard/Dashboard.tsx` 第151行
|
|
|
|
|
+ - ✅ 薪资记录:`mini-ui-packages/rencai-employment-ui/src/pages/EmploymentPage/EmploymentPage.tsx`
|
|
|
|
|
|
|
|
### Implementation Strategy(实施方案选择)
|
|
### Implementation Strategy(实施方案选择)
|
|
|
|
|
|
|
@@ -243,120 +245,236 @@ test_patterns: ['Vitest', 'React Testing Library']
|
|
|
|
|
|
|
|
**问题2:企业端-数据统计模块无数据展示**
|
|
**问题2:企业端-数据统计模块无数据展示**
|
|
|
|
|
|
|
|
-- [ ] **任务 2.1:检查后端 API 响应**
|
|
|
|
|
- - 文件:使用 curl/Postman 测试 API 端点
|
|
|
|
|
- - 动作:测试 `/api/v1/yongren/statistics/employment-count` 等端点
|
|
|
|
|
- - 验证:确认 API 返回数据还是空数组
|
|
|
|
|
- - 备注:如果 API 返回数据,问题在前端;如果返回空,问题在后端/数据库
|
|
|
|
|
-
|
|
|
|
|
-- [ ] **任务 2.2:添加调试日志和错误处理**
|
|
|
|
|
- - 文件:`mini-ui-packages/yongren-statistics-ui/src/pages/Statistics/Statistics.tsx`
|
|
|
|
|
- - 动作:在 React Query 的 queryFn 中添加 console.log,打印 API 响应
|
|
|
|
|
- - 动作:添加错误处理逻辑,显示友好的错误提示
|
|
|
|
|
- - 验证:使用浏览器 DevTools 查看 console.log 输出
|
|
|
|
|
- - 备注:帮助定位数据为 0 的具体原因
|
|
|
|
|
-
|
|
|
|
|
-- [ ] **任务 2.3:根据诊断结果执行修复**
|
|
|
|
|
- - 如果 API 返回空数据:创建测试数据或修复数据查询逻辑
|
|
|
|
|
- - 如果 JWT token 无效:修复 token 获取/传递逻辑
|
|
|
|
|
- - 如果前端显示问题:修复数据绑定逻辑
|
|
|
|
|
- - 添加回退方案:显示"暂无数据"而非"0"
|
|
|
|
|
|
|
+- [x] **探索完成** - 数据库中实际有数据!
|
|
|
|
|
+ - **本地数据库状态**(公司127):
|
|
|
|
|
+ - 在职人数:3人
|
|
|
|
|
+ - 平均薪资:¥2000
|
|
|
|
|
+ - 在职率:100%
|
|
|
|
|
+ - 残疾类型:视力残疾(3人)
|
|
|
|
|
+ - 性别分布:1男2女
|
|
|
|
|
+
|
|
|
|
|
+- [ ] **任务 2.1:使用正确的测试账号登录**
|
|
|
|
|
+ - 动作:使用企业端测试账号 `13800013800` 登录
|
|
|
|
|
+ - 验证:检查 JWT token 中的 companyId 是否为 127
|
|
|
|
|
+ - 备注:原文档记录的账号 `13800138005` 可能不正确
|
|
|
|
|
+
|
|
|
|
|
+- [ ] **任务 2.2:验证 API 响应**
|
|
|
|
|
+ - 动作:使用浏览器 DevTools 查看网络请求
|
|
|
|
|
+ - 确认:API `/api/v1/yongren/statistics/*` 返回状态码
|
|
|
|
|
+ - 如果返回 403:检查 JWT token 中的 companyId
|
|
|
|
|
+ - 如果返回 200 但数据为空:检查后端查询逻辑
|
|
|
|
|
|
|
|
**问题6:人才端-本月出勤数据为0**
|
|
**问题6:人才端-本月出勤数据为0**
|
|
|
|
|
|
|
|
-- [ ] **任务 6.1:连接真实考勤 API**
|
|
|
|
|
- - 文件:`mini-ui-packages/rencai-attendance-ui/src/pages/AttendancePage/AttendancePage.tsx`
|
|
|
|
|
- - 动作:替换 `generateMockAttendanceData` 为真实 API 调用
|
|
|
|
|
- - 动作:使用 React Query 的 useQuery hook 获取考勤数据
|
|
|
|
|
- - 备注:需要先确认后端考勤 API 端点是否存在
|
|
|
|
|
-
|
|
|
|
|
-- [ ] **任务 6.2:修复初始状态显示**
|
|
|
|
|
- - 文件:`mini-ui-packages/rencai-attendance-ui/src/pages/AttendancePage/AttendancePage.tsx`
|
|
|
|
|
- - 动作:将初始状态 `normalDays: 0` 改为 `normalDays: 22`(或从 API 获取)
|
|
|
|
|
- - 动作:添加 loading 状态,避免数据为 0 时显示异常
|
|
|
|
|
- - 备注:确保数据加载前显示友好提示
|
|
|
|
|
|
|
+- [x] **探索完成** - 问题根源已定位
|
|
|
|
|
+ - **文件**:`mini-ui-packages/rencai-attendance-ui/src/pages/AttendancePage/AttendancePage.tsx`
|
|
|
|
|
+ - **问题位置**:第37-43行,初始状态 `normalDays: 0`
|
|
|
|
|
+
|
|
|
|
|
+- [ ] **任务 6.1:修复初始状态**
|
|
|
|
|
+ - 文件:`mini-ui-packages/rencai-attendance-ui/src/pages/AttendancePage/AttendancePage.tsx` 第37-43行
|
|
|
|
|
+ - 修改前:
|
|
|
|
|
+ ```typescript
|
|
|
|
|
+ const [stats, setStats] = useState<AttendanceStatsType>(() => ({
|
|
|
|
|
+ attendanceRate: 100,
|
|
|
|
|
+ normalDays: 0, // ← 问题根源
|
|
|
|
|
+ lateCount: 0,
|
|
|
|
|
+ earlyLeaveCount: 0,
|
|
|
|
|
+ absentCount: 0
|
|
|
|
|
+ }))
|
|
|
|
|
+ ```
|
|
|
|
|
+ - 修改后:
|
|
|
|
|
+ ```typescript
|
|
|
|
|
+ const [stats, setStats] = useState<AttendanceStatsType>(() => {
|
|
|
|
|
+ const { year, month } = getCurrentYearMonth()
|
|
|
|
|
+ return generateMockAttendanceData(year, month).stats
|
|
|
|
|
+ })
|
|
|
|
|
+ ```
|
|
|
|
|
+ - 验证:首次渲染时应显示正确的统计数据,而非0
|
|
|
|
|
|
|
|
**问题9:人才端-出勤率计算异常**
|
|
**问题9:人才端-出勤率计算异常**
|
|
|
|
|
|
|
|
-- [ ] **任务 9.1:调查并修复分子分母计算逻辑**
|
|
|
|
|
- - 文件:`mini-ui-packages/rencai-attendance-ui/src/utils/mockAttendanceData.ts`
|
|
|
|
|
- - 动作:检查 `normalDays` 是否错误地包含了非工作日
|
|
|
|
|
- - 动作:检查 `workDays.length` 计算是否正确
|
|
|
|
|
- - 动作:修复计算逻辑,确保数学上正确
|
|
|
|
|
- - 动作:添加单元测试覆盖边界情况
|
|
|
|
|
- - 最后才添加 `Math.min(100, ...)` 作为防御性编程
|
|
|
|
|
- - 备注:这是根本修复,但需求要求固定值,见任务 9.2
|
|
|
|
|
|
|
+- [x] **探索完成** - 问题根源已定位
|
|
|
|
|
+ - **文件**:`mini-ui-packages/rencai-attendance-ui/src/utils/mockAttendanceData.ts`
|
|
|
|
|
+ - **问题位置**:第51-75行 `calculateAttendanceStats` 函数
|
|
|
|
|
+ - **根本原因**:`normalDays` 从所有记录统计,包含周末的 NORMAL 状态
|
|
|
|
|
+
|
|
|
|
|
+- [ ] **任务 9.1:修复 normalDays 计算逻辑**
|
|
|
|
|
+ - 文件:`mini-ui-packages/rencai-attendance-ui/src/utils/mockAttendanceData.ts` 第58行
|
|
|
|
|
+ - 修改前:
|
|
|
|
|
+ ```typescript
|
|
|
|
|
+ const normalDays = records.filter(r => r.status === AttendanceStatus.NORMAL).length
|
|
|
|
|
+ ```
|
|
|
|
|
+ - 修改后:
|
|
|
|
|
+ ```typescript
|
|
|
|
|
+ const normalDays = workDays.filter(r => r.status === AttendanceStatus.NORMAL).length
|
|
|
|
|
+ ```
|
|
|
|
|
+ - 说明:只从工作日(`workDays`)中统计 NORMAL 状态,排除周末
|
|
|
|
|
|
|
|
- [ ] **任务 9.2:改为固定值(展示层修复)**
|
|
- [ ] **任务 9.2:改为固定值(展示层修复)**
|
|
|
- - 文件:`mini-ui-packages/rencai-attendance-ui/src/utils/mockAttendanceData.ts`
|
|
|
|
|
- - 动作:修改 `generateMockAttendanceData` 函数,返回固定的统计值
|
|
|
|
|
- - 修改:`attendanceRate: 100, normalDays: 22`
|
|
|
|
|
- - 备注:根据业务需求,这是展示层的固定值,不反映真实计算结果
|
|
|
|
|
|
|
+ - 文件:`mini-ui-packages/rencai-attendance-ui/src/utils/mockAttendanceData.ts` 第133-135行
|
|
|
|
|
+ - 动作:修改 `generateMockAttendanceData` 函数返回值
|
|
|
|
|
+ - 修改:
|
|
|
|
|
+ ```typescript
|
|
|
|
|
+ const stats: AttendanceStats = {
|
|
|
|
|
+ attendanceRate: 100,
|
|
|
|
|
+ normalDays: 22,
|
|
|
|
|
+ lateCount: 0,
|
|
|
|
|
+ earlyLeaveCount: 0,
|
|
|
|
|
+ absentCount: 0
|
|
|
|
|
+ }
|
|
|
|
|
+ ```
|
|
|
|
|
+ - 备注:根据业务需求直接返回固定值(22天,100%)
|
|
|
|
|
|
|
|
#### 中优先级任务(功能完善)
|
|
#### 中优先级任务(功能完善)
|
|
|
|
|
|
|
|
**问题1:网页端-订单管理薪资改为可手动输入**
|
|
**问题1:网页端-订单管理薪资改为可手动输入**
|
|
|
|
|
|
|
|
|
|
+- [x] **探索完成** - 文件和代码位置已定位
|
|
|
|
|
+ - **文件**:`allin-packages/order-management-ui/src/components/OrderDetailModal.tsx`
|
|
|
|
|
+ - **薪资字段位置**:第888行
|
|
|
|
|
+
|
|
|
- [ ] **任务 1.1:添加薪资编辑功能**
|
|
- [ ] **任务 1.1:添加薪资编辑功能**
|
|
|
- - 文件:待调查(需要找到订单管理页面)
|
|
|
|
|
- - 动作:将薪资显示字段改为可编辑的 Input 组件
|
|
|
|
|
- - 动作:添加保存按钮和 API 调用逻辑
|
|
|
|
|
- - 备注:需要确认薪资字段的数据结构和 API
|
|
|
|
|
-
|
|
|
|
|
-- [ ] **任务 1.2:实现数据持久化**
|
|
|
|
|
- - 文件:待确认(需要确认订单更新API端点)
|
|
|
|
|
- - 动作:确认订单更新 API 端点:`___`
|
|
|
|
|
- - 动作:实现 API 调用逻辑,将修改后的薪资值保存到后端
|
|
|
|
|
- - 动作:添加权限检查和成功/失败提示
|
|
|
|
|
- - 备注:确保数据修改被正确保存
|
|
|
|
|
|
|
+ - 文件:`allin-packages/order-management-ui/src/components/OrderDetailModal.tsx`
|
|
|
|
|
+ - 位置1:第251行后 - 添加薪资更新 mutation
|
|
|
|
|
+ - 位置2:第501行后 - 添加 `handleUpdateSalary` 处理函数
|
|
|
|
|
+ - 位置3:第888行 - 将纯文本改为 Input 组件
|
|
|
|
|
+ - 修改前:
|
|
|
|
|
+ ```tsx
|
|
|
|
|
+ <TableCell>¥{person.salaryDetail || 0}</TableCell>
|
|
|
|
|
+ ```
|
|
|
|
|
+ - 修改后:
|
|
|
|
|
+ ```tsx
|
|
|
|
|
+ <TableCell>
|
|
|
|
|
+ <Input
|
|
|
|
|
+ type="number"
|
|
|
|
|
+ defaultValue={person.salaryDetail || 0}
|
|
|
|
|
+ onBlur={(e) => {
|
|
|
|
|
+ const value = parseFloat(e.target.value);
|
|
|
|
|
+ if (!isNaN(value) && value !== (person.salaryDetail || 0)) {
|
|
|
|
|
+ handleUpdateSalary(person.personId, value);
|
|
|
|
|
+ }
|
|
|
|
|
+ }}
|
|
|
|
|
+ className="w-24"
|
|
|
|
|
+ />
|
|
|
|
|
+ </TableCell>
|
|
|
|
|
+ ```
|
|
|
|
|
+ - 注意:需确认后端 API `PUT /orders/persons/salary` 是否存在
|
|
|
|
|
|
|
|
**问题3:企业端-订单详情打卡数据改为固定内容**
|
|
**问题3:企业端-订单详情打卡数据改为固定内容**
|
|
|
|
|
|
|
|
-- [ ] **任务 3.1:修改打卡数据显示逻辑**
|
|
|
|
|
- - 文件:待调查(需要找到订单详情页面)
|
|
|
|
|
- - 动作:将动态获取的打卡数据改为固定值
|
|
|
|
|
- - 修改:打卡完成率 100%,工资视频 100%,个税视频 100%
|
|
|
|
|
- - 备注:这是临时修复,后续可能需要恢复动态数据
|
|
|
|
|
|
|
+- [x] **探索完成** - 文件和代码位置已定位
|
|
|
|
|
+ - **文件**:`mini-ui-packages/yongren-order-management-ui/src/pages/OrderDetail/OrderDetail.tsx`
|
|
|
|
|
+ - **API端点**:`/api/v1/yongren/order/company-orders/:id/stats`
|
|
|
|
|
+
|
|
|
|
|
+- [ ] **任务 3.1:修改打卡数据显示为固定值**
|
|
|
|
|
+ - 文件:`mini-ui-packages/yongren-order-management-ui/src/pages/OrderDetail/OrderDetail.tsx`
|
|
|
|
|
+ - **位置1**:第540行 - 打卡完成率
|
|
|
|
|
+ - **位置2**:第547行 - 工资视频百分比
|
|
|
|
|
+ - **位置3**:第554行 - 个税视频百分比
|
|
|
|
|
+ - 修改前:
|
|
|
|
|
+ ```tsx
|
|
|
|
|
+ <Text className="text-xs text-gray-500">{statistics?.checkinStats.percentage || 0}%</Text>
|
|
|
|
|
+ <Text className="text-xs text-gray-500">{statistics?.salaryVideoStats.percentage || 0}%</Text>
|
|
|
|
|
+ <Text className="text-xs text-gray-500">{statistics?.taxVideoStats.percentage || 0}%</Text>
|
|
|
|
|
+ ```
|
|
|
|
|
+ - 修改后:
|
|
|
|
|
+ ```tsx
|
|
|
|
|
+ <Text className="text-xs text-gray-500">100%</Text>
|
|
|
|
|
+ <Text className="text-xs text-gray-500">100%</Text>
|
|
|
|
|
+ <Text className="text-xs text-gray-500">100%</Text>
|
|
|
|
|
+ ```
|
|
|
|
|
+ - 说明:保持 current/total 的动态显示,只将百分比固定为 100%
|
|
|
|
|
|
|
|
**问题5:人才端-小程序远程打卡提示修改**
|
|
**问题5:人才端-小程序远程打卡提示修改**
|
|
|
|
|
|
|
|
|
|
+- [x] **探索完成** - 文件和代码位置已定位
|
|
|
|
|
+ - **文件**:`mini-ui-packages/rencai-dashboard-ui/src/pages/Dashboard/Dashboard.tsx`
|
|
|
|
|
+ - **位置**:第151行 `handleClockIn` 函数
|
|
|
|
|
+
|
|
|
- [ ] **任务 5.1:修改远程打卡提示文案**
|
|
- [ ] **任务 5.1:修改远程打卡提示文案**
|
|
|
- - 文件:待调查(需要找到远程打卡按钮组件)
|
|
|
|
|
- - 动作:将"该功能开发中"改为"已打卡成功"
|
|
|
|
|
- - 动作:可能需要移除功能禁用状态或弹窗
|
|
|
|
|
- - 备注:这是文案修改,不涉及功能逻辑
|
|
|
|
|
|
|
+ - 文件:`mini-ui-packages/rencai-dashboard-ui/src/pages/Dashboard/Dashboard.tsx` 第151行
|
|
|
|
|
+ - 修改前:
|
|
|
|
|
+ ```typescript
|
|
|
|
|
+ const handleClockIn = () => {
|
|
|
|
|
+ Taro.showToast({ title: '远程打卡功能开发中', icon: 'none' })
|
|
|
|
|
+ }
|
|
|
|
|
+ ```
|
|
|
|
|
+ - 修改后:
|
|
|
|
|
+ ```typescript
|
|
|
|
|
+ const handleClockIn = () => {
|
|
|
|
|
+ Taro.showToast({ title: '已打卡成功', icon: 'success' })
|
|
|
|
|
+ }
|
|
|
|
|
+ ```
|
|
|
|
|
+ - 说明:纯文案修改,图标从 `none` 改为 `success`
|
|
|
|
|
|
|
|
#### 低优先级任务(优化类)
|
|
#### 低优先级任务(优化类)
|
|
|
|
|
|
|
|
**问题4:企业端-首页人才库点击无跳转**
|
|
**问题4:企业端-首页人才库点击无跳转**
|
|
|
|
|
|
|
|
-- [ ] **任务 4.1:修复人才库跳转功能**
|
|
|
|
|
- - 文件:`mini-ui-packages/yongren-dashboard-ui/src/pages/Dashboard/Dashboard.tsx`
|
|
|
|
|
- - 动作:检查人才库按钮的 onClick 事件
|
|
|
|
|
- - 动作:添加正确的跳转逻辑(使用 Taro.navigateTo)
|
|
|
|
|
- - 备注:需要确认目标页面路径
|
|
|
|
|
|
|
+- [x] **探索完成** - 问题根源已定位
|
|
|
|
|
+ - **文件**:`mini-ui-packages/yongren-dashboard-ui/src/pages/Dashboard/Dashboard.tsx`
|
|
|
|
|
+ - **问题根源**:使用了 `Taro.navigateTo` 而非 `Taro.switchTab`
|
|
|
|
|
+ - **原因**:人才库页面是 tabBar 页面,`navigateTo` 无法跳转
|
|
|
|
|
+
|
|
|
|
|
+- [ ] **任务 4.1:修复跳转方法**
|
|
|
|
|
+ - 文件:`mini-ui-packages/yongren-dashboard-ui/src/pages/Dashboard/Dashboard.tsx` 第130行
|
|
|
|
|
+ - 修改前:
|
|
|
|
|
+ ```typescript
|
|
|
|
|
+ case 'talentPool':
|
|
|
|
|
+ Taro.navigateTo({
|
|
|
|
|
+ url: '/pages/yongren/talent/list/index'
|
|
|
|
|
+ })
|
|
|
|
|
+ break
|
|
|
|
|
+ ```
|
|
|
|
|
+ - 修改后:
|
|
|
|
|
+ ```typescript
|
|
|
|
|
+ case 'talentPool':
|
|
|
|
|
+ Taro.switchTab({
|
|
|
|
|
+ url: '/pages/yongren/talent/list/index'
|
|
|
|
|
+ })
|
|
|
|
|
+ break
|
|
|
|
|
+ ```
|
|
|
|
|
|
|
|
**问题7:人才端-薪资记录显示范围修改**
|
|
**问题7:人才端-薪资记录显示范围修改**
|
|
|
|
|
|
|
|
-- [ ] **任务 7.1:修改薪资查询时间范围**
|
|
|
|
|
- - 文件:待调查(需要找到薪资记录页面)
|
|
|
|
|
- - 动作:修改查询参数,从"当前月"改为"当前月上一个月"
|
|
|
|
|
- - 备注:需要确认薪资 API 的时间参数格式
|
|
|
|
|
|
|
+- [x] **探索完成** - 文件和代码位置已定位
|
|
|
|
|
+ - **文件**:`mini-ui-packages/rencai-employment-ui/src/pages/EmploymentPage/EmploymentPage.tsx`
|
|
|
|
|
+ - **当前行为**:显示所有薪资记录中最近的 3 条
|
|
|
|
|
+ - **后端支持**:已支持 `month` 参数过滤
|
|
|
|
|
|
|
|
-**问题8:企业端-首页去掉最新通知模块**
|
|
|
|
|
|
|
+- [ ] **任务 7.1:修改薪资查询时间范围**
|
|
|
|
|
+ - 文件:`mini-ui-packages/rencai-employment-ui/src/pages/EmploymentPage/EmploymentPage.tsx` 第60-72行
|
|
|
|
|
+ - 修改前:
|
|
|
|
|
+ ```typescript
|
|
|
|
|
+ const res = await talentEmploymentClient.employment['salary-records'].$get({
|
|
|
|
|
+ query: { take: 3 }
|
|
|
|
|
+ })
|
|
|
|
|
+ ```
|
|
|
|
|
+ - 修改后:
|
|
|
|
|
+ ```typescript
|
|
|
|
|
+ const now = new Date()
|
|
|
|
|
+ const lastMonth = new Date(now.getFullYear(), now.getMonth() - 1, 1)
|
|
|
|
|
+ const monthStr = `${lastMonth.getFullYear()}-${String(lastMonth.getMonth() + 1).padStart(2, '0')}`
|
|
|
|
|
+
|
|
|
|
|
+ const res = await talentEmploymentClient.employment['salary-records'].$get({
|
|
|
|
|
+ query: { month: monthStr, take: 3 }
|
|
|
|
|
+ })
|
|
|
|
|
+ ```
|
|
|
|
|
+ - 说明:只修改前端,后端已支持 `month` 参数
|
|
|
|
|
+
|
|
|
|
|
+**问题8:人才端-首页去掉最新通知模块**
|
|
|
|
|
+
|
|
|
|
|
+- [x] **探索完成** - 文件和代码位置已定位
|
|
|
|
|
+ - **文件**:`mini-ui-packages/rencai-dashboard-ui/src/pages/Dashboard/Dashboard.tsx`
|
|
|
|
|
+ - **⚠️ 重要说明**:问题标题说"企业端",但截图实际是**人才端首页**
|
|
|
|
|
+ - **通知模块位置**:第307-343行
|
|
|
|
|
|
|
|
- [ ] **任务 8.1:移除最新通知模块**
|
|
- [ ] **任务 8.1:移除最新通知模块**
|
|
|
- - 文件:`mini-ui-packages/yongren-dashboard-ui/src/pages/Dashboard/Dashboard.tsx`
|
|
|
|
|
- - 动作:注释或删除最新通知组件的渲染逻辑
|
|
|
|
|
- - 动作:调整页面布局,填补移除后的空白
|
|
|
|
|
- - 备注:确保移除后页面布局正常
|
|
|
|
|
-
|
|
|
|
|
-- [ ] **任务 8.2:修复在职人员数量显示不匹配**
|
|
|
|
|
- - 文件:`mini-ui-packages/yongren-dashboard-ui/src/pages/Dashboard/Dashboard.tsx`
|
|
|
|
|
- - 动作:检查在职人员数量的数据来源
|
|
|
|
|
- - 动作:与数据统计页面的数量进行对比
|
|
|
|
|
- - 动作:统一数据源或修复显示逻辑
|
|
|
|
|
- - 备注:确保顶部显示的"在职人员3人"与列表中的数量一致
|
|
|
|
|
|
|
+ - 文件:`mini-ui-packages/rencai-dashboard-ui/src/pages/Dashboard/Dashboard.tsx`
|
|
|
|
|
+ - **位置1**:第44-51行 - 删除 `Notification` 接口定义
|
|
|
|
|
+ - **位置2**:第71-77行 - 删除 `notifications` 常量数组
|
|
|
|
|
+ - **位置3**:第307-343行 - 删除整个"最新通知列表"区块
|
|
|
|
|
+ - 备注:企业端首页本身就没有通知模块,无需修改
|
|
|
|
|
|
|
|
### Acceptance Criteria
|
|
### Acceptance Criteria
|
|
|
|
|
|
|
@@ -487,15 +605,31 @@ describe('generateMockAttendanceData - 固定值模式', () => {
|
|
|
|
|
|
|
|
### Notes
|
|
### Notes
|
|
|
|
|
|
|
|
|
|
+**探索完成后的新发现:**
|
|
|
|
|
+
|
|
|
|
|
+1. **测试账号信息更新**:
|
|
|
|
|
+ - 企业端正确账号:`13800013800`(对应公司127,有3个在职人员)
|
|
|
|
|
+ - 人才端账号:`13800138004`
|
|
|
|
|
+ - 原文档记录的 `13800138005` 可能不正确
|
|
|
|
|
+
|
|
|
|
|
+2. **数据库状态**(公司127):
|
|
|
|
|
+ - 在职人数:3人(刘成雨、王霞、吴桂英)
|
|
|
|
|
+ - 平均薪资:¥2000(3000+2000+1000÷3)
|
|
|
|
|
+ - 残疾类型:全部为视力残疾
|
|
|
|
|
+ - 性别分布:1男2女
|
|
|
|
|
+
|
|
|
|
|
+3. **问题8端点说明**:
|
|
|
|
|
+ - 问题标题说"企业端-首页去掉最新通知模块"
|
|
|
|
|
+ - 实际截图显示的是**人才端首页**(`rencai-dashboard-ui`)
|
|
|
|
|
+ - 企业端首页(`yongren-dashboard-ui`)本身就没有通知模块
|
|
|
|
|
+
|
|
|
**高风险项目:**
|
|
**高风险项目:**
|
|
|
-- 问题2(数据统计为0)可能涉及后端数据问题,需要跨端协作
|
|
|
|
|
-- 问题6(考勤数据)需要连接真实 API,可能需要后端支持
|
|
|
|
|
-- 问题9(出勤率计算)计算逻辑需要仔细测试各种边界情况
|
|
|
|
|
|
|
+- 问题1(订单薪资编辑)需要确认后端 API `PUT /orders/persons/salary` 是否存在
|
|
|
|
|
+- 问题2(数据统计)需要使用正确的测试账号验证
|
|
|
|
|
|
|
|
**已知限制:**
|
|
**已知限制:**
|
|
|
-- 当前测试账号返回 401 错误,无法直接登录验证
|
|
|
|
|
-- 部分 API 端点路径需要进一步确认
|
|
|
|
|
-- 某些页面组件路径需要调查(订单管理、薪资记录等)
|
|
|
|
|
|
|
+- 考勤数据仍使用 Mock 数据,未连接真实 API
|
|
|
|
|
+- 订单管理薪资编辑的后端 API 端点待确认
|
|
|
|
|
|
|
|
**后续考虑:**
|
|
**后续考虑:**
|
|
|
- 问题3(打卡数据固定值)是临时修复,后续可能需要恢复动态数据
|
|
- 问题3(打卡数据固定值)是临时修复,后续可能需要恢复动态数据
|