typeing.d.ts 6.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279
  1. declare namespace ROUTER {
  2. type RoutesProps = RouteRecordRaw & {
  3. title: string,
  4. link: boolean
  5. }
  6. type RouterRecords = {
  7. navbar: {
  8. route: RoutesProps[],
  9. selectPath: string[]
  10. },
  11. sider: {
  12. route: RoutesProps[],
  13. selectPath: string,
  14. openKeys: string[]
  15. },
  16. }
  17. }
  18. declare namespace SERVICE {
  19. type Response<T> = {
  20. status: number,
  21. msg: string,
  22. data: T,
  23. sum: number
  24. }
  25. }
  26. declare namespace API {
  27. interface Stage {
  28. id?: string,
  29. title: string
  30. parentId?: string,
  31. child: Stage[]
  32. }
  33. interface Card {
  34. 'id'?: string,
  35. 'page': string,
  36. 'name': string,
  37. 'parentId': string,
  38. 'img': string,
  39. 'thumbnail': string
  40. card_type: 5 | 21
  41. }
  42. interface Feedback {
  43. 'id'?: string,
  44. cardId: string
  45. 'page': string,
  46. feedback: string
  47. }
  48. interface Audio {
  49. id?: string,
  50. title: string,
  51. url: string
  52. state: 'stopped' | 'playing' | 'paused'
  53. }
  54. /* is_break 音乐是否需要打断 */
  55. /* 0,能被其他音频打断,不能打断其他音频;
  56. 1,能被其他音频打断,能打断其他音频;
  57. 2,不能被其他音频打断,不能打断其他音频;
  58. 3,不能被其他音频打断,能打断其他音频;
  59. */
  60. type is_break = 0 | 1 | 2 | 3
  61. type Btn_select = 'G' | 'R' | 'P' | 'T' | 'B' | 'Y' | ''
  62. type Rule = 7 | 9 | 10 | 14 | 15 | 16 | 17 | 18
  63. type BaseItem = {'music_name': string, 'is_break': is_break }
  64. interface CardDot {
  65. name: string,
  66. col: number,
  67. row: number
  68. selected: boolean
  69. id: number
  70. music_name: number
  71. }
  72. interface CardJson {
  73. header: {
  74. card_type: 5 | 21
  75. title: {
  76. 'category': number,
  77. 'id': number,
  78. 'sub_id': number,
  79. 'page': number,
  80. 'music_name': string,
  81. 'is_break': number
  82. },
  83. 'card_insert': {
  84. 'music_name': string,
  85. 'is_break': number
  86. },
  87. 'card_knob': {
  88. 'music_name': string,
  89. 'is_break': number
  90. },
  91. 'card_remove': {
  92. 'music_name': string,
  93. 'is_break': number
  94. },
  95. // 一次全部正确
  96. 'ack_ok': {
  97. 'music_name': string,
  98. 'is_break': number
  99. },
  100. // 多次全部正确
  101. 'ack_mdf': {
  102. 'music_name': string,
  103. 'is_break': number
  104. },
  105. // 6钮错误
  106. 'ack_err': {
  107. 'music_name': string,
  108. 'is_break': number
  109. },
  110. // 答错两次以上
  111. 'remind_ack': {
  112. 'music_name': string,
  113. 'is_break': number
  114. },
  115. // 提示钮
  116. 'remind_button': {
  117. 'music_name': string,
  118. 'is_break': number
  119. },
  120. // 点击过后5秒未答题
  121. 'remind_not_ack': {
  122. 'music_name': string,
  123. 'is_break': number
  124. },
  125. 'wait_30s': {
  126. 'music_name': string,
  127. 'is_break': number
  128. },
  129. 'wait_90s': {
  130. 'music_name': string,
  131. 'is_break': number
  132. }
  133. }
  134. touch_key: {
  135. music_name: string,
  136. is_break: number,
  137. id: number,
  138. selected: boolean
  139. name: string,
  140. row: number,
  141. col: number
  142. }[]
  143. slide_knob?: {
  144. score1: Btn_select,
  145. score2: Btn_select
  146. score3: Btn_select
  147. score4: Btn_select
  148. score5: Btn_select
  149. score6: Btn_select
  150. purple: {music_name: string, is_break: number, key: string }[],
  151. red: {music_name: string, is_break: number, key: string }[],
  152. blue: {music_name: string, is_break: number, key: string }[],
  153. green: {music_name: string, is_break: number, key: string }[],
  154. tangerine: {music_name: string, is_break: number, key: string }[],
  155. yellow: {music_name: string, is_break: number, key: string }[]
  156. },
  157. }
  158. interface CardJsonDefault {
  159. 'ack_err': {
  160. 'is_break': 0,
  161. 'music_name': ''
  162. },
  163. 'ack_mdf': {
  164. 'is_break': 0,
  165. 'music_name': ''
  166. },
  167. 'ack_ok': {
  168. 'is_break': 0,
  169. 'music_name': ''
  170. },
  171. 'button_rep': {
  172. 'is_break': 0,
  173. 'music_name': ''
  174. },
  175. 'card_insert': {
  176. 'is_break': 0,
  177. 'music_name': ''
  178. },
  179. 'card_remove': {
  180. 'is_break': 0,
  181. 'music_name': ''
  182. },
  183. 'finish': {
  184. 'is_break': 0,
  185. 'music_name': ''
  186. },
  187. 'remind_ack': {
  188. 'is_break': 0,
  189. 'music_name': ''
  190. },
  191. 'remind_button': {
  192. 'is_break': 0,
  193. 'music_name': ''
  194. },
  195. 'remind_not_ack': {
  196. 'is_break': 0,
  197. 'music_name': ''
  198. },
  199. 'wait_30s': {
  200. 'is_break': 0,
  201. 'music_name': ''
  202. },
  203. 'wait_90s': {
  204. 'is_break': 0,
  205. 'music_name': ''
  206. }
  207. }
  208. type CardJson21Item = CardJson21['game_list'][0]['items'][0]
  209. type CardJson21TouchKey = ({ 'value': number } & {'music_name': string, 'is_break': is_break })[]
  210. interface CardJson21 {
  211. 'header': {
  212. 'card_type': number,
  213. 'grade'?: number,
  214. 'g_number'?: number,
  215. 'title': {
  216. 'category': number,
  217. 'id': number,
  218. 'sub_id': number,
  219. 'page': number,
  220. 'music_name': string,
  221. 'is_break': is_break
  222. },
  223. 'card_insert': BaseItem,
  224. 'card_remove': BaseItem,
  225. 'finish': BaseItem
  226. },
  227. 'game_list': {
  228. 'rule': Rule, // 卡片规则
  229. 'main_subject': BaseItem, // 每个游戏读题音
  230. 'ordered_multiple_err': BaseItem, // 顺序多选错误音
  231. 'has_click_single': BaseItem // 这个已经点过了
  232. 'has_click_group': BaseItem // 这组已经点过了
  233. 'still_have': BaseItem // 再次点击
  234. 'multiple_err': BaseItem // 多次错误语音
  235. 'wait_30s': BaseItem // 等待30s的语音
  236. 'wait_90s': BaseItem // 等待90s的语音
  237. 'touch_key': ({ 'value': number } & BaseItem)[][], // 21时顶部三个的配置
  238. 'items': {
  239. 'sub_subject': {
  240. 'music_name': string, // 单节小标题
  241. 'mb': number,
  242. 'ok': string,
  243. 'ob': number,
  244. 'err': string,
  245. 'eb': number
  246. },
  247. 'ok_key': ({ 'value': number } & BaseItem & CardDot)[] // 正确的键位key
  248. 'err_key': ({ 'value': number} & BaseItem & CardDot)[], // 错误的键位key
  249. }[]
  250. 'ok_key_voice': ({ 'value': number | string} & BaseItem & CardDot)[] // 正确的声音
  251. 'err_key_voice': ({ 'value': number | string} & BaseItem & CardDot)[] // 点击错误的声音
  252. }[]
  253. }
  254. interface Category {
  255. id: string
  256. title: string
  257. choose: boolean
  258. }
  259. }