实验排课
This commit is contained in:
1 parent
1229f3163d
commit
c692002676
25 files changed
+21294
-1189
No files matched your search
Generated
+1071
-1118
File diff suppressed because it is too large.
Load diff
Vendored
+2
@@ -1,5 +1,7 @@
|
||||
/* eslint-disable */
|
||||
/* prettier-ignore */
|
||||
/* oxlint-disable */
|
||||
/* oxfmt-ignore */
|
||||
// @ts-nocheck
|
||||
// noinspection JSUnusedGlobalSymbols
|
||||
// Generated by unplugin-auto-import
|
||||
|
||||
@@ -90,6 +90,19 @@ const filteredRows = computed(() => {
|
||||
.filter(Boolean).some((value) => String(value).toLowerCase().includes(q)),
|
||||
)
|
||||
})
|
||||
const venueNatureOptions = [
|
||||
{ value: 1, label: '普通教室' },
|
||||
{ value: 2, label: '实验室' },
|
||||
{ value: 4, label: '实训室' },
|
||||
{ value: 8, label: '计算机机房' },
|
||||
{ value: 16, label: '语音室' },
|
||||
{ value: 32, label: '体育场地' },
|
||||
{ value: 64, label: '艺术场地' },
|
||||
]
|
||||
const venueNatureLabel = (value: number) => venueNatureOptions
|
||||
.filter((item) => (Number(value) & item.value) !== 0)
|
||||
.map((item) => item.label)
|
||||
.join('、') || '未设置'
|
||||
|
||||
function resetForm(row?: Row) {
|
||||
Object.keys(form).forEach((key) => delete form[key])
|
||||
@@ -100,8 +113,14 @@ function resetForm(row?: Row) {
|
||||
grade: new Date().getFullYear(), counselorUserId: undefined,
|
||||
academicYear: `${new Date().getFullYear()}-${new Date().getFullYear() + 1}`,
|
||||
season: 'Autumn', startDate: '', endDate: '', isCurrent: false,
|
||||
capacity: 60, roomType: '普通教室', equipment: '',
|
||||
capacity: 60, roomType: '普通教室', teachingVenueNatures: [1], equipment: '',
|
||||
}, row ?? {})
|
||||
if (active.value === 'classrooms') {
|
||||
const value = Number((row as any)?.teachingVenueNature ?? 1)
|
||||
form.teachingVenueNatures = venueNatureOptions
|
||||
.filter((item) => (value & item.value) !== 0)
|
||||
.map((item) => item.value)
|
||||
}
|
||||
}
|
||||
|
||||
async function load() {
|
||||
@@ -192,10 +211,16 @@ async function save() {
|
||||
return
|
||||
}
|
||||
try {
|
||||
const payload = active.value === 'classrooms'
|
||||
? {
|
||||
...form,
|
||||
teachingVenueNature: form.teachingVenueNatures.reduce((value: number, item: number) => value | item, 0),
|
||||
}
|
||||
: form
|
||||
if (editingId.value) {
|
||||
await http.put(`/base-data/${active.value}/${editingId.value}`, form)
|
||||
await http.put(`/base-data/${active.value}/${editingId.value}`, payload)
|
||||
} else {
|
||||
await http.post(`/base-data/${active.value}`, form)
|
||||
await http.post(`/base-data/${active.value}`, payload)
|
||||
}
|
||||
ElMessage.success(editingId.value ? '已保存修改' : `已新增${title.value}`)
|
||||
dialogVisible.value = false
|
||||
@@ -407,6 +432,9 @@ watch(
|
||||
<el-table-column v-if="active === 'buildings'" prop="campusName" label="所属校区" min-width="140" />
|
||||
<el-table-column v-if="active === 'classrooms'" prop="buildingName" label="教学楼" min-width="130" />
|
||||
<el-table-column v-if="active === 'classrooms'" prop="capacity" label="容量" width="90" />
|
||||
<el-table-column v-if="active === 'classrooms'" label="场地性质" min-width="180">
|
||||
<template #default="{ row }">{{ venueNatureLabel(row.teachingVenueNature) }}</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="状态" width="90">
|
||||
<template #default="{ row }">
|
||||
<span class="table-status" :class="{ off: !row.isEnabled }">{{ row.isEnabled ? '启用' : '停用' }}</span>
|
||||
@@ -519,6 +547,11 @@ watch(
|
||||
<el-form-item label="容量"><el-input-number v-model="form.capacity" :min="1" :max="1000" /></el-form-item>
|
||||
<el-form-item label="教室类型"><el-input v-model="form.roomType" /></el-form-item>
|
||||
</div>
|
||||
<el-form-item v-if="active === 'classrooms'" label="教学场地性质" required>
|
||||
<el-checkbox-group v-model="form.teachingVenueNatures">
|
||||
<el-checkbox v-for="item in venueNatureOptions" :key="item.value" :value="item.value">{{ item.label }}</el-checkbox>
|
||||
</el-checkbox-group>
|
||||
</el-form-item>
|
||||
<el-form-item v-if="active === 'classrooms'" label="设备"><el-input v-model="form.equipment" /></el-form-item>
|
||||
<div class="form-grid compact">
|
||||
<el-form-item label="排序"><el-input-number v-model="form.sortOrder" :min="0" /></el-form-item>
|
||||
|
||||
Loaded 3 of 25 files, more files were not shown because too many files have changed in this diff.
Show more
Reference in new issue
Block a user