feat(course): 导入课教学环节改为可选;集体课/领域课保持必填

Made-with: Cursor
This commit is contained in:
zhonghua 2026-03-25 10:49:45 +08:00
parent 55343ead0b
commit 14fd97f6a5
2 changed files with 21 additions and 7 deletions

View File

@ -14,7 +14,7 @@
<template #description> <template #description>
<div>导入课用于激发幼儿兴趣引入课程主题建议时长 5-15 分钟重点在于吸引注意力建立学习期待</div> <div>导入课用于激发幼儿兴趣引入课程主题建议时长 5-15 分钟重点在于吸引注意力建立学习期待</div>
<div class="form-hints"> <div class="form-hints">
<strong>必填项</strong>课程名称教学目标教学准备教学环节至少 1 含环节名称内容目标核心资源为可选<strong>时长</strong>5-15 分钟 <strong>必填项</strong>课程名称教学目标教学准备教学环节与核心资源均为可选<strong>时长</strong>5-15 分钟
</div> </div>
</template> </template>
</a-alert> </a-alert>

View File

@ -127,10 +127,16 @@
<!-- 教学环节 --> <!-- 教学环节 -->
<a-card size="small" class="section-card"> <a-card size="small" class="section-card">
<template #title> <template #title>
<span>教学环节 <span class="required-mark">*</span></span> <span>
教学环节
<span v-if="lessonType !== 'INTRO'" class="required-mark">*</span>
</span>
</template> </template>
<div class="field-hint">至少添加一个环节每个环节需填写名称内容目标</div> <div class="field-hint">
<a-form-item name="steps"> <span v-if="lessonType === 'INTRO'">可选配置可添加教学环节</span>
<span v-else>至少添加一个环节每个环节需填写名称内容目标</span>
</div>
<a-form-item :name="lessonType !== 'INTRO' ? 'steps' : undefined">
<a-form-item-rest> <a-form-item-rest>
<LessonStepsEditor <LessonStepsEditor
v-model="lessonData.steps" v-model="lessonData.steps"
@ -273,6 +279,11 @@ const lessonData = reactive<LessonData>({
...props.modelValue, ...props.modelValue,
}); });
//
const stepsRequired = computed(
() => props.lessonType !== 'INTRO'
);
// //
const extensionRequired = computed( const extensionRequired = computed(
() => props.lessonType === 'COLLECTIVE' || props.lessonType?.startsWith('DOMAIN_') () => props.lessonType === 'COLLECTIVE' || props.lessonType?.startsWith('DOMAIN_')
@ -297,7 +308,10 @@ const formRules = computed(() => {
message: `课程时长需在 ${minD}-${maxD} 分钟之间`, message: `课程时长需在 ${minD}-${maxD} 分钟之间`,
}, },
], ],
steps: [ };
// /
if (stepsRequired.value) {
rules.steps = [
{ {
validator: (_: unknown, value: StepData[] | undefined) => { validator: (_: unknown, value: StepData[] | undefined) => {
const steps = value || []; const steps = value || [];
@ -319,8 +333,8 @@ const formRules = computed(() => {
return Promise.resolve(); return Promise.resolve();
}, },
}, },
], ];
}; }
if (extensionRequired.value) { if (extensionRequired.value) {
rules.extension = [ rules.extension = [
{ required: true, whitespace: true, message: '请输入教学延伸活动建议' }, { required: true, whitespace: true, message: '请输入教学延伸活动建议' },