Browse Source

添加节奏练习

lex-xin 6 months ago
parent
commit
4559ba3b3d

+ 11 - 1
src/views/tempo-practice/beat-desc.ts

@@ -591,5 +591,15 @@ export const beatDesc = {
         type: 'sound'
       }
     ]
-  }
+  },
+  32: {
+    beatNum: 1,
+    beatNo: '4-1',
+    attribute: [
+      {
+        number: 4,
+        type: 'reset'
+      }
+    ]
+  },
 } as any;

BIN
src/views/tempo-practice/images/music/f-6-1.png


BIN
src/views/tempo-practice/images/music/j-32.png


+ 14 - 4
src/views/tempo-practice/setting-modal/index.tsx

@@ -17,6 +17,7 @@ import {
   renderScoreModal,
   setting,
   setting_modal,
+  getTempList,
   tempo4,
   tempo8
 } from '../setting';
@@ -64,11 +65,19 @@ export default defineComponent({
 
     const tempoList = computed(() => {
       if (['4-2', '4-3', '4-4'].includes(state.beat)) {
-        return tempo4;
+        return getTempList(state.element).tempo4;
       } else if (['8-3', '8-6'].includes(state.beat)) {
-        return tempo8;
+        return  getTempList(state.element).tempo8;
       }
-      return tempo4;
+      return  getTempList(state.element).tempo4;
+    });
+    const tempoListNum = computed(() => {
+      if (['4-2', '4-3', '4-4'].includes(state.beat)) {
+        return getTempList(state.element).tempo4Num;
+      } else if (['8-3', '8-6'].includes(state.beat)) {
+        return  getTempList(state.element).tempo8Num;
+      }
+      return  getTempList(state.element).tempo4Num;
     });
 
     // 重置选中数据
@@ -178,7 +187,8 @@ export default defineComponent({
     };
 
     const tempoListData = computed(() => {
-      const list = Object.keys(tempoList.value);
+      const list = tempoListNum.value  // Object.keys(tempoList.value);
+      console.log(list, 'list')
       return list.map(key => {
         return {
           index: key,

+ 51 - 9
src/views/tempo-practice/setting.ts

@@ -71,14 +71,56 @@ for (let i = 15; i <= 31; i++) {
 export const tempo8 = temp2;
 export const tempo8Num = tempNum2
 
+export const getTempList = (element: 'jianpu' | 'staff') => {
+  // 
+  let temp: any = {};
+  let tempNum = [] as any
+  for (let i = 1; i <= 14; i++) {
+    temp[i] = i + '.png';
+    tempNum.push(i)
+  }
+
+  let temp2: any = {};
+  let tempNum2 = [] as any
+  for (let i = 15; i <= 31; i++) {
+    temp2[i] = i + '.png';
+    tempNum2.push(i)
+  }
+
+  if(element === "jianpu") {
+    temp = {}
+    tempNum = []
+    temp2 = {}
+    tempNum2 = []
+    for (let i = 1; i <= 14; i++) {
+      temp[i] = i + '.png';
+      tempNum.push(i)
+      if(i === 5) {
+        temp[32] = '32.png'
+        tempNum.push(32)
+      }
+    }
+    for (let i = 15; i <= 31; i++) {
+      temp2[i] = i + '.png';
+      tempNum2.push(i)
+    }
+  } 
+  return {
+    tempo4: temp,
+    tempo4Num: tempNum,
+    tempo8: temp2,
+    tempo8Num: tempNum2
+  }
+}
+
 /** 随机生成元素 */
 export const randomScoreElement = (element?: string) => {
   // const tempoList = setting.tempo;
-  let tempoList = tempo4Num || [] as any
+  let tempoList = getTempList(setting.element).tempo4Num || [] as any
   if (['4-2', '4-3', '4-4'].includes(setting_modal.beat)) {
-    tempoList = tempo4Num;
+    tempoList = getTempList(setting.element).tempo4Num;
   } else if (['8-3', '8-6'].includes(setting_modal.beat)) {
-    tempoList = tempo8Num;
+    tempoList = getTempList(setting.element).tempo8Num;
   }
   const prefix = setting.element === 'jianpu' ? 'j-' : 'f-';
   if (element) {
@@ -113,11 +155,11 @@ export const elementDirection = (type: string, index: number) => {
   let ele = '';
   let i = 0;
   // const tempoList = setting.tempo;
-  let tempoList = tempo4Num || [] as any
+  let tempoList = getTempList(setting.element).tempo4Num || [] as any
   if (['4-2', '4-3', '4-4'].includes(setting_modal.beat)) {
-    tempoList = tempo4Num;
+    tempoList = getTempList(setting.element).tempo4Num;
   } else if (['8-3', '8-6'].includes(setting_modal.beat)) {
-    tempoList = tempo8Num;
+    tempoList = getTempList(setting.element).tempo8Num;
   }
   const toIndex = tempoList.findIndex((t: any) => Number(t) === index);
   if (type === 'up') {
@@ -204,11 +246,11 @@ export const initSelectScorePart = (i?: number, j?: number) => {
 /** 随机生成元素  设置中 */
 export const randomScoreElementModal = (element?: string) => {
   // const tempoList = setting.tempo;
-  let tempoList = tempo4Num || [] as any
+  let tempoList = getTempList(setting.element).tempo4Num || [] as any
   if (['4-2', '4-3', '4-4'].includes(setting_modal.beat)) {
-    tempoList = tempo4Num;
+    tempoList = getTempList(setting.element).tempo4Num;
   } else if (['8-3', '8-6'].includes(setting_modal.beat)) {
-    tempoList = tempo8Num;
+    tempoList = getTempList(setting.element).tempo8Num;
   }
 
   const prefix = setting_modal.element === 'jianpu' ? 'j-' : 'f-';