diff --git a/src/views/modules/inspection/com_inspectionScheduleView.vue b/src/views/modules/inspection/com_inspectionScheduleView.vue index 9eb7f58..5257d28 100644 --- a/src/views/modules/inspection/com_inspectionScheduleView.vue +++ b/src/views/modules/inspection/com_inspectionScheduleView.vue @@ -17,6 +17,7 @@ border size="mini" highlight-current-row + ref="qcTable" @current-change="handleQcSelect" @row-click="handleQcSelect" style="width: 100%;" @@ -225,6 +226,18 @@ export default { region: '' // 区域暂时为空 })) console.log('加载QC人员列表成功:', this.qcList) + + // 自动选中第一个QC人员并加载其排程数据 + if (this.qcList.length > 0 && !this.selectedQc) { + this.$nextTick(() => { + this.selectedQc = this.qcList[0] + this.loadScheduleData(this.qcList[0]) + // 在表格中设置当前行 + if (this.$refs.qcTable) { + this.$refs.qcTable.setCurrentRow(this.qcList[0]) + } + }) + } } else { this.qcList = [] console.warn('加载QC人员列表失败:', data.msg) @@ -332,25 +345,42 @@ export default { this.loading = true // 调用后端接口获取该QC未来10天的排程数据 - getScheduleView(qc.qcName || qc.userName).then(({ data }) => { + // 注意:必须使用userName(用户名),而不是qcName(显示名称) + getScheduleView(qc.userName).then(({ data }) => { if (data.code === 0 && data.list) { // 生成未来10天的日期结构 const days = this.generateNextDays(10) - // 将后端返回的数据按日期分组 + // 将后端返回的数据按日期分组(支持跨天排程) const tasksByDate = {} data.list.forEach(task => { - const dateStr = this.formatDate(new Date(task.planStartDate)) - if (!tasksByDate[dateStr]) { - tasksByDate[dateStr] = [] + // 计算从planStartDate到planEndDate之间的所有日期 + const startDate = new Date(task.planStartDate) + const endDate = new Date(task.planEndDate || task.planStartDate) + + // 遍历日期范围内的每一天 + let currentDate = new Date(startDate) + while (currentDate <= endDate) { + const dateStr = this.formatDate(currentDate) + if (!tasksByDate[dateStr]) { + tasksByDate[dateStr] = [] + } + + // 避免同一天重复添加同一个任务 + const exists = tasksByDate[dateStr].some(t => t.requestNo === task.requestNo) + if (!exists) { + tasksByDate[dateStr].push({ + requestNo: task.requestNo, + supplierName: task.supplierName, + inspectAddress: task.inspectAddress, + planStartDate: task.planStartDate, + planEndDate: task.planEndDate + }) + } + + // 移动到下一天 + currentDate.setDate(currentDate.getDate() + 1) } - tasksByDate[dateStr].push({ - requestNo: task.requestNo, - supplierName: task.supplierName, - inspectAddress: task.inspectAddress, - planStartDate: task.planStartDate, - planEndDate: task.planEndDate - }) }) // 将任务分配到对应的日期卡片中 diff --git a/src/views/modules/inspection/myTodoList.vue b/src/views/modules/inspection/myTodoList.vue index 6edcf39..a3df091 100644 --- a/src/views/modules/inspection/myTodoList.vue +++ b/src/views/modules/inspection/myTodoList.vue @@ -80,20 +80,36 @@ export default { // 生成未来10天的日期结构 const days = this.generateNextDays(10) - // 将后端返回的数据按日期分组 + // 将后端返回的数据按日期分组(支持跨天排程) const tasksByDate = {} data.list.forEach(task => { - const dateStr = this.formatDate(new Date(task.planStartDate)) - if (!tasksByDate[dateStr]) { - tasksByDate[dateStr] = [] + // 计算从planStartDate到planEndDate之间的所有日期 + const startDate = new Date(task.planStartDate) + const endDate = new Date(task.planEndDate || task.planStartDate) + + // 遍历日期范围内的每一天 + let currentDate = new Date(startDate) + while (currentDate <= endDate) { + const dateStr = this.formatDate(currentDate) + if (!tasksByDate[dateStr]) { + tasksByDate[dateStr] = [] + } + + // 避免同一天重复添加同一个任务 + const exists = tasksByDate[dateStr].some(t => t.requestNo === task.requestNo) + if (!exists) { + tasksByDate[dateStr].push({ + requestNo: task.requestNo, + supplierName: task.supplierName, + inspectAddress: task.inspectAddress, + planStartDate: task.planStartDate, + planEndDate: task.planEndDate + }) + } + + // 移动到下一天 + currentDate.setDate(currentDate.getDate() + 1) } - tasksByDate[dateStr].push({ - requestNo: task.requestNo, - supplierName: task.supplierName, - inspectAddress: task.inspectAddress, - planStartDate: task.planStartDate, - planEndDate: task.planEndDate - }) }) // 将任务分配到对应的日期卡片中