|
|
|
@ -25,6 +25,16 @@
|
|
|
|
<div class="toolbar-actions">
|
|
|
|
<div class="toolbar-actions">
|
|
|
|
<el-tag v-if="selectedTeachingClass" type="success">班级配置</el-tag>
|
|
|
|
<el-tag v-if="selectedTeachingClass" type="success">班级配置</el-tag>
|
|
|
|
<el-tag v-else>默认任务</el-tag>
|
|
|
|
<el-tag v-else>默认任务</el-tag>
|
|
|
|
|
|
|
|
<el-button
|
|
|
|
|
|
|
|
v-if="selectedTeachingClass"
|
|
|
|
|
|
|
|
type="danger"
|
|
|
|
|
|
|
|
plain
|
|
|
|
|
|
|
|
size="small"
|
|
|
|
|
|
|
|
:loading="restoring"
|
|
|
|
|
|
|
|
@click="restoreAllTasksDefaults"
|
|
|
|
|
|
|
|
>
|
|
|
|
|
|
|
|
恢复本班全部默认任务
|
|
|
|
|
|
|
|
</el-button>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
@ -186,6 +196,15 @@
|
|
|
|
|
|
|
|
|
|
|
|
<footer class="drawer-footer">
|
|
|
|
<footer class="drawer-footer">
|
|
|
|
<el-button @click="dialogVisible = false">{{ isReadonly ? "关闭" : "取消" }}</el-button>
|
|
|
|
<el-button @click="dialogVisible = false">{{ isReadonly ? "关闭" : "取消" }}</el-button>
|
|
|
|
|
|
|
|
<el-button
|
|
|
|
|
|
|
|
v-if="!isReadonly"
|
|
|
|
|
|
|
|
type="danger"
|
|
|
|
|
|
|
|
plain
|
|
|
|
|
|
|
|
:loading="restoring"
|
|
|
|
|
|
|
|
@click="restoreTaskDefault"
|
|
|
|
|
|
|
|
>
|
|
|
|
|
|
|
|
恢复此任务默认内容
|
|
|
|
|
|
|
|
</el-button>
|
|
|
|
<el-button v-if="!isReadonly" type="primary" :loading="saving" @click="submitTask">保存配置</el-button>
|
|
|
|
<el-button v-if="!isReadonly" type="primary" :loading="saving" @click="submitTask">保存配置</el-button>
|
|
|
|
</footer>
|
|
|
|
</footer>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
@ -198,6 +217,8 @@ import {
|
|
|
|
listTrainingTasks,
|
|
|
|
listTrainingTasks,
|
|
|
|
listClassTrainingTasks,
|
|
|
|
listClassTrainingTasks,
|
|
|
|
saveClassTrainingTask,
|
|
|
|
saveClassTrainingTask,
|
|
|
|
|
|
|
|
restoreClassTrainingTaskDefault,
|
|
|
|
|
|
|
|
restoreClassTrainingTasksDefaults,
|
|
|
|
uploadTrainingTaskMaterial,
|
|
|
|
uploadTrainingTaskMaterial,
|
|
|
|
} from "@/api/trainingTask";
|
|
|
|
} from "@/api/trainingTask";
|
|
|
|
import * as indexApi from "@/api/teacher";
|
|
|
|
import * as indexApi from "@/api/teacher";
|
|
|
|
@ -211,6 +232,7 @@ const keyword = ref("");
|
|
|
|
const loading = ref(false);
|
|
|
|
const loading = ref(false);
|
|
|
|
const classesLoading = ref(false);
|
|
|
|
const classesLoading = ref(false);
|
|
|
|
const saving = ref(false);
|
|
|
|
const saving = ref(false);
|
|
|
|
|
|
|
|
const restoring = ref(false);
|
|
|
|
const materialUploading = ref(false);
|
|
|
|
const materialUploading = ref(false);
|
|
|
|
const tasks = ref([]);
|
|
|
|
const tasks = ref([]);
|
|
|
|
const classList = ref([]);
|
|
|
|
const classList = ref([]);
|
|
|
|
@ -480,6 +502,47 @@ async function submitTask() {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
async function restoreTaskDefault() {
|
|
|
|
|
|
|
|
if (!selectedTeachingClass.value || !taskForm.taskKey) return;
|
|
|
|
|
|
|
|
const confirmed = await confirmRestoreDefault("恢复此任务默认内容");
|
|
|
|
|
|
|
|
if (!confirmed) return;
|
|
|
|
|
|
|
|
restoring.value = true;
|
|
|
|
|
|
|
|
try {
|
|
|
|
|
|
|
|
await restoreClassTrainingTaskDefault(selectedTeachingClassId.value, taskForm.taskKey);
|
|
|
|
|
|
|
|
dialogVisible.value = false;
|
|
|
|
|
|
|
|
proxy?.$modal?.msgSuccess("已恢复此任务的默认内容");
|
|
|
|
|
|
|
|
await queryTasks();
|
|
|
|
|
|
|
|
} finally {
|
|
|
|
|
|
|
|
restoring.value = false;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
async function restoreAllTasksDefaults() {
|
|
|
|
|
|
|
|
if (!selectedTeachingClass.value) return;
|
|
|
|
|
|
|
|
const confirmed = await confirmRestoreDefault("恢复本班全部默认任务");
|
|
|
|
|
|
|
|
if (!confirmed) return;
|
|
|
|
|
|
|
|
restoring.value = true;
|
|
|
|
|
|
|
|
try {
|
|
|
|
|
|
|
|
await restoreClassTrainingTasksDefaults(selectedTeachingClassId.value);
|
|
|
|
|
|
|
|
proxy?.$modal?.msgSuccess("已恢复本班全部默认任务");
|
|
|
|
|
|
|
|
await queryTasks();
|
|
|
|
|
|
|
|
} finally {
|
|
|
|
|
|
|
|
restoring.value = false;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
async function confirmRestoreDefault(action) {
|
|
|
|
|
|
|
|
try {
|
|
|
|
|
|
|
|
await proxy?.$modal?.confirm(
|
|
|
|
|
|
|
|
`确认${action}吗?仅恢复当前教学班的实训任务内容,不影响学生已提交数据、成绩、进度及其他班级。`,
|
|
|
|
|
|
|
|
"确认恢复默认内容"
|
|
|
|
|
|
|
|
);
|
|
|
|
|
|
|
|
return true;
|
|
|
|
|
|
|
|
} catch (error) {
|
|
|
|
|
|
|
|
return false;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
function buildPayload() {
|
|
|
|
function buildPayload() {
|
|
|
|
return {
|
|
|
|
return {
|
|
|
|
projectName: taskForm.project,
|
|
|
|
projectName: taskForm.project,
|
|
|
|
|