lex-xin 7 月之前
父节点
当前提交
7be31cd9c7
共有 3 个文件被更改,包括 244 次插入276 次删除
  1. 205 203
      src/constant/instruments.ts
  2. 5 4
      src/views/music/music-detail/imageFunction.ts
  3. 34 69
      src/views/music/music-detail/index.tsx

+ 205 - 203
src/constant/instruments.ts

@@ -1,207 +1,209 @@
 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': '圆号',
-  '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': '镲',
+  "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": "圆号",
+  "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": "乐鞭"  
 }
 
 /**

+ 5 - 4
src/views/music/music-detail/imageFunction.ts

@@ -39,6 +39,7 @@ export const imgToCanvas = async (url: string) => {
 * @param {canvas对象} canvas
 * @param {水印文字} text
 */
+
 export const addWatermark = async (canvas: any, text: any) => {
   console.log("addWatermark");
   try {
@@ -81,16 +82,16 @@ export const addMusicTitle = (canvas: any, info: any) => {
 
   // 小水印画布大小
   water.width = canvas.width;
-  water.height = canvas.height + 28;
+  water.height = canvas.height + 38;
   const waterCtx = water.getContext("2d") as CanvasRenderingContext2D;
   waterCtx.fillStyle = "#fff";
-  waterCtx.fillRect(0, 0, canvas.width, canvas.height + 70);
+  waterCtx.fillRect(0, 0, canvas.width, canvas.height + 60);
   // console.log('图片宽高12345',canvas.width, canvas.height)
   waterCtx.font = (info.size || 30) + `pt Calibri`;
   waterCtx.fillStyle = "#000";
   waterCtx.textAlign = "center";
-  waterCtx.drawImage(canvas, 0, 70);
-  waterCtx.fillText(info.title, canvas.width / 2, 70);
+  waterCtx.drawImage(canvas, 0, 60);
+  waterCtx.fillText(info.title, canvas.width / 2, 60);
   return water;
 };
 

+ 34 - 69
src/views/music/music-detail/index.tsx

@@ -95,7 +95,7 @@ export default defineComponent({
     const heightInfo = ref<any>('0')
     const musicDetail = ref<any>(null)
     const audioFileUrl = ref('')
-    const showImg = ref([] as any)
+    // const showImg = ref([] as any)
     const firstList = ref<Array<any>>([])
     const fixedList = ref<Array<any>>([])
     const staffList = ref<Array<any>>([])
@@ -184,37 +184,29 @@ export default defineComponent({
         const tempPdf = staffData.details?.musicPdfUrl
         initIframe(tempPdf, 'staff', staffData.musicXml)
       }
+
     }
 
     const initIframe = (tempPdf: string, staff: string, xml: string) => {
-      // if (tempPdf) {
-      //   musicPdfUrl.value = tempPdf
-      //   renderStaff()
-      // } else {
-      //   musicPdfUrl.value = ''
-      //   // 为了处理,之前是使用pdf渲染,现在又用osmd,iframe没有重新加载
-      //   if (
-      //     !staffData.iframeSrc ||
-      //     staffData.iframeSrc.indexOf('pdf/web') !== -1
-      //   ) {
-      //     renderStaff()
-      //   } else {
-      //     resetRenderPage(staff, xml)
-      //   }
-      // }
-    }
-    watch(
-      () => staff.radio,
-      (val: string) => {
-        if (val == 'first') {
-          showImg.value = firstList.value
-        } else if (val == 'fixed') {
-          showImg.value = fixedList.value
-        } else {
-          showImg.value = staffList.value
-        }
+      if (tempPdf) {
+        staffData.musicPdfUrl = tempPdf
+        renderStaff()
+      } else {
+        staffData.musicPdfUrl = ''
+        // 为了处理,之前是使用pdf渲染,现在又用osmd,iframe没有重新加载
+        // if (
+        //   !staffData.iframeSrc ||
+        //   staffData.iframeSrc.indexOf('pdf/web') !== -1
+        // ) {
+        //   renderStaff()
+        // } else {
+        //   resetRenderPage(staff, xml)
+        // }
+
+        renderStaff()
       }
-    )
+    }
+    
     const FetchList = async (id?: any) => {
       if (loading.value) {
         return
@@ -226,36 +218,6 @@ export default defineComponent({
         musicDetail.value = data
         staffData.details = data
 
-
-
-        // const res = await request.get(`/music/sheet/detail/${route.query.id}`, {
-        //   prefix:
-        //     state.platformType === 'TEACHER' ? '/api-teacher' : '/api-student'
-        // })
-        // musicDetail.value = res.data
-        // const background = res.data.background
-        // audioFileUrl.value =
-        //   background && background.length > 0 ? background[0].audioFileUrl : ''
-        // // const arrImgs = res.data.musicImg ? res.data.musicImg.split(',') : []
-        // showImg.value = res.data.musicImg ? res.data.musicImg.split(',') : []
-        // firstList.value = res.data.firstTone
-        //   ? res.data.firstTone.split(',')
-        //   : []
-        // fixedList.value = res.data.fixedTone
-        //   ? res.data.fixedTone.split(',')
-        //   : []
-        // staffList.value = res.data.musicImg ? res.data.musicImg.split(',') : []
-
-        // // 初始化默认数据是否有值
-        // if (firstList.value.length > 0) {
-        //   defaultImgs.value.first = true
-        // }
-        // if (fixedList.value.length > 0) {
-        //   defaultImgs.value.fixed = true
-        // }
-        // if (staffList.value.length > 0) {
-        //   defaultImgs.value.staff = true
-        // }
         await toDetail(data)
 
 
@@ -332,7 +294,7 @@ export default defineComponent({
     const showLoading = async (e: any) => {
       if (e.data?.api === 'musicStaffRender') {
         const osmdImg = e.data.osmdImg
-        showImg.value = []
+        // showImg.value = []
         const imgs: any = []
         for (let i = 0; i < osmdImg.length; i++) {
           const img = await svgtopng(
@@ -342,7 +304,7 @@ export default defineComponent({
           )
           imgs.push(img)
         }
-        showImg.value = imgs
+        staffData.imgs = imgs
 
         loading.value = e.data.loading
       }
@@ -663,8 +625,8 @@ export default defineComponent({
   }
 
   const toDetail = async (row) => {
-    const partNames = await getPartNames(row.xmlFileUrl);
-    staffData.partNames = partNames;
+    // const partNames = await getPartNames(row.xmlFileUrl);
+    // staffData.partNames = partNames;
     const tempSongList = row.musicSheetSoundList || []
     let partList = tempSongList.filter((item: any) => item.audioPlayType === 'PLAY')
     staffData.list = tempSongList.filter((item: any) => item.audioPlayType === 'PLAY')
@@ -672,16 +634,17 @@ export default defineComponent({
       (item: any) => !item.track?.toLocaleUpperCase()?.includes("COMMON")
     );
     partColumns.value = partList.map((item: any, index: number) => {
-      const xmlIndex = staffData.partNames.filter((text: string) => text.toLocaleUpperCase() !== "COMMON").findIndex(
-        (name: any) => name.trim() === item.track
-      );
+      // const xmlIndex = staffData.partNames.filter((text: string) => text.toLocaleUpperCase() !== "COMMON").findIndex(
+      //   (name: any) => name.trim() === item.track
+      // );
+      // 因为合奏的,显示总谱会加一个声轨
       const defaultIndex = row.musicSheetType !== "SINGLE" && row.isScoreRender ? index + 1 : index
       return {
         text: getInstrumentName(item.track as string),
         name: getInstrumentName(item.track as string), // true
         track: item.track,
         musicPdfUrl: item.soundMusicPdfUrl,
-        xmlIndex,
+        // xmlIndex,
         value: defaultIndex,
       };
     });
@@ -710,6 +673,7 @@ export default defineComponent({
                     .trim()
           )
         )
+        console.log(defaultShowStaff, 'defaultShowStaff')
         if(defaultShowStaff) {
           staffData.selectedPartIndex = defaultShowStaff.value
         }
@@ -1089,7 +1053,8 @@ export default defineComponent({
                   <img src={iconChange} />
                   <span>切换乐器</span>
                 </div>
-                {staffData.details?.notation ? (
+                {/* 独奏的才有转谱功能 */}
+                {staffData.details?.isConvertibleScore && staffData.details?.musicSheetType === 'SINGLE' ? (
                   <div
                     class={styles.functionItem}
                     style={{
@@ -1111,7 +1076,7 @@ export default defineComponent({
                   class={[styles.functionItem, (loading.value ||
                     (!staffData.musicPdfUrl && staffData.imgs.length <= 0)) ? styles.disabled : '']}
                   onClick={() => {
-                    console.log(loading.value, staffData.musicPdfUrl, staffData.imgs.length)
+                    console.log(loading.value, staffData.musicPdfUrl, staffData.imgs, '---------------')
                     if((loading.value ||
                       (!staffData.musicPdfUrl && staffData.imgs.length <= 0))) return
                     if (staffData.musicPdfUrl) {
@@ -1356,7 +1321,7 @@ export default defineComponent({
           <Popup v-model:show={downloadStatus.value} position="bottom" round>
             {downloadStatus.value && (
               <Download
-                imgList={JSON.parse(JSON.stringify(showImg.value))}
+                imgList={JSON.parse(JSON.stringify(staffData.imgs))}
                 musicSheetName={
                   staffData.details.name +
                   (staffData.isConcert &&