master
cody 1 week ago
parent 488bfc2ac2
commit 056c22b752

@ -130,6 +130,9 @@ class CommonExport implements FromCollection, WithStyles, WithColumnWidths, With
$widths[$letter] = 18; $widths[$letter] = 18;
} elseif (str_contains($field, 'partners')) { } elseif (str_contains($field, 'partners')) {
$widths[$letter] = 50; $widths[$letter] = 50;
} elseif (str_contains($field, 'history_courses')) {
// 历史课程信息通常较长,适当放宽列宽
$widths[$letter] = 40;
} elseif (str_contains($field, 'all_course')) { } elseif (str_contains($field, 'all_course')) {
$widths[$letter] = 40; $widths[$letter] = 40;
} elseif (str_contains($field, 'company_name') || str_contains($field, 'address')) { } elseif (str_contains($field, 'company_name') || str_contains($field, 'address')) {
@ -361,6 +364,9 @@ class CommonExport implements FromCollection, WithStyles, WithColumnWidths, With
$temp[$field] = $this->allCourse($info); $temp[$field] = $this->allCourse($info);
} elseif (str_contains($field, 'partners')) { } elseif (str_contains($field, 'partners')) {
$temp[$field] = $this->partners($info); $temp[$field] = $this->partners($info);
} elseif (str_contains($field, 'history_courses')) {
// 历史课程信息字段,格式化为多行文本
$temp[$field] = $this->historyCourses($info);
} else { } else {
$temp[$field] = $this->getDotValue($info, $field); $temp[$field] = $this->getDotValue($info, $field);
} }
@ -495,6 +501,9 @@ class CommonExport implements FromCollection, WithStyles, WithColumnWidths, With
$row[] = $this->allCourse($info); $row[] = $this->allCourse($info);
} elseif (str_contains($field, 'partners')) { } elseif (str_contains($field, 'partners')) {
$row[] = $this->partners($info); $row[] = $this->partners($info);
} elseif (str_contains($field, 'history_courses')) {
// 历史课程信息字段,格式化为多行文本
$row[] = $this->historyCourses($info);
} else { } else {
$row[] = $this->getDotValue($info, $field); $row[] = $this->getDotValue($info, $field);
} }
@ -542,6 +551,47 @@ class CommonExport implements FromCollection, WithStyles, WithColumnWidths, With
return implode("、\r\n", $list); return implode("、\r\n", $list);
} }
/**
* 获取所有历史课程信息(用于日历导出)
* @param $data
* @return string
*/
function historyCourses($data)
{
if (empty($data['history_courses']) || !is_array($data['history_courses'])) {
return '';
}
$list = [];
foreach ($data['history_courses'] as $item) {
$courseName = $item['course_name'] ?? '';
$type = $item['type'] ?? '';
$pass = $item['course_type_signs_pass'] ?? 0;
$passUnique = $item['course_type_signs_pass_unique'] ?? 0;
$signPass = $item['course_signs_pass'] ?? 0;
$start = $item['start_time'] ?? '';
$end = $item['end_time'] ?? '';
// 构造单行描述:课程名称[体系ID](开始~结束) 培养人数/去重/课程人数
$parts = [];
if ($courseName !== '') {
$parts[] = $courseName;
}
if ($type !== '') {
$parts[] = "[类型:{$type}]";
}
if ($start !== '' || $end !== '') {
$parts[] = "({$start}~{$end})";
}
$parts[] = "培养:{$pass}/去重:{$passUnique}/课程:{$signPass}";
$list[] = implode(' ', $parts);
}
// 每门历史课程占一行
return implode("\r\n", $list);
}
/** /**
* 获取所有股东信息 * 获取所有股东信息
* @param $data * @param $data

Loading…
Cancel
Save