修正实验室选择
This commit is contained in:
1 parent
57372cf615
commit
90877ae428
3 files changed
+110
-42
No files matched your search
@@ -46,6 +46,7 @@ const projectForm = reactive({
|
||||
name: '',
|
||||
projectNames: '',
|
||||
nameMode: 'Sequence',
|
||||
projectCount: 1,
|
||||
arrangementMode: 'Centralized',
|
||||
description: '',
|
||||
requirements: '',
|
||||
@@ -142,6 +143,7 @@ const activePeriods = computed(() =>
|
||||
|| period.academicTermId === selectedProject.value.academicTermId,
|
||||
),
|
||||
)
|
||||
const experimentClassrooms = computed(() => options.classrooms)
|
||||
|
||||
const modeMeta: Record<string, { label: string; note: string }> = {
|
||||
Centralized: {
|
||||
@@ -170,6 +172,7 @@ function resetProjectForm() {
|
||||
name: '',
|
||||
projectNames: '',
|
||||
nameMode: 'Sequence',
|
||||
projectCount: 1,
|
||||
arrangementMode: 'Centralized',
|
||||
description: '',
|
||||
requirements: '',
|
||||
@@ -252,6 +255,9 @@ async function saveProject() {
|
||||
scheduleEntryId: projectForm.scheduleEntryId || null,
|
||||
code: projectForm.code,
|
||||
name: projectForm.nameMode === 'InputNames' && !editingProjectId.value ? names[0] : projectForm.name,
|
||||
projectCount: projectForm.arrangementMode === 'SelfScheduled'
|
||||
? (projectForm.nameMode === 'InputNames' ? names.length : projectForm.projectCount)
|
||||
: 1,
|
||||
arrangementMode: projectForm.arrangementMode,
|
||||
description: projectForm.description || null,
|
||||
requirements: projectForm.requirements || null,
|
||||
@@ -283,7 +289,7 @@ async function saveProject() {
|
||||
})
|
||||
ElMessage.success(projectForm.arrangementMode === 'Centralized'
|
||||
? `已按 ${projectForm.teachingTaskIds.length} 个教学班的全部实验课生成项目`
|
||||
: `已为 ${projectForm.teachingTaskIds.length} 个教学任务创建实验项目`)
|
||||
: `已为 ${projectForm.teachingTaskIds.length} 个教学任务创建 ${projectForm.teachingTaskIds.length * payload.projectCount} 个自选实验项目`)
|
||||
}
|
||||
projectDialog.value = false
|
||||
await load()
|
||||
@@ -1117,9 +1123,8 @@ onMounted(async () => {
|
||||
:key="task.id"
|
||||
:value="task.id"
|
||||
:disabled="projectForm.arrangementMode === 'SelfScheduled'
|
||||
&& (task.schedulingMode !== 'Flexible'
|
||||
|| (!!selectedTask && (task.academicTermId !== selectedTask.academicTermId
|
||||
|| task.courseId !== selectedTask.courseId)))"
|
||||
&& !!selectedTask && (task.academicTermId !== selectedTask.academicTermId
|
||||
|| task.courseId !== selectedTask.courseId)"
|
||||
>
|
||||
<b>{{ task.taskNumber }}</b>
|
||||
<span>{{ task.classNames.join('、') || task.name }}</span>
|
||||
@@ -1130,7 +1135,7 @@ onMounted(async () => {
|
||||
</el-checkbox-group>
|
||||
<small v-if="!editingProjectId" class="form-help">
|
||||
<template v-if="projectForm.arrangementMode === 'Centralized'">已选 {{ projectForm.teachingTaskIds.length }} 个教学班;系统会为每个教学班的全部已发布实验课生成项目。</template>
|
||||
<template v-else>自行安排仅可选择“非排时课程”的教学任务;只能勾选同一学期、同一课程,实验编码、名称、内容和开放日期将一次应用到这些教学任务。</template>
|
||||
<template v-else>自行安排不写入课表;只能勾选同一学期、同一课程。每个项目都可另行设置多个可预约场次。</template>
|
||||
</small>
|
||||
</el-form-item>
|
||||
<div class="form-grid two">
|
||||
@@ -1151,6 +1156,10 @@ onMounted(async () => {
|
||||
<el-form-item v-if="projectForm.nameMode === 'Sequence'" label="项目名称前缀" required>
|
||||
<el-input v-model="projectForm.name" maxlength="116" placeholder="如 数据库实验;将生成“数据库实验 01、数据库实验 02”" />
|
||||
</el-form-item>
|
||||
<el-form-item v-if="projectForm.arrangementMode === 'SelfScheduled' && projectForm.nameMode === 'Sequence'" label="生成项目数" required>
|
||||
<el-input-number v-model="projectForm.projectCount" :min="1" :max="100" />
|
||||
<small class="form-help">同一门课程会生成 {{ projectForm.projectCount }} 个自选项目;编码和名称均自动追加顺序号。</small>
|
||||
</el-form-item>
|
||||
<el-form-item v-else label="实验项目名称" required>
|
||||
<el-input
|
||||
v-model="projectForm.projectNames"
|
||||
@@ -1159,7 +1168,7 @@ onMounted(async () => {
|
||||
maxlength="120000"
|
||||
placeholder="每行一个名称,可直接从 Excel 粘贴;系统按实际生成顺序逐行对应"
|
||||
/>
|
||||
<small class="form-help">已输入 {{ projectNameLines(projectForm.projectNames).length }} 行有效名称。</small>
|
||||
<small class="form-help">已输入 {{ projectNameLines(projectForm.projectNames).length }} 行有效名称;同一门课程将按这些名称生成多个自选项目。</small>
|
||||
</el-form-item>
|
||||
</template>
|
||||
</div>
|
||||
@@ -1295,10 +1304,10 @@ onMounted(async () => {
|
||||
<el-input-number v-model="sessionForm.capacity" :min="1" :max="10000" />
|
||||
</el-form-item>
|
||||
</div>
|
||||
<el-form-item label="实验室" required>
|
||||
<el-select v-model="sessionForm.classroomId" filterable placeholder="选择实验室或教学场所">
|
||||
<el-form-item label="实验场地" required>
|
||||
<el-select v-model="sessionForm.classroomId" filterable placeholder="选择教学场地">
|
||||
<el-option
|
||||
v-for="room in options.classrooms.filter((item: any) => (Number(item.teachingVenueNature) & (2 | 4 | 8 | 16)) !== 0)"
|
||||
v-for="room in experimentClassrooms"
|
||||
:key="room.id"
|
||||
:label="`${room.campusName} · ${room.buildingName} ${room.name} · ${room.capacity} 人`"
|
||||
:value="room.id"
|
||||
@@ -1388,9 +1397,9 @@ onMounted(async () => {
|
||||
/>
|
||||
</el-select>
|
||||
<el-input-number v-model="row.periodCount" :min="1" :max="12" controls-position="right" />
|
||||
<el-select v-model="row.classroomId" filterable placeholder="实验室">
|
||||
<el-select v-model="row.classroomId" filterable placeholder="实验场地">
|
||||
<el-option
|
||||
v-for="room in options.classrooms.filter((item: any) => (Number(item.teachingVenueNature) & (2 | 4 | 8 | 16)) !== 0)"
|
||||
v-for="room in experimentClassrooms"
|
||||
:key="room.id"
|
||||
:label="`${room.campusName} · ${room.buildingName} ${room.name} · ${room.capacity} 人`"
|
||||
:value="room.id"
|
||||
|
||||
Reference in new issue
Block a user