|  | @@ -164,6 +164,7 @@
 | 
	
		
			
				|  |  |            v-model="form.sysMusicScore.subjectId"
 | 
	
		
			
				|  |  |            clearable
 | 
	
		
			
				|  |  |            placeholder="请选择声部"
 | 
	
		
			
				|  |  | +          @change="handleChangeSubject"
 | 
	
		
			
				|  |  |          >
 | 
	
		
			
				|  |  |            <el-option
 | 
	
		
			
				|  |  |              v-for="item in selects.subjects"
 | 
	
	
		
			
				|  | @@ -175,6 +176,13 @@
 | 
	
		
			
				|  |  |          </el-select>
 | 
	
		
			
				|  |  |        </el-form-item>
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +      <el-form-item v-if="form.sysMusicScore.subjectId && partListNames.length > 1" label="单声部多声轨渲染">
 | 
	
		
			
				|  |  | +        <el-radio-group v-model="multitrackData.isMultil">
 | 
	
		
			
				|  |  | +          <el-radio :label="0">单声轨</el-radio>
 | 
	
		
			
				|  |  | +          <el-radio :label="1">多声轨</el-radio>
 | 
	
		
			
				|  |  | +        </el-radio-group>
 | 
	
		
			
				|  |  | +      </el-form-item>
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |        <el-form-item
 | 
	
		
			
				|  |  |          :prop="`sysMusicScore.isShowFingering`"
 | 
	
		
			
				|  |  |          label="指法展示"
 | 
	
	
		
			
				|  | @@ -378,6 +386,7 @@
 | 
	
		
			
				|  |  |                  accept=".mp3, .aac"
 | 
	
		
			
				|  |  |                  v-model="song.metronomeMp3Url"
 | 
	
		
			
				|  |  |                  bucket_name="cloud-coach"
 | 
	
		
			
				|  |  | +                @input="handleInputFileUpload"
 | 
	
		
			
				|  |  |                />
 | 
	
		
			
				|  |  |              </el-form-item>
 | 
	
		
			
				|  |  |            </el-col>
 | 
	
	
		
			
				|  | @@ -481,6 +490,10 @@ export default {
 | 
	
		
			
				|  |  |          label: "name",
 | 
	
		
			
				|  |  |          children: "sysMusicScoreCategoriesList",
 | 
	
		
			
				|  |  |        },
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +      multitrackData:{
 | 
	
		
			
				|  |  | +        isMultil: 0
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  |      };
 | 
	
		
			
				|  |  |    },
 | 
	
		
			
				|  |  |    async mounted() {
 | 
	
	
		
			
				|  | @@ -495,6 +508,10 @@ export default {
 | 
	
		
			
				|  |  |        }
 | 
	
		
			
				|  |  |        this.form.repeatedBeats = this.extConfigJson.repeatedBeats;
 | 
	
		
			
				|  |  |        this.form.graduals = this.extConfigJson.gradualTimes || {};
 | 
	
		
			
				|  |  | +      // 单声部多声轨
 | 
	
		
			
				|  |  | +      if(this.extConfigJson.multitrack){
 | 
	
		
			
				|  |  | +        this.multitrackData.isMultil = 1
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  |        this.$set(this.form, "sysMusicScore", {
 | 
	
		
			
				|  |  |          isOpenMetronome: Number(this.detail.isOpenMetronome),
 | 
	
		
			
				|  |  |          name: this.detail.name,
 | 
	
	
		
			
				|  | @@ -530,6 +547,23 @@ export default {
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |    },
 | 
	
		
			
				|  |  |    methods: {
 | 
	
		
			
				|  |  | +    /** 声部改变 */
 | 
	
		
			
				|  |  | +    handleChangeSubject(val){
 | 
	
		
			
				|  |  | +      if (!val) {
 | 
	
		
			
				|  |  | +        this.multitrackData.isMultil = 0
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +    /**原音上传 */
 | 
	
		
			
				|  |  | +    handleInputFileUpload(url){
 | 
	
		
			
				|  |  | +      // 单声部多声轨,默认将没有上传的声轨的原音填充
 | 
	
		
			
				|  |  | +      if (this.multitrackData.isMultil) {
 | 
	
		
			
				|  |  | +        for(let i = 0, len = this.form.sysMusicScoreAccompaniments.length; i < len; i++){
 | 
	
		
			
				|  |  | +          if (!this.form.sysMusicScoreAccompaniments[i].metronomeMp3Url){
 | 
	
		
			
				|  |  | +            this.form.sysMusicScoreAccompaniments[i].metronomeMp3Url = url
 | 
	
		
			
				|  |  | +          }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  |      getPartListNames(xml) {
 | 
	
		
			
				|  |  |        if (!xml) return [];
 | 
	
		
			
				|  |  |        const xmlParse = new DOMParser().parseFromString(xml, "text/xml");
 | 
	
	
		
			
				|  | @@ -723,15 +757,27 @@ export default {
 | 
	
		
			
				|  |  |              item.isShowFingering =  this.form.sysMusicScore.isShowFingering
 | 
	
		
			
				|  |  |            })
 | 
	
		
			
				|  |  |            console.log(this.form)
 | 
	
		
			
				|  |  | +          let extConfigJson = JSON.stringify({
 | 
	
		
			
				|  |  | +                  repeatedBeats: this.form.repeatedBeats,
 | 
	
		
			
				|  |  | +                  gradualTimes: this.form.graduals,
 | 
	
		
			
				|  |  | +                })
 | 
	
		
			
				|  |  | +          let _multitrackData = {}
 | 
	
		
			
				|  |  | +          // 单声部多声轨添加
 | 
	
		
			
				|  |  | +          if (this.multitrackData.isMultil) {
 | 
	
		
			
				|  |  | +            extConfigJson = JSON.stringify({
 | 
	
		
			
				|  |  | +              repeatedBeats: this.form.repeatedBeats,
 | 
	
		
			
				|  |  | +              gradualTimes: this.form.graduals,
 | 
	
		
			
				|  |  | +              multitrack: this.partListNames.length
 | 
	
		
			
				|  |  | +            })
 | 
	
		
			
				|  |  | +            _multitrackData.multitrack = false
 | 
	
		
			
				|  |  | +          }
 | 
	
		
			
				|  |  |            if (!this.detail) {
 | 
	
		
			
				|  |  |              await Add({
 | 
	
		
			
				|  |  | +              ..._multitrackData,
 | 
	
		
			
				|  |  |                ...this.form,
 | 
	
		
			
				|  |  |                sysMusicScore: {
 | 
	
		
			
				|  |  |                  ...this.form.sysMusicScore,
 | 
	
		
			
				|  |  | -                extConfigJson: JSON.stringify({
 | 
	
		
			
				|  |  | -                  repeatedBeats: this.form.repeatedBeats,
 | 
	
		
			
				|  |  | -                  gradualTimes: this.form.graduals,
 | 
	
		
			
				|  |  | -                }),
 | 
	
		
			
				|  |  | +                extConfigJson: extConfigJson,
 | 
	
		
			
				|  |  |                  type: "COMMON",
 | 
	
		
			
				|  |  |                  showFlag: 0,
 | 
	
		
			
				|  |  |                  musicScoreCategoriesId: (
 | 
	
	
		
			
				|  | @@ -742,13 +788,11 @@ export default {
 | 
	
		
			
				|  |  |              this.$message.success("提交成功");
 | 
	
		
			
				|  |  |            } else {
 | 
	
		
			
				|  |  |              await Update({
 | 
	
		
			
				|  |  | +              ..._multitrackData,
 | 
	
		
			
				|  |  |                ...this.form,
 | 
	
		
			
				|  |  |                sysMusicScore: {
 | 
	
		
			
				|  |  |                  ...this.form.sysMusicScore,
 | 
	
		
			
				|  |  | -                extConfigJson: JSON.stringify({
 | 
	
		
			
				|  |  | -                  repeatedBeats: this.form.repeatedBeats,
 | 
	
		
			
				|  |  | -                  gradualTimes: this.form.graduals,
 | 
	
		
			
				|  |  | -                }),
 | 
	
		
			
				|  |  | +                extConfigJson: extConfigJson,
 | 
	
		
			
				|  |  |                  type: "COMMON",
 | 
	
		
			
				|  |  |                  id: this.detail.id,
 | 
	
		
			
				|  |  |                  showFlag: this.detail.showFlag,
 |