|
@@ -60,6 +60,20 @@ export class CardController {
|
|
|
return { data: data }
|
|
return { data: data }
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ static async cardJsonById (id: string) {
|
|
|
|
|
+ const { data } = await getCardJsonById(id)
|
|
|
|
|
+
|
|
|
|
|
+ const dataJson = JSON.parse(data)
|
|
|
|
|
+
|
|
|
|
|
+ if (dataJson.header.card_type === 5) {
|
|
|
|
|
+ return CardController.card5JsonById(dataJson)
|
|
|
|
|
+ } else if (dataJson.header.card_type === 21) {
|
|
|
|
|
+ return CardController.card21JsonById(dataJson)
|
|
|
|
|
+ } else {
|
|
|
|
|
+ throw new Error('不支持的卡片类型')
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
/**
|
|
/**
|
|
|
*
|
|
*
|
|
|
* @description 根据id获取卡片json
|
|
* @description 根据id获取卡片json
|
|
@@ -71,10 +85,8 @@ export class CardController {
|
|
|
* selected字段代表是否选择, 存在music_name是 selected是true 否则为false
|
|
* selected字段代表是否选择, 存在music_name是 selected是true 否则为false
|
|
|
*
|
|
*
|
|
|
*/
|
|
*/
|
|
|
- static async card5JsonById (id: string) {
|
|
|
|
|
- const { data } = await getCardJsonById(id)
|
|
|
|
|
-
|
|
|
|
|
- const dataJson = JSON.parse(data) as API.CardJson
|
|
|
|
|
|
|
+ static async card5JsonById (_dataJson: API.CardJson) {
|
|
|
|
|
+ const dataJson = JSON.parse(JSON.stringify(_dataJson)) as API.CardJson
|
|
|
|
|
|
|
|
(dataJson as API.CardJson).touch_key = (dataJson as API.CardJson).touch_key.map((item, index) => {
|
|
(dataJson as API.CardJson).touch_key = (dataJson as API.CardJson).touch_key.map((item, index) => {
|
|
|
if ('music_name' in item) {
|
|
if ('music_name' in item) {
|
|
@@ -95,15 +107,38 @@ export class CardController {
|
|
|
}
|
|
}
|
|
|
})
|
|
})
|
|
|
|
|
|
|
|
- return { data: dataJson }
|
|
|
|
|
|
|
+ return { data: dataJson, cardType: dataJson.header.card_type }
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- static async card21JsonById (id:string) {
|
|
|
|
|
- const { data } = await getCardJsonById(id)
|
|
|
|
|
-
|
|
|
|
|
- const dataJson = JSON.parse(data) as API.CardJson21
|
|
|
|
|
|
|
+ static async card21JsonById (_dataJson: API.CardJson21) {
|
|
|
|
|
+ const dataJson = JSON.parse(JSON.stringify({
|
|
|
|
|
+ header:
|
|
|
|
|
+ {
|
|
|
|
|
+ card_type: 21,
|
|
|
|
|
+ card_insert: { is_break: 3, music_name: 'yx3.mp3' },
|
|
|
|
|
+ card_remove: { is_break: 1 },
|
|
|
|
|
+ finish: { is_break: 3, music_name: 'wctk.mp3' },
|
|
|
|
|
+ grade: 1,
|
|
|
|
|
+ title: { is_break: 1, page: 293 }
|
|
|
|
|
+ },
|
|
|
|
|
+ game_list: [
|
|
|
|
|
+ // {
|
|
|
|
|
+ // has_click_group: { is_break: 1, music_name: 'zzdg.mp3' },
|
|
|
|
|
+ // has_click_single: { is_break: 1, music_name: 'yjdg.mp3' },
|
|
|
|
|
+ // main_subject: { is_break: 3, music_name: '293tg.mp3' },
|
|
|
|
|
+ // multiple_err: { is_break: 1 },
|
|
|
|
|
+ // ordered_multiple_err: { is_break: 1, music_name: 'yxcw.mp3' },
|
|
|
|
|
+ // rule: 7,
|
|
|
|
|
+ // still_have: { is_break: 3, music_name: 'hmwc.mp3' },
|
|
|
|
|
+ // touch_key: [[{ is_break: 3, value: 0 }], [{ is_break: 3, value: 0 }], [{ is_break: 3, value: 0 }]],
|
|
|
|
|
+ // wait_30s: { is_break: 1, music_name: 'dtdd.mp3' },
|
|
|
|
|
+ // wait_90s: { is_break: 1, music_name: 'dtdd.mp3' },
|
|
|
|
|
+ // items: [{ sub_subject: { music_name: '100tg.mp3', mb: 1, ok: '', ob: 1, err: '', eb: 1 }, ok_key: [{ value: 4, music_name: '100tm2.mp3', is_break: 1, select: true }], err_key: [], ok_key_voice: {}, err_key_voice: {} }]
|
|
|
|
|
+ // }
|
|
|
|
|
+ ]
|
|
|
|
|
+ }))
|
|
|
console.log('卡片是21时返回的参数', dataJson)
|
|
console.log('卡片是21时返回的参数', dataJson)
|
|
|
- return { data: CardController.itemsToSteps(dataJson) }
|
|
|
|
|
|
|
+ return { data: CardController.itemsToSteps(dataJson), cardType: dataJson.header.card_type }
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
static createRectByIndex (index: number) {
|
|
static createRectByIndex (index: number) {
|
|
@@ -184,6 +219,7 @@ export class CardController {
|
|
|
// 把json中items下其他项解析到steps
|
|
// 把json中items下其他项解析到steps
|
|
|
static itemsToSteps (data: API.CardJson21) {
|
|
static itemsToSteps (data: API.CardJson21) {
|
|
|
const newData = JSON.parse(JSON.stringify(data))
|
|
const newData = JSON.parse(JSON.stringify(data))
|
|
|
|
|
+ console.log('解析items', newData)
|
|
|
|
|
|
|
|
newData.game_list.forEach((game: any) => {
|
|
newData.game_list.forEach((game: any) => {
|
|
|
if (game.rule === 7) {
|
|
if (game.rule === 7) {
|