Procházet zdrojové kódy

添加乐器编码

lex-xin před 1 měsícem
rodič
revize
1156f51286

+ 210 - 209
src/constant/instruments.ts

@@ -1,218 +1,219 @@
-const instruments = {
-  "Acoustic Grand Piano": "大钢琴",
-  "Bright Acoustic Piano": "明亮的钢琴",
-  "Electric Grand Piano": "电钢琴",
-  "Rhodes Piano": "柔和的电钢琴",
-  "Chorused Piano": "加合唱效果的电钢琴",
-  "Harpsichord": "羽管键琴",
-  "Clavichord": "科拉维科特琴",
-  "Celesta": "钢片琴",
-  "Glockenspiel": "钢片琴",
-  "Music box": "八音盒",
-  "Vibraphone": "颤音琴",
-  "Marimba": "马林巴",
-  "Xylophone": "木琴",
-  "Tubular Bells": "管钟",
-  "Dulcimer": "大扬琴",
-  "Hammond Organ": "击杆风琴",
-  "Percussive Organ": "打击式风琴",
-  "Rock Organ": "摇滚风琴",
-  "Church Organ": "教堂风琴",
-  "Reed Organ": "簧管风琴",
-  "Accordian": "手风琴",
-  "Harmonica": "口琴",
-  "Tango Accordian": "探戈手风琴",
-  "Acoustic Guitar": "钢弦吉他",
-  "Electric Guitar": "闷音电吉他",
-  "Overdriven Guitar": "加驱动效果的电吉他",
-  "Distortion Guitar": "加失真效果的电吉他",
-  "Guitar Harmonics": "吉他和音",
-  "Acoustic Bass": "大贝司",
-  "Electric Bass": "电贝司",
-  "Fretless Bass": "无品贝司",
-  "Slap Bass": "掌击",
-  "Synth Bass": "电子合成",
-  "Violin": "小提琴",
-  "Viola": "中提琴",
-  "Cello": "大提琴",
-  "Contrabass": "低音大提琴",
-  "Tremolo Strings": "弦乐群颤音音色",
-  "Pizzicato Strings": "弦乐群拨弦音色",
-  "Orchestral Harp": "竖琴",
-  "Timpani": "定音鼓",
-  "String Ensemble": "弦乐合奏音色",
-  "Synth Strings": "合成弦乐合奏音色",
-  "Choir Aahs": "人声合唱",
-  "Voice Oohs": "人声",
-  "Synth Voice": "合成人声",
-  "Orchestra Hit": "管弦乐敲击齐奏",
-  "Trumpet": "小号",
-  "Trombone": "长号",
-  "Tuba": "大号",
-  "Muted Trumpet": "加弱音器小号",
-  "French Horn": "法国号",
-  "Brass Section": "铜管组",
-  "Synth Brass": "合成铜管音色",
-  "Soprano Sax": "高音萨克斯管",
-  "Alto Sax": "中音萨克斯管",
-  "Tenor Sax": "次中音萨克斯管",
-  "Baritone Sax": "低音萨克斯管",
-  "Oboe": "双簧管",
-  "English Horn": "英国管",
-  "Bassoon": "巴松",
-  "Soprano Saxophone": "高音萨克斯管",
-  "Alto Saxophone": "中音萨克斯管",
-  "Tenor Saxophone": "次中音萨克斯管",
-  "Baritone Saxophone": "上低音萨克斯管",
-  "Piccolo": "短笛",
-  "Flute": "长笛",
-  "Recorder": "竖笛",
-  "Soprano Recorder": "高音竖笛",
-  "Pan Flute": "排箫",
-  "Bottle Blow": "瓶木管",
-  "Whistle": "口哨声",
-  "Ocarina": "陶笛",
-  "Lead": "合成主音",
-  "Lead lead": "合成主音",
-  "Pad age": "合成音色",
-  "Pad": "合成音色",
-  "FX": "合成效果  科幻",
-  "Sitar": "西塔尔",
-  "Banjo": "班卓琴",
-  "Shamisen": "三昧线",
-  "Koto": "十三弦筝",
-  "Kalimba": "卡林巴",
-  "Bagpipe": "风笛",
-  "Fiddle": "民族提琴",
-  "Shanai": "山奈",
-  "Tinkle Bell": "叮当铃",
-  "Agogos": "阿戈戈铃",
-  "Steel Drums": "钢鼓",
-  "Taiko Drum": "太鼓",
-  "Melodic Toms": "嗵嗵鼓",
-  "Synth Drums": "合成鼓",
-  "Reverse Cymbals": "反向镲",
-  "Agogo Bells": "阿戈戈铃",
-  "Taiko Drums": "太鼓",
-  "Bongos": "邦戈鼓",
-  "Bongo Bell": "邦戈铃",
-  "Congas": "康加鼓",
-  "Guiro": "刮壶",
-  "Guitar Fret Noise": "吉他换把杂音",
-  "Breath Noise": "呼吸声",
-  "Seashore": "海浪声",
-  "Bird Tweet": "鸟鸣",
-  "Telephone Ring": "电话铃",
-  "Helicopter": "直升机",
-  "Applause": "鼓掌声",
-  "Gunshot": "枪声",
-  "Acoustic Bass Drum": "大鼓",
-  "Bass Drum": "大鼓",
-  "Side Drum": "小鼓鼓边",
-  "Acoustic Snare": "小鼓",
-  "Hand Claps": "拍手",
-  "Electric Snare": "小鼓",
-  "Low Floor Tom": "低音嗵鼓",
-  "Closed Hi-Hat": "闭合踩镲",
-  "High Floor Tom": "高音落地嗵鼓",
-  "Pedal Hi-Hat": "脚踏踩镲",
-  "Low Tom": "低音嗵鼓",
-  "Open Hi-Hat": "开音踩镲",
-  "Low-Mid Tom": "中低音嗵鼓",
-  "Hi Mid Tom": "高音鼓",
-  "Crash Cymbals": "对镲",
-  "High Tom": "高音嗵鼓",
-  "Ride Cymbals": "叮叮镲",
-  "Chinese Cymbals": "中国镲",
-  "Ride Bell": "圆铃",
-  "Tambourine": "铃鼓",
-  "Splash Cymbal": "溅音镲",
-  "Cowbell": "牛铃",
-  "Crash Cymbal": "强音钹",
-  "Vibra-Slap": "颤音器",
-  "Ride Cymbal": "打点钹",
-  "Hi Bongo": "高音邦戈鼓",
-  "Low Bongo": "低音邦戈鼓",
-  "Mute Hi Conga": "弱音高音康加鼓",
-  "Open Hi Conga": "强音高音康加鼓",
-  "Low Conga": "低音康加鼓",
-  "High Timbale": "高音天巴鼓",
-  "Low Timbale": "低音天巴鼓",
-  "High Agogo": "高音阿戈戈铃",
-  "Low Agogo": "低音阿戈戈铃",
-  "Cabasa": "卡巴萨",
-  "Maracas": "沙锤",
-  "Short Whistle": "短口哨",
-  "Long Whistle": "长口哨",
-  "Short Guiro": "短刮壶",
-  "Long Guiro": "长刮壶",
-  "Claves": "响棒",
-  "Hi Wood Block": "高音木鱼",
-  "Low Wood Block": "低音木鱼",
-  "Mute Triangle": "弱音三角铁",
-  "Open Triangle": "强音三角铁",
-  "Drum Set": "架子鼓",
-  "Hulusi flute": "葫芦丝",
-  "Melodica": "口风琴",
-  "Snare Drum": "小军鼓",
-  "Horn in F": "圆号",
-  "Horns in F": "圆号",
-  "Triangle": "三角铁",
-  "Vibrato": "颤音琴",
-  "Suspend Cymbals": "吊镲",
-  "Suspended Cymbals": "吊镲",
-  "Tom-Toms": "嗵嗵鼓",
-  "Bell": "铃铛",
-  "Bells": "铃铛",
-  "Alto Clarinet": "中音单簧管",
-  "Bass Clarinet": "低音单簧管",
-  "Clarinet": "单簧管",
-  "Cornet": "短号",
-  "Euphonium": "上低音号",
-  "crash cymbals": "对镲",
-  "Castanets": "响板",
-  "Shaker": "沙锤",
-  "Mark tree": "音树",
-  "Chimes": "管钟",
-  "Mark Tree": "音树",
-  "Tom-toms": "嗵嗵鼓",
-  "Hi-Hat": "踩镲",
-  "Sleigh Bells": "雪橇铃",
-  "Flexatone": "弹音器",
-  "Brake drum": "闸鼓",
-  "Gong": "锣",
-  "concert tom": "音乐会嗵嗵鼓",
-  "brake drum": "车轮鼓",
-  "finger cymbal": "指钹",
-  "ride cymbal": "叮叮镲",
-  "Concert Toms": "音乐会嗵嗵鼓",
-  "Vibraslap": "弹音器",
-  "Wood Blocks": "木鱼",
-  "Temple Blocks": "木鱼",
-  "Wood Block": "木鱼",
-  "Field Drum": "军鼓",
-  "Quad-Toms": "筒鼓",
-  "Quads": "筒鼓",
-  "Drums set": "架子鼓",
-  "High Bongo": "邦戈",
-  "Timbales": "天巴鼓",
-  "rain stick": "雨棒",
-  "String Bass": "弦乐低音",
-  "Floor Tom": "侧嗵鼓",
-  "Brake Drum": "闸鼓",
-  "Tam-tam": "大锣",
-  "Cymbal": "镲",
-  "Cymbals": "镲",
-	"Whip": "乐鞭",
-	"whip": "乐鞭"  
-}
+// const instruments = {
+//   "Acoustic Grand Piano": "大钢琴",
+//   "Bright Acoustic Piano": "明亮的钢琴",
+//   "Electric Grand Piano": "电钢琴",
+//   "Rhodes Piano": "柔和的电钢琴",
+//   "Chorused Piano": "加合唱效果的电钢琴",
+//   "Harpsichord": "羽管键琴",
+//   "Clavichord": "科拉维科特琴",
+//   "Celesta": "钢片琴",
+//   "Glockenspiel": "钢片琴",
+//   "Music box": "八音盒",
+//   "Vibraphone": "颤音琴",
+//   "Marimba": "马林巴",
+//   "Xylophone": "木琴",
+//   "Tubular Bells": "管钟",
+//   "Dulcimer": "大扬琴",
+//   "Hammond Organ": "击杆风琴",
+//   "Percussive Organ": "打击式风琴",
+//   "Rock Organ": "摇滚风琴",
+//   "Church Organ": "教堂风琴",
+//   "Reed Organ": "簧管风琴",
+//   "Accordian": "手风琴",
+//   "Harmonica": "口琴",
+//   "Tango Accordian": "探戈手风琴",
+//   "Acoustic Guitar": "钢弦吉他",
+//   "Electric Guitar": "闷音电吉他",
+//   "Overdriven Guitar": "加驱动效果的电吉他",
+//   "Distortion Guitar": "加失真效果的电吉他",
+//   "Guitar Harmonics": "吉他和音",
+//   "Acoustic Bass": "大贝司",
+//   "Electric Bass": "电贝司",
+//   "Fretless Bass": "无品贝司",
+//   "Slap Bass": "掌击",
+//   "Synth Bass": "电子合成",
+//   "Violin": "小提琴",
+//   "Viola": "中提琴",
+//   "Cello": "大提琴",
+//   "Contrabass": "低音大提琴",
+//   "Tremolo Strings": "弦乐群颤音音色",
+//   "Pizzicato Strings": "弦乐群拨弦音色",
+//   "Orchestral Harp": "竖琴",
+//   "Timpani": "定音鼓",
+//   "String Ensemble": "弦乐合奏音色",
+//   "Synth Strings": "合成弦乐合奏音色",
+//   "Choir Aahs": "人声合唱",
+//   "Voice Oohs": "人声",
+//   "Synth Voice": "合成人声",
+//   "Orchestra Hit": "管弦乐敲击齐奏",
+//   "Trumpet": "小号",
+//   "Trombone": "长号",
+//   "Tuba": "大号",
+//   "Muted Trumpet": "加弱音器小号",
+//   "French Horn": "法国号",
+//   "Brass Section": "铜管组",
+//   "Synth Brass": "合成铜管音色",
+//   "Soprano Sax": "高音萨克斯管",
+//   "Alto Sax": "中音萨克斯管",
+//   "Tenor Sax": "次中音萨克斯管",
+//   "Baritone Sax": "低音萨克斯管",
+//   "Oboe": "双簧管",
+//   "English Horn": "英国管",
+//   "Bassoon": "巴松",
+//   "Soprano Saxophone": "高音萨克斯管",
+//   "Alto Saxophone": "中音萨克斯管",
+//   "Tenor Saxophone": "次中音萨克斯管",
+//   "Baritone Saxophone": "上低音萨克斯管",
+//   "Piccolo": "短笛",
+//   "Flute": "长笛",
+//   "Recorder": "竖笛",
+//   "Soprano Recorder": "高音竖笛",
+//   "Pan Flute": "排箫",
+//   "Bottle Blow": "瓶木管",
+//   "Whistle": "口哨声",
+//   "Ocarina": "陶笛",
+//   "Lead": "合成主音",
+//   "Lead lead": "合成主音",
+//   "Pad age": "合成音色",
+//   "Pad": "合成音色",
+//   "FX": "合成效果  科幻",
+//   "Sitar": "西塔尔",
+//   "Banjo": "班卓琴",
+//   "Shamisen": "三昧线",
+//   "Koto": "十三弦筝",
+//   "Kalimba": "卡林巴",
+//   "Bagpipe": "风笛",
+//   "Fiddle": "民族提琴",
+//   "Shanai": "山奈",
+//   "Tinkle Bell": "叮当铃",
+//   "Agogos": "阿戈戈铃",
+//   "Steel Drums": "钢鼓",
+//   "Taiko Drum": "太鼓",
+//   "Melodic Toms": "嗵嗵鼓",
+//   "Synth Drums": "合成鼓",
+//   "Reverse Cymbals": "反向镲",
+//   "Agogo Bells": "阿戈戈铃",
+//   "Taiko Drums": "太鼓",
+//   "Bongos": "邦戈鼓",
+//   "Bongo Bell": "邦戈铃",
+//   "Congas": "康加鼓",
+//   "Guiro": "刮壶",
+//   "Guitar Fret Noise": "吉他换把杂音",
+//   "Breath Noise": "呼吸声",
+//   "Seashore": "海浪声",
+//   "Bird Tweet": "鸟鸣",
+//   "Telephone Ring": "电话铃",
+//   "Helicopter": "直升机",
+//   "Applause": "鼓掌声",
+//   "Gunshot": "枪声",
+//   "Acoustic Bass Drum": "大鼓",
+//   "Bass Drum": "大鼓",
+//   "Side Drum": "小鼓鼓边",
+//   "Acoustic Snare": "小鼓",
+//   "Hand Claps": "拍手",
+//   "Electric Snare": "小鼓",
+//   "Low Floor Tom": "低音嗵鼓",
+//   "Closed Hi-Hat": "闭合踩镲",
+//   "High Floor Tom": "高音落地嗵鼓",
+//   "Pedal Hi-Hat": "脚踏踩镲",
+//   "Low Tom": "低音嗵鼓",
+//   "Open Hi-Hat": "开音踩镲",
+//   "Low-Mid Tom": "中低音嗵鼓",
+//   "Hi Mid Tom": "高音鼓",
+//   "Crash Cymbals": "对镲",
+//   "High Tom": "高音嗵鼓",
+//   "Ride Cymbals": "叮叮镲",
+//   "Chinese Cymbals": "中国镲",
+//   "Ride Bell": "圆铃",
+//   "Tambourine": "铃鼓",
+//   "Splash Cymbal": "溅音镲",
+//   "Cowbell": "牛铃",
+//   "Crash Cymbal": "强音钹",
+//   "Vibra-Slap": "颤音器",
+//   "Ride Cymbal": "打点钹",
+//   "Hi Bongo": "高音邦戈鼓",
+//   "Low Bongo": "低音邦戈鼓",
+//   "Mute Hi Conga": "弱音高音康加鼓",
+//   "Open Hi Conga": "强音高音康加鼓",
+//   "Low Conga": "低音康加鼓",
+//   "High Timbale": "高音天巴鼓",
+//   "Low Timbale": "低音天巴鼓",
+//   "High Agogo": "高音阿戈戈铃",
+//   "Low Agogo": "低音阿戈戈铃",
+//   "Cabasa": "卡巴萨",
+//   "Maracas": "沙锤",
+//   "Short Whistle": "短口哨",
+//   "Long Whistle": "长口哨",
+//   "Short Guiro": "短刮壶",
+//   "Long Guiro": "长刮壶",
+//   "Claves": "响棒",
+//   "Hi Wood Block": "高音木鱼",
+//   "Low Wood Block": "低音木鱼",
+//   "Mute Triangle": "弱音三角铁",
+//   "Open Triangle": "强音三角铁",
+//   "Drum Set": "架子鼓",
+//   "Hulusi flute": "葫芦丝",
+//   "Melodica": "口风琴",
+//   "Snare Drum": "小军鼓",
+//   "Horn in F": "圆号",
+//   "Horns in F": "圆号",
+//   "Triangle": "三角铁",
+//   "Vibrato": "颤音琴",
+//   "Suspend Cymbals": "吊镲",
+//   "Suspended Cymbals": "吊镲",
+//   "Tom-Toms": "嗵嗵鼓",
+//   "Bell": "铃铛",
+//   "Bells": "铃铛",
+//   "Alto Clarinet": "中音单簧管",
+//   "Bass Clarinet": "低音单簧管",
+//   "Clarinet": "单簧管",
+//   "Cornet": "短号",
+//   "Euphonium": "上低音号",
+//   "crash cymbals": "对镲",
+//   "Castanets": "响板",
+//   "Shaker": "沙锤",
+//   "Mark tree": "音树",
+//   "Chimes": "管钟",
+//   "Mark Tree": "音树",
+//   "Tom-toms": "嗵嗵鼓",
+//   "Hi-Hat": "踩镲",
+//   "Sleigh Bells": "雪橇铃",
+//   "Flexatone": "弹音器",
+//   "Brake drum": "闸鼓",
+//   "Gong": "锣",
+//   "concert tom": "音乐会嗵嗵鼓",
+//   "brake drum": "车轮鼓",
+//   "finger cymbal": "指钹",
+//   "ride cymbal": "叮叮镲",
+//   "Concert Toms": "音乐会嗵嗵鼓",
+//   "Vibraslap": "弹音器",
+//   "Wood Blocks": "木鱼",
+//   "Temple Blocks": "木鱼",
+//   "Wood Block": "木鱼",
+//   "Field Drum": "军鼓",
+//   "Quad-Toms": "筒鼓",
+//   "Quads": "筒鼓",
+//   "Drums set": "架子鼓",
+//   "High Bongo": "邦戈",
+//   "Timbales": "天巴鼓",
+//   "rain stick": "雨棒",
+//   "String Bass": "弦乐低音",
+//   "Floor Tom": "侧嗵鼓",
+//   "Brake Drum": "闸鼓",
+//   "Tam-tam": "大锣",
+//   "Cymbal": "镲",
+//   "Cymbals": "镲",
+// 	"Whip": "乐鞭",
+// 	"whip": "乐鞭"
+// }
 
 /**
  * 获取乐器名称
+ * @param instruments 乐器列表
  * @param instrumentName 乐器code
  * @returns
  */
-export const getInstrumentName = (instrumentName: string) => {
+export const getInstrumentName = (instruments: any, instrumentName: string) => {
   const _instrumentName = instrumentName.replace(/ /g, ' ').toLocaleLowerCase()
   const _instrument = Object.keys(instruments)
   for (let i = 0; i < _instrument.length; i++) {

+ 28 - 2
src/tenant/music/music-detail/index.tsx

@@ -311,7 +311,30 @@ export default defineComponent({
         loading.value = e.data.loading
       }
     }
+
+    /** 获取乐器编码 */
+    const getInstrumentCodes = async () => {
+      try {
+        const { data } = await request.get('/music/sheet/instrumentCode', {
+          prefix: state.platformType === 'TEACHER'? '/api-teacher' : '/api-student'
+        })
+        if(Array.isArray(data)) {
+          const tempCodes: any = {}
+          data.forEach((item: any) => {
+            const codes = item.code?.split(',');
+            codes.forEach((code: any) => {
+              tempCodes[code] = item.name;
+            });
+          });
+          staffData.instrumentCodes = tempCodes;
+        }
+      } catch {
+        //
+      }
+    }
+
     onMounted(async () => {
+      await getInstrumentCodes()
       await FetchList()
       const { height } = useRect(headers as any)
       const footer = useRect(footers as any)
@@ -517,7 +540,8 @@ export default defineComponent({
       instrumentName: '',
       iframeRef: null as any,
       partIndex: 0,
-      partList: [] as any[]
+      partList: [] as any[],
+      instrumentCodes: [] as any
     })
     /** 渲染五线谱 */
     const renderStaff = () => {
@@ -525,6 +549,7 @@ export default defineComponent({
       staffData.musicXml = musicDetail.value?.xmlFileUrl || ''
       staffData.partList = musicDetail.value?.background || []
       staffData.instrumentName = getInstrumentName(
+        staffData.instrumentCodes,
         staffData.partList[staffData.partIndex]?.track
       )
     }
@@ -542,13 +567,14 @@ export default defineComponent({
       if (iframeRef && iframeRef.contentWindow.renderXml) {
         iframeRef.contentWindow.resetRender(staffData.partIndex)
         staffData.instrumentName = getInstrumentName(
+          staffData.instrumentCodes,
           staffData.partList[staffData.partIndex]?.track
         )
       }
     }
     const partColumns = computed(() => {
       return staffData.partList.map((item: any, index: number) => {
-        const instrumentName = getInstrumentName(item.track)
+        const instrumentName = getInstrumentName(staffData.instrumentCodes, item.track)
         return {
           text: item.track + (instrumentName ? `(${instrumentName})` : ''),
           value: index

+ 27 - 3
src/tenant/music/music-detail/new-index.tsx

@@ -195,6 +195,28 @@ export default defineComponent({
         loading.value = e.data.loading
       }
     }
+
+    /** 获取乐器编码 */
+    const getInstrumentCodes = async () => {
+      try {
+        const { data } = await request.get('/music/sheet/instrumentCode', {
+          prefix: state.platformType === 'TEACHER'? '/api-teacher' : '/api-student'
+        })
+        if(Array.isArray(data)) {
+          const tempCodes: any = {}
+          data.forEach((item: any) => {
+            const codes = item.code?.split(',');
+            codes.forEach((code: any) => {
+              tempCodes[code] = item.name;
+            });
+          });
+          staffData.instrumentCodes = tempCodes;
+        }
+      } catch {
+        //
+      }
+    }
+
     onMounted(async () => {
       const instrumentIds = state.user.data?.instrumentId
       if (instrumentIds) {
@@ -211,6 +233,7 @@ export default defineComponent({
         api: 'setStatusBarTextColor',
         content: { statusBarTextColor: true }
       })
+      await getInstrumentCodes()
       await FetchList()
       const { height } = useRect(headers as any)
       const footer = useRect(footers as any)
@@ -362,7 +385,8 @@ export default defineComponent({
       selectedPartIndex: 0,
       isComberRender: false, // 是否合并谱显示
       metronomeUrl: '', // 合奏使用链接
-      metronomeMp3Url: '' // 独奏使用链接
+      metronomeMp3Url: '', // 独奏使用链接
+      instrumentCodes: [] as any, // 乐器编码
     })
 
     // 当前先中的数据
@@ -437,7 +461,7 @@ export default defineComponent({
           musicalInstruments.find((item: any) => {
             return instrumentIds == item.musicalInstrumentId
           }) || {}
-        return track 
+        return track
       }
       return null
     }
@@ -492,7 +516,7 @@ export default defineComponent({
           row.musicSheetType !== 'SINGLE' && row.isScoreRender
             ? index + 1
             : index
-        const cnName = getInstrumentName(item.track)
+        const cnName = getInstrumentName(staffData.instrumentCodes, item.track)
         return {
           text: item.track + (cnName ?  `(${cnName})` : ''),
         name: item.track + (cnName ?  `(${cnName})` : ''), // true

+ 41 - 12
src/views/music/music-detail/index.tsx

@@ -111,6 +111,7 @@ export default defineComponent({
       isComberRender: false, // 是否合并谱显示
       metronomeUrl: "", // 合奏使用链接
       metronomeMp3Url: "", // 独奏使用链接
+      instrumentCodes: [], // 乐器编码
     })
 
     // 当前先中的数据
@@ -183,7 +184,7 @@ export default defineComponent({
       }
       renderStaff()
     }
-    
+
     const FetchList = async (id?: any) => {
       if (loading.value) {
         return
@@ -292,6 +293,28 @@ export default defineComponent({
         loading.value = e.data.loading
       }
     }
+
+    /** 获取乐器编码 */
+    const getInstrumentCodes = async () => {
+      try {
+        const { data } = await request.get('/music/sheet/instrumentCode', {
+          prefix: state.platformType === 'TEACHER'? '/api-teacher' : '/api-student'
+        })
+        if(Array.isArray(data)) {
+          const tempCodes: any = {}
+          data.forEach((item: any) => {
+            const codes = item.code?.split(',');
+            codes.forEach((code: any) => {
+              tempCodes[code] = item.name;
+            });
+          });
+          staffData.instrumentCodes = tempCodes;
+        }
+      } catch {
+        //
+      }
+    }
+
     onMounted(async () => {
       if(route.query.instrumentId) {
         staffData.instrumentId = route.query.instrumentId as any
@@ -313,6 +336,7 @@ export default defineComponent({
         api: 'setStatusBarTextColor',
         content: { statusBarTextColor: true }
       })
+      await getInstrumentCodes()
       await FetchList()
 
       if(state.platformType === "STUDENT") {
@@ -498,7 +522,9 @@ export default defineComponent({
             orderNo
           }
         })
-      } catch {}
+      } catch {
+        //
+      }
     }
 
     const paymentType = computed(() => {
@@ -547,14 +573,16 @@ export default defineComponent({
         shareUrl.value = url
         shareStatus.value = true
         return
-      } catch {}
+      } catch {
+        //
+      }
     }
 
     /** 获取分轨信息 */
     const getInstrumentItem = (instruments: any, name = "") => {
       name = name.toLocaleLowerCase().replace(/ /g, ""); //.replace(/\d*/gi, '')
       if (!name) return "";
-      for (let key in instruments) {
+      for (const key in instruments) {
         const item = instruments[key];
         const _key = item.track?.toLocaleLowerCase().replace(/ /g, ""); //.replace(/\d*/gi, '')
         if (_key === name) {
@@ -615,7 +643,7 @@ export default defineComponent({
     partColumns.value = partList.map((item: any, index: number) => {
       // 因为合奏的,显示总谱会加一个声轨
       const defaultIndex = row.musicSheetType !== "SINGLE" && row.isScoreRender ? index + 1 : index
-      const cnName = getInstrumentName(item.track)
+      const cnName = getInstrumentName(staffData.instrumentCodes, item.track)
       return {
         text: item.track + (cnName ?  `(${cnName})` : ''),
         name: item.track + (cnName ?  `(${cnName})` : ''), // true
@@ -631,7 +659,7 @@ export default defineComponent({
     staffData.details = row || {};
     // staffData.musicXml = staffData.details?.xmlFileUrl;
     staffData.isComberRender = staffData.details?.isScoreRender;
-    
+
 
     let defaultShowStaff: any
     if(staffData.details?.musicSheetSoundList) {
@@ -657,12 +685,12 @@ export default defineComponent({
         }
       }
     }
-    
+
 
     if (row.musicSheetType === "SINGLE") {
       staffData.musicPdfUrl = getCurrentPdf(row, row.scoreType)
       // 生成的图片
-      // staffData.imgs = row.musicImg ? row.musicImg.split(',') : []; 
+      // staffData.imgs = row.musicImg ? row.musicImg.split(',') : [];
     } else {
       // 初始化数据
       // 是否显示总谱
@@ -718,7 +746,7 @@ export default defineComponent({
     const musicScoreUrl = getHttpOrigin() + musicScorePath;
     // const musicScoreUrl = "https://test.colexiu.com" + musicScorePath;
     // const musicScoreUrl = 'http://192.168.3.68:3000/instrument.html';
-    let href = `${musicScoreUrl}?t=${Date.now()}#/?id=${musicId}&Authorization=${Authorization}&isPreView=true&zoom=0.5&downPng=A4`; 
+    let href = `${musicScoreUrl}?t=${Date.now()}#/?id=${musicId}&Authorization=${Authorization}&isPreView=true&zoom=0.5&downPng=A4`;
     // // 老师端加上systemType=teacher
     href += ('&systemType=' +( state.platformType === "STUDENT" ? `student` : 'teacher'));
     // 总谱还是什么
@@ -741,7 +769,7 @@ export default defineComponent({
     } else if(staff.radio === 'FIRST') {
       href += '&musicRenderType=firstTone'
     }
-      
+
     return href
   };
 
@@ -1040,7 +1068,6 @@ export default defineComponent({
             <div class={styles.musicContent}>
               {staffData.details.id ? (
                 staffData.musicPdfUrl ? (
-                    
                       <iframe
                         style={{
                           opacity: loading.value ? 0 : 1,
@@ -1157,7 +1184,9 @@ export default defineComponent({
                         }
                         musicBuy({
                           id: staffData.details.id
-                        }, () => {}, extraParam)
+                        }, () => {
+                          //
+                        }, extraParam)
                       }, 300)
                       throttleFn()
                     }}