feat(admin): 新增题目类型、优化题目库管理并添加拼音助手

- 新增6种题目类型枚举:逆向接诗句、场景猜诗句、联想对对碰、字词飞花令、诗词常识、换字组成语
- 新增QuestionDrawer组件,支持富文本编辑和拼音转换功能
- 优化CategoryTree组件,增加分类选择本地存储和自动填充题目类型
- 更新question API接口,简化新增和更新题目库的参数传递
- 扩展QuestionRenderer组件,支持新增的题目类型渲染
- 添加多个题目库JSON文件,包含成语、诗词常识、字词飞花令等题目数据
- 调整环境配置,更新开发环境API地址
This commit is contained in:
2026-03-16 17:59:49 +08:00
parent 782c61a38c
commit 771fb807eb
25 changed files with 2482 additions and 2933 deletions

View File

@ -1,468 +0,0 @@
{
"question_bank": [
{
"QuestionId": 27,
"Name": "jiū 表示小鸟的叫声",
"Answer": "啾",
"Type": "text",
"IsGood": 0,
"ImageUrl": ""
},
{
"QuestionId": 27,
"Name": "liú 表示姓名",
"Answer": "刘",
"Type": "text",
"IsGood": 0,
"ImageUrl": ""
},
{
"QuestionId": 27,
"Name": "zhāng 表示姓氏",
"Answer": "张",
"Type": "text",
"IsGood": 1,
"ImageUrl": ""
},
{
"QuestionId": 27,
"Name": "wáng 表示姓氏",
"Answer": "王",
"Type": "text",
"IsGood": 0,
"ImageUrl": ""
},
{
"QuestionId": 27,
"Name": "lǐ 表示姓氏",
"Answer": "李",
"Type": "text",
"IsGood": 1,
"ImageUrl": ""
},
{
"QuestionId": 27,
"Name": "chén 表示姓氏",
"Answer": "陈",
"Type": "text",
"IsGood": 0,
"ImageUrl": ""
},
{
"QuestionId": 27,
"Name": "yáng 表示动物",
"Answer": "羊",
"Type": "text",
"IsGood": 1,
"ImageUrl": ""
},
{
"QuestionId": 27,
"Name": "mǎ 表示动物",
"Answer": "马",
"Type": "text",
"IsGood": 0,
"ImageUrl": ""
},
{
"QuestionId": 27,
"Name": "niǎo 表示动物",
"Answer": "鸟",
"Type": "text",
"IsGood": 1,
"ImageUrl": ""
},
{
"QuestionId": 27,
"Name": "yú 表示动物",
"Answer": "鱼",
"Type": "text",
"IsGood": 0,
"ImageUrl": ""
},
{
"QuestionId": 27,
"Name": "gǒu 表示动物",
"Answer": "狗",
"Type": "text",
"IsGood": 1,
"ImageUrl": ""
},
{
"QuestionId": 27,
"Name": "huā 表示植物",
"Answer": "花",
"Type": "text",
"IsGood": 0,
"ImageUrl": ""
},
{
"QuestionId": 27,
"Name": "shù 表示植物",
"Answer": "树",
"Type": "text",
"IsGood": 1,
"ImageUrl": ""
},
{
"QuestionId": 27,
"Name": "cǎo 表示植物",
"Answer": "草",
"Type": "text",
"IsGood": 0,
"ImageUrl": ""
},
{
"QuestionId": 27,
"Name": "guǒ 表示植物",
"Answer": "果",
"Type": "text",
"IsGood": 1,
"ImageUrl": ""
},
{
"QuestionId": 27,
"Name": "yè 表示植物",
"Answer": "叶",
"Type": "text",
"IsGood": 0,
"ImageUrl": ""
},
{
"QuestionId": 27,
"Name": "shuǐ 表示自然元素",
"Answer": "水",
"Type": "text",
"IsGood": 1,
"ImageUrl": ""
},
{
"QuestionId": 27,
"Name": "huǒ 表示自然元素",
"Answer": "火",
"Type": "text",
"IsGood": 0,
"ImageUrl": ""
},
{
"QuestionId": 27,
"Name": "tǔ 表示自然元素",
"Answer": "土",
"Type": "text",
"IsGood": 1,
"ImageUrl": ""
},
{
"QuestionId": 27,
"Name": "jīn 表示自然元素",
"Answer": "金",
"Type": "text",
"IsGood": 0,
"ImageUrl": ""
},
{
"QuestionId": 27,
"Name": "mù 表示自然元素",
"Answer": "木",
"Type": "text",
"IsGood": 1,
"ImageUrl": ""
},
{
"QuestionId": 27,
"Name": "tiān 表示自然",
"Answer": "天",
"Type": "text",
"IsGood": 0,
"ImageUrl": ""
},
{
"QuestionId": 27,
"Name": "dì 表示自然",
"Answer": "地",
"Type": "text",
"IsGood": 1,
"ImageUrl": ""
},
{
"QuestionId": 27,
"Name": "shān 表示自然",
"Answer": "山",
"Type": "text",
"IsGood": 0,
"ImageUrl": ""
},
{
"QuestionId": 27,
"Name": "chuān 表示自然",
"Answer": "川",
"Type": "text",
"IsGood": 1,
"ImageUrl": ""
},
{
"QuestionId": 27,
"Name": "hé 表示自然",
"Answer": "河",
"Type": "text",
"IsGood": 0,
"ImageUrl": ""
},
{
"QuestionId": 27,
"Name": "rén 表示人类",
"Answer": "人",
"Type": "text",
"IsGood": 1,
"ImageUrl": ""
},
{
"QuestionId": 27,
"Name": "kǒu 表示身体",
"Answer": "口",
"Type": "text",
"IsGood": 0,
"ImageUrl": ""
},
{
"QuestionId": 27,
"Name": "shǒu 表示身体",
"Answer": "手",
"Type": "text",
"IsGood": 1,
"ImageUrl": ""
},
{
"QuestionId": 27,
"Name": "zú 表示身体",
"Answer": "足",
"Type": "text",
"IsGood": 0,
"ImageUrl": ""
},
{
"QuestionId": 27,
"Name": "mù 表示身体",
"Answer": "目",
"Type": "text",
"IsGood": 1,
"ImageUrl": ""
},
{
"QuestionId": 27,
"Name": "ěr 表示身体",
"Answer": "耳",
"Type": "text",
"IsGood": 0,
"ImageUrl": ""
},
{
"QuestionId": 27,
"Name": "bí 表示身体",
"Answer": "鼻",
"Type": "text",
"IsGood": 1,
"ImageUrl": ""
},
{
"QuestionId": 27,
"Name": "shé 表示身体",
"Answer": "舌",
"Type": "text",
"IsGood": 0,
"ImageUrl": ""
},
{
"QuestionId": 27,
"Name": "yá 表示身体",
"Answer": "牙",
"Type": "text",
"IsGood": 1,
"ImageUrl": ""
},
{
"QuestionId": 27,
"Name": "xīn 表示身体",
"Answer": "心",
"Type": "text",
"IsGood": 0,
"ImageUrl": ""
},
{
"QuestionId": 27,
"Name": "gān 表示身体",
"Answer": "肝",
"Type": "text",
"IsGood": 1,
"ImageUrl": ""
},
{
"QuestionId": 27,
"Name": "chī 表示动作",
"Answer": "吃",
"Type": "text",
"IsGood": 0,
"ImageUrl": ""
},
{
"QuestionId": 27,
"Name": "hē 表示动作",
"Answer": "喝",
"Type": "text",
"IsGood": 1,
"ImageUrl": ""
},
{
"QuestionId": 27,
"Name": "zǒu 表示动作",
"Answer": "走",
"Type": "text",
"IsGood": 0,
"ImageUrl": ""
},
{
"QuestionId": 27,
"Name": "pǎo 表示动作",
"Answer": "跑",
"Type": "text",
"IsGood": 1,
"ImageUrl": ""
},
{
"QuestionId": 27,
"Name": "tiào 表示动作",
"Answer": "跳",
"Type": "text",
"IsGood": 0,
"ImageUrl": ""
},
{
"QuestionId": 27,
"Name": "kàn 表示动作",
"Answer": "看",
"Type": "text",
"IsGood": 1,
"ImageUrl": ""
},
{
"QuestionId": 27,
"Name": "tīng 表示动作",
"Answer": "听",
"Type": "text",
"IsGood": 0,
"ImageUrl": ""
},
{
"QuestionId": 27,
"Name": "shuō 表示动作",
"Answer": "说",
"Type": "text",
"IsGood": 1,
"ImageUrl": ""
},
{
"QuestionId": 27,
"Name": "dú 表示动作",
"Answer": "读",
"Type": "text",
"IsGood": 0,
"ImageUrl": ""
},
{
"QuestionId": 27,
"Name": "xiě 表示动作",
"Answer": "写",
"Type": "text",
"IsGood": 1,
"ImageUrl": ""
},
{
"QuestionId": 27,
"Name": "huà 表示动作",
"Answer": "画",
"Type": "text",
"IsGood": 0,
"ImageUrl": ""
},
{
"QuestionId": 27,
"Name": "yī 表示数字",
"Answer": "一",
"Type": "text",
"IsGood": 1,
"ImageUrl": ""
},
{
"QuestionId": 27,
"Name": "èr 表示数字",
"Answer": "二",
"Type": "text",
"IsGood": 0,
"ImageUrl": ""
},
{
"QuestionId": 27,
"Name": "sān 表示数字",
"Answer": "三",
"Type": "text",
"IsGood": 1,
"ImageUrl": ""
},
{
"QuestionId": 27,
"Name": "sì 表示数字",
"Answer": "四",
"Type": "text",
"IsGood": 0,
"ImageUrl": ""
},
{
"QuestionId": 27,
"Name": "wǔ 表示数字",
"Answer": "五",
"Type": "text",
"IsGood": 1,
"ImageUrl": ""
},
{
"QuestionId": 27,
"Name": "liù 表示数字",
"Answer": "六",
"Type": "text",
"IsGood": 0,
"ImageUrl": ""
},
{
"QuestionId": 27,
"Name": "qī 表示数字",
"Answer": "七",
"Type": "text",
"IsGood": 1,
"ImageUrl": ""
},
{
"QuestionId": 27,
"Name": "bā 表示数字",
"Answer": "八",
"Type": "text",
"IsGood": 0,
"ImageUrl": ""
},
{
"QuestionId": 27,
"Name": "jiǔ 表示数字",
"Answer": "九",
"Type": "text",
"IsGood": 1,
"ImageUrl": ""
},
{
"QuestionId": 27,
"Name": "shí 表示数字",
"Answer": "十",
"Type": "text",
"IsGood": 0,
"ImageUrl": ""
}
]
}

View File

@ -0,0 +1,279 @@
{
"question_bank": [
{
"QuestionId": 32,
"Name": "重阳、习俗、思念",
"Answer": "遥知兄弟登高处,遍插茱萸少一人。",
"KeyWord": "处",
"KeyWordsIndex": 6,
"Type": "text",
"IsGood": 0,
"ImageUrl": "",
"IsDisabled": false
},
{
"QuestionId": 32,
"Name": "边塞、征战、思乡",
"Answer": "秦时明月汉时关,万里长征人未还。",
"KeyWord": "关",
"KeyWordsIndex": 6,
"Type": "text",
"IsGood": 0,
"ImageUrl": "",
"IsDisabled": false
},
{
"QuestionId": 32,
"Name": "军中、饮酒、欢快",
"Answer": "葡萄美酒夜光杯,欲饮琵琶马上催。",
"KeyWord": "催",
"KeyWordsIndex": 13,
"Type": "text",
"IsGood": 0,
"ImageUrl": "",
"IsDisabled": false
},
{
"QuestionId": 32,
"Name": "初夏、田园、蔬果",
"Answer": "梅子金黄杏子肥,麦花雪白菜花稀。",
"KeyWord": "肥",
"KeyWordsIndex": 6,
"Type": "text",
"IsGood": 0,
"ImageUrl": "",
"IsDisabled": false
},
{
"QuestionId": 32,
"Name": "童趣、追跑、田野",
"Answer": "儿童急走追黄蝶,飞入菜花无处寻。",
"KeyWord": "蝶",
"KeyWordsIndex": 6,
"Type": "text",
"IsGood": 0,
"ImageUrl": "",
"IsDisabled": false
},
{
"QuestionId": 32,
"Name": "送别、赤诚、朋友",
"Answer": "洛阳亲友如相问,一片冰心在玉壶。",
"KeyWord": "心",
"KeyWordsIndex": 10,
"Type": "text",
"IsGood": 0,
"ImageUrl": "",
"IsDisabled": false
},
{
"QuestionId": 32,
"Name": "梅花、香气、傲骨",
"Answer": "不要人夸好颜色,只留清气满乾坤。",
"KeyWord": "好",
"KeyWordsIndex": 4,
"Type": "text",
"IsGood": 0,
"ImageUrl": "",
"IsDisabled": false
},
{
"QuestionId": 32,
"Name": "遗愿、爱国、失地",
"Answer": "死去元知万事空,但悲不见九州同。",
"KeyWord": "悲",
"KeyWordsIndex": 8,
"Type": "text",
"IsGood": 0,
"ImageUrl": "",
"IsDisabled": false
},
{
"QuestionId": 32,
"Name": "水滨、笙乐、忧愁",
"Answer": "山外青山楼外楼,西湖歌舞几时休?",
"KeyWord": "休",
"KeyWordsIndex": 13,
"Type": "text",
"IsGood": 0,
"ImageUrl": "",
"IsDisabled": false
},
{
"QuestionId": 32,
"Name": "祈求、变革、贤能",
"Answer": "我劝天公重抖擞,不拘一格降人材。",
"KeyWord": "公",
"KeyWordsIndex": 3,
"Type": "text",
"IsGood": 0,
"ImageUrl": "",
"IsDisabled": false
},
{
"QuestionId": 32,
"Name": "深夜、羁客、寒冷",
"Answer": "月落乌啼霜满天,江枫渔火对愁眠。",
"KeyWord": "愁",
"KeyWordsIndex": 12,
"Type": "text",
"IsGood": 0,
"ImageUrl": "",
"IsDisabled": false
},
{
"QuestionId": 32,
"Name": "登科、飞驰、盛景",
"Answer": "春风得意马蹄疾,一日看尽长安花。",
"KeyWord": "花",
"KeyWordsIndex": 13,
"Type": "text",
"IsGood": 0,
"ImageUrl": "",
"IsDisabled": false
},
{
"QuestionId": 32,
"Name": "耕地、纺织、协作",
"Answer": "昼出耘田夜绩麻,村庄儿女各当家。",
"KeyWord": "村",
"KeyWordsIndex": 7,
"Type": "text",
"IsGood": 0,
"ImageUrl": "",
"IsDisabled": false
},
{
"QuestionId": 32,
"Name": "悠闲、放牧、吹奏",
"Answer": "牧童归去横牛背,短笛无腔信口吹。",
"KeyWord": "背",
"KeyWordsIndex": 6,
"Type": "text",
"IsGood": 0,
"ImageUrl": "",
"IsDisabled": false
},
{
"QuestionId": 32,
"Name": "童趣、玩耍、敲击",
"Answer": "稚子金盆脱晓冰,彩丝穿取当银钲。",
"KeyWord": "脱",
"KeyWordsIndex": 4,
"Type": "text",
"IsGood": 0,
"ImageUrl": "",
"IsDisabled": false
},
{
"QuestionId": 32,
"Name": "欣喜、回家、畅饮",
"Answer": "白日放歌须纵酒,青春作伴好还乡。",
"KeyWord": "须",
"KeyWordsIndex": 4,
"Type": "text",
"IsGood": 0,
"ImageUrl": "",
"IsDisabled": false
},
{
"QuestionId": 32,
"Name": "雄师、豪迈、跋涉",
"Answer": "红军不怕远征难,万水千山只等闲。",
"KeyWord": "怕",
"KeyWordsIndex": 3,
"Type": "text",
"IsGood": 0,
"ImageUrl": "",
"IsDisabled": false
},
{
"QuestionId": 32,
"Name": "中秋、怀人、月亮",
"Answer": "今夜月明人尽望,不知秋思落谁家。",
"KeyWord": "思",
"KeyWordsIndex": 10,
"Type": "text",
"IsGood": 0,
"ImageUrl": "",
"IsDisabled": false
},
{
"QuestionId": 32,
"Name": "无畏、高尚、咏物",
"Answer": "粉骨碎身浑不怕,要留清白在人间。",
"KeyWord": "浑",
"KeyWordsIndex": 4,
"Type": "text",
"IsGood": 0,
"ImageUrl": "",
"IsDisabled": false
},
{
"QuestionId": 32,
"Name": "坚韧、勇气、咏物",
"Answer": "咬定青山不放松,立根原在破岩中。",
"KeyWord": "根",
"KeyWordsIndex": 8,
"Type": "text",
"IsGood": 0,
"ImageUrl": "",
"IsDisabled": false
},
{
"QuestionId": 32,
"Name": "送别、边塞、畅饮",
"Answer": "劝君更尽一杯酒,西出阳关无故人。",
"KeyWord": "关",
"KeyWordsIndex": 10,
"Type": "text",
"IsGood": 0,
"ImageUrl": "",
"IsDisabled": false
},
{
"QuestionId": 32,
"Name": "细雨、嫩绿、朦胧",
"Answer": "天街小雨润如酥,草色遥看近却无。",
"KeyWord": "街",
"KeyWordsIndex": 1,
"Type": "text",
"IsGood": 0,
"ImageUrl": "",
"IsDisabled": false
},
{
"QuestionId": 32,
"Name": "哭泣、沦陷、期盼",
"Answer": "遗民泪尽胡尘里,南望王师又一年。",
"KeyWord": "师",
"KeyWordsIndex": 10,
"Type": "text",
"IsGood": 0,
"ImageUrl": "",
"IsDisabled": false
},
{
"QuestionId": 32,
"Name": "酒菜、好客、乡村",
"Answer": "莫笑农家腊酒浑,丰年留客足鸡豚。",
"KeyWord": "足",
"KeyWordsIndex": 11,
"Type": "text",
"IsGood": 0,
"ImageUrl": "",
"IsDisabled": false
},
{
"QuestionId": 32,
"Name": "初夏、喧闹、江南",
"Answer": "黄梅时节家家雨,青草池塘处处蛙。",
"KeyWord": "池",
"KeyWordsIndex": 9,
"Type": "text",
"IsGood": 0,
"ImageUrl": "",
"IsDisabled": false
}
]
}