校历删除功能完善
This commit is contained in:
@@ -501,6 +501,11 @@ export default {
|
||||
this.$message.warning('请先选择时间格')
|
||||
return
|
||||
}
|
||||
this.$confirm('确认删除选中单元格的事件吗?', '提示', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
type: 'warning'
|
||||
}).then(() => {
|
||||
const keys = [...this.selectedKeys]
|
||||
this.persistDeleteEvents(keys).then(({ ok, fail }) => {
|
||||
if (fail === 0) {
|
||||
@@ -510,6 +515,7 @@ export default {
|
||||
this.selectedKeys = []
|
||||
}
|
||||
})
|
||||
}).catch(() => {})
|
||||
},
|
||||
absorbEvent() {
|
||||
// 吸取:取选择中第一个事件名非空的格
|
||||
@@ -575,14 +581,14 @@ export default {
|
||||
return { ok: ok, fail: fail }
|
||||
})
|
||||
},
|
||||
// 批量删除选中格事件
|
||||
// 批量删除选中格事件:调用 update 接口并将 jqmc 置空完成删除
|
||||
persistDeleteEvents(keys) {
|
||||
const tasks = keys
|
||||
.filter(key => this.events[key])
|
||||
.map(key => {
|
||||
const payload = this.buildXqxlbPayload(key, this.events[key])
|
||||
if (!payload) return Promise.resolve(false)
|
||||
payload.delFlag = 1
|
||||
payload.jqmc = ''
|
||||
return updateXqxlb(payload)
|
||||
.then(() => true)
|
||||
.catch(() => false)
|
||||
@@ -595,6 +601,8 @@ export default {
|
||||
} else if (ok > 0) {
|
||||
this.$message.success('已删除 ' + ok + ' 个时间格事件')
|
||||
}
|
||||
// 删除成功后重新拉取,同步后端状态
|
||||
this.loadXqxlbEvents()
|
||||
return { ok: ok, fail: fail }
|
||||
})
|
||||
},
|
||||
|
||||
@@ -275,16 +275,20 @@ export default {
|
||||
beforeDestroy() {
|
||||
this.$root.$off('semester-current-changed', this.handleCurrentChanged)
|
||||
},
|
||||
watch: {
|
||||
'form.kxrq': 'calculateWeeks',
|
||||
'form.jsrq': 'calculateWeeks'
|
||||
},
|
||||
methods: {
|
||||
/** 顶栏切换当前学期后自动刷新 */
|
||||
handleCurrentChanged() {
|
||||
this.getList()
|
||||
},
|
||||
/** 初始化学年选项 */
|
||||
/** 初始化学年选项(新增时只能从当前年份往后选择) */
|
||||
initYearOptions() {
|
||||
const current = new Date().getFullYear()
|
||||
const list = []
|
||||
for (let i = current - 10; i <= current + 10; i++) {
|
||||
for (let i = current; i <= current + 10; i++) {
|
||||
list.push(i)
|
||||
}
|
||||
this.yearOptions = list
|
||||
@@ -331,6 +335,22 @@ export default {
|
||||
if (!value) return ''
|
||||
return String(value).slice(0, 10)
|
||||
},
|
||||
/** 根据开学日期和结束日期自动计算学期周数 */
|
||||
calculateWeeks() {
|
||||
const kxrq = this.form.kxrq
|
||||
const jsrq = this.form.jsrq
|
||||
if (!kxrq || !jsrq) return
|
||||
const start = new Date(String(kxrq).slice(0, 10).replace(/-/g, '/'))
|
||||
const end = new Date(String(jsrq).slice(0, 10).replace(/-/g, '/'))
|
||||
if (isNaN(start.getTime()) || isNaN(end.getTime())) return
|
||||
if (end < start) return
|
||||
// 以开学当周周一为起点,向上取整到周
|
||||
const day = start.getDay()
|
||||
const monday = new Date(start)
|
||||
monday.setDate(start.getDate() - (day === 0 ? 6 : day - 1))
|
||||
const days = Math.round((end - monday) / (24 * 3600 * 1000)) + 1
|
||||
this.$set(this.form, 'sdzs', Math.max(1, Math.ceil(days / 7)))
|
||||
},
|
||||
/** 查询学期列表 */
|
||||
getList() {
|
||||
this.loading = true
|
||||
|
||||
Reference in New Issue
Block a user