|
|
@@ -55,7 +55,10 @@
|
|
|
"
|
|
|
@click.stop="openDialogEdit(course)"
|
|
|
>
|
|
|
- {{ course.classdetail }} 老师:({{ course.teacher_name }}) 教室:{{ course.classroom }}
|
|
|
+ <div>{{ course.classdetail }} 老师:({{ course.teacher_name }}) 教室:{{ course.classroom }}</div>
|
|
|
+ <div v-if="formatCourseDisplayTime(course)" class="course-cell-time">
|
|
|
+ 时间:{{ formatCourseDisplayTime(course) }}
|
|
|
+ </div>
|
|
|
<el-link
|
|
|
v-if="!isEmbedded"
|
|
|
type="danger"
|
|
|
@@ -183,6 +186,23 @@ function getStartTime(time: number): string {
|
|
|
return timeMap[time] ?? '09:00:00';
|
|
|
}
|
|
|
|
|
|
+/** 展示用:接口可能返回带时间的日期字符串,统一为 YYYY-MM-DD */
|
|
|
+function formatClassDateForDisplay(raw: unknown): string {
|
|
|
+ if (raw == null || String(raw).trim() === '') return '';
|
|
|
+ const s = String(raw).trim();
|
|
|
+ const d = dayjs(s);
|
|
|
+ if (d.isValid()) return d.format('YYYY-MM-DD');
|
|
|
+ return s.split(/[T\s]/)[0] || s;
|
|
|
+}
|
|
|
+
|
|
|
+/** 与课堂借用下拉里一致:日期(仅年月日)、节次/时段、具体开始时刻 */
|
|
|
+function formatCourseDisplayTime(course: any): string {
|
|
|
+ const clock = getStartTime(Number(course?.time)).slice(0, 5);
|
|
|
+ return [formatClassDateForDisplay(course?.class_date), course?.time_label, clock]
|
|
|
+ .filter((s) => s != null && String(s).trim() !== '')
|
|
|
+ .join(' ');
|
|
|
+}
|
|
|
+
|
|
|
|
|
|
function openDialogEdit(course?: any) {
|
|
|
const courseId = course?.id || '';
|
|
|
@@ -194,7 +214,9 @@ function openDialogEdit(course?: any) {
|
|
|
|
|
|
const timeStr = getStartTime(course?.time);
|
|
|
const expectedStartTime = `${courseclassdate} ${timeStr}`;
|
|
|
- const courseName = `${courseClassdetail} - ${courseteacher_name} - ${courseclassroom} - ${coursetime_label}`;
|
|
|
+ const baseName = `${courseClassdetail} - ${courseteacher_name} - ${courseclassroom}`;
|
|
|
+ const nameSuffix = formatCourseDisplayTime(course) || coursetime_label;
|
|
|
+ const courseName = nameSuffix ? `${baseName} - ${nameSuffix}` : baseName;
|
|
|
// eslint-disable-next-line no-console
|
|
|
// console.log("expectedStartTime:::",expectedStartTime)
|
|
|
// eslint-disable-next-line no-console
|
|
|
@@ -271,6 +293,12 @@ onMounted(async () => {
|
|
|
|
|
|
|
|
|
<style scoped>
|
|
|
+.course-cell-time {
|
|
|
+ font-size: 12px;
|
|
|
+ color: #606266;
|
|
|
+ margin-top: 4px;
|
|
|
+ line-height: 1.3;
|
|
|
+}
|
|
|
.header-bar {
|
|
|
display: flex;
|
|
|
align-items: center;
|