|
@@ -48,7 +48,7 @@
|
|
|
</el-row>
|
|
|
<el-row class="option-row" v-for="(item, index) in instrumentRepair" :key="index" @click.native="onCheckItem(item)">
|
|
|
<el-col :span="12">
|
|
|
- <i class="check_default" :class="[item.isStatus ? 'check_active' : '', !item.optionalFlag ? 'disabled' : '']"></i>
|
|
|
+ <i class="check_default" :class="[item.isStatus ? 'check_active' : '', item.optionalFlag ? 'disabled' : '', item.noSelect ? 'noSelect' : '']"></i>
|
|
|
{{ item.name }}
|
|
|
</el-col>
|
|
|
<el-col :span="6">
|
|
@@ -75,7 +75,7 @@
|
|
|
/>
|
|
|
|
|
|
|
|
|
- <div class="buy">
|
|
|
+ <!-- <div class="buy">
|
|
|
<div class="price">
|
|
|
<p class="oldprice">
|
|
|
<del class="text">原价</del>
|
|
@@ -90,7 +90,7 @@
|
|
|
</div>
|
|
|
|
|
|
<a class="btn-submit">购买</a>
|
|
|
- </div>
|
|
|
+ </div> -->
|
|
|
</div>
|
|
|
</template>
|
|
|
<script>
|
|
@@ -184,165 +184,134 @@ export default {
|
|
|
subjectId: this.subjectId,
|
|
|
calenderId: this.calenderId,
|
|
|
};
|
|
|
- await getType().then((res) => {
|
|
|
- let result = res.data;
|
|
|
- if (res.code == 200) {
|
|
|
- this.chargeTypeList = result.rows || [];
|
|
|
- }
|
|
|
- });
|
|
|
+ // await getType().then((res) => {
|
|
|
+ // let result = res.data;
|
|
|
+ // if (res.code == 200) {
|
|
|
+ // this.chargeTypeList = result.rows || [];
|
|
|
+ // }
|
|
|
+ // });
|
|
|
await getSubjectGoodsAndInfoPreview(params).then((res) => {
|
|
|
let result = res;
|
|
|
if (result.code == 200) {
|
|
|
let tempResult = result.data;
|
|
|
- this.courseViewType = tempResult.musicGroup.courseViewType || 0;
|
|
|
- this.organId = tempResult.musicGroup.organId;
|
|
|
- this.cloudTeacherFee = tempResult.cloudTeacherFee || 0;
|
|
|
- this.cloudTeacherPlusFee = tempResult.cloudTeacherPlusFee || 0;
|
|
|
+ this.__dataFormat(tempResult)
|
|
|
+ }
|
|
|
+ // 初始化计算金额
|
|
|
+ this.calcPrice();
|
|
|
+ });
|
|
|
+ },
|
|
|
+ __dataFormat(tempResult) {
|
|
|
+ console.log(this.preViewData, 'sffwef')
|
|
|
+ console.log(tempResult, 'tempResult')
|
|
|
+ this.courseViewType = tempResult.musicGroup.courseViewType || 0;
|
|
|
+ this.organId = tempResult.musicGroup.organId;
|
|
|
+ this.cloudTeacherFee = tempResult.cloudTeacherFee || 0;
|
|
|
+ this.cloudTeacherPlusFee = tempResult.cloudTeacherPlusFee || 0;
|
|
|
|
|
|
- let memberCoursePrice = tempResult.memberCoursePrice || {};
|
|
|
- for (let i in memberCoursePrice) {
|
|
|
- this.memberCoursePrice.push({
|
|
|
- name: coursesType[i],
|
|
|
- price: memberCoursePrice[i],
|
|
|
- });
|
|
|
- }
|
|
|
- this.memberCourseShowFlag =
|
|
|
- tempResult.musicGroup.memberCourseShowFlag || false;
|
|
|
+ let memberCoursePrice = tempResult.memberCoursePrice || {};
|
|
|
+ for (let i in memberCoursePrice) {
|
|
|
+ this.memberCoursePrice.push({
|
|
|
+ name: coursesType[i],
|
|
|
+ price: memberCoursePrice[i],
|
|
|
+ });
|
|
|
+ }
|
|
|
+ this.memberCourseShowFlag =
|
|
|
+ tempResult.musicGroup.memberCourseShowFlag || false;
|
|
|
|
|
|
- this.paymentPattern = 2;
|
|
|
- if (tempResult.musicGroupPaymentCalender) {
|
|
|
- this.paymentPattern =
|
|
|
- tempResult.musicGroupPaymentCalender.paymentPattern;
|
|
|
- this.serviceValidDate =
|
|
|
- dayjs(
|
|
|
- tempResult.musicGroupPaymentCalender.paymentValidStartDate
|
|
|
- ).format("YYYY/MM/DD") +
|
|
|
- "~" +
|
|
|
- dayjs(
|
|
|
- tempResult.musicGroupPaymentCalender.paymentValidEndDate
|
|
|
- ).format("YYYY/MM/DD");
|
|
|
- }
|
|
|
- const paymentCalender = tempResult.paymentCalender || null
|
|
|
- let tempInfo = paymentCalender && paymentCalender.course ? paymentCalender.course : [];
|
|
|
+ this.paymentPattern = 2;
|
|
|
+ if (tempResult.musicGroupPaymentCalender) {
|
|
|
+ this.paymentPattern =
|
|
|
+ tempResult.musicGroupPaymentCalender.paymentPattern;
|
|
|
+ this.serviceValidDate =
|
|
|
+ dayjs(
|
|
|
+ tempResult.musicGroupPaymentCalender.paymentValidStartDate
|
|
|
+ ).format("YYYY/MM/DD") +
|
|
|
+ "~" +
|
|
|
+ dayjs(
|
|
|
+ tempResult.musicGroupPaymentCalender.paymentValidEndDate
|
|
|
+ ).format("YYYY/MM/DD");
|
|
|
+ }
|
|
|
+ const paymentCalender = this.preViewData ? this.preViewData.paymentCalender : (tempResult.paymentCalender || null)
|
|
|
+ console.log(paymentCalender, 'paymentCalender')
|
|
|
+ let tempInfo = paymentCalender && paymentCalender.course ? paymentCalender.course : [];
|
|
|
|
|
|
|
|
|
- let memberPrivilegesItemList = tempResult.memberPrivilegesItemList
|
|
|
- ? tempResult.memberPrivilegesItemList
|
|
|
- : [];
|
|
|
- let tempMember = [];
|
|
|
- memberPrivilegesItemList.forEach((member) => {
|
|
|
- if (
|
|
|
- member.memberPrivilegesItems &&
|
|
|
- member.memberPrivilegesItems.length > 0
|
|
|
- ) {
|
|
|
- member.memberPrivilegesItems.forEach((item) => {
|
|
|
- tempMember.push(item.name);
|
|
|
- });
|
|
|
- }
|
|
|
+ let memberPrivilegesItemList = tempResult.memberPrivilegesItemList
|
|
|
+ ? tempResult.memberPrivilegesItemList
|
|
|
+ : [];
|
|
|
+ let tempMember = [];
|
|
|
+ memberPrivilegesItemList.forEach((member) => {
|
|
|
+ if (
|
|
|
+ member.memberPrivilegesItems &&
|
|
|
+ member.memberPrivilegesItems.length > 0
|
|
|
+ ) {
|
|
|
+ member.memberPrivilegesItems.forEach((item) => {
|
|
|
+ tempMember.push(item.name);
|
|
|
});
|
|
|
- // 团练宝
|
|
|
- const member = paymentCalender && paymentCalender.member ? paymentCalender.member : {}
|
|
|
- member.isStatus = member.optionalFlag ? true : false
|
|
|
- this.toolsPackage = [member]
|
|
|
- // 乐器保养
|
|
|
- const repair = paymentCalender && paymentCalender.repair ? paymentCalender.repair : {}
|
|
|
- repair.name = '乐器保养'
|
|
|
- repair.isStatus = repair.optionalFlag ? true : false // 默认不选择乐器保养
|
|
|
- this.instrumentRepair = [repair]
|
|
|
- // 小班课
|
|
|
- const activity = paymentCalender && paymentCalender.activity ? paymentCalender.activity : []
|
|
|
- activity.map(i => {
|
|
|
- if(i.optionalFlag) {
|
|
|
- i.isStatus = true
|
|
|
- } else {
|
|
|
- i.isStatus = false
|
|
|
- }
|
|
|
- })
|
|
|
- this.activityList = [...activity]
|
|
|
+ }
|
|
|
+ });
|
|
|
+ // 团练宝
|
|
|
+ const member = paymentCalender && paymentCalender.member ? paymentCalender.member : {}
|
|
|
+ member.isStatus = member.optionalFlag ? true : false
|
|
|
+ this.toolsPackage = [member]
|
|
|
+ // 乐器保养
|
|
|
+ const repair = paymentCalender && paymentCalender.repair ? paymentCalender.repair : {}
|
|
|
+ repair.name = '乐器保养'
|
|
|
+ repair.isStatus = repair.optionalFlag ? true : false // 默认不选择乐器保养
|
|
|
+ this.instrumentRepair = [repair]
|
|
|
+ // 小班课
|
|
|
+ const activity = paymentCalender && paymentCalender.activity ? paymentCalender.activity : []
|
|
|
+ activity.map(i => {
|
|
|
+ if(i.optionalFlag) {
|
|
|
+ i.isStatus = true
|
|
|
+ } else {
|
|
|
+ i.isStatus = false
|
|
|
+ }
|
|
|
+ })
|
|
|
+ this.activityList = [...activity]
|
|
|
|
|
|
- // 判断是否有课程
|
|
|
- if (tempInfo && tempInfo.length > 0) {
|
|
|
+ // 判断是否有课程
|
|
|
+ if (tempInfo && tempInfo.length > 0) {
|
|
|
|
|
|
- // 默认课程都选中
|
|
|
- tempInfo.forEach((item) => {
|
|
|
- if (item && item.isStudentOptional) {
|
|
|
- item.isStatus = false;
|
|
|
- } else {
|
|
|
- item.isStatus = true;
|
|
|
- }
|
|
|
- });
|
|
|
- this.courseInfo = tempInfo;
|
|
|
- }
|
|
|
+ // 默认课程都选中
|
|
|
+ tempInfo.forEach((item) => {
|
|
|
+ // if (item && item.isStudentOptional) {
|
|
|
+ // item.isStatus = false;
|
|
|
+ // } else {
|
|
|
+ item.isStatus = true;
|
|
|
+ // }
|
|
|
+ });
|
|
|
+ this.courseInfo = tempInfo;
|
|
|
+ }
|
|
|
|
|
|
- this.musicGroupSubject = tempResult.musicGroupSubjectPlan;
|
|
|
- let instrumentInfo = {};
|
|
|
- let tempInstrument = [];
|
|
|
- tempResult.musicGroupSubjectGoodsGroupList.forEach((item) => {
|
|
|
- if (item.type == "INSTRUMENT") {
|
|
|
- // 获取乐器所有提供方式
|
|
|
- let KGPTJ = item.kitGroupPurchaseTypeJson
|
|
|
- ? JSON.parse(item.kitGroupPurchaseTypeJson)
|
|
|
- : {};
|
|
|
- for (let single in KGPTJ) {
|
|
|
- let tempItem = Object.assign({}, item); // 深拷贝
|
|
|
- tempItem.marketPrice = tempItem.goodsList[0].marketPrice;
|
|
|
- tempItem.kitType = single; // 优惠模式
|
|
|
- tempItem.coupon = KGPTJ[single]; // 优惠金额
|
|
|
- tempItem.discountPrice = tempItem.goodsList[0].discountPrice
|
|
|
- if (instrumentInfo.id) {
|
|
|
- tempItem.isStatus = false;
|
|
|
- if (single == "GROUP") {
|
|
|
- // 团购
|
|
|
- if (
|
|
|
- (instrumentInfo.kitType == "GROUP" &&
|
|
|
- instrumentInfo.price < tempItem.price) ||
|
|
|
- instrumentInfo.kitType == "LEASE" ||
|
|
|
- instrumentInfo.kitType == "FREE"
|
|
|
- ) {
|
|
|
- this.instrumentResult.forEach((instrRes) => {
|
|
|
- instrRes.isStatus = false;
|
|
|
- });
|
|
|
- tempItem.isStatus = true;
|
|
|
- instrumentInfo = {
|
|
|
- id: tempItem.id,
|
|
|
- price: tempItem.price,
|
|
|
- kitType: single,
|
|
|
- };
|
|
|
- }
|
|
|
- } else if (single == "LEASE") {
|
|
|
- // 租赁
|
|
|
- if (
|
|
|
- instrumentInfo.kitType == "LEASE" &&
|
|
|
- instrumentInfo.price < tempItem.price
|
|
|
- ) {
|
|
|
- this.instrumentResult.forEach((instrRes) => {
|
|
|
- instrRes.isStatus = false;
|
|
|
- });
|
|
|
- tempItem.isStatus = true;
|
|
|
- instrumentInfo = {
|
|
|
- id: tempItem.id,
|
|
|
- price: tempItem.price,
|
|
|
- kitType: single,
|
|
|
- };
|
|
|
- }
|
|
|
- } else if (single == "FREE") {
|
|
|
- // 免费
|
|
|
- if (
|
|
|
- instrumentInfo.kitType == "FREE" &&
|
|
|
- instrumentInfo.price < tempItem.price
|
|
|
- ) {
|
|
|
- this.instrumentResult.forEach((instrRes) => {
|
|
|
- instrRes.isStatus = false;
|
|
|
- });
|
|
|
- tempItem.isStatus = true;
|
|
|
- instrumentInfo = {
|
|
|
- id: tempItem.id,
|
|
|
- price: tempItem.price,
|
|
|
- kitType: single,
|
|
|
- };
|
|
|
- }
|
|
|
- }
|
|
|
- } else {
|
|
|
+ this.musicGroupSubject = tempResult.musicGroupSubjectPlan || [];
|
|
|
+ let instrumentInfo = {};
|
|
|
+ let tempInstrument = [];
|
|
|
+ tempResult.musicGroupSubjectGoodsGroupList?.forEach((item) => {
|
|
|
+ if (item.type == "INSTRUMENT") {
|
|
|
+ // 获取乐器所有提供方式
|
|
|
+ let KGPTJ = item.kitGroupPurchaseTypeJson
|
|
|
+ ? JSON.parse(item.kitGroupPurchaseTypeJson)
|
|
|
+ : {};
|
|
|
+ for (let single in KGPTJ) {
|
|
|
+ let tempItem = Object.assign({}, item); // 深拷贝
|
|
|
+ tempItem.marketPrice = tempItem.goodsList[0].marketPrice;
|
|
|
+ tempItem.kitType = single; // 优惠模式
|
|
|
+ tempItem.coupon = KGPTJ[single]; // 优惠金额
|
|
|
+ tempItem.discountPrice = tempItem.goodsList[0].discountPrice
|
|
|
+ if (instrumentInfo.id) {
|
|
|
+ tempItem.isStatus = false;
|
|
|
+ if (single == "GROUP") {
|
|
|
+ // 团购
|
|
|
+ if (
|
|
|
+ (instrumentInfo.kitType == "GROUP" &&
|
|
|
+ instrumentInfo.price < tempItem.price) ||
|
|
|
+ instrumentInfo.kitType == "LEASE" ||
|
|
|
+ instrumentInfo.kitType == "FREE"
|
|
|
+ ) {
|
|
|
+ this.instrumentResult.forEach((instrRes) => {
|
|
|
+ instrRes.isStatus = false;
|
|
|
+ });
|
|
|
tempItem.isStatus = true;
|
|
|
instrumentInfo = {
|
|
|
id: tempItem.id,
|
|
@@ -350,41 +319,79 @@ export default {
|
|
|
kitType: single,
|
|
|
};
|
|
|
}
|
|
|
- let childGoodsNameList = [];
|
|
|
+ } else if (single == "LEASE") {
|
|
|
+ // 租赁
|
|
|
if (
|
|
|
- tempItem.childGoodsList &&
|
|
|
- tempItem.childGoodsList.length > 0
|
|
|
+ instrumentInfo.kitType == "LEASE" &&
|
|
|
+ instrumentInfo.price < tempItem.price
|
|
|
) {
|
|
|
- tempItem.childGoodsList.forEach((child) => {
|
|
|
- if (child.type != "INSTRUMENT" && child.type != "OTHER") {
|
|
|
- childGoodsNameList.push(child.name);
|
|
|
- }
|
|
|
+ this.instrumentResult.forEach((instrRes) => {
|
|
|
+ instrRes.isStatus = false;
|
|
|
});
|
|
|
-
|
|
|
- tempItem.childGoodsNames = childGoodsNameList.join("、");
|
|
|
+ tempItem.isStatus = true;
|
|
|
+ instrumentInfo = {
|
|
|
+ id: tempItem.id,
|
|
|
+ price: tempItem.price,
|
|
|
+ kitType: single,
|
|
|
+ };
|
|
|
+ }
|
|
|
+ } else if (single == "FREE") {
|
|
|
+ // 免费
|
|
|
+ if (
|
|
|
+ instrumentInfo.kitType == "FREE" &&
|
|
|
+ instrumentInfo.price < tempItem.price
|
|
|
+ ) {
|
|
|
+ this.instrumentResult.forEach((instrRes) => {
|
|
|
+ instrRes.isStatus = false;
|
|
|
+ });
|
|
|
+ tempItem.isStatus = true;
|
|
|
+ instrumentInfo = {
|
|
|
+ id: tempItem.id,
|
|
|
+ price: tempItem.price,
|
|
|
+ kitType: single,
|
|
|
+ };
|
|
|
}
|
|
|
- this.instrumentResult.push(tempItem);
|
|
|
- tempInstrument.push(tempItem);
|
|
|
}
|
|
|
- } else if (item.type == "ACCESSORIES") {
|
|
|
- item.isStatus = true;
|
|
|
- this.accessOries.push(item);
|
|
|
+ } else {
|
|
|
+ tempItem.isStatus = true;
|
|
|
+ instrumentInfo = {
|
|
|
+ id: tempItem.id,
|
|
|
+ price: tempItem.price,
|
|
|
+ kitType: single,
|
|
|
+ };
|
|
|
}
|
|
|
- });
|
|
|
- // 添加自备选项
|
|
|
- if (this.instrumentResult.length > 0) {
|
|
|
- let sorted = this.groupBy(tempInstrument, (item) => {
|
|
|
- return [item.kitType];
|
|
|
- });
|
|
|
- this.instrumentResultList = sorted;
|
|
|
+ let childGoodsNameList = [];
|
|
|
+ if (
|
|
|
+ tempItem.childGoodsList &&
|
|
|
+ tempItem.childGoodsList.length > 0
|
|
|
+ ) {
|
|
|
+ tempItem.childGoodsList.forEach((child) => {
|
|
|
+ if (child.type != "INSTRUMENT" && child.type != "OTHER") {
|
|
|
+ childGoodsNameList.push(child.name);
|
|
|
+ }
|
|
|
+ });
|
|
|
+
|
|
|
+ tempItem.childGoodsNames = childGoodsNameList.join("、");
|
|
|
+ }
|
|
|
+ this.instrumentResult.push(tempItem);
|
|
|
+ tempInstrument.push(tempItem);
|
|
|
}
|
|
|
+ } else if (item.type == "ACCESSORIES") {
|
|
|
+ item.isStatus = true;
|
|
|
+ this.accessOries.push(item);
|
|
|
}
|
|
|
- // 初始化计算金额
|
|
|
- this.calcPrice();
|
|
|
});
|
|
|
- },
|
|
|
- onLeBao() {
|
|
|
- this.buyMaintenance = !this.buyMaintenance;
|
|
|
+ // 添加自备选项
|
|
|
+ if (this.instrumentResult.length > 0) {
|
|
|
+ let sorted = this.groupBy(tempInstrument, (item) => {
|
|
|
+ return [item.kitType];
|
|
|
+ });
|
|
|
+ this.instrumentResultList = sorted;
|
|
|
+
|
|
|
+ this.setLeBaoStatus()
|
|
|
+ }
|
|
|
+
|
|
|
+ // 初始化计算金额
|
|
|
this.calcPrice();
|
|
|
},
|
|
|
groupBy(array, f) {
|
|
@@ -421,13 +428,45 @@ export default {
|
|
|
);
|
|
|
}
|
|
|
},
|
|
|
- onCheckItem(item) {
|
|
|
+ onCheckItem(item,type) {
|
|
|
// 默认选中不可改
|
|
|
if(item.optionalFlag) return
|
|
|
+ // 判断乐保是否可选
|
|
|
+ if(item.noSelect) return
|
|
|
+ // 如果选择的是乐器先把所有选中的取消
|
|
|
+ if(type == 'INSTRUMENT') {
|
|
|
+ this.instrumentResultList.forEach(group => {
|
|
|
+ group.forEach(child => {
|
|
|
+ if(child.id != item.id) {
|
|
|
+ child.isStatus = false
|
|
|
+ }
|
|
|
+ })
|
|
|
+ })
|
|
|
+ }
|
|
|
item.isStatus = !item.isStatus;
|
|
|
+ // 重新设置乐保状态
|
|
|
+ this.setLeBaoStatus()
|
|
|
// 重新计算金额
|
|
|
this.calcPrice();
|
|
|
},
|
|
|
+ setLeBaoStatus() { // 设置乐保状态
|
|
|
+ let status = false // 是否有选中乐器
|
|
|
+ this.instrumentResultList.forEach(group => {
|
|
|
+ group.forEach(item => {
|
|
|
+ if(item.isStatus) {
|
|
|
+ status = true
|
|
|
+ }
|
|
|
+ })
|
|
|
+ })
|
|
|
+ this.instrumentRepair.forEach(repair => {
|
|
|
+ if(status) {
|
|
|
+ repair.noSelect = false
|
|
|
+ } else {
|
|
|
+ repair.noSelect = true
|
|
|
+ repair.isStatus = false
|
|
|
+ }
|
|
|
+ })
|
|
|
+ },
|
|
|
calcPrice() {
|
|
|
let ids = []
|
|
|
let amount = 0,
|