浏览代码

Merge branch 'master' of http://120.79.166.78:19005/zhongzheng-edu/saas_miniprogram

谢杰标 2 年之前
父节点
当前提交
192e608515

+ 116 - 108
common/httpList/goods.js

@@ -24,15 +24,23 @@ export default {
 			noToken: true
 		})
 	},
-	
-	
+
+
 	commonGoodsDetail(data) {
 		return myRequest({
-			url: '/app/common/goods/'+ data,
+			url: '/app/common/goods/' + data,
 			method: 'get',
 			noToken: true
 		})
 	},
+	// 校验商品状态 
+	checkGoodsStatus(data) {
+		return myRequest({
+			url: '/goods/check/goods/status',
+			method: 'post',
+			data
+		})
+	},
 	goodsBank(data) {
 		return myRequest({
 			url: '/goods/bank/list',
@@ -47,7 +55,7 @@ export default {
 	// 		data: data,
 	// 	})
 	// },
-	
+
 	bankExamExamList(data) {
 		return myRequest({
 			url: '/bank/exam/exam/list',
@@ -55,17 +63,17 @@ export default {
 			data: data,
 		})
 	},
-	
-	
+
+
 	goodsDetail(data) {
 		return myRequest({
-			url: '/goods/'+ data,
+			url: '/goods/' + data,
 			method: 'get'
 		})
 	},
 	goodsCourseList(data) {
 		return myRequest({
-			url: '/app/common/goods/course/list/'+ data,
+			url: '/app/common/goods/course/list/' + data,
 			method: 'get',
 			noToken: true
 		})
@@ -82,174 +90,174 @@ export default {
 	collectQuestion(data) {
 		return myRequest({
 			url: '/collect/question',
-			data:data,
+			data: data,
 			method: 'POST'
 		})
 	},
 	bankRecordEdit(data) {
 		return myRequest({
 			url: '/bank/record/edit',
-			data:data,
+			data: data,
 			method: 'POST'
 		})
 	},
-	
+
 	bankReportData(data) {
 		return myRequest({
 			url: '/bank/record/' + data,
 			method: 'get',
 		})
 	},
-	
+
 	deleteCollectQuestion(data) {
 		return myRequest({
-			url: '/collect/question/delete/'+data,
+			url: '/collect/question/delete/' + data,
 			method: 'POST',
 		})
 	},
 	examRecord(data) {
 		return myRequest({
 			url: '/exam/record',
-			data:data,
+			data: data,
 			method: 'POST',
 		})
 	},
 	examRecordRightList(data) {
 		return myRequest({
 			url: '/exam/record/right_list',
-			data:data,
+			data: data,
 			method: 'GET',
 		})
 	},
-	
+
 	examRecordWrongList(data) {
 		return myRequest({
 			url: '/exam/record/wrong_list',
-			data:data,
+			data: data,
 			method: 'GET',
 		})
 	},
-	
-	 
-	
+
+
+
 	bankRecord(data) {
 		return myRequest({
 			url: '/bank/record',
-			data:data,
+			data: data,
 			method: 'POST',
 		})
 	},
-	
-	
-	
+
+
+
 	examWrongRecord(data) {
 		return myRequest({
 			url: '/exam/wwrong/record',
-			data:data,
+			data: data,
 			method: 'POST',
 		})
 	},
-	
+
 	examRecordEdit(data) {
 		return myRequest({
 			url: '/exam/record/edit',
-			data:data,
+			data: data,
 			method: 'POST',
 		})
 	},
-	
+
 	goodsBankQuestionNum(data) {
 		return myRequest({
-			url: '/goods/bank/questionNum/'+data,
-			data:data,
+			url: '/goods/bank/questionNum/' + data,
+			data: data,
 			method: 'get',
 		})
 	},
-	
+
 	bankExamNextExam(data) {
 		return myRequest({
 			url: '/bank/exam/nextExam',
-			data:data,
+			data: data,
 			method: 'get',
 		})
 	},
-	
-	
-	
+
+
+
 	examReport(data) {
 		return myRequest({
-			url: '/exam/record/'+data,
+			url: '/exam/record/' + data,
 			method: 'get',
 		})
 	},
 	// 随机练习
 	bankTempReport(data) {
 		return myRequest({
-			url: '/bank/exam/temp/'+data,
+			url: '/bank/exam/temp/' + data,
 			method: 'get',
 		})
 	},
-	
+
 	examRecordCount(data) {
 		return myRequest({
 			url: '/exam/record/count',
-			data:data,
+			data: data,
 			method: 'GET',
 		})
 	},
-	
+
 	examaperList(data) {
 		return myRequest({
 			url: '/exam/paper/list',
-			data:data,
+			data: data,
 			method: 'GET',
 		})
 	},
-	
+
 	examRecordList(data) {
 		return myRequest({
 			url: '/exam/record/list',
-			data:data,
+			data: data,
 			method: 'GET',
 		})
 	},
-	
+
 	examRecordGroupList(data) {
 		return myRequest({
 			url: '/exam/record/group_list',
-			data:data,
+			data: data,
 			method: 'GET',
 		})
 	},
-	
+
 	collectQuestionTypeList(data) {
 		return myRequest({
 			url: '/collect/question/type_list',
-			data:data,
+			data: data,
 			method: 'GET',
 		})
 	},
-	
+
 	wrongRecordTypeQuestionList(data) {
 		return myRequest({
 			url: '/exam/wwrong/record/type_question_list',
-			data:data,
+			data: data,
 			method: 'GET',
 		})
 	},
-	
+
 	bankRecordDoNum(data) {
 		return myRequest({
 			url: '/bank/record/doNum',
-			data:data,
+			data: data,
 			method: 'GET',
 		})
 	},
-	
+
 	wrongRecordTypeList(data) {
 		return myRequest({
 			url: '/exam/wwrong/record/type_list',
-			data:data,
+			data: data,
 			method: 'GET',
 		})
 	},
@@ -257,41 +265,41 @@ export default {
 	listGoodsUserQuestion(data) {
 		return myRequest({
 			url: '/bank/question/listGoodsUserQuestion',
-			data:data,
+			data: data,
 			method: 'get'
 		})
 	},
 	getCollectInfo(data) {
 		return myRequest({
 			url: '/collect/question/getInfo',
-			data:data,
+			data: data,
 			method: 'get'
 		})
 	},
-	
+
 	goodsBankList(data) {
 		return myRequest({
 			url: '/app/common/bank/list',
 			method: 'get',
-			data:data,
+			data: data,
 			noToken: true
 		})
 	},
-	
+
 	wrongRecordList(data) {
 		return myRequest({
 			url: '/exam/wwrong/record/list',
 			method: 'get',
-			data:data
+			data: data
 		})
 	},
-	
+
 
 	goodsChapterList(data) {
 		return myRequest({
 			url: '/app/common/bank/chapter/list',
 			method: 'get',
-			data:data,
+			data: data,
 			noToken: true
 		})
 	},
@@ -299,115 +307,115 @@ export default {
 		return myRequest({
 			url: '/exam/wwrong/record/exam_question_list',
 			method: 'get',
-			data:data,
+			data: data,
 		})
 	},
-	
+
 	wrongRecordDelete(data) {
 		return myRequest({
 			url: '/exam/wwrong/record/delete/question',
 			method: 'post',
-			data:data
+			data: data
 		})
 	},
-	
+
 	examWrongRecordWrongNum(data) {
 		return myRequest({
-			url:`/exam/wwrong/record/wrongNum/${data}`,
+			url: `/exam/wwrong/record/wrongNum/${data}`,
 			method: 'get'
 		})
 	},
-	
+
 	collectQuestionExamQuestionList(data) {
 		return myRequest({
-			url:`/collect/question/exam_question_list`,
+			url: `/collect/question/exam_question_list`,
 			method: 'get',
-			data:data
+			data: data
 		})
 	},
-	
-	
-	
+
+
+
 	bankExam(data) {
 		return myRequest({
-			url: '/bank/exam/'+data,
+			url: '/bank/exam/' + data,
 			method: 'get',
 		})
 	},
-	
+
 	goodsCollectExamList(data) {
 		return myRequest({
 			url: '/collect/question/exam_list',
 			method: 'get',
-			data:data
+			data: data
 		})
 	},
-	
+
 	goodsBankDolist(data) {
 		return myRequest({
 			url: '/goods/bank/dolist',
 			method: 'get',
-			data:data
+			data: data
 		})
 	},
-	
+
 	goodsChapterDolist(data) {
 		return myRequest({
 			url: '/goods/chapter/dolist',
 			method: 'get',
-			data:data
+			data: data
 		})
 	},
 	goodsExamDolist(data) {
 		return myRequest({
 			url: '/goods/exam/dolist',
 			method: 'get',
-			data:data
+			data: data
 		})
 	},
-	
-	
-	
+
+
+
 	goodsCollectList(data) {
 		return myRequest({
 			url: '/collect/question/list',
 			method: 'get',
-			data:data
+			data: data
 		})
 	},
-	
+
 	goodsExamList(data) {
 		return myRequest({
 			url: '/app/common/bank/exam/list',
 			method: 'get',
-			data:data,
+			data: data,
 			noToken: true
 		})
 	},
-	
+
 	studyRecordMenuAllList(data) {
 		return myRequest({
 			url: '/study/record/menuAllList',
 			method: 'get',
-			data:data
+			data: data
 		})
 	},
-	
-	
-	
+
+
+
 	goodsTodayStudySectionNum(data) {
 		return myRequest({
 			url: '/goods/todayStudySectionNum',
 			method: 'get',
-			data:data
+			data: data
 		})
 	},
-	
+
 	goodsQuestionList(data) {
 		return myRequest({
 			url: '/app/common/bank/question/list',
 			method: 'get',
-			data:data,
+			data: data,
 			noToken: true
 		})
 	},
@@ -435,7 +443,7 @@ export default {
 			data: data
 		})
 	},
-	
+
 	questionRecordList(data) {
 		return myRequest({
 			url: '/bank/question/record/list',
@@ -443,16 +451,16 @@ export default {
 			data: data
 		})
 	},
-	
-	
+
+
 	deleteCart(data) {
 		return myRequest({
-			url: '/base/cart/delete/'+data,
+			url: '/base/cart/delete/' + data,
 			method: 'post',
 			data: data
 		})
 	},
-	
+
 	bankQuestionListFreeGoodsList(data) {
 		return myRequest({
 			url: '/bank/question/listFreeGoodsList',
@@ -462,18 +470,18 @@ export default {
 	},
 	appCommonGoodsCourseModuleFreeExamList(data) {
 		return myRequest({
-			url: '/app/common/goods/course/moduleFreeExamList/'+data,
+			url: '/app/common/goods/course/moduleFreeExamList/' + data,
 			method: 'get',
-			noToken:true
-			
+			noToken: true
+
 		})
 	},
-	
+
 	goodsLivingSectionList(data) {
 		return myRequest({
 			url: '/goods/livingSectionList',
 			method: 'get',
-			data:data
+			data: data
 		})
 	},
 	// 查询用户拥有免费+自购题库商品
@@ -484,7 +492,7 @@ export default {
 			data: data
 		})
 	},
-	
-	
-	
-}
+
+
+
+}

+ 2 - 1
common/request.js

@@ -20,7 +20,8 @@ export const BASE_IMG_URL = 'https://file-dev.xyyxt.net/'  //test
 // web_view的
 // export const WEBVIEW_URL = 'https://m.xyyxt.net/'  //release-祥粤云学堂
 // export const WEBVIEW_URL = 'https://cm.xyyxt.net/'  //release-祥粤学堂
-export const WEBVIEW_URL = 'https://zstcm.xyyxt.net/'  //release-中建云学堂
+// export const WEBVIEW_URL = 'https://zstcm.xyyxt.net/'  //release-中建云学堂
+export const WEBVIEW_URL = 'https://live.gdzzkj.net/'  //release-中正学堂
 // export const WEBVIEW_URL = 'https://testm.xyyxt.net/'  //预发布
 // export const WEBVIEW_URL = 'http://120.79.166.78:18001/' // 测试环境-祥粤云学堂
 // export const WEBVIEW_URL = 'http://120.79.166.78:18011/' // 测试环境-祥粤学堂  

+ 4 - 2
components/course/courseChapter.vue

@@ -65,7 +65,7 @@
               >
                 <text v-if="itemM.rebuild > 0">待重测</text>
                 <text v-else-if="itemM.learning == 1">合格</text>
-                <text v-else-if="itemM.learning == 0">不合格</text>
+                <text v-else-if="itemM.learning == 0">不及格(需重考)</text>
               </view>
             </view>
           </view>
@@ -673,7 +673,9 @@ export default {
 
 <style lang="scss" scoped>
 .tagRe {
-  width: 80rpx;
+  // width: 80rpx;
+  line-height: 28rpx;
+  padding: 0 8rpx;
   height: 28rpx;
   background: #ff3b30;
   border-radius: 8rpx;

+ 4 - 2
components/course/courseModule.vue

@@ -48,7 +48,7 @@
 							>
 							
 								<text v-if="itemM.learning == 1">合格</text>
-								<text v-else-if="itemM.learning == 0">不合格</text>
+								<text v-else-if="itemM.learning == 0">不及格(需重考)</text>
 								<!-- <text v-else>不合格</text> -->
 							</view>
 						</view>
@@ -295,7 +295,9 @@ export default {
 	}
 }
 .tagRe {
-  width: 80rpx;
+//   width: 80rpx;
+  line-height: 28rpx;
+  padding: 0 8rpx;
   height: 28rpx;
   background: #ff3b30;
   border-radius: 8rpx;

+ 2 - 2
manifest.json

@@ -73,9 +73,9 @@
     },
     /* 快应用特有相关 */
     "quickapp" : {},
-    /* 小程序特有相关 */
+    /* 小程序特有相关 中正学堂:wx5872ef563d13dabf */
     "mp-weixin" : {
-        "appid" : "wx47d33eb64f9f2a0d", // 祥粤云学堂:wxd3c8ae80cf43a305, 祥粤学堂-wx871153afc95f55f4
+        "appid" : "wx5872ef563d13dabf", // 祥粤云学堂:wxd3c8ae80cf43a305, 祥粤学堂-wx871153afc95f55f4
         "setting" : {
             "urlCheck" : false,
             "postcss" : true,

+ 1 - 29
package-lock.json

@@ -1,36 +1,8 @@
 {
   "name": "zz-applet",
   "version": "1.0.0",
-  "lockfileVersion": 2,
+  "lockfileVersion": 1,
   "requires": true,
-  "packages": {
-    "": {
-      "name": "zz-applet",
-      "version": "1.0.0",
-      "license": "ISC",
-      "dependencies": {
-        "jweixin-module": "^1.6.0",
-        "tki-qrcode": "^0.1.6",
-        "uview-ui": "^1.8.3"
-      },
-      "devDependencies": {}
-    },
-    "node_modules/jweixin-module": {
-      "version": "1.6.0",
-      "resolved": "https://registry.npmjs.org/jweixin-module/-/jweixin-module-1.6.0.tgz",
-      "integrity": "sha512-dGk9cf+ipipHmtzYmKZs5B2toX+p4hLyllGLF6xuC8t+B05oYxd8fYoaRz0T30U2n3RUv8a4iwvjhA+OcYz52w=="
-    },
-    "node_modules/tki-qrcode": {
-      "version": "0.1.6",
-      "resolved": "https://registry.npmjs.org/tki-qrcode/-/tki-qrcode-0.1.6.tgz",
-      "integrity": "sha512-EnnlS8psowC7PsW3MDYcxvJYkuklX3WAZ/BYanR4TdBHTu74GfjTBX8Y16REP+AeDENiVtBPh4jtTRL2P736hQ=="
-    },
-    "node_modules/uview-ui": {
-      "version": "1.8.3",
-      "resolved": "https://registry.npmjs.org/uview-ui/-/uview-ui-1.8.3.tgz",
-      "integrity": "sha512-DqKc+qRrOZLPcyfWv4b0HspSS9n1Cd6BbgKiYEv9rjTAnWoqJV7rXsvWqZdr5iKGP5EMNbNS741GLNw4sIHbpw=="
-    }
-  },
   "dependencies": {
     "jweixin-module": {
       "version": "1.6.0",

+ 0 - 11
pages.json

@@ -126,17 +126,6 @@
 						"bounce": "none"
 					}
 				}
-			}, {
-				"path": "register/bind",
-				"style": {
-					"navigationBarTitleText": "关联学员身份",
-					"navigationBarBackgroundColor": "#0386FD",
-					"navigationStyle": "custom", // 隐藏系统导航栏
-					"app-plus": {
-						"titleNView": false, //禁用原生导航栏 
-						"bounce": "none"
-					}
-				}
 			},
 			{
 				"path": "wd/class", //暂时不用

文件差异内容过多而无法显示
+ 612 - 411
pages/course/index.vue


+ 1582 - 1421
pages/index/index.vue

@@ -1,25 +1,55 @@
 <template>
-	<view class="index">
-		<u-navbar class="navbar" :is-back="false" :border-bottom="false"  title-color="#333333" back-icon-color="#ffffff">
-			<view class="slot-wrap">
-				<image v-if="tenantId == '567735392758918520'" src="/static/zhongshan_logo.png"></image>
-				<image v-else src="/static/logo2.png"></image>
-			</view>
-		</u-navbar>
-		<view class="swiper">
-			<swiper :indicator-dots="false" indicator-color="#fff" indicator-active-color="#007AFF" :style="{'height':swiperHeight+'rpx'}" @change="swiperChange" :interval="interval" :duration="duration"  :autoplay="autoplay" :circular="true">
-				<swiper-item v-for="(swiper,index) in list" :key="index" @click="swiperClick(swiper)">
-					<image @load="imageLoad" :src="$method.splitImgHost(swiper.adverUrl)" mode="widthFix"></image>
-				</swiper-item>
-				
-				
-			</swiper>
-			<view class="dots">
-				<view class="dot" :class="{'active':index == current}" v-for="(swiper,index) in list" :key="index"></view>
-			</view>
-		</view>
-		<view class="content">
-			<!-- <view class="notice" v-if="infoNums">
+  <view class="index">
+    <u-navbar
+      class="navbar"
+      :is-back="false"
+      :border-bottom="false"
+      title-color="#333333"
+      back-icon-color="#ffffff"
+    >
+      <view class="slot-wrap">
+        <image
+          v-if="tenantId == '567735392758918520'"
+          src="/static/zhongshan_logo.png"
+        ></image>
+        <image v-else src="/static/logo2.png"></image>
+      </view>
+    </u-navbar>
+    <view class="swiper">
+      <swiper
+        :indicator-dots="false"
+        indicator-color="#fff"
+        indicator-active-color="#007AFF"
+        :style="{ height: swiperHeight + 'rpx' }"
+        @change="swiperChange"
+        :interval="interval"
+        :duration="duration"
+        :autoplay="autoplay"
+        :circular="true"
+      >
+        <swiper-item
+          v-for="(swiper, index) in list"
+          :key="index"
+          @click="swiperClick(swiper)"
+        >
+          <image
+            @load="imageLoad"
+            :src="$method.splitImgHost(swiper.adverUrl)"
+            mode="widthFix"
+          ></image>
+        </swiper-item>
+      </swiper>
+      <view class="dots">
+        <view
+          class="dot"
+          :class="{ active: index == current }"
+          v-for="(swiper, index) in list"
+          :key="index"
+        ></view>
+      </view>
+    </view>
+    <view class="content">
+      <!-- <view class="notice" v-if="infoNums">
 				<view class="notice__content">
 					<image src="/static/icon/msg_icon1.png" class="icon"></image>
 					<view class="text">
@@ -38,8 +68,8 @@
 					<text>我的题库</text>
 				</view>
 			</view> -->
-				<!-- 日历-->
-			<!-- <view>
+      <!-- 日历-->
+      <!-- <view>
 				<view class="calendar_card">
 					<view class="card_box">
 						<u-row gutter="16">
@@ -99,26 +129,47 @@
 					</view>
 				</view>
 			</view> -->
-			<!-- <u-tabs class="tabs" :current="tabCurrent" @change="tab" :list="menu" :activeStyle="{fontSize:'36rpx'}" :inactiveStyle="{color:'#EAEEF1',fontSize:'30rpx'}" sticky></u-tabs> -->
-			<view class="tabs">
-				<view v-for="(item, index) in menu" :key="index" class="tab_item" :class="{nactive: tabNum == index}" @click="tab(index)">{{ item.name }}</view>
-			</view>
-			<view class="filters">
-				<scroll-view class="scroll_view_H" scroll-x="true" >
-					<template v-if="tabNum == 0 && courseName.length > 1">
-						<view v-for="(item, index) in courseName" :key="index" class="filter_item"  @click="changeCou(item.recommendId, index)">
-							<view class="name" :class="{nactive: couIndex == index}">{{ item.name }}</view>
-						</view>
-					</template>
-					<template v-if="tabNum == 1 && bankName.length > 1">
-						<view v-for="(item, index) in bankName" :key="index" class="filter_item" @click="changebank(item.recommendId, index)">
-							<view class="name" :class="{nactive: bankIndex == index}">{{ item.name }}</view>
-						</view>
-					</template>
-				</scroll-view>
-			</view>
-			<!-- v-if="tabNum == 0" -->
-			<!-- <view class="filters">
+      <!-- <u-tabs class="tabs" :current="tabCurrent" @change="tab" :list="menu" :activeStyle="{fontSize:'36rpx'}" :inactiveStyle="{color:'#EAEEF1',fontSize:'30rpx'}" sticky></u-tabs> -->
+      <view class="tabs">
+        <view
+          v-for="(item, index) in menu"
+          :key="index"
+          class="tab_item"
+          :class="{ nactive: tabNum == index }"
+          @click="tab(index)"
+          >{{ item.name }}</view
+        >
+      </view>
+      <view class="filters">
+        <scroll-view class="scroll_view_H" scroll-x="true">
+          <template v-if="tabNum == 0 && courseName.length > 1">
+            <view
+              v-for="(item, index) in courseName"
+              :key="index"
+              class="filter_item"
+              @click="changeCou(item.recommendId, index)"
+            >
+              <view class="name" :class="{ nactive: couIndex == index }">{{
+                item.name
+              }}</view>
+            </view>
+          </template>
+          <template v-if="tabNum == 1 && bankName.length > 1">
+            <view
+              v-for="(item, index) in bankName"
+              :key="index"
+              class="filter_item"
+              @click="changebank(item.recommendId, index)"
+            >
+              <view class="name" :class="{ nactive: bankIndex == index }">{{
+                item.name
+              }}</view>
+            </view>
+          </template>
+        </scroll-view>
+      </view>
+      <!-- v-if="tabNum == 0" -->
+      <!-- <view class="filters">
 				<scroll-view class="scroll_view_H" scroll-x="true" >
 					
 					<template >
@@ -128,1464 +179,1574 @@
 					</template>
 				</scroll-view>
 			</view> -->
-			<view class="course-list" v-show="tabCurrent==0">
-				<template v-if="list1.length">
-					<!-- hover-class="none" -->
-					<view  class="list_item" v-for="(item,index) in list1" :key="index" @click="tobuy(item)">
-						<view class="course_content">
-							<view class="c_title">{{item.goodsName}}</view>
-							<view class="c_downs">
-								<view class="img">
-									<image :src="$method.splitImgHost(item.coverUrl, true)"></image>
-									<view class="time" v-if="item.year">{{item.year?item.year:''}}</view>
-								</view>
-								<view class="text">
-									<view class="desc">
-										<view class="left">
-											<text v-if="item.standPrice" class="mon_t">¥ {{toFixed(item.standPrice)}}</text>
-											<text v-else class="mon_t free">免费</text>
-											<!-- <text class="sale">/限时优惠</text> -->
-											<text v-if="item.linePrice" class="sale"> ¥ </text>
-											<text v-if="item.linePrice" class="price_line">&nbsp;{{ item.linePrice }}</text>
-										</view>
-										<view class="right">
-											<view v-if="!hideBuyState" class="regiser_row">立即购买</view>
-										</view>
-									</view>
-									<view v-if="item.buyUserNum" class="joins">
-										<!-- <image class="people" src="/static/index/people.png"></image> -->
-										<!-- 为0时,不显示 -->
-										<view class="people">{{ item.buyUserNum }}人参与</view>
-									</view>
-								</view>
-							</view>
-						</view>					
-					</view>
-				</template>
-				<template v-else>
-					<u-empty text="暂无推荐课程" mode="list" margin-top="100"></u-empty>
-				</template>
-			</view>
-			<view class="course-list" v-show="tabCurrent==1">
-				<template v-if="list2.length">
-					<navigator hover-class="none" class="list_item" v-for="(item,index) in list2" :key="index" :url="'/pages2/bank/detail?id='+item.goodsId">
-						<view class="course_content">
-							<view class="c_title">{{item.goodsName}}</view>
-							<view class="c_downs">
-								<view class="img">
-									<image :src="$method.splitImgHost(item.coverUrl, true)"></image>
-									<view class="time" v-if="item.year">{{item.year?item.year:''}}</view>
-								</view>
-								<view class="text">
-									<view class="desc">
-										<view class="left">
-											<text v-if="item.standPrice" class="mon_t">¥ {{toFixed(item.standPrice)}}</text>
-											<text v-else class="mon_t free">免费</text>
-											<!-- <text class="sale">/限时优惠</text> -->
-											<text v-if="item.linePrice" class="sale"> ¥ </text>
-											<text v-if="item.linePrice" class="price_line">&nbsp;{{ item.linePrice }}</text>
-										</view>
-										<view class="right">
-											<view v-if="!hideBuyState" class="regiser_row">立即购买</view>
-										</view>
-									</view>
-									<view v-if="item.buyUserNum" class="joins">
-										<!-- 为0时,不显示 -->
-										<view class="people">{{ item.buyUserNum }}人参与</view>
-									</view>
-									
-								</view>
-							</view>
-						</view>
-					</navigator>
-				</template>
-				<template v-else>
-					<u-empty text="暂无推荐题库" mode="list" margin-top="100"></u-empty>
-				</template>
-			</view>
-		</view>
+      <view class="course-list" v-show="tabCurrent == 0">
+        <template v-if="list1.length">
+          <!-- hover-class="none" -->
+          <view
+            class="list_item"
+            v-for="(item, index) in list1"
+            :key="index"
+            @click="tobuy(item)"
+          >
+            <view class="course_content">
+              <view class="c_title">{{ item.goodsName }}</view>
+              <view class="c_downs">
+                <view class="img">
+                  <image
+                    :src="$method.splitImgHost(item.coverUrl, true)"
+                  ></image>
+                  <view class="time" v-if="item.year">{{
+                    item.year ? item.year : ""
+                  }}</view>
+                </view>
+                <view class="text">
+                  <view class="desc">
+                    <view class="left">
+                      <view
+                        class="mon_t"
+                        :class="item.standPrice === 0 ? 'free' : ''"
+                        v-if="
+                          !item.specTemplateId ||
+                          (!item.maxPrice && !item.minPrice)
+                        "
+                      >
+                        {{
+                          item.standPrice === 0
+                            ? "免费"
+                            : `¥${item.standPrice}`
+                        }}
+                      </view>
+                      <!-- 范围价格 -->
+                      <view v-else class="mon_t">
+                        <view>{{ item.minPrice }}</view>
+                        <template v-if="item.minPrice != item.maxPrice">
+                          <text>-</text>
+                          <view>{{ item.maxPrice }}</view>
+                        </template>
+                      </view>
+                      <text v-if="item.linePrice" class="sale"> ¥ </text>
+                      <text v-if="item.linePrice" class="price_line"
+                        >&nbsp;{{ item.linePrice }}</text
+                      >
+                    </view>
+                    <view class="right">
+                      <view v-if="!hideBuyState" class="regiser_row"
+                        >立即购买</view
+                      >
+                    </view>
+                  </view>
+                  <view v-if="item.buyUserNum" class="joins">
+                    <!-- <image class="people" src="/static/index/people.png"></image> -->
+                    <!-- 为0时,不显示 -->
+                    <view class="people">{{ item.buyUserNum }}人参与</view>
+                  </view>
+                </view>
+              </view>
+            </view>
+          </view>
+        </template>
+        <template v-else>
+          <u-empty text="暂无推荐课程" mode="list" margin-top="100"></u-empty>
+        </template>
+      </view>
+      <view class="course-list" v-show="tabCurrent == 1">
+        <template v-if="list2.length">
+          <navigator
+            hover-class="none"
+            class="list_item"
+            v-for="(item, index) in list2"
+            :key="index"
+            :url="'/pages2/bank/detail?id=' + item.goodsId"
+          >
+            <view class="course_content">
+              <view class="c_title">{{ item.goodsName }}</view>
+              <view class="c_downs">
+                <view class="img">
+                  <image
+                    :src="$method.splitImgHost(item.coverUrl, true)"
+                  ></image>
+                  <view class="time" v-if="item.year">{{
+                    item.year ? item.year : ""
+                  }}</view>
+                </view>
+                <view class="text">
+                  <view class="desc">
+                    <view class="left">
+                      <view
+                        class="mon_t"
+                        :class="item.standPrice === 0 ? 'free' : ''"
+                        v-if="
+                          !item.specTemplateId ||
+                          (!item.maxPrice && !item.minPrice)
+                        "
+                      >
+                        {{
+                          item.standPrice === 0
+                            ? "免费"
+                            : `¥${item.standPrice}`
+                        }}
+                      </view>
+                      <!-- 范围价格 -->
+                      <view v-else class="mon_t">
+                        <view>{{ item.minPrice }}</view>
+                        <template v-if="item.minPrice != item.maxPrice">
+                          <text>-</text>
+                          <view>{{ item.maxPrice }}</view>
+                        </template>
+                      </view>
+                      <text v-if="item.linePrice" class="sale"> ¥ </text>
+                      <text v-if="item.linePrice" class="price_line"
+                        >&nbsp;{{ item.linePrice }}</text
+                      >
+                    </view>
+                    <view class="right">
+                      <view v-if="!hideBuyState" class="regiser_row"
+                        >立即购买</view
+                      >
+                    </view>
+                  </view>
+                  <view v-if="item.buyUserNum" class="joins">
+                    <!-- 为0时,不显示 -->
+                    <view class="people">{{ item.buyUserNum }}人参与</view>
+                  </view>
+                </view>
+              </view>
+            </view>
+          </navigator>
+        </template>
+        <template v-else>
+          <u-empty text="暂无推荐题库" mode="list" margin-top="100"></u-empty>
+        </template>
+      </view>
+    </view>
 
-		<view :style="{'opacity':opacitys}" class="officials">
-			<view class="weixin_official_account">
-				<image class="off_logo" src="/static/index/official.png"></image>
-				<view>
-					<view class="one">关注 “祥粤学校” 公众号</view>
-					<view class="two">学习提醒、 报考通知不会错过</view>
-				</view>
-				<button type="default" class="btn btn-official" >
-					去关注
-					<official-account class="official-account" id="official_account"></official-account>
-				</button>
-				<view class="close_icon">
-					<u-icon name="close" class="icon-close" @click="closeOff"></u-icon>
-				</view>
-			</view>
-		</view>
-		
-	</view>
+    <view :style="{ opacity: opacitys }" class="officials">
+      <view class="weixin_official_account">
+        <image class="off_logo" src="/static/index/official.png"></image>
+        <view>
+          <view class="one">关注 “祥粤学校” 公众号</view>
+          <view class="two">学习提醒、 报考通知不会错过</view>
+        </view>
+        <button type="default" class="btn btn-official">
+          去关注
+          <official-account
+            class="official-account"
+            id="official_account"
+          ></official-account>
+        </button>
+        <view class="close_icon">
+          <u-icon name="close" class="icon-close" @click="closeOff"></u-icon>
+        </view>
+      </view>
+    </view>
+  </view>
 </template>
 
 <script>
-import { mapGetters, mapActions } from 'vuex';
-import { socket_url, version, tenantId} from '@/common/request.js';
+import { mapGetters, mapActions } from "vuex";
+import { socket_url, version, tenantId } from "@/common/request.js";
 export default {
-	data() {
-		return {
-			tenantId: tenantId,
-			tabNum: 0,
-			infoNums:0,
-			list:[],
-			tabCurrent:0,
-			date:['日','一','二','三','四','五','六'],
-			date_num: [],
-			current:0,
-			indicatorDots: true,
-			autoplay: true,
-			interval: 2000,
-			duration: 500,
-			swiperHeight:0,
-			nearByDay:'', //距离最近一天考试
-			menu: [{
-					name: '推荐课程',
-				}, {
-					name: '推荐题库',
-				}],
-			goodsIndex: 0,
-			goodsItem: 0,
-			workList: [],
-			workTextList: [],
-			planGoodsList: [],
-			paramList: [
-				{
-					pageNum: 1,
-					pageSize: 10,
-					total: 0,
-					// showStatus: 0,
-					getUserNum: 1, //是否返回商品购买用户数量 1带 0不带	,会返回个buyUserNum
-					goodsType:1
-				},
-				
-				{
-					pageNum: 1,
-					pageSize: 10,
-					total: 0,
-					// showStatus: 0,
-					getUserNum: 1,
-					goodsType:2
-				}
-			],
-			total1: 0,
-			total2: 0,
-			list1: [],
-			list2: [],
-			isLogin:false,
-			isOld:false,
-			current: 0,
-			showOfficial: false,
-			// opacity: 1,
-			isFollow: null, //是否关注过,不是1就是没关注
-			curClose: true, // 当天时是否关闭过
-			courseName: [],
-			bankName: [],
-			couIndex: 0,
-			bankIndex: 0,
-			courseId: '',
-			bankId: '',
-			subjectList: [],
-			subIndex: 0,
-			courSubjectId: '',
-		};
-	},
-	async onLoad(option) {
-		this.isLogin = this.$method.isLogin()
-		this.dictObj
-		this.getAdvertising();
-		if(this.$method.isLogin()) {
-			try  {
-				await this.getUserInfo()
-				// websocket.sokcet(socket_url+this.userInfo.userId+'-'+this.$method.getRandomString(6))
-				// websocket.sokcet(socket_url+this.userInfo.userAccount)
-			}catch(err) {
-				
-			}
-			
-		} else {
-			if(uni.getStorageSync('needToLogin')) {
-				uni.removeStorageSync('needToLogin');
-				uni.navigateTo({
-					url:'/pages4/login/login'
-				})
-			}
-		}
-		
-		this.init()
+  data() {
+    return {
+      tenantId: tenantId,
+      tabNum: 0,
+      infoNums: 0,
+      list: [],
+      tabCurrent: 0,
+      date: ["日", "一", "二", "三", "四", "五", "六"],
+      date_num: [],
+      current: 0,
+      indicatorDots: true,
+      autoplay: true,
+      interval: 2000,
+      duration: 500,
+      swiperHeight: 0,
+      nearByDay: "", //距离最近一天考试
+      menu: [
+        {
+          name: "推荐课程",
+        },
+        {
+          name: "推荐题库",
+        },
+      ],
+      goodsIndex: 0,
+      goodsItem: 0,
+      workList: [],
+      workTextList: [],
+      planGoodsList: [],
+      paramList: [
+        {
+          pageNum: 1,
+          pageSize: 10,
+          total: 0,
+          // showStatus: 0,
+          getUserNum: 1, //是否返回商品购买用户数量 1带 0不带	,会返回个buyUserNum
+          goodsType: 1,
+        },
+
+        {
+          pageNum: 1,
+          pageSize: 10,
+          total: 0,
+          // showStatus: 0,
+          getUserNum: 1,
+          goodsType: 2,
+        },
+      ],
+      total1: 0,
+      total2: 0,
+      list1: [],
+      list2: [],
+      isLogin: false,
+      isOld: false,
+      current: 0,
+      showOfficial: false,
+      // opacity: 1,
+      isFollow: null, //是否关注过,不是1就是没关注
+      curClose: true, // 当天时是否关闭过
+      courseName: [],
+      bankName: [],
+      couIndex: 0,
+      bankIndex: 0,
+      courseId: "",
+      bankId: "",
+      subjectList: [],
+      subIndex: 0,
+      courSubjectId: "",
+    };
+  },
+  async onLoad(option) {
+    this.isLogin = this.$method.isLogin();
+    this.dictObj;
+    this.getAdvertising();
+    if (this.$method.isLogin()) {
+      try {
+        await this.getUserInfo();
+        // websocket.sokcet(socket_url+this.userInfo.userId+'-'+this.$method.getRandomString(6))
+        // websocket.sokcet(socket_url+this.userInfo.userAccount)
+      } catch (err) {}
+    } else {
+      if (uni.getStorageSync("needToLogin")) {
+        uni.removeStorageSync("needToLogin");
+        uni.navigateTo({
+          url: "/pages4/login/login",
+        });
+      }
+    }
+
+    this.init();
+
+    wx.getSystemInfo({
+      success: function (res) {
+        let version = res.SDKVersion;
+        console.log("该版本号为: ", version);
+      },
+    });
+  },
+  async onShow() {
+    this.getInfo(); // 判断有没有关注公众号
+    this.isClickOff(); //关注公众号,每天最多显示1次;当天学员关闭弹窗后,无需再显示
+    uni.removeStorageSync("goPath");
 
-		wx.getSystemInfo({
-			success: function (res) {
-				let version = res.SDKVersion
-				console.log('该版本号为: ', version)
-			}
-		})
-	},
-	async onShow() {
-		this.getInfo() // 判断有没有关注公众号		
-		this.isClickOff() //关注公众号,每天最多显示1次;当天学员关闭弹窗后,无需再显示
-		uni.removeStorageSync('goPath')
-		
-		// if (this.courseId || this.bankId) {
-		// 	if (this.tabNum == 0) {
-		// 		this.list1 = []
-		// 		this.paramList[0].pageNum = 1
-		// 		this.list1 = await this.getGoodsList(this.courseId, 0)
-		// 	} else {
-		// 		this.list2 = []
-		// 		this.paramList[1].pageNum = 1
-		// 		this.list2 = await this.getGoodsList(this.bankId, 1)
-		// 	}
-		// } else {
-			this.list1 = []
-			this.list2 = []
-			this.paramList[0].pageNum = 1
-			this.paramList[1].pageNum = 1
-			this.courseLists()
-		// }
-		if (uni.getStorageSync('updateHome')){
-			this.init()
-			uni.removeStorageSync('updateHome'); //消费首页刷新事件
-		}
-		
-		this.appCommonConfig({
-			version
-		});
-		if(this.$method.isLogin()){
-			this.$store.state.allowLoading = false;
-			this.$api.getinfoAttached().then(res => {
-				if(res.data.code ===200){
-					this.infoNums = res.data.data.informSum
-					const nums = res.data.data.informSum + res.data.data.orderSum + res.data.data.periodSum + res.data.data.planSum + res.data.data.subscribeSum;
-					this.$store.commit('tabNum', nums);
-				}
-			})
-			this.$store.state.allowLoading = true;
-		}else{
-			this.$store.commit('tabNum', 0);
-		}
-	},
-	onShareAppMessage(res) {
-		return {
-			title: '中正',
-			path: `/pages/index/index?inviteCode=` + userInfo == null ? '' : userInfo.userAccount
-		};
-	},
-	async onPullDownRefresh() {
-		// console.log('下拉this.courseId:', this.courseId)
-		if (this.tabNum == 0) {
-			this.list1 = []
-			this.paramList[0].pageNum = 1
-			this.list1 = await this.getGoodsList(this.courseId, 0, this.courSubjectId)
-		} else {
-			this.list2 = []
-			this.paramList[1].pageNum = 1
-			this.list2 = await this.getGoodsList(this.bankId, 1, this.courSubjectId)
-		}
-	},
-	async onReachBottom() {
-		// console.log('加载this.courseId:', this.courseId, this.list1.length, this.paramList[0].total)
-		if (this.tabNum == 0) {
-			if (this.list1.length < this.paramList[0].total) {
-				this.paramList[0].pageNum++
-				let list1 = await this.getGoodsList(this.courseId, 0, this.courSubjectId)
-				this.list1.push(...list1)
-			}
-		} else {
+    // if (this.courseId || this.bankId) {
+    // 	if (this.tabNum == 0) {
+    // 		this.list1 = []
+    // 		this.paramList[0].pageNum = 1
+    // 		this.list1 = await this.getGoodsList(this.courseId, 0)
+    // 	} else {
+    // 		this.list2 = []
+    // 		this.paramList[1].pageNum = 1
+    // 		this.list2 = await this.getGoodsList(this.bankId, 1)
+    // 	}
+    // } else {
+    this.list1 = [];
+    this.list2 = [];
+    this.paramList[0].pageNum = 1;
+    this.paramList[1].pageNum = 1;
+    this.courseLists();
+    // }
+    if (uni.getStorageSync("updateHome")) {
+      this.init();
+      uni.removeStorageSync("updateHome"); //消费首页刷新事件
+    }
 
-			if (this.list2.length < this.paramList[1].total) {
-				this.paramList[1].pageNum++
-				let list2 = await this.getGoodsList(this.bankId, 1, this.courSubjectId)
-				this.list1.push(...list2)
-			}
-		}
-		
-	},
-	computed: { 
-		...mapGetters(['dictObj','userInfo', 'hideBuyState']),
-		opacitys() {
-			const value = [1011,1017,1025,1047,1124].includes(this.$store.state.scene) && this.isLogin && (this.isFollow != 1) && this.curClose ? 1 : 0
-			return value
-		},
-	},
-	methods: {
-		...mapActions(['getUserInfo','appCommonConfig']),
-		tobuy(item) {
-			if (item.goodsType == 2) {
+    this.appCommonConfig({
+      version,
+    });
+    if (this.$method.isLogin()) {
+      this.$store.state.allowLoading = false;
+      this.$api.getinfoAttached().then((res) => {
+        if (res.data.code === 200) {
+          this.infoNums = res.data.data.informSum;
+          const nums =
+            res.data.data.informSum +
+            res.data.data.orderSum +
+            res.data.data.periodSum +
+            res.data.data.planSum +
+            res.data.data.subscribeSum;
+          this.$store.commit("tabNum", nums);
+        }
+      });
+      this.$store.state.allowLoading = true;
+    } else {
+      this.$store.commit("tabNum", 0);
+    }
+  },
+  onShareAppMessage(res) {
+    return {
+      title: "中正",
+      path:
+        `/pages/index/index?inviteCode=` + userInfo == null
+          ? ""
+          : userInfo.userAccount,
+    };
+  },
+  async onPullDownRefresh() {
+    // console.log('下拉this.courseId:', this.courseId)
+    if (this.tabNum == 0) {
+      this.list1 = [];
+      this.paramList[0].pageNum = 1;
+      this.list1 = await this.getGoodsList(
+        this.courseId,
+        0,
+        this.courSubjectId
+      );
+    } else {
+      this.list2 = [];
+      this.paramList[1].pageNum = 1;
+      this.list2 = await this.getGoodsList(this.bankId, 1, this.courSubjectId);
+    }
+  },
+  async onReachBottom() {
+    // console.log('加载this.courseId:', this.courseId, this.list1.length, this.paramList[0].total)
+    if (this.tabNum == 0) {
+      if (this.list1.length < this.paramList[0].total) {
+        this.paramList[0].pageNum++;
+        let list1 = await this.getGoodsList(
+          this.courseId,
+          0,
+          this.courSubjectId
+        );
+        this.list1.push(...list1);
+      }
+    } else {
+      if (this.list2.length < this.paramList[1].total) {
+        this.paramList[1].pageNum++;
+        let list2 = await this.getGoodsList(this.bankId, 1, this.courSubjectId);
+        this.list1.push(...list2);
+      }
+    }
+  },
+  computed: {
+    ...mapGetters(["dictObj", "userInfo", "hideBuyState"]),
+    opacitys() {
+      const value =
+        [1011, 1017, 1025, 1047, 1124].includes(this.$store.state.scene) &&
+        this.isLogin &&
+        this.isFollow != 1 &&
+        this.curClose
+          ? 1
+          : 0;
+      return value;
+    },
+  },
+  methods: {
+    ...mapActions(["getUserInfo", "appCommonConfig"]),
+    tobuy(item) {
+      if (item.goodsType == 2) {
+        uni.navigateTo({
+          url: "/pages2/bank/detail?id=" + item.goodsId,
+        });
+      } else {
+        // 视频、直播 /pages5/liveDetail/index
+        uni.navigateTo({
+          url:
+            "/pages3/course/detail?id=" +
+            item.goodsId +
+            "&goodsType=" +
+            item.goodsType,
+        });
+      }
+    },
+    getInfo() {
+      // /app/user/getInfo 登录用户信息 // fromPlat来源平台 1小程序 2PC网站
+      this.$api.getInfo({ fromPlat: 1 }).then((res) => {
+        if (res.data.code == 200) {
+          this.$store.state.userInfo = res.data.data;
+          this.isFollow = res.data.data.userFollowWx; // 不是1就是没关注
+        }
+      });
+    },
+    // 每天最多显示1次;当天学员关闭弹窗后,无需再显示
+    isClickOff() {
+      //当天23:59:59秒 转换成的毫秒数
+      const end = new Date(
+        new Date(new Date().toLocaleDateString()).getTime() +
+          24 * 60 * 60 * 1000 -
+          1
+      ).getTime();
+      const start = new Date().getTime(); //当前时间的毫秒数
+      if (uni.getStorageSync("endTime")) {
+        //首先判断本地有没有存入当天23:59:59秒的毫秒数
+        if (start > uni.getStorageSync("endTime")) {
+          //当前时间毫秒数大于当天23:59:59秒
+          this.curClose = true;
+          uni.removeStorageSync("curClose");
+          uni.removeStorageSync("endTime");
+        } else {
+          this.curClose = uni.getStorageSync("curClose") ? false : true;
+        }
+      } else {
+        uni.setStorageSync("endTime", end); //存入当天晚上23:59:59秒的毫秒数
+      }
+    },
+    closeOff() {
+      this.curClose = false;
+      uni.setStorageSync("curClose", "1");
+    },
+    toFixed(number) {
+      if (number > 0) {
+        return number.toFixed(2);
+      } else {
+        return "0.00";
+      }
+    },
+    /**
+     * @param {Object} swiper
+     * 点击轮播图
+     */
+    swiperClick(swiper) {
+      if (swiper.jumpType == 1) {
+        //无跳转
+        return;
+      } else if (swiper.jumpType == 2) {
+        //url
+        let url = encodeURIComponent(swiper.jumpUrl);
+        uni.navigateTo({
+          url: "/pages/webview/index?url=" + swiper.jumpUrl,
+        });
+      } else if (swiper.jumpType == 3) {
+        //内部接口
+        uni.navigateTo({
+          url: swiper.jumpUrl,
+        });
+      } else if (swiper.jumpType == 4) {
+        //外部接口
+        uni.navigateToMiniProgram({
+          appId: swiper.remarks,
+          path: swiper.jumpUrl,
+          extraData: {},
+          success(res) {
+            // 打开成功
+          },
+          fail(err) {
+            //   console.log(err)
+          },
+        });
+      }
+    },
+    /**
+     * banner图片加载完成
+     */
+    imageLoad(e) {
+      let winW = 750;
+      let imgW = e.detail.width;
+      let imgH = e.detail.height;
+      this.swiperHeight = (750 * imgH) / imgW;
+    },
+    async getAdvertising() {
+      await this.advertisingHomeLocation();
+      await this.getLocation();
+      // await this.advertisingList();
+    },
+
+    getUserSubscribeRecentExam() {
+      return new Promise((resolve) => {
+        this.$api.getUserSubscribeRecentExam().then((res) => {
+          if (res.data.code == 200) {
+            if (res.data.data) {
+              let day = this.$method
+                .timestampToTime(res.data.data.applySiteExamTime, true)
+                .replace(/-/g, "/");
+              let dayTime = day + " " + res.data.data.applySiteStartTime;
+              let NowTime = new Date(); //考试时间
+              let examTime = new Date(dayTime); //考试时间
+              let t =
+                examTime.getTime() / 1000 -
+                (NowTime.getTime() / 1000).toFixed(0);
+              if (t > 0) {
+                let day = +this.$method.GetRTime(
+                  examTime.getTime() / 1000,
+                  true
+                );
+                this.nearByDay = day;
+              }
+            }
+
+            resolve();
+          }
+        });
+      });
+    },
+
+    advertisingHomeLocation() {
+      return new Promise((resolve) => {
+        this.$api.advertisingHomeLocation().then((res) => {
+          this.interval = res.data.data.intervalTime * 1000;
+          resolve();
+        });
+      });
+    },
+    getLocation() {
+      this.$api
+        .advertisingLocation({
+          platform: 1,
+          status: 1,
+          locationKey: "home-banner",
+        })
+        .then((res) => {
+          if (res.data.code == 200) {
+            let locationId =
+              (res.data.data && res.data.data[0].locationId) || 1;
+            console.log("locationId:", locationId);
+            this.advertisingList(locationId);
+          }
+        });
+    },
+    advertisingList(locationId) {
+      // return new Promise(resolve => {
+      this.$api.advertisingList({ locationId: locationId }).then((res) => {
+        this.list = res.data.rows;
+        // resolve()
+      });
+      // })
+    },
+    jumpPage() {
+      this.$navTo.togo("/pages4/msg/index");
+    },
+    go(type) {
+      if (!this.$method.isLogin()) {
+        if (type == "course") {
+          uni.setStorageSync("goPath", "course");
+        } else if (type == "bank") {
+          uni.setStorageSync("goPath", "bank");
+        }
+        this.$navTo.togo("/pages4/login/login");
+      } else {
+        if (type == "course") {
+          uni.navigateTo({
+            url: "/pages2/wd/class",
+          });
+        } else if (type == "bank") {
+          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/bank/detail?id='+item.goodsId
-                })
+                  url: "/pages2/wd/question_bank",
+                });
+              }
+            });
+        }
+      }
+    },
+    async changeCou(recommendId, index) {
+      this.couIndex = index;
+      this.courseId = recommendId;
+      this.paramList[0].pageNum = 1;
+      this.list1 = [];
+      let list1 = await this.getGoodsList(recommendId, 0, this.courSubjectId);
+      this.list1.push(...list1);
+    },
+    async changebank(recommendId, index) {
+      this.bankIndex = index;
+      this.bankId = recommendId;
+      this.paramList[1].pageNum = 1;
+      this.list2 = [];
+      let list2 = await this.getGoodsList(recommendId, 1, this.courSubjectId);
+      this.list2.push(...list2);
+    },
+    async changeSub(subjectId, index) {
+      // console.log('subjectId, index:', subjectId, index, 'this.courseId:', this.courseId, 'this.bankId:', this.bankId)
+      this.subIndex = index;
+      this.courSubjectId = subjectId;
+      this.paramList[this.tabNum].pageNum = 1;
+      if (this.tabNum == 0) {
+        this.list1 = [];
+        let list1 = await this.getGoodsList(this.courseId, 0, subjectId);
+        this.list1.push(...list1);
+      } else {
+        this.list2 = [];
+        let list2 = await this.getGoodsList(this.bankId, 1, subjectId);
+        this.list2.push(...list2);
+      }
+    },
+    //课程
+    courseLists() {
+      // var param = this.paramList[0];
+      // /app/common/goods/list
+      this.$http({
+        url: "/app/common/activity/recommend/list",
+        method: "get",
+        data: {
+          platform: 1,
+          status: 1,
+        },
+        noToken: true,
+      }).then(async (res) => {
+        if (res.data.code == 200) {
+          let list = res.data.rows || [];
+          //课程
+          this.courseName = list
+            .filter((x) => x.type == 1)
+            .sort((a, b) => a.sort - b.sort)
+            .map((x) => {
+              return {
+                name: x.name,
+                recommendId: x.recommendId,
+              };
+            });
+          // console.log('couIndex', this.couIndex, this.courseName)
+          //题库
+          this.bankName = list
+            .filter((x) => x.type == 2)
+            .sort((a, b) => a.sort - b.sort)
+            .map((x) => {
+              return {
+                name: x.name,
+                recommendId: x.recommendId,
+              };
+            });
+          if (this.courseName.length) {
+            let courseId = "";
+            if (this.courseId) {
+              courseId = this.courseId;
             } else {
-				// 视频、直播 /pages5/liveDetail/index
-                uni.navigateTo({
-                    url: '/pages3/course/detail?id='+item.goodsId + '&goodsType=' + item.goodsType
-                })
+              courseId = this.courseName[0].recommendId;
+              this.courseId = this.courseName[0].recommendId;
             }
-		},
-		getInfo() {
-			// /app/user/getInfo 登录用户信息 // fromPlat来源平台 1小程序 2PC网站
-			this.$api.getInfo({ fromPlat: 1 }).then(res => {
-				if(res.data.code == 200){
-					this.$store.state.userInfo = res.data.data
-					this.isFollow = res.data.data.userFollowWx // 不是1就是没关注
-				}
-			})
-		},
-		// 每天最多显示1次;当天学员关闭弹窗后,无需再显示
-		isClickOff() {
-			//当天23:59:59秒 转换成的毫秒数
-			const end = new Date(new Date(new Date().toLocaleDateString()).getTime()+24*60*60*1000-1).getTime()
-			const start = new Date().getTime() //当前时间的毫秒数
-			if(uni.getStorageSync('endTime')){	//首先判断本地有没有存入当天23:59:59秒的毫秒数
-				if(start > uni.getStorageSync('endTime')){ //当前时间毫秒数大于当天23:59:59秒
-					this.curClose = true
-					uni.removeStorageSync('curClose')
-					uni.removeStorageSync('endTime')
-				} else {
-					this.curClose = uni.getStorageSync('curClose') ? false : true
-				}
-			}else{
-				uni.setStorageSync("endTime", end) //存入当天晚上23:59:59秒的毫秒数
-			}
-		},
-		closeOff() {
-			this.curClose = false
-			uni.setStorageSync("curClose", '1')
-		},
-		toFixed(number) {
-			if(number > 0) {
-				return number.toFixed(2)
-			} else {
-				return '0.00'
-			}
-		},
-		/**
-		 * @param {Object} swiper 
-		 * 点击轮播图
-		 */
-		swiperClick(swiper) {
-			if(swiper.jumpType == 1) { //无跳转
-				return;
-			} else if(swiper.jumpType == 2) { //url
-				let url = encodeURIComponent(swiper.jumpUrl)
-				uni.navigateTo({
-					url:'/pages/webview/index?url='+swiper.jumpUrl
-				})
-			} else if(swiper.jumpType == 3) { //内部接口
-				uni.navigateTo({
-					url:swiper.jumpUrl
-				})
-			} else if(swiper.jumpType == 4) { //外部接口
-				uni.navigateToMiniProgram({
-				  appId: swiper.remarks,
-				  path: swiper.jumpUrl,
-				  extraData: {
-				    
-				  },
-				  success(res) {
-				    // 打开成功
-				  },
-				  fail(err) {
-					//   console.log(err)
-				  }
-				})
-			}
-		},
-		/**
-		 * banner图片加载完成
-		 */
-		imageLoad(e) {
-			let winW = 750;
-			let imgW = e.detail.width;
-			let imgH = e.detail.height;
-			this.swiperHeight = 750 * imgH / imgW;
-		},
-		async getAdvertising() {
-			await this.advertisingHomeLocation();
-			await this.getLocation()
-			// await this.advertisingList();
-		},
-		
-		getUserSubscribeRecentExam() {
-			return new Promise(resolve => {
-				this.$api.getUserSubscribeRecentExam().then(res => {
-					if(res.data.code == 200) {
-						if(res.data.data) {
-							let day = this.$method.timestampToTime(res.data.data.applySiteExamTime,true).replace(/-/g,'/')
-							let dayTime = day + ' ' + res.data.data.applySiteStartTime
-							let NowTime = new Date(); //考试时间
-							let examTime = new Date(dayTime); //考试时间
-							let t = (examTime.getTime() / 1000) - (NowTime.getTime() / 1000).toFixed(0);
-							if(t > 0) {
-								let day = +this.$method.GetRTime(examTime.getTime() / 1000,true)
-								this.nearByDay = day;
-							} 
-					
-							
-						}
-						
-						resolve()
-					}					
-				})
-			})
-			
-		},
-		
-		advertisingHomeLocation() {
-			return new Promise(resolve => {
-				this.$api.advertisingHomeLocation().then(res => {
-					this.interval = res.data.data.intervalTime * 1000
-					resolve()
-				})
-			})
-		},
-		getLocation() {
-			this.$api.advertisingLocation({
-				platform: 1,
-				status: 1,
-				locationKey: 'home-banner'
-			}).then((res) => {
-				if (res.data.code == 200) {
-					let locationId = res.data.data && res.data.data[0].locationId || 1
-					console.log('locationId:', locationId);
-					this.advertisingList(locationId)
-				}
-			})
-		},
-		advertisingList(locationId) {
-			// return new Promise(resolve => {
-				this.$api.advertisingList({locationId: locationId}).then(res => {
-					this.list = res.data.rows;
-					// resolve()
-				})
-			// })
-		},
-		jumpPage(){
-			this.$navTo.togo('/pages4/msg/index')
-		},
-		go(type) {
-			if (!this.$method.isLogin()) {
-				if(type == 'course') {
-					
-						uni.setStorageSync('goPath','course')
-				} else if(type == 'bank' ) {
-					
-						uni.setStorageSync('goPath','bank')
-				}
-				this.$navTo.togo('/pages4/login/login');
-			} else {
-				if(type == 'course') {
-					uni.navigateTo({
-						url:'/pages2/wd/class'
-					})
-				} else if(type == 'bank') {
-					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'
-							})
-					  }
-					})
-				}
-			}
-			
-		},
-		async changeCou(recommendId, index) {
-			this.couIndex = index
-			this.courseId = recommendId
-			this.paramList[0].pageNum = 1
-			this.list1 = []
-			let list1 = await this.getGoodsList(recommendId, 0, this.courSubjectId)
-			this.list1.push(...list1)
-		},
-		async changebank(recommendId, index) {
-			this.bankIndex = index
-			this.bankId = recommendId
-			this.paramList[1].pageNum = 1
-			this.list2 = []
-			let list2 = await this.getGoodsList(recommendId, 1, this.courSubjectId)
-			this.list2.push(...list2)
-		},
-		async changeSub(subjectId, index) {
-			// console.log('subjectId, index:', subjectId, index, 'this.courseId:', this.courseId, 'this.bankId:', this.bankId)
-			this.subIndex = index
-			this.courSubjectId = subjectId
-			this.paramList[this.tabNum].pageNum = 1 
-			if (this.tabNum == 0) {
-				this.list1 = []
-				let list1 = await this.getGoodsList(this.courseId, 0, subjectId)
-				this.list1.push(...list1)
-			} else {
-				this.list2 = []
-				let list2 = await this.getGoodsList(this.bankId, 1, subjectId)
-				this.list2.push(...list2)
-			}
-			
-		},
-		//课程
-		 courseLists() {			
-			// var param = this.paramList[0];
-			// /app/common/goods/list
-			this.$http({
-				url: '/app/common/activity/recommend/list',
-				method: 'get',
-				data: {
-					platform: 1,
-					status: 1
-				},
-				noToken: true
-			}).then(async (res) => {
-				if (res.data.code == 200) {
-					let list = res.data.rows || []
-					//课程
-					this.courseName = list.filter(x => x.type == 1).sort((a,b) => a.sort - b.sort).map(x => {
-						return {
-							name: x.name,
-							recommendId: x.recommendId
-						}
-					});
-					// console.log('couIndex', this.couIndex, this.courseName)
-					//题库
-					this.bankName = list.filter(x => x.type == 2).sort((a,b) => a.sort - b.sort).map(x => {
-						return {
-							name: x.name,
-							recommendId: x.recommendId
-						}
-					});
-					if (this.courseName.length) {
-						let courseId = ''
-						if (this.courseId) {
-							courseId = this.courseId
-						} else {
-							courseId = this.courseName[0].recommendId
-							this.courseId = this.courseName[0].recommendId
-						}
-						// console.log('courseId:', courseId)
-						this.getSubjectList(courseId)
-						let list1 = await this.getGoodsList(courseId, 0, '')
-						this.list1.push(...list1)
-					}
-					
-					if (this.bankName.length) {
-						let bankId = ''
-						if (this.bankId) {
-							bankId = this.bankId
-						} else {
-							bankId = this.bankName[0].recommendId
-							this.bankId = this.bankName[0].recommendId
-						}
-						let list2 = await this.getGoodsList(bankId, 1, '')
-						this.list2.push(...list2)
-					}
+            // console.log('courseId:', courseId)
+            this.getSubjectList(courseId);
+            let list1 = await this.getGoodsList(courseId, 0, "");
+            this.list1.push(...list1);
+          }
 
-				}
-			});
-		},
-		getGoodsList(recommendId, num, subjectId) {	
-			return new Promise((resolve, reject) => {
-				let params = {
-					pageNum: this.paramList[num].pageNum,
-					pageSize: this.paramList[num].pageSize,
-					recommendId: recommendId
-				}
-				subjectId && (params.subjectId = subjectId)
-				// console.log('params:', params)
-				this.$http({
-					url: `/app/common/activity/recommend/goodsList`,
-					method: 'get',
-					data: params,
-					noToken: true
-				}).then((res) => {
-					if (res.data.code == 200) {
-						this.paramList[num].total = res.data.total
-						resolve(res.data.rows)
-					}	
-				})
-			})
-			 
-		},
-		getSubjectList(recommendId) {
-			this.$http({
-				url: `/app/common/activity/recommend/subjectList`,
-				method: 'get',
-				data: {
-					recommendId: recommendId
-				},
-				noToken: true
-			}).then((res) => {
-				if (res.data.code == 200) {
-					let data = res.data.data || []
-					this.subjectList = [{ id: '', subjectName: '全部'}, ...data]
-					// console.log('this.subjectList:', this.subjectList)
-				}	
-			})
-		},
-		/**
-		 * @param {Object} item 
-		 * 跳转课程详情
-		 */
-		async jumpGoodsDetail(item){
-			uni.navigateTo({
-				url:'/pages2/wd/class'
-			})
-		},
-		/**
-		 * @param {Object} goodsId 商品id
-		 * 查询商品重修状态
-		 */
-		courseGoodsRebuildStatus(goodsId,gradeId) {
-			return new Promise(resolve => {
-				this.$api.courseGoodsRebuildStatus({
-					goodsId:goodsId,
-					gradeId:gradeId
-				}).then(res => {
-					resolve(res.data.data)
-				})
-			})
-		},
-		preveItem() {
-			if (this.goodsIndex > 0) {
-				this.goodsIndex = this.goodsIndex - 1;
-				this.planGoodsList =this.workList[this.goodsIndex].goodsVos
-				this.goodsItem = this.planGoodsList[0];
-				this.dealRL(this.workList[this.goodsIndex].calendarStudyVo)
-			}
-		},
-		nextItem() {
-			if (this.goodsIndex < this.workList.length - 1) {
-				this.goodsIndex = this.goodsIndex + 1;
-				this.planGoodsList =this.workList[this.goodsIndex].goodsVos
-				this.goodsItem = this.planGoodsList[0];
-				this.dealRL(this.workList[this.goodsIndex].calendarStudyVo)
-			}
-		},
-		jumpPlan() {
-			if (!this.$method.isLogin()) {
-				this.$navTo.togo('/pages4/login/login');
-			} else {
-				this.$navTo.togo('/pages2/plan/index', {});
-			}
-		},
-		async init() {
-			if (!this.$method.isLogin()) {
-				//未登录
-				this.date_num = [];
-				this.workList = [];
-				this.planGoodsList = [];
-				this.initDay();
-			} else {
-				this.date_num = [];
-				this.workList = [];
-				this.planGoodsList = [];
-				await this.userPlanSeven();
-				await this.getUserSubscribeRecentExam();
-			}
-			
-		},
-		getMonDate() {
-			var d = new Date(),
-				day = d.getDay(),
-				date = d.getDate();
-			if (day == 0) return d;
-			else d.setDate(date - day);
-			return d;
-		},
-		initDay() {
-			// d是当前星期一的日期对象
-			var d = this.getMonDate();
-			var arr = [];
-			let date = new Date();
-			let num = date.getDate();
-			this.date_num = []
-			for (var i = 0; i < 7; i++) {
-				let item = { date: d.getDate() };
-				item.color = 0;
-				if (d.getDate() == num) {
-					item.color = 3;
-				}
-				this.date_num.push(item);
-				d.setDate(d.getDate() + 1);
-			}
-		},
-		dealRL(calendarStudyVo){
-			let self = this
-			self.date_num = []
-			let date = new Date();
-			let num = date.getDate();
-			let month = date.getMonth() + 1;
-			let list = [];
-			for (let j = 0; j < calendarStudyVo.length; j++) {
-				let item = calendarStudyVo[j];
-				list = item.dayStudyList;
-				for (let i = 0; i < list.length; i++) {
-					let item = list[i];
-					item.color = 0;
-					if (item.date == num) {
-						item.color = 3;
-					}
-					if (item.perform == 1) {
-						item.color = 1;
-					}
-					if (item.perform == 2) {
-						item.color = 2;
-					}
-					item.note = item.studyCourseKnob;
-					if (item.note > 0) {
-						item.dot = true;
-					}
-					self.date_num.push(item);
-				}
-			}
-			
-		},
-		userPlanSeven() {
-			return new Promise(resolve => {
-				let self = this;
-				this.$api.userPlanSeven().then(result => {
-					if (result.data.data && result.data.data.length>0) {
-						
-						self.workList = result.data.data
-						self.planGoodsList = self.workList[0].goodsVos;
-						if (self.planGoodsList != null && self.planGoodsList.length > 0) {
-							self.goodsItem = self.planGoodsList[0];
-						}
-						self.dealRL(result.data.data[0].calendarStudyVo)
-					} else {
-						self.initDay();
-					}
-					
-					resolve()
-				});
-			})
-			
-		},
-		swiperChange(e) {
-			this.current = e.detail.current;
-		},
-		tab(e) {
-			this.tabCurrent = e;
-			this.tabNum = e
-			this.paramList[this.tabNum].pageNum = 1 
-			if (e == 0) {
-				this.list1 = []
-			} else {
-				this.list2 = []
-			}
-			this.courseLists()
-			// let recommendId = e == 0 ? this.courseId : this.bankId
-			// this.getSubjectList(recommendId)
-		},
-		updateHomePlan() {
-			this.$refs.home.init();
-		},
-		beforeSwitch(index) {
-			let that = this;
-			if (index == 1) {
-				this.isClick1 = true;
-			}
-			if (index == this.current) {
-				return false;
-			}
-			if (!this.$method.isLogin()) {
-				if (index == 0 || index == 1) {
-					return true;
-				} else {
-					this.$navTo.togo('/pages4/login/login');
-					return false;
-				}
-			} else {
-				if (index == 2) {
-					this.$refs.refMy.init();
-				}
-				return true;
-			}
-		}
-	},
-	
+          if (this.bankName.length) {
+            let bankId = "";
+            if (this.bankId) {
+              bankId = this.bankId;
+            } else {
+              bankId = this.bankName[0].recommendId;
+              this.bankId = this.bankName[0].recommendId;
+            }
+            let list2 = await this.getGoodsList(bankId, 1, "");
+            this.list2.push(...list2);
+          }
+        }
+      });
+    },
+    getGoodsList(recommendId, num, subjectId) {
+      return new Promise((resolve, reject) => {
+        let params = {
+          pageNum: this.paramList[num].pageNum,
+          pageSize: this.paramList[num].pageSize,
+          recommendId: recommendId,
+        };
+        subjectId && (params.subjectId = subjectId);
+        // console.log('params:', params)
+        this.$http({
+          url: `/app/common/activity/recommend/goodsList`,
+          method: "get",
+          data: params,
+          noToken: true,
+        }).then((res) => {
+          if (res.data.code == 200) {
+            this.paramList[num].total = res.data.total;
+            resolve(res.data.rows);
+          }
+        });
+      });
+    },
+    getSubjectList(recommendId) {
+      this.$http({
+        url: `/app/common/activity/recommend/subjectList`,
+        method: "get",
+        data: {
+          recommendId: recommendId,
+        },
+        noToken: true,
+      }).then((res) => {
+        if (res.data.code == 200) {
+          let data = res.data.data || [];
+          this.subjectList = [{ id: "", subjectName: "全部" }, ...data];
+          // console.log('this.subjectList:', this.subjectList)
+        }
+      });
+    },
+    /**
+     * @param {Object} item
+     * 跳转课程详情
+     */
+    async jumpGoodsDetail(item) {
+      uni.navigateTo({
+        url: "/pages2/wd/class",
+      });
+    },
+    /**
+     * @param {Object} goodsId 商品id
+     * 查询商品重修状态
+     */
+    courseGoodsRebuildStatus(goodsId, gradeId) {
+      return new Promise((resolve) => {
+        this.$api
+          .courseGoodsRebuildStatus({
+            goodsId: goodsId,
+            gradeId: gradeId,
+          })
+          .then((res) => {
+            resolve(res.data.data);
+          });
+      });
+    },
+    preveItem() {
+      if (this.goodsIndex > 0) {
+        this.goodsIndex = this.goodsIndex - 1;
+        this.planGoodsList = this.workList[this.goodsIndex].goodsVos;
+        this.goodsItem = this.planGoodsList[0];
+        this.dealRL(this.workList[this.goodsIndex].calendarStudyVo);
+      }
+    },
+    nextItem() {
+      if (this.goodsIndex < this.workList.length - 1) {
+        this.goodsIndex = this.goodsIndex + 1;
+        this.planGoodsList = this.workList[this.goodsIndex].goodsVos;
+        this.goodsItem = this.planGoodsList[0];
+        this.dealRL(this.workList[this.goodsIndex].calendarStudyVo);
+      }
+    },
+    jumpPlan() {
+      if (!this.$method.isLogin()) {
+        this.$navTo.togo("/pages4/login/login");
+      } else {
+        this.$navTo.togo("/pages2/plan/index", {});
+      }
+    },
+    async init() {
+      if (!this.$method.isLogin()) {
+        //未登录
+        this.date_num = [];
+        this.workList = [];
+        this.planGoodsList = [];
+        this.initDay();
+      } else {
+        this.date_num = [];
+        this.workList = [];
+        this.planGoodsList = [];
+        await this.userPlanSeven();
+        await this.getUserSubscribeRecentExam();
+      }
+    },
+    getMonDate() {
+      var d = new Date(),
+        day = d.getDay(),
+        date = d.getDate();
+      if (day == 0) return d;
+      else d.setDate(date - day);
+      return d;
+    },
+    initDay() {
+      // d是当前星期一的日期对象
+      var d = this.getMonDate();
+      var arr = [];
+      let date = new Date();
+      let num = date.getDate();
+      this.date_num = [];
+      for (var i = 0; i < 7; i++) {
+        let item = { date: d.getDate() };
+        item.color = 0;
+        if (d.getDate() == num) {
+          item.color = 3;
+        }
+        this.date_num.push(item);
+        d.setDate(d.getDate() + 1);
+      }
+    },
+    dealRL(calendarStudyVo) {
+      let self = this;
+      self.date_num = [];
+      let date = new Date();
+      let num = date.getDate();
+      let month = date.getMonth() + 1;
+      let list = [];
+      for (let j = 0; j < calendarStudyVo.length; j++) {
+        let item = calendarStudyVo[j];
+        list = item.dayStudyList;
+        for (let i = 0; i < list.length; i++) {
+          let item = list[i];
+          item.color = 0;
+          if (item.date == num) {
+            item.color = 3;
+          }
+          if (item.perform == 1) {
+            item.color = 1;
+          }
+          if (item.perform == 2) {
+            item.color = 2;
+          }
+          item.note = item.studyCourseKnob;
+          if (item.note > 0) {
+            item.dot = true;
+          }
+          self.date_num.push(item);
+        }
+      }
+    },
+    userPlanSeven() {
+      return new Promise((resolve) => {
+        let self = this;
+        this.$api.userPlanSeven().then((result) => {
+          if (result.data.data && result.data.data.length > 0) {
+            self.workList = result.data.data;
+            self.planGoodsList = self.workList[0].goodsVos;
+            if (self.planGoodsList != null && self.planGoodsList.length > 0) {
+              self.goodsItem = self.planGoodsList[0];
+            }
+            self.dealRL(result.data.data[0].calendarStudyVo);
+          } else {
+            self.initDay();
+          }
+
+          resolve();
+        });
+      });
+    },
+    swiperChange(e) {
+      this.current = e.detail.current;
+    },
+    tab(e) {
+      this.tabCurrent = e;
+      this.tabNum = e;
+      this.paramList[this.tabNum].pageNum = 1;
+      if (e == 0) {
+        this.list1 = [];
+      } else {
+        this.list2 = [];
+      }
+      this.courseLists();
+      // let recommendId = e == 0 ? this.courseId : this.bankId
+      // this.getSubjectList(recommendId)
+    },
+    updateHomePlan() {
+      this.$refs.home.init();
+    },
+    beforeSwitch(index) {
+      let that = this;
+      if (index == 1) {
+        this.isClick1 = true;
+      }
+      if (index == this.current) {
+        return false;
+      }
+      if (!this.$method.isLogin()) {
+        if (index == 0 || index == 1) {
+          return true;
+        } else {
+          this.$navTo.togo("/pages4/login/login");
+          return false;
+        }
+      } else {
+        if (index == 2) {
+          this.$refs.refMy.init();
+        }
+        return true;
+      }
+    },
+  },
 };
 </script>
 
 <style>
 page {
-	background: #eaeef1;
+  background: #eaeef1;
 }
 </style>
 <style lang="scss" scoped>
 @mixin threeDot {
-	overflow: hidden;
-	text-overflow:ellipsis; 
-	white-space: nowrap;
+  overflow: hidden;
+  text-overflow: ellipsis;
+  white-space: nowrap;
 }
 .index {
-	.navbar {
-		/deep/ .u-navbar-inner {
-			margin-right:0!important;
-		}
-		
-		.slot-wrap {
-			width:100%;
-			display: flex;
-			align-items: center;
-			justify-content: center;
-			
-			image {
-				width: 178rpx;
-				height: 31rpx;
-			}
-		}
-	}
-	
-	
-	.swiper {
-		width:100%;
-		position: relative;
-		
-		.dots {
-			position:absolute;
-			left:0;
-			bottom:8rpx;
-			width:100%;
-			display: flex;
-			justify-content: center;
-			
-			.dot {
-				width: 8rpx;
-				height: 8rpx;
-				background: #FFFFFF;
-				border-radius: 50%;
-				margin:0 4rpx;
-				transition: all 0.3s;
-				
-				&.active {
-					width: 24rpx;
-					height: 8rpx;
-					background: #007AFF;
-					border-radius: 4rpx;
-				}
-			}
-		}
-		image {
-			width:100%;
-		}
-		
+  .navbar {
+    /deep/ .u-navbar-inner {
+      margin-right: 0 !important;
+    }
 
-	}
-	
-	.content {
-		overflow: hidden;
-		padding:0 16rpx;
-		background: rgba(234, 238, 241, 1);
-		padding-bottom: 100rpx;
-		.notice {
-			background:#fff;
-			border-radius: 16rpx;
-			margin-top:32rpx;
-			overflow: hidden;
-			&__content {
-				padding:0 8rpx;
-				height: 56rpx;
-				background: linear-gradient(-90deg, rgba(255, 209, 0, 0.3), rgba(255, 255, 255, 0.3));
-				display: flex;
-				align-items: center;
-			}
-			
-			.icon {
-				width: 40rpx;
-				height: 40rpx;
-				margin-right: 8rpx;
-			}
-			
-			.text {
-				flex:1;
-				font-size: 24rpx;
-				color: #333333;
-				position: relative;
-			}
-			
-			.btn {
-				font-size: 24rpx;
-				color: #007AFF;
-			}
-		}
-		
-		.date-list {
-			margin-top:16rpx;
-			width: 718rpx;
-			height: 330rpx;
-			background: #FFFFFF;
-			border-radius: 16rpx;
-			padding:18rpx 27rpx;
-			
-			.title {
-				font-size: 30rpx;
-				font-weight: bold;
-				color: #007AFF;
-			}
-			
-			.list {
-				margin-top:40rpx;
-				display: flex;
-				justify-content: space-around;
-				
-				.item {
-					.top {
-						text-align: center;
-						font-size: 26rpx;
-						color: rgba(102, 102, 102, 0.6);
-					}
-					
-					.bottom {
-						text-align: center;
-						line-height: 48rpx;
-						margin-top:30rpx;
-						width: 48rpx;
-						height: 48rpx;
-						border-radius: 50%;
-						color:rgba(51, 51, 51, 1);
-						font-size: 26rpx;
-						position:relative;
-						
-						&.red {
-							color:#FF3B30;
-						}
-						
-						&.green {
-							color:#36C75A;
-						}
-						
-						&.blue {
-							background: #007AFF;
-							color:#fff;
-						}
-						
-						.note {
-							width: 30rpx;
-							height: 30rpx;
-							border: 2rpx solid #FF9500;
-							border-radius: 50%;
-							position:absolute;
-							top:-20rpx;
-							right:-20rpx;
-							line-height: 28rpx;
-							text-align: center;
-							color:#FF9500;
-							font-size: 26rpx;
-						}
-						
-						.point {
-							margin:0 auto;
-							width: 8rpx;
-							height: 8rpx;
-							background: #FF9500;
-							border-radius: 50%;
-						}
-					}
-				}
-			}
-			
-			.btns {
-				margin-top:50rpx;
-				display: flex;
-				align-items: center;
-				justify-content: center;
-				
-				.left,.right {
-					width: 40rpx;
-					height: 40rpx;
-				}
-				
-				.center{
-					width: 440rpx;
-					height: 56rpx;
-					background: #FFFFFF;
-					box-shadow: 0px 0px 9rpx 1rpx rgba(47, 67, 121, 0.1);
-					border-radius: 28rpx;
-					color:rgba(255, 149, 0, 1);
-					line-height: 56rpx;
-					text-align: center;
-					font-size: 30rpx;
-					margin:0 30rpx;
-				}
-			}
-		}
-		
-		.tabs {
-			width: 100%;
-			height: 78rpx;
-			display: flex;
-			align-items: center;
-			justify-content: space-between;
-			background-color: #F2F7FF;
-			border-radius: 38rpx;
-			margin: 34rpx 0rpx 24rpx 0rpx;
-			padding: 0rpx 5rpx;
-			.tab_item {
-				width: 345rpx;
-				height: 65rpx;
-				line-height: 65rpx;
-				font-size: 28rpx;
-				font-weight: bold;
-				border-radius: 32rpx;
-				text-align: center;
-				color: #333;
-				&.nactive {
-					color: #fff;
-					background-color: #3577E8;
-				}
-			}
-		}
-		
-		.course-list {
-			box-shadow: 0px 10rpx 9rpx 1rpx rgba(165, 196, 239, 0.1);			
-			.list_item {
-                padding: 24rpx;
-				// height: 278rpx;
-				background: #FFFFFF;
-				box-shadow: 0rpx 0rpx 20rpx 1rpx rgba(1,99,235,0.1000);
-				border-radius: 24rpx;
-                background:#fff;
-                margin-bottom: 32rpx;
-				display: flex;
-    			align-items: center;
-                .c_title {
-                    font-size: 32rpx;
-                    font-weight: bold;
-                    margin-bottom: 24rpx;
-                    font-weight: bold;
-					color: #222222;
+    .slot-wrap {
+      width: 100%;
+      display: flex;
+      align-items: center;
+      justify-content: center;
+
+      image {
+        width: 178rpx;
+        height: 31rpx;
+      }
+    }
+  }
+
+  .swiper {
+    width: 100%;
+    position: relative;
+
+    .dots {
+      position: absolute;
+      left: 0;
+      bottom: 8rpx;
+      width: 100%;
+      display: flex;
+      justify-content: center;
+
+      .dot {
+        width: 8rpx;
+        height: 8rpx;
+        background: #ffffff;
+        border-radius: 50%;
+        margin: 0 4rpx;
+        transition: all 0.3s;
+
+        &.active {
+          width: 24rpx;
+          height: 8rpx;
+          background: #007aff;
+          border-radius: 4rpx;
+        }
+      }
+    }
+    image {
+      width: 100%;
+    }
+  }
+
+  .content {
+    overflow: hidden;
+    padding: 0 16rpx;
+    background: rgba(234, 238, 241, 1);
+    padding-bottom: 100rpx;
+    .notice {
+      background: #fff;
+      border-radius: 16rpx;
+      margin-top: 32rpx;
+      overflow: hidden;
+      &__content {
+        padding: 0 8rpx;
+        height: 56rpx;
+        background: linear-gradient(
+          -90deg,
+          rgba(255, 209, 0, 0.3),
+          rgba(255, 255, 255, 0.3)
+        );
+        display: flex;
+        align-items: center;
+      }
+
+      .icon {
+        width: 40rpx;
+        height: 40rpx;
+        margin-right: 8rpx;
+      }
+
+      .text {
+        flex: 1;
+        font-size: 24rpx;
+        color: #333333;
+        position: relative;
+      }
+
+      .btn {
+        font-size: 24rpx;
+        color: #007aff;
+      }
+    }
+
+    .date-list {
+      margin-top: 16rpx;
+      width: 718rpx;
+      height: 330rpx;
+      background: #ffffff;
+      border-radius: 16rpx;
+      padding: 18rpx 27rpx;
+
+      .title {
+        font-size: 30rpx;
+        font-weight: bold;
+        color: #007aff;
+      }
+
+      .list {
+        margin-top: 40rpx;
+        display: flex;
+        justify-content: space-around;
+
+        .item {
+          .top {
+            text-align: center;
+            font-size: 26rpx;
+            color: rgba(102, 102, 102, 0.6);
+          }
+
+          .bottom {
+            text-align: center;
+            line-height: 48rpx;
+            margin-top: 30rpx;
+            width: 48rpx;
+            height: 48rpx;
+            border-radius: 50%;
+            color: rgba(51, 51, 51, 1);
+            font-size: 26rpx;
+            position: relative;
+
+            &.red {
+              color: #ff3b30;
+            }
+
+            &.green {
+              color: #36c75a;
+            }
+
+            &.blue {
+              background: #007aff;
+              color: #fff;
+            }
+
+            .note {
+              width: 30rpx;
+              height: 30rpx;
+              border: 2rpx solid #ff9500;
+              border-radius: 50%;
+              position: absolute;
+              top: -20rpx;
+              right: -20rpx;
+              line-height: 28rpx;
+              text-align: center;
+              color: #ff9500;
+              font-size: 26rpx;
+            }
+
+            .point {
+              margin: 0 auto;
+              width: 8rpx;
+              height: 8rpx;
+              background: #ff9500;
+              border-radius: 50%;
+            }
+          }
+        }
+      }
+
+      .btns {
+        margin-top: 50rpx;
+        display: flex;
+        align-items: center;
+        justify-content: center;
+
+        .left,
+        .right {
+          width: 40rpx;
+          height: 40rpx;
+        }
+
+        .center {
+          width: 440rpx;
+          height: 56rpx;
+          background: #ffffff;
+          box-shadow: 0px 0px 9rpx 1rpx rgba(47, 67, 121, 0.1);
+          border-radius: 28rpx;
+          color: rgba(255, 149, 0, 1);
+          line-height: 56rpx;
+          text-align: center;
+          font-size: 30rpx;
+          margin: 0 30rpx;
+        }
+      }
+    }
+
+    .tabs {
+      width: 100%;
+      height: 78rpx;
+      display: flex;
+      align-items: center;
+      justify-content: space-between;
+      background-color: #f2f7ff;
+      border-radius: 38rpx;
+      margin: 34rpx 0rpx 24rpx 0rpx;
+      padding: 0rpx 5rpx;
+      .tab_item {
+        width: 345rpx;
+        height: 65rpx;
+        line-height: 65rpx;
+        font-size: 28rpx;
+        font-weight: bold;
+        border-radius: 32rpx;
+        text-align: center;
+        color: #333;
+        &.nactive {
+          color: #fff;
+          background-color: #3577e8;
+        }
+      }
+    }
+
+    .course-list {
+      box-shadow: 0px 10rpx 9rpx 1rpx rgba(165, 196, 239, 0.1);
+      .list_item {
+        padding: 24rpx;
+        // height: 278rpx;
+        background: #ffffff;
+        box-shadow: 0rpx 0rpx 20rpx 1rpx rgba(1, 99, 235, 0.1);
+        border-radius: 24rpx;
+        background: #fff;
+        margin-bottom: 32rpx;
+        display: flex;
+        align-items: center;
+        .c_title {
+          font-size: 32rpx;
+          font-weight: bold;
+          margin-bottom: 24rpx;
+          font-weight: bold;
+          color: #222222;
+        }
+        .c_downs {
+          display: flex;
+        }
+        .img {
+          position: relative;
+          margin-right: 24rpx;
+          border-radius: 16rpx;
+          overflow: hidden;
+          width: 204rpx;
+          height: 120rpx;
+          image {
+            width: 100%;
+            height: 100%;
+          }
+
+          .time {
+            position: absolute;
+            bottom: 0;
+            right: 0;
+            width: 80rpx;
+            height: 32rpx;
+            background: rgba(1, 25, 45, 0.4);
+            color: #fff;
+            text-align: center;
+            line-height: 32rpx;
+            font-size: 24rpx;
+            border-radius: 10rpx 0px 10rpx 0px;
+          }
+        }
+
+        .text {
+          width: 440rpx;
+          position: relative;
+          display: flex;
+          flex-direction: column;
+          justify-content: space-between;
+          height: 120rpx;
+          .joins {
+            .people {
+              width: 160rpx;
+              font-size: 20rpx;
+              color: #999999;
+              padding: 0rpx 8rpx;
+              text-align: center;
+              height: 36rpx;
+              line-height: 36rpx;
+              background: #f6f7fb;
+              border-radius: 4px;
+            }
+          }
+          .desc {
+            margin-top: 10rpx;
+            display: flex;
+            align-items: center;
+            justify-content: space-between;
+            width: 100%;
+            .left {
+              flex: 1;
+              color: #333;
+              font-size: 26rpx;
+              .mon_t {
+                display: flex;
+                font-weight: bold;
+                color: #fc3f3f;
+                font-size: 36rpx;
+                view::before {
+                  content: "¥";
+                  font-size: 24rpx;
+                  font-weight: bold;
                 }
-				.c_downs {
-					display: flex;
-				}
-				.img {
-					position:relative;
-					margin-right: 24rpx;
-					border-radius: 16rpx ;
-					overflow: hidden;
-					width: 204rpx;
-					height: 120rpx;
-					image {
-						width:100%;
-						height:100%;
-					}
-					
-					.time {
-						position:absolute;
-						bottom:0;
-						right:0;
-						width: 80rpx;
-						height: 32rpx;
-						background: rgba(1, 25, 45, 0.4);
-						color:#fff;
-						text-align: center;
-						line-height: 32rpx;
-						font-size: 24rpx;
-						border-radius: 10rpx 0px 10rpx 0px;
-					}
-				}
-				
-				.text {
-					width: 440rpx;
-					position: relative;
-					display: flex;
-					flex-direction: column;
-					justify-content: space-between;
-					height: 120rpx;
-					.joins {
-						.people {
-							width: 160rpx;
-							font-size: 20rpx;
-							color: #999999;
-							padding: 0rpx 8rpx;
-							text-align: center;
-							height: 36rpx;
-							line-height: 36rpx;
-							background: #F6F7FB;
-							border-radius: 4px;
-						}
-						
-					}
-					.desc {
-						margin-top: 10rpx;
-						display: flex;
-						align-items: center;
-    					justify-content: space-between;
-						width: 100%;
-						.left {
-							flex:1;
-							color:#333;
-							font-size: 26rpx;
-                            .mon_t {
-                                font-weight: bold;
-								color: #FC3F3F;
-								font-size: 36rpx;
-                            }
-							.free {
-								font-size: 24rpx;
-							}
-							.sale {
-								color: #999999;
-								font-size: 24rpx;
-								margin-left: 8rpx;
-							}
-							.price_line {
-								color: #999999;
-								font-size: 24rpx;
-								text-decoration:line-through;
-								font-weight: 400;
-							}
-						}
-						
-						.right {
-							font-size: 24rpx;
-							font-weight: bold;
-                            .regiser_row {
-                                width: 144rpx;
-                                height: 52rpx;
-                                line-height: 52rpx;
-                                text-align: center;
-                                border-radius: 16rpx;
-                                background-color: #FC3F3F;
-                                color: #fff;
-								font-weight: 500;
-								font-size: 26rpx;
-                            }
-						}
-					}
-				}
-			}
-		}
+              }
+              .free {
+                font-size: 24rpx;
+              }
+              .sale {
+                color: #999999;
+                font-size: 24rpx;
+                margin-left: 8rpx;
+              }
+              .price_line {
+                color: #999999;
+                font-size: 24rpx;
+                text-decoration: line-through;
+                font-weight: 400;
+              }
+            }
+
+            .right {
+              font-size: 24rpx;
+              font-weight: bold;
+              .regiser_row {
+                width: 144rpx;
+                height: 52rpx;
+                line-height: 52rpx;
+                text-align: center;
+                border-radius: 16rpx;
+                background-color: #fc3f3f;
+                color: #fff;
+                font-weight: 500;
+                font-size: 26rpx;
+              }
+            }
+          }
+        }
+      }
+    }
+
+    .filters {
+      width: 100%;
+      padding: 0rpx 16rpx;
+      margin-bottom: 32rpx;
+      display: flex;
+      align-items: center;
+      .scroll_view_H {
+        width: 100%;
+        overflow: hidden;
+        white-space: nowrap;
+      }
+      .filter_item {
+        display: inline-block;
+        margin-right: 16rpx;
+        .name {
+          font-size: 24rpx;
+          color: #666666;
+          padding: 12rpx 16rpx;
+          height: 56rpx;
+          text-align: center;
+          background: #ffffff;
+          border-radius: 8rpx;
+          &.nactive {
+            color: #3f8dfd;
+          }
+        }
+      }
+    }
+  }
+
+  .my-list {
+    margin: 32rpx 0;
+    display: flex;
+    justify-content: space-between;
+    &__item {
+      width: 351rpx;
+      height: 96rpx;
+      position: relative;
+      padding: 25rpx 0 0 25rpx;
+      font-size: 32rpx;
 
-		.filters {
-			width: 100%;
-			padding: 0rpx 16rpx;
-			margin-bottom: 32rpx;
-			display: flex;
-			align-items: center;
-			.scroll_view_H {
-				width: 100%;
-				overflow: hidden;
-				white-space: nowrap;
-			}
-			.filter_item {
-				display: inline-block;
-				margin-right: 16rpx;
-				.name {
-					font-size: 24rpx;
-					color: #666666;
-					padding: 12rpx 16rpx;
-					height: 56rpx;
-					text-align: center;
-					background: #FFFFFF;
-					border-radius: 8rpx;
-					&.nactive {
-						color: #3F8DFD;
-					}
-				}
-			}
-		}
-	}
+      &--bank {
+        text {
+          position: relative;
+          z-index: 2;
+          color: #00998a;
+        }
+      }
 
-	
-	.my-list {
-		margin:32rpx 0;
-		display:flex;
-		justify-content: space-between;
-		&__item {
-			width:351rpx;
-			height:96rpx;
-			position:relative;
-			padding:25rpx 0 0 25rpx;
-				font-size: 32rpx;
-			
-			&--bank {
-				text {
-					position: relative;
-					z-index: 2;
-					color:#00998A;
-				}
-				
-			}
-			
-			&--course {
-				text {
-					position: relative;
-					z-index: 2;
-					color:#0062D9;
-				}
-			}
-			
-			image {
-				width:100%;
-				height:100%;
-				left:0;
-				top:0;
-				position:absolute;
-				z-index: 1;
-			}
-		}
-	}
+      &--course {
+        text {
+          position: relative;
+          z-index: 2;
+          color: #0062d9;
+        }
+      }
+
+      image {
+        width: 100%;
+        height: 100%;
+        left: 0;
+        top: 0;
+        position: absolute;
+        z-index: 1;
+      }
+    }
+  }
 }
 .date_dot {
-	width: 6rpx;
-	height: 6rpx;
-	background: #ffcc00;
-	border-radius: 50%;
-	margin: 0 auto;
+  width: 6rpx;
+  height: 6rpx;
+  background: #ffcc00;
+  border-radius: 50%;
+  margin: 0 auto;
 }
 .date_note {
-	border-radius: 50%;
-	width: 29rpx;
-	height: 29rpx;
-	border: 1px solid #ffcc00;
-	font-size: 18rpx;
-	color: #ffcc00;
-	text-align: center;
-	display: inline-block;
-	position: absolute;
-	top: -19rpx;
-	right: 9rpx;
+  border-radius: 50%;
+  width: 29rpx;
+  height: 29rpx;
+  border: 1px solid #ffcc00;
+  font-size: 18rpx;
+  color: #ffcc00;
+  text-align: center;
+  display: inline-block;
+  position: absolute;
+  top: -19rpx;
+  right: 9rpx;
 }
 .circle_num {
-	border-radius: 50%;
-	width: 29rpx;
-	height: 29rpx;
-	border: 1px solid #ffcc00;
-	font-size: 18rpx;
-	color: #ffcc00;
-	text-align: center;
-	display: inline-block;
-	margin: 5rpx;
+  border-radius: 50%;
+  width: 29rpx;
+  height: 29rpx;
+  border: 1px solid #ffcc00;
+  font-size: 18rpx;
+  color: #ffcc00;
+  text-align: center;
+  display: inline-block;
+  margin: 5rpx;
 }
 .date_num {
-	width: 14%;
-	text-align: center;
-	position: relative;
-	display: inline-block;
-	margin-top: 20rpx;
-	.items {
-		width: 100%;
-	}
+  width: 14%;
+  text-align: center;
+  position: relative;
+  display: inline-block;
+  margin-top: 20rpx;
+  .items {
+    width: 100%;
+  }
 }
 .course_title {
-	color: #2f4379;
-	box-shadow: 0rpx 0rpx 9rpx 1rpx rgba(47, 67, 121, 0.1);
-	border-radius: 28rpx;
-	width: 100%;
-	height: 48rpx;
-	line-height: 48rpx;
-	overflow: hidden;
-	text-overflow:ellipsis; 
-	white-space: nowrap;
+  color: #2f4379;
+  box-shadow: 0rpx 0rpx 9rpx 1rpx rgba(47, 67, 121, 0.1);
+  border-radius: 28rpx;
+  width: 100%;
+  height: 48rpx;
+  line-height: 48rpx;
+  overflow: hidden;
+  text-overflow: ellipsis;
+  white-space: nowrap;
 }
 .arr-icon {
-	width: 40rpx;
-	height: 40rpx;
+  width: 40rpx;
+  height: 40rpx;
 }
 .date_num_color0 {
-	color: #32467b;
+  color: #32467b;
 }
 .date_num_color1 {
-	color: #34c759;
+  color: #34c759;
 }
 .date_num_color2 {
-	color: #ff3b30;
+  color: #ff3b30;
 }
 .date_num_color3 {
-	color: #ffffff;
-	background-color: #ffcc00;
-	border-radius: 50%;
-	width: 40rpx;
-	height: 40rpx;
-	display: inline-block;
+  color: #ffffff;
+  background-color: #ffcc00;
+  border-radius: 50%;
+  width: 40rpx;
+  height: 40rpx;
+  display: inline-block;
 }
 .card_date {
-	width: 14%;
-	text-align: center;
-	color: #7f8caf;
+  width: 14%;
+  text-align: center;
+  color: #7f8caf;
 }
 
 .calendar_card {
-	width: 100%;
-	background: #ffffff;
-	box-shadow: 0rpx 0rpx 16rpx 4rpx rgba(47, 67, 121, 0.1);
-	border-radius: 22rpx;
-	margin-top: 16rpx;
-	padding-bottom: 15rpx;
+  width: 100%;
+  background: #ffffff;
+  box-shadow: 0rpx 0rpx 16rpx 4rpx rgba(47, 67, 121, 0.1);
+  border-radius: 22rpx;
+  margin-top: 16rpx;
+  padding-bottom: 15rpx;
 }
 .calendar_card .card_box {
-	height: 60rpx;
-	line-height: 60rpx;
-	margin-left: 20rpx;
+  height: 60rpx;
+  line-height: 60rpx;
+  margin-left: 20rpx;
 }
 .calendar_card .t1 {
-	color: #007AFF;
-	font-size: 24rpx;
+  color: #007aff;
+  font-size: 24rpx;
 }
 .img_more {
-	width: 26rpx;
-	height: 26rpx;
+  width: 26rpx;
+  height: 26rpx;
 }
 .flex-d {
-	display: flex;
-	flex-direction: column;
-	justify-content: space-between;
-	height: 100%;
+  display: flex;
+  flex-direction: column;
+  justify-content: space-between;
+  height: 100%;
 }
 .contentZ {
-	flex: 1;
-	overflow-y: auto;
-	padding-left: 35rpx;
-	display: flex;
-	justify-content: space-around;
+  flex: 1;
+  overflow-y: auto;
+  padding-left: 35rpx;
+  display: flex;
+  justify-content: space-around;
 }
 .contentZ::-webkit-scrollbar {
-	display: none;
+  display: none;
 }
 .fots {
-	height: 100rpx;
-	display: flex;
-	align-items: center;
-	justify-content: space-around;
-	border-top: 1rpx solid #eee;
+  height: 100rpx;
+  display: flex;
+  align-items: center;
+  justify-content: space-around;
+  border-top: 1rpx solid #eee;
 }
 .leftBtns {
-	font-size: 30rpx;
-	color: #32467b;
-	font-weight: 500;
+  font-size: 30rpx;
+  color: #32467b;
+  font-weight: 500;
 }
 .right_Btns {
-	font-size: 30rpx;
-	color: #fff;
-	background-color: #32467b;
-	border-radius: 24rpx;
-	height: 60rpx;
-	line-height: 60rpx;
-	text-align: center;
-	padding: 0rpx 23rpx;
-	box-shadow: 0rpx 0rpx 16rpx 4rpx rgba(145, 156, 178, 0.1);
+  font-size: 30rpx;
+  color: #fff;
+  background-color: #32467b;
+  border-radius: 24rpx;
+  height: 60rpx;
+  line-height: 60rpx;
+  text-align: center;
+  padding: 0rpx 23rpx;
+  box-shadow: 0rpx 0rpx 16rpx 4rpx rgba(145, 156, 178, 0.1);
 }
 .lzs {
-	width: 31%;
-	margin: 0rpx 1%;
-	max-width: 31%;
+  width: 31%;
+  margin: 0rpx 1%;
+  max-width: 31%;
 }
-.tylsz{
-	margin-top: 23rpx;
-	color: #666;
-	font-weight: 400;
-	font-size: 24rpx;
+.tylsz {
+  margin-top: 23rpx;
+  color: #666;
+  font-weight: 400;
+  font-size: 24rpx;
 }
-.tylsz:first-child{
-	text-align: center;
+.tylsz:first-child {
+  text-align: center;
 }
-.activeStys{
-	font-weight: bold;
-	color: #32467B;
+.activeStys {
+  font-weight: bold;
+  color: #32467b;
 }
 .officialsss {
-	position: fixed;
-	left: 0;
-	bottom: 100rpx;
-	width: 100%;
+  position: fixed;
+  left: 0;
+  bottom: 100rpx;
+  width: 100%;
 }
 .officials {
-	width:100%;
-	height: 104rpx;
-	position:fixed;
-	bottom: 0;
-	left: 0;
-	z-index: 999;
-	display: flex;
-	align-items: center;
-	justify-content: center;
+  width: 100%;
+  height: 104rpx;
+  position: fixed;
+  bottom: 0;
+  left: 0;
+  z-index: 999;
+  display: flex;
+  align-items: center;
+  justify-content: center;
 }
 .weixin_official_account {
-	position: fixed;
-	bottom: 0;
-	left: 0;
-	display: flex;
-	align-items: center;
-	// justify-content: space-between;
-	width: 718rpx;
-	height: 104rpx;
-	padding: 0 32rpx;
-	margin-left: 16rpx;
-	background: #3A3F54;
-	border-radius: 16rpx;
-	.off_logo {
-		width: 48rpx;
-		height: 48rpx;
-		margin-right: 24rpx;
-	}
-	.one {
-		color: #fff;
-		font-size: 24rpx;
-		font-weight: 500;
-	}
-	.two {
-		color: #BCBEC7;
-		font-size: 20rpx;
-	}
-	.btn {
-		position: relative;
-		top: 0;
-    	left: 35rpx;
-		width: 128rpx;
-		height: 56rpx;
-		line-height: 56rpx;
-		padding: 0;
-		background: linear-gradient(274deg, #408BF6 0%, #40B4F6 100%);
-		border-radius: 156rpx;
-		overflow: hidden;
-		text-align: center;
-		font-size: 24rpx;
-		color: #fff;
+  position: fixed;
+  bottom: 0;
+  left: 0;
+  display: flex;
+  align-items: center;
+  // justify-content: space-between;
+  width: 718rpx;
+  height: 104rpx;
+  padding: 0 32rpx;
+  margin-left: 16rpx;
+  background: #3a3f54;
+  border-radius: 16rpx;
+  .off_logo {
+    width: 48rpx;
+    height: 48rpx;
+    margin-right: 24rpx;
+  }
+  .one {
+    color: #fff;
+    font-size: 24rpx;
+    font-weight: 500;
+  }
+  .two {
+    color: #bcbec7;
+    font-size: 20rpx;
+  }
+  .btn {
+    position: relative;
+    top: 0;
+    left: 35rpx;
+    width: 128rpx;
+    height: 56rpx;
+    line-height: 56rpx;
+    padding: 0;
+    background: linear-gradient(274deg, #408bf6 0%, #40b4f6 100%);
+    border-radius: 156rpx;
+    overflow: hidden;
+    text-align: center;
+    font-size: 24rpx;
+    color: #fff;
 
-		.official-account {
-			position: absolute;
-			z-index: 1000;
-			right: -9px;
-			top: -38px;
-			opacity: 0;
-		}
-	}
-	.close_icon {
-		width: 40rpx;
-		height: 40rpx;
-		background: #FFFFFF;
-		opacity: 0.2;
-		display: flex;
-		align-items: center;
-		position: absolute;
-		top: 0;
-		right: 0;
-		color: #fff;
-		border-radius: 0rpx 16rpx;
-	}
-	.icon-close {
-		display: flex;
-		align-items: center;
-		justify-content: center;
-		width: 50rpx;
-		height: 68rpx;
-		font-size: 22rpx;
-		color: #7B8284;
-	}
+    .official-account {
+      position: absolute;
+      z-index: 1000;
+      right: -9px;
+      top: -38px;
+      opacity: 0;
+    }
+  }
+  .close_icon {
+    width: 40rpx;
+    height: 40rpx;
+    background: #ffffff;
+    opacity: 0.2;
+    display: flex;
+    align-items: center;
+    position: absolute;
+    top: 0;
+    right: 0;
+    color: #fff;
+    border-radius: 0rpx 16rpx;
+  }
+  .icon-close {
+    display: flex;
+    align-items: center;
+    justify-content: center;
+    width: 50rpx;
+    height: 68rpx;
+    font-size: 22rpx;
+    color: #7b8284;
+  }
 }
-
 </style>

+ 25 - 0
pages2/bank/detail.vue

@@ -229,6 +229,7 @@ export default {
 		},
 	},
 	onLoad(option) {
+		console.log('题库option:', option);
 		if (option.scene) {
 			// scene 生成二维码扫码进来的
 			let optObj = {}
@@ -238,10 +239,21 @@ export default {
 			}
 			this.id = optObj.id
 			uni.setStorageSync('newUser_sc', optObj.sc)
+			uni.setStorageSync("shareActivityCode", optObj.sac)
+			if (optObj.sac && this.$method.isLogin()) {
+				this.editShareActivityCode()
+			}
 		} else {
 			// 小程序正常跳转的
 			// this.id => goodsId
 			this.id = option.id
+			if (option.sac) {
+				uni.setStorageSync("shareActivityCode", option.sac)
+				if (this.$method.isLogin()) {
+					//已登录
+					this.editShareActivityCode()
+				}
+			}
 		}
 		this.getDetail();
 		this.goodsBankList();
@@ -269,6 +281,19 @@ export default {
 	},
 	
 	methods: {
+		// 修改用户活动邀请码
+		editShareActivityCode() {
+			console.log('修改用户活动邀请码')
+			this.$http({
+				url: '/app/user/edit/shareActivityCode',
+				method: "post",
+				data: {
+					shareActivityCode: uni.getStorageSync("shareActivityCode")
+				}
+			}).then((res) => {
+				if (res.data.code == 200) {}
+			})
+		},
 		toFixed(number) {
 			if(number) {
 				return number.toFixed(2)

+ 6 - 6
pages2/bank/questionBank.vue

@@ -93,7 +93,7 @@
             </view>
             <view v-if="bankType == 1 && bank.ques">
               <view class="pad_8 answer">
-                <view>正确答案:{{ ast[bank.ans - 1] }} </view>
+                <view>题目答案:{{ ast[bank.ans - 1] }} </view>
                 <view>我的答案:{{ ast[bank.ques - 1] }}</view>
               </view>
               <view class="pad_8 answerInfos">
@@ -173,7 +173,7 @@
             <view v-if="bankType == 1 && bank.ques">
               <view class="pad_8 answer">
                 <view>
-                  正确答案:
+                  题目答案:
                   <text
                     v-for="(ansItem, ansIndex) in bank.ans"
                     :key="ansIndex"
@@ -255,7 +255,7 @@
             </view>
             <view v-if="bankType == 1 && bank.ques">
               <view class="pad_8 answer">
-                <view>正确答案:{{ ast[bank.ans == 1 ? 0 : 1] }}</view>
+                <view>题目答案:{{ ast[bank.ans == 1 ? 0 : 1] }}</view>
                 <view>我的答案:{{ ast[bank.ques == 1 ? 0 : 1] }}</view>
               </view>
               <view class="pad_8 answerInfos">
@@ -438,7 +438,7 @@
 
                 <view v-if="bankType == 1 && bank.ques[ansIndex]">
                   <view class="pad_8 answer">
-                    <view>正确答案:{{ ast[bank.ans[ansIndex] - 1] }}</view>
+                    <view>题目答案:{{ ast[bank.ans[ansIndex] - 1] }}</view>
                     <view>我的答案:{{ ast[bank.ques[ansIndex] - 1] }}</view>
                   </view>
                   <view class="pad_8 answerInfos">
@@ -530,7 +530,7 @@
                 <view v-if="bankType == 1 && bank.ques[ansIndex]">
                   <view class="pad_8 answer">
                     <view>
-                      正确答案:
+                      题目答案:
                       <text
                         :key="ansItemIndex1"
                         v-for="(ansItem1, ansItemIndex1) in bank.ans[ansIndex]"
@@ -621,7 +621,7 @@
                 </view>
                 <view v-if="bankType == 1 && bank.ques[ansIndex]">
                   <view class="pad_8 answer">
-                    <view>正确答案:{{ ast[bank.ans[ansIndex] == 1 ? 0 : 1] }}</view>
+                    <view>题目答案:{{ ast[bank.ans[ansIndex] == 1 ? 0 : 1] }}</view>
                     <view>我的答案:{{ ast[bank.ques[ansIndex] == 1 ? 0 : 1] }}</view>
                   </view>
                   <view class="pad_8 answerInfos">

+ 6 - 6
pages2/bank/questionBankAllExplain.vue

@@ -81,7 +81,7 @@
             </view>
             <view>
               <view class="pad_8 answer">
-                <view>正确答案:{{ ast[bank.ans - 1] }}</view>
+                <view>题目答案:{{ ast[bank.ans - 1] }}</view>
                 <view>我的答案:{{ ast[bank.ques - 1] || "" }}</view>
               </view>
               <view class="pad_8 answerInfos">
@@ -153,7 +153,7 @@
             <view>
               <view class="pad_8 answer">
                 <view
-                  >正确答案:
+                  >题目答案:
                   <text
                     :key="ansItemIndex"
                     v-for="(ansItem, ansItemIndex) in bank.ans"
@@ -228,7 +228,7 @@
             </view>
             <view>
               <view class="pad_8 answer">
-                <view>正确答案:{{ ast[bank.ans] }}</view>
+                <view>题目答案:{{ ast[bank.ans] }}</view>
                 <view>我的答案:{{ ast[bank.ques] || "" }}</view>
               </view>
               <view class="pad_8 answerInfos">
@@ -351,7 +351,7 @@
                 </view>
                 <view>
                   <view class="pad_8 answer">
-                    <view>正确答案:{{ ast[bank.ans[ansIndex] - 1] }}</view>
+                    <view>题目答案:{{ ast[bank.ans[ansIndex] - 1] }}</view>
                     <view
                       >我的答案:{{ ast[bank.ques[ansIndex] - 1] || "" }}</view
                     >
@@ -428,7 +428,7 @@
                 <view>
                   <view class="pad_8 answer">
                     <view
-                      >正确答案:
+                      >题目答案:
                       <text
                         :key="ansItemIndex1"
                         v-for="(ansItem1, ansItemIndex1) in bank.ans[ansIndex]"
@@ -516,7 +516,7 @@
                 </view>
                 <view>
                   <view class="pad_8 answer">
-                    <view>正确答案:{{ ast[bank.ans[ansIndex]] }}</view>
+                    <view>题目答案:{{ ast[bank.ans[ansIndex]] }}</view>
                     <view>我的答案:{{ ast[bank.ques[ansIndex]] || "" }}</view>
                   </view>
                   <view class="pad_8 answerInfos">

+ 6 - 6
pages2/bank/questionBankContinue.vue

@@ -87,7 +87,7 @@
             </view>
             <view v-if="bank.ques">
               <view class="pad_8 answer">
-                <view>正确答案:{{ ast[bank.ans - 1] }}</view>
+                <view>题目答案:{{ ast[bank.ans - 1] }}</view>
                 <view>我的答案:{{ ast[bank.ques - 1] || "" }}</view>
               </view>
               <view class="pad_8 answerInfos">
@@ -165,7 +165,7 @@
             <view v-if="bank.ques">
               <view class="pad_8 answer">
                 <view
-                  >正确答案:
+                  >题目答案:
                   <text
                     :key="ansItemIndex"
                     v-for="(ansItem, ansItemIndex) in bank.ans"
@@ -241,7 +241,7 @@
             </view>
             <view v-if="bank.ques">
               <view class="pad_8 answer">
-                <view>正确答案:{{ ast[bank.ans == 1 ? 0 : 1] }}</view>
+                <view>题目答案:{{ ast[bank.ans == 1 ? 0 : 1] }}</view>
                 <view>我的答案:{{ ast[bank.ques == 1 ? 0 : 1] || "" }}</view>
               </view>
               <view class="pad_8 answerInfos">
@@ -414,7 +414,7 @@
                 </view>
                 <view v-if="bank.ques[ansIndex]">
                   <view class="pad_8 answer">
-                    <view>正确答案:{{ ast[bank.ans[ansIndex] - 1] }}</view>
+                    <view>题目答案:{{ ast[bank.ans[ansIndex] - 1] }}</view>
                     <view
                       >我的答案:{{ ast[bank.ques[ansIndex] - 1] || "" }}</view
                     >
@@ -504,7 +504,7 @@
                 <view v-if="bank.ques[ansIndex]">
                   <view class="pad_8 answer">
                     <view
-                      >正确答案:
+                      >题目答案:
                       <text
                         :key="ansItemIndex1"
                         v-for="(ansItem1, ansItemIndex1) in bank.ans[ansIndex]"
@@ -598,7 +598,7 @@
                 </view>
                 <view v-if="bank.ques[ansIndex]">
                   <view class="pad_8 answer">
-                    <view>正确答案:{{ ast[bank.ans[ansIndex] == 1 ? 0 : 1] }}</view>
+                    <view>题目答案:{{ ast[bank.ans[ansIndex] == 1 ? 0 : 1] }}</view>
                     <view>我的答案:{{ ast[bank.ques[ansIndex] == 1 ? 0 : 1] || "" }}</view>
                   </view>
                   <view class="pad_8 answerInfos">

+ 6 - 6
pages2/bank/questionBankExplain.vue

@@ -62,7 +62,7 @@
             </view>
             <view>
               <view class="pad_8 answer">
-                <view>正确答案:{{ ast[bank.ans - 1] }}</view>
+                <view>题目答案:{{ ast[bank.ans - 1] }}</view>
               </view>
               <view class="pad_8 answerInfos">
                 <view class="answerTitle">答案解析</view>
@@ -109,7 +109,7 @@
             <view>
               <view class="pad_8 answer">
                 <view
-                  >正确答案:
+                  >题目答案:
                   <text
                     :key="ansItemIndex"
                     v-for="(ansItem, ansItemIndex) in bank.ans"
@@ -157,7 +157,7 @@
             </view>
             <view>
               <view class="pad_8 answer">
-                <view>正确答案:{{ ast[bank.ans] }}</view>
+                <view>题目答案:{{ ast[bank.ans] }}</view>
               </view>
               <view class="pad_8 answerInfos">
                 <view class="answerTitle">答案解析</view>
@@ -243,7 +243,7 @@
                 </view>
                 <view>
                   <view class="pad_8 answer">
-                    <view>正确答案:{{ ast[bank.ans[ansIndex] - 1] }}</view>
+                    <view>题目答案:{{ ast[bank.ans[ansIndex] - 1] }}</view>
                   </view>
                   <view class="pad_8 answerInfos">
                     <view class="answerTitle">答案解析</view>
@@ -294,7 +294,7 @@
                 <view v-if="bank.ques[ansIndex]">
                   <view class="pad_8 answer">
                     <view
-                      >正确答案:
+                      >题目答案:
                       <text
                         :key="ansItemIndex1"
                         v-for="(ansItem1, ansItemIndex1) in bank.ans[ansIndex]"
@@ -354,7 +354,7 @@
                 </view>
                 <view>
                   <view class="pad_8 answer">
-                    <view>正确答案:{{ ast[bank.ans[ansIndex]] }}</view>
+                    <view>题目答案:{{ ast[bank.ans[ansIndex]] }}</view>
                   </view>
                   <view class="pad_8 answerInfos">
                     <view class="answerTitle">答案解析</view>

+ 6 - 6
pages2/bank/questionBankExplainDetail.vue

@@ -91,7 +91,7 @@
             </view>
             <view v-if="bank.ques">
               <view class="pad_8 answer">
-                <view>正确答案:{{ ast[bank.ans - 1] }}</view>
+                <view>题目答案:{{ ast[bank.ans - 1] }}</view>
                 <view v-if="!explain">我的答案:{{ ast[bank.ques - 1] }}</view>
               </view>
               <view class="pad_8 answerInfos">
@@ -168,7 +168,7 @@
             <view v-if="bank.ques">
               <view class="pad_8 answer">
                 <view
-                  >正确答案:
+                  >题目答案:
                   <text
                     :key="ansItemIndex"
                     v-for="(ansItem, ansItemIndex) in bank.ans"
@@ -244,7 +244,7 @@
             </view>
             <view v-if="bank.ques">
               <view class="pad_8 answer">
-                <view>正确答案:{{ ast[bank.ans == 1 ? 0 : 1] }}</view>
+                <view>题目答案:{{ ast[bank.ans == 1 ? 0 : 1] }}</view>
                 <view v-if="!explain">我的答案:{{ ast[bank.ques == 1 ? 0 : 1] }}</view>
               </view>
               <view class="pad_8 answerInfos">
@@ -415,7 +415,7 @@
                 </view>
                 <view v-if="bank.ques[ansIndex]">
                   <view class="pad_8 answer">
-                    <view>正确答案:{{ ast[bank.ans[ansIndex] - 1] }}</view>
+                    <view>题目答案:{{ ast[bank.ans[ansIndex] - 1] }}</view>
                     <view v-if="!explain"
                       >我的答案:{{ ast[bank.ques[ansIndex] - 1] }}</view
                     >
@@ -502,7 +502,7 @@
                 <view v-if="bank.ques[ansIndex]">
                   <view class="pad_8 answer">
                     <view
-                      >正确答案:
+                      >题目答案:
                       <text
                         :key="ansItemIndex1"
                         v-for="(ansItem1, ansItemIndex1) in bank.ans[ansIndex]"
@@ -591,7 +591,7 @@
                 </view>
                 <view v-if="bank.ques[ansIndex]">
                   <view class="pad_8 answer">
-                    <view>正确答案:{{ ast[bank.ans[ansIndex] == 1 ? 0 : 1] }}</view>
+                    <view>题目答案:{{ ast[bank.ans[ansIndex] == 1 ? 0 : 1] }}</view>
                     <view v-if="!explain"
                       >我的答案:{{ ast[bank.ques[ansIndex] == 1 ? 0 : 1] }}</view
                     >

+ 6 - 6
pages2/bank/questionBankTest.vue

@@ -81,7 +81,7 @@
             </view>
             <view v-if="bank.ques">
               <view class="pad_8 answer">
-                <view>正确答案:{{ ast[bank.ans - 1] }}</view>
+                <view>题目答案:{{ ast[bank.ans - 1] }}</view>
                 <view>我的答案:{{ ast[bank.ques - 1] }}</view>
               </view>
               <view class="pad_8 answerInfos">
@@ -159,7 +159,7 @@
             <view v-if="bank.ques">
               <view class="pad_8 answer">
                 <view
-                  >正确答案:
+                  >题目答案:
                   <text
                     :key="ansItemIndex"
                     v-for="(ansItem, ansItemIndex) in bank.ans"
@@ -237,7 +237,7 @@
             </view>
             <view v-if="bank.ques">
               <view class="pad_8 answer">
-                <view>正确答案:{{ ast[bank.ans == 1 ? 0 : 1] }}</view>
+                <view>题目答案:{{ ast[bank.ans == 1 ? 0 : 1] }}</view>
                 <view>我的答案:{{ ast[bank.ques == 1 ? 0 : 1] }}</view>
               </view>
               <view class="pad_8 answerInfos">
@@ -399,7 +399,7 @@
                 </view>
                 <view v-if="bank.ques[ansIndex]">
                   <view class="pad_8 answer">
-                    <view>正确答案:{{ ast[bank.ans[ansIndex] - 1] }}</view>
+                    <view>题目答案:{{ ast[bank.ans[ansIndex] - 1] }}</view>
                     <view>我的答案:{{ ast[bank.ques[ansIndex] - 1] }}</view>
                   </view>
                   <view class="pad_8 answerInfos">
@@ -487,7 +487,7 @@
                 <view v-if="bank.ques[ansIndex]">
                   <view class="pad_8 answer">
                     <view
-                      >正确答案:
+                      >题目答案:
                       <text
                         :key="ansItemIndex1"
                         v-for="(ansItem1, ansItemIndex1) in bank.ans[ansIndex]"
@@ -576,7 +576,7 @@
                 </view>
                 <view v-if="bank.ques[ansIndex]">
                   <view class="pad_8 answer">
-                    <view>正确答案:{{ ast[bank.ans[ansIndex] == 1 ? 0 : 1] }}</view>
+                    <view>题目答案:{{ ast[bank.ans[ansIndex] == 1 ? 0 : 1] }}</view>
                     <view>我的答案:{{ ast[bank.ques[ansIndex] == 1 ? 0 : 1] }}</view>
                   </view>
                   <view class="pad_8 answerInfos">

+ 6 - 6
pages2/bank/questionBankWrongExplain.vue

@@ -81,7 +81,7 @@
             </view>
             <view>
               <view class="pad_8 answer">
-                <view>正确答案:{{ ast[bank.ans - 1] }}</view>
+                <view>题目答案:{{ ast[bank.ans - 1] }}</view>
                 <view>我的答案:{{ ast[bank.ques - 1] || "" }}</view>
               </view>
               <view class="pad_8 answerInfos">
@@ -153,7 +153,7 @@
             <view>
               <view class="pad_8 answer">
                 <view
-                  >正确答案:
+                  >题目答案:
                   <text
                     :key="ansItemIndex"
                     v-for="(ansItem, ansItemIndex) in bank.ans"
@@ -228,7 +228,7 @@
             </view>
             <view>
               <view class="pad_8 answer">
-                <view>正确答案:{{ ast[bank.ans] }}</view>
+                <view>题目答案:{{ ast[bank.ans] }}</view>
                 <view>我的答案:{{ ast[bank.ques] || "" }}</view>
               </view>
               <view class="pad_8 answerInfos">
@@ -349,7 +349,7 @@
                   </view>
                 </view>
                 <view class="pad_8 answer">
-                  <view>正确答案:{{ ast[bank.ans[ansIndex] - 1] }}</view>
+                  <view>题目答案:{{ ast[bank.ans[ansIndex] - 1] }}</view>
                   <view
                     >我的答案:{{ ast[bank.ques[ansIndex] - 1] || "" }}</view
                   >
@@ -425,7 +425,7 @@
                 <view>
                   <view class="pad_8 answer">
                     <view
-                      >正确答案:
+                      >题目答案:
                       <text
                         :key="ansItemIndex1"
                         v-for="(ansItem1, ansItemIndex1) in bank.ans[ansIndex]"
@@ -512,7 +512,7 @@
                 </view>
                 <view>
                   <view class="pad_8 answer">
-                    <view>正确答案:{{ ast[bank.ans[ansIndex]] }}</view>
+                    <view>题目答案:{{ ast[bank.ans[ansIndex]] }}</view>
                     <view>我的答案:{{ ast[bank.ques[ansIndex]] || "" }}</view>
                   </view>
                   <view class="pad_8 answerInfos">

+ 6 - 6
pages2/class/questionBank.vue

@@ -76,7 +76,7 @@
             </view>
             <view v-if="bankType == 1 && bank.ques">
               <view class="pad_8 answer">
-                <view>正确答案:{{ ast[bank.ans - 1] }}</view>
+                <view>题目答案:{{ ast[bank.ans - 1] }}</view>
                 <view>我的答案:{{ ast[bank.ques - 1] }}</view>
               </view>
               <view class="pad_8 answerInfos">
@@ -138,7 +138,7 @@
             <view v-if="bankType == 1 && bank.ques">
               <view class="pad_8 answer">
                 <view>
-                  正确答案:
+                  题目答案:
                   <text
                     v-for="(ansItem, ansItemIndex) in bank.ans"
                     :key="ansItemIndex"
@@ -203,7 +203,7 @@
             </view>
             <view v-if="bankType == 1 && bank.ques">
               <view class="pad_8 answer">
-                <view>正确答案:{{ ast[bank.ans == 1 ? 0 : 1] }}</view>
+                <view>题目答案:{{ ast[bank.ans == 1 ? 0 : 1] }}</view>
                 <view>我的答案:{{ ast[bank.ques == 1 ? 0 : 1] }}</view>
               </view>
               <view class="pad_8 answerInfos">
@@ -367,7 +367,7 @@
                 </view>
                 <view v-if="bankType == 1 && bank.ques[ansIndex]">
                   <view class="pad_8 answer">
-                    <view>正确答案:{{ ast[bank.ans[ansIndex] - 1] }}</view>
+                    <view>题目答案:{{ ast[bank.ans[ansIndex] - 1] }}</view>
                     <view>我的答案:{{ ast[bank.ques[ansIndex] - 1] }}</view>
                   </view>
                   <view class="pad_8 answerInfos">
@@ -445,7 +445,7 @@
                 <view v-if="bankType == 1 && bank.ques[ansIndex]">
                   <view class="pad_8 answer">
                     <view>
-                      正确答案:
+                      题目答案:
                       <text
                         :key="ansItemIndex1"
                         v-for="(ansItem1, ansItemIndex1) in bank.ans[ansIndex]"
@@ -522,7 +522,7 @@
                 </view>
                 <view v-if="bankType == 1 && bank.ques[ansIndex]">
                   <view class="pad_8 answer">
-                    <view>正确答案:{{ ast[bank.ans[ansIndex] == 1 ? 0 : 1] }}</view>
+                    <view>题目答案:{{ ast[bank.ans[ansIndex] == 1 ? 0 : 1] }}</view>
                     <view>我的答案:{{ ast[bank.ques[ansIndex] == 1 ? 0 : 1] }}</view>
                   </view>
                   <view class="pad_8 answerInfos">

+ 0 - 196
pages2/register/bind.vue

@@ -1,196 +0,0 @@
-<template>
-	<view style="height: 100%;">
-		<image mode="widthFix" src="/pages2/static/login_bg.jpg" class="full_img"></image>
-		<u-navbar title="关联学员身份" :border-bottom="false" background="{ background: '#ffffff',opacity:0.4; }" title-color="#ffffff" back-icon-color="#ffffff"></u-navbar>
-		<view style="padding: 30rpx;">
-			<view class="login_box">
-				<u-form :model="form" ref="uForm" >
-					<u-form-item ><u-input  v-model="form.realname" placeholder="学员姓名"/></u-form-item>
-					<u-form-item ><u-input v-model="form.idCard" maxlength="18" type="idcard"  placeholder="学员身份证号"/></u-form-item>
-				</u-form>
-			</view>	
-			<button :disabled="isUse" class="loginBtn" @click="jumpBind">
-				确定
-			</button>
-		</view>
-	</view>
-</template>
-
-<script>
-export default {
-	data() {
-		return {
-			code: '',
-			form:{
-				realname:'',
-				idCard:''
-			},
-			codeTips: '',
-			read:'',
-			scanCode: '', // 获取扫码的路径最后面的6位标识码
-		};
-	},
-	mounted() {},
-	methods: {
-		jumpBind(){
-			let that = this
-			
-			if(!this.form.realname.trim()){
-				this.$u.toast('请输入学员姓名');
-				return 
-			}
-			if(!this.form.idCard.trim()){
-				this.$u.toast('请输入身份证卡号');
-				return 
-			}
-			
-			let IDRe18 = /^([1-6][1-9]|50)\d{4}(18|19|20)\d{2}((0[1-9])|10|11|12)(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/
-			let IDre15 =  /^([1-6][1-9]|50)\d{4}\d{2}((0[1-9])|10|11|12)(([0-2][1-9])|10|20|30|31)\d{3}$/
-			
-			if( !IDRe18.test( this.form.idCard ) && !IDre15.test( this.form.idCard )  ) {
-				this.$u.toast('请输入格式正确的身份证卡号');
-				console.log(' 验证未通过 ')
-				return 
-			}
-			
-			
-			this.$set(this.form,'realname',this.form.realname.trim()) //去除姓名两头空格
-			
-			that.isUse = true
-			// 绑定身份证号信息 /app/user/bind_idcard
-			that.$api.bindId(this.form).then(
-				res => {
-					that.isUse = false
-					if (res.data.code == 200) {
-						uni.setStorageSync('user_account',uni.getStorageSync('user_account_temp'));
-						uni.setStorageSync('token',uni.getStorageSync('token_temp'));
-						uni.removeStorageSync('user_account_temp') //移除临时账号
-						uni.removeStorageSync('token_temp') //移除临时token
-						if (this.scanCode) { // pc扫码注册成功后提交/跳转
-							this.$api.scanLoginCheck({
-								scanCode: this.scanCode
-							}).then((res) => {
-								if (res.data.code == 200) {
-									uni.navigateTo({
-										url: '/pages4/login/pcLoginSuccess'
-									})
-								} else {
-									this.$u.toast(res.data.msg)
-								}
-							})
-						} else { // 跳转到首页是原来的逻辑
-							uni.reLaunch({
-								url:'/pages/index/index'
-							})
-						}
-						
-						this.$method.setUuid(new Date().valueOf() + "")
-						that.$api.getInfo({ fromPlat: 1 }).then(resdata => {
-							if(resdata.data.code == 200){
-								that.$store.state.userInfo = resdata.data.data;
-							}
-							
-						});
-					} else {
-						that.$u.toast(res.data.msg);
-					}
-				},
-				err => {
-					that.isUse = false
-				}
-			);
-			
-		},
-	},
-	onLoad(option) {
-		console.log('注册:', option.scanCode)
-		let that = this;
-		option.scanCode && (this.scanCode = option.scanCode)
-		uni.removeStorageSync('user_account') //移除临时账号
-		uni.removeStorageSync('token')
-		uni.login({
-			provider: 'weixin',
-			success: function(loginRes) {
-				that.code = loginRes.code;
-			}
-		});
-	}
-};
-</script>
-
-<style scoped>
-	.wxBtn{
-		position: fixed;
-		bottom: 10%;
-		width: 100%;
-		left: 0;
-	}
-	/deep/ .wxBtn button::after{
-	    border: none; 
-	}
-	.loginBtn{
-		width: 526rpx;
-		height: 80rpx;
-		background: linear-gradient(90deg, #015EEA, #00C0FA);
-		box-shadow: 0rpx 10rpx 16rpx 4rpx rgba(1, 99, 235, 0.04);
-		opacity: 0.6;
-		border-radius: 40rpx;
-		color: #FFFFFF;
-		text-align: center;
-		line-height: 80rpx;
-		margin: 40rpx auto;
-	}
-	
-	
-	.wxloginBtn{
-		background: url("/static/loginBtn.png") no-repeat;
-		background-size:100% 100%;
-		border:none;
-		width: 100rpx;
-		height: 100rpx;
-	}
-	
-	/deep/page {
-		background-color: #FFFFFF;
-		height: 100%;
-		width: 100%;
-	}
-	.login_box{
-		width: 100%;
-		height: 360rpx;
-		background: #FFFFFF;
-		box-shadow: 0rpx 0rpx 16rpx 4rpx rgba(1, 99, 235, 0.1);
-		border-radius: 24rpx;
-		margin-top: 30rpx;
-		padding:40rpx 35rpx;
-	}
-	/deep/ .u-item-bg{
-		border-radius: 32px !important;
-	}
-	/deep/ .u-subsection{
-		border-radius: 32px !important;
-	}
-.full_img {
-	position: absolute;
-	left: 0;
-	display: block;
-	width: 100%;
-	z-index: -999;
-	top: 0;
-}
-
-.head {
-	height: 96rpx;
-	width: 100%;
-	line-height: 96rpx;
-	margin-top: 40rpx;
-	text-align: center;
-	display: flex;
-	position: relative;
-	justify-content: center;
-}
-.icon {
-	position: absolute;
-	left: 30rpx;
-}
-</style>

+ 4 - 0
pages2/register/register.vue

@@ -394,11 +394,15 @@ export default {
 					if (uni.getStorageSync('newUser_sc')) {
 						datas['shareCode'] = uni.getStorageSync('newUser_sc')
 					}
+					if (uni.getStorageSync('shareActivityCode')) {
+						datas['shareActivityCode'] = uni.getStorageSync('shareActivityCode')
+					}
 					that.$api.registerUser(datas).then(
 						res => {
 							that.isUse = false
 							if (res.data.code == 200) {
 								uni.removeStorageSync('newUser_sc')
+								uni.removeStorageSync('shareActivityCode')
 								uni.showModal({
 									title: '提示',
 									content: '注册成功',

+ 6 - 6
pages2/subject/collectBank.vue

@@ -82,7 +82,7 @@
             </view>
             <view v-if="bank.ques">
               <view class="pad_8 answer">
-                <view>正确答案:{{ ast[bank.ans - 1] }}</view>
+                <view>题目答案:{{ ast[bank.ans - 1] }}</view>
                 <view v-if="!explain">我的答案:{{ ast[bank.ques - 1] }}</view>
               </view>
               <view class="pad_8 answerInfos">
@@ -160,7 +160,7 @@
             <view v-if="bank.ques">
               <view class="pad_8 answer">
                 <view
-                  >正确答案:
+                  >题目答案:
                   <text
                     v-for="(ansItem, ansItemIndex) in bank.ans"
                     :key="ansItemIndex"
@@ -236,7 +236,7 @@
             </view>
             <view v-if="bank.ques">
               <view class="pad_8 answer">
-                <view>正确答案:{{ ast[bank.ans == 1 ? 0 : 1] }}</view>
+                <view>题目答案:{{ ast[bank.ans == 1 ? 0 : 1] }}</view>
                 <view v-if="!explain">我的答案:{{ ast[bank.ques == 1 ? 0 : 1] }}</view>
               </view>
               <view class="pad_8 answerInfos">
@@ -395,7 +395,7 @@
                 </view>
                 <view v-if="bank.ques[ansIndex]">
                   <view class="pad_8 answer">
-                    <view>正确答案:{{ ast[bank.ans[ansIndex] - 1] }}</view>
+                    <view>题目答案:{{ ast[bank.ans[ansIndex] - 1] }}</view>
                     <view v-if="!explain"
                       >我的答案:{{ ast[bank.ques[ansIndex] - 1] }}</view
                     >
@@ -480,7 +480,7 @@
                 <view v-if="bank.ques[ansIndex]">
                   <view class="pad_8 answer">
                     <view
-                      >正确答案:
+                      >题目答案:
                       <text
                         v-for="(ansItem1, ansItemIndex1) in bank.ans[ansIndex]"
                         :key="ansItemIndex1"
@@ -563,7 +563,7 @@
                 </view>
                 <view v-if="bank.ques[ansIndex]">
                   <view class="pad_8 answer">
-                    <view>正确答案:{{ ast[bank.ans[ansIndex] == 1 ? 0 : 1] }}</view>
+                    <view>题目答案:{{ ast[bank.ans[ansIndex] == 1 ? 0 : 1] }}</view>
                     <view v-if="!explain"
                       >我的答案:{{ ast[bank.ques[ansIndex] == 1 ? 0 : 1] }}</view
                     >

+ 6 - 6
pages2/subject/collectTypeBank.vue

@@ -82,7 +82,7 @@
             </view>
             <view v-if="bank.ques">
               <view class="pad_8 answer">
-                <view>正确答案:{{ ast[bank.ans - 1] }}</view>
+                <view>题目答案:{{ ast[bank.ans - 1] }}</view>
                 <view v-if="!explain">我的答案:{{ ast[bank.ques - 1] }}</view>
               </view>
               <view class="pad_8 answerInfos">
@@ -160,7 +160,7 @@
             <view v-if="bank.ques">
               <view class="pad_8 answer">
                 <view
-                  >正确答案:
+                  >题目答案:
                   <text v-for="ansItem in bank.ans">{{
                     ast[ansItem - 1]
                   }}</text>
@@ -232,7 +232,7 @@
             </view>
             <view v-if="bank.ques">
               <view class="pad_8 answer">
-                <view>正确答案:{{ ast[bank.ans == 1 ? 0 : 1] }}</view>
+                <view>题目答案:{{ ast[bank.ans == 1 ? 0 : 1] }}</view>
                 <view v-if="!explain">我的答案:{{ ast[bank.ques == 1 ? 0 : 1] }}</view>
               </view>
               <view class="pad_8 answerInfos">
@@ -389,7 +389,7 @@
                 </view>
                 <view v-if="bank.ques[ansIndex]">
                   <view class="pad_8 answer">
-                    <view>正确答案:{{ ast[bank.ans[ansIndex] - 1] }}</view>
+                    <view>题目答案:{{ ast[bank.ans[ansIndex] - 1] }}</view>
                     <view v-if="!explain"
                       >我的答案:{{ ast[bank.ques[ansIndex] - 1] }}</view
                     >
@@ -474,7 +474,7 @@
                 <view v-if="bank.ques[ansIndex]">
                   <view class="pad_8 answer">
                     <view
-                      >正确答案:
+                      >题目答案:
                       <text v-for="ansItem1 in bank.ans[ansIndex]">{{
                         ast[ansItem1 - 1]
                       }}</text>
@@ -553,7 +553,7 @@
                 </view>
                 <view v-if="bank.ques[ansIndex]">
                   <view class="pad_8 answer">
-                    <view>正确答案:{{ ast[bank.ans[ansIndex] == 1 ? 0 : 1] }}</view>
+                    <view>题目答案:{{ ast[bank.ans[ansIndex] == 1 ? 0 : 1] }}</view>
                     <view v-if="!explain"
                       >我的答案:{{ ast[bank.ques[ansIndex] == 1 ? 0 : 1] }}</view
                     >

+ 6 - 6
pages2/subject/wrongBank.vue

@@ -82,7 +82,7 @@
             </view>
             <view v-if="bank.ques">
               <view class="pad_8 answer">
-                <view>正确答案:{{ ast[bank.ans - 1] }}</view>
+                <view>题目答案:{{ ast[bank.ans - 1] }}</view>
                 <view v-if="!explain">我的答案:{{ ast[bank.ques - 1] }}</view>
               </view>
               <view class="pad_8 answerInfos">
@@ -160,7 +160,7 @@
             <view v-if="bank.ques">
               <view class="pad_8 answer">
                 <view
-                  >正确答案:
+                  >题目答案:
                   <text
                     :key="ansIndex"
                     v-for="(ansItem, ansIndex) in bank.ans"
@@ -234,7 +234,7 @@
             </view>
             <view v-if="bank.ques">
               <view class="pad_8 answer">
-                <view>正确答案:{{ ast[bank.ans == 1 ? 0 : 1] }}</view>
+                <view>题目答案:{{ ast[bank.ans == 1 ? 0 : 1] }}</view>
                 <view v-if="!explain">我的答案:{{ ast[bank.ques == 1 ? 0 : 1] }}</view>
               </view>
               <view class="pad_8 answerInfos">
@@ -389,7 +389,7 @@
                 </view>
                 <view v-if="bank.ques[ansIndex]">
                   <view class="pad_8 answer">
-                    <view>正确答案:{{ ast[bank.ans[ansIndex] - 1] }}</view>
+                    <view>题目答案:{{ ast[bank.ans[ansIndex] - 1] }}</view>
                     <view v-if="!explain"
                       >我的答案:{{ ast[bank.ques[ansIndex] - 1] }}</view
                     >
@@ -474,7 +474,7 @@
                 <view v-if="bank.ques[ansIndex]">
                   <view class="pad_8 answer">
                     <view
-                      >正确答案:
+                      >题目答案:
                       <text
                         :key="ansItemIndex1"
                         v-for="(ansItem1, ansItemIndex1) in bank.ans[ansIndex]"
@@ -557,7 +557,7 @@
                 </view>
                 <view v-if="bank.ques[ansIndex]">
                   <view class="pad_8 answer">
-                    <view>正确答案:{{ ast[bank.ans[ansIndex] == 1 ? 0 : 1] }}</view>
+                    <view>题目答案:{{ ast[bank.ans[ansIndex] == 1 ? 0 : 1] }}</view>
                     <view v-if="!explain"
                       >我的答案:{{ ast[bank.ques[ansIndex] == 1 ? 0 : 1] }}</view
                     >

+ 6 - 6
pages2/subject/wrongTypeBank.vue

@@ -82,7 +82,7 @@
             </view>
             <view v-if="bank.ques">
               <view class="pad_8 answer">
-                <view>正确答案:{{ ast[bank.ans - 1] }}</view>
+                <view>题目答案:{{ ast[bank.ans - 1] }}</view>
                 <view v-if="!explain">我的答案:{{ ast[bank.ques - 1] }}</view>
               </view>
               <view class="pad_8 answerInfos">
@@ -160,7 +160,7 @@
             <view v-if="bank.ques">
               <view class="pad_8 answer">
                 <view
-                  >正确答案:
+                  >题目答案:
                   <text v-for="ansItem in bank.ans">{{
                     ast[ansItem - 1]
                   }}</text>
@@ -232,7 +232,7 @@
             </view>
             <view v-if="bank.ques">
               <view class="pad_8 answer">
-                <view>正确答案:{{ ast[bank.ans == 1 ? 0 : 1] }}</view>
+                <view>题目答案:{{ ast[bank.ans == 1 ? 0 : 1] }}</view>
                 <view v-if="!explain">我的答案:{{ ast[bank.ques == 1 ? 0 : 1] }}</view>
               </view>
               <view class="pad_8 answerInfos">
@@ -388,7 +388,7 @@
                 </view>
                 <view v-if="bank.ques[ansIndex]">
                   <view class="pad_8 answer">
-                    <view>正确答案:{{ ast[bank.ans[ansIndex] - 1] }}</view>
+                    <view>题目答案:{{ ast[bank.ans[ansIndex] - 1] }}</view>
                     <view v-if="!explain"
                       >我的答案:{{ ast[bank.ques[ansIndex] - 1] }}</view
                     >
@@ -473,7 +473,7 @@
                 <view v-if="bank.ques[ansIndex]">
                   <view class="pad_8 answer">
                     <view
-                      >正确答案:
+                      >题目答案:
                       <text
                         :key="ansItemIndex1"
                         v-for="(ansItem1, ansItemIndex1) in bank.ans[ansIndex]"
@@ -556,7 +556,7 @@
                 </view>
                 <view v-if="bank.ques[ansIndex]">
                   <view class="pad_8 answer">
-                    <view>正确答案:{{ ast[bank.ans[ansIndex] == 1 ? 0 : 1] }}</view>
+                    <view>题目答案:{{ ast[bank.ans[ansIndex] == 1 ? 0 : 1] }}</view>
                     <view v-if="!explain"
                       >我的答案:{{ ast[bank.ques[ansIndex] == 1 ? 0 : 1] }}</view
                     >

+ 1433 - 1114
pages3/course/detail.vue

@@ -1,1149 +1,1468 @@
 <template>
-	<view>
-		<nav-bar title="课程详情"></nav-bar>
-		<view class="videoBox" >
-			<!-- <view > -->
-				<view class="video_box" v-if="!startStatus">
-					<image :src="$method.splitImgHost(detail.coverUrl)" style="width: 100%;height: 450rpx;"></image>
-					<image v-if="false" class="video_play" src="/static/play.png" @click="startVideo"></image>
-				</view>
-				<view v-else class="video_box" style="width: 100%;height: 450rpx;">
-					<polyv-player
-						id="playerVideo"
-						playerId="playerVideo"
-						height="450rpx"
-						:vid="vid"
-						:showSettingBtn="true"
-						:enablePlayGesture="true"
-						:playbackRate="playbackRate"
-						:isAllowSeek="isAllowSeek"
-						:autoplay="autoplay"
-						:startTime="startTime"
-						@statechange="onStateChange"
-					></polyv-player>
-				</view>
-				
-				<view class="cou_title">
-					<view class="title_name">
-						<!-- <view class="yearTag" v-if="detail.year">{{detail.year}}</view> -->
-						<view class="titleTag">{{detail.goodsName}}</view>
-					</view>
-					<view style="display: flex;justify-content: space-between;margin-top: 13rpx;">
-						<view class="prices">
-							<text v-if="detail.standPrice" class="price_word">¥ {{ detail.standPrice }}</text>
-							<text v-else class="price_word free">免费</text>
-							<text v-if="detail.linePrice" class="sale"> ¥ </text>
-							<text v-if="detail.linePrice" class="price_line"> {{detail.linePrice }}</text>
-						</view>
-						<view class="noteTag">
-							共 <text class="blackFont">{{courseList.length}} 课程 {{detail.classHours || '-'}}</text> 学时
-						</view>
-					</view>
-				</view>
-			<!-- </view> -->
-		</view>
-		<view class="contents">
-			
-			<!-- <u-line color="#D6D6DB" /> -->
-			<!-- <view style="height: 80rpx;">
+  <view>
+    <nav-bar title="课程详情"></nav-bar>
+    <view class="videoBox">
+      <!-- <view > -->
+      <view class="video_box" v-if="!startStatus">
+        <image
+          :src="$method.splitImgHost(detail.coverUrl)"
+          style="width: 100%; height: 450rpx"
+        ></image>
+        <image
+          v-if="false"
+          class="video_play"
+          src="/static/play.png"
+          @click="startVideo"
+        ></image>
+      </view>
+      <view v-else class="video_box" style="width: 100%; height: 450rpx">
+        <polyv-player
+          id="playerVideo"
+          playerId="playerVideo"
+          height="450rpx"
+          :vid="vid"
+          :showSettingBtn="true"
+          :enablePlayGesture="true"
+          :playbackRate="playbackRate"
+          :isAllowSeek="isAllowSeek"
+          :autoplay="autoplay"
+          :startTime="startTime"
+          @statechange="onStateChange"
+        ></polyv-player>
+      </view>
+
+      <view class="cou_title">
+        <view class="title_name">
+          <!-- <view class="yearTag" v-if="detail.year">{{detail.year}}</view> -->
+          <view class="titleTag">{{ detail.goodsName }}</view>
+        </view>
+        <view
+          style="
+            display: flex;
+            justify-content: space-between;
+            margin-top: 13rpx;
+          "
+        >
+          <view class="prices">
+            <!-- <text v-if="detail.standPrice" class="price_word">¥ {{ detail.standPrice }}</text>
+						<text v-else class="price_word free">免费</text> -->
+            <view
+              class="price_word"
+              v-if="
+                !detail.specTemplateId || (!detail.maxPrice && !detail.minPrice)
+              "
+            >
+              {{ detail.standPrice === 0 ? "免费" : `¥${detail.standPrice}` }}
+            </view>
+            <!-- 范围价格 -->
+            <view v-else class="price_word">
+              <view>{{ detail.minPrice }}</view>
+              <template v-if="detail.minPrice != detail.maxPrice">
+                <text>-</text>
+                <view>{{ detail.maxPrice }}</view>
+              </template>
+            </view>
+
+            <text v-if="detail.linePrice" class="sale"> ¥ </text>
+            <text v-if="detail.linePrice" class="price_line">
+              {{ detail.linePrice }}</text
+            >
+          </view>
+          <view class="noteTag">
+            共
+            <text class="blackFont"
+              >{{ courseList.length }} 课程 {{ detail.classHours || "-" }}</text
+            >
+            学时
+          </view>
+        </view>
+      </view>
+      <!-- </view> -->
+    </view>
+    <view class="contents">
+      <!-- <u-line color="#D6D6DB" /> -->
+      <!-- <view style="height: 80rpx;">
 				<view><u-tabs :list="list" :item-width="itemWidth()" font-size="30" bar-width="24"  :current="current" @change="change" active-color="#007AFF"></u-tabs></view>
 			</view> -->
-			<view class="tabs">
-				<view v-for="(item, index) in list" :key="index" class="tab_item"
-					:class="[list.length == 2 ? 'twoBtn' : list.length == 3 ? 'threeBtn' : '',{nactive: current == index}]" @click="change(index)">{{ item.name }}</view>
-			</view>
+      <view class="tabs">
+        <view
+          v-for="(item, index) in list"
+          :key="index"
+          class="tab_item"
+          :class="[
+            list.length == 2 ? 'twoBtn' : list.length == 3 ? 'threeBtn' : '',
+            { nactive: current == index },
+          ]"
+          @click="change(index)"
+          >{{ item.name }}</view
+        >
+      </view>
 
-			<view style="padding: 20rpx;padding-bottom: 100rpx;position: relative;" v-show="current==0">
-				<view class="content">
-					<view v-html="detail.mobileDetailHtml" style="width: 100%;overflow: hidden;"></view>
-				</view>
-			</view>
-			<view style="padding: 20rpx;padding-bottom: 100rpx;position: relative;" v-show="current==1">
-				<!-- <view v-for="(item, index) in courseItem.courseList" :key="index" > -->
-				<!-- 视频课 -->
-				<template v-if="goodsType == 1">
-					<view v-for="(courseItem, gTindex) in goodsTeacher" :key="gTindex">
-						<view v-for="(item, index) in courseItem.courseList" :key="index">
-							<view class="courseItemBox"  v-if="item.show && item.show == 1">
-								<view class="courseItem" @click="openCourse(item)">
-									<view class="courseName">{{item.courseName}}</view>
-									<view>
-										<image src="/static/icon/up.png" class="icon_up" v-if="item.down"></image>
-										<image src="/static/icon/down.png" class="icon_up" v-if="!item.down"></image>
-									</view>
-								</view>
-								<view v-if="courseItem.teaList && courseItem.teaList.length > 0" class='teacher_names'>
-									<view v-for="(tea, tindex) in courseItem.teaList" :key="tindex" class="names" :class="[States[gTindex] == tindex ? 'nactive' : '']"
-										@click.stop="switchTeacher(tea, tindex, gTindex)">
-										<view >{{ tea.aliasName }}</view>
-									</view>
-								</view>
-								<view v-show="!item.down">
-									<view v-for="(itemM,indexM) in item.menuList"  :key="indexM">
-										<courseModule :courseId="itemM.courseId" :needOpen="(isFirstEnter && menuIndex[0] === index && menuIndex[1] === indexM) ? true : false" v-if="itemM.type==1" :menuItem="itemM"></courseModule>
-										<courseChapter :courseId="itemM.courseId" :needOpen="(isFirstEnter && menuIndex[0] === index && menuIndex[1] === indexM) ? true : false" v-if="itemM.type==2" :isBuy="false" :menuItem="itemM"></courseChapter>
-										<courseSection :courseId="itemM.courseId" v-if="itemM.type==3" :isBuy="false" :menuItem="itemM"></courseSection>
-										<u-line></u-line>
-										
-									</view>
-								</view>
-								
-							</view>
-						</view>
-					</view>
-				</template>
-				<!-- 直播课 -->
-				<template v-else>
-					<view v-for="(item,index) in courseList" :key="index" >
-						<view class="courseItemBox" >
-							<view class="courseItem" @click="openCourse(item)">
-								<view class="courseName">{{item.courseName}}</view>
-								<view>
-									<image src="/static/icon/up.png" class="icon_up" v-if="item.down"></image>
-									<image src="/static/icon/down.png" class="icon_up" v-if="!item.down"></image>
-								</view>
-							</view>
-							<view v-show="!item.down">
-								<view v-for="(itemM,indexM) in item.menuList"  :key="indexM">
-									<courseModule :courseId="itemM.courseId" :needOpen="(isFirstEnter && menuIndex[0] === index && menuIndex[1] === indexM) ? true : false" v-if="itemM.type==1" :menuItem="itemM"></courseModule>
-									<courseChapter :courseId="itemM.courseId" :needOpen="(isFirstEnter && menuIndex[0] === index && menuIndex[1] === indexM) ? true : false" v-if="itemM.type==2" :isBuy="false" :menuItem="itemM"></courseChapter>
-									<courseSection :courseId="itemM.courseId" v-if="itemM.type==3" :isBuy="false" :menuItem="itemM"></courseSection>
-									<u-line></u-line>
-									
-								</view>
-							</view>
-						</view>
-					</view>
-				</template>
-			</view>
-			<view style="padding: 20rpx;padding-bottom: 100rpx;position: relative;" v-show="current==2">
-				<!-- <view > -->
-					<view v-for="(item,index) in freeMenuList" :key="index" >
-						<view class="courseItemBox" >
-							<view class="courseItem">
-								<view class="courseName">{{item.freeExamName}}</view>
-							</view>
-						</view>
-						
-					</view>
-				<!-- </view> -->
-			</view>
-		</view>
+      <view
+        style="padding: 20rpx; padding-bottom: 100rpx; position: relative"
+        v-show="current == 0"
+      >
+        <view class="content">
+          <view
+            v-html="detail.mobileDetailHtml"
+            style="width: 100%; overflow: hidden"
+          ></view>
+        </view>
+      </view>
+      <view
+        style="padding: 20rpx; padding-bottom: 100rpx; position: relative"
+        v-show="current == 1"
+      >
+        <!-- <view v-for="(item, index) in courseItem.courseList" :key="index" > -->
+        <!-- 视频课 -->
+        <template v-if="goodsType == 1">
+          <view v-for="(courseItem, gTindex) in goodsTeacher" :key="gTindex">
+            <view v-for="(item, index) in courseItem.courseList" :key="index">
+              <view class="courseItemBox" v-if="item.show && item.show == 1">
+                <view class="courseItem" @click="openCourse(item)">
+                  <view class="courseName">{{ item.courseName }}</view>
+                  <view>
+                    <image
+                      src="/static/icon/up.png"
+                      class="icon_up"
+                      v-if="item.down"
+                    ></image>
+                    <image
+                      src="/static/icon/down.png"
+                      class="icon_up"
+                      v-if="!item.down"
+                    ></image>
+                  </view>
+                </view>
+                <view
+                  v-if="courseItem.teaList && courseItem.teaList.length > 0"
+                  class="teacher_names"
+                >
+                  <view
+                    v-for="(tea, tindex) in courseItem.teaList"
+                    :key="tindex"
+                    class="names"
+                    :class="[States[gTindex] == tindex ? 'nactive' : '']"
+                    @click.stop="switchTeacher(tea, tindex, gTindex)"
+                  >
+                    <view>{{ tea.aliasName }}</view>
+                  </view>
+                </view>
+                <view v-show="!item.down">
+                  <view v-for="(itemM, indexM) in item.menuList" :key="indexM">
+                    <courseModule
+                      :courseId="itemM.courseId"
+                      :needOpen="
+                        isFirstEnter &&
+                        menuIndex[0] === index &&
+                        menuIndex[1] === indexM
+                          ? true
+                          : false
+                      "
+                      v-if="itemM.type == 1"
+                      :menuItem="itemM"
+                    ></courseModule>
+                    <courseChapter
+                      :courseId="itemM.courseId"
+                      :needOpen="
+                        isFirstEnter &&
+                        menuIndex[0] === index &&
+                        menuIndex[1] === indexM
+                          ? true
+                          : false
+                      "
+                      v-if="itemM.type == 2"
+                      :isBuy="false"
+                      :menuItem="itemM"
+                    ></courseChapter>
+                    <courseSection
+                      :courseId="itemM.courseId"
+                      v-if="itemM.type == 3"
+                      :isBuy="false"
+                      :menuItem="itemM"
+                    ></courseSection>
+                    <u-line></u-line>
+                  </view>
+                </view>
+              </view>
+            </view>
+          </view>
+        </template>
+        <!-- 直播课 -->
+        <template v-else>
+          <view v-for="(item, index) in courseList" :key="index">
+            <view class="courseItemBox">
+              <view class="courseItem" @click="openCourse(item)">
+                <view class="courseName">{{ item.courseName }}</view>
+                <view>
+                  <image
+                    src="/static/icon/up.png"
+                    class="icon_up"
+                    v-if="item.down"
+                  ></image>
+                  <image
+                    src="/static/icon/down.png"
+                    class="icon_up"
+                    v-if="!item.down"
+                  ></image>
+                </view>
+              </view>
+              <view v-show="!item.down">
+                <view v-for="(itemM, indexM) in item.menuList" :key="indexM">
+                  <courseModule
+                    :courseId="itemM.courseId"
+                    :needOpen="
+                      isFirstEnter &&
+                      menuIndex[0] === index &&
+                      menuIndex[1] === indexM
+                        ? true
+                        : false
+                    "
+                    v-if="itemM.type == 1"
+                    :menuItem="itemM"
+                  ></courseModule>
+                  <courseChapter
+                    :courseId="itemM.courseId"
+                    :needOpen="
+                      isFirstEnter &&
+                      menuIndex[0] === index &&
+                      menuIndex[1] === indexM
+                        ? true
+                        : false
+                    "
+                    v-if="itemM.type == 2"
+                    :isBuy="false"
+                    :menuItem="itemM"
+                  ></courseChapter>
+                  <courseSection
+                    :courseId="itemM.courseId"
+                    v-if="itemM.type == 3"
+                    :isBuy="false"
+                    :menuItem="itemM"
+                  ></courseSection>
+                  <u-line></u-line>
+                </view>
+              </view>
+            </view>
+          </view>
+        </template>
+      </view>
+      <view
+        style="padding: 20rpx; padding-bottom: 100rpx; position: relative"
+        v-show="current == 2"
+      >
+        <!-- <view > -->
+        <view v-for="(item, index) in freeMenuList" :key="index">
+          <view class="courseItemBox">
+            <view class="courseItem">
+              <view class="courseName">{{ item.freeExamName }}</view>
+            </view>
+          </view>
+        </view>
+        <!-- </view> -->
+      </view>
+    </view>
 
-		
-		<view class="bottomBox" v-if="!hideBuyState">
-			<view class="icons">
-				<view class="icon_item ones">
-					<image src="/static/index/share.png" class="share"></image>
-					<button type="default" open-type="share" class="bt_share"></button>
-					<view class="share_w">分享</view>
-				</view>
-				<view class="icon_item">
-					<image src="/static/index/shopcar.png" class="shopcar" @click="toShopcar()"></image>
-					<view class="share_w">购物车</view>
-				</view>
-			</view>
-			<view style="display: flex;color: #FFFFFF;align-items: center;">
-				<view class="btn1" @click="addCart()">加购物车</view>
-				<view class="btn2" @click="buy()">立即购买 </view>
-			</view>
-		</view>
+    <view class="bottomBox" v-if="!hideBuyState">
+      <view class="icons">
+        <view class="icon_item ones">
+          <image src="/static/index/share.png" class="share"></image>
+          <button type="default" open-type="share" class="bt_share"></button>
+          <view class="share_w">分享</view>
+        </view>
+        <view class="icon_item">
+          <image
+            src="/static/index/shopcar.png"
+            class="shopcar"
+            @click="toShopcar()"
+          ></image>
+          <view class="share_w">购物车</view>
+        </view>
+      </view>
+      <view style="display: flex; color: #ffffff; align-items: center">
+        <view class="btn1" @click="addCart()">加购物车</view>
+        <view class="btn2" @click="buy()">立即购买 </view>
+      </view>
+    </view>
 
-		<!-- 已购买过课程的弹窗 -->
-		<u-popup v-model="bugCourseModel" mode="center" border-radius="40">
-			<view class="had_bugCourse">
-				<image src="/pages3/static/imgs/hadBug.png" class="share"></image>
-				<view class="tips">
-					<view class="warns">温馨提示</view>
-					<view class="words">您<text>已购买过</text>该商品课程</view>
-					<view class="words">可立即前往学习</view>
-				</view>
-				<view class="tip_botton">
-					<view class="cancel_btn" @click="changeKown()">知道了</view>
-					<view class="confirm_btn" @click="toStudy()">去学习</view>
-				</view>
-			</view>
-		</u-popup>
+    <!-- 已购买过课程的弹窗 -->
+    <u-popup v-model="bugCourseModel" mode="center" border-radius="40">
+      <view class="had_bugCourse">
+        <image src="/pages3/static/imgs/hadBug.png" class="share"></image>
+        <view class="tips">
+          <view class="warns">温馨提示</view>
+          <view class="words">您<text>已购买过</text>该商品课程</view>
+          <view class="words">可立即前往学习</view>
+        </view>
+        <view class="tip_botton">
+          <view class="cancel_btn" @click="changeKown()">知道了</view>
+          <view class="confirm_btn" @click="toStudy()">去学习</view>
+        </view>
+      </view>
+    </u-popup>
 
-		<!-- 选择规格弹窗 -->
-        <u-popup v-model="toggleSkuShow" mode="bottom" border-radius="40">
-			<view class="popup_box">
-                <view class="check_head">
-                    <view class="headers">
-                    	<view class="grade">选择规格</view>
-                        <u-icon name="close" color="#9C9C9C" size="40" @click="closePop()"></u-icon>
-                    </view>
-                </view>
-                <view v-if="Object.keys(skuItem).length" class="pop_prices">
-                    <view class="lefts">
-						<image :src="$method.splitImgHost(skuItem.coverUrl)" class="imgs"></image>
-					</view>
-					<view class="rights">
-						<view class="goods_titles">{{ skuItem.goodsName }}</view>
-						<view class="goods_price">¥{{ skuItem.standPrice }}</view>
-					</view>
-                </view>
-				<view class="lines"></view>
-                <view class="check_con">
-					<scroll-view scroll-y="true" style="height: 490rpx;">
-						<view v-for="(item, index) in specList" :key="index" class="check_items">
-							<view class="grades">{{ item.name }}</view>
-							<!-- <scroll-view scroll-y="true" style="height: 180rpx;"> -->
-								<view class="grade_names">
-									<view class="course_items" v-for="(child, c_index) in item.specAttrList" :key="c_index" :class="{'nactive': child.check }"
-									@click="selectSku(child, index, c_index)">
-										{{ child.name }}
-									</view>
-								</view>
-							<!-- </scroll-view> -->
-						</view>
-					</scroll-view>
+    <!-- 选择规格弹窗 -->
+    <u-popup v-model="toggleSkuShow" mode="bottom" border-radius="40">
+      <view class="popup_box">
+        <view class="check_head">
+          <view class="headers">
+            <view class="grade">选择规格</view>
+            <u-icon
+              name="close"
+              color="#9C9C9C"
+              size="40"
+              @click="closePop()"
+            ></u-icon>
+          </view>
+        </view>
+        <view class="check_con">
+          <scroll-view scroll-y="true" style="height: 600rpx">
+            <view
+              v-for="(item, index) in specList"
+              :key="index"
+              class="check_items"
+            >
+              <view class="grades">{{ item.name }}</view>
+              <view
+                class="grade_names"
+                v-if="index == 0 && specList.length > 1"
+              >
+                <view
+                  class="course_items"
+                  v-for="(child, c_index) in item.specAttrList"
+                  :key="c_index"
+                  :class="{ nactive: selectGoodIndex == c_index }"
+                  @click="selectGoodType(c_index)"
+                >
+                  {{ child.name }}
                 </view>
-				<view class="confirm_btns">
-					<view v-if="Object.keys(skuItem).length == 0 || specList.length != isCheckSku" class="right_now r_disable">确 定</view>
-                	<view v-else class="right_now" @click="rightNowBuy()">确 定</view>
-				</view>
-				
-			</view>
-		</u-popup>
-	</view>
+              </view>
+              <view v-if="index == 1 || specList.length == 1" class="check_box">
+                <u-checkbox-group>
+                  <view
+                    class="check_box_item"
+                    :class="spec.check ? 'selected' : ''"
+                    v-for="spec in item.specAttrList"
+                    :key="spec.specAttributeId"
+                  >
+                    <u-checkbox
+                      @change="checkboxChange"
+                      v-model="spec.check"
+                      :name="spec.specAttributeId"
+                    >
+                      <view class="price_box">
+                        <view class="check_box_item_titme">{{
+                          spec.name
+                        }}</view>
+                        <view class="price">¥{{ spec.standPrice }}</view>
+                      </view>
+                    </u-checkbox>
+                  </view>
+                </u-checkbox-group>
+              </view>
+            </view>
+          </scroll-view>
+        </view>
+        <view class="confirm_btns">
+          <view class="allprice">
+            <view>
+              总价:<text>¥</text><text>{{ allPrice }}</text>
+            </view>
+            <text>已选择{{ goodsIds.length }}个商品</text>
+          </view>
+          <view class="btns">
+            <view v-if="!goodsIds.length" class="right_now r_disable">{{
+              isCarOrBuy == 2 ? "立即购买" : "加入购物车"
+            }}</view>
+            <view v-else class="right_now" @click="rightNowBuy()"
+              >{{ isCarOrBuy == 2 ? "立即购买" : "加入购物车" }}
+            </view>
+          </view>
+        </view>
+      </view>
+    </u-popup>
+  </view>
 </template>
 
 <script>
-import courseModule from '@/components/course/courseModule.vue';
-import courseChapter from '@/components/course/courseChapter.vue';
-import courseSection from '@/components/course/courseSection.vue';
-import { mapGetters,mapMutations  } from 'vuex';
+import courseModule from "@/components/course/courseModule.vue";
+import courseChapter from "@/components/course/courseChapter.vue";
+import courseSection from "@/components/course/courseSection.vue";
+import { mapGetters, mapMutations } from "vuex";
 export default {
-	components: {
-		courseModule,
-		courseChapter,
-		courseSection
-	},
-	data() {
-		return {
-			id:0,
-			list: [],
-			menuIndex:[],
-			current:0,
-			detail:{},
-			courseList:[],
-			menuList:[],
-			freeMenuList:[],
-			startStatus:false,
-			playbackRate: [1.0],
-			isAllowSeek:'no',
-			vid:'',
-			autoplay:true,
-			listenConfigList:[],
-			listenSecond:0,
-			isFirstEnter:true, //是否首次进入
-			timer:null,
-			businessData:{},
-			startTime:0,
-			bugCourseModel: false, // 弹窗
-			hadBuyCourse: {}, // 已购买课程信息
-			goodsTeacher: [],
-			teaIndex: 0,
-			States: {0: 0},
-			goodsType: 1, // 1视频2题库 3补考 4前培 6直播
-			toggleSkuShow: false,
-			skuItem: {},
-			isCarOrBuy: 1, // 1加入购物车 2立即购买
-			specList: [], // 规格列表
-		};
-	},
-	computed: { 
-		...mapGetters(['userInfo','goodsAuditionConfigIdList','playSectionId','hideBuyState']),
-		isCheckSku() {
-			let checkCout = 0
-			this.specList.forEach((item, index) => {
-				if (item.specAttrList && item.specAttrList.length) {
-					item.specAttrList.forEach((child, c_index) => {
-						if (child.check) {
-							checkCout++
-						}
-					})
-				}
-				
-			})
-			return checkCout
-		},
-	},
-	onLoad(option) {
-		console.log('option:', option);
-		if (option.scene) {
-			// scene 生成二维码扫码进来的
-			let optObj = {}
-			let arrs = decodeURIComponent(option.scene).split('&')
-			for (let i = 0; i < arrs.length; i++) {
-				optObj[arrs[i].split('=')[0]] = arrs[i].split('=')[1]
-			}
-			// console.log('optObj:', optObj);
-			this.id = optObj.id
-			this.goodsType = optObj.goodsType
-			console.log('optObj.sc:', optObj.sc);
-			uni.setStorageSync('newUser_sc', optObj.sc)
-		} else {
-			// 小程序正常跳转的
-			// this.id => goodsId
-			this.id = option.id
-			this.goodsType = option.goodsType
-		}
-		this.getDetail()
-		this.goodsCourseList()
-		this.appCommonGoodsCourseModuleFreeExamList();
-		this.getIsBuy() // 判断是否已经购买过该课程
-		wx.showShareMenu({
-			withShareTicket: true,
-			menus: ["shareAppMessage", "shareTimeline"]
-		})
-	},
-	onUnload(option) {
-		this.$store.commit('setPlaySectionId', {playSectionId  :0});
-		//移除所有的事件监听器
-		uni.$off();
-	},
-	// 分享到朋友圈
-	onShareTimeline() {
-		return {
-			title: this.detail.goodsName,
-			query: 'id=' + this.id,
-			imageUrl: this.$method.splitImgHost(this.detail.coverUrl)
-		}
-	},
-	// 分享给朋友
-	onShareAppMessage() {
-		return {
-			title: this.detail.goodsName,
-			path: `/pages3/course/detail?id=` + this.id + '&goodsType=' + this.goodsType,
-			imageUrl: this.$method.splitImgHost(this.detail.coverUrl)
+  components: {
+    courseModule,
+    courseChapter,
+    courseSection,
+  },
+  data() {
+    return {
+      id: 0,
+      list: [],
+      menuIndex: [],
+      current: 0,
+      detail: {},
+      courseList: [],
+      menuList: [],
+      freeMenuList: [],
+      startStatus: false,
+      playbackRate: [1.0],
+      isAllowSeek: "no",
+      vid: "",
+      autoplay: true,
+      listenConfigList: [],
+      listenSecond: 0,
+      isFirstEnter: true, //是否首次进入
+      timer: null,
+      businessData: {},
+      startTime: 0,
+      bugCourseModel: false, // 弹窗
+      hadBuyCourse: {}, // 已购买课程信息
+      goodsTeacher: [],
+      teaIndex: 0,
+      States: { 0: 0 },
+      goodsType: 1, // 1视频2题库 3补考 4前培 6直播
+      toggleSkuShow: false,
+      skuItem: {},
+      isCarOrBuy: 1, // 1加入购物车 2立即购买
+      specList: [], // 规格列表
+      checkedAttrs: [],
+      selectGoodIndex: 0,
+      specAttrPriceList: [],
+    };
+  },
+  computed: {
+    ...mapGetters([
+      "userInfo",
+      "goodsAuditionConfigIdList",
+      "playSectionId",
+      "hideBuyState",
+    ]),
+    allPrice() {
+      if (!this.specList.length) return 0;
+      let allPrice = this.specList.slice(-1)[0].specAttrList.reduce((a, b) => {
+        if (b.check) {
+          return a + b.standPrice;
+        }
+        return a;
+      }, 0);
+      return this.toFixed(allPrice);
+    },
+    goodsIds() {
+      if (!this.specList.length) return [];
+      return this.specList
+        .slice(-1)[0]
+        .specAttrList.filter((e) => e.check)
+        .map((e) => e.goodsId);
+    },
+    isSingleChoice() {
+      if (!this.specAttrPriceList.length) {
+        return false;
+      }
+      return this.specAttrPriceList[0].specialGoods;
+    },
+  },
+  onLoad(option) {
+	console.log('option:', option);
+    if (option.scene) {
+      // scene 生成二维码扫码进来的
+      let optObj = {};
+      let arrs = decodeURIComponent(option.scene).split("&");
+      for (let i = 0; i < arrs.length; i++) {
+        optObj[arrs[i].split("=")[0]] = arrs[i].split("=")[1];
+      }
+      this.id = optObj.id;
+      this.goodsType = optObj.goodsType || optObj.gt;
+      console.log("optObj.sc:", optObj);
+      uni.setStorageSync("newUser_sc", optObj.sc);
+	  uni.setStorageSync("shareActivityCode", optObj.sac)
+	  if (optObj.sac && this.$method.isLogin()) {
+		this.editShareActivityCode()
+	  }
+    } else {
+      // 小程序正常跳转的
+      // this.id => goodsId
+      this.id = option.id;
+      this.goodsType = option.goodsType || option.gt;
+	  if (option.sac) {
+		uni.setStorageSync("shareActivityCode", option.sac)
+		if (this.$method.isLogin()) {
+			//已登录
+			this.editShareActivityCode()
 		}
-	},
-	
-	mounted() {
-		let self = this
-		uni.$on('getSection', item => {
-			//播放试听
-			self.listenSecond = 0
-			for (var itemChild of self.listenConfigList) {
-				if(self.playSectionId == (itemChild.sectionId || itemChild.menuId) && item.courseId == itemChild.courseId){
-					if(itemChild.auditionMinute>0){
-				//		self.listenSecond = itemChild.auditionMinute *60 //试听秒数
-						self.listenSecond = itemChild.auditionMinute //试听秒数 auditionMinute调整为秒单位
-					}
-				}
-			}
-			if(self.listenSecond>0){
-				if(self.timer){
-					clearInterval(self.timer);
-				}
-				 if(self.vid){
-					 //切换视频
-					 var polyvPlayerContext = self.selectComponent('#playerVideo');
-					 polyvPlayerContext.changeVid(item.recordingUrl)
-				 }else{
-					 self.vid = item.recordingUrl
-				 }
-				
-				self.startStatus = true
-				self.startTime = 0
-			}else{
-				
-				self.$u.toast('试听配置错误');
+	  }
+    }
+    this.getDetail();
+    this.goodsCourseList();
+    this.appCommonGoodsCourseModuleFreeExamList();
+    this.getIsBuy(); // 判断是否已经购买过该课程
+    wx.showShareMenu({
+      withShareTicket: true,
+      menus: ["shareAppMessage", "shareTimeline"],
+    });
+  },
+  onUnload(option) {
+    this.$store.commit("setPlaySectionId", { playSectionId: 0 });
+    //移除所有的事件监听器
+    uni.$off();
+  },
+  // 分享到朋友圈
+  onShareTimeline() {
+    return {
+      title: this.detail.goodsName,
+      query: "id=" + this.id,
+      imageUrl: this.$method.splitImgHost(this.detail.coverUrl),
+    };
+  },
+  // 分享给朋友
+  onShareAppMessage() {
+    return {
+      title: this.detail.goodsName,
+      path:
+        `/pages3/course/detail?id=` + this.id + "&goodsType=" + this.goodsType,
+      imageUrl: this.$method.splitImgHost(this.detail.coverUrl),
+    };
+  },
+
+  mounted() {
+    let self = this;
+    uni.$on("getSection", (item) => {
+      //播放试听
+      self.listenSecond = 0;
+      for (var itemChild of self.listenConfigList) {
+        if (
+          self.playSectionId == (itemChild.sectionId || itemChild.menuId) &&
+          item.courseId == itemChild.courseId
+        ) {
+          if (itemChild.auditionMinute > 0) {
+            //		self.listenSecond = itemChild.auditionMinute *60 //试听秒数
+            self.listenSecond = itemChild.auditionMinute; //试听秒数 auditionMinute调整为秒单位
+          }
+        }
+      }
+      if (self.listenSecond > 0) {
+        if (self.timer) {
+          clearInterval(self.timer);
+        }
+        if (self.vid) {
+          //切换视频
+          var polyvPlayerContext = self.selectComponent("#playerVideo");
+          polyvPlayerContext.changeVid(item.recordingUrl);
+        } else {
+          self.vid = item.recordingUrl;
+        }
+
+        self.startStatus = true;
+        self.startTime = 0;
+      } else {
+        self.$u.toast("试听配置错误");
+      }
+    });
+    this.updateChapterOpen(true);
+  },
+  methods: {
+    ...mapMutations(["updateChapterOpen"]),
+    itemWidth() {
+      return 100 / this.list.length + "%";
+    },
+	// 修改用户活动邀请码
+	editShareActivityCode() {
+		console.log('修改用户活动邀请码');
+		this.$http({
+			url: '/app/user/edit/shareActivityCode',
+        	method: "post",
+			data: {
+				shareActivityCode: uni.getStorageSync("shareActivityCode")
 			}
-			
+		}).then((res) => {
+			if (res.data.code == 200) {}
 		})
-		this.updateChapterOpen(true)
 	},
-	methods: {
-		 ...mapMutations(['updateChapterOpen']),
-		 itemWidth() {
-			 return (100/this.list.length)+'%'
-		 },
-		appCommonGoodsCourseModuleFreeExamList() {
-            // url: '/app/common/goods/course/moduleFreeExamList/'+data,
-		 this.$api.appCommonGoodsCourseModuleFreeExamList(this.id).then(res => {
-			 if(res.data.data.length) {
-				this.freeMenuList = res.data.data;
-				 this.list =  [
-						{
-							name: '课程介绍'
-						},
-						{
-							name: '课程目录'
-						},
-						{
-							name: '赠送'
-						}
-					]
-				 } else {
-					 this.list =  [
-							{
-								name: '课程介绍'
-							},
-							{
-								name: '课程目录'
-							}
-						]
-				 }
-				 
-				 console.log(this.list)
-		 })
-		},
-		courseBusiness(){
-            // url: '/app/common/course/business/'+data,
-			this.$api.courseBusiness(this.detail.businessId).then(res => {
-				this.businessData = res.data.data;
-			})
-		},
-		toFixed(number) {
-			if(number > 0) {
-				return number.toFixed(2)
-			} else {
-				return '0.00'
-			}
-		},
-		onStateChange(newstate, oldstate) {
-			if (newstate.detail.newstate == 'playing') {
-				//开始播放
-				if(this.timer){
-					clearInterval(this.timer);
-				}
-				this.timer = setInterval(this.timeEvent, 1500);//定时器
-			}
-			
-		},
-		closePlay(){
-			this.$store.commit('setPlaySectionId', {playSectionId  :0});
-			this.vid = ""
-			this.startStatus = false
-		},
-		timeEvent() {
-			let self = this
-		        var polyvPlayerContext = this.selectComponent('#playerVideo');
-				if (polyvPlayerContext != null) {
-					let PlayCurrentTime = polyvPlayerContext.getCurrentTime();
-					if(PlayCurrentTime>=this.listenSecond){
-						polyvPlayerContext.stop();
-						polyvPlayerContext.exitFullScreen();
-						clearInterval(this.timer);
-						this.timer = null
-						uni.showModal({
-							title: '提示',
-							content: '试听结束,购买课程可学习全部',
-							showCancel:false,
-							success: function(resst) {
-								self.closePlay()
-							}
-						});
-					}
-				}
-		},
-		openCourse(item){
-			item.down = !item.down
-			if(!item.down&&item.menuList.length==0){
-				this.getMenuList(item)
-			}
-		},
-		addShopCart(goodsId) {
-			// this.id
-			this.$api.addCart({goodsId: goodsId}).then(res => {
-				if(res.data.code==200){
-					uni.setStorageSync('updateCart',1) //提醒刷新购物车
-					uni.showToast({
-					    title: '添加成功'
-					});
-				}else{
-					this.$u.toast(res.data.msg);
-				}
-			});
-		},
-		goodsCourseList() {
-            // url: '/app/common/goods/course/list/'+ data,
-			this.$api.goodsCourseList(this.id).then(res => {
-				if(res.data.code==200){
-					for(let i=0;i<res.data.rows.length;i++){
-						let item = res.data.rows[i]
-						item.down = true
-						item.menuList = []
-					}
-					this.courseList = res.data.rows;
-					this.getFirstCourse();
-					// 不同
-					if (this.goodsType == 1) {
-						this.getCourseTeacher(res.data.rows)
-					}
-					
-				}
-			});
-		},
-		/**
-		 * 获取第一个有模块或者章的课程
-		 */
-		async getFirstCourse() {
-			for(let i = 0; i < this.courseList.length; i++) {
-				
-				let menuIndexOrFalse = await this.getCourseMenus(this.courseList[i]);
-				
-				if(menuIndexOrFalse !== false) {
-					this.menuIndex = [i,menuIndexOrFalse]
-					this.openCourse(this.courseList[i])
-					break
-				}
-			}
-		},
-		getCourseMenus(item) {
-			return new Promise(resolve => {
-                // url: '/app/common/course/menuList',
-				this.$api.menuList({courseId:item.courseId}).then(res => {
-					if(res.data.code==200){
-						for(let i=0;i<res.data.rows.length;i++){
-							if(res.data.rows[i].type == 1 || res.data.rows[i].type == 2) {
-								resolve(i)
-								break;
-							}
-						}
-					}
-				});
-			})
-			
-		},
-		getCourseTeacher(rows) {
-			//获取商品双师资模板
-			this.$api.getGoodsCourseTeacher({
-               goodsId: this.id
-            }).then((res1) => {
-            //   console.log(res1,'res1');
-              if(res1.data.data && res1.data.data.length > 0){
-                  //课程老师模板
-                  let teacherTel = res1.data.data;
-                  //商品课程
-                  let courses = rows
-                  teacherTel.forEach((tea) => {
-                    let dataList = []
-                    let teacherList = []
-                      courses.forEach((item) => {
-						let data = tea.courseList.filter(x => x.courseId == item.courseId)
-                        if(data && data.length > 0){
-                          dataList.push(item)
-                          teacherList = tea.courseList
-                        }
-                      })
-                      let result = {
-                        teaList:teacherList,
-                        courseList:dataList
-                      }
-                      this.goodsTeacher.push(result)
-                  })
-                  if(this.goodsTeacher && this.goodsTeacher.length > 0){
-                    let courseIds = []
-                    this.goodsTeacher.forEach((item) => {
-                        item.courseList.forEach((course) => {
-                          courseIds.push(course.courseId)
-                        })
-                    })
-                    if(courseIds.length > 0){
-                      courses.forEach((item) => {
-                          if(!courseIds.includes(item.courseId)){
-                              let data = {
-                                teaList:[],
-                                courseList: []
-                              }
-                              data.courseList.push(item)
-                              this.goodsTeacher.push(data)
-                          }
-                      })
-                    }
-                    this.goodsTeacher.forEach((item) => {
-                      if(item.courseList && item.courseList.length > 0){
-                        item.courseList[0].show = 1
-                      }
-                    })
-                  }
-              }else{
-                //没有双师资模板
-                rows.forEach((item) => {
-                  item.show = 1
-                  let data = {
-                      teaList:[],
-                      courseList: []
+    appCommonGoodsCourseModuleFreeExamList() {
+      // url: '/app/common/goods/course/moduleFreeExamList/'+data,
+      this.$api.appCommonGoodsCourseModuleFreeExamList(this.id).then((res) => {
+        if (res.data.data.length) {
+          this.freeMenuList = res.data.data;
+          this.list = [
+            {
+              name: "课程介绍",
+            },
+            {
+              name: "课程目录",
+            },
+            {
+              name: "赠送",
+            },
+          ];
+        } else {
+          this.list = [
+            {
+              name: "课程介绍",
+            },
+            {
+              name: "课程目录",
+            },
+          ];
+        }
+
+        console.log(this.list);
+      });
+    },
+    selectGoodType(index) {
+      if (index == this.selectGoodIndex) {
+        return;
+      }
+      this.selectGoodIndex = index;
+      this.changeData();
+    },
+    select(val) {
+      val.check = !val.check;
+      console.log(val, 6666);
+    },
+    checkboxChange(val) {
+      if (!this.isSingleChoice) return;
+      this.specList.slice(-1)[0].specAttrList.forEach((ele) => {
+        if (val.name != ele.specAttributeId) {
+          ele.check = false;
+        }
+      });
+    },
+    courseBusiness() {
+      // url: '/app/common/course/business/'+data,
+      this.$api.courseBusiness(this.detail.businessId).then((res) => {
+        this.businessData = res.data.data;
+      });
+    },
+    toFixed(number) {
+      if (number > 0) {
+        return number.toFixed(2);
+      } else {
+        return "0.00";
+      }
+    },
+    onStateChange(newstate, oldstate) {
+      if (newstate.detail.newstate == "playing") {
+        //开始播放
+        if (this.timer) {
+          clearInterval(this.timer);
+        }
+        this.timer = setInterval(this.timeEvent, 1500); //定时器
+      }
+    },
+    closePlay() {
+      this.$store.commit("setPlaySectionId", { playSectionId: 0 });
+      this.vid = "";
+      this.startStatus = false;
+    },
+    timeEvent() {
+      let self = this;
+      var polyvPlayerContext = this.selectComponent("#playerVideo");
+      if (polyvPlayerContext != null) {
+        let PlayCurrentTime = polyvPlayerContext.getCurrentTime();
+        if (PlayCurrentTime >= this.listenSecond) {
+          polyvPlayerContext.stop();
+          polyvPlayerContext.exitFullScreen();
+          clearInterval(this.timer);
+          this.timer = null;
+          uni.showModal({
+            title: "提示",
+            content: "试听结束,购买课程可学习全部",
+            showCancel: false,
+            success: function (resst) {
+              self.closePlay();
+            },
+          });
+        }
+      }
+    },
+    openCourse(item) {
+      item.down = !item.down;
+      if (!item.down && item.menuList.length == 0) {
+        this.getMenuList(item);
+      }
+    },
+    addShopCart(goodsIds) {
+      if (!Array.isArray(goodsIds)) {
+        goodsIds = [goodsIds];
+      }
+      this.$api.addCart({ goodsIds: goodsIds }).then((res) => {
+        if (res.data.code == 200) {
+          uni.setStorageSync("updateCart", 1); //提醒刷新购物车
+          uni.showToast({
+            title: "添加成功",
+          });
+        } else {
+          this.$u.toast(res.data.msg);
+        }
+      });
+    },
+    goodsCourseList() {
+      // url: '/app/common/goods/course/list/'+ data,
+      this.$api.goodsCourseList(this.id).then((res) => {
+        if (res.data.code == 200) {
+          for (let i = 0; i < res.data.rows.length; i++) {
+            let item = res.data.rows[i];
+            item.down = true;
+            item.menuList = [];
+          }
+          this.courseList = res.data.rows;
+          this.getFirstCourse();
+          // 不同
+          if (this.goodsType == 1) {
+            this.getCourseTeacher(res.data.rows);
+          }
+        }
+      });
+    },
+    /**
+     * 获取第一个有模块或者章的课程
+     */
+    async getFirstCourse() {
+      for (let i = 0; i < this.courseList.length; i++) {
+        let menuIndexOrFalse = await this.getCourseMenus(this.courseList[i]);
+
+        if (menuIndexOrFalse !== false) {
+          this.menuIndex = [i, menuIndexOrFalse];
+          this.openCourse(this.courseList[i]);
+          break;
+        }
+      }
+    },
+    getCourseMenus(item) {
+      return new Promise((resolve) => {
+        // url: '/app/common/course/menuList',
+        this.$api.menuList({ courseId: item.courseId }).then((res) => {
+          if (res.data.code == 200) {
+            for (let i = 0; i < res.data.rows.length; i++) {
+              if (res.data.rows[i].type == 1 || res.data.rows[i].type == 2) {
+                resolve(i);
+                break;
+              }
+            }
+          }
+        });
+      });
+    },
+    getCourseTeacher(rows) {
+      //获取商品双师资模板
+      this.$api
+        .getGoodsCourseTeacher({
+          goodsId: this.id,
+        })
+        .then((res1) => {
+          //   console.log(res1,'res1');
+          if (res1.data.data && res1.data.data.length > 0) {
+            //课程老师模板
+            let teacherTel = res1.data.data;
+            //商品课程
+            let courses = rows;
+            teacherTel.forEach((tea) => {
+              let dataList = [];
+              let teacherList = [];
+              courses.forEach((item) => {
+                let data = tea.courseList.filter(
+                  (x) => x.courseId == item.courseId
+                );
+                if (data && data.length > 0) {
+                  dataList.push(item);
+                  teacherList = tea.courseList;
+                }
+              });
+              let result = {
+                teaList: teacherList,
+                courseList: dataList,
+              };
+              this.goodsTeacher.push(result);
+            });
+            if (this.goodsTeacher && this.goodsTeacher.length > 0) {
+              let courseIds = [];
+              this.goodsTeacher.forEach((item) => {
+                item.courseList.forEach((course) => {
+                  courseIds.push(course.courseId);
+                });
+              });
+              if (courseIds.length > 0) {
+                courses.forEach((item) => {
+                  if (!courseIds.includes(item.courseId)) {
+                    let data = {
+                      teaList: [],
+                      courseList: [],
+                    };
+                    data.courseList.push(item);
+                    this.goodsTeacher.push(data);
                   }
-                  data.courseList.push(item)
-                  this.goodsTeacher.push(data)
-                })
-               
+                });
               }
-            }) 
-			console.log(this.goodsTeacher,'this.goodsTeacher');
-		},
-		//切换老师
-		switchTeacher(data, tindex, gTindex){
-			// console.log(data,'data');
-			this.States[gTindex] = tindex
-			this.teaIndex = tindex
-			this.goodsTeacher.forEach((item,index) => {
-				if(item.teaList && item.teaList.length > 0){
-				let list = item.teaList.filter(x => x.courseId == data.courseId)
-				if(list && list.length > 0){
-					item.courseList.forEach((course,courseIndex) => {
-						if(course.courseId == data.courseId){
-							this.$set(this.goodsTeacher[index].courseList[courseIndex],"show",1)
-						}else{
-							this.$set(this.goodsTeacher[index].courseList[courseIndex],"show",0)
-						}
-					})
-				}
-				}
-			})
-			console.log('切换后的this.goodsTeacher, ', this.goodsTeacher)
-		},
-		getMenuList(item) {
-			let self = this
-			this.$api.menuList({courseId:item.courseId}).then(res => {
-				if(res.data.code==200){
-					for(let i=0;i<res.data.rows.length;i++){
-						let item = res.data.rows[i]
-						item.down = true
-						item.id = item.menuId
-						item.name = item.menuName
-						
-						if(item.type==3){
-							//判断是否试听
-							item.tryListen = false
-							if(self.goodsAuditionConfigIdList.indexOf(item.id)!==-1){
-								item.tryListen = true
-							}	
-						}
-					}
-					item.menuList = res.data.rows
-				}
-			});
-		},
-        // 获取课程详情
-		getDetail() {
-			let self = this
-			let sectionIdList = []
-            // /app/common/goods/+data
-			this.$api.commonGoodsDetail(this.id).then(res => {
-				if(res.data.code==200){
-					if (res.data.data) {
-					if(res.data.data.mobileDetailHtml){
-						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) {
-							sectionIdList.push(itemChild.sectionId)//存储试听节ID
-						}
-						self.$store.commit('setGoodsAuditionConfigIdList', {goodsAuditionConfigIdList:sectionIdList});
-					}
-				}
-				}
-			});
-		},
-		buy(){
-			if(this.$method.isGoLogin()){
-				return
-			}
-			// 判断有没有规格选择
-			if (this.detail.specTemplateId) {
-				this.isCarOrBuy = 2
-				this.getSpecDetail()
-				return
-			}
-			this.$navTo.togo('/pages2/order/confirm_list?id='+this.id);
-		},
-		addCart(){
-			if(this.$method.isGoLogin()){
-				return
-			}
-			// 判断有没有规格选择
-			if (this.detail.specTemplateId) {
-				this.isCarOrBuy = 1
-				this.getSpecDetail()
-				return
-			}
-			this.addShopCart(this.id)
-		},
-		getSpecDetail() {
-			// || 35
-			this.$http({
-				url: `/app/common/spec/${this.detail.specTemplateId}`,
-				method: 'get',
-				noToken: true
-			}).then((res) => {
-				let data = res.data.data
-				if (data) {
-					this.toggleSkuShow = true
-					this.specList = data && (data.specList || [])
-					this.specList.forEach((item, index) => {
-						item.specAttrList.forEach((child, i_index) => {
-							this.$set(this.specList[index].specAttrList[i_index], 'check', false)
-						})
-					})
-				} else {
-					if (this.isCarOrBuy == 1) { // 加入购物车
-						this.addShopCart(this.id)
-					} else {
-						this.$navTo.togo('/pages2/order/confirm_list?id='+this.id);
-					}
-					this.closePop()
-				}
-			})
-		},
-		change(index){
-			this.current = index;
-		},
-		toShopcar() {
-			uni.navigateTo({
-			    url: '/pages4/shopping/shoppingCart'
-			})
-		},
-		getIsBuy() {
-			this.$http({
-				url: '/order/buyGoodsNotExpired',
-				method: 'get',
-				data: { goodsId: this.id }
-			}).then((res) => {
-				if (res.data.code == 200) {
-					if (res.data.data) { // 有data返回是已经购买过的课程
-						this.hadBuyCourse = res.data.data
-						this.bugCourseModel = true
-					}
-				}
-			})
-		},
-		changeKown() {
-			this.bugCourseModel = false
-		},
-		async toStudy() {
-			let item = this.hadBuyCourse
-			if (item.goodsType == 6) { // 进入直播课
-				this.toLive(item)
-				return
-			}
-			// /course/goodsRebuildStatus查询用户商品重修状态
-			let rebuildStatus = await this.courseGoodsRebuildStatus(item.goodsId, item.gradeId)
+              this.goodsTeacher.forEach((item) => {
+                if (item.courseList && item.courseList.length > 0) {
+                  item.courseList[0].show = 1;
+                }
+              });
+            }
+          } else {
+            //没有双师资模板
+            rows.forEach((item) => {
+              item.show = 1;
+              let data = {
+                teaList: [],
+                courseList: [],
+              };
+              data.courseList.push(item);
+              this.goodsTeacher.push(data);
+            });
+          }
+        });
+      console.log(this.goodsTeacher, "this.goodsTeacher");
+    },
+    //切换老师
+    switchTeacher(data, tindex, gTindex) {
+      // console.log(data,'data');
+      this.States[gTindex] = tindex;
+      this.teaIndex = tindex;
+      this.goodsTeacher.forEach((item, index) => {
+        if (item.teaList && item.teaList.length > 0) {
+          let list = item.teaList.filter((x) => x.courseId == data.courseId);
+          if (list && list.length > 0) {
+            item.courseList.forEach((course, courseIndex) => {
+              if (course.courseId == data.courseId) {
+                this.$set(
+                  this.goodsTeacher[index].courseList[courseIndex],
+                  "show",
+                  1
+                );
+              } else {
+                this.$set(
+                  this.goodsTeacher[index].courseList[courseIndex],
+                  "show",
+                  0
+                );
+              }
+            });
+          }
+        }
+      });
+      console.log("切换后的this.goodsTeacher, ", this.goodsTeacher);
+    },
+    getMenuList(item) {
+      let self = this;
+      this.$api.menuList({ courseId: item.courseId }).then((res) => {
+        if (res.data.code == 200) {
+          for (let i = 0; i < res.data.rows.length; i++) {
+            let item = res.data.rows[i];
+            item.down = true;
+            item.id = item.menuId;
+            item.name = item.menuName;
 
-			if (rebuildStatus == 0) {
-				this.$navTo.togo('/pages2/learn/details', {
-					gradeId: item.gradeId,
-					goodsId: item.goodsId,
-					orderGoodsId: item.orderGoodsId,
-				});
-				return;
-			}
+            if (item.type == 3) {
+              //判断是否试听
+              item.tryListen = false;
+              if (self.goodsAuditionConfigIdList.indexOf(item.id) !== -1) {
+                item.tryListen = true;
+              }
+            }
+          }
+          item.menuList = res.data.rows;
+        }
+      });
+    },
+    // 获取课程详情
+    getDetail() {
+      let self = this;
+      let sectionIdList = [];
+      // /app/common/goods/+data
+      this.$api.commonGoodsDetail(this.id).then((res) => {
+        if (res.data.code == 200) {
+          if (res.data.data) {
+            if (res.data.data.mobileDetailHtml) {
+              res.data.data.mobileDetailHtml =
+                res.data.data.mobileDetailHtml.replace(
+                  /<img/gi,
+                  '<img style="max-width:100%;"'
+                );
+            }
 
-			// /lock/lockStatus
-			this.$api.lockLockStatus({
-				action: 'jxjy',
-				uuid:this.$method.getUuid()
-			}).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.$http({
-							url: '/course/courseList',
-							method: 'get',
-							data: {
-								pageNum: 1,
-								pageSize: 1,
-								goodsId: item.goodsId,
-								gradeId: item.gradeId,
-								orderGoodsId: item.orderGoodsId,
-							},
-						})
-						.then(res => {
-							if (res.data.code == 200) {
-								if(res.data.total > 1) {
-									// this.$navTo.togo(`/pages2/wd/course?id=${item.goodsId}&gid=${item.gradeId}&orderGoodsId=${item.orderGoodsId}`);
-									uni.navigateTo({
-										url: `/pages3/polyv/detail?id=''&goodsId=${item.goodsId}&orderGoodsId=${item.orderGoodsId}&gradeId=${item.gradeId}`
-									})
-								} else if(res.data.total == 1) {
-									uni.navigateTo({
-										url: `/pages3/polyv/detail?id=${res.data.rows[0].courseId}&goodsId=${item.goodsId}&orderGoodsId=${item.orderGoodsId}&gradeId=${item.gradeId}`
-									})
-								} else {
-									uni.showToast({
-										icon:'none',
-										title:'暂无可观看的视频课程'
-									})
-								}
+            self.detail = res.data.data;
+            this.courseBusiness();
+            if (self.detail.goodsAuditionConfig) {
+              self.listenConfigList = JSON.parse(
+                self.detail.goodsAuditionConfig
+              );
+              for (var itemChild of self.listenConfigList) {
+                sectionIdList.push(itemChild.sectionId); //存储试听节ID
+              }
+              self.$store.commit("setGoodsAuditionConfigIdList", {
+                goodsAuditionConfigIdList: sectionIdList,
+              });
+            }
+          }
+        }
+      });
+    },
+    buy() {
+      if (this.$method.isGoLogin()) {
+        return;
+      }
+      // 判断有没有规格选择
+      if (this.detail.specTemplateId) {
+        this.isCarOrBuy = 2;
+        this.getSpecDetail();
+        return;
+      }
+      this.$navTo.togo("/pages2/order/confirm_list?id=" + this.id);
+    },
+    addCart() {
+      if (this.$method.isGoLogin()) {
+        return;
+      }
+      // 判断有没有规格选择
+      if (this.detail.specTemplateId) {
+        this.isCarOrBuy = 1;
+        this.getSpecDetail();
+        return;
+      }
+      this.addShopCart(this.id);
+    },
+    getSpecDetail() {
+      // || 35
+      this.checkedAttrs = [];
+      this.$http({
+        url: `/app/common/spec/${this.detail.specTemplateId}`,
+        method: "get",
+        noToken: true,
+      }).then((res) => {
+        let data = res.data.data;
+        console.log(data, "data");
+        if (data) {
+          this.toggleSkuShow = true;
+          this.specAttrPriceList = data.specAttrPriceList;
+          this.specList = this.changeData(data.specList || []);
+        } else {
+          if (this.isCarOrBuy == 1) {
+            // 加入购物车
+            this.addShopCart(this.id);
+          } else {
+            this.$navTo.togo("/pages2/order/confirm_list?id=" + this.id);
+          }
+          this.closePop();
+        }
+      });
+    },
+    changeData(data = this.specList) {
+      let len = data.length;
+      if (!len) return [];
+      data[len - 1].specAttrList.forEach((e, i) => {
+        e.check = e.check || false;
+        let id = e.specAttributeId;
+        if (len > 1) {
+          id =
+            data[0].specAttrList[this.selectGoodIndex].specAttributeId +
+            "," +
+            id;
+        }
+        let item = this.specAttrPriceList.find((e) => e.specAttrIds == id);
+        if (item) {
+          e.standPrice = item.standPrice;
+          e.goodsId = item.goodsId;
+        }
+      });
+      // data.forEach((item, index) => {
+      // 	if (index == len - 1) {
+      // 		item.specAttrList.forEach((e, i) => {
+      // 			 e.check = false
 
-							}
-						})		
-				}
-			})
-		},
-		toLive(item) {
-			this.$api.courseCourseList({
-				pageNum: 1,
-				pageSize: 1,
-				goodsId: item.goodsId,
-				gradeId: 0,
-				orderGoodsId: item.orderGoodsId,
-			}).then(res => {
-				if (res.data.code == 200) {
-					if(res.data.total > 1) {
-						// uni.navigateTo({
-						// 	url:'/pages5/liveDetail/course?orderGoodsId='+item.orderGoodsId+'&goodsId='+item.goodsId+'&gradeId=0'
-						// })
-						uni.navigateTo({
-							url:'/pages3/live/detail?orderGoodsId='+item.orderGoodsId+'&goodsId='+item.goodsId+'&gradeId=0&courseId=""'
-						})
-					} else if(res.data.total == 1) {
-						uni.navigateTo({
-							url:'/pages3/live/detail?orderGoodsId='+item.orderGoodsId+'&goodsId='+item.goodsId+'&gradeId=0&courseId='+ res.data.rows[0].courseId
-						})
-					} else {
-						uni.showToast({
-							icon:'none',
-							title:'暂无可观看的直播课程'
-						})
-					}
-				
-				}
-			})
-		},
-		/**
-		 * @param {Object} goodsId 商品id
-		 * 查询商品重修状态
-		 */
-		courseGoodsRebuildStatus(goodsId, gradeId) {
-			return new Promise(resolve => {
-				this.$http({
-					url: '/course/goodsRebuildStatus',
-					method: 'get',
-					data: {
-						goodsId: goodsId,
-						gradeId: gradeId
-					},
-					// noLoading: true,
-					// compleLoading: true, // 请求成功是否还要继续显示加载中
-				})
-				.then(res => {
-					resolve(res.data.data)
-				})
-			})
-		},
-		closePop() {
-            this.toggleSkuShow = false
-			this.skuItem = {}
-        },
-		selectSku(item, index, c_index) {
-			this.specList[index].specAttrList.forEach((i_item, i_index) => {
-				if (item.specAttributeId == i_item.specAttributeId) {
-					this.$set(this.specList[index].specAttrList[i_index], 'check', true)
-				} else {
-					this.$set(this.specList[index].specAttrList[i_index], 'check', false)
-				}
-			})
-			// console.log('this.specList', this.specList, this.isCheckSku)
-			if (this.specList.length == this.isCheckSku) {
-				let specAttrIds = []
-				this.specList.forEach((item) => {
-					let result = item.specAttrList.find(e => e.check)
-					if (result) {
-						specAttrIds.push(result.specAttributeId)
-					}
-				})
-				this.getGoodsInfos(specAttrIds)
-			}
-        },
-		// 获取规格属性值对应的商品信息
-		getGoodsInfos(specAttrIds) {
-			this.$http({
-				url: '/app/common/attr/goods',
-				method: 'get',
-				data: {
-					specTemplateId: this.detail.specTemplateId,
-					specAttrIds: specAttrIds.join(',')
-				},
-				noToken: true
-			}).then((res) => {
-				if (res.data.code == 200) {
-					this.skuItem = res.data.data || {}
-				} else {
-					this.skuItem = {}
-					this.$u.toast('商品已下架, 请重新选择')
-				}
-			})
-		},
-        rightNowBuy() {
-			if (this.specList.length != this.isCheckSku) {
-				this.$u.toast('请先选择所有的规格')
-				return
-			}
-			if (this.skuItem.goodsStatus == 0) {
-				this.$u.toast('商品已下架, 请重新选择')
-				return
-			}
-			
-			let sysTime = this.$method.timest()
-			if (sysTime <= this.skuItem.validityStartTime || sysTime >= this.skuItem.validityEndTime) {
-				this.$u.toast('商品不在有效期, 请重新选择')
-				return
-			}
+      // 		})
+      // 	}
+      // })
+      return data;
+    },
+    change(index) {
+      this.current = index;
+    },
+    toShopcar() {
+      uni.navigateTo({
+        url: "/pages4/shopping/shoppingCart",
+      });
+    },
+    getIsBuy() {
+      this.$http({
+        url: "/order/buyGoodsNotExpired",
+        method: "get",
+        data: { goodsId: this.id },
+      }).then((res) => {
+        if (res.data.code == 200) {
+          if (res.data.data) {
+            // 有data返回是已经购买过的课程
+            this.hadBuyCourse = res.data.data;
+            this.bugCourseModel = true;
+          }
+        }
+      });
+    },
+    changeKown() {
+      this.bugCourseModel = false;
+    },
+    async toStudy() {
+      let item = this.hadBuyCourse;
+      if (item.goodsType == 6) {
+        // 进入直播课
+        this.toLive(item);
+        return;
+      }
+      // /course/goodsRebuildStatus查询用户商品重修状态
+      let rebuildStatus = await this.courseGoodsRebuildStatus(
+        item.goodsId,
+        item.gradeId
+      );
 
-            if (this.isCarOrBuy == 1) { // 加入购物车
-				this.addShopCart(this.skuItem.goodsId)
-			} else {
-				this.$navTo.togo('/pages2/order/confirm_list?id='+this.skuItem.goodsId);
-			}
-			this.closePop()
+      if (rebuildStatus == 0) {
+        this.$navTo.togo("/pages2/learn/details", {
+          gradeId: item.gradeId,
+          goodsId: item.goodsId,
+          orderGoodsId: item.orderGoodsId,
+        });
+        return;
+      }
+
+      // /lock/lockStatus
+      this.$api
+        .lockLockStatus({
+          action: "jxjy",
+          uuid: this.$method.getUuid(),
+        })
+        .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.$http({
+              url: "/course/courseList",
+              method: "get",
+              data: {
+                pageNum: 1,
+                pageSize: 1,
+                goodsId: item.goodsId,
+                gradeId: item.gradeId,
+                orderGoodsId: item.orderGoodsId,
+              },
+            }).then((res) => {
+              if (res.data.code == 200) {
+                if (res.data.total > 1) {
+                  // this.$navTo.togo(`/pages2/wd/course?id=${item.goodsId}&gid=${item.gradeId}&orderGoodsId=${item.orderGoodsId}`);
+                  uni.navigateTo({
+                    url: `/pages3/polyv/detail?id=''&goodsId=${item.goodsId}&orderGoodsId=${item.orderGoodsId}&gradeId=${item.gradeId}`,
+                  });
+                } else if (res.data.total == 1) {
+                  uni.navigateTo({
+                    url: `/pages3/polyv/detail?id=${res.data.rows[0].courseId}&goodsId=${item.goodsId}&orderGoodsId=${item.orderGoodsId}&gradeId=${item.gradeId}`,
+                  });
+                } else {
+                  uni.showToast({
+                    icon: "none",
+                    title: "暂无可观看的视频课程",
+                  });
+                }
+              }
+            });
+          }
+        });
+    },
+    toLive(item) {
+      this.$api
+        .courseCourseList({
+          pageNum: 1,
+          pageSize: 1,
+          goodsId: item.goodsId,
+          gradeId: 0,
+          orderGoodsId: item.orderGoodsId,
+        })
+        .then((res) => {
+          if (res.data.code == 200) {
+            if (res.data.total > 1) {
+              // uni.navigateTo({
+              // 	url:'/pages5/liveDetail/course?orderGoodsId='+item.orderGoodsId+'&goodsId='+item.goodsId+'&gradeId=0'
+              // })
+              uni.navigateTo({
+                url:
+                  "/pages3/live/detail?orderGoodsId=" +
+                  item.orderGoodsId +
+                  "&goodsId=" +
+                  item.goodsId +
+                  '&gradeId=0&courseId=""',
+              });
+            } else if (res.data.total == 1) {
+              uni.navigateTo({
+                url:
+                  "/pages3/live/detail?orderGoodsId=" +
+                  item.orderGoodsId +
+                  "&goodsId=" +
+                  item.goodsId +
+                  "&gradeId=0&courseId=" +
+                  res.data.rows[0].courseId,
+              });
+            } else {
+              uni.showToast({
+                icon: "none",
+                title: "暂无可观看的直播课程",
+              });
+            }
+          }
+        });
+    },
+    /**
+     * @param {Object} goodsId 商品id
+     * 查询商品重修状态
+     */
+    courseGoodsRebuildStatus(goodsId, gradeId) {
+      return new Promise((resolve) => {
+        this.$http({
+          url: "/course/goodsRebuildStatus",
+          method: "get",
+          data: {
+            goodsId: goodsId,
+            gradeId: gradeId,
+          },
+          // noLoading: true,
+          // compleLoading: true, // 请求成功是否还要继续显示加载中
+        }).then((res) => {
+          resolve(res.data.data);
+        });
+      });
+    },
+    closePop() {
+      this.toggleSkuShow = false;
+      this.skuItem = {};
+    },
+    // 获取规格属性值对应的商品信息
+    getGoodsInfos(specAttrIds) {
+      this.$http({
+        url: "/app/common/attr/goods",
+        method: "get",
+        data: {
+          specTemplateId: this.detail.specTemplateId,
+          specAttrIds: specAttrIds.join(","),
+        },
+        noToken: true,
+      }).then((res) => {
+        if (res.data.code == 200) {
+          this.skuItem = res.data.data || {};
+        } else {
+          this.skuItem = {};
+          this.$u.toast("商品已下架, 请重新选择");
+        }
+      });
+    },
+    rightNowBuy() {
+      let goodsIds = [...new Set(this.goodsIds)];
+      this.$api.checkGoodsStatus({ goodsIds }).then((res) => {
+        if (res.data.code == 500) {
+          return this.$u.toast(res.data.msg);
         }
-	}
+        if (this.isCarOrBuy == 1) {
+          // 加入购物车
+          this.addShopCart(goodsIds);
+        } else {
+          if (this.isSingleChoice) {
+            this.$navTo.togo("/pages2/order/confirm_list?id=" + goodsIds);
+          } else {
+            let data = [];
+            goodsIds.forEach((id) => {
+              data.push(this.specAttrPriceList.find((e) => e.goodsId == id));
+            });
+            this.$store.commit("setShoppingCartList", {
+              shoppingCartList: data,
+            });
+            this.$navTo.togo("/pages2/order/confirm_pay");
+          }
+        }
+        this.closePop();
+      });
+    },
+  },
 };
 </script>
 <style >
-	page{
-		background-color: #F2F2F2;
-	}
+page {
+  background-color: #f2f2f2;
+}
 </style>
 <style lang="scss" scope>
-@import './index.scss';
-	.video_t2 {
-		font-size: 24rpx;
-		font-family: PingFang SC;
-		font-weight: 500;
-		color: #666666;
-	}
-	.video_t1 {
-		height: 80rpx;
-		color: #333333;
-		line-height: 80rpx;
-		font-size: 30rpx;
-		font-family: PingFang SC;
-		font-weight: bold;
-		color: #333333;
-		overflow: hidden;
-		text-overflow:ellipsis;
-		white-space: nowrap;
-	}
-	.video_t1_t {
-		display: flex;
-		flex-direction: column;
-		height: 80rpx;
-		color: #333333;
-		text-align: center;
-		align-items: center;
-		border-left: solid 1px #d6d6db;
-	}
-	.video_play {
-		position: absolute;
-		width: 95rpx;
-		height: 95rpx;
-		top: 0;
-		left: 0;
-		right: 0;
-		bottom: 0;
-		margin: auto;
-	}
-	.video_box {
-		position: relative;
-	}
-	.contents {
-		width: 100%;
-		height: 100%;
-		background-color: #ffffff;
-		margin-top: 16rpx;
-		overflow: hidden;
-	}
-	.cou_title {
-		padding: 24rpx 32rpx 40rpx 32rpx;
-		display: flex;
-		flex-direction: column;
-		justify-content: space-around;
-	}
-	.prices {
-		.price_word {
-			font-size: 40rpx;
-			font-weight: 800;
-			color: #FC3F3F;
-		}
-		.sale {
-			color: #999999;
-			font-size: 28rpx;
-			margin-left: 8rpx;
-		}
-		.price_line {
-			color: #999999;
-			font-size: 28rpx;
-			text-decoration:line-through;
-			font-weight: 400;
-		}
-		.free {
-			font-size: 32rpx;
-		}
-	}
-	// tab
-	.tabs {
-		// width: 100%;
-		height: 78rpx;
-		display: flex;
-		align-items: center;
-		justify-content: space-between;
-		background-color: #F2F7FF;
-		border-radius: 38rpx;
-		margin: 24rpx;
-		padding: 0rpx 5rpx;
-		.tab_item {
-			width: 345rpx;
-			height: 65rpx;
-			line-height: 65rpx;
-			font-size: 28rpx;
-			font-weight: bold;
-			border-radius: 32rpx;
-			text-align: center;
-			color: #333;
-			&.nactive {
-				color: #fff;
-				background-color: #3577E8;
-			}
-			&.twoBtn {
-				width: 50%;
-			}
-			&.threeBtn {
-				width: 33%;
-			}
-		}
-		// /deep/  .u-tabs {
-		// 	background:none!important;
-		// }
-	}
-	.courseName{
-		white-space:nowrap;
-		overflow:hidden;
-		text-overflow:ellipsis; 
-	}
-	.videoBox{
-		background-color: #FFFFFF;
-		width: 100%;
-		/* height: 680rpx; */
-		z-index: 999;
-	}
-	.icon_up{
-		width: 32rpx;
-		height: 32rpx;
-	}
-	.courseItemBox{
-		background: #FFFFFF;
-		border-radius: 16rpx;
-		padding: 0 10rpx;
-		margin-bottom: 20rpx;
-	}
-	.courseItem{
-		height: 80rpx;
-		color: #333333;
-		font-size: 32rpx;
-		line-height: 80rpx;
-		font-weight: bold;
-		display: flex;
-		justify-content: space-between;
+@import "./index.scss";
 
-	}
-	.content{
-		background-color: #FFFFFF;
-		width: 100%;
-	}
-	.btn2 {
-		width: 187rpx;
-		height: 79rpx;
-		line-height: 79rpx;
-		background: #FC3F3F;
-		border-radius: 40rpx;
-		text-align: center;
-		font-size: 24rpx;
-	}
-	.btn1 {
-		width: 187rpx;
-		height: 79rpx;
-		line-height: 79rpx;
-		background: #FFB102;
-		border-radius: 40rpx;
-		text-align: center;
-		margin-right: 11rpx;
-		font-size: 24rpx;
-	}
-	
-	.blackFont{
-		margin: 0 4rpx;
-	}
-	.wk_icon{
-		width: 24rpx;
-		height: 24rpx;
-		margin-right: 12rpx;
-	}
-	.noteTag, .blackFont {
-		font-size: 30rpx;
-		font-family: PingFang SC;
-		font-weight: 400;
-		color: #A7B0B8;
-		align-items: center;
-	}
-	.priceTag{
-		/* font-size: 30rpx;
+.video_t2 {
+  font-size: 24rpx;
+  font-family: PingFang SC;
+  font-weight: 500;
+  color: #666666;
+}
+
+.video_t1 {
+  height: 80rpx;
+  color: #333333;
+  line-height: 80rpx;
+  font-size: 30rpx;
+  font-family: PingFang SC;
+  font-weight: bold;
+  color: #333333;
+  overflow: hidden;
+  text-overflow: ellipsis;
+  white-space: nowrap;
+}
+
+.video_t1_t {
+  display: flex;
+  flex-direction: column;
+  height: 80rpx;
+  color: #333333;
+  text-align: center;
+  align-items: center;
+  border-left: solid 1px #d6d6db;
+}
+
+.video_play {
+  position: absolute;
+  width: 95rpx;
+  height: 95rpx;
+  top: 0;
+  left: 0;
+  right: 0;
+  bottom: 0;
+  margin: auto;
+}
+
+.video_box {
+  position: relative;
+}
+
+.contents {
+  width: 100%;
+  height: 100%;
+  background-color: #ffffff;
+  margin-top: 16rpx;
+  overflow: hidden;
+}
+
+.cou_title {
+  padding: 24rpx 32rpx 40rpx 32rpx;
+  display: flex;
+  flex-direction: column;
+  justify-content: space-around;
+}
+
+.prices {
+  .price_word {
+    display: flex;
+    font-size: 44rpx;
+    font-weight: 800;
+    color: #fc3f3f;
+    margin-bottom: 8rpx;
+    view::before {
+      content: "¥";
+      font-size: 26rpx;
+      font-weight: bold;
+    }
+  }
+
+  .sale {
+    color: #999999;
+    font-size: 28rpx;
+    margin-left: 8rpx;
+  }
+
+  .price_line {
+    color: #999999;
+    font-size: 28rpx;
+    text-decoration: line-through;
+    font-weight: 400;
+  }
+
+  .free {
+    font-size: 32rpx;
+  }
+}
+
+// tab
+.tabs {
+  // width: 100%;
+  height: 78rpx;
+  display: flex;
+  align-items: center;
+  justify-content: space-between;
+  background-color: #f2f7ff;
+  border-radius: 38rpx;
+  margin: 24rpx;
+  padding: 0rpx 5rpx;
+
+  .tab_item {
+    width: 345rpx;
+    height: 65rpx;
+    line-height: 65rpx;
+    font-size: 28rpx;
+    font-weight: bold;
+    border-radius: 32rpx;
+    text-align: center;
+    color: #333;
+
+    &.nactive {
+      color: #fff;
+      background-color: #3577e8;
+    }
+
+    &.twoBtn {
+      width: 50%;
+    }
+
+    &.threeBtn {
+      width: 33%;
+    }
+  }
+
+  // /deep/  .u-tabs {
+  // 	background:none!important;
+  // }
+}
+
+.courseName {
+  white-space: nowrap;
+  overflow: hidden;
+  text-overflow: ellipsis;
+}
+
+.videoBox {
+  background-color: #ffffff;
+  width: 100%;
+  /* height: 680rpx; */
+  z-index: 999;
+}
+
+.icon_up {
+  width: 32rpx;
+  height: 32rpx;
+}
+
+.courseItemBox {
+  background: #ffffff;
+  border-radius: 16rpx;
+  padding: 0 10rpx;
+  margin-bottom: 20rpx;
+}
+
+.courseItem {
+  height: 80rpx;
+  color: #333333;
+  font-size: 32rpx;
+  line-height: 80rpx;
+  font-weight: bold;
+  display: flex;
+  justify-content: space-between;
+}
+
+.content {
+  background-color: #ffffff;
+  width: 100%;
+}
+
+.btn2 {
+  width: 187rpx;
+  height: 79rpx;
+  line-height: 79rpx;
+  background: #fc3f3f;
+  border-radius: 40rpx;
+  text-align: center;
+  font-size: 24rpx;
+}
+
+.btn1 {
+  width: 187rpx;
+  height: 79rpx;
+  line-height: 79rpx;
+  background: #ffb102;
+  border-radius: 40rpx;
+  text-align: center;
+  margin-right: 11rpx;
+  font-size: 24rpx;
+}
+
+.wk_icon {
+  width: 24rpx;
+  height: 24rpx;
+  margin-right: 12rpx;
+}
+
+.noteTag,
+.blackFont {
+  font-size: 26rpx;
+  font-family: PingFang SC;
+  font-weight: 400;
+  color: #999999;
+  align-items: center;
+  margin: 0 4rpx;
+  line-height: 60rpx;
+}
+
+.priceTag {
+  /* font-size: 30rpx;
 		font-family: PingFang SC;
 		font-weight: bold;
 		color: #FF2D55; */
-        width: 60rpx;
-        height: 40rpx;
-        line-height: 40rpx;
-        text-align: center;
-        border: 1rpx solid #333;
-	}
-	.titleTag{
-		font-size: 32rpx;
-		font-weight: bold;
-		color: #333333;
-		// margin-left: 8rpx;
-	}
-	.yearTag{
-		width: 80rpx;
-		height: 32rpx;
-		background: #EBF5FF;
-		border: 2rpx solid #007AFF;
-		border-radius: 16rpx;
-		font-size: 24rpx;
-		color: #007AFF;
-		text-align: center;
-		line-height: 32rpx;
-	}
-	.itemBox{
-		background: #FFFFFF;
-		box-shadow: 0rpx 10rpx 9rpx 1rpx rgba(165, 196, 239, 0.1);
-		border-radius: 24rpx;
-		width: 100%;
-		padding: 20rpx;
-		margin-bottom: 20rpx;
-	}
-	// 老师名字样式
+  width: 60rpx;
+  height: 40rpx;
+  line-height: 40rpx;
+  text-align: center;
+  border: 1rpx solid #333;
+}
+
+.titleTag {
+  font-size: 32rpx;
+  font-weight: bold;
+  color: #333333;
+  // margin-left: 8rpx;
+}
+
+.yearTag {
+  width: 80rpx;
+  height: 32rpx;
+  background: #ebf5ff;
+  border: 2rpx solid #007aff;
+  border-radius: 16rpx;
+  font-size: 24rpx;
+  color: #007aff;
+  text-align: center;
+  line-height: 32rpx;
+}
+
+.itemBox {
+  background: #ffffff;
+  box-shadow: 0rpx 10rpx 9rpx 1rpx rgba(165, 196, 239, 0.1);
+  border-radius: 24rpx;
+  width: 100%;
+  padding: 20rpx;
+  margin-bottom: 20rpx;
+}
+
+// 老师名字样式
 .teacher_names {
-	display: flex;
-	padding-bottom: 15rpx;
-    border-bottom: 2rpx solid #F0F0F0;
-	.names {
-		padding: 6rpx 12rpx;
-		font-size: 26rpx;
-		color: #969696;
-		background: #F8F8F8;
-		border-radius: 8rpx;
-		margin-right: 10rpx;
-		&.nactive {
-			color: #3F8DFD;
-			background: #F2F7FF;
-		}
-	}
+  display: flex;
+  padding-bottom: 15rpx;
+  border-bottom: 2rpx solid #f0f0f0;
+
+  .names {
+    padding: 6rpx 12rpx;
+    font-size: 26rpx;
+    color: #969696;
+    background: #f8f8f8;
+    border-radius: 8rpx;
+    margin-right: 10rpx;
+
+    &.nactive {
+      color: #3f8dfd;
+      background: #f2f7ff;
+    }
+  }
 }
 </style>

+ 195 - 91
pages3/course/index.scss

@@ -1,60 +1,69 @@
 // 和pages2/bank/detail 页面公用的样式
 // 底部按钮
-.bottomBox{
-    position: fixed;
-    bottom: 0;
-    width: 100%;
-    left: 0;
-    height: 132rpx ;
-    background-color: #FFFFFF;
-    display: flex;
-    justify-content: space-between;
-    align-items: center;
-    padding: 0 24rpx;
-    box-shadow: 0rpx -2rpx 6rpx 0rpx rgba(0,0,0,0.1000);
-    .icons {
-        display: flex;
-        .share_w {
-            font-size: 24rpx;
-            color: #333;
-            margin-top: 6rpx;
-        }
-        .icon_item {
-            text-align: center;
-        }
-        .ones {
-            margin-left: 32rpx;
-            margin-right: 60rpx;
-            position: relative;
-            top: 0;
-            left: 0;
-            /deep/ button::after{
-                border: none; 
-            }
-            .bt_share {
-                width: 38rpx;
-                height: 38rpx;
-                position: absolute;
-                top: 3rpx;
-                left: 0;
-                z-index: 100;
-                opacity: 0;
-            }
-        }
-    }
-    .share {
-        width: 38rpx;
-        height: 38rpx;
-        position: relative;
-        top: 3rpx;
-        z-index: 99;
-        margin-bottom: 4rpx;
-    }
-    .shopcar {
-        width: 40rpx;
-        height: 40rpx;
-    }
+.bottomBox {
+	position: fixed;
+	bottom: 0;
+	width: 100%;
+	left: 0;
+	height: 132rpx;
+	background-color: #FFFFFF;
+	display: flex;
+	justify-content: space-between;
+	align-items: center;
+	padding: 0 24rpx;
+	box-shadow: 0rpx -2rpx 6rpx 0rpx rgba(0, 0, 0, 0.1000);
+
+	.icons {
+		display: flex;
+
+		.share_w {
+			font-size: 24rpx;
+			color: #333;
+			margin-top: 6rpx;
+		}
+
+		.icon_item {
+			text-align: center;
+		}
+
+		.ones {
+			margin-left: 32rpx;
+			margin-right: 60rpx;
+			position: relative;
+			top: 0;
+			left: 0;
+
+			/deep/ button::after {
+				border: none;
+			}
+
+			.bt_share {
+				width: 38rpx;
+				height: 38rpx;
+				position: absolute;
+				top: 3rpx;
+				left: 0;
+				z-index: 100;
+				opacity: 0;
+			}
+		}
+	}
+
+	.share {
+		width: 38rpx;
+		height: 38rpx;
+		position: relative;
+		top: 3rpx;
+		z-index: 99;
+		margin-bottom: 4rpx;
+	}
+
+	.shopcar {
+		width: 40rpx;
+		height: 40rpx;
+	}
 }
+
 // 弹窗
 .had_bugCourse {
 	width: 600rpx;
@@ -62,6 +71,7 @@
 	position: relative;
 	top: 0;
 	left: 0;
+
 	.share {
 		width: 100%;
 		height: 288rpx;
@@ -70,6 +80,7 @@
 		left: 0;
 		z-index: 99;
 	}
+
 	.tips {
 		width: 100%;
 		height: 288rpx;
@@ -78,22 +89,26 @@
 		top: 0;
 		left: 0;
 		z-index: 100;
+
 		.warns {
 			margin: 56rpx 0rpx 24rpx;
 			font-size: 36rpx;
 			font-weight: bold;
 			color: #222222;
 		}
+
 		.words {
 			font-size: 32rpx;
 			font-weight: 400;
 			color: #222222;
 			margin-top: 6rpx;
+
 			>text {
 				color: #3577E8;
 			}
 		}
 	}
+
 	.tip_botton {
 		width: 100%;
 		height: 136rpx;
@@ -103,7 +118,9 @@
 		position: absolute;
 		left: 0;
 		bottom: 0;
-		.confirm_btn, .cancel_btn {
+
+		.confirm_btn,
+		.cancel_btn {
 			width: 236rpx;
 			height: 88rpx;
 			line-height: 88rpx;
@@ -112,10 +129,12 @@
 			font-size: 32rpx;
 			font-weight: 500;
 		}
+
 		.confirm_btn {
 			color: #fff;
 			background-color: #3577E8;
 		}
+
 		.cancel_btn {
 			color: #222222;
 			background-color: #F0F0F0;
@@ -125,24 +144,27 @@
 
 // 选择规格弹窗
 .popup_box {
-    width: 100%;
-    height: 938rpx;
-    padding: 56rpx 56rpx 0rpx;
+	width: 100%;
+	height: 938rpx;
+	padding: 56rpx 56rpx 0rpx;
 	position: relative;
 	top: 0rpx;
 	left: 0rpx;
-    .headers {
-      width: 100%;
-      display: flex;
-      align-items: center;
-      justify-content: space-between;
-	  margin-bottom: 48rpx;
-      .grade {
-        font-size: 40rpx;
-        font-weight: bold;
-        color: #222222;
-      }
-    }
+
+	.headers {
+		width: 100%;
+		display: flex;
+		align-items: center;
+		justify-content: space-between;
+		margin-bottom: 48rpx;
+
+		.grade {
+			font-size: 40rpx;
+			font-weight: bold;
+			color: #222222;
+		}
+	}
+
 	.pop_prices {
 		width: 100%;
 		min-height: 120rpx;
@@ -150,35 +172,42 @@
 		align-items: center;
 		justify-content: space-between;
 		margin: 0rpx 0rpx 40rpx 0rpx;
+
 		.imgs {
 			width: 204rpx;
 			height: 120rpx;
 			border-radius: 16rpx;
 			margin-right: 24rpx;
 		}
+
 		.rights {
 			width: 100%;
 			min-height: 120rpx;
 		}
+
 		.goods_titles {
 			font-size: 28rpx;
 			font-weight: 500;
 			color: #222222;
 		}
+
 		.goods_price {
 			font-size: 28rpx;
 			font-weight: 500;
 			color: #FC3F3F;
-			margin-top: 20rpx;	
+			margin-top: 20rpx;
 		}
 	}
+
 	.lines {
 		width: 100%;
 		height: 2rpx;
 		background: #F0F0F0;
 	}
+
 	.check_con {
 		width: 100%;
+
 		// height: 500rpx;
 		// overflow-y: scroll;
 		.items_con {
@@ -186,51 +215,126 @@
 			// height: 200rpx;
 			// overflow-y: scroll;
 		}
+
 		.check_items {
 			width: 100%;
 			// height: 500rpx;
 		}
+
 		.grades {
-			font-size: 28rpx;
+			font-size: 32rpx;
 			font-weight: 400;
 			color: #969696;
-			margin-bottom: 24rpx;
+			margin-bottom: 32rpx;
 			margin-top: 40rpx;
 		}
+
 		.grade_names {
 			display: flex;
 			flex-wrap: wrap;
 		}
+
 		.course_items {
-			height: 56rpx;
+			margin-bottom: 16rpx;
+			padding: 0 24rpx;
+			height: 84rpx;
+			line-height: 84rpx;
 			background: #F8F8F8;
-			border-radius: 66rpx;
-			padding: 12rpx 30rpx;
-			font-size: 24rpx;
-			color: #222222;
-			margin-bottom: 24rpx;
+			font-size: 28rpx;
+			border-radius: 24rpx;
 			margin-right: 32rpx;
+			color: #222222;
+
 			&.nactive {
-				background: #D5E4FF;
+				background: #EBF2FF;
+			}
+		}
+
+		.check_box_item {
+			padding: 0 32rpx 0 28rpx;
+			background: #F8F8F8;
+			margin-bottom: 32rpx;
+			height: 84rpx;
+			line-height: 84rpx;
+			display: flex;
+			align-items: center;
+			font-size: 28rpx;
+
+			.price_box {
+				margin-left: 10rpx;
+				width: 520rpx;
+				display: flex;
+				align-items: center;
+				justify-content: space-between;
+
+				.price {
+					font-weight: bold;
+					color: #EB445A;
+					font-size: 34rpx;
+				}
+			}
+
+			.check_box_item_titme {
+				max-width: 400rpx;
+				overflow: hidden;
+				text-overflow: ellipsis;
+				white-space: nowrap;
+			}
+		}
+
+		.selected {
+			background: #EBF2FF;
+
+			.check_box_item_titme {
 				color: #3F8DFD;
 			}
+
 		}
 	}
+
 	.confirm_btns {
+		width: 638rpx;
+		box-sizing: border-box;
 		position: absolute;
 		bottom: 32rpx;
+		display: flex;
+		align-items: center;
+		justify-content: space-between;
+
+		.allprice {
+			view {
+				color: #222222;
+				font-size: 32rpx;
+
+				text {
+					color: #EB445A;
+					font-size: 40rpx;
+
+					&:nth-of-type(1) {
+						font-size: 24rpx;
+					}
+				}
+			}
+
+			text {
+				color: #666;
+				font-size: 28rpx;
+			}
+		}
 	}
-    .right_now {
-        width: 640rpx;
-        height: 92rpx;
-        line-height: 92rpx;
-        text-align: center;
-        background: #3F8DFD;
-        border-radius: 120rpx;
-        font-size: 32rpx;
-        font-weight: 500;
-        color: #FFFFFF;
-    }
+
+	.right_now {
+		width: 272rpx;
+		height: 92rpx;
+		line-height: 92rpx;
+		text-align: center;
+		background: #3F8DFD;
+		border-radius: 120rpx;
+		font-size: 32rpx;
+		font-weight: 500;
+		color: #FFFFFF;
+	}
+
 	.r_disable {
 		background: #498AFE;
 		opacity: 0.5;

+ 5 - 13
pages3/live/detail.vue

@@ -1347,19 +1347,11 @@ export default {
               //开头拍1张
               this.photoList.push(0);
             } else if (photoNum == 3) {
-              //拍2张
-              if (totalVideoTime <= 300) {
-                //小于5分钟
-                this.photoList.push(0); //开头拍一张
-                let endTakeTime = this.randomNum(10, totalVideoTime); //中间随机取一张
-                this.photoList.push(endTakeTime);
-              } else {
-                this.photoList.push(0); //开头拍一张
-                let endMaxTime = totalVideoTime - 60;
-                let endMinTime = totalVideoTime - 300;
-                let endTakeTime = this.randomNum(endMinTime, endMaxTime);
-                this.photoList.push(endTakeTime); //最后1-5分钟拍一张
-              }
+                this.photoList.push(1);  
+                let centerTime = this.randomNum(1/3*totalVideoTime, 2/3*totalVideoTime);; 
+                this.photoList.push(centerTime); 
+                let endTakeTime = this.randomNum(2/3*totalVideoTime, totalVideoTime);
+                this.photoList.push(endTakeTime); 
             }
           }
           // for(let i=0;i<photoNum;i++){

+ 5 - 13
pages3/polyv/detail.vue

@@ -1984,19 +1984,11 @@ export default {
               //开头拍1张
               this.photoList.push(0);
             } else if (photoNum == 3) {
-              //拍2张
-              if (totalVideoTime <= 300) {
-                //小于5分钟
-                this.photoList.push(0); //开头拍一张
-                let endTakeTime = this.randomNum(10, totalVideoTime); //中间随机取一张
-                this.photoList.push(endTakeTime);
-              } else {
-                this.photoList.push(0); //开头拍一张
-                let endMaxTime = totalVideoTime - 60;
-                let endMinTime = totalVideoTime - 300;
-                let endTakeTime = this.randomNum(endMinTime, endMaxTime);
-                this.photoList.push(endTakeTime); //最后1-5分钟拍一张
-              }
+                this.photoList.push(1);  
+                let centerTime = this.randomNum(1/3*totalVideoTime, 2/3*totalVideoTime);; 
+                this.photoList.push(centerTime); 
+                let endTakeTime = this.randomNum(2/3*totalVideoTime, totalVideoTime);
+                this.photoList.push(endTakeTime); 
             }
           }
           // for(let i=0;i<photoNum;i++){

+ 1 - 1
pages3/static/polyv-sdk/components/questionnaire-result/questionnaire-result.wxml

@@ -25,7 +25,7 @@
         </block>
         <view class="plv-mp-result-question-detail">
           <view class="plv-mp-result-question-detail__answer" wx:if="{{item.rightAnswerString}}">
-            正确答案 :
+            题目答案 :
             <text class="plv-mp-questionnaire-result__text--blue">{{item.rightAnswerString}}</text>
           </view>
           <view class="plv-mp-result-question-detail__item" wx:for="{{item.selectData}}" wx:for-item="optionItem"  wx:key="optionIndex">

+ 10 - 2
pages4/login/login.vue

@@ -117,6 +117,7 @@ export default {
 			isUse:false,
 			scanCode: '', // pc端扫码登录获取的标志码
 			newUser_sc: '', // 用户扫码进来详情页获取的sc
+			shareActivityCode: '', // 用户扫码进来详情页获取的
 			isBack:false
 		};
 	},
@@ -134,7 +135,10 @@ export default {
 		if (uni.getStorageSync('newUser_sc')) {
 			this.newUser_sc = uni.getStorageSync('newUser_sc')
 		}
-		console.log('---this.newUser_sc:', this.newUser_sc);
+		if (uni.getStorageSync('shareActivityCode')) {
+			this.shareActivityCode = uni.getStorageSync('shareActivityCode')
+		}
+		console.log('---this.newUser_sc:', this.newUser_sc, 'this.shareActivityCode:', this.shareActivityCode);
 	},
 	onShow() {
 		// 获取code
@@ -155,7 +159,8 @@ export default {
 				code: this.code,
 				encryptedData: e.detail.encryptedData,
 				iv:  e.detail.iv,
-				shareCode: this.newUser_sc
+				shareCode: this.newUser_sc,
+				shareActivityCode: this.shareActivityCode
 			}).then(res => {
 				if (res.data.code == 200) {
 					this.loginCallback(res, 'wxlogin')
@@ -192,6 +197,7 @@ export default {
 					}
 					that.isUse = true
 					let datas = {
+						shareActivityCode: this.shareActivityCode,
 						tel:this.form.tel,
 						code:this.form.code
 					}
@@ -247,6 +253,7 @@ export default {
 			that.isUse = true
 			let form = JSON.parse(JSON.stringify(this.form))
 			form.pwd = this.encryptor(form.pwd)
+			form['shareActivityCode'] = this.shareActivityCode
 			// 账号登录用户 /app/common/account_login
 			that.$api.accountLogin(form).then(
 				res => {
@@ -358,6 +365,7 @@ export default {
 			console.log('登录页面:', this.isBack)
 			// if(res.data.data && res.data.data.full_info){
 				uni.removeStorageSync('newUser_sc')
+				uni.removeStorageSync('shareActivityCode')
 				//信息完善,直接进入页面
 				uni.setStorageSync('user_account', res.data.data.user_account);
 				uni.setStorageSync('token', res.data.data.token);

+ 6 - 6
pages5/examBank/index.vue

@@ -93,7 +93,7 @@
             </view>
             <view v-if="bankType == 1 && bank.ques">
               <view class="pad_8 answer">
-                <view>正确答案:{{ ast[bank.ans - 1] }} </view>
+                <view>题目答案:{{ ast[bank.ans - 1] }} </view>
                 <view>我的答案:{{ ast[bank.ques - 1] }}</view>
               </view>
               <view class="pad_8 answerInfos">
@@ -173,7 +173,7 @@
             <view v-if="bankType == 1 && bank.ques">
               <view class="pad_8 answer">
                 <view>
-                  正确答案:
+                  题目答案:
                   <text
                     v-for="(ansItem, ansIndex) in bank.ans"
                     :key="ansIndex"
@@ -252,7 +252,7 @@
             </view>
             <view v-if="bankType == 1 && bank.ques">
               <view class="pad_8 answer">
-                <view>正确答案:{{ ast[bank.ans == 1 ? 0 : 1] }}</view>
+                <view>题目答案:{{ ast[bank.ans == 1 ? 0 : 1] }}</view>
                 <view>我的答案:{{ ast[bank.ques == 1 ? 0 : 1] }}</view>
               </view>
               <view class="pad_8 answerInfos">
@@ -435,7 +435,7 @@
 
                 <view v-if="bankType == 1 && bank.ques[ansIndex]">
                   <view class="pad_8 answer">
-                    <view>正确答案:{{ ast[bank.ans[ansIndex] - 1] }}</view>
+                    <view>题目答案:{{ ast[bank.ans[ansIndex] - 1] }}</view>
                     <view>我的答案:{{ ast[bank.ques[ansIndex] - 1] }}</view>
                   </view>
                   <view class="pad_8 answerInfos">
@@ -527,7 +527,7 @@
                 <view v-if="bankType == 1 && bank.ques[ansIndex]">
                   <view class="pad_8 answer">
                     <view>
-                      正确答案:
+                      题目答案:
                       <text
                         :key="ansItemIndex1"
                         v-for="(ansItem1, ansItemIndex1) in bank.ans[ansIndex]"
@@ -618,7 +618,7 @@
                 </view>
                 <view v-if="bankType == 1 && bank.ques[ansIndex]">
                   <view class="pad_8 answer">
-                    <view>正确答案:{{ ast[bank.ans[ansIndex] == 1 ? 0 : 1] }}</view>
+                    <view>题目答案:{{ ast[bank.ans[ansIndex] == 1 ? 0 : 1] }}</view>
                     <view>我的答案:{{ ast[bank.ques[ansIndex] == 1 ? 0 : 1] }}</view>
                   </view>
                   <view class="pad_8 answerInfos">

+ 6 - 6
pages5/examReport/questionBankAllExplain.vue

@@ -81,7 +81,7 @@
             </view>
             <view>
               <view class="pad_8 answer">
-                <view>正确答案:{{ ast[bank.ans - 1] }}</view>
+                <view>题目答案:{{ ast[bank.ans - 1] }}</view>
                 <view>我的答案:{{ ast[bank.ques - 1] || "" }}</view>
               </view>
               <view class="pad_8 answerInfos">
@@ -153,7 +153,7 @@
             <view>
               <view class="pad_8 answer">
                 <view
-                  >正确答案:
+                  >题目答案:
                   <text
                     :key="ansItemIndex"
                     v-for="(ansItem, ansItemIndex) in bank.ans"
@@ -228,7 +228,7 @@
             </view>
             <view>
               <view class="pad_8 answer">
-                <view>正确答案:{{ ast[bank.ans] }}</view>
+                <view>题目答案:{{ ast[bank.ans] }}</view>
                 <view>我的答案:{{ ast[bank.ques] || "" }}</view>
               </view>
               <view class="pad_8 answerInfos">
@@ -351,7 +351,7 @@
                 </view>
                 <view>
                   <view class="pad_8 answer">
-                    <view>正确答案:{{ ast[bank.ans[ansIndex] - 1] }}</view>
+                    <view>题目答案:{{ ast[bank.ans[ansIndex] - 1] }}</view>
                     <view
                       >我的答案:{{ ast[bank.ques[ansIndex] - 1] || "" }}</view
                     >
@@ -428,7 +428,7 @@
                 <view>
                   <view class="pad_8 answer">
                     <view
-                      >正确答案:
+                      >题目答案:
                       <text
                         :key="ansItemIndex1"
                         v-for="(ansItem1, ansItemIndex1) in bank.ans[ansIndex]"
@@ -516,7 +516,7 @@
                 </view>
                 <view>
                   <view class="pad_8 answer">
-                    <view>正确答案:{{ ast[bank.ans[ansIndex]] }}</view>
+                    <view>题目答案:{{ ast[bank.ans[ansIndex]] }}</view>
                     <view>我的答案:{{ ast[bank.ques[ansIndex]] || "" }}</view>
                   </view>
                   <view class="pad_8 answerInfos">

+ 6 - 6
pages5/examReport/questionBankWrongExplain.vue

@@ -81,7 +81,7 @@
             </view>
             <view>
               <view class="pad_8 answer">
-                <view>正确答案:{{ ast[bank.ans - 1] }}</view>
+                <view>题目答案:{{ ast[bank.ans - 1] }}</view>
                 <view>我的答案:{{ ast[bank.ques - 1] || "" }}</view>
               </view>
               <view class="pad_8 answerInfos">
@@ -153,7 +153,7 @@
             <view>
               <view class="pad_8 answer">
                 <view
-                  >正确答案:
+                  >题目答案:
                   <text
                     :key="ansItemIndex"
                     v-for="(ansItem, ansItemIndex) in bank.ans"
@@ -228,7 +228,7 @@
             </view>
             <view>
               <view class="pad_8 answer">
-                <view>正确答案:{{ ast[bank.ans] }}</view>
+                <view>题目答案:{{ ast[bank.ans] }}</view>
                 <view>我的答案:{{ ast[bank.ques] || "" }}</view>
               </view>
               <view class="pad_8 answerInfos">
@@ -349,7 +349,7 @@
                   </view>
                 </view>
                 <view class="pad_8 answer">
-                  <view>正确答案:{{ ast[bank.ans[ansIndex] - 1] }}</view>
+                  <view>题目答案:{{ ast[bank.ans[ansIndex] - 1] }}</view>
                   <view
                     >我的答案:{{ ast[bank.ques[ansIndex] - 1] || "" }}</view
                   >
@@ -425,7 +425,7 @@
                 <view>
                   <view class="pad_8 answer">
                     <view
-                      >正确答案:
+                      >题目答案:
                       <text
                         :key="ansItemIndex1"
                         v-for="(ansItem1, ansItemIndex1) in bank.ans[ansIndex]"
@@ -512,7 +512,7 @@
                 </view>
                 <view>
                   <view class="pad_8 answer">
-                    <view>正确答案:{{ ast[bank.ans[ansIndex]] }}</view>
+                    <view>题目答案:{{ ast[bank.ans[ansIndex]] }}</view>
                     <view>我的答案:{{ ast[bank.ques[ansIndex]] || "" }}</view>
                   </view>
                   <view class="pad_8 answerInfos">

部分文件因为文件数量过多而无法显示