|
@@ -53,7 +53,7 @@
|
|
|
<th v-for="weekDate in [0, 1, 2, 3, 4, 5, 6]" :key="weekDate" class="font-500 color-blue-800">
|
|
|
{{ new Date(weekStartTime + weekDate * 86400000).getMonth() + 1 }}月{{
|
|
|
new Date(weekStartTime + weekDate * 86400000).getDate()
|
|
|
- }}号 - 周{{ chineseNumbers[getDayOfTheWeekNow(weekStartTime - 1, weekDate)] }}
|
|
|
+ }}号 - 周{{ chineseNumbers[getDayOfTheWeekNow(weekStartTime, weekDate)] }}
|
|
|
</th>
|
|
|
</tr>
|
|
|
<tr v-for="key in timeKey" :key="key">
|
|
@@ -67,8 +67,13 @@
|
|
|
"
|
|
|
:rowspan="scheduleList[getDayOfTheWeekNow(weekStartTime, index)][key]['colspan']"
|
|
|
>
|
|
|
- {{ scheduleList[getDayOfTheWeekNow(weekStartTime, index)][key]['startTime'] }} <br />
|
|
|
- {{ scheduleList[getDayOfTheWeekNow(weekStartTime, index)][key]['endTime'] }}
|
|
|
+ 时间:
|
|
|
+ {{ scheduleList[getDayOfTheWeekNow(weekStartTime, index)][key]['startTime'] }} -
|
|
|
+ {{ scheduleList[getDayOfTheWeekNow(weekStartTime, index)][key]['endTime'].split(' ').pop() }}<br />
|
|
|
+ 讲师: {{ scheduleList[getDayOfTheWeekNow(weekStartTime, index)][key]['teacherName'] }}<br />
|
|
|
+ 授课: {{ scheduleList[getDayOfTheWeekNow(weekStartTime, index)][key]['category'] }}
|
|
|
+ {{ scheduleList[getDayOfTheWeekNow(weekStartTime, index)][key]['subjects'] }}<br />
|
|
|
+ 教室: {{ scheduleList[getDayOfTheWeekNow(weekStartTime, index)][key]['classroom'] }}
|
|
|
</td>
|
|
|
<td
|
|
|
v-else-if="
|
|
@@ -162,7 +167,7 @@ import {
|
|
|
queryClassRoomList,
|
|
|
querySchedule
|
|
|
} from './api';
|
|
|
-import type { ScheduleParams, ScheduleParamsList } from './api';
|
|
|
+import type { ScheduleParams, QueryScheduleParams } from './api';
|
|
|
const route = useRoute();
|
|
|
const model = reactive<ScheduleParams>({
|
|
|
week: 0,
|
|
@@ -211,15 +216,17 @@ sevenDaysLater.setDate(nowDate.getDate() + 6);
|
|
|
sevenDaysLater.setHours(0, 0, 0, 0);
|
|
|
const dateRange = ref<[number, number]>([nowDate.getTime(), sevenDaysLater.getTime()]);
|
|
|
const weekStartTime = ref<number>(nowDate.getTime());
|
|
|
-const scheduleParamsOptions = reactive<ScheduleParamsList>({
|
|
|
- startTime: '',
|
|
|
- endTime: '',
|
|
|
- roomId: null,
|
|
|
+const scheduleParamsOptions = reactive<QueryScheduleParams>({
|
|
|
+ studentId: null,
|
|
|
classId: null,
|
|
|
- assistantId: null,
|
|
|
+ subjectId: null,
|
|
|
teacherId: null,
|
|
|
- categoryId: null,
|
|
|
- subjectsId: null
|
|
|
+ startTime: null,
|
|
|
+ endTime: null,
|
|
|
+ week: null,
|
|
|
+ roomId: null,
|
|
|
+ assistantId: null,
|
|
|
+ categoryId: null
|
|
|
});
|
|
|
|
|
|
const scheduleList = ref<{ [index: string]: any }>({
|
|
@@ -275,7 +282,7 @@ async function handleValidateButtonClick() {
|
|
|
formLoading.value = true;
|
|
|
const modelStartTime = new Date(startTime.value);
|
|
|
const modelEndTime = new Date(endTime.value);
|
|
|
- if (modelStartTime >= modelEndTime) {
|
|
|
+ if (modelStartTime.getTime() >= modelEndTime.getTime()) {
|
|
|
window.$message?.error('开始时间不能大于或等于结束时间');
|
|
|
formLoading.value = false;
|
|
|
return;
|
|
@@ -340,7 +347,7 @@ function differenceInSevenDays(nowtime: [number, number]): boolean {
|
|
|
return false;
|
|
|
}
|
|
|
scheduleParamsOptions.startTime = formatTimestamp(Number(nowtime[0]));
|
|
|
- scheduleParamsOptions.endTime = formatTimestamp(Number(nowtime[1] + 86400000));
|
|
|
+ scheduleParamsOptions.endTime = formatTimestamp(Number(nowtime[1] + 86399999));
|
|
|
|
|
|
return true;
|
|
|
}
|
|
@@ -353,7 +360,7 @@ function loadScheduleQuery() {
|
|
|
|
|
|
function loadSchedule() {
|
|
|
loading.value = true;
|
|
|
- querySchedule(1, 100, scheduleParamsOptions).then(response => {
|
|
|
+ querySchedule(scheduleParamsOptions).then(response => {
|
|
|
scheduleList.value = [];
|
|
|
for (let i = 1; i <= 7; i += 1) {
|
|
|
scheduleList.value[i] = {};
|
|
@@ -363,8 +370,11 @@ function loadSchedule() {
|
|
|
}
|
|
|
response.data?.forEach((r: any) => {
|
|
|
if (!r.startTime) return;
|
|
|
- const time = r.startTime?.split(' ').pop();
|
|
|
- const week = new Date(r.startTime).getDay() + 1;
|
|
|
+ const time = r.startTime
|
|
|
+ ?.split(' ')
|
|
|
+ .pop()
|
|
|
+ .replace(/(\d{2}):\d{2}/, '$1:00');
|
|
|
+ const week = new Date(r.startTime).getDay();
|
|
|
if (time && timeKey.value.indexOf(time) === -1) return;
|
|
|
if (week && time && r.endTime && r.startTime && scheduleList.value[week][time].empty) {
|
|
|
r.colspan = new Date(r.endTime).getHours() - new Date(r.startTime).getHours() + 1;
|
|
@@ -384,7 +394,8 @@ function loadSchedule() {
|
|
|
});
|
|
|
}
|
|
|
function getDayOfTheWeekNow(theWeekStartTime: number, weekDate: number): number {
|
|
|
- return new Date(theWeekStartTime + weekDate * 86400000).getDay() + 1;
|
|
|
+ const week = new Date(theWeekStartTime + weekDate * 86400000).getDay();
|
|
|
+ return week === 0 ? 7 : week;
|
|
|
}
|
|
|
function loadData() {
|
|
|
queryUserAll().then(response => {
|