he2802 3 gadi atpakaļ
vecāks
revīzija
6ac3e58290

+ 28 - 0
common/httpList/goods.js

@@ -16,5 +16,33 @@ export default {
 			method: 'get',
 			noToken: true
 		})
+	},
+	goodsCourseList(data) {
+		return myRequest({
+			url: '/app/common/goods/course/list/'+ data,
+			method: 'get',
+			noToken: true
+		})
+	},
+	addCart(data) {
+		return myRequest({
+			url: '/base/cart',
+			method: 'post',
+			data: data
+		})
+	},
+	cartList(data) {
+		return myRequest({
+			url: '/base/cart/list',
+			method: 'get',
+			data: data
+		})
+	},
+	deleteCart(data) {
+		return myRequest({
+			url: '/base/cart/delete/'+data,
+			method: 'post',
+			data: data
+		})
 	}
 }

+ 2 - 2
common/methodTool.js

@@ -2,9 +2,9 @@ import store from '@/store/index.js'
 import * as baseUrls from '@/common/request.js'
 // export const BASE_IMG_URL = 'https://file-dev.xyyxt.net/'
 export default {
-	isGoLogin() {
+	isGoLogin(isBack=true) {
 		if (!uni.getStorageSync('user_account')) {
-			uni.navigateTo({url:'/pages/login/login'});
+			uni.navigateTo({url:'/pages/login/login?isBack='+isBack});
 			return true;
 		} else {
 			return false

+ 17 - 11
pages/course/index.vue

@@ -8,9 +8,9 @@
 		<view v-show="!show">
 			<view style="position: fixed;width: 100%;z-index: 999;background-color: #FFFFFF;">
 				<u-line color="#D6D6DB" />
-				<view style="display: flex;justify-content: space-between;height: 78rpx;line-height: 78rpx;padding: 0 30rpx;font-size: 32rpx;">
-					<view style="color: #666666;">{{selObj.eName}}:{{selObj.pName}}-{{selObj.bName}}</view>
-					<view style="color: #007AFF;" @click="openLeft()">重新选择</view>
+				<view style="display: flex;justify-content: space-between;height: 78rpx;line-height: 78rpx;padding: 0 30rpx;font-size: 28rpx;">
+					<view style="color: #666666;white-space: nowrap;width: 80%;overflow-x: hidden;">{{selObj.eName}}:{{selObj.pName}}-{{selObj.bName}}</view>
+					<view style="color: #007AFF;width: 20%;" @click="openLeft()">重新选择</view>
 				</view>
 				<u-line color="#D6D6DB" />
 				<view style="display: flex;align-items:center;">
@@ -57,7 +57,7 @@
 			</view>
 			<view v-show="current==1">
 				<view class="listBox">
-					<navigator :url="'/pages2/bank/detail'+item.goodsId" v-for="(item,index) in list2" :key="index" >
+					<navigator :url="'/pages2/bank/detail?id='+item.goodsId" v-for="(item,index) in list2" :key="index" >
 						<view class="itemBox">
 							<image :src="$method.splitImgHost(item.coverUrl, true)" style="height: 316rpx;width: 100%;border-radius: 24rpx;"></image>
 							<view style="display: flex;margin-top: 13rpx;">
@@ -77,10 +77,10 @@
 		<view v-show="show" class="popuBox">
 			<view class="flex-d" >
 				<view class="contentZ">
-					<view class="lzs">
+					<view class="lzs" >
 						<view class="tylsz" v-for="(item, index) in eList" :key="index" @click="item.id === 0 ? activeAll(1) : active1(item)" :class="item.id === selObj.eId ? 'activeStys':''">{{ item.educationName }}</view>
 					</view>
-					<view class="lzs">
+					<view class="lzs"  >
 						<view class="tylszB" v-for="(item, index) in bList" :key="index" @click="item.id === 0 ? activeAll(2) : active2(item)" :class="item.id === selObj.bId ? 'activeStys2':''">{{ item.projectName }}-{{ item.businessName }}</view>
 					</view>
 				</view>
@@ -202,6 +202,7 @@ export default {
 			this.$api.businessList(data).then(res => {
 				if(res.data.code==200){
 					self.bList = res.data.rows
+					console.log(self.bList,66)
 				}
 			});
 		},
@@ -305,9 +306,12 @@ export default {
 </style>
 <style scoped>
 	.popuBox{
-		position: fixed;
+		top: 92px;
 		width: 100%;
-		height: 100%;
+		bottom:0;
+		position:absolute;
+		overflow-y:scroll;
+		overflow-x:hidden;
 		background-color: #FFFFFF;
 	}
 	.activeStys2{
@@ -322,6 +326,7 @@ export default {
 		border-radius: 16rpx;
 		padding: 0 10rpx;
 		margin-top: 15rpx;
+		white-space: nowrap;
 	}
 	.activeStys{
 		background: linear-gradient(90deg, rgba(1,94,234,0.2),rgba(255,255,255,.6));
@@ -337,6 +342,7 @@ export default {
 		font-weight: bold;
 		padding:0 30rpx;
 		margin-top: 15rpx;
+		white-space: nowrap;
 	}
 	.popup_t1 {
 		padding-left: 35rpx;
@@ -345,10 +351,10 @@ export default {
 		margin-top: 86rpx;
 		font-weight: bold;
 		color: #007AFF;
-		font-size: 30rpx;
+		font-size: 27rpx;
 	}
 	.flex-d {
-		height: 130%;
+
 		background-color: #FFFFFF;
 		padding: 0 5%;
 		font-size: 30rpx;
@@ -356,7 +362,7 @@ export default {
 	.contentZ {
 		overflow-y: auto;
 		display: flex;
-		
+		height: 100%;
 		padding: 10rpx;
 	}
 	.contentZ::-webkit-scrollbar {

+ 23 - 9
pages/login/login.vue

@@ -63,9 +63,15 @@ export default {
 			],
 			current: 0,
 			codeTips: '',
-			isUse:false
+			isUse:false,
+			isBack:false
 		};
 	},
+	onLoad(option) {
+		if(option.isBack){
+			this.isBack = option.isBack;
+		}
+	},
 	mounted() {},
 	methods: {
 		sms_login(){
@@ -93,10 +99,14 @@ export default {
 							uni.setStorageSync('token', res.data.data.token);
 							that.$api.getInfo().then(resdata => {
 								if(resdata.data.code == 200){
-									uni.switchTab({
-										url:'/pages/index/index'
-									})
 									that.$store.state.userInfo = resdata.data.data;
+									if(that.isBack){
+										uni.switchTab({
+											url:'/pages/index/index'
+										})
+									}else{
+										uni.navigateBack();
+									}
 								}
 								
 							});
@@ -134,8 +144,8 @@ export default {
 				return 
 			}
 			//虚拟登录
-			that.fakeLogin()
-			return
+		/* 	that.fakeLogin()
+			return */
 			that.isUse = true
 			that.$api.accountLogin(this.form).then(
 				res => {
@@ -147,10 +157,14 @@ export default {
 							uni.setStorageSync('token', res.data.data.token);
 							that.$api.getInfo().then(resdata => {
 								if(resdata.data.code == 200){
-									uni.switchTab({
-										url:'/pages/index/index'
-									})
 									that.$store.state.userInfo = resdata.data.data;
+									if(that.isBack){
+										uni.switchTab({
+											url:'/pages/index/index'
+										})
+									}else{
+										uni.navigateBack();
+									}
 								}
 								
 							});

+ 37 - 9
pages/shopping/shoppingCart.vue

@@ -13,8 +13,8 @@
 			            @change="checkboxChange">
 			<uni-swipe-action-item :autoClose="false" @change="swipeChange($event, item)" :show="item.show" v-for="(item,index) in list" :key="index" >
 				<view class="item">
-					<view>
-						<view style="display: flex;justify-content: space-between;padding-bottom: 15rpx;">
+					<view style="width: 100%;">
+						<view style="display: flex;padding-bottom: 15rpx;">
 							<view style="display: flex;align-items:center;">
 								<u-checkbox
 									v-model="item.checked" 
@@ -22,14 +22,13 @@
 									:name="item.name">
 								</u-checkbox>
 							</view>
-							<image src="/static/login_bg.jpg" style="height: 134rpx;width: 388rpx;border-radius: 16rpx;"></image>
-							<view style="margin-left: 20rpx;">
+							<image :src="$method.splitImgHost(item.coverUrl, true)" style="height: 134rpx;width: 278rpx;border-radius: 16rpx;"></image>
+							<view style="margin-left: 20rpx;flex: 1;">
 								<view style="color: #333333;font-size: 30rpx;font-weight: bold;">
-									2020年二建建筑工程管理与实
-									务(实务专题班)
+									{{item.goodsName}}
 								</view>
 								<view class="priceTag">
-									¥ 999.00
+									¥ {{item.standPrice}}
 								</view>
 							</view>
 							
@@ -229,9 +228,38 @@
 				show1:false
 			}
 		},
+		onLoad(option) {
+			
+		},
+		onShow() {
+			this.cartList()
+		},
 		methods: {
-			delItem(option) {
-				console.log(option)
+			cartList() {
+				let self = this
+				this.$api.cartList().then(res => {
+					if(res.data.code==200){
+						self.list = res.data.rows
+						for (let i = 0; i < self.list.length; i++) {
+							let item = self.list[i]
+							item.checked = false
+							if(item.status!=1||item.goodsStatus!=1){
+								item.disabled = true
+							}else{
+								item.disabled = false
+							}
+							item.show = false
+						}
+					}
+				});
+			},
+			delItem(item) {
+				let self = this
+				this.$api.deleteCart(item.id).then(res => {
+					if(res.data.code==200){
+						self.cartList()
+					}
+				});
 			},
 			swipeChange(e, item) {
 				item.show = e;

+ 46 - 7
pages2/course/detail.vue

@@ -21,11 +21,19 @@
 			</view>
 			<u-line color="#D6D6DB" />
 		</view>
-		<view style="padding: 20rpx;">
+		<view style="padding: 20rpx;" v-show="current==0">
 			<view class="content">
 				<view v-html="detail.mobileDetailHtml"></view>
 			</view>
 		</view>
+		<view style="padding: 20rpx;" v-show="current==1">
+			<view >
+				<view v-for="(item,index) in courseList" class="courseItem">
+					<view>{{item.courseName}}</view>
+					<view><u-icon name="arrow-down" ></u-icon></view>
+				</view>
+			</view>
+		</view>
 		<view class="bottomBox">
 			<view class="priceTag">¥ {{detail.standPrice}}</view>
 			<view style="display: flex;color: #FFFFFF;align-items: center;">
@@ -51,7 +59,8 @@ export default {
 				}
 			],
 			current:0,
-			detail:{}
+			detail:{},
+			courseList:[]
 					
 		};
 	},
@@ -62,15 +71,35 @@ export default {
 	onLoad(option) {
 		this.id = option.id;
 		this.getDetail()
+		this.goodsCourseList()
 	},
 	onShow() {
 		
 	},
 	methods: {
+		addShopCart() {
+			let self = this
+			this.$api.addCart({goodsId:this.id}).then(res => {
+				if(res.data.code==200){
+					uni.showToast({
+					    title: '添加成功'
+					});
+				}else{
+					this.$u.toast(res.data.msg);
+				}
+			});
+		},
+		goodsCourseList() {
+			let self = this
+			this.$api.goodsCourseList(this.id).then(res => {
+				if(res.data.code==200){
+					self.courseList = res.data.rows
+				}
+			});
+		},
 		getDetail() {
 			let self = this
 			this.$api.goodsDetail(this.id).then(res => {
-				console.log(res)
 				if(res.data.code==200){
 					self.detail = res.data.data
 					console.log(self.detail.mobileDetailHtml)
@@ -87,10 +116,7 @@ export default {
 			if(this.$method.isGoLogin()){
 				return
 			}
-			uni.showToast({
-			    title: '添加成功',
-			    duration: 1000
-			});
+			this.addShopCart()
 			
 		},
 		open(item){
@@ -108,6 +134,19 @@ export default {
 	}
 </style>
 <style scope>
+	.courseItem{
+		width: 100%;
+		height: 80rpx;
+		background: #FFFFFF;
+		border-radius: 16rpx;
+		color: #333333;
+		font-size: 32rpx;
+		line-height: 80rpx;
+		font-weight: bold;
+		padding: 0 10rpx;
+		display: flex;
+		justify-content: space-between;
+	}
 	.content{
 		background-color: #FFFFFF;
 	}