فهرست منبع

Merge branch 'stage-5' into stage-5-2

# Conflicts:
#	common/request.js
#	pages2/wd/course.vue
#	pages3/polyv/detail.vue
chenxiong 3 سال پیش
والد
کامیت
4f90ecb0ae
10فایلهای تغییر یافته به همراه837 افزوده شده و 616 حذف شده
  1. 2 0
      common/api.js
  2. 4 2
      common/request.js
  3. 2 2
      pages/index/index.vue
  4. 22 4
      pages/wd/index.vue
  5. 1 1
      pages2/bank/detail.vue
  6. 1 1
      pages2/invoice/index.vue
  7. 653 580
      pages2/wd/class.vue
  8. 102 12
      pages2/wd/course.vue
  9. 23 4
      pages2/wd/question_bank.vue
  10. 27 10
      pages3/polyv/detail.vue

+ 2 - 0
common/api.js

@@ -20,6 +20,7 @@ import answer from './httpList/answer.js'
 import note from './httpList/note.js'
 import exam from './httpList/exam.js'
 import profileStamp from './httpList/profileStamp.js'
+import lock from './httpList/lock.js'
 
 export default {
 	...login,
@@ -44,4 +45,5 @@ export default {
 	...note,
 	...exam,
 	...profileStamp,
+	...lock
 }

+ 4 - 2
common/request.js

@@ -13,9 +13,11 @@ export const BASE_URL = 'http://42.192.164.187:19005'    //test
 // export const BASE_IMG_URL = 'https://file.xyyxt.net/'     //release
 export const BASE_IMG_URL = 'https://file-dev.xyyxt.net/'  //test
 
-export const socket_url = 'ws://42.192.164.187:19005/webSocket/'  //test
+// export const socket_url = 'ws://42.192.164.187:19005/webSocket/'  //test
+// export const socket_url = 'ws://120.79.166.78:19009/webSocket/'  //预发布
+// export const socket_url = 'wss://api.xyyxt.net/webSocket/'  //release
 
-export const version = '5.1'  //版本号
+export const version = '5.1.1' 
 export const tenantId = '867735392558919680' 
 export const myRequest = (options) => {
 	if (store.state.allowLoading && !options.noLoading) {

+ 2 - 2
pages/index/index.vue

@@ -133,7 +133,7 @@
 
 <script>
 import { mapGetters, mapActions } from 'vuex';
-import { websocket } from '@/common/socket.js';
+// import { websocket } from '@/common/socket.js';
 import { socket_url, version} from '@/common/request.js';
 export default {
 	components: {},
@@ -192,7 +192,7 @@ export default {
 			try  {
 				await this.getUserInfo()
 				// websocket.sokcet(socket_url+this.userInfo.userId+'-'+this.$method.getRandomString(6))
-				websocket.sokcet(socket_url+this.userInfo.userAccount)
+				// websocket.sokcet(socket_url+this.userInfo.userAccount)
 			}catch(err) {
 				
 			}

+ 22 - 4
pages/wd/index.vue

@@ -33,10 +33,10 @@
 						<image src="/static/icon/my_icon3.png" class="my_icon"></image>
 						<view>我的网课</view>
 					</navigator>
-					<navigator  hover-class="none" url="/pages2/wd/question_bank" class="small_menu">
+					<view @click="goBank()" class="small_menu">
 						<image src="/static/icon/my_icon4.png" class="my_icon"></image>
 						<view>我的题库通</view>
-					</navigator>
+					</view>
 				</view>
 				<navigator  hover-class="none" url="/pages2/learn/my_learn" class="menu_box" >
 					<view class="box_left">
@@ -96,7 +96,7 @@
 </template>
 
 <script>
-import { websocket } from '@/common/socket.js';
+// import { websocket } from '@/common/socket.js';
 import { mapGetters } from 'vuex';
 export default {
 	components: {},
@@ -122,6 +122,24 @@ export default {
 		// this.$store.dispatch('changeTabsNum')
 	},
 	methods: {
+		goBank() {
+			this.$api.lockLockStatus({
+			  action:'bank'
+			}).then(res => {
+			  if(res.data.code == 200) { //有其他端在操作,不能学习
+				  uni.showToast({
+					  icon:'none',
+					  title:res.data.msg,
+					  duration:3000,
+				  })
+			  } else if(res.data.code == 500) { //可以学习
+				  
+				uni.navigateTo({
+					url:'/pages2/wd/question_bank'
+				})
+			  }
+			})
+		},
 		getNums() {
 			this.$api.getinfoAttached().then(res => {
 				if (res.data.code === 200) {
@@ -132,7 +150,7 @@ export default {
 			});
 		},
 		logout() {
-			websocket.stop()
+			// websocket.stop()
 			this.$method.exit();
 			this.isLogin = this.$method.isLogin();
 			

+ 1 - 1
pages2/bank/detail.vue

@@ -93,7 +93,7 @@
 </template>
 
 <script>
-import { websocket } from '@/common/socket.js';
+// import { websocket } from '@/common/socket.js';
 import { mapGetters } from 'vuex';
 export default {
 	data() {

+ 1 - 1
pages2/invoice/index.vue

@@ -103,7 +103,7 @@
 					提交申请
 				</view>
 			</view>
-			<view class="." v-if="current == 1">
+			<view class="record" v-if="current == 1">
 				<view class="nodata" v-if="!recordList.length">
 					您暂无相关发票记录哦~
 				</view>

+ 653 - 580
pages2/wd/class.vue

@@ -2,196 +2,220 @@
 	<view style=" padding:0 30rpx 30rpx;">
 		<nav-bar title="我的网课"></nav-bar>
 		<view class="class" v-for="(item, index) in goodsList" :key="index">
-			
-				<view class="class_item" @click.stop="studyIn(item.goodsId,item.gradeId,item,index)">
-						<image :src="$method.splitImgHost(item.coverUrl, true)" class="class_img"></image>
-						<view class="class_text">
-							<view class="class_title">{{ item.goodsName }}</view>
-							<view class="content_box">
-								<image src="/static/icon/wk_icon1.png" class="wk_icon"></image>
-								共
-								<text class="content">{{ item.courseNum }}</text>
-								课程
-								<text class="content">{{ item.secAllNum+item.examNum }}</text>
-								节
-								<text class="content">{{ item.classHours }}</text>
-								学时
+
+			<view class="class_item" @click.stop="studyIn(item.goodsId,item.gradeId,item,index)">
+				<image :src="$method.splitImgHost(item.coverUrl, true)" class="class_img"></image>
+				<view class="class_text">
+					<view class="class_title">{{ item.goodsName }}</view>
+					<view class="content_box">
+						<image src="/static/icon/wk_icon1.png" class="wk_icon"></image>
+						共
+						<text class="content">{{ item.courseNum }}</text>
+						课程
+						<text class="content">{{ item.secAllNum+item.examNum }}</text>
+						节
+						<text class="content">{{ item.classHours }}</text>
+						学时
+					</view>
+					<view class="content_box" v-if="item.serviceStartTime && item.serviceEndTime">
+						<image src="/static/icon/wk_icon2.png" class="wk_icon"></image>
+						学习服务期:
+						<text class="content">{{ $method.timestampToTime(item.serviceStartTime,true,true) }} - {{ $method.timestampToTime(item.serviceEndTime,true,true) }}</text>
+					</view>
+				</view>
+
+				<!-- 不在学习服务期 -->
+				<template v-if="sysTime < item.serviceStartTime || sysTime > item.serviceEndTime">
+					<view class="class-warm" v-if="item.gradeId != 0 && item.gradeStatus == 1">
+						<view class="class-warm__text">
+							<view class="date">
+								不在学习服务期,不可以学习了哦
+							</view>
+						</view>
+					</view>
+				</template>
+
+				<template v-else>
+					<!-- 班级有效期过了 -->
+					<template v-if="item.classEndTime && (item.classEndTime < sysTime) ">
+						<view class="class-warm">
+							<u-icon class="class-warm__icon" size="30" color="#FF3B30" name="error-circle-fill">
+							</u-icon>
+							<view class="class-warm__text">
+								<view class="date">班级有效期:{{$method.timestampToTime(item.classStartTime,true,true)}} - {{$method.timestampToTime(item.classEndTime,true,true)}}</view>
+								<view class="state">班级状态:已过期,有疑问请联系 <text @click="call">020-87085982</text></view>
 							</view>
-							<view class="content_box" v-if="item.studyStartTime && item.studyEndTime">
-								<image src="/static/icon/wk_icon2.png" class="wk_icon"></image>
-								学习服务期:
-								<text class="content">{{ $method.timestampToTime(item.studyStartTime,true,true) }} - {{ $method.timestampToTime(item.studyEndTime,true,true) }}</text>
+						</view>
+					</template>
+
+					<!-- 班级有效期之前 -->
+					<template v-else-if="item.classStartTime && (item.classStartTime > sysTime) ">
+						<view class="class-warm">
+							<u-icon class="class-warm__icon" size="30" color="#FF3B30" name="error-circle-fill">
+							</u-icon>
+							<view class="class-warm__text">
+								<view class="date">班级有效期:{{$method.timestampToTime(item.classStartTime,true,true)}} -
+									{{$method.timestampToTime(item.classEndTime,true,true)}}</view>
+								<view class="state">班级状态:未到学习时间,有疑问请联系 <text @click="call">020-87085982</text></view>
+							</view>
+						</view>
+					</template>
+
+					<!-- 在班级有效期之间或者没有班级有效期 -->
+					<template v-else>
+
+						<view class="class-warm"
+							v-if="item.gradeId != 0 && item.gradeStatus == 1 && item.classStatus != null">
+							<view class="class-warm__text">
+								<view class="date">
+									班级状态:
+									<text v-if="item.classStatus == 1">已开班</text>
+									<text v-if="item.classStatus == 0">未开班</text>
+								</view>
+								<view class="state" v-if="item.classStatus == 0">教务处正在为您开通班级,请耐心等待</view>
+								<view class="state"
+									v-if="item.classStatus == 1 && item.classStartTime && item.classEndTime">
+									班级有效期:{{$method.timestampToTime(item.classStartTime,true,true)}}-{{$method.timestampToTime(item.classEndTime,true,true)}}
+								</view>
 							</view>
 						</view>
-						
-						<!-- 不在学习服务期 -->
-						<template v-if="sysTime < item.studyStartTime || sysTime > item.studyEndTime">
-							<view class="class-warm" v-if="item.gradeId != 0 && item.gradeStatus == 1">
+						<!-- 学时审核状态不可审核 -->
+						<template v-if="item.periodStatus == -1">
+
+							<view class="class-warm" v-if="item.classStatus == 1 || item.classStatus === null">
 								<view class="class-warm__text">
 									<view class="date">
-										不在学习服务期,不可以学习了哦
+										<template
+											v-if="sysTime >= item.serviceStartTime && sysTime <= item.serviceEndTime">
+											学习状态:
+											<text v-if="item.stuAllNum == 0">未学习</text>
+											<text
+												v-else-if="item.stuAllNum > 0 && item.stuAllNum < item.secAllNum">学习中</text>
+											<text v-else-if="item.stuAllNum >= item.secAllNum">已学完</text>
+										</template>
+										<template v-else>
+											已过学习服务期,不可以学习了哦!
+										</template>
 									</view>
 								</view>
 							</view>
-						</template>
-						
-						<template v-else>
-							<!-- 班级有效期过了 -->
-							<template v-if="item.classEndTime && (item.classEndTime < sysTime) ">
-								<view class="class-warm">
-									<u-icon class="class-warm__icon" size="30" color="#FF3B30" name="error-circle-fill"></u-icon>
-									<view class="class-warm__text">
-										<view class="date">班级有效期:{{$method.timestampToTime(item.classStartTime,true,true)}} - {{$method.timestampToTime(item.classEndTime,true,true)}}</view>
-										<view class="state">班级状态:已过期,有疑问请联系 <text @click="call">020-87085982</text></view>
+
+							<view class="class-warm" v-if="item.profileTpStatus == 1">
+								<view class="class-warm__text">
+									<view class="date">
+										资料审核状态:
+										<text v-if="item.profileStatus == null">未提交资料</text>
+										<text v-else-if="item.profileStatus == 1">已通过</text>
+										<text v-else-if="item.profileStatus == 2">审核中</text>
+										<text v-else-if="item.profileStatus == 3">待完善</text>
 									</view>
 								</view>
-							</template>
-							
-							<!-- 班级有效期之前 -->
-							<template v-else-if="item.classStartTime && (item.classStartTime > sysTime) ">
-								<view class="class-warm">
-									<u-icon class="class-warm__icon" size="30" color="#FF3B30" name="error-circle-fill"></u-icon>
-									<view class="class-warm__text">
-										<view class="date">班级有效期:{{$method.timestampToTime(item.classStartTime,true,true)}} - {{$method.timestampToTime(item.classEndTime,true,true)}}</view>
-										<view class="state">班级状态:未到学习时间,有疑问请联系 <text @click="call">020-87085982</text></view>
+							</view>
+						</template>
+
+						<!-- 学时审核状态可以审核 -->
+						<template v-if="item.periodStatus != -1">
+							<view class="class-warm">
+								<view class="class-warm__text">
+									<view class="date">
+										<text v-if="item.periodStatus == 0">机构审核:学时审核不通过</text>
+										<text v-else-if="item.periodStatus == 2">学时待审核</text>
+										<text v-else-if="item.periodStatus == 1">
+											<text v-if="item.periodPlush > 0">学时已上报注册中心</text>
+											<text v-else>机构审核:学时审核通过</text>
+
+										</text>
 									</view>
 								</view>
-							</template>
-							
-							<!-- 在班级有效期之间或者没有班级有效期 -->
-							<template v-else>
-								
-								<view class="class-warm" v-if="item.gradeId != 0 && item.gradeStatus == 1 && item.classStatus != null">
-									<view class="class-warm__text">
-										<view class="date">
-											班级状态:
-											<text v-if="item.classStatus == 1">已开班</text>
-											<text v-if="item.classStatus == 0">未开班</text>
+							</view>
+
+							<view class="class-warm" v-if="item.subscribeId != null && item.periodStatus == 1">
+								<view class="class-warm__text">
+									<view class="date">
+										<view v-if="item.subExamStatus === null">待预约考试</view>
+										<view
+											v-else-if="item.subExamStatus === 0 &&  sysTime < item.subApplySiteStartTime">
+											待考试,考试时间:{{$method.timestampToTime(item.subApplySiteStartTime,true,true)}} -
+											{{$method.timestampToTime(item.subaApplySiteEndTime,true,true)}}
 										</view>
-										<view class="state" v-if="item.classStatus == 0">教务处正在为您开通班级,请耐心等待</view>
-										<view class="state" v-if="item.classStatus == 1 && item.classStartTime && item.classEndTime">
-											班级有效期:{{$method.timestampToTime(item.classStartTime,true,true)}}-{{$method.timestampToTime(item.classEndTime,true,true)}}
+										<view v-else-if="item.subExamStatus === 0">待出考试结果</view>
+										<view v-else-if="item.subExamStatus === 1">
+											<text v-if="item.subResult === null">待出考试结果</text>
+											<text v-if="item.subResult === 0">考试结果:不通过,需补考</text>
+											<text
+												v-else-if="item.subResult === 1">考试结果:通过,考试成绩为{{item.subPerformance}}</text>
 										</view>
+										<view v-else-if="item.subExamStatus === 2">缺考,无成绩,需补考</view>
+										<view v-else-if="item.subExamStatus === 3">作弊,无成绩,需补考</view>
+										<view v-else-if="item.subExamStatus === 4">替考,无成绩,需补考</view>
+
+
 									</view>
 								</view>
-								<!-- 学时审核状态不可审核 -->
-								<template v-if="item.periodStatus == -1">
-									
-									<view class="class-warm" v-if="item.classStatus == 1 || item.classStatus === null">
-										<view class="class-warm__text">
-											<view class="date">
-												<template v-if="sysTime >= item.studyStartTime && sysTime <= item.studyEndTime">
-													学习状态:
-													<text v-if="item.stuAllNum == 0">未学习</text>
-													<text v-else-if="item.stuAllNum > 0 && item.stuAllNum < item.secAllNum">学习中</text>
-													<text v-else-if="item.stuAllNum >= item.secAllNum">已学完</text>
-												</template>
-												<template v-else>
-													已过学习服务期,不可以学习了哦!
-												</template>
-											</view>
-										</view>
-									</view>
-									
-									<view class="class-warm" v-if="item.profileTpStatus == 1">
-										<view class="class-warm__text">
-											<view class="date">
-												资料审核状态:
-												<text v-if="item.profileStatus == null">未提交资料</text>
-												<text v-else-if="item.profileStatus == 1">已通过</text>
-												<text v-else-if="item.profileStatus == 2">审核中</text>
-												<text v-else-if="item.profileStatus == 3">待完善</text>
-											</view>
-										</view>
-									</view>
-								</template>
-								
-								<!-- 学时审核状态可以审核 -->
-								<template v-if="item.periodStatus != -1">
-									<view class="class-warm">
-										<view class="class-warm__text">
-											<view class="date">
-												<text v-if="item.periodStatus == 0">机构审核:学时审核不通过</text>
-												<text v-else-if="item.periodStatus == 2">学时待审核</text>
-												<text v-else-if="item.periodStatus == 1">
-													<text v-if="item.periodPlush > 0">学时已上报注册中心</text>
-													<text v-else>机构审核:学时审核通过</text>
-													
-												</text>
-											</view>
-										</view>
-									</view>
-									
-									<view class="class-warm" v-if="item.subscribeId != null && item.periodStatus == 1">
-										<view class="class-warm__text">
-											<view class="date">
-												<view v-if="item.subExamStatus === null">待预约考试</view>
-												<view v-else-if="item.subExamStatus === 0 &&  sysTime < item.subApplySiteStartTime">
-													待考试,考试时间:{{$method.timestampToTime(item.subApplySiteStartTime,true,true)}} - {{$method.timestampToTime(item.subaApplySiteEndTime,true,true)}}
-												</view>
-												<view v-else-if="item.subExamStatus === 0">待出考试结果</view>
-												<view v-else-if="item.subExamStatus === 1">
-													<text v-if="item.subResult === null">待出考试结果</text>
-													<text v-if="item.subResult === 0">考试结果:不通过,需补考</text>
-													<text v-else-if="item.subResult === 1">考试结果:通过,考试成绩为{{item.subPerformance}}</text>
-												</view>
-												<view v-else-if="item.subExamStatus === 2">缺考,无成绩,需补考</view>
-												<view v-else-if="item.subExamStatus === 3">作弊,无成绩,需补考</view>
-												<view v-else-if="item.subExamStatus === 4">替考,无成绩,需补考</view>
-												
-												
-											</view>
-										</view>
-									</view>
-								</template>
-								
-							</template>
-							
-							
+							</view>
 						</template>
-						
-						
-				</view>
-			
-			
+
+					</template>
+
+
+				</template>
+
+
+			</view>
+
+
 			<view class="bottomBox">
-				<template v-if="item.gradeStatus == 1 && item.status == 1 && (item.studyEndTime > sysTime) && (item.studyStartTime < sysTime) &&  (item.classEndTime && (item.classEndTime < sysTime)) && (item.periodStatus == 0 || item.periodStatus == -1) && item.studyCount > 0">
+				<template
+					v-if="item.gradeStatus == 1 && item.status == 1 && (item.serviceEndTime > sysTime) && (item.serviceStartTime < sysTime) &&  (item.classEndTime && (item.classEndTime < sysTime)) && (item.periodStatus == 0 || item.periodStatus == -1) && item.studyCount > 0">
 					<view class="restart" @click.stop="selectClass(item,index)">
 						选班重学
 					</view>
 				</template>
-				
+
 				<template v-else>
 					<view class="content_box">
 						<image src="/static/icon/wk_icon3.png" class="wk_icon"></image>
 						学习进度:{{ item.stuAllNum+item.recordNum }}/{{ item.secAllNum+item.examNum }}
 					</view>
 					<view class="box_progress">
-						<view style="width: 60%;"><u-line-progress :showText="false" height="22" active-color="#ff9900" :show-percent="false" :percent="(item.stuAllNum / item.secAllNum) * 100"></u-line-progress></view>
-						
-						<view><u-button :class="{disabled:(item.interfacePushId > 0 && item.officialStatus != 1) || sysTime <= item.studyStartTime || sysTime >= item.studyEndTime || (item.classStartTime && sysTime <= item.classStartTime) || (item.classEndTime && sysTime >= item.classEndTime) || item.learningStatus == 2 || item.classStatus == 0 || (item.learningStatus == 3 && sysTime < item.learningTimeStart)}" type="warning" size="mini" @click.stop="studyIn(item.goodsId,item.gradeId,item,index)">进入学习</u-button></view>
+						<view style="width: 60%;">
+							<u-line-progress :showText="false" height="22" active-color="#ff9900" :show-percent="false"
+								:percent="(item.stuAllNum / item.secAllNum) * 100"></u-line-progress>
+						</view>
+
+						<view>
+							<u-button
+								:class="{disabled:(item.interfacePushId > 0 && item.officialStatus != 1) || sysTime <= item.serviceStartTime || sysTime >= item.serviceEndTime || (item.classStartTime && sysTime <= item.classStartTime) || (item.classEndTime && sysTime >= item.classEndTime) || item.learningStatus == 2 || item.classStatus == 0 || (item.learningStatus == 3 && sysTime < item.learningTimeStart)}"
+								type="warning" size="mini" @click.stop="studyIn(item.goodsId,item.gradeId,item,index)">
+								进入学习</u-button>
+						</view>
 					</view>
 					<view class="box_progress" v-if="item.applyStatus === 1">
 						<view style="flex:1;margin-right:10rpx;">
 							<text style="color: #333333;">{{ item.applyName }}</text>
 						</view>
-						<view><u-button :plain="true" type="primary" size="mini" @click.stop="appointment(item)">预约考试</u-button></view>
+						<view>
+							<u-button :plain="true" type="primary" size="mini" @click.stop="appointment(item)">预约考试
+							</u-button>
+						</view>
 					</view>
 					<view class="box_progress" v-if="item.beforeStatus === 1">
 						<view style="flex:1;margin-right:10rpx;">
 							<text style="color: #2979ff;">{{ item.beforeName }}</text>
 						</view>
-						<view><u-button type="primary" size="mini" @click="appBeforeAddress(item.goodsId)">进入刷题</u-button></view>
+						<view>
+							<u-button type="primary" size="mini" @click="appBeforeAddress(item.goodsId)">进入刷题</u-button>
+						</view>
 					</view>
 				</template>
-				
-				
+
+
 			</view>
 		</view>
-			
+
 		<view v-if="goodsList.length==0">
 			<u-empty text="暂无网课" margin-top="500" mode="list"></u-empty>
-			
+
 		</view>
 		<u-popup v-model="selectClassModal" @close="gradeValue = -1" mode="bottom" border-radius="40">
 			<view class="popup_box">
@@ -204,24 +228,24 @@
 					<scroll-view scroll-y="true" style="height: 500rpx;">
 						<view>
 							<u-radio-group v-model="gradeValue" @change="radioGroupChange">
-								<view v-for="(item, index) in gradeList" :key="index" >
+								<view v-for="(item, index) in gradeList" :key="index">
 									<view style="display: flex;align-items: center;padding: 20rpx;">
 										<view>
-											<u-radio
-												shape="circle"
-												:name="index"
-												:disabled="item.studentNum > 0 && item.studentNum == item.studentUpper"
-											>
-												<view :class="item.checked?'white-box blue-box':'white-box'" >
+											<u-radio shape="circle" :name="index"
+												:disabled="item.studentNum > 0 && item.studentNum == item.studentUpper">
+												<view :class="item.checked?'white-box blue-box':'white-box'">
 													<view>
 														<view class="blackTxt">{{item.className}}</view>
-														<view class="redTxt" v-if="item.classEndTime">有效期至:{{$method.timestampToTime(item.classEndTime,true,true)}}</view>
-														<view class="redTxt" v-if="item.classEndTime">本班还剩{{$method.GetRTime(item.classEndTime)}}天将结束学习</view>
+														<view class="redTxt" v-if="item.classEndTime">
+															有效期至:{{$method.timestampToTime(item.classEndTime,true,true)}}
+														</view>
+														<view class="redTxt" v-if="item.classEndTime">
+															本班还剩{{$method.GetRTime(item.classEndTime)}}天将结束学习</view>
 													</view>
 												</view>
 											</u-radio>
 										</view>
-										
+
 									</view>
 								</view>
 							</u-radio-group>
@@ -233,491 +257,540 @@
 				</view>
 			</view>
 		</u-popup>
-		<u-modal v-model="showMark" title="提示" @confirm="markConfirm" confirm-text="复制学习网址" :show-cancel-button="true" cancel-text="关闭">
-			<view class="slot-content"><view>您的学习账号已经开通,请按照步骤操作,进行学习。</view>
+		<u-modal v-model="showMark" title="提示" @confirm="markConfirm" confirm-text="复制学习网址" :show-cancel-button="true"
+			cancel-text="关闭">
+			<view class="slot-content">
+				<view>您的学习账号已经开通,请按照步骤操作,进行学习。</view>
 				<view>1.复制学习地址:{{markContent}}</view>
 				<view>2.在【浏览器中】打开复制的学习网址</view>
 				<view>3.打开学习网址后,选择【个人用户】进行登录</view>
 				<view>(1)账号:您个人的身份证号码</view>
 				<view>(2)密码:身份证号码,再加111111</view>
 			</view>
-			
+
 		</u-modal>
 	</view>
 </template>
 
 <script>
-export default {
-	data() {
-		return {
-			markContent:'http://admin.zhujianpeixun.com/',
-			showMark:false,
-			list: [1, 2, 3],
-			goodsList: [],
-			selectClassModal:false,
-			gradeList:[],
-			gradeValue:-1,
-			param:{
-				pageNum: 1,
-				pageSize: 10
-			},
-			total: 0,
-			sysTime:0,
-			itemIndex:'',
-			selectItem:{}
-		};
-	},
-	onLoad(option) {
-		this.sysTime = this.$method.timest();
-		this.courseGoodsList();
-	},
-	onShow() {
-		if(this.itemIndex !== '') {
-			this.refreshByIndex();
-		}
-		this.commonSystemTime()
-	},
-	onReachBottom() {
-		if (this.goodsList.length < this.total) {
-			this.param.pageNum++;
-			this.courseGoodsList();
-		}
-	},
-	methods: {
-		/**
-		 * 复制网址
-		 */
-		markConfirm() {
-			uni.setClipboardData({
-			    data: this.markContent,
-			    success: function () {
-			        console.log('success');
-			    }
-			});
-		},
-		/**
-		 * 返回刷新之前进入的课程数据
-		 */
-		refreshByIndex() {
-			let self = this;
-			this.$api.courseGoodsList({
-				pageNum: this.itemIndex+1,
-				pageSize: 1
-			}).then(res => {
-				if (res.data.code == 200) {
-					this.$set(this.goodsList,this.itemIndex,res.data.rows[0])
-				}
-			});
+	export default {
+		data() {
+			return {
+				markContent: 'http://admin.zhujianpeixun.com/',
+				showMark: false,
+				list: [1, 2, 3],
+				goodsList: [],
+				selectClassModal: false,
+				gradeList: [],
+				gradeValue: -1,
+				param: {
+					pageNum: 1,
+					pageSize: 10
+				},
+				total: 0,
+				sysTime: 0,
+				itemIndex: '',
+				selectItem: {}
+			};
 		},
-		commonSystemTime() {
-			this.$api.commonSystemTime().then(res => {
-				this.sysTime = res.data.data;
-			})
+		onLoad(option) {
+			this.sysTime = this.$method.timest();
+			this.courseGoodsList();
 		},
-		selectClass(item,index) {
-			console.log(item)
-			this.itemIndex = index;
-			this.selectItem = item;
-			this.selectClassModal = true;
-			this.goodsGradeList(item.goodsId);
+		onShow() {
+			if (this.itemIndex !== '') {
+				this.refreshByIndex();
+			}
+			this.commonSystemTime()
 		},
-		radioGroupChange(e){
-			console.log(e)
+		onReachBottom() {
+			if (this.goodsList.length < this.total) {
+				this.param.pageNum++;
+				this.courseGoodsList();
+			}
 		},
-		goodsGradeList(id) {
-			let self = this
-			this.$api.goodsGradeList({goodsId:id}).then(res => {
-				if(res.data.code==200){
-					self.gradeList = res.data.rows
-					if(self.gradeList.length==0){
-						let item = {
-							className:'系统分班',
-							gradeId:0
-						}
-						self.gradeList.push(item)
-					} else {
-						let isGradeFull = self.gradeList.every(item => (item.studentNum > 0 && item.studentNum == item.studentUpper))
-						//所有班级都满了
-						if(isGradeFull) {
+		methods: {
+			/**
+			 * 复制网址
+			 */
+			markConfirm() {
+				uni.setClipboardData({
+			 	data: this.markContent,
+			  success: function() {
+						console.log('success');
+					}
+				});
+			},
+			/**
+			 * 返回刷新之前进入的课程数据
+			 */
+			refreshByIndex() {
+				let self = this;
+				this.$api.courseGoodsList({
+					pageNum: this.itemIndex + 1,
+					pageSize: 1
+				}).then(res => {
+					if (res.data.code == 200) {
+						this.$set(this.goodsList, this.itemIndex, res.data.rows[0])
+					}
+				});
+			},
+			commonSystemTime() {
+				this.$api.commonSystemTime().then(res => {
+					this.sysTime = res.data.data;
+				})
+			},
+			selectClass(item, index) {
+				console.log(item)
+				this.itemIndex = index;
+				this.selectItem = item;
+				this.selectClassModal = true;
+				this.goodsGradeList(item.goodsId);
+			},
+			radioGroupChange(e) {
+				console.log(e)
+			},
+			goodsGradeList(id) {
+				let self = this
+				this.$api.goodsGradeList({
+					goodsId: id
+				}).then(res => {
+					if (res.data.code == 200) {
+						self.gradeList = res.data.rows
+						if (self.gradeList.length == 0) {
 							let item = {
-								className:'系统分班',
-								gradeId:0
+								className: '系统分班',
+								gradeId: 0
+							}
+							self.gradeList.push(item)
+						} else {
+							let isGradeFull = self.gradeList.every(item => (item.studentNum > 0 && item
+								.studentNum == item.studentUpper))
+							//所有班级都满了
+							if (isGradeFull) {
+								let item = {
+									className: '系统分班',
+									gradeId: 0
+								}
+								self.gradeList.unshift(item)
 							}
-							self.gradeList.unshift(item)
 						}
 					}
+				});
+			},
+			appBeforeAddress(goodsId) {
+				this.$api.appBeforeAddress({
+					goodsId
+				}).then(res => {
+					if (res.data.code == 200) {
+						uni.navigateToMiniProgram({
+							appId: res.data.data.url,
+							success(res) {
+								// 打开成功
+					 	}
+						})
+					} else {
+						uni.showToast({
+							title: res.data.msg,
+							icon: 'none',
+						})
+					}
+				})
+			},
+			courseGoodsList() {
+				let self = this;
+				this.$api.courseGoodsList(this.param).then(res => {
+					if (res.data.code == 200) {
+						self.goodsList.push.apply(self.goodsList, res.data.rows);
+						self.total = res.data.total;
+					}
+				});
+			},
+			async studyIn(v, i, item, index) {
+
+
+				if (item.interfaceAccountId > 0) { //学习账号已开通
+
+					if (item.learnStatus == 1) { //跳转第三方h5
+						this.showMark = true;
+
+						return;
+						// uni.navigateTo({
+						// 	url:'/pages/webview/index?url='+item.officialLearningUrl
+						// })
+						// return;
+					} else {
+						uni.showModal({
+							showCancel: false,
+							content: '您的学习账号未开通,请稍后再尝试,有疑问,请联系020-87085982!'
+						});
+						return;
+					}
+
+
+					return;
 				}
-			});
-		},
-		appBeforeAddress(goodsId) {
-			this.$api.appBeforeAddress({
-				goodsId
-			}).then(res => {
-				if(res.data.code == 200) {
-					uni.navigateToMiniProgram({
-					  appId: res.data.data.url,
-					  success(res) {
-					    // 打开成功
-					  }
+
+				//内部系统
+				if (item.interfacePushId > 0 && item.officialStatus != 1) {
+					uni.showModal({
+						showCancel: false,
+						content: '机构正在为您报名中,请耐心等待,有疑问请联系020-87085982!'
+					});
+					return;
+				}
+				if (this.sysTime <= item.serviceStartTime || this.sysTime >= item.serviceEndTime) {
+					uni.showToast({
+						icon: 'none',
+						title: '不在学习服务期,不能进入学习'
 					})
-				} else {
+					return;
+				}
+
+				if ((item.classStartTime && this.sysTime <= item.classStartTime) || (item.classEndTime && this
+						.sysTime >= item.classEndTime)) {
 					uni.showToast({
-						title: res.data.msg,
 						icon: 'none',
+						title: '不在班级有效期,不能进入学习'
 					})
+					return
 				}
-			})
-		},
-		courseGoodsList() {
-			let self = this;
-			this.$api.courseGoodsList(this.param).then(res => {
-				if (res.data.code == 200) {
-					self.goodsList.push.apply(self.goodsList, res.data.rows);
-					self.total = res.data.total;
+
+				if (item.learningStatus == 2) {
+					uni.showToast({
+						icon: 'none',
+						title: '开放学习时间待定,不能进入学习'
+					})
+					return
 				}
-			});
-		},
-		async studyIn(v,i,item,index) {
-			
-			
-			if(item.interfaceAccountId > 0) { //学习账号已开通
-				
-				if(item.learnStatus == 1) { //跳转第三方h5
-					this.showMark = true;
-					
+
+				if (item.classStatus == 0) {
+					uni.showToast({
+						icon: 'none',
+						title: '尚未开班,不能进入学习'
+					})
+					return
+				}
+				console.log(this.sysTime, item.learningTimeStart)
+				console.log(this.sysTime < item.learningTimeStart)
+				if (item.learningStatus == 3 && (this.sysTime < item.learningTimeStart)) {
+					uni.showToast({
+						icon: 'none',
+						title: '不在开放学习时间,不能进入学习'
+					})
 					return;
-					// uni.navigateTo({
-					// 	url:'/pages/webview/index?url='+item.officialLearningUrl
-					// })
-					// return;
-				} else {
-					uni.showModal({
-						showCancel: false,
-						content:'您的学习账号未开通,请稍后再尝试,有疑问,请联系020-87085982!'
+				}
+
+
+				this.itemIndex = index;
+
+				if (item.gradeStatus == 1 && item.status == 1 && (item.serviceEndTime > this.sysTime) && (item
+						.classEndTime && (item.classEndTime < this.sysTime)) && (item.periodStatus == 0 || item
+						.periodStatus == -1) && item.studyCount > 0) {
+					this.selectClass(item, index);
+					return;
+				}
+
+
+				let rebuildStatus = await this.courseGoodsRebuildStatus(item.goodsId, item.gradeId)
+
+				if (rebuildStatus == 0) {
+					this.$navTo.togo('/pages2/learn/details', {
+						gradeId: item.gradeId,
+						goodsId: item.goodsId
 					});
 					return;
 				}
-				
-				
-				return;
-			}
-			
-			//内部系统
-			if(item.interfacePushId > 0 && item.officialStatus != 1) {
-				uni.showModal({
-					showCancel: false,
-					content:'机构正在为您报名中,请耐心等待,有疑问请联系020-87085982!'
-				});
-				return;
-			}
-			if(this.sysTime <= item.studyStartTime || this.sysTime >= item.studyEndTime ) {
-				uni.showToast({
-					icon:'none',
-					title:'不在学习服务期,不能进入学习'
-				})
-				return;
-			}
-			
-			if( (item.classStartTime && this.sysTime <= item.classStartTime) || (item.classEndTime && this.sysTime >= item.classEndTime)) {
-				uni.showToast({
-					icon:'none',
-					title:'不在班级有效期,不能进入学习'
-				})
-				return
-			}
-			
-			if(item.learningStatus == 2) {
-				uni.showToast({
-					icon:'none',
-					title:'开放学习时间待定,不能进入学习'
-				})
-				return
-			}
-			
-			if(item.classStatus == 0) {
-				uni.showToast({
-					icon:'none',
-					title:'尚未开班,不能进入学习'
-				})
-				return 
-			}
-			console.log(this.sysTime, item.learningTimeStart)
-			console.log(this.sysTime < item.learningTimeStart)
-			if(item.learningStatus == 3 && (this.sysTime < item.learningTimeStart)) {
-				uni.showToast({
-					icon:'none',
-					title:'不在开放学习时间,不能进入学习'
+
+				if (item.educationName == '继续教育') {
+					this.$api.lockLockStatus({
+						action: 'jxjy'
+					}).then(res => {
+						if (res.data.code == 200) { //有其他端在操作,不能学习
+							uni.showToast({
+								icon: 'none',
+						  title: res.data.msg,
+								mask: true,
+								duration: 3000
+							})
+						} else if (res.data.code == 500) { //可以学习
+
+							if (item.courseNum == 1) {
+
+								this.$api.courseCourseList({
+									pageNum: 1,
+									pageSize: 1,
+									goodsId: item.goodsId,
+									gradeId: item.gradeId
+								}).then(res => {
+									if (res.data.code == 200) {
+					  			uni.navigateTo({
+											url: `/pages3/polyv/detail?id=${res.data.rows[0].courseId}&goodsId=${item.goodsId}&orderGoodsId=${item.orderGoodsId}`
+										})
+									}
+								});
+								return;
+							}
+							this.$navTo.togo(
+								`/pages2/wd/course?id=${v}&gid=${i}&orderGoodsId=${item.orderGoodsId}`);
+						}
+					})
+				} else {
+					if (item.courseNum == 1) {
+
+						this.$api.courseCourseList({
+							pageNum: 1,
+							pageSize: 1,
+							goodsId: item.goodsId,
+							gradeId: item.gradeId
+						}).then(res => {
+							if (res.data.code == 200) {
+								uni.navigateTo({
+									url: `/pages3/polyv/detail?id=${res.data.rows[0].courseId}&goodsId=${item.goodsId}&orderGoodsId=${item.orderGoodsId}`
+								})
+							}
+						});
+						return;
+					}
+					this.$navTo.togo(`/pages2/wd/course?id=${v}&gid=${i}&orderGoodsId=${item.orderGoodsId}`);
+				}
+
+
+			},
+			/**
+			 * @param {Object} goodsId 商品id
+			 * 查询商品重修状态
+			 */
+			courseGoodsRebuildStatus(goodsId, gradeId) {
+				return new Promise(resolve => {
+					this.$api.courseGoodsRebuildStatus({
+						goodsId: goodsId,
+						gradeId: gradeId
+					}).then(res => {
+						resolve(res.data.data)
+					})
 				})
-				return ;
-			}
-			
-			
-			this.itemIndex = index;
-			
-			if(item.gradeStatus == 1 && item.status == 1 && (item.studyEndTime > this.sysTime) &&  (item.classEndTime && (item.classEndTime < this.sysTime)) && (item.periodStatus == 0 || item.periodStatus == -1) && item.studyCount > 0) {
-				this.selectClass(item,index);
-				return ;
-			}
-			
-			
-			let rebuildStatus = await this.courseGoodsRebuildStatus(item.goodsId,item.gradeId)
-			
-			if(rebuildStatus == 0) {
-				this.$navTo.togo('/pages2/learn/details', {
-					gradeId:item.gradeId,
-					goodsId: item.goodsId
+			},
+			appointment(item) {
+				var data = {
+					goodsId: item.goodsId,
+					gradeId: item.gradeId
+				};
+				this.$api.getApplysubscribe(data).then(res => {
+					if (res.data.code === 500) {
+						uni.showModal({
+							showCancel: false,
+							content: res.data.msg
+						});
+					}
+					if (res.data.code === 200) {
+						this.$navTo.togo('/pages2/appointment/index', {
+							goodsId: item.goodsId,
+							gradeId: item.gradeId,
+							orderGoodsId: item.orderGoodsId
+						});
+					}
 				});
-				return;
-			}
-			
-			if(item.courseNum == 1 ) {
-				
-				this.$api.courseCourseList({
-					pageNum:1,
-					pageSize:1,
-					goodsId:item.goodsId,
-					gradeId:item.gradeId
+			},
+			okPopup() {
+				if (this.gradeValue == -1) {
+					uni.showToast({
+						icon: 'none',
+						title: '请选择班级'
+					})
+					return;
+				}
+				this.$api.changeGrade({
+					goodsId: this.selectItem.goodsId,
+					gradeId: this.gradeValue,
+					oldGradeId: this.selectItem.gradeId,
+					orderGoodsId: this.selectItem.orderGoodsId,
+					userId: this.selectItem.userId
 				}).then(res => {
-					if(res.data.code == 200) {
-						uni.navigateTo({
-							url:`/pages3/polyv/detail?id=${res.data.rows[0].courseId}&goodsId=${item.goodsId}&orderGoodsId=${item.orderGoodsId}`
+					if (res.data.code == 200) {
+						if (this.itemIndex !== '') {
+							this.refreshByIndex();
+						}
+						this.selectClassModal = false;
+						uni.showToast({
+							title: '选班成功'
+						})
+					} else {
+						uni.showToast({
+							icon: 'none',
+							title: res.data.msg
 						})
 					}
-				});
-				return;
-			}
-			this.$navTo.togo(`/pages2/wd/course?id=${v}&gid=${i}&orderGoodsId=${item.orderGoodsId}`);
-		},
-		/**
-		 * @param {Object} goodsId 商品id
-		 * 查询商品重修状态
-		 */
-		courseGoodsRebuildStatus(goodsId,gradeId) {
-			return new Promise(resolve => {
-				this.$api.courseGoodsRebuildStatus({
-					goodsId:goodsId,
-					gradeId:gradeId
-				}).then(res => {
-					resolve(res.data.data)
 				})
-			})
-		},
-		appointment(item) {
-			var data = {
-				goodsId: item.goodsId,
-				gradeId: item.gradeId
-			};
-			this.$api.getApplysubscribe(data).then(res => {
-				if (res.data.code === 500) {
-					uni.showModal({
-						showCancel: false,
-						content: res.data.msg
-					});
-				}
-				if (res.data.code === 200) {
-					this.$navTo.togo('/pages2/appointment/index', {
-						goodsId: item.goodsId,
-						gradeId: item.gradeId,
-						orderGoodsId: item.orderGoodsId
-					});
-				}
-			});
-		},
-		okPopup() {
-			if(this.gradeValue == -1) {
-				uni.showToast({
-					icon:'none',
-					title:'请选择班级'
+			},
+			call() {
+				uni.makePhoneCall({
+					phoneNumber: '020-87085982' //仅为示例
 				})
-				return;
 			}
-			this.$api.changeGrade({
-			  goodsId: this.selectItem.goodsId,
-			  gradeId: this.gradeValue,
-			  oldGradeId: this.selectItem.gradeId,
-			  orderGoodsId: this.selectItem.orderGoodsId,
-			  userId: this.selectItem.userId
-			}).then(res => {
-				if(res.data.code == 200) {
-					if(this.itemIndex !== '') {
-						this.refreshByIndex();
-					}
-					this.selectClassModal = false;
-					uni.showToast({
-						title:'选班成功'
-					})
-				} else {
-					uni.showToast({
-						icon:'none',
-						title:res.data.msg
-					})
-				}
-			})
-		},
-		call() {
-			uni.makePhoneCall({
-				 phoneNumber: '020-87085982' //仅为示例
-			})
 		}
-	}
-};
+	};
 </script>
 <style>
-page {
-	background: #eaeef1;
-}
+	page {
+		background: #eaeef1;
+	}
 </style>
 <style scope lang="scss">
-.box_progress {
-	display: flex;
-	justify-content: space-between;
-	align-items: center;
-	margin-top: 20rpx;
-	
-	.disabled {
-		opacity: 0.6;
-	}
-}
-.bottomBox {
-	background: #ffffff;
-	width: 94%;
-	border-bottom-left-radius: 24rpx;
-	border-bottom-right-radius: 24rpx;
-	margin: 0 auto;
-	padding: 20rpx;
-	
-	.restart {
-		margin:0 auto;
-		text-align: center;
-		line-height: 80rpx;
-		color:#fff;
-		font-size: 30rpx;
-		width: 440rpx;
-		height: 80rpx;
-		background: #FF0000;
-		border-radius: 40rpx 40rpx 40rpx 40rpx;
+	.box_progress {
+		display: flex;
+		justify-content: space-between;
+		align-items: center;
+		margin-top: 20rpx;
+
+		.disabled {
+			opacity: 0.6;
+		}
 	}
-}
-.content_box {
-	font-size: 24rpx;
-	display: flex;
-	align-items: center;
-	color: #999999;
-	margin-top: 8rpx;
-}
-.content {
-	color: #000000;
-	margin: 0 8rpx;
-}
-.wk_icon {
-	width: 24rpx;
-	height: 24rpx;
-	margin-right: 8rpx;
-}
-
-.class {
-	margin-bottom: 30rpx;
-	
-	.class_item {
-		width: 100%;
+
+	.bottomBox {
 		background: #ffffff;
-		box-shadow: 0rpx 10rpx 9rpx 1rpx rgba(165, 196, 239, 0.1);
-		border-radius: 24rpx;
+		width: 94%;
+		border-bottom-left-radius: 24rpx;
+		border-bottom-right-radius: 24rpx;
+		margin: 0 auto;
 		padding: 20rpx;
-		z-index: 999;
-		position: relative;
-		
-		.class_img {
-			height: 316rpx;
+
+		.restart {
+			margin: 0 auto;
+			text-align: center;
+			line-height: 80rpx;
+			color: #fff;
+			font-size: 30rpx;
+			width: 440rpx;
+			height: 80rpx;
+			background: #FF0000;
+			border-radius: 40rpx 40rpx 40rpx 40rpx;
+		}
+	}
+
+	.content_box {
+		font-size: 24rpx;
+		display: flex;
+		align-items: center;
+		color: #999999;
+		margin-top: 8rpx;
+	}
+
+	.content {
+		color: #000000;
+		margin: 0 8rpx;
+	}
+
+	.wk_icon {
+		width: 24rpx;
+		height: 24rpx;
+		margin-right: 8rpx;
+	}
+
+	.class {
+		margin-bottom: 30rpx;
+
+		.class_item {
 			width: 100%;
+			background: #ffffff;
+			box-shadow: 0rpx 10rpx 9rpx 1rpx rgba(165, 196, 239, 0.1);
 			border-radius: 24rpx;
-		}
-		
-		.class_text {
-			padding:0 20rpx;
-			
-			.class_title {
-				color: #333333;
-				font-weight: bold;
-				font-size: 32rpx;
-			}
-		}
-		
-		.class-warm {
-			padding:10rpx 20rpx;
-			display: flex;
-			align-items: flex-start;
-			
-			&__icon {
-				margin-right:10rpx;
+			padding: 20rpx;
+			z-index: 999;
+			position: relative;
+
+			.class_img {
+				height: 316rpx;
+				width: 100%;
+				border-radius: 24rpx;
 			}
-			
-			&__text {
-				
-				.date {
-					font-size: 24rpx;
+
+			.class_text {
+				padding: 0 20rpx;
+
+				.class_title {
+					color: #333333;
 					font-weight: bold;
-					color: #FF3B30;
+					font-size: 32rpx;
 				}
-				
-				.state {
-					margin-top:15rpx;
-					font-size: 24rpx;
-					font-weight: bold;
-					color: #FF3B30;
+			}
+
+			.class-warm {
+				padding: 10rpx 20rpx;
+				display: flex;
+				align-items: flex-start;
+
+				&__icon {
+					margin-right: 10rpx;
+				}
+
+				&__text {
+
+					.date {
+						font-size: 24rpx;
+						font-weight: bold;
+						color: #FF3B30;
+					}
+
+					.state {
+						margin-top: 15rpx;
+						font-size: 24rpx;
+						font-weight: bold;
+						color: #FF3B30;
+					}
 				}
 			}
 		}
 	}
-}
 
 
 
 
-.popup_box {
-	height: 700rpx;
-	box-shadow: 0rpx 0rpx 16rpx 4rpx rgba(145, 156, 178, 0.1);
-	border-radius: 32rpx 32rpx 0rpx 0rpx;
-	
-	.line1{
-		width: 80rpx;
-		height: 8rpx;
-		background: #999999;
-		border-radius: 4rpx;
-		margin: 0 auto;
-		margin-top: 15rpx;
-	}
-	
-	
-	.grade{
-		height: 23rpx;
-		font-size: 24rpx;
-		color: #999999;
-		margin: 0 auto;
-		margin-top: 15rpx;
-		text-align: center;
-	}
-	
-	.confrim-btn{
-		height: 98rpx;
-		width: 100%;
-		display: flex;
-		align-items: center;
-		justify-content:center;
-		
-		.okBtn{
-			width: 200rpx;
-			height: 64rpx;
-			background: linear-gradient(0deg, #015EEA, #00C0FA);
-			border-radius: 32rpx;
-			color: #FFFFFF;
+	.popup_box {
+		height: 700rpx;
+		box-shadow: 0rpx 0rpx 16rpx 4rpx rgba(145, 156, 178, 0.1);
+		border-radius: 32rpx 32rpx 0rpx 0rpx;
+
+		.line1 {
+			width: 80rpx;
+			height: 8rpx;
+			background: #999999;
+			border-radius: 4rpx;
+			margin: 0 auto;
+			margin-top: 15rpx;
+		}
+
+
+		.grade {
+			height: 23rpx;
+			font-size: 24rpx;
+			color: #999999;
+			margin: 0 auto;
+			margin-top: 15rpx;
 			text-align: center;
-			line-height: 64rpx;
+		}
+
+		.confrim-btn {
+			height: 98rpx;
+			width: 100%;
+			display: flex;
+			align-items: center;
+			justify-content: center;
+
+			.okBtn {
+				width: 200rpx;
+				height: 64rpx;
+				background: linear-gradient(0deg, #015EEA, #00C0FA);
+				border-radius: 32rpx;
+				color: #FFFFFF;
+				text-align: center;
+				line-height: 64rpx;
+			}
 		}
 	}
-}
 
-.slot-content {
-	padding:0 20rpx;
-}
+	.slot-content {
+		padding: 0 20rpx;
+	}
 </style>

+ 102 - 12
pages2/wd/course.vue

@@ -125,10 +125,42 @@ export default {
           });
           return;
         }
-        this.$navTo.togo("/pages3/polyv/detail", {
-          id: item.courseId,
-          goodsId: this.goodsId,
-          orderGoodsId: this.orderGoodsId,
+
+        this.$api.courseDetail(item.courseId).then((res) => {
+          if (res.data.code == 200) {
+            if (res.data.data.educationName == "继续教育") {
+              this.$api
+                .lockLockStatus({
+                  action: "jxjy",
+                })
+                .then((res) => {
+                  if (res.data.code == 200) {
+                    //有其他端在操作,不能学习
+                    uni.showToast({
+                      icon: "none",
+                      title: res.data.msg,
+                      mask: true,
+                      duration: 3000,
+                    });
+                  } else if (res.data.code == 500) {
+                    //可以学习
+                    this.$navTo.togo("/pages3/polyv/detail", {
+                      id: item.courseId,
+                      goodsId: this.goodsId,
+                      orderGoodsId: this.orderGoodsId,
+                    });
+                  }
+                });
+
+              // websocket.sendMsg("doCourse");
+            } else {
+              this.$navTo.togo("/pages3/polyv/detail", {
+                id: item.courseId,
+                goodsId: this.goodsId,
+                orderGoodsId: this.orderGoodsId,
+              });
+            }
+          }
         });
       } else {
         if (this.businessData.goodsLearningOrder == 2) {
@@ -147,10 +179,42 @@ export default {
               });
               return;
             }
-            this.$navTo.togo("/pages3/polyv/detail", {
-              id: item.courseId,
-              goodsId: this.goodsId,
-              orderGoodsId: this.orderGoodsId,
+
+            this.$api.courseDetail(item.courseId).then((res) => {
+              if (res.data.code == 200) {
+                if (res.data.data.educationName == "继续教育") {
+                  this.$api
+                    .lockLockStatus({
+                      action: "jxjy",
+                    })
+                    .then((res) => {
+                      if (res.data.code == 200) {
+                        //有其他端在操作,不能学习
+                        uni.showToast({
+                          icon: "none",
+                          title: res.data.msg,
+                          duration: 2000,
+                        });
+                      } else if (res.data.code == 500) {
+                        //可以学习
+
+                        this.$navTo.togo("/pages3/polyv/detail", {
+                          id: item.courseId,
+                          goodsId: this.goodsId,
+                          orderGoodsId: this.orderGoodsId,
+                        });
+                      }
+                    });
+
+                  // websocket.sendMsg("doCourse");
+                } else {
+                  this.$navTo.togo("/pages3/polyv/detail", {
+                    id: item.courseId,
+                    goodsId: this.goodsId,
+                    orderGoodsId: this.orderGoodsId,
+                  });
+                }
+              }
             });
           } else {
             uni.showToast({
@@ -168,10 +232,36 @@ export default {
             });
             return;
           }
-          this.$navTo.togo("/pages3/polyv/detail", {
-            id: item.courseId,
-            goodsId: this.goodsId,
-            orderGoodsId: this.orderGoodsId,
+
+          this.$api.courseDetail(item.courseId).then((res) => {
+            if (res.data.code == 200) {
+              if (res.data.data.educationName == "继续教育") {
+                this.$api
+                  .lockLockStatus({
+                    action: "jxjy",
+                  })
+                  .then((res) => {
+                    if (res.data.code == 200) {
+                      //有其他端在操作,不能学习
+                      uni.showToast({
+                        icon: "none",
+                        title: res.data.msg,
+                        duration: 2000,
+                      });
+                    } else if (res.data.code == 500) {
+                      //可以学习
+
+                      this.$navTo.togo("/pages3/polyv/detail", {
+                        id: item.courseId,
+                        goodsId: this.goodsId,
+                        orderGoodsId: this.orderGoodsId,
+                      });
+                    }
+                  });
+
+                // websocket.sendMsg("doCourse");
+              }
+            }
           });
         }
       }

+ 23 - 4
pages2/wd/question_bank.vue

@@ -41,22 +41,41 @@
 </template>
 
 <script>
-import { websocket } from '@/common/socket.js';
+// import { websocket } from '@/common/socket.js';
 	export default {
 		data() {
 			return {
 				list:[
 					1,2,3
-				]
+				],
+				timer:null,
 				
 			}
 		},
 		onLoad(option) {
-			websocket.sendMsg('doQuestion')
+			this.$api.lockLockAction({
+				action:'bank'
+			}).then(res => {
+				
+			})
+			this.timer = setInterval(() => {
+				this.$api.lockLockAction({
+					action:'bank'
+				}).then(res => {
+					
+				})
+			},10000)
+			// websocket.sendMsg('doQuestion')
 			// this.getDict()
 		},
 		onUnload() {
-			websocket.sendMsg('delAction')
+			clearInterval(this.timer)
+			this.$api.lockDelLock({
+				action:'bank'
+			}).then(res => {
+				
+			})
+			// websocket.sendMsg('delAction')
 		},
 		onShow(){
 			

+ 27 - 10
pages3/polyv/detail.vue

@@ -494,7 +494,7 @@ import plv from "../static/polyv-sdk/index";
 import courseModule from "@/components/course/courseModule.vue";
 import courseChapter from "@/components/course/courseChapter.vue";
 import courseSection from "@/components/course/courseSection.vue";
-import { websocket } from "@/common/socket.js";
+// import { websocket } from "@/common/socket.js";
 import { mapGetters, mapMutations } from "vuex";
 export default {
   components: {
@@ -504,6 +504,7 @@ export default {
   },
   data() {
     return {
+      lockTimer: null,
       orderGoodsId: 0,
       noticeShow: false,
       navShow: true,
@@ -772,7 +773,16 @@ export default {
     if (this.timer) {
       clearInterval(this.timer);
     }
-    websocket.sendMsg("delAction");
+    console.log(this.lockTimer, "this.lockTimer");
+    if (this.lockTimer) {
+      clearInterval(this.lockTimer);
+      this.$api
+        .lockDelLock({
+          action: "jxjy",
+        })
+        .then((res) => {});
+    }
+    // websocket.sendMsg("delAction");
   },
   mounted() {
     uni.$on("changeSection", (oldSectionId) => {
@@ -1864,7 +1874,7 @@ export default {
                 gradeId: this.gradeId,
               })
               .then((res) => {
-				  console.log(res,'res')
+                console.log(res, "res");
                 resolve(res.data.data);
               });
           },
@@ -1889,12 +1899,11 @@ export default {
           icon: "none",
           duration: 2000,
         });
-		
-		setTimeout(() => {
-			
-			this.uploadLock = false;
-			this.openPhoto();
-		},2000)
+
+        setTimeout(() => {
+          this.uploadLock = false;
+          this.openPhoto();
+        }, 2000);
         return;
       }
 
@@ -2114,7 +2123,15 @@ export default {
       this.$api.courseDetail(this.courseId).then((res) => {
         if (res.data.code == 200) {
           if (res.data.data.educationName == "继续教育") {
-            websocket.sendMsg("doCourse");
+            this.lockTimer = setInterval(() => {
+              this.$api
+                .lockLockAction({
+                  action: "jxjy",
+                })
+                .then((res) => {});
+            }, 10000);
+
+            // websocket.sendMsg("doCourse");
           }
           self.detail = res.data.data;
         }