|  | @@ -1,16 +1,41 @@
 | 
	
		
			
				|  |  |  <template>
 | 
	
		
			
				|  |  |      <div style="background: #F3F4F8;">
 | 
	
		
			
				|  |  | +        <h2 class="title">注册说明</h2>
 | 
	
		
			
				|  |  |          <div class="noticeInfo">
 | 
	
		
			
				|  |  | -			<h2>注册说明</h2>
 | 
	
		
			
				|  |  |              1、您注册时所选择的乐团声部,即为乐团录取最终确认的声部,请您务必仔细填写;<br />
 | 
	
		
			
				|  |  |  			2、为避免因部分已注册家长放弃名额导致乐团声部失衡,系统设定各声部限额放大20%比例开放注册,系统自动按照完全完成注册的先后顺序确认录取名单,因此,超员后有可能出现无法注册的情况,请您理解。如果其他声部仍有名额,在您孩子的身体条件适合该乐器的前提下,我们将优先予以调配。
 | 
	
		
			
				|  |  |  		</div>
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -		<div class="section">
 | 
	
		
			
				|  |  | -			<h2 class="title">{{ courseViewType == 1 ? '服务' : '乐团课程' }}</h2>
 | 
	
		
			
				|  |  | -            <p style="font-size: 14px; padding: 2px 0; color: #f85043" v-if="serviceValidDate && courseViewType == 1">服务有效期:{{ serviceValidDate }}</p>
 | 
	
		
			
				|  |  | +        <template v-if="courseViewType == 2">
 | 
	
		
			
				|  |  | +			<h2 class="title" >学习工具包</h2>
 | 
	
		
			
				|  |  | +			<div class="yunTrain">
 | 
	
		
			
				|  |  | +				<img :src="trainBg" />
 | 
	
		
			
				|  |  | +				<div class="toolText">
 | 
	
		
			
				|  |  | +					<p class="toolTitle">器乐练习云教练
 | 
	
		
			
				|  |  | +						<i class="icon_video" @click="videoStatus = true"></i>
 | 
	
		
			
				|  |  | +					</p>
 | 
	
		
			
				|  |  | +					<p class="toolDate">有效期说明:自开课之日起6个月内有效</p>
 | 
	
		
			
				|  |  | +				</div>
 | 
	
		
			
				|  |  | +			</div>
 | 
	
		
			
				|  |  | +		</template>
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +		<template v-if="courseViewType == 1 && courseShowInfo.length > 0">
 | 
	
		
			
				|  |  | +			<div class="yunTrain" style="margin-top: 12px;">
 | 
	
		
			
				|  |  | +				<img :src="trainBg" />
 | 
	
		
			
				|  |  | +				<div class="toolText">
 | 
	
		
			
				|  |  | +					<p class="toolTitle">服务</p>
 | 
	
		
			
				|  |  | +					<p class="toolDate" v-if="serviceValidDate">服务有效期:{{ serviceValidDate }}</p>
 | 
	
		
			
				|  |  | +				</div>
 | 
	
		
			
				|  |  | +			</div>
 | 
	
		
			
				|  |  | +		</template>
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +		<h2 class="titles" style="margin-top: 12px;" v-if="courseViewType == 0">
 | 
	
		
			
				|  |  | +			<img :src="trainSmallBg" />
 | 
	
		
			
				|  |  | +			<span>乐团课程</span>
 | 
	
		
			
				|  |  | +		</h2>
 | 
	
		
			
				|  |  | +		<template class="section">
 | 
	
		
			
				|  |  |  			<!-- 所有不可选的课程合集 -->
 | 
	
		
			
				|  |  | -			<template v-if="courseShowStatus && courseViewType == 1">
 | 
	
		
			
				|  |  | +			<div class="section" v-if="courseShowStatus && courseViewType == 1">
 | 
	
		
			
				|  |  |  				<el-row class="option-row"  v-for="(item, index) in courseShowInfo" :class="[!item.isStudentOptional ? 'disabled' : '']" :key="index" @click.native="onCourseChange(item)">
 | 
	
		
			
				|  |  |  					<el-col :span="16">
 | 
	
		
			
				|  |  |  						<i class="check_default" :class="[item.isStatus ? 'check_active' : '']"></i>
 | 
	
	
		
			
				|  | @@ -23,16 +48,37 @@
 | 
	
		
			
				|  |  |  						<span style="color: #1A1A1A">¥{{ item.courseCurrentPrice | moneyFormat }}</span>
 | 
	
		
			
				|  |  |  					</el-col>
 | 
	
		
			
				|  |  |  				</el-row>
 | 
	
		
			
				|  |  | -			</template>
 | 
	
		
			
				|  |  | +			</div>
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            <div class="section" v-if="courseViewType == 2">
 | 
	
		
			
				|  |  | +				<div v-for="(item, index) in toolsPackage" :key="index">
 | 
	
		
			
				|  |  | +					<el-row class="option-row" style="padding-top: 0;" @click="onTrainChange(item)">
 | 
	
		
			
				|  |  | +						<el-col :span="18">
 | 
	
		
			
				|  |  | +							<i class="check_default"  :class="[item.isStatus ? 'check_active' : '']"></i>
 | 
	
		
			
				|  |  | +							<span style="display: flex; align-items: center;">
 | 
	
		
			
				|  |  | +								<template>{{ item.name }}</template>
 | 
	
		
			
				|  |  | +							</span>
 | 
	
		
			
				|  |  | +						</el-col>
 | 
	
		
			
				|  |  | +						<el-col :span="6">
 | 
	
		
			
				|  |  | +							<span style="color: #1A1A1A">¥{{ cloudTeacherFee | moneyFormat }}</span>
 | 
	
		
			
				|  |  | +						</el-col>
 | 
	
		
			
				|  |  | +					</el-row>
 | 
	
		
			
				|  |  | +					<el-row style="padding-left: .24rem;" v-if="item.childGoodsList">
 | 
	
		
			
				|  |  | +						<el-col v-for="(child, index) in item.childGoodsList" :key="child.name">
 | 
	
		
			
				|  |  | +							<span style="font-size: 12px; color: #aaaaaa;">{{ child.name }} {{item.childGoodsList.length - 1 == index ? '' : '、'}}</span>
 | 
	
		
			
				|  |  | +						</el-col>
 | 
	
		
			
				|  |  | +					</el-row>
 | 
	
		
			
				|  |  | +				</div>
 | 
	
		
			
				|  |  | +			</div>
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -            <el-row class="title-row" v-if="courseViewType == 0">
 | 
	
		
			
				|  |  | -				<el-col :span="12">课程类型</el-col>
 | 
	
		
			
				|  |  | -				<!-- <el-col :span="5" :offset="1" style="text-align: right;">原价</el-col> -->
 | 
	
		
			
				|  |  | -				<el-col :span="11" :offset="1" style="text-align: right;">现价</el-col>
 | 
	
		
			
				|  |  | -			</el-row>
 | 
	
		
			
				|  |  |  			<!-- 可选课程信息集合 -->
 | 
	
		
			
				|  |  | -			<template v-for="(item, index) in courseInfo">
 | 
	
		
			
				|  |  | -				<el-row class="option-row" :key="index" @click.native="onCourseChange(item)" v-if="courseViewType == 0">
 | 
	
		
			
				|  |  | +			<div class="section" v-if="courseViewType == 0">
 | 
	
		
			
				|  |  | +                <el-row class="title-row" v-if="courseViewType == 0">
 | 
	
		
			
				|  |  | +                    <el-col :span="12">课程类型</el-col>
 | 
	
		
			
				|  |  | +                    <!-- <el-col :span="5" :offset="1" style="text-align: right;">原价</el-col> -->
 | 
	
		
			
				|  |  | +                    <el-col :span="11" :offset="1" style="text-align: right;">现价</el-col>
 | 
	
		
			
				|  |  | +                </el-row>
 | 
	
		
			
				|  |  | +				<el-row class="option-row" v-for="(item, index) in courseInfo" :key="index" @click.native="onCourseChange(item)">
 | 
	
		
			
				|  |  |  					<el-col :span="12">
 | 
	
		
			
				|  |  |  						<i class="check_default" :class="[item.isStatus ? 'check_active' : '', !item.isStudentOptional ? 'disabled' : '']"></i><template v-if="item.courseType == 'PROJECT'">{{ item.name }}</template><template v-else>{{ item.courseType | coursesType }}</template>
 | 
	
		
			
				|  |  |  					</el-col>
 | 
	
	
		
			
				|  | @@ -43,8 +89,8 @@
 | 
	
		
			
				|  |  |  						<span style="color: #1A1A1A">¥{{ item.courseCurrentPrice | moneyFormat }}</span>
 | 
	
		
			
				|  |  |  					</el-col>
 | 
	
		
			
				|  |  |  				</el-row>
 | 
	
		
			
				|  |  | -			</template>
 | 
	
		
			
				|  |  | -		</div>
 | 
	
		
			
				|  |  | +			</div>
 | 
	
		
			
				|  |  | +		</template>
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          <div class="section" v-if="courseInfo && courseInfo.length > 0 && isClickStatus && courseViewType == 1">
 | 
	
		
			
				|  |  |  			<h2 class="title">{{ '乐团课程' }}</h2>
 | 
	
	
		
			
				|  | @@ -69,15 +115,43 @@
 | 
	
		
			
				|  |  |  			</template>
 | 
	
		
			
				|  |  |  		</div>
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -		<div class="section" v-if="instrumentResult.length > 0">
 | 
	
		
			
				|  |  | -			<h2 class="title">乐器</h2>
 | 
	
		
			
				|  |  | +        <h2 class="titles" v-if="instrumentResultList && instrumentResultList.length > 0">
 | 
	
		
			
				|  |  | +			<img :src="trainSmallBg" />
 | 
	
		
			
				|  |  | +			<span>乐器</span>
 | 
	
		
			
				|  |  | +		</h2>
 | 
	
		
			
				|  |  | +		<div class="section" v-if="instrumentResultList && instrumentResult.length > 0">
 | 
	
		
			
				|  |  |              <div v-for="(i, index) in instrumentResultList" :key="index">
 | 
	
		
			
				|  |  | +                <template v-if="leBaoStatus && i[0].kitType == 'owned'">
 | 
	
		
			
				|  |  | +                    <!-- <el-row class="title-row">
 | 
	
		
			
				|  |  | +                        <el-col :span="12" :offset="1">服务项目</el-col>
 | 
	
		
			
				|  |  | +                        <el-col :span="11" style="text-align: right;">现价</el-col>
 | 
	
		
			
				|  |  | +                    </el-row> -->
 | 
	
		
			
				|  |  | +                    <el-row class="option-row" style="padding-bottom: 10px; margin-top: 8px; border-top: 1px solid #F0F0F0;" @click.native="onLeBao">
 | 
	
		
			
				|  |  | +                        <el-col :span="12">
 | 
	
		
			
				|  |  | +                            <i class="check_default" :class="[ buyMaintenance ? 'check_active' : '' ]"></i>乐器保养(一年)<el-icon style="padding-left: 0;" name="question" @click.stop.native="onQuestions('instrument')" />
 | 
	
		
			
				|  |  | +                        </el-col>
 | 
	
		
			
				|  |  | +                        <!-- <el-col :span="6">
 | 
	
		
			
				|  |  | +                            <del style="color: #AAA; font-size: .12rem;">¥{{ 500 | moneyFormat }}</del>
 | 
	
		
			
				|  |  | +                        </el-col> -->
 | 
	
		
			
				|  |  | +                        <el-col :span="11" :offset="1">
 | 
	
		
			
				|  |  | +                            <span style="color: #1A1A1A">¥{{ 300 | moneyFormat }}</span>
 | 
	
		
			
				|  |  | +                        </el-col>
 | 
	
		
			
				|  |  | +                    </el-row>
 | 
	
		
			
				|  |  | +                </template>
 | 
	
		
			
				|  |  |  				<el-row class="title-row">
 | 
	
		
			
				|  |  |  					<el-col :span="12">
 | 
	
		
			
				|  |  | -						<template v-if="i[0]['kitType'] == 'GROUP'">团购乐器</template>
 | 
	
		
			
				|  |  | -						<template v-if="i[0]['kitType'] == 'LEASE'">乐器租赁</template>
 | 
	
		
			
				|  |  | -						<template v-if="i[0]['kitType'] == 'FREE'">免费使用</template>
 | 
	
		
			
				|  |  | -						<template v-if="i[0]['kitType'] == 'owned'">自备乐器</template>
 | 
	
		
			
				|  |  | +						<template v-if="i[0]['kitType'] == 'GROUP'">
 | 
	
		
			
				|  |  | +							团购乐器{{ courseViewType == 2 ? '(赠送辅件一套)' : null }}
 | 
	
		
			
				|  |  | +						</template>
 | 
	
		
			
				|  |  | +						<template v-if="i[0]['kitType'] == 'LEASE'">
 | 
	
		
			
				|  |  | +							乐器租赁{{ courseViewType == 2 ? '(请自行购买辅件)' : null }}
 | 
	
		
			
				|  |  | +						</template>
 | 
	
		
			
				|  |  | +						<template v-if="i[0]['kitType'] == 'FREE'">
 | 
	
		
			
				|  |  | +							免费乐器{{ courseViewType == 2 ? '(请自行购买辅件)' : null }}
 | 
	
		
			
				|  |  | +						</template>
 | 
	
		
			
				|  |  | +						<template v-if="i[0]['kitType'] == 'owned'">
 | 
	
		
			
				|  |  | +							自备乐器{{ courseViewType == 2 ? '(请自行购买辅件)' : null }}
 | 
	
		
			
				|  |  | +						</template>
 | 
	
		
			
				|  |  |  					</el-col>
 | 
	
		
			
				|  |  |  					<el-col :span="5" :offset="1" style="text-align: right;">
 | 
	
		
			
				|  |  |  						<template v-if="['GROUP', 'LEASE', 'FREE'].includes(i[0]['kitType'])">原价</template>
 | 
	
	
		
			
				|  | @@ -88,49 +162,41 @@
 | 
	
		
			
				|  |  |  					</el-col>
 | 
	
		
			
				|  |  |  				</el-row>
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -				<el-row class="option-row" v-for="(con, index) in i" :key="index" @click.native="instrumentF(con)">
 | 
	
		
			
				|  |  | -					<el-col :span="12">
 | 
	
		
			
				|  |  | -						<i class="check_default" :class="[ con.checked ? 'check_active' : '' ]"></i>
 | 
	
		
			
				|  |  | -						<div>
 | 
	
		
			
				|  |  | -							{{ con.name }}
 | 
	
		
			
				|  |  | -							<div v-if="con.goodsList" style="font-size: .12rem; color: #aaa">
 | 
	
		
			
				|  |  | -								{{ con.goodsList[0].specification }}
 | 
	
		
			
				|  |  | -							</div>
 | 
	
		
			
				|  |  | -						</div>
 | 
	
		
			
				|  |  | -					</el-col>
 | 
	
		
			
				|  |  | -					<el-col :span="6">
 | 
	
		
			
				|  |  | -						<del style="color: #AAA; font-size: 12px;" v-if="con.kitType != 'owned'">¥{{ con.marketPrice | moneyFormat }}</del>
 | 
	
		
			
				|  |  | -					</el-col>
 | 
	
		
			
				|  |  | -					<el-col :span="6">
 | 
	
		
			
				|  |  | -						<span style="color: #1A1A1A" v-if="(con.kitType == 'LEASE')">¥{{ Number((con.depositFee  - con.coupon).toFixed(2)) | moneyFormat }}</span>
 | 
	
		
			
				|  |  | -						<span style="color: #1A1A1A" v-if="con.kitType == 'FREE'">¥{{ 0 | moneyFormat }}</span>
 | 
	
		
			
				|  |  | -						<span style="color: #1A1A1A" v-if="con.kitType == 'GROUP'">¥{{ Number((con.price  - con.coupon).toFixed(2)) | moneyFormat }}</span>
 | 
	
		
			
				|  |  | -					</el-col>
 | 
	
		
			
				|  |  | -				</el-row>
 | 
	
		
			
				|  |  | -			</div>
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -            <div v-if="leBaoStatus">
 | 
	
		
			
				|  |  | -				<el-row class="title-row">
 | 
	
		
			
				|  |  | -					<el-col :span="12" :offset="1">服务项目</el-col>
 | 
	
		
			
				|  |  | -					<!-- <el-col :span="5" :offset="1" style="text-align: right;">原价</el-col> -->
 | 
	
		
			
				|  |  | -					<el-col :span="11" style="text-align: right;">现价</el-col>
 | 
	
		
			
				|  |  | -				</el-row>
 | 
	
		
			
				|  |  | -				<el-row class="option-row" @click.native="onLeBao">
 | 
	
		
			
				|  |  | -					<el-col :span="12">
 | 
	
		
			
				|  |  | -						<i class="check_default" :class="[ buyMaintenance ? 'check_active' : '' ]"></i>乐器保养(一年)<el-icon style="padding-left: 0;" name="question" @click.stop.native="onQuestions('instrument')" />
 | 
	
		
			
				|  |  | -					</el-col>
 | 
	
		
			
				|  |  | -					<!-- <el-col :span="6">
 | 
	
		
			
				|  |  | -						<del style="color: #AAA; font-size: .12rem;">¥{{ 500 | moneyFormat }}</del>
 | 
	
		
			
				|  |  | -					</el-col> -->
 | 
	
		
			
				|  |  | -					<el-col :span="11" :offset="1">
 | 
	
		
			
				|  |  | -						<span style="color: #1A1A1A">¥{{ 300 | moneyFormat }}</span>
 | 
	
		
			
				|  |  | -					</el-col>
 | 
	
		
			
				|  |  | -				</el-row>
 | 
	
		
			
				|  |  | +                <div v-for="(con, index) in i" :key="index" @click="instrumentF(con)">
 | 
	
		
			
				|  |  | +                    <el-row class="option-row">
 | 
	
		
			
				|  |  | +                        <el-col :span="12">
 | 
	
		
			
				|  |  | +                            <i class="check_default" :class="[ con.checked ? 'check_active' : '' ]"></i>
 | 
	
		
			
				|  |  | +                            <div>
 | 
	
		
			
				|  |  | +                                {{ con.name }}
 | 
	
		
			
				|  |  | +                                <div v-if="con.goodsList" style="font-size: 12px; color: #aaa">
 | 
	
		
			
				|  |  | +                                    {{ con.goodsList[0].specification }}
 | 
	
		
			
				|  |  | +                                </div>
 | 
	
		
			
				|  |  | +                            </div>
 | 
	
		
			
				|  |  | +                        </el-col>
 | 
	
		
			
				|  |  | +                        <el-col :span="6">
 | 
	
		
			
				|  |  | +                            <del style="color: #AAA; font-size: 12px;" v-if="con.kitType != 'owned'">¥{{ con.marketPrice | moneyFormat }}</del>
 | 
	
		
			
				|  |  | +                        </el-col>
 | 
	
		
			
				|  |  | +                        <el-col :span="6">
 | 
	
		
			
				|  |  | +                            <span style="color: #1A1A1A" v-if="(con.kitType == 'LEASE')">¥{{ Number((con.depositFee  - con.coupon).toFixed(2)) | moneyFormat }}</span>
 | 
	
		
			
				|  |  | +                            <span style="color: #1A1A1A" v-if="con.kitType == 'FREE'">¥{{ 0 | moneyFormat }}</span>
 | 
	
		
			
				|  |  | +                            <span style="color: #1A1A1A" v-if="con.kitType == 'GROUP'">¥{{ Number((con.price  - con.coupon).toFixed(2)) | moneyFormat }}</span>
 | 
	
		
			
				|  |  | +                        </el-col>
 | 
	
		
			
				|  |  | +                    </el-row>
 | 
	
		
			
				|  |  | +                    <van-row style="padding-left: 24px; padding-top: 8px; border-top: 1px solid #F0F0F0;" v-if="con.childGoodsList">
 | 
	
		
			
				|  |  | +						<van-col span="24" style="font-size: 14px; color: #1A1A1A">赠送辅件</van-col>
 | 
	
		
			
				|  |  | +						<van-col v-for="(child, index) in con.childGoodsList" :key="child.id">
 | 
	
		
			
				|  |  | +							<span style="font-size: 12px; color: #aaaaaa;">{{ child.name }} {{con.childGoodsList.length - 1 == index ? '' : '、'}}</span>
 | 
	
		
			
				|  |  | +						</van-col>
 | 
	
		
			
				|  |  | +					</van-row>
 | 
	
		
			
				|  |  | +                </div>
 | 
	
		
			
				|  |  |  			</div>
 | 
	
		
			
				|  |  |  		</div>
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -		<div class="section" v-if="accessOries.length > 0" key="accessOries">
 | 
	
		
			
				|  |  | -			<h2 class="title">辅件</h2>
 | 
	
		
			
				|  |  | +        <h2 class="titles" v-if="accessOries.length > 0 && accessIsShowStatus">
 | 
	
		
			
				|  |  | +			<img :src="trainSmallBg" />
 | 
	
		
			
				|  |  | +			<span>辅件</span>
 | 
	
		
			
				|  |  | +		</h2>
 | 
	
		
			
				|  |  | +		<div class="section" v-if="accessOries.length > 0 && accessIsShowStatus" key="accessOries">
 | 
	
		
			
				|  |  |              <el-row class="title-row">
 | 
	
		
			
				|  |  |  				<el-col :span="12">服务项目</el-col>
 | 
	
		
			
				|  |  |  				<el-col :span="5" :offset="1" style="text-align: right;">原价</el-col>
 | 
	
	
		
			
				|  | @@ -200,6 +266,16 @@
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  			<a class="btn-submit">购买</a>
 | 
	
		
			
				|  |  |  		</div>
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        <el-dialog
 | 
	
		
			
				|  |  | +            title="视屏"
 | 
	
		
			
				|  |  | +            :visible.sync="videoStatus"
 | 
	
		
			
				|  |  | +            :modal-append-to-body="false"
 | 
	
		
			
				|  |  | +            :append-to-body="true"
 | 
	
		
			
				|  |  | +            class="videoDialog"
 | 
	
		
			
				|  |  | +            width="30%">
 | 
	
		
			
				|  |  | +            <video style="width: 100%;" v-if="videoStatus" controls="controls" class="ql-video" src="https://daya.ks3-cn-beijing.ksyun.com/202105/SWmqmvW.mp4" :poster="require('../../../assets/images/musicGroup/video_bg.png')" />
 | 
	
		
			
				|  |  | +        </el-dialog>
 | 
	
		
			
				|  |  |      </div>
 | 
	
		
			
				|  |  |  </template>
 | 
	
		
			
				|  |  |  <script>
 | 
	
	
		
			
				|  | @@ -216,6 +292,9 @@ export default {
 | 
	
		
			
				|  |  |      data() {
 | 
	
		
			
				|  |  |          const query = this.$route.query
 | 
	
		
			
				|  |  |          return {
 | 
	
		
			
				|  |  | +            videoStatus: false,
 | 
	
		
			
				|  |  | +            trainBg: require('../../../assets/images/musicGroup/yunTrain_bg.png'),
 | 
	
		
			
				|  |  | +            trainSmallBg: require('../../../assets/images/musicGroup/yunTrain_small_bg.png'),
 | 
	
		
			
				|  |  |              musicGroupId: query.id,
 | 
	
		
			
				|  |  |              result: {}, // 返回结果
 | 
	
		
			
				|  |  |              instrument: {}, // 乐器类型
 | 
	
	
		
			
				|  | @@ -224,6 +303,7 @@ export default {
 | 
	
		
			
				|  |  |              balance: 0, // 余额
 | 
	
		
			
				|  |  |              needPrice: 0, // 还需支付
 | 
	
		
			
				|  |  |              payType: false, // 是否余额支付
 | 
	
		
			
				|  |  | +            cloudTeacherFee: 0, // 云教练费用
 | 
	
		
			
				|  |  |              orderInfo: {
 | 
	
		
			
				|  |  |                  marketPrice: 0,
 | 
	
		
			
				|  |  |                  amount: 0, // 现价总金额
 | 
	
	
		
			
				|  | @@ -239,6 +319,11 @@ export default {
 | 
	
		
			
				|  |  |                  goodsPrice: 0, // 乐器现价
 | 
	
		
			
				|  |  |                  goodsMarketPrice: 0, // 乐器原价
 | 
	
		
			
				|  |  |              }, // 金额列表,金额计算
 | 
	
		
			
				|  |  | +            toolsPackage: [{
 | 
	
		
			
				|  |  | +                isStatus: true,
 | 
	
		
			
				|  |  | +                name: '练习系统(六个月)',
 | 
	
		
			
				|  |  | +                childGoodsList: [{ name: '同步乐团训练教程、五线谱跟播、演奏指法跟播、演奏速度自定义、任选小节循环播放、原音/伴奏一键切换' }]
 | 
	
		
			
				|  |  | +            }], // 学习工具包
 | 
	
		
			
				|  |  |              courseInfo: null, // 课程信息
 | 
	
		
			
				|  |  |              musicGroupSubject: null, // 基本信息
 | 
	
		
			
				|  |  |              instrumentResult: [], //乐器
 | 
	
	
		
			
				|  | @@ -247,6 +332,7 @@ export default {
 | 
	
		
			
				|  |  |              authStatus: false,
 | 
	
		
			
				|  |  |              buyList: [], // 信息列表
 | 
	
		
			
				|  |  |              ids: [],
 | 
	
		
			
				|  |  | +            instrumentResultList: [],
 | 
	
		
			
				|  |  |              chargeTypeId: null,
 | 
	
		
			
				|  |  |              paymentStatus: null,
 | 
	
		
			
				|  |  |              paymentPattern: null,
 | 
	
	
		
			
				|  | @@ -259,6 +345,7 @@ export default {
 | 
	
		
			
				|  |  |  			buyMaintenance: false, // 是否开启乐保
 | 
	
		
			
				|  |  |              isClickStatus: false,
 | 
	
		
			
				|  |  |              accessStatus: false, // 是否有辅件乐保
 | 
	
		
			
				|  |  | +            accessIsShowStatus: false, // 是否显示辅件 true 显示, false 不显示
 | 
	
		
			
				|  |  |          };
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  |      mounted() {
 | 
	
	
		
			
				|  | @@ -284,6 +371,7 @@ export default {
 | 
	
		
			
				|  |  |                  if (result.code == 200) {
 | 
	
		
			
				|  |  |                      let tempResult = result.data
 | 
	
		
			
				|  |  |                      this.courseViewType = tempResult.musicGroup.courseViewType || 0
 | 
	
		
			
				|  |  | +                    this.cloudTeacherFee = tempResult.cloudTeacherFee || 0
 | 
	
		
			
				|  |  |                      this.paymentPattern = 2
 | 
	
		
			
				|  |  |                      if(tempResult.musicGroupPaymentCalender) {
 | 
	
		
			
				|  |  |                          this.paymentPattern = tempResult.musicGroupPaymentCalender.paymentPattern
 | 
	
	
		
			
				|  | @@ -460,10 +548,17 @@ export default {
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |                          // 乐保服务初始化
 | 
	
		
			
				|  |  |                          this.instrumentResult.forEach(item => {
 | 
	
		
			
				|  |  | -                            if(item.checked && item.kitType == "GROUP" && !accessStatus) {
 | 
	
		
			
				|  |  | +                            if(item.checked && item.kitType != "owned" && !accessStatus) {
 | 
	
		
			
				|  |  |                                  this.leBaoStatus = true
 | 
	
		
			
				|  |  |                                  this.buyMaintenance = true
 | 
	
		
			
				|  |  |                              }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                            if(item.checked && item.kitType != "GROUP" && this.courseViewType == 2) {
 | 
	
		
			
				|  |  | +                                this.accessIsShowStatus = true
 | 
	
		
			
				|  |  | +                            }
 | 
	
		
			
				|  |  | +                            if(this.courseViewType != 2) {
 | 
	
		
			
				|  |  | +                                this.accessIsShowStatus = true
 | 
	
		
			
				|  |  | +                            }
 | 
	
		
			
				|  |  |                          })
 | 
	
		
			
				|  |  |                      }
 | 
	
		
			
				|  |  |                  }
 | 
	
	
		
			
				|  | @@ -510,6 +605,21 @@ export default {
 | 
	
		
			
				|  |  |                  this.calcPrice()
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |          },
 | 
	
		
			
				|  |  | +        onTrainChange(item) {
 | 
	
		
			
				|  |  | +            // 练习系统可选
 | 
	
		
			
				|  |  | +            item.isStatus = !item.isStatus
 | 
	
		
			
				|  |  | +            let courseShowInfo = this.courseShowInfo
 | 
	
		
			
				|  |  | +            courseShowInfo.forEach(course => {
 | 
	
		
			
				|  |  | +                course.isStatus = item.isStatus
 | 
	
		
			
				|  |  | +            })
 | 
	
		
			
				|  |  | +            let cif = this.courseInfo
 | 
	
		
			
				|  |  | +            cif.forEach(c => {
 | 
	
		
			
				|  |  | +                if(!c.isStudentOptional) {
 | 
	
		
			
				|  |  | +                    c.isStatus = item.isStatus
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +            })
 | 
	
		
			
				|  |  | +            this.calcPrice()
 | 
	
		
			
				|  |  | +        },
 | 
	
		
			
				|  |  |          onClickCheckbox() { //是否使用余额支付
 | 
	
		
			
				|  |  |              if (!this.payType) {
 | 
	
		
			
				|  |  |                  if (this.orderInfo.amount >= this.balance) {
 | 
	
	
		
			
				|  | @@ -543,6 +653,14 @@ export default {
 | 
	
		
			
				|  |  |                      this.buyMaintenance = false
 | 
	
		
			
				|  |  |                  }
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  | +            // 云教练且选择自备则不显示辅件
 | 
	
		
			
				|  |  | +            if(this.courseViewType == 2) {
 | 
	
		
			
				|  |  | +                if(item.kitType != "GROUP") {
 | 
	
		
			
				|  |  | +                    this.accessIsShowStatus = true
 | 
	
		
			
				|  |  | +                } else {
 | 
	
		
			
				|  |  | +                    this.accessIsShowStatus = false
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |              // 重新计算金额
 | 
	
		
			
				|  |  |              this.calcPrice()
 | 
	
	
		
			
				|  | @@ -608,7 +726,9 @@ export default {
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |                      csi.forEach(item => {
 | 
	
		
			
				|  |  |                          if (item.isStatus) {
 | 
	
		
			
				|  |  | -                            musicClassFee += parseFloat(item.courseCurrentPrice)
 | 
	
		
			
				|  |  | +                            if(this.courseViewType != 2) {
 | 
	
		
			
				|  |  | +                                musicClassFee += parseFloat(item.courseCurrentPrice)
 | 
	
		
			
				|  |  | +                            }
 | 
	
		
			
				|  |  |                              // marketPrice += parseFloat(item.courseOriginalPrice)
 | 
	
		
			
				|  |  |                              if (item.id > 0) {
 | 
	
		
			
				|  |  |                                  courseKeys.push(item.id)
 | 
	
	
		
			
				|  | @@ -633,7 +753,7 @@ export default {
 | 
	
		
			
				|  |  |              if (ir.length > 0) {
 | 
	
		
			
				|  |  |                  ir.forEach(item => {
 | 
	
		
			
				|  |  |                      if (item.checked) {
 | 
	
		
			
				|  |  | -                        if (item.name != '自备') {
 | 
	
		
			
				|  |  | +                        if (item.name != '自备乐器') {
 | 
	
		
			
				|  |  |                              contractGoodsIds += item.goodsIdList
 | 
	
		
			
				|  |  |                          }
 | 
	
		
			
				|  |  |                          if (item.kitType == 'FREE') {
 | 
	
	
		
			
				|  | @@ -641,7 +761,7 @@ export default {
 | 
	
		
			
				|  |  |                              couponPrice = 0 // 优惠金额
 | 
	
		
			
				|  |  |                          } else if (item.kitType == 'LEASE') {
 | 
	
		
			
				|  |  |                              couponPrice = item.coupon // 优惠金额
 | 
	
		
			
				|  |  | -                            if (item.name != '自备') {
 | 
	
		
			
				|  |  | +                            if (item.name != '自备乐器') {
 | 
	
		
			
				|  |  |                                  amount += item.depositFee
 | 
	
		
			
				|  |  |                                  goodsPrice += item.depositFee
 | 
	
		
			
				|  |  |                              } else {
 | 
	
	
		
			
				|  | @@ -653,7 +773,7 @@ export default {
 | 
	
		
			
				|  |  |                              couponPrice = item.coupon ? item.coupon : 0
 | 
	
		
			
				|  |  |                          }
 | 
	
		
			
				|  |  |                          if (item.kitType == 'LEASE') {
 | 
	
		
			
				|  |  | -                            if (item.name != '自备') {
 | 
	
		
			
				|  |  | +                            if (item.name != '自备乐器') {
 | 
	
		
			
				|  |  |                                  marketPrice += parseFloat(item.marketPrice)
 | 
	
		
			
				|  |  |                                  goodsMarketPrice += item.depositFee
 | 
	
		
			
				|  |  |                              }
 | 
	
	
		
			
				|  | @@ -718,7 +838,7 @@ export default {
 | 
	
		
			
				|  |  |              // 辅件
 | 
	
		
			
				|  |  |              if (this.accessOries.length > 0) {
 | 
	
		
			
				|  |  |                  this.accessOries.forEach(item => {
 | 
	
		
			
				|  |  | -                    if (item.checked) {
 | 
	
		
			
				|  |  | +                    if (item.checked && this.accessIsShowStatus) {
 | 
	
		
			
				|  |  |                          tempAccessPrice += parseFloat(item.price)
 | 
	
		
			
				|  |  |                          amount += parseFloat(item.price)
 | 
	
		
			
				|  |  |                          if (item.goodsList && item.goodsList.length > 0) {
 | 
	
	
		
			
				|  | @@ -754,12 +874,12 @@ export default {
 | 
	
		
			
				|  |  |                  this.errorPrice = true // 订单金额是否异常
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -            if (amount - tempCourseFee - musicClassFee > 0) {
 | 
	
		
			
				|  |  | -                ids.push(1, 2)
 | 
	
		
			
				|  |  | -            }
 | 
	
		
			
				|  |  | -            if (parseFloat(tempCourseFee + musicClassFee) > 0) {
 | 
	
		
			
				|  |  | -                ids.push(3, 4, 5)
 | 
	
		
			
				|  |  | -            }
 | 
	
		
			
				|  |  | +            // if (amount - tempCourseFee - musicClassFee > 0) {
 | 
	
		
			
				|  |  | +            //     ids.push(1, 2)
 | 
	
		
			
				|  |  | +            // }
 | 
	
		
			
				|  |  | +            // if (parseFloat(tempCourseFee + musicClassFee) > 0) {
 | 
	
		
			
				|  |  | +            //     ids.push(3, 4, 5)
 | 
	
		
			
				|  |  | +            // }
 | 
	
		
			
				|  |  |              this.ids = ids
 | 
	
		
			
				|  |  |              // 计算是否使用过余额
 | 
	
		
			
				|  |  |              if (this.payType) {
 | 
	
	
		
			
				|  | @@ -798,58 +918,107 @@ export default {
 | 
	
		
			
				|  |  |  };
 | 
	
		
			
				|  |  |  </script>
 | 
	
		
			
				|  |  |  <style lang="less" scoped>
 | 
	
		
			
				|  |  | -.noticeInfo {
 | 
	
		
			
				|  |  | -  line-height: 1.8;
 | 
	
		
			
				|  |  | -    h2 {
 | 
	
		
			
				|  |  | -        font-size: 18px;
 | 
	
		
			
				|  |  | -        color: #1a1a1a;
 | 
	
		
			
				|  |  | -        line-height: 28px;
 | 
	
		
			
				|  |  | -        height: 26px !important;
 | 
	
		
			
				|  |  | -        font-weight: bold;
 | 
	
		
			
				|  |  | -    }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +.noticeInfo {
 | 
	
		
			
				|  |  | +    margin: 0 12px;
 | 
	
		
			
				|  |  |      position: relative;
 | 
	
		
			
				|  |  |      background: #fff;
 | 
	
		
			
				|  |  | -    padding: 0 16px 10px;
 | 
	
		
			
				|  |  | +    padding: 10px 12px;
 | 
	
		
			
				|  |  |      font-size: 14px;
 | 
	
		
			
				|  |  |      color: #808080;
 | 
	
		
			
				|  |  | -    margin-bottom: 10px;
 | 
	
		
			
				|  |  | +    border-radius: 10px;
 | 
	
		
			
				|  |  | +    line-height: 1.5;
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -.section {
 | 
	
		
			
				|  |  | -    padding: 16px 16px 10px;
 | 
	
		
			
				|  |  | -    background: #fff;
 | 
	
		
			
				|  |  | -    margin-bottom: 10px;
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -    >.title {
 | 
	
		
			
				|  |  | -        font-size: 20px;
 | 
	
		
			
				|  |  | -        line-height: 28px;
 | 
	
		
			
				|  |  | -        height: 26px !important;
 | 
	
		
			
				|  |  | -        font-weight: bold;
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -        &::before {
 | 
	
		
			
				|  |  | -            content: " ";
 | 
	
		
			
				|  |  | -            width: 4px;
 | 
	
		
			
				|  |  | -            height: 15px;
 | 
	
		
			
				|  |  | -            background: #14928a;
 | 
	
		
			
				|  |  | +.yunTrain {
 | 
	
		
			
				|  |  | +    position: relative;
 | 
	
		
			
				|  |  | +    font-size: 0;
 | 
	
		
			
				|  |  | +    margin: 0 12px;
 | 
	
		
			
				|  |  | +    img {
 | 
	
		
			
				|  |  | +        width: 100%;
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +    .toolText {
 | 
	
		
			
				|  |  | +        position: absolute;
 | 
	
		
			
				|  |  | +        top: 0;
 | 
	
		
			
				|  |  | +        left: 0;
 | 
	
		
			
				|  |  | +        height: 100%;
 | 
	
		
			
				|  |  | +        display: flex;
 | 
	
		
			
				|  |  | +        flex-direction: column;
 | 
	
		
			
				|  |  | +        justify-content: center;
 | 
	
		
			
				|  |  | +        padding: 0 10px;
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +    .toolTitle {
 | 
	
		
			
				|  |  | +        font-size: 16px;
 | 
	
		
			
				|  |  | +        color: #C1735D;
 | 
	
		
			
				|  |  | +        display: flex;
 | 
	
		
			
				|  |  | +        align-items: center;
 | 
	
		
			
				|  |  | +        padding-top: 2px;
 | 
	
		
			
				|  |  | +        padding-bottom: 2px;
 | 
	
		
			
				|  |  | +        .icon_video {
 | 
	
		
			
				|  |  | +            margin-left: 5px;
 | 
	
		
			
				|  |  |              display: inline-block;
 | 
	
		
			
				|  |  | -            margin-right: 7px;
 | 
	
		
			
				|  |  | -            border-radius: 8px;
 | 
	
		
			
				|  |  | +            width: 16px;
 | 
	
		
			
				|  |  | +            height: 16px;
 | 
	
		
			
				|  |  | +            background: url('../../../assets/images/musicGroup/video_btn.png');
 | 
	
		
			
				|  |  | +            background-size: contain;
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  | +    .toolDate {
 | 
	
		
			
				|  |  | +        font-size: 12px;
 | 
	
		
			
				|  |  | +        color: #808080;
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -    .indate {
 | 
	
		
			
				|  |  | -        font-size: 14px;
 | 
	
		
			
				|  |  | -        padding: 6px 0;
 | 
	
		
			
				|  |  | -        display: flex;
 | 
	
		
			
				|  |  | -        // justify-content: space-between;
 | 
	
		
			
				|  |  | -        justify-content: flex-end;
 | 
	
		
			
				|  |  | +.title {
 | 
	
		
			
				|  |  | +    font-size: 18px;
 | 
	
		
			
				|  |  | +    line-height: 28px;
 | 
	
		
			
				|  |  | +    font-weight: bold;
 | 
	
		
			
				|  |  | +    padding-bottom: 5px;
 | 
	
		
			
				|  |  | +    padding: 12px;
 | 
	
		
			
				|  |  | +    display: flex;
 | 
	
		
			
				|  |  | +    align-items: center;
 | 
	
		
			
				|  |  | +    margin-bottom: 0;
 | 
	
		
			
				|  |  | +    &::before {
 | 
	
		
			
				|  |  | +        content: " ";
 | 
	
		
			
				|  |  | +        width: 4px;
 | 
	
		
			
				|  |  | +        height: 15px;
 | 
	
		
			
				|  |  | +        background: #01C1B5;
 | 
	
		
			
				|  |  | +        display: inline-block;
 | 
	
		
			
				|  |  | +        margin-right: 7px;
 | 
	
		
			
				|  |  | +        border-radius: 8px;
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -        span {
 | 
	
		
			
				|  |  | -            color: #fa101d;
 | 
	
		
			
				|  |  | -        }
 | 
	
		
			
				|  |  | +.titles {
 | 
	
		
			
				|  |  | +    position: relative;
 | 
	
		
			
				|  |  | +    font-size: 0;
 | 
	
		
			
				|  |  | +    margin: 0 12px;
 | 
	
		
			
				|  |  | +    img {
 | 
	
		
			
				|  |  | +        width: 100%;
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +    & > span {
 | 
	
		
			
				|  |  | +        position: absolute;
 | 
	
		
			
				|  |  | +        top: 0;
 | 
	
		
			
				|  |  | +        left: 0;
 | 
	
		
			
				|  |  | +        height: 100%;
 | 
	
		
			
				|  |  | +        display: flex;
 | 
	
		
			
				|  |  | +        flex-direction: column;
 | 
	
		
			
				|  |  | +        justify-content: center;
 | 
	
		
			
				|  |  | +        padding: 0 10px;
 | 
	
		
			
				|  |  | +        font-size: 16px;
 | 
	
		
			
				|  |  | +        color: #C1735D;
 | 
	
		
			
				|  |  | +        font-weight: 500;
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  | +.section {
 | 
	
		
			
				|  |  | +    margin: 0 12px;
 | 
	
		
			
				|  |  | +    padding: 12px 12px 10px;
 | 
	
		
			
				|  |  | +    background: #fff;
 | 
	
		
			
				|  |  | +    margin-bottom: 12px;
 | 
	
		
			
				|  |  | +    border-bottom-left-radius: 10px;
 | 
	
		
			
				|  |  | +    border-bottom-right-radius: 10px;
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  .disabled {
 | 
	
		
			
				|  |  |      opacity: 0.5;
 | 
	
	
		
			
				|  | @@ -898,10 +1067,9 @@ export default {
 | 
	
		
			
				|  |  |          display: inline-block;
 | 
	
		
			
				|  |  |          font-size: 18px;
 | 
	
		
			
				|  |  |          color: #fff;
 | 
	
		
			
				|  |  | -        background: #f85043;
 | 
	
		
			
				|  |  | +        background: #01C1B5;
 | 
	
		
			
				|  |  |          border-radius: 100px;
 | 
	
		
			
				|  |  | -        box-shadow: 0px 2px 4px 0px rgba(0, 0, 0, 0.19);
 | 
	
		
			
				|  |  | -        padding: 8px 46px;
 | 
	
		
			
				|  |  | +        padding: 8px 36px;
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -1090,4 +1258,10 @@ export default {
 | 
	
		
			
				|  |  |  .fontBold {
 | 
	
		
			
				|  |  |      font-weight: bold;
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  | +.videoDialog {
 | 
	
		
			
				|  |  | +    /deep/.el-dialog__body {
 | 
	
		
			
				|  |  | +        padding: 0;
 | 
	
		
			
				|  |  | +        font-size: 0;
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  |  </style>
 |