forked from liweijie/education
课表以及课表调整申请
This commit is contained in:
@@ -11,10 +11,10 @@
|
||||
</div>
|
||||
|
||||
<div class="table-card">
|
||||
<el-table :data="todayData" v-loading="loading" stripe border>
|
||||
<el-table :data="todayData" row-key="bh" v-loading="loading" stripe border>
|
||||
<el-table-column type="index" label="序号" width="55" align="center" />
|
||||
<el-table-column label="上课时间" width="130" align="center">
|
||||
<template #default="{ row }">{{ formatJc(row.jc) }}</template>
|
||||
<template #default="{ row }">{{ row.sjsj || '-' }}</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="kcmc" label="课程" min-width="140" align="center" show-overflow-tooltip />
|
||||
<el-table-column prop="zrdw" label="责任单位" width="110" align="center" />
|
||||
@@ -45,7 +45,7 @@
|
||||
</div>
|
||||
|
||||
<div class="table-card">
|
||||
<el-table :data="weekData" v-loading="loading" stripe border>
|
||||
<el-table :data="weekData" row-key="bh" v-loading="loading" stripe border>
|
||||
<el-table-column type="index" label="序号" width="55" align="center" />
|
||||
<el-table-column label="上课时间" width="170" align="center" show-overflow-tooltip>
|
||||
<template #default="{ row }">{{ row.sjsj || '-' }}</template>
|
||||
@@ -132,10 +132,6 @@
|
||||
import { listToday, listWeek, listClass, exportClassPlan, exportClassGrades, exportClassCourses } from '@/api/teachBusiness/timetable'
|
||||
import { listTeam } from '@/api/studentRecords/team'
|
||||
|
||||
const JC_SECTION = {
|
||||
1: '1-2节', 2: '3-4节', 3: '5-6节', 4: '7-8节', 5: '9-10节', 6: '11-12节'
|
||||
}
|
||||
|
||||
const WEEK_DAY_NAMES = ['日', '一', '二', '三', '四', '五', '六']
|
||||
|
||||
function pad2(n) {
|
||||
@@ -161,9 +157,11 @@ export default {
|
||||
loading: false,
|
||||
// 今日
|
||||
todayDate: new Date(),
|
||||
dayOffset: 0,
|
||||
todayData: [],
|
||||
// 本周
|
||||
weekStart: getMonday(new Date()),
|
||||
weekOffset: 0,
|
||||
weekData: [],
|
||||
// 班次
|
||||
searchForm: { teamClass: '' },
|
||||
@@ -173,13 +171,23 @@ export default {
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
selectedTodayDate() {
|
||||
const date = new Date(this.todayDate)
|
||||
date.setDate(date.getDate() + this.dayOffset)
|
||||
return date
|
||||
},
|
||||
selectedWeekStart() {
|
||||
const date = new Date(this.weekStart)
|
||||
date.setDate(date.getDate() + this.weekOffset * 7)
|
||||
return date
|
||||
},
|
||||
dateTitle() {
|
||||
return formatDate(this.todayDate) + ' 今日教学实施计划'
|
||||
return formatDate(this.selectedTodayDate) + ' 今日教学实施计划'
|
||||
},
|
||||
weekRangeText() {
|
||||
const end = new Date(this.weekStart)
|
||||
const end = new Date(this.selectedWeekStart)
|
||||
end.setDate(end.getDate() + 6)
|
||||
return formatDate(this.weekStart) + '(' + this.weekDayName(this.weekStart) + ') 至 ' +
|
||||
return formatDate(this.selectedWeekStart) + '(' + this.weekDayName(this.selectedWeekStart) + ') 至 ' +
|
||||
formatDate(end) + '(' + this.weekDayName(end) + ') 本周教学实施计划'
|
||||
},
|
||||
pageTitle() {
|
||||
@@ -196,34 +204,22 @@ export default {
|
||||
weekDayName(d) {
|
||||
return WEEK_DAY_NAMES[d.getDay()]
|
||||
},
|
||||
formatJc(jc) {
|
||||
if (jc === null || jc === undefined || jc === '') return '第?节'
|
||||
return JC_SECTION[jc] || ('第' + jc + '节')
|
||||
},
|
||||
/* ---------- 今日:日期导航 ---------- */
|
||||
handlePrevDay() {
|
||||
const d = new Date(this.todayDate)
|
||||
d.setDate(d.getDate() - 1)
|
||||
this.todayDate = d
|
||||
this.dayOffset -= 1
|
||||
this.getTodayList()
|
||||
},
|
||||
handleNextDay() {
|
||||
const d = new Date(this.todayDate)
|
||||
d.setDate(d.getDate() + 1)
|
||||
this.todayDate = d
|
||||
this.dayOffset += 1
|
||||
this.getTodayList()
|
||||
},
|
||||
/* ---------- 本周:周次导航 ---------- */
|
||||
handlePrevWeek() {
|
||||
const d = new Date(this.weekStart)
|
||||
d.setDate(d.getDate() - 7)
|
||||
this.weekStart = d
|
||||
this.weekOffset -= 1
|
||||
this.getWeekList()
|
||||
},
|
||||
handleNextWeek() {
|
||||
const d = new Date(this.weekStart)
|
||||
d.setDate(d.getDate() + 7)
|
||||
this.weekStart = d
|
||||
this.weekOffset += 1
|
||||
this.getWeekList()
|
||||
},
|
||||
/* ---------- 队别班次下拉(真实接口) ---------- */
|
||||
@@ -243,10 +239,6 @@ export default {
|
||||
})
|
||||
},
|
||||
/* ---------- 数据字段映射(接口字段 -> 页面字段) ---------- */
|
||||
parseSection(sksj) {
|
||||
const m = String(sksj || '').match(/第(\d+)节/)
|
||||
return m ? Number(m[1]) : undefined
|
||||
},
|
||||
mapLessonRow(apiRow) {
|
||||
// 接口今日/本周实体:bh sksj kc zrdw bc jy cd jxnrxff bz
|
||||
const row = Object.assign({}, apiRow)
|
||||
@@ -256,9 +248,28 @@ export default {
|
||||
row.jxnrff = apiRow.jxnrxff
|
||||
row.jybz = apiRow.bz
|
||||
row.sjsj = apiRow.sksj
|
||||
row.jc = this.parseSection(apiRow.sksj)
|
||||
return row
|
||||
},
|
||||
extractLessonRows(response) {
|
||||
const data = response && response.data
|
||||
if (Array.isArray(data)) {
|
||||
return data
|
||||
}
|
||||
if (!data) {
|
||||
return []
|
||||
}
|
||||
|
||||
// 新接口返回 DailyWeeklyTimetableRangeVO,列表位于 data.list;
|
||||
// records 分支用于兼容旧分页结构,避免后端版本切换时页面再次无数据。
|
||||
if (Array.isArray(data.list)) {
|
||||
return data.list
|
||||
}
|
||||
if (Array.isArray(data.records)) {
|
||||
return data.records
|
||||
}
|
||||
|
||||
return []
|
||||
},
|
||||
mapClassRow(apiRow) {
|
||||
// 接口班次实体:sskcbh kcmcksxs zrjykc jhxs yxxs khlxfs ssjy rscd ssjhbg
|
||||
const row = Object.assign({}, apiRow)
|
||||
@@ -271,12 +282,13 @@ export default {
|
||||
},
|
||||
/* ---------- 今日:拉取数据 ---------- */
|
||||
getTodayList() {
|
||||
const params = {
|
||||
offset: this.dayOffset,
|
||||
rq: formatDate(this.todayDate)
|
||||
}
|
||||
this.loading = true
|
||||
listToday({}).then(response => {
|
||||
const data = response.data
|
||||
this.todayData = Array.isArray(data)
|
||||
? (data || []).map(item => this.mapLessonRow(item))
|
||||
: ((data && data.records) || []).map(item => this.mapLessonRow(item))
|
||||
listToday(params).then(response => {
|
||||
this.todayData = this.extractLessonRows(response).map(item => this.mapLessonRow(item))
|
||||
this.loading = false
|
||||
}).catch(() => {
|
||||
this.todayData = []
|
||||
@@ -285,12 +297,13 @@ export default {
|
||||
},
|
||||
/* ---------- 本周:拉取数据 ---------- */
|
||||
getWeekList() {
|
||||
const params = {
|
||||
offset: this.weekOffset,
|
||||
rq: formatDate(this.weekStart)
|
||||
}
|
||||
this.loading = true
|
||||
listWeek({}).then(response => {
|
||||
const data = response.data
|
||||
this.weekData = Array.isArray(data)
|
||||
? (data || []).map(item => this.mapLessonRow(item))
|
||||
: ((data && data.records) || []).map(item => this.mapLessonRow(item))
|
||||
listWeek(params).then(response => {
|
||||
this.weekData = this.extractLessonRows(response).map(item => this.mapLessonRow(item))
|
||||
this.loading = false
|
||||
}).catch(() => {
|
||||
this.weekData = []
|
||||
|
||||
Reference in New Issue
Block a user