ai_member_xiaoyan/output/component_report_L1-S2-U14-L1.html

517 lines
14 KiB
HTML

<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<title>组件配置JSON报告 - L1-S2-U14-L1</title>
<style>
body{font-family:system-ui,sans-serif;margin:20px;background:#f5f5f5}
h1{color:#1a1a2e;border-bottom:2px solid #0f3460;padding-bottom:10px}
.meta{color:#666;margin-bottom:20px}
.component{border:1px solid #ddd;border-radius:8px;margin:15px 0;padding:15px;background:#fff;box-shadow:0 2px 4px rgba(0,0,0,.05)}
.component h3{margin:0 0 8px;color:#0f3460}
.component .id{font-size:12px;color:#888;float:right}
.kp-tag{display:inline-block;padding:2px 8px;border-radius:12px;font-size:12px;margin:3px}
.kp-matched{background:#d4edda;color:#155724}
.kp-unmatched{background:#fff3cd;color:#856404}
.kp-no{background:#f8d7da;color:#721c24}
.json-block{background:#2d2d2d;color:#f8f8f2;padding:12px;border-radius:6px;overflow-x:auto;font-size:13px;max-height:500px;overflow-y:auto;white-space:pre-wrap;font-family:'SF Mono',Monaco,monospace}
.summary{background:#e8f0fe;padding:15px;border-radius:8px;margin-bottom:20px}
.stat{display:inline-block;margin:0 15px;font-weight:bold}
.stat span{font-size:24px;color:#0f3460}
</style>
</head>
<body>
<h1>📝 组件配置JSON报告</h1>
<div class="meta">
<strong>剧本:</strong>L1-S2-U14-L1 到你上学啦 (组件录入测试)<br>
<strong>生成时间:</strong>2026-04-30 11:57<br>
<strong>组件总数:</strong>15 | <strong style="color:green">全部成功</strong>
</div>
<div class="summary">
<div class="stat">组件 <span>15</span></div>
<div class="stat">对话朗读 <span>7</span></div>
<div class="stat">对话挖空 <span>4</span></div>
<div class="stat">对话组句 <span>4</span></div>
</div>
<div class="component"><span class="id">cId=1</span><h3>[1] 对话朗读 <small>(mid_dialog_repeat)</small></h3><span class="kp-tag kp-unmatched">vocab:school (未匹配)</span><div class="json-block">{
"cType": "mid_dialog_repeat",
"cId": "0000800",
"title": "表示大家一起上学",
"resourceMapping": {
"Eva": 663,
"Peter": 653,
"Vicky": 658
},
"preDialog": [
{
"type": "user",
"content": "Great!"
},
{
"type": "user",
"content": "Oh, there's no time left."
}
],
"imgShowTimingList": [
"content"
],
"img": "0000800.png",
"question": {
"type": "user",
"content": "Let's go to school now."
},
"postDialog": []
}</div></div><div class="component"><span class="id">cId=2</span><h3>[2] 对话挖空 <small>(mid_dialog_fillin)</small></h3><span class="kp-tag kp-unmatched">vocab:school (未匹配)</span><div class="json-block">{
"cType": "mid_dialog_fillin",
"cId": "0000801",
"title": "表示一起去上学",
"resourceMapping": {
"Eva": 663,
"Peter": 653,
"Vicky": 658
},
"preDialog": [
{
"type": "user",
"content": "Peter, Eva!"
}
],
"imgShowTimingList": [],
"question": {
"type": "user",
"desc": "Let's go to ___.",
"content": "Let's go to school."
},
"optionGroupList": [
{
"optionList": [
{
"option": "school",
"needAudio": true
},
{
"option": "zoo",
"needAudio": true
}
],
"answer": [
0
]
}
],
"corFeedback": {},
"errFeedback": {
"type": "npc",
"npcName": "Vicky",
"content": "I don't think so."
},
"postDialog": []
}</div></div><div class="component"><span class="id">cId=3</span><h3>[3] 对话朗读 <small>(mid_dialog_repeat)</small></h3><span class="kp-tag kp-matched">sentence:You need to... (id=0107009, +1)</span><span class="kp-tag kp-matched">vocab:study (id=0112033, +1)</span><span class="kp-tag kp-unmatched">vocab:play (未匹配)</span><div class="json-block">{
"cType": "mid_dialog_repeat",
"cId": "0000802",
"title": "告诉 Eva 和 Peter 需要学习",
"resourceMapping": {
"Eva": 663,
"Peter": 653,
"Vicky": 658
},
"preDialog": [],
"imgShowTimingList": [],
"question": {
"type": "user",
"content": "You need to study."
},
"postDialog": [
{
"type": "npc",
"npcName": "Eva",
"content": "No, we want to play!"
}
]
}</div></div><div class="component"><span class="id">cId=4</span><h3>[4] 对话朗读 <small>(mid_dialog_repeat)</small></h3><span class="kp-tag kp-matched">sentence:We can... (id=0112016, +1)</span><span class="kp-tag kp-unmatched">vocab:play (未匹配)</span><span class="kp-tag kp-unmatched">vocab:school (未匹配)</span><div class="json-block">{
"cType": "mid_dialog_repeat",
"cId": "0000803",
"title": "表示在学校里也可以玩",
"resourceMapping": {
"Eva": 663,
"Peter": 653,
"Vicky": 658
},
"preDialog": [],
"imgShowTimingList": [],
"question": {
"type": "user",
"content": "We can play at school."
},
"postDialog": [
{
"type": "npc",
"npcName": "Peter",
"content": "That's not fun!"
}
]
}</div></div><div class="component"><span class="id">cId=5</span><h3>[5] 对话朗读 <small>(mid_dialog_repeat)</small></h3><span class="kp-tag kp-unmatched">vocab:student (未匹配)</span><div class="json-block">{
"cType": "mid_dialog_repeat",
"cId": "0000804",
"title": "询问 Eva 和 Peter 是否想做学生",
"resourceMapping": {
"Eva": 663,
"Peter": 653,
"Vicky": 658
},
"preDialog": [],
"imgShowTimingList": [],
"question": {
"type": "user",
"content": "Do you want to be a student?"
},
"postDialog": []
}</div></div><div class="component"><span class="id">cId=6</span><h3>[6] 对话组句 <small>(mid_dialog_sentence)</small></h3><span class="kp-tag kp-unmatched">vocab:student (未匹配)</span><div class="json-block">{
"cType": "mid_dialog_sentence",
"cId": "0000805",
"title": "表示自己是学生",
"resourceMapping": {
"Eva": 663,
"Peter": 653,
"Vicky": 658
},
"preDialog": [
{
"type": "user",
"content": "Hey, look at me."
}
],
"imgShowTimingList": [],
"question": {
"desc": "表示我是一个学生。",
"content": "I'm a student."
},
"optionList": [
{
"option": "I'm",
"needAudio": true
},
{
"option": "student",
"needAudio": true
},
{
"option": "a",
"needAudio": true
}
],
"answer": [
0,
2,
1
],
"tip": "student 指“学生”。",
"corFeedback": {},
"errFeedback": {
"type": "npc",
"npcName": "Vicky",
"content": "Try again."
},
"postDialog": []
}</div></div><div class="component"><span class="id">cId=7</span><h3>[7] 对话朗读 <small>(mid_dialog_repeat)</small></h3><span class="kp-tag kp-no">未匹配知识点</span><div class="json-block">{
"cType": "mid_dialog_repeat",
"cId": "0000806",
"title": "表示自己在学校学习",
"resourceMapping": {
"Eva": 663,
"Peter": 653,
"Vicky": 658
},
"preDialog": [],
"imgShowTimingList": [
"content"
],
"img": "0000806.png",
"question": {
"type": "user",
"content": "I study at school."
},
"postDialog": []
}</div></div><div class="component"><span class="id">cId=8</span><h3>[8] 对话朗读 <small>(mid_dialog_repeat)</small></h3><span class="kp-tag kp-no">未匹配知识点</span><div class="json-block">{
"cType": "mid_dialog_repeat",
"cId": "0000807",
"title": "表示自己也玩",
"resourceMapping": {
"Eva": 663,
"Peter": 653,
"Vicky": 658
},
"preDialog": [],
"imgShowTimingList": [
"content"
],
"img": "0000807.png",
"question": {
"type": "user",
"content": "And I play too."
},
"postDialog": []
}</div></div><div class="component"><span class="id">cId=9</span><h3>[9] 对话挖空 <small>(mid_dialog_fillin)</small></h3><span class="kp-tag kp-matched">vocab:study (id=0112033, +1)</span><div class="json-block">{
"cType": "mid_dialog_fillin",
"cId": "0000808",
"title": "表示并不是要学习",
"resourceMapping": {
"Eva": 663,
"Peter": 653,
"Vicky": 658
},
"preDialog": [],
"imgShowTimingList": [],
"question": {
"type": "user",
"desc": "We're not here to ___.",
"content": "We're not here to study."
},
"optionGroupList": [
{
"optionList": [
{
"option": "study",
"needAudio": true
},
{
"option": "student",
"needAudio": true
}
],
"answer": [
0
]
}
],
"corFeedback": {},
"errFeedback": {
"type": "npc",
"npcName": "Grace",
"content": "Are you sure?"
},
"postDialog": []
}</div></div><div class="component"><span class="id">cId=10</span><h3>[10] 对话朗读 <small>(mid_dialog_repeat)</small></h3><span class="kp-tag kp-no">未匹配知识点</span><div class="json-block">{
"cType": "mid_dialog_repeat",
"cId": "0000809",
"title": "说出书名",
"resourceMapping": {
"Eva": 663,
"Peter": 653,
"Vicky": 658
},
"preDialog": [],
"imgShowTimingList": [
"content"
],
"img": "0000809.png",
"question": {
"type": "user",
"content": "It's \"Go to School\"."
},
"postDialog": []
}</div></div><div class="component"><span class="id">cId=11</span><h3>[11] 对话组句 <small>(mid_dialog_sentence)</small></h3><span class="kp-tag kp-matched">sentence:You need to... (id=0107009, +1)</span><span class="kp-tag kp-matched">vocab:study (id=0112033, +1)</span><div class="json-block">{
"cType": "mid_dialog_sentence",
"cId": "0000811",
"title": "表示你们需要学习",
"resourceMapping": {
"Eva": 663,
"Peter": 653,
"Vicky": 658
},
"preDialog": [],
"imgShowTimingList": [],
"question": {
"desc": "表示你们需要学习。",
"content": "You need to study."
},
"optionList": [
{
"option": "need to",
"needAudio": true
},
{
"option": "you",
"needAudio": true
},
{
"option": "study",
"needAudio": true
}
],
"answer": [
1,
0,
2
],
"tip": "study 指“学习”。",
"corFeedback": {},
"errFeedback": {
"type": "npc",
"npcName": "Peter",
"content": "Huh?"
},
"postDialog": []
}</div></div><div class="component"><span class="id">cId=12</span><h3>[12] 对话组句 <small>(mid_dialog_sentence)</small></h3><span class="kp-tag kp-matched">sentence:You need to... (id=0107009, +1)</span><span class="kp-tag kp-unmatched">vocab:school (未匹配)</span><div class="json-block">{
"cType": "mid_dialog_sentence",
"cId": "0000812",
"title": "表示你们需要上学",
"resourceMapping": {
"Eva": 663,
"Peter": 653,
"Vicky": 658
},
"preDialog": [],
"imgShowTimingList": [],
"question": {
"desc": "表示你们需要上学。",
"content": "You need to go to school."
},
"optionList": [
{
"option": "need to",
"needAudio": true
},
{
"option": "go to school",
"needAudio": true
},
{
"option": "you",
"needAudio": true
}
],
"answer": [
2,
0,
1
],
"tip": "go to school 指“上学”。",
"corFeedback": {},
"errFeedback": {
"type": "npc",
"npcName": "Grace",
"content": "Try again."
},
"postDialog": []
}</div></div><div class="component"><span class="id">cId=13</span><h3>[13] 对话挖空 <small>(mid_dialog_fillin)</small></h3><span class="kp-tag kp-unmatched">vocab:play (未匹配)</span><div class="json-block">{
"cType": "mid_dialog_fillin",
"cId": "0000813",
"title": "表示可以在学校玩耍",
"resourceMapping": {
"Eva": 663,
"Peter": 653,
"Vicky": 658
},
"preDialog": [],
"imgShowTimingList": [],
"question": {
"type": "user",
"desc": "Then you can ___ there.",
"content": "Then you can play there."
},
"optionGroupList": [
{
"optionList": [
{
"option": "play",
"needAudio": true
},
{
"option": "catch",
"needAudio": true
}
],
"answer": [
0
]
}
],
"corFeedback": {},
"errFeedback": {
"type": "npc",
"npcName": "Grace",
"content": "I don't think so."
},
"postDialog": []
}</div></div><div class="component"><span class="id">cId=14</span><h3>[14] 对话组句 <small>(mid_dialog_sentence)</small></h3><span class="kp-tag kp-matched">sentence:We can... (id=0112016, +1)</span><div class="json-block">{
"cType": "mid_dialog_sentence",
"cId": "0000814",
"title": "表示可以坐校车上学",
"resourceMapping": {
"Eva": 738,
"Peter": 739
},
"preDialog": [],
"imgShowTimingList": [],
"question": {
"desc": "表示我们可以坐校车上学。",
"content": "We can take the school bus."
},
"optionList": [
{
"option": "we can",
"needAudio": true
},
{
"option": "the school bus",
"needAudio": true
},
{
"option": "take",
"needAudio": true
}
],
"answer": [
0,
2,
1
],
"tip": "句子以 we can 开头。",
"corFeedback": {},
"errFeedback": {
"type": "npc",
"npcName": "Vicky",
"content": "No, try again."
},
"postDialog": []
}</div></div><div class="component"><span class="id">cId=15</span><h3>[15] 对话挖空 <small>(mid_dialog_fillin)</small></h3><span class="kp-tag kp-unmatched">vocab:student (未匹配)</span><div class="json-block">{
"cType": "mid_dialog_fillin",
"cId": "0000815",
"title": "表示 Peter 是学生了",
"resourceMapping": {
"Eva": 738,
"Peter": 739
},
"preDialog": [],
"imgShowTimingList": [],
"question": {
"type": "user",
"desc": "You are a ___ now.",
"content": "You are a student now."
},
"optionGroupList": [
{
"optionList": [
{
"option": "play",
"needAudio": true
},
{
"option": "student",
"needAudio": true
}
],
"answer": [
1
]
}
],
"corFeedback": {},
"errFeedback": {
"type": "npc",
"npcName": "Grace",
"content": "Try again."
},
"postDialog": []
}</div></div></body></html>