瀏覽代碼

添加声轨校验

yuanliang 1 年之前
父節點
當前提交
e62d96ef8e
共有 1 個文件被更改,包括 41 次插入0 次删除
  1. 41 0
      src/views/music-library/music-sheet/modal/music-operationV2.tsx

+ 41 - 0
src/views/music-library/music-sheet/modal/music-operationV2.tsx

@@ -37,6 +37,7 @@ import MusicSheetOwnerDialog from '@views/music-library/music-sheet/modal/musicS
 import {sysApplicationPage} from '@views/menu-manage/api'
 import {filterPointCategory} from '@views/teaching-manage/unit-test'
 import MusicCreateImg from './music-create-img'
+import {TABS_ROUTES} from "@/store/mutation-types";
 
 /**
  * 获取指定元素下一个Note元素
@@ -371,6 +372,46 @@ export default defineComponent({
         if (error) {
           return
         }
+        // 校验合奏时声轨与乐器是否存在不匹配情况
+        if (forms.musicSheetType == 'CONCERT') {
+          let set = [] as any;
+          const {data} = await musicalInstrumentPage({page: 1, rows: 9999})
+          data.rows.map((row: any) => {
+            if (row.code) {
+              row.code.split(',').forEach((code: string) => {
+                let temp = code.replaceAll(' ', '')
+                set.push(temp.toLocaleLowerCase())
+              })
+            }
+          })
+          let unDefinedTrack = [] as any
+          forms.multiTracksSelection.forEach((item: any) => {
+            if (item) {
+              let contain = false;
+              let code = item.replaceAll(' ', '').toLocaleLowerCase()
+              for (let i = 0; i < set.length; i++) {
+                if (set[i].startsWith(code) || set[i].endsWith(code)) {
+                  contain = true
+                  break
+                }
+              }
+              if (!contain) {
+                unDefinedTrack.push(item)
+              }
+            }
+          })
+          if (unDefinedTrack.length > 0) {
+            dialog.warning({
+              title: '提示',
+              content: `声轨未配置:${unDefinedTrack.join(',')}`,
+              positiveText: '确定',
+              onPositiveClick: () => {
+              },
+            })
+            return
+          }
+        }
+
         if (!state.isAutoSave) {
           state.isAutoSave = true
           state.productOpen = true