he2802 4 anni fa
parent
commit
7e870e2234

+ 1 - 1
App.vue

@@ -6,7 +6,7 @@
 				console.log(inviteCode)
 				uni.setStorageSync("inviteCode",inviteCode)
 			}
-			
+
 		},
 		methods: {
 	

+ 7 - 0
common/httpList/order.js

@@ -26,4 +26,11 @@ export default {
 			data: data
 		})
 	},
+	placeSmallOrder(data) {
+		return myRequest({
+			url: '/order/placeSmallOrder',
+			method: 'post',
+			data: data
+		})
+	},
 }

+ 7 - 0
common/httpList/wxpay.js

@@ -18,5 +18,12 @@ export default {
 			data: data
 		})
 	},
+	wxOpenid(data) {
+		return myRequest({
+			url: '/wx/getOpenid',
+			method: 'post',
+			data: data
+		})
+	},
 	
 }

+ 3 - 3
pages/shopping/shoppingCart.vue

@@ -38,7 +38,7 @@
 								</view>
 								
 							</view>
-							<view v-if="item.templateType!=null">
+							<view v-if="item.templateType!=null&&item.goodsType==1">
 								<u-line color="#D6D6DB" />
 								<view v-if="item.templateType=='class'" style="display: flex;justify-content: space-between;align-items: center;height: 50rpx;" @click="openPopup(0,item,index)">
 									<view style="color: #666666;font-size: 24rpx;">{{!item.gradObj.className?'选择班级':item.gradObj.className}}</view>
@@ -439,7 +439,7 @@
 					let index = this.checkboxList[i]
 					let item = this.list[index]
 					checkGoodsList.push(item)
-					if(item.templateType=='class'){
+					if(item.templateType=='class'&&item.goodsType==1){
 						if(!item.gradObj.className){
 							uni.showModal({
 								title: "提示",
@@ -449,7 +449,7 @@
 							return false
 						}
 					}
-					if(item.templateType=='apply'){
+					if(item.templateType=='apply'&&item.goodsType==1){
 						if(!item.applyAreas.areaName){
 							uni.showModal({
 								title: "提示",

+ 1 - 1
pages2/bank/my_question.vue

@@ -17,7 +17,7 @@
 				<view class="bottomBox">
 					<view class="box_progress">
 						<view style="width: 60%;">
-							<u-line-progress active-color="#007AFF" :percent="70"></u-line-progress>
+							<u-line-progress active-color="#007AFF" :percent="item.doNum/item.totalNum"></u-line-progress>
 						</view>
 						<view>
 							<!-- <navigator :url="'/pages2/bank/question_detail?id='+item.goodsId"> -->

+ 3 - 3
pages2/order/confirm_list.vue

@@ -14,7 +14,7 @@
 							</view>
 						</view>
 					</view>
-					<view v-if="detail.templateType!=null">
+					<view v-if="detail.templateType!=null&&detail.goodsType==1">
 						<u-line color="#D6D6DB" />
 						<view v-if="detail.templateType=='class'" style="display: flex;justify-content: space-between;align-items: center;height: 50rpx;" @click="openPopup(0)">
 							<view style="color: #666666;font-size: 24rpx;">{{gradeIndex<0?'选择班级':gradeList[gradeIndex].className}}</view>
@@ -240,7 +240,7 @@ export default {
 			return true
 		},
 		checkData(){
-			if(this.detail.templateType=='class'){
+			if(this.detail.templateType=='class'&&this.detail.goodsType==1){
 				if(this.gradeValue<0){
 					uni.showModal({
 						title: "提示",
@@ -250,7 +250,7 @@ export default {
 					return false
 				}
 			}
-			else if(this.detail.templateType=='apply'){
+			else if(this.detail.templateType=='apply'&&this.detail.goodsType==1){
 				if(!this.applyObj.applyAreasJson){
 					uni.showModal({
 						title: "提示",

+ 84 - 8
pages2/order/confirm_pay.vue

@@ -26,7 +26,7 @@
 							<view class="txt_left_pay"><image src="/static/wepay.png" class="pay_icon"></image>微信支付</view>
 							<view ><u-radio @change="radioChange" name="wepay"></u-radio></view>
 						</view>
-						<view class="list_item">
+						<view class="list_item" v-if="false">
 							<view class="txt_left_pay"><image src="/static/unipay.png" class="pay_icon"></image>云闪付</view>
 							<view ><u-radio @change="radioChange" name="unipay"></u-radio></view>
 						</view>
@@ -35,7 +35,7 @@
 				</view>
 			</view>
 		</view>
-		<view class="bottomBtn" @click="pay()">确认支付</view>
+		<button class="bottomBtn" @click="pay()" >确认支付</button>
 	</view>
 	
 </template>
@@ -59,22 +59,98 @@ export default {
 			],
 			array:['全部','建设工程施工管理','机电全科','机电工程管理与实','机电全科','全科'],
 			current:0,
-			menuIndex:0
+			menuIndex:0,
+			value:'wepay'
 		};
 	},
 	onPullDownRefresh(){
 	},
 	onLoad(option) {
-		
+		let self = this
+		 console.log(self.shoppingCartList,6)
+		 let list = self.shoppingCartList
+		 
+
 	},
 	onShow() {
-		/* if(this.current === 2 && this.$method.isLogin()){
-			this.$refs.refMy.init();
-		} */
+		
 	},
 	methods: {
+		postOrder(){
+			let self = this
+			let list = self.shoppingCartList
+			for(let i=0;i<list.length;i++){
+				let item = list[i];
+					if(item.goodsType==1){
+						if(item.templateType=='class'){
+							delete item.gradObj.goodsList 
+							let goodsInputData = {
+								type:'class',
+								gradeId:item.gradObj.gradeId,
+								gradeJson:JSON.stringify(item.gradObj)
+							}
+							item.goodsInputData = goodsInputData
+						}
+						if(item.templateType=='apply'){
+							let goodsInputData = {
+								type:'apply',
+								applyAreasJson:JSON.stringify(item.applyAreas),
+								examDateJson:JSON.stringify(item.examDate)
+							}
+							item.goodsInputData = goodsInputData
+						}
+					}
+			}
+			let data = {goodsList:list}
+			this.$api.placeSmallOrder(data).then(res => {
+				if(res.data.code==200){
+					let data = res.data.data
+					uni.requestPayment({
+					    provider: data.provider,
+					    nonceStr: data.nonceStr,
+					    package: data.package,
+					    signType: data.signType,
+					    paySign: data.sign,
+						timeStamp: String(data.timeStamp),
+					    success: function (res) {
+							uni.redirectTo({
+							    url: '/pages2/order/confirm_success?sn='+data.orderSn
+							});
+					        console.log('success:' + JSON.stringify(res));
+					    },
+					    fail: function (err) {
+					        console.log('fail:' + JSON.stringify(err));
+					    }
+					});
+				}else{
+					uni.showModal({
+						title: "提示",
+						content: res.data.msg,
+						showCancel: false
+					})
+				}
+			});
+		},
+		getOpenid(code){
+			let self = this
+			this.$api.wxOpenid({code:code}).then(res => {
+				if(res.data.code==200){
+					self.postOrder()
+				}
+			});
+		},
 		pay(){
-			this.$navTo.togo('/pages2/order/confirm_success');
+			let self = this
+			uni.login({
+				provider: 'weixin',
+				success: function(loginRes) {
+					console.log(loginRes,69)
+					self.getOpenid(loginRes.code)
+					
+				}
+			}); 
+
+			//
 		},
 		radioChange(e) {
 			// console.log(e);

+ 20 - 11
pages2/order/confirm_success.vue

@@ -6,10 +6,10 @@
 					<view class="box1_t1">
 						<u-icon name="checkmark-circle" color="#34C759" size="32"></u-icon><text style="margin-left: 8rpx;">您的订单已支付成功!</text></view>
 					<view style="display: flex;align-items: center;justify-content: center;">
-						<view class="btn1">
+						<view class="btn1" @click="goCourse">
 							继续选课
 						</view>
-						<view class="btn2" @click="goAppointment">
+						<view class="btn2" @click="goOrder">
 							我的订单
 						</view>
 					</view>
@@ -18,21 +18,22 @@
 				<view class="box2">
 					<view class="title2">订单信息</view>
 					<u-line color="#D6D6DB" />
-					<view style="padding:10rpx 30rpx;">
+					<view style="padding:10rpx 30rpx;" v-for="(item,index) in shoppingCartList">
 						<view class="list_item">
 							<view class="txt_left">商品名称</view>
-							<view class="txt_right">2020年二建建筑工程管理与实务(实务专题班)</view>
+							<view class="txt_right">{{item.goodsName}}</view>
 						</view>
 						<view class="list_item">
 							<view class="txt_left">应付金额</view>
-							<view class="txt_right_price">¥ 999.00</view>
+							<view class="txt_right_price">¥ {{item.standPrice}}</view>
 						</view>
 						<view class="list_item">
 							<view class="txt_left">订单编号</view>
-							<view class="txt_right_sn">20211013105634GZ</view>
+							<view class="txt_right_sn">{{sn}}</view>
 						</view>
 						<view class="tip">*您可在“我的>我的订单”中查询</view>
 					</view>
+					<u-line color="#D6D6DB" />
 				</view>
 			</view>
 		</view>
@@ -59,13 +60,14 @@ export default {
 			],
 			array:['全部','建设工程施工管理','机电全科','机电工程管理与实','机电全科','全科'],
 			current:0,
-			menuIndex:0
+			menuIndex:0,
+			sn:''
 		};
 	},
 	onPullDownRefresh(){
 	},
 	onLoad(option) {
-		
+		this.sn = option.sn
 	},
 	onShow() {
 		/* if(this.current === 2 && this.$method.isLogin()){
@@ -73,8 +75,15 @@ export default {
 		} */
 	},
 	methods: {
-		goAppointment(){
-			this.$navTo.togo('/pages2/appointment/appointment_success');
+		goCourse(){
+			uni.switchTab({
+			    url: '/pages/course/index'
+			});
+		},
+		goOrder(){
+			uni.redirectTo({
+			    url: '/pages2/order/index'
+			});
 		},
 		radioChange(e) {
 			// console.log(e);
@@ -91,7 +100,7 @@ export default {
 		}
 	},
 	onReachBottom() {},
-	computed: { ...mapGetters(['userInfo']) }
+	computed: { ...mapGetters(['userInfo','shoppingCartList']) }
 };
 </script>
 <style >