Tang %!s(int64=4) %!d(string=hai) anos
pai
achega
a10a3c54b0

+ 3 - 1
common/api.js

@@ -17,6 +17,7 @@ import wxpay from './httpList/wxpay.js'
 import order from './httpList/order.js'
 import category from './httpList/category.js'
 import coupon from './httpList/coupon.js'
+import isHave from './httpList/isHave.js'
 export default {
 	...login,
 	...polyvVideo,
@@ -36,5 +37,6 @@ export default {
 	...wxpay,
 	...order,
 	...category,
-	...coupon
+	...coupon,
+	...isHave
 }

+ 30 - 0
common/httpList/collect.js

@@ -69,6 +69,22 @@ export default {
 
 
 
+	
+	//新增收藏考试重点
+	noteCollectsadd(data) {
+		return myRequest({
+			url: '/collect/note',
+			method: 'post',
+			data: data,
+		})
+	},
+	//删除收藏考试重点
+	noteCollectdelete(data) {
+		return myRequest({
+			url: '/collect/note/delete/' + data,
+			method: 'post',
+		})
+	},
 	//查询收藏重点列表
 	courseNoteList(data) {
 		return myRequest({
@@ -77,6 +93,20 @@ export default {
 			data: data,
 		})
 	},
+	//判断是否收藏重点
+	noteCollects(data) {
+		return myRequest({
+			url: '/collect/note/' + data,
+			method: 'get',
+		})
+	},
+
+
+
+
+
+
+
 
 	//新增收藏题目
 	questionsystemadd(data) {

+ 22 - 0
common/httpList/isHave.js

@@ -0,0 +1,22 @@
+import {
+	myRequest
+} from '../request.js'
+export default {
+	//查询【请填写功能名称】列表
+	systemuserlist(data) {
+		return myRequest({
+			url: '/system/user/list',
+			method: 'get',
+			data: data
+		})
+	},
+	//查询是否拥有该项目
+	systemuserowner(data) {
+		return myRequest({
+			url: '/system/user/owner',
+			method: 'get',
+			data: data
+		})
+	},
+	
+}

+ 2 - 2
common/httpList/login.js

@@ -6,8 +6,8 @@ export default {
 	//登录
 	login(data) {
 		return myRequest({
-			// url: '/login',
-			url: '/testLogin',
+			url: '/login',
+			// url: '/testLogin',
 			method: 'post',
 			data: data,
 			noToken: true

+ 9 - 0
common/httpList/wxpay.js

@@ -2,6 +2,15 @@ import {
 	myRequest
 } from '../request.js'
 export default {
+	//获取支付回调凭证
+	wxCallback(data) {
+		return myRequest({
+			url: '/wx/pay/callback',
+			method: 'post',
+			data: data
+		})
+	},
+	//获取支付凭证
 	wxPayment(data) {
 		return myRequest({
 			url: '/wx/pay/payment',

+ 2 - 2
common/request.js

@@ -1,6 +1,6 @@
 
-//const BASE_URL = 'http://192.168.1.222:8088'
- const BASE_URL = 'http://127.0.0.1:8088'   //
+const BASE_URL = 'http://192.168.1.222:8088'
+ // const BASE_URL = 'http://192.168.1.104:8088' 
 // const BASE_URL = 'https://api.xyyxt.net'  //
 import store from '@/store/index.js'
 import api from './api.js'

+ 240 - 4
pages2/bank/detail.vue

@@ -194,8 +194,10 @@
 					<image :src="collecStatus ? '/static/star.png' : '/static/sc.png'" class="sc"></image>
 					<view class="sc_t">收藏</view>
 				</view>
-
-				<view class="buy" @click="jumpExam">模拟考试</view>
+				<view class="buy" v-if="payStatus === 0" @click="buyTK">
+					立即购买
+				</view>
+				<view class="buy" v-if="payStatus === 1" @click="jumpExam">模拟考试</view>
 			</view>
 		</view>
 		<u-popup v-model="showBox" mode="bottom" border-radius="14">
@@ -218,6 +220,32 @@
 				<view class="confrim-btn" style="margin-top: 10rpx;"><u-button @click="showBox = false">取消</u-button></view>
 			</view>
 		</u-popup>
+		<u-popup v-model="showPricePop" mode="bottom" border-radius="14">
+			<view class="topBox">
+				<view class="firstTopL">
+					<view class="imageBs"><image :src="$method.splitImgHost(pageData.coverUrl)" mode=""></image></view>
+					<view class="textBs">{{ pageData.bankName }}</view>
+				</view>
+				<view class="boldFonstType">
+					类型:
+					<span style="font-weight: bold;">{{ pageData.categoryName }}</span>
+				</view>
+				<view class="priceBxs">
+					<view class="pricleft">
+						活动价
+						<span style="font-weight: bold;">¥{{ pageData.price }}</span>
+					</view>
+					<view class="pricright" style="text-decoration: line-through;color: #666;">¥{{ pageData.price }}</view>
+				</view>
+			</view>
+			<view class="btnspric">
+				<view class="lefprL">
+					实付:
+					<span style="color: #E91313;">¥{{ prices }}</span>
+				</view>
+				<view class="lefprR" @click="getorder">提交订单</view>
+			</view>
+		</u-popup>
 	</view>
 </template>
 
@@ -253,7 +281,11 @@ export default {
 			favoritesLength: 0, //收藏集数量
 			errorLists: 0, //错题集数量
 			id: 0,
-			isDoneListsLenght: 0
+			isDoneListsLenght: 0,
+			showPricePop: false, //购买详情弹窗
+			newDate: 0, //现在时间戳
+			prices: 0, //实付
+			payStatus: 0,//是否已购买
 		};
 	},
 	onLoad(option) {
@@ -262,7 +294,8 @@ export default {
 		var options = {};
 		this.$api.bankInfo(option.id).then(res => {
 			options = res.data.data;
-			this.pageData = options;
+			this.pageData = res.data.data;
+			this.prices = res.data.data.price
 			console.log(options);
 			if (res.data.data.typeId === 1) {
 				this.getBankDList(options);
@@ -274,6 +307,7 @@ export default {
 			}
 			this.recommendList(options);
 		});
+		this.getHaveThis()
 	},
 	onShow() {
 		if (!uni.getStorageSync('union_id') && this.$store.state.token === '') {
@@ -285,6 +319,81 @@ export default {
 		}
 	},
 	methods: {
+		//检测是否已购买该课程
+		getHaveThis(){
+			var self = this
+			var data = {
+				possessId: this.id,
+				typeId: 2
+			}
+			this.$api.systemuserowner(data).then(res => {
+				if(res.data.code === 200){
+				self.payStatus = res.data.data.payStatus
+				}
+			})
+		},
+		//提交订单
+		getorder(){
+			var self = this
+			var data = {
+				goodsList: [{
+					goodsId: self.pageData.bankId,
+					num: 1,
+					goodsType: 2
+				}]
+			}
+			self.$api.order(data).then(res => {
+				if(res.data.code === 200){
+					let objarr = res.data.data
+					wx.requestPayment({
+						timeStamp: objarr.timeStamp,
+						nonceStr: objarr.nonceStr,
+						package: objarr.package,
+						signType: objarr.signType,
+						paySign: objarr.sign,
+						success (result) {
+							uni.showModal({
+							    title: '提示',
+							    content: '支付成功',
+								showCancel: false,
+							    success: function (resst) {
+									if(resst.confirm){
+									self.showPricePop = false
+									self.getHaveThis()
+									}
+							    }
+							});
+						},
+						fail (err){
+							uni.showModal({
+							    title: '提示',
+							    content: '支付失败',
+								showCancel: false,
+							    success: function (resst) {
+									self.showPricePop = false
+									self.getHaveThis()
+							    }
+							});
+						}
+					})
+				}
+			})
+		},
+		//购买题库
+		buyTK(){
+			var self = this;
+			uni.getStorage({
+				key: 'union_id',
+				success: function(res) {
+					// 继续操作
+					self.showPricePop = true;
+				},
+				fail: function(err) {
+					//重新登入
+					self.$navTo.togo('/pages/login/login', {});
+				}
+			});
+		},
 		isDoneList() {
 			var self = this;
 			var data = {
@@ -499,6 +608,133 @@ export default {
 }
 </style>
 <style scope>
+	
+	.btnspric {
+		border-top: 1rpx solid #eee;
+		display: flex;
+		align-items: center;
+		justify-content: space-between;
+		height: 108rpx;
+		padding-left: 43rpx;
+		padding-right: 32rpx;
+	}
+	.btnspric > .lefprL {
+		font-size: 36rpx;
+		color: #0c141f;
+		font-weight: bold;
+	}
+	.btnspric > .lefprR {
+		padding: 0rpx 24rpx;
+		height: 60rpx;
+		line-height: 60rpx;
+		text-align: center;
+		color: #fff;
+		background: #32467b;
+		border-radius: 24rpx;
+		box-shadow: 0rpx 0rpx 16rpx 4rpx rgba(145, 156, 178, 0.1);
+	}
+	.yhj,
+	.hdyhj {
+		padding: 24rpx 29rpx 24rpx 34rpx;
+	}
+	.yhj {
+		border-bottom: 16rpx solid #f9f9f9;
+	}
+	.yhjtit {
+		font-size: 30rpx;
+		color: #0c141f;
+		font-weight: 500;
+		margin-bottom: 14rpx;
+	}
+	.yhjList {
+		display: flex;
+		align-items: center;
+		justify-content: space-between;
+		margin-bottom: 14rpx;
+	}
+	.yhjList > .yhjLefts {
+		display: flex;
+		align-items: center;
+	}
+	.yhjLefts > .yhl {
+		color: #32467b;
+		font-size: 30rpx;
+		margin-right: 31rpx;
+	}
+	.yhjLefts > .yhbq {
+		font-size: 24rpx;
+		color: #ff9500;
+		border-radius: 18rpx;
+		background-color: rgba(255, 149, 0, 0.2);
+		border: 2rpx solid #ff9500;
+		height: 38rpx;
+		line-height: 38rpx;
+		padding: 0rpx 16rpx;
+	}
+	.ts {
+		font-size: 24rpx;
+		color: #999;
+		margin: 14rpx 0rpx;
+		padding-right: 29rpx;
+		padding-left: 34rpx;
+	}
+	.yh {
+		padding-top: 20rpx;
+	}
+	.yh > .yhtitle {
+		display: flex;
+		align-items: center;
+		justify-content: space-between;
+		padding-right: 29rpx;
+		padding-left: 34rpx;
+	}
+	.priceBxs {
+		display: flex;
+		align-items: center;
+	}
+	.priceBxs > .pricleft {
+		border-radius: 24rpx;
+		border: 1rpx solid #e91313;
+		background-color: rgba(233, 19, 19, 0.1);
+		padding: 0rpx 18rpx;
+		height: 49rpx;
+		line-height: 49rpx;
+		text-align: center;
+		font-size: 30rpx;
+		font-weight: 500;
+		color: #e91313;
+		margin-right: 13rpx;
+	}
+	.topBox {
+		padding: 32rpx 32rpx 24rpx;
+		border-bottom: 1rpx solid #eeeeee;
+	}
+	.topBox > .boldFonstType {
+		font-weight: 500;
+		font-size: 30rpx;
+		margin: 16rpx 0rpx 23rpx;
+	}
+	.topBox > .firstTopL {
+		display: flex;
+		align-items: center;
+	}
+	.topBox > .firstTopL > .imageBs {
+		width: 331rpx;
+		height: 160rpx;
+		border-radius: 6rpx;
+		overflow: hidden;
+		margin-right: 8rpx;
+		box-shadow: 0rpx 6rpx 6rpx 0rpx rgba(47, 67, 121, 0.08);
+	}
+	.topBox > .firstTopL > .imageBs > image {
+		width: 100%;
+		height: 100%;
+	}
+	.topBox > .firstTopL > .textBs {
+		font-size: 30rpx;
+		font-weight: bold;
+		color: #0c141f;
+	}
 .content {
 	padding: 24rpx;
 	text-align: left;

+ 56 - 6
pages2/course/detail.vue

@@ -212,7 +212,7 @@
 					平台所有优惠均不可同时使用
 				</view>
 				<radio-group @change="activeCoupon" v-show="pricestatus">
-					<view class="yhj">
+					<view class="yhj" v-if="configList.length !== 0">
 						<view class="yhjtit">优惠券</view>
 						<view class="yhjList" v-for="(item, index) in configList" :key="index">
 							<view class="yhjLefts">
@@ -225,7 +225,7 @@
 							<radio :value="JSON.stringify([1, item.couponId])" />
 						</view>
 					</view>
-					<view class="hdyhj">
+					<view class="hdyhj" v-if="activityList.length !== 0">
 						<view class="yhjtit">活动优惠</view>
 						<view class="yhjList" v-for="(item, index) in activityList" :key="index">
 							<view class="yhjLefts">
@@ -297,7 +297,7 @@ export default {
 			faceGetState: false, //模拟今天是否人脸识别
 			showBox: false,
 			boxList: [], //章节弹窗列表
-			payStatus: true, //是否购买该课程
+			payStatus: 0, //是否购买该课程
 			commendList: [], //推荐课程列表
 			collecStatus: false, //收藏状态
 			initH4: 0,
@@ -337,6 +337,7 @@ export default {
 		});
 		this.getChapter(this.id);
 		this.getcommendList(this.id);
+		this.getHaveThis()
 		let time = uni.getStorageSync('face');
 		if (time) {
 			let nowTime = new Date().getTime() / 1000;
@@ -376,6 +377,20 @@ export default {
 	},
 
 	methods: {
+		//检测是否已购买该课程
+		getHaveThis(){
+			var self = this
+			var data = {
+				possessId: this.id,
+				typeId: 1
+			}
+			this.$api.systemuserowner(data).then(res => {
+				if(res.data.code === 200){
+				self.payStatus = res.data.data.payStatus
+				}
+			})
+		},
+		//提交订单
 		getorder(){
 			var self = this
 			var data = {
@@ -394,7 +409,40 @@ export default {
 				}
 			}
 			self.$api.order(data).then(res => {
-				console.log(res)
+				if(res.data.code === 200){
+					let objarr = res.data.data
+					wx.requestPayment({
+						timeStamp: objarr.timeStamp,
+						nonceStr: objarr.nonceStr,
+						package: objarr.package,
+						signType: objarr.signType,
+						paySign: objarr.sign,
+						success (result) {
+							uni.showModal({
+							    title: '提示',
+							    content: '支付成功',
+								showCancel: false,
+							    success: function (resst) {
+									if(resst.confirm){
+									self.showPricePop = false
+									self.getHaveThis()
+									}
+							    }
+							});
+						},
+						fail (err){
+							uni.showModal({
+							    title: '提示',
+							    content: '支付失败',
+								showCancel: false,
+							    success: function (resst) {
+									self.showPricePop = false
+									self.getHaveThis()
+							    }
+							});
+						}
+					})
+				}
 			})
 		},
 		//选择卷触发
@@ -657,7 +705,7 @@ export default {
 					this.certification();
 					return;
 				}
-				if (!this.payStatus) {
+				if (this.payStatus === 0) {
 					uni.showToast({
 						title: '暂未购买该课程',
 						icon: 'none',
@@ -775,7 +823,9 @@ export default {
 				key: 'union_id',
 				success: function(res) {
 					// 继续操作
-					self.$api.configurationlistCoupon().then(configL => {
+					self.$api.configurationlistCoupon({
+						courseId: self.id
+					}).then(configL => {
 						self.configList = configL.data.rows;
 					});
 					self.$api

+ 280 - 6
pages2/course/keynote.vue

@@ -108,17 +108,44 @@
 		<view  class="footer_tab">
 			<u-line color="#D6D6DB" />
 			<view style="height: 100%;display: flex;align-items: center;position: relative;">
-				<view style="text-align: center;margin-left: 30rpx;">
-					<image src="/static/sc.png" class="sc"></image>
+				<view style="text-align: center;margin-left: 30rpx;" @click="favorites">
+					<image :src="collecStatus ? '/static/star.png' : '/static/sc.png'" class="sc"></image>
 					<view class="sc_t">收藏</view>
 				</view>
-				
-				<view class="buy" @click="jumpPay">
+				<view class="buy" v-if="payStatus === 0" @click="buyTK">
+					立即购买
+				</view>
+				<view class="buy" v-if="payStatus === 1" @click="jumpPay">
 					开始阅读
 				</view>
 			</view>
 		</view>
-
+<u-popup v-model="showPricePop" mode="bottom" border-radius="14">
+			<view class="topBox">
+				<view class="firstTopL">
+					<view class="imageBs"><image :src="$method.splitImgHost(detail.coverUrl)" mode=""></image></view>
+					<view class="textBs">{{ detail.name }}</view>
+				</view>
+				<view class="boldFonstType">
+					类型:
+					<span style="font-weight: bold;">{{ detail.categoryName }}</span>
+				</view>
+				<view class="priceBxs">
+					<view class="pricleft">
+						活动价
+						<span style="font-weight: bold;">¥{{ detail.price }}</span>
+					</view>
+					<view class="pricright" style="text-decoration: line-through;color: #666;">¥{{ detail.price }}</view>
+				</view>
+			</view>
+			<view class="btnspric">
+				<view class="lefprL">
+					实付:
+					<span style="color: #E91313;">¥{{ prices }}</span>
+				</view>
+				<view class="lefprR" @click="getorder">提交订单</view>
+			</view>
+		</u-popup>
 	</view>
 </template>
 
@@ -137,17 +164,136 @@
 				id:0,
 				detail:{},
 				teacherList:[],
-				recommendList:[]
+				recommendList:[],
+				showPricePop: false, //购买详情弹窗
+				newDate: 0, //现在时间戳
+				prices: 0, //实付
+				payStatus: 0,//是否已购买
+				collecStatus: false,
 			}
 		},
 		onLoad(option) {
 			this.id = option.id
 			this.getDetail()
 			this.noteRecommendList({fileId:this.id})
+			this.getHaveThis()
 		},
 		onShow(){
+			if (!uni.getStorageSync('union_id') && this.$store.state.token === '') {
+			} else {
+				this.favoritesStatus();
+			}
 		},
 		methods: {
+			favoritesStatus() {
+				this.$api.noteCollects(this.id).then(result => {
+					if (result.data.data === undefined) {
+						this.collecStatus = false;
+					} else {
+						this.collecStatus = true;
+					}
+				});
+			},
+			//收藏
+			favorites() {
+				var self = this;
+				if (!uni.getStorageSync('union_id') && this.$store.state.token === '') {
+					uni.navigateTo({
+						url: '/pages/login/login'
+					});
+				} else {
+					if (this.collecStatus) {
+						this.$api.noteCollects(self.id).then(results => {
+							self.$api.noteCollectdelete(results.data.data.collectNoteId).then(resz => {
+								self.favoritesStatus();
+							});
+						});
+					} else {
+						var data = {
+							userId: this.$store.state.userInfo.userId,
+							fileId: self.id
+						};
+						this.$api.noteCollectsadd(data).then(res => {
+							self.favoritesStatus();
+						});
+					}
+				}
+			},
+			//检测是否已购买该课程
+			getHaveThis(){
+				var self = this
+				var data = {
+					possessId: this.id,
+					typeId: 3
+				}
+				this.$api.systemuserowner(data).then(res => {
+					if(res.data.code === 200){
+					self.payStatus = res.data.data.payStatus
+					}
+				})
+			},
+			//提交订单
+			getorder(){
+				var self = this
+				var data = {
+					goodsList: [{
+						goodsId: self.detail.fileId,
+						num: 1,
+						goodsType: 3
+					}]
+				}
+				self.$api.order(data).then(res => {
+					if(res.data.code === 200){
+						let objarr = res.data.data
+						wx.requestPayment({
+							timeStamp: objarr.timeStamp,
+							nonceStr: objarr.nonceStr,
+							package: objarr.package,
+							signType: objarr.signType,
+							paySign: objarr.sign,
+							success (result) {
+								uni.showModal({
+								    title: '提示',
+								    content: '支付成功',
+									showCancel: false,
+								    success: function (resst) {
+										if(resst.confirm){
+										self.showPricePop = false
+										self.getHaveThis()
+										}
+								    }
+								});
+							},
+							fail (err){
+								uni.showModal({
+								    title: '提示',
+								    content: '支付失败',
+									showCancel: false,
+								    success: function (resst) {
+										self.showPricePop = false
+										self.getHaveThis()
+								    }
+								});
+							}
+						})
+					}
+				})
+			},
+			//购买题库
+			buyTK(){
+				var self = this;
+				uni.getStorage({
+					key: 'union_id',
+					success: function(res) {
+						// 继续操作
+						self.showPricePop = true;
+					},
+					fail: function(err) {
+						//重新登入
+						self.$navTo.togo('/pages/login/login', {});
+					}
+				});
+			},
 			jumpDetail(item) {
 				this.$navTo.togo('/pages2/course/keynote', {
 					id:item.fileId
@@ -157,6 +303,7 @@
 				let self = this
 				this.$api.noteInfo(this.id).then(res => {
 					self.detail = res.data.data
+					self.prices = res.data.data.price
 					 if(self.detail.teacherIds&&self.detail.teacherIds!=''){
 						 let param = {
 							 teacherIds : self.detail.teacherIds
@@ -220,6 +367,133 @@
 	}
 </style>
 <style scope>
+	
+	.btnspric {
+		border-top: 1rpx solid #eee;
+		display: flex;
+		align-items: center;
+		justify-content: space-between;
+		height: 108rpx;
+		padding-left: 43rpx;
+		padding-right: 32rpx;
+	}
+	.btnspric > .lefprL {
+		font-size: 36rpx;
+		color: #0c141f;
+		font-weight: bold;
+	}
+	.btnspric > .lefprR {
+		padding: 0rpx 24rpx;
+		height: 60rpx;
+		line-height: 60rpx;
+		text-align: center;
+		color: #fff;
+		background: #32467b;
+		border-radius: 24rpx;
+		box-shadow: 0rpx 0rpx 16rpx 4rpx rgba(145, 156, 178, 0.1);
+	}
+	.yhj,
+	.hdyhj {
+		padding: 24rpx 29rpx 24rpx 34rpx;
+	}
+	.yhj {
+		border-bottom: 16rpx solid #f9f9f9;
+	}
+	.yhjtit {
+		font-size: 30rpx;
+		color: #0c141f;
+		font-weight: 500;
+		margin-bottom: 14rpx;
+	}
+	.yhjList {
+		display: flex;
+		align-items: center;
+		justify-content: space-between;
+		margin-bottom: 14rpx;
+	}
+	.yhjList > .yhjLefts {
+		display: flex;
+		align-items: center;
+	}
+	.yhjLefts > .yhl {
+		color: #32467b;
+		font-size: 30rpx;
+		margin-right: 31rpx;
+	}
+	.yhjLefts > .yhbq {
+		font-size: 24rpx;
+		color: #ff9500;
+		border-radius: 18rpx;
+		background-color: rgba(255, 149, 0, 0.2);
+		border: 2rpx solid #ff9500;
+		height: 38rpx;
+		line-height: 38rpx;
+		padding: 0rpx 16rpx;
+	}
+	.ts {
+		font-size: 24rpx;
+		color: #999;
+		margin: 14rpx 0rpx;
+		padding-right: 29rpx;
+		padding-left: 34rpx;
+	}
+	.yh {
+		padding-top: 20rpx;
+	}
+	.yh > .yhtitle {
+		display: flex;
+		align-items: center;
+		justify-content: space-between;
+		padding-right: 29rpx;
+		padding-left: 34rpx;
+	}
+	.priceBxs {
+		display: flex;
+		align-items: center;
+	}
+	.priceBxs > .pricleft {
+		border-radius: 24rpx;
+		border: 1rpx solid #e91313;
+		background-color: rgba(233, 19, 19, 0.1);
+		padding: 0rpx 18rpx;
+		height: 49rpx;
+		line-height: 49rpx;
+		text-align: center;
+		font-size: 30rpx;
+		font-weight: 500;
+		color: #e91313;
+		margin-right: 13rpx;
+	}
+	.topBox {
+		padding: 32rpx 32rpx 24rpx;
+		border-bottom: 1rpx solid #eeeeee;
+	}
+	.topBox > .boldFonstType {
+		font-weight: 500;
+		font-size: 30rpx;
+		margin: 16rpx 0rpx 23rpx;
+	}
+	.topBox > .firstTopL {
+		display: flex;
+		align-items: center;
+	}
+	.topBox > .firstTopL > .imageBs {
+		width: 331rpx;
+		height: 160rpx;
+		border-radius: 6rpx;
+		overflow: hidden;
+		margin-right: 8rpx;
+		box-shadow: 0rpx 6rpx 6rpx 0rpx rgba(47, 67, 121, 0.08);
+	}
+	.topBox > .firstTopL > .imageBs > image {
+		width: 100%;
+		height: 100%;
+	}
+	.topBox > .firstTopL > .textBs {
+		font-size: 30rpx;
+		font-weight: bold;
+		color: #0c141f;
+	}
 	.text_box{
 		font-size: 24rpx;
 		font-family: PingFang SC;

+ 1 - 0
pages2/plan/edit.vue

@@ -228,6 +228,7 @@ export default {
 			};
 			let self = this;
 			this.$api.getUserBuy(data).then(result => {
+				console.log(result)
 					self.form.courseId = result.data.data.courseVoList[0].courseId
 				if (result.data.data.courseVoList.length > 0) {
 					for (let i = 0; i < result.data.data.courseVoList.length; i++) {