forked from liweijie/education
班历功能添加
This commit is contained in:
@@ -140,7 +140,7 @@
|
||||
<script>
|
||||
import { getSemester } from '@/api/teachBusiness/semester'
|
||||
import { listXqxlb, addXqxlb, updateXqxlb } from '@/api/teachBusiness/xqxlb'
|
||||
import { listClassCalendarEvent, updateClassCalendarEvent } from '@/api/teachOffice/classCalendarEvent'
|
||||
import { listClassCalendarEvent, updateClassCalendarEvent, batchSaveClassCalendarEvent } from '@/api/teachOffice/classCalendarEvent'
|
||||
import {
|
||||
listVenueCalendarRange,
|
||||
batchSaveVenueCalendar,
|
||||
@@ -1027,6 +1027,22 @@ export default {
|
||||
/* ---------- 后端持久化(xqxlb 接口) ---------- */
|
||||
// 批量保存选中格事件,返回各格子保存成功/失败的个数
|
||||
persistEvents(keys) {
|
||||
// 班历走批量接口:一次拖选只发一个请求,整批单事务提交
|
||||
if (this.mode === 'class') {
|
||||
const cells = keys
|
||||
.filter(key => this.events[key])
|
||||
.map(key => this.buildXqxlbPayload(key, this.events[key]))
|
||||
.filter(Boolean)
|
||||
if (!cells.length) return Promise.resolve({ ok: 0, fail: 0 })
|
||||
return batchSaveClassCalendarEvent(this.xydxqbh, cells).then(res => {
|
||||
this.$message.success((res && res.message) || '已设定 ' + cells.length + ' 个时间格')
|
||||
this.reloadEvents()
|
||||
return { ok: cells.length, fail: 0 }
|
||||
}).catch(() => {
|
||||
this.$message.error('班历批量保存失败')
|
||||
return { ok: 0, fail: cells.length }
|
||||
})
|
||||
}
|
||||
const tasks = keys
|
||||
.filter(key => this.events[key])
|
||||
.map(key => {
|
||||
@@ -1051,8 +1067,29 @@ export default {
|
||||
return { ok: ok, fail: fail }
|
||||
})
|
||||
},
|
||||
// 批量删除选中格事件:调用 update 接口并将 jqmc 置空完成删除
|
||||
// 批量删除选中格事件:班历走 batchSave 的 action='clear' 恢复默认,校历仍走 update 置空名称
|
||||
persistDeleteEvents(keys) {
|
||||
if (this.mode === 'class') {
|
||||
const cells = keys
|
||||
.filter(key => this.events[key])
|
||||
.map(key => {
|
||||
const payload = this.buildXqxlbPayload(key, this.events[key])
|
||||
if (!payload) return null
|
||||
payload.jqmc = ''
|
||||
payload.action = 'clear'
|
||||
return payload
|
||||
})
|
||||
.filter(Boolean)
|
||||
if (!cells.length) return Promise.resolve({ ok: 0, fail: 0 })
|
||||
return batchSaveClassCalendarEvent(this.xydxqbh, cells).then(() => {
|
||||
this.$message.success('已删除 ' + cells.length + ' 个时间格事件')
|
||||
this.reloadEvents()
|
||||
return { ok: cells.length, fail: 0 }
|
||||
}).catch(() => {
|
||||
this.$message.error('班历批量删除失败')
|
||||
return { ok: 0, fail: cells.length }
|
||||
})
|
||||
}
|
||||
const tasks = keys
|
||||
.filter(key => this.events[key])
|
||||
.map(key => {
|
||||
|
||||
Reference in New Issue
Block a user