chenxiong 3 anni fa
parent
commit
e4de00341b

+ 9 - 0
common/httpList/course.js

@@ -97,6 +97,15 @@ export default {
 			url: '/course/'+data,
 			method: 'get'
 		})
+	},
+	courseBusiness(data) {
+		return myRequest({
+			url: '/app/common/course/business/'+data,
+			method: 'get',
+			noToken:true
+		})
 	}
 	
+	
+	
 }

+ 59 - 5
components/course/courseChapter.vue

@@ -37,6 +37,10 @@ import courseSection from '@/components/course/courseSection.vue';
 export default {
 	name: 'courseChapter',
 	props: {
+		learningOrder:{ //是否设置学习顺序 1 设置 0不设置
+			type:String,
+			default:'0'
+		},
 		menuItem: {
 			type: Object,
 			default: {}
@@ -73,8 +77,8 @@ export default {
 		return {
 			down:true,
 			list:[],
-			examList:{}
-			
+			examList:{},
+			canLearn:false, //是否全部视频看完可以练习、测试
 	
 		};
 	},
@@ -89,10 +93,23 @@ export default {
 		 * 去做题
 		 */
 		async toDo(id,goodsId =0,moduleId = 0, chapterId = 0) {
+			if(this.learningOrder == 1) {
+				if(this.canLearn) {
+					uni.navigateTo({
+						url:'/pages2/class/questionBank?courseId='+this.courseId+'&gradeId='+this.gradeId+'&isFromVideo=1&id='+id+'&goodsid='+goodsId+'&moduleId='+moduleId+'&chapterId='+chapterId+''
+					})
+				} else {
+					uni.showToast({
+						icon:'none',
+						title:'请学完视频课程再进行练习和测试'
+					})
+				}
+			} else {
+				uni.navigateTo({
+					url:'/pages2/class/questionBank?courseId='+this.courseId+'&gradeId='+this.gradeId+'&isFromVideo=1&id='+id+'&goodsid='+goodsId+'&moduleId='+moduleId+'&chapterId='+chapterId+''
+				})
+			}
 			
-			uni.navigateTo({
-				url:'/pages2/class/questionBank?courseId='+this.courseId+'&gradeId='+this.gradeId+'&isFromVideo=1&id='+id+'&goodsid='+goodsId+'&moduleId='+moduleId+'&chapterId='+chapterId+''
-			})
 		},
 		openChapter(item){
 			this.down = !this.down
@@ -133,6 +150,19 @@ export default {
 							item.tryListen = true
 						}	
 					}
+					
+					let newArr = res.data.data.filter(item => {
+						console.log(item)
+						return item.type != 2;
+					})
+					this.canLearn = newArr.every(item => {
+						console.log(item)
+						if(item.learning == 1) {
+							return true;
+						} else {
+							return false;
+						}
+					})
 					self.list = res.data.data
 				}
 			});
@@ -150,6 +180,18 @@ export default {
 							item.tryListen = true
 						}	
 					}
+					let newArr = res.data.data.filter(item => {
+						console.log(item)
+						return item.type != 2;
+					})
+					this.canLearn = newArr.every(item => {
+						console.log(item)
+						if(item.learning == 1) {
+							return true;
+						} else {
+							return false;
+						}
+					})
 					self.list = res.data.data
 				}
 			});
@@ -167,6 +209,18 @@ export default {
 							item.tryListen = true
 						}	
 					}
+					let newArr = res.data.data.filter(item => {
+						console.log(item)
+						return item.type != 2;
+					})
+					this.canLearn = newArr.every(item => {
+						console.log(item)
+						if(item.learning == 1) {
+							return true;
+						} else {
+							return false;
+						}
+					})
 					self.list = res.data.data
 				}
 			});

+ 5 - 1
components/course/courseModule.vue

@@ -7,7 +7,7 @@
 		</view>
 		<view v-if="!down">
 			<view v-for="(itemM,indexM) in list" >
-				<courseChapter :courseId="courseId" :goodsId="goodsId" :isBuy="isBuy" :gradeId="gradeId" :isRebuild="isRebuild"  :menuItem="itemM" :levelId="levelId+'-'+itemM.chapterId"></courseChapter>
+				<courseChapter :courseId="courseId" :learningOrder="learningOrder" :goodsId="goodsId" :isBuy="isBuy" :gradeId="gradeId" :isRebuild="isRebuild"  :menuItem="itemM" :levelId="levelId+'-'+itemM.chapterId"></courseChapter>
 				<u-line v-if="indexM<list.length-1"></u-line>
 			</view>
 		</view>
@@ -19,6 +19,10 @@ import courseChapter from '@/components/course/courseChapter.vue';
 export default {
 	name: 'courseModule',
 	props: {
+		learningOrder:{
+			type:String,
+			defaule:'0'
+		},
 		menuItem: {
 			type: Object,
 			default: {}

+ 10 - 3
pages2/class/detail.vue

@@ -45,11 +45,11 @@
 			<view v-show="current == 0">
 				<view class="menuBox" v-for="(item, index) in menuList" :key="index">
 					<!--模块 -->
-					<view v-if="item.type == 1"><courseModule :courseId="courseId" :goodsId="goodsId" :gradeId="gradeId" :isBuy="true" :menuItem="item" :levelId="item.menuId"></courseModule></view>
+					<view v-if="item.type == 1"><courseModule :learningOrder="businessData.goodsLearningOrder" :courseId="courseId" :goodsId="goodsId" :gradeId="gradeId" :isBuy="true" :menuItem="item" :levelId="item.menuId"></courseModule></view>
 					<!--章 -->
-					<view v-if="item.type == 2"><courseChapter :courseId="courseId" :goodsId="goodsId" :gradeId="gradeId" :isBuy="true" :menuItem="item" :levelId="'0-' + item.menuId"></courseChapter></view>
+					<view v-if="item.type == 2"><courseChapter :learningOrder="businessData.goodsLearningOrder" :courseId="courseId" :goodsId="goodsId" :gradeId="gradeId" :isBuy="true" :menuItem="item" :levelId="'0-' + item.menuId"></courseChapter></view>
 					<!--节 -->
-					<view v-if="item.type == 3"><courseSection :courseId="courseId" :goodsId="goodsId" :gradeId="gradeId" :isBuy="true" :menuItem="item" :levelId="'0-0-' + item.menuId"></courseSection></view>
+					<view v-if="item.type == 3"><courseSection :learningOrder="businessData.goodsLearningOrder" :courseId="courseId" :goodsId="goodsId" :gradeId="gradeId" :isBuy="true" :menuItem="item" :levelId="'0-0-' + item.menuId"></courseSection></view>
 				</view>
 			</view>
 			<!--讲义 -->
@@ -245,6 +245,7 @@ export default {
 			noteId: 0,
 			recordObj: 0,
 			gradeDetail:{},
+			businessData:{},
 			needSeek: false, //第一次播放是否需要跳转
 			needProfileModal:false //是否需要资料审核弹框
 		};
@@ -394,6 +395,11 @@ export default {
 		});
 	},
 	methods: {
+		courseBusiness(){
+			this.$api.courseBusiness(this.goodsData.businessId).then(res => {
+				this.businessData = res.data.data;
+			})
+		},
 		openSetting(res){
 			console.log(res,98)
 		},
@@ -853,6 +859,7 @@ export default {
 			this.$api.goodsDetail(this.goodsId).then(res => {
 				self.goodsData = res.data.data;
 				self.gradeId = self.goodsData.gradeId;
+				self.courseBusiness();
 				console.log(self.gradeId, "班级ID");
 				self.getMenuList();
 				self.getReMenuList(); //获取重修目录

+ 8 - 0
pages3/course/detail.vue

@@ -113,6 +113,7 @@ export default {
 			listenConfigList:[],
 			listenSecond:0,
 			timer:null,
+			businessData:{},
 			startTime:0
 		};
 	},
@@ -161,6 +162,11 @@ export default {
 		})
 	},
 	methods: {
+		courseBusiness(){
+			this.$api.courseBusiness(this.detail.businessId).then(res => {
+				this.businessData = res.data.data;
+			})
+		},
 		toFixed(number) {
 			if(number) {
 				return number.toFixed(2)
@@ -265,7 +271,9 @@ export default {
 						res.data.data.mobileDetailHtml = res.data.data.mobileDetailHtml.replace(/<img/gi,'<img style="max-width:100%;"')
 					}
 					
+					
 					self.detail = res.data.data
+					this.courseBusiness();
 					if(self.detail.goodsAuditionConfig){
 						self.listenConfigList = JSON.parse(self.detail.goodsAuditionConfig)
 						for (var itemChild of self.listenConfigList) {