import { inquiryFixture } from './aiPptInquiry.mjs' // 复现服务器审查中的结构问题;内容为人工修正的排版测试数据,非真实模型验收结果。 export function lessonRepairFixture(imageUrl) { const outline = inquiryFixture() outline.title = outline.chapterName = '凤鸣山谷的故事' outline.gradeName = '一年级' outline.textbookName = '音乐课堂 · 排版测试' const base = outline.pages[1] const page = (no, title, headline, extra = {}) => ({ ...structuredClone(base), pageNo: no, type: 'music_knowledge', title, studentContent: { headline, points: [] }, classroomAction: { ...base.classroomAction, studentTask: headline }, image: undefined, visualPlan: { composition: 'concept_grid', visualMode: 'text_only', textPresentation: 'plain', imagePurpose: 'none', imageNecessity: 'none', layout: 'text_focus' }, ...extra }) const scene = { url: imageUrl, width: 1600, height: 900 } const diagramPlan = { composition: 'concept_grid', visualMode: 'native_diagram', textPresentation: 'plain', imagePurpose: 'none', imageNecessity: 'none', layout: 'diagram_focus' } outline.pages = [ page(1, outline.title, '山谷里藏着什么声音?', { type: 'cover', image: scene, visualPlan: { composition: 'full_scene', visualMode: 'generated_image', textPresentation: 'plain', imagePurpose: 'scene', imageNecessity: 'supporting', layout: 'cover_scene' } }), page(2, '同一个声音,两种力度', '哪次拍手更响?', { studentContent: { headline: '哪次拍手更响?', points: ['先听两次,再说出你的发现'] } }), page(3, '跟着拍,再自己拍', '两个短音能放进一个长音里吗?', { type: 'rhythm_practice', visualPlan: diagramPlan, diagram: { kind: 'duration', caption: '条的长度表示持续时间', basis: '教师自编练习:时值比例为2:1:1:2。', items: [{ label: '长', value: 2 }, { label: '短', value: 1 }, { label: '短', value: 1 }, { label: '长', value: 2 }] } }), page(4, '声音向上走', '边唱边把手慢慢抬高', { visualPlan: diagramPlan, diagram: { kind: 'pitch', caption: '从左到右,声音逐渐升高', basis: '同一音区内do、re、mi的相对高低;数值表示级序,不表示频率。', items: [{ label: 'do', value: 1 }, { label: 're', value: 2 }, { label: 'mi', value: 3 }] } }), page(5, '编一句,再唱给同伴听', '选两个音,试着改变先后顺序', { type: 'creative_activity', studentContent: { headline: '选两个音,试着改变先后顺序', points: ['示例:do — mi mi', '我的尝试:mi — do do'] } }), page(6, '谁能排好队?', '把这些唱名按从低到高排好', { type: 'practice_check', visualPlan: { ...diagramPlan, visualMode: 'text_only', composition: 'focus_question' }, interaction: { type: 'sort', question: '把这些唱名按从低到高排好', options: ['mi', 'do', 're'], answer: 'do → re → mi', explanation: '在同一音区内,三个唱名的音高依次升高。' } }), page(7, '先练习,再一起表演', '听见指挥再加入', { type: 'performance_activity', studentContent: { headline: '听见指挥再加入', points: [], steps: ['选定一个声部', '先单独练习', '看指挥一起开始'] }, classroomAction: { ...base.classroomAction, studentTask: '' }, visualPlan: { ...diagramPlan, visualMode: 'text_only', composition: 'steps', textPresentation: 'steps' } }), page(8, '带走一个发现', '用声音告诉同伴你学会了什么', { type: 'summary', studentContent: { headline: '用声音告诉同伴你学会了什么', points: ['同一个声音可以有强弱变化', '两个短音也能组成一个长音的时间'] } }) ] return outline }