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