gdpao
This commit is contained in:
		
						commit
						ea10c99cd1
					
				| @ -253,6 +253,10 @@ export default { | ||||
| 			tabLiveList(){ | ||||
| 				return vm.$u.post('Specialci/tabLiveList') | ||||
| 			}, | ||||
| 			// 商城-活动广告
 | ||||
| 			getStoreActivity() { | ||||
| 				return vm.$u.post('adv/storeActivity') | ||||
| 			}, | ||||
| 			// 获取图文视频详情
 | ||||
| 			articleInfo({article_id}){ | ||||
| 				return vm.$u.post('article/articleInfo',{article_id}) | ||||
|  | ||||
| @ -270,6 +270,9 @@ export default { | ||||
| 			getOrderEvaluateInfo({ id }) { | ||||
| 				return vm.$u.post('Order/getOrderEvaluateInfo', { id: id }); | ||||
| 			}, | ||||
| 			orderLogistics({ id }) { | ||||
| 				return vm.$u.post('Order/orderLogistics', { order_id: id }); | ||||
| 			}, | ||||
| 			// 订单评价/修改评价
 | ||||
| 			updateOrderEvaluate({ id, content, scores_one, scores_two, scores_three, file }) { | ||||
| 				let params = { | ||||
| @ -357,7 +360,39 @@ export default { | ||||
| 				return vm.$u.post('member/sendOrderConfirm', { | ||||
| 					id: id, | ||||
| 				}); | ||||
| 			} | ||||
| 			}, | ||||
| 			// 提交送洗
 | ||||
| 			sendLaundrySave({  | ||||
| 				type,  | ||||
| 				tid,  | ||||
| 				condition,  | ||||
| 				member_name,  | ||||
| 				member_phone,  | ||||
| 				area_info,  | ||||
| 				address_info, | ||||
| 				goods_name, | ||||
| 				order_id, | ||||
| 				goods_id, | ||||
| 				goods_images, | ||||
| 			}) { | ||||
| 				return vm.$u.post('member/sendLaundrySave', { | ||||
| 					type: type, | ||||
| 					tid: tid, | ||||
| 					condition: condition, | ||||
| 					member_name: member_name, | ||||
| 					member_phone: member_phone, | ||||
| 					area_info: area_info, | ||||
| 					address_info: address_info, | ||||
| 					goods_name: goods_name, | ||||
| 					order_id: order_id, | ||||
| 					goods_id: goods_id, | ||||
| 					goods_images: goods_images, | ||||
| 				}); | ||||
| 			}, | ||||
| 			// 送洗评论列表
 | ||||
| 			sendCommentList() { | ||||
| 				return vm.$u.post('member/sendCommentList'); | ||||
| 			}, | ||||
|         } | ||||
|     } | ||||
| } | ||||
| @ -21,7 +21,7 @@ const store = new Vuex.Store({ | ||||
| 	}, | ||||
| 	getters: { | ||||
| 		getOrderAddress(state) { | ||||
| 			return state.orderAddress; | ||||
| 			return state.orderAddress || {}; | ||||
| 		}, | ||||
| 		getGoodsType(state) { | ||||
| 			return state.goodsDetails.type; | ||||
|  | ||||
| @ -118,19 +118,11 @@ export default { | ||||
| 				// latitude, | ||||
| 			}).then((res)=>{ | ||||
| 				if (res.errCode == 0) { | ||||
| 					uni.redirectTo({ | ||||
| 						url: '/pageE/more/Address' | ||||
| 					}); | ||||
| 					// this.$refs.uToast.show({ | ||||
| 					// 	title: res.message, | ||||
| 					// 	type: 'success', | ||||
| 					// 	// url: '/pageE/more/Address', | ||||
| 					// 	callback() { | ||||
| 					// 		uni.redirectTo({ | ||||
| 					// 			url: '/pageE/more/Address' | ||||
| 					// 		}); | ||||
| 					// 	} | ||||
| 					// }) | ||||
| 					this.$refs.uToast.show({ | ||||
| 						title: res.message, | ||||
| 						type: 'success', | ||||
| 						back: true, | ||||
| 					}) | ||||
| 				} else { | ||||
| 					this.showToast(res.message, 'warning'); | ||||
| 				} | ||||
|  | ||||
| @ -1,13 +1,13 @@ | ||||
| <template> | ||||
| 	<view class="comment"> | ||||
| 		<view class="user-info"> | ||||
| 			<image src="@/pageE/static/mine/23.png" class="user-avatar"></image> | ||||
| 			<view class="user-name">***雪</view> | ||||
| 			<image :src="info.member_avatar" class="user-avatar"></image> | ||||
| 			<view class="user-name">{{ info.member_nickname }}</view> | ||||
| 		</view> | ||||
| 		<view class="user-comment"> | ||||
| 			<view class="text u-line-2">宝贝收到了和卖家描述的一样,质量不错,很漂亮一直想买这样的杯子,这个蓝色的稍微有点小瑕疵,不过自己用没问题没问题没问题</view> | ||||
| 			<view class="text u-line-2">{{ info.comment }}</view> | ||||
| 			<view class="image"> | ||||
| 				<image v-for="(src, index) in ImageList" :key="index" :src="src" mode="aspectFit"></image> | ||||
| 				<image v-for="(src, index) in info.images" :key="index" :src="src" mode="aspectFit"></image> | ||||
| 			</view> | ||||
| 		</view> | ||||
| 	</view> | ||||
| @ -15,14 +15,10 @@ | ||||
| <script> | ||||
| export default { | ||||
| 	data() { | ||||
| 		return { | ||||
| 			ImageList: [ | ||||
| 				require('@/pageE/static/mine/23.png'), | ||||
| 				require('@/pageE/static/mine/23.png'), | ||||
| 				require('@/pageE/static/mine/23.png'), | ||||
| 				require('@/pageE/static/mine/23.png') | ||||
| 			] | ||||
| 		} | ||||
| 		return {} | ||||
| 	}, | ||||
| 	props: { | ||||
| 		info: Object, | ||||
| 	} | ||||
| }; | ||||
| </script> | ||||
|  | ||||
| @ -13,7 +13,7 @@ | ||||
| 			</swiper-item> | ||||
| 		</swiper> | ||||
| 		<!-- 加载更多 --> | ||||
| 		<u-loadmore :status="loadStatus" bgColor="#FFF" margin-top="20" margin-bottom="20"></u-loadmore> | ||||
| 		<u-loadmore :status="loadStatus" bgColor="#FFF" margin-top="20" margin-bottom="20" @loadmore="loadMore" v-if="goodsList.length>=pageSize"></u-loadmore> | ||||
|     </view> | ||||
| </template> | ||||
| <script> | ||||
| @ -22,6 +22,7 @@ export default { | ||||
| 	name:"list", | ||||
| 	data() { | ||||
| 		return { | ||||
| 			pageSize: 12, | ||||
| 			current: -1, | ||||
| 			swiperCurrent: 0, | ||||
| 			goodsList: [], | ||||
| @ -60,7 +61,7 @@ export default { | ||||
| 					this.page--; | ||||
| 					this.loadStatus = 'nomore'; | ||||
| 				} else { | ||||
| 					this.loadStatus = 'loading'; | ||||
| 					this.loadStatus = 'loadmore'; | ||||
| 				} | ||||
| 			}).catch(() => { | ||||
| 				this.loadStatus = "nomore"; | ||||
| @ -82,6 +83,7 @@ export default { | ||||
| 				gc_id: gc_id, | ||||
| 			}) | ||||
| 			if (res.errCode == 0) { | ||||
| 				this.timer = true; | ||||
| 				if(reload) this.goodsList = res.data.goodsList; | ||||
| 				else this.goodsList.push(...res.data.goodsList); | ||||
| 				// console.log(this.goodsList); | ||||
|  | ||||
| @ -30,22 +30,21 @@ | ||||
| 				show: false, | ||||
| 				tab_lables: [], | ||||
| 				submites: '选好了进入首页', | ||||
| 				rSelect:[], | ||||
| 				rSelect: [], | ||||
| 				list: [], | ||||
| 			}; | ||||
| 		}, | ||||
| 		onLoad(){ | ||||
| 		onLoad() { | ||||
| 			// 标签的列表展示 | ||||
| 				this.$u.api.labelList({ | ||||
| 					 | ||||
| 				}).then((res) => { | ||||
| 					console.log(res) | ||||
| 					this.tab_lables = res.data | ||||
| 				}) | ||||
| 		}, | ||||
| 		 | ||||
| 		mounted(){ | ||||
| 			this.$u.api.labelList({ | ||||
| 
 | ||||
| 			}).then((res) => { | ||||
| 				console.log(res) | ||||
| 				this.tab_lables = res.data | ||||
| 			}) | ||||
| 		}, | ||||
| 
 | ||||
| 		mounted() {}, | ||||
| 		methods: { | ||||
| 			// 选中某个复选框时,由checkbox时触发 | ||||
| 			checkboxChange(e) { | ||||
| @ -59,11 +58,15 @@ | ||||
| 				this.show = !this.show | ||||
| 			}, | ||||
| 			// 点击切换颜色 | ||||
| 			tapClick(index,id) { | ||||
| 			tapClick(index, id) { | ||||
| 				// console.log(id); | ||||
| 				if (this.rSelect.indexOf(index) == -1) { | ||||
| 					this.rSelect.push(index); | ||||
| 					this.list.push(id);	//选中添加到数组里 | ||||
| 					this.rSelect.push(index); // 选中状态 | ||||
| 					this.list.push(id); //选中添加到数组里 | ||||
| 					if (this.rSelect.length > 9) { | ||||
| 						this.$u.toast("只能选择10个标签!"); | ||||
| 						return false; | ||||
| 					} | ||||
| 				} else { | ||||
| 					this.rSelect.splice(this.rSelect.indexOf(index), 1); //取消 | ||||
| 					this.list.splice(this.rSelect.indexOf(id), 1); //取消 | ||||
| @ -76,7 +79,7 @@ | ||||
| 					url: '/pages/index/index' | ||||
| 				}); | ||||
| 			}, | ||||
| 			 | ||||
| 
 | ||||
| 		} | ||||
| 	}; | ||||
| </script> | ||||
| @ -363,9 +366,10 @@ | ||||
| 		bottom: 0; | ||||
| 		left: 0; | ||||
| 	} | ||||
| 
 | ||||
| 	// 选中的样式 | ||||
| 	.cur { | ||||
| 			background-color: #ff5d00!important; | ||||
| 			color: #fff!important; | ||||
| 		background-color: #ff5d00 !important; | ||||
| 		color: #fff !important; | ||||
| 	} | ||||
| </style> | ||||
|  | ||||
| @ -1,7 +1,7 @@ | ||||
| <template> | ||||
| 	<scroll-view scroll-y class="comment" @scrolltolower="loadMore"> | ||||
| 		<view class="label-list"> | ||||
| 			<view v-for="(label, index) in evaluateSpec" :key="index" :class="{'active': current == index}" @click="current=index">{{ index + '(' + label + '}' }}</view> | ||||
| 			<view v-for="(label, index) in evaluateSpec" :key="index" :class="{'active': current == index}" @click="current=index">{{ index + '(' + label + ')' }}</view> | ||||
| 		</view> | ||||
| 		<view class="comment-container"> | ||||
| 			<view v-for="(item, index) in evalueList" :key="index" class="itme"> | ||||
|  | ||||
| @ -1,6 +1,6 @@ | ||||
| <template> | ||||
| 	<view class="order"> | ||||
| 		<view class="info-address" @click="changeAddress"> | ||||
| 		<view class="info-address" @click="changeAddress" v-if="JSON.stringify(addressInfo) != '{}'"> | ||||
| 			<image src="../static/image/2.png" class="address-icon"></image> | ||||
| 			<view class="address"> | ||||
| 				<view class="user-info"> | ||||
| @ -11,6 +11,7 @@ | ||||
| 			</view> | ||||
| 			<image src="../static/image/1.png" class="right"></image> | ||||
| 		</view> | ||||
| 		<view v-else class="address-none" @click="changeAddress">请选择地址</view> | ||||
| 		<view class="main"> | ||||
| 			<view v-for="(item, index) in orderInfo.store_cart_list" :key="index"> | ||||
| 				<view class="goods-info"> | ||||
| @ -147,17 +148,18 @@ export default { | ||||
| 		this.orderType = this.$store.state.orderType; | ||||
| 		this.orderInfo = this.$store.state.orderInfo; | ||||
| 		// console.log(this.orderType); | ||||
| 		console.log(this.orderInfo); | ||||
| 		// console.log(this.orderInfo); | ||||
| 		this.getGoodsClass(); | ||||
| 		this.setTotalPrice(); | ||||
| 	}, | ||||
| 	onShow() { | ||||
| 		this.storeCoupon = {}; | ||||
| 		this.choiceCoupon = {}; | ||||
| 		// 判断是不是从选择地址页面返回 | ||||
| 		if(JSON.stringify(this.$store.state.orderAddress) == '{}') { | ||||
| 			this.$store.commit('updateAddress', this.orderInfo.address_info); | ||||
| 			if(this.orderInfo.address_info) this.$store.commit('updateAddress', this.orderInfo.address_info); | ||||
| 		} else { | ||||
| 			this.addressInfo = this.$store.state.orderAddress; | ||||
| 			if(this.$store.getters.getOrderAddress) this.addressInfo = this.$store.state.orderAddress; | ||||
| 		} | ||||
| 	}, | ||||
| 	beforeDestroy() { | ||||
| @ -166,22 +168,8 @@ export default { | ||||
| 	watch: { | ||||
| 		'$store.state.orderAddress'(value) { | ||||
| 			this.addressInfo = value; | ||||
| 			this.getFreight(); | ||||
| 			if(JSON.stringify(value) != '{}') this.getFreight(); | ||||
| 		}, | ||||
| 		// storeCoupon: { | ||||
| 		// 	deep: true, | ||||
| 		// 	handler() { | ||||
| 		// 		console.log(222); | ||||
| 		// 		this.setTotalPrice(); // 计算总价 | ||||
| 		// 	} | ||||
| 		// }, | ||||
| 		// choiceCoupon: { | ||||
| 		// 	deep: true, | ||||
| 		// 	handler() { | ||||
| 		// 		console.log(111); | ||||
| 		// 		this.setTotalPrice(); // 计算总价 | ||||
| 		// 	} | ||||
| 		// }, | ||||
| 	}, | ||||
| 	methods: { | ||||
| 		// 如果有pintuangroup_headid为参团不然为开团 | ||||
| @ -242,6 +230,11 @@ export default { | ||||
| 			if(JSON.stringify(this.choiceCoupon) != '{}') { | ||||
| 				coupon.push(0 + '|' + this.choiceCoupon.voucher_id) | ||||
| 			} | ||||
| 			// 验证是否选择地址 | ||||
| 			if(!this.addressInfo || JSON.stringify(this.addressInfo) == '{}') { | ||||
| 				this.$u.toast('收货地址不能为空'); | ||||
| 				return false; | ||||
| 			} | ||||
| 			let params = { | ||||
| 				ifcart: ifcart, | ||||
| 				cart_id: id, | ||||
| @ -304,6 +297,7 @@ export default { | ||||
| 		}, | ||||
| 		setTotalPrice() { | ||||
| 			const goods = this.orderInfo.store_goods_total; | ||||
| 			console.log(this.freight); | ||||
| 			const freight = this.freight; | ||||
| 			let price = 0; | ||||
| 			// 商品价格加上运费 | ||||
| @ -398,6 +392,14 @@ export default { | ||||
| 			height: 22rpx; | ||||
| 		} | ||||
| 	} | ||||
| 	.address-none { | ||||
| 		height: 150rpx; | ||||
| 		line-height: 150rpx; | ||||
| 		margin-bottom: 10rpx; | ||||
| 		background:rgba(255,255,255,1); | ||||
| 		text-align: center; | ||||
| 		color: #333; | ||||
| 	} | ||||
| 	.main { | ||||
| 		margin-bottom: 50rpx; | ||||
| 		> view { | ||||
|  | ||||
| @ -5,9 +5,9 @@ | ||||
| 		</view> | ||||
| 		<swiper :current="swiperCurrent" @transition="transition" @animationfinish="animationfinish" :style="{height: swiperHeight}"> | ||||
| 			<swiper-item class="swiper-item" v-for="(_, index) in tabList" :key="index"> | ||||
| 				<scroll-view scroll-y style="height: 800rpx;width: 100%;" @scrolltolower="onreachBottom"> | ||||
| 				<scroll-view scroll-y style="width: 100%;" @scrolltolower="onreachBottom"> | ||||
| 					<SpecialGoods v-for="(item, index) in pinTuanList" :key="index" :item="item" type='group'></SpecialGoods> | ||||
| 					<loadmore ref="loadmore" @callback="getPinTuanList" bgColor="#FFF"></loadmore> | ||||
| 					<u-loadmore :status="loadStatus" bgColor="#FFF" margin-top="20" margin-bottom="20" v-if="pinTuanList.length>=pageSize" @loadmore="onreachBottom"></u-loadmore> | ||||
| 					<u-empty text="暂无商品" mode="list" color="#000" v-if="!pinTuanList.length"></u-empty> | ||||
| 				</scroll-view> | ||||
| 			</swiper-item> | ||||
| @ -15,22 +15,22 @@ | ||||
| 	</view> | ||||
| </template> | ||||
| <script> | ||||
| import loadmore from "@/components/loadmore/index"; | ||||
| import SpecialGoods from "../../components/shop/special-shop/index"; | ||||
| export default { | ||||
| 	data() { | ||||
| 		return { | ||||
| 			pageSize: 12, | ||||
| 			tabList: [], | ||||
| 			current: -1, | ||||
| 			swiperCurrent: 0, | ||||
| 			page: 0, | ||||
| 			pinTuanList: [], | ||||
| 			swiperHeight: '', | ||||
| 			timer: '', // 限制下拉刷新 | ||||
| 			timer: true, // 限制下拉刷新 | ||||
| 			loadStatus: 'loadmore', | ||||
| 		} | ||||
| 	}, | ||||
| 	components: { | ||||
| 		loadmore, | ||||
| 		SpecialGoods, | ||||
| 	}, | ||||
| 	onLoad() { | ||||
| @ -39,7 +39,7 @@ export default { | ||||
| 	}, | ||||
| 	watch: { | ||||
| 		current(index) { | ||||
| 			this.getPinTuanList({ id: this.tabList[index].gc_id }); | ||||
| 			this.getPinTuanList({ id: this.tabList[index].gc_id, load: 'reload' }); | ||||
| 		} | ||||
| 	}, | ||||
| 	methods: { | ||||
| @ -53,14 +53,39 @@ export default { | ||||
| 			}) | ||||
| 		}, | ||||
| 		// 拼团列表 | ||||
| 		async getPinTuanList({ id, page }) { | ||||
| 		async getPinTuanList({ id, page, load }) { | ||||
| 			const res = await this.$u.api.getPinTuanList({ | ||||
| 				page: this.page, | ||||
| 				gc_id: id, | ||||
| 			}) | ||||
| 			this.pinTuanList = res.data; | ||||
| 			this.timer = true; | ||||
| 			if (res.errCode == 0) { | ||||
| 				if(load == 'reload') this.pinTuanList = res.data; | ||||
| 				else if(load == 'loadmore') this.pinTuanList.push(...res.data); | ||||
| 			} | ||||
| 			return res.data.length; | ||||
| 		}, | ||||
| 		// scroll-view到底部加载更多 | ||||
| 		onreachBottom() { | ||||
| 			if(!this.timer) return false; | ||||
| 			this.loadStatus = "loading"; | ||||
| 			this.page++; | ||||
| 			this.getPinTuanList({ | ||||
| 				id: this.tabList[this.current].gc_id, | ||||
| 				load: 'loadmore', | ||||
| 			}).then(length => { | ||||
| 				console.log(length); | ||||
| 				if(length == 0) { | ||||
| 					this.page--; | ||||
| 					this.loadStatus = 'nomore'; | ||||
| 				} else { | ||||
| 					this.loadStatus = 'loadmore'; | ||||
| 				} | ||||
| 			}).catch(() => { | ||||
| 				this.loadStatus = "nomore"; | ||||
| 				this.page--; | ||||
| 			}) | ||||
| 		}, | ||||
| 		// tabs通知swiper切换 | ||||
| 		tabsChange(index) { | ||||
| 			this.swiperCurrent = index; | ||||
| @ -77,24 +102,6 @@ export default { | ||||
| 			this.swiperCurrent = current; | ||||
| 			this.current = current; | ||||
| 		}, | ||||
| 		// scroll-view到底部加载更多 | ||||
| 		onreachBottom() { | ||||
| 			this.$$refs.loadmore.reachBottom(); | ||||
| 			if(!this.timer) return false; | ||||
| 			this.loadStatus = "loading"; | ||||
| 			this.page++; | ||||
| 			this.getPinTuanList().then(length => { | ||||
| 				if(length == 0) { | ||||
| 					this.page--; | ||||
| 					this.status = 'nomore'; | ||||
| 				} else { | ||||
| 					this.status = 'loading'; | ||||
| 				} | ||||
| 			}).catch(() => { | ||||
| 				this.loadStatus = "nomore"; | ||||
| 				this.page--; | ||||
| 			}) | ||||
| 		}, | ||||
| 		setViewHeight() { | ||||
| 			const res = uni.getSystemInfoSync(); | ||||
| 			this.swiperHeight = res.windowHeight - (88 / 2) + 'px'; | ||||
|  | ||||
| @ -67,6 +67,34 @@ export default { | ||||
| 	onLoad() { | ||||
| 		this.getUserInfo(); | ||||
| 	}, | ||||
| 	// 监听头像裁剪 | ||||
| 	created() { | ||||
| 		// uni.$on('uAvatarCropper', path => { | ||||
| 		// 	const url = this.$u.http.config.baseUrl + '/Upload/uploadfile'; | ||||
| 		// 	this.avatar = path; | ||||
| 		// 	// 可以在此上传到服务端 | ||||
| 		// 	// uni.uploadFile({ | ||||
| 		// 	// 	url: 'http://www.example.com/upload', | ||||
| 		// 	// 	filePath: path, | ||||
| 		// 	// 	name: 'file', | ||||
| 		// 	// 	complete: (res) => { | ||||
| 		// 	// 		console.log(res); | ||||
| 		// 	// 	} | ||||
| 		// 	// }); | ||||
| 		// 	common.uploadFile({  | ||||
| 		// 		url: url, | ||||
| 		// 		name: 'avatar', | ||||
| 		// 		filePath: path | ||||
| 		// 	}).then(result => { | ||||
| 		// 		// console.log(result); | ||||
| 		// 		this.$set(this, 'avatar', result.file_path); | ||||
| 		// 		// this.avatar = result.file_path; | ||||
| 		// 		this.uploadPath = result.file_name; | ||||
| 		// 	}, error => { | ||||
| 		// 		this.$u.toast(error); | ||||
| 		// 	}) | ||||
| 		// }) | ||||
| 	}, | ||||
| 	onNavigationBarButtonTap(e) { | ||||
| 		if( e.index == 0 ) uni.navigateBack(); | ||||
| 	}, | ||||
| @ -94,6 +122,17 @@ export default { | ||||
| 				} | ||||
| 			}); | ||||
| 		}, | ||||
| 		// 头像裁剪 | ||||
| 		// chooseAvatar() { | ||||
| 		// 	this.$u.route({ | ||||
| 		// 		url: '/uview-ui/components/u-avatar-cropper/u-avatar-cropper', | ||||
| 		// 		params: { | ||||
| 		// 			destWidth: 300, | ||||
| 		// 			rectWidth: 200, | ||||
| 		// 			fileType: 'jpg', | ||||
| 		// 		} | ||||
| 		// 	}) | ||||
| 		// }, | ||||
| 		getUserInfo() { | ||||
| 			this.$u.api.getMemberInfo().then(res => { | ||||
| 				if (res.errCode == 0) { | ||||
|  | ||||
| @ -3,11 +3,11 @@ | ||||
| 		<view class="integral-top"> | ||||
| 			<view> | ||||
| 				<view class="title">总积分</view> | ||||
| 				<view class="value">{{ memberInfo.member_points }}</view> | ||||
| 				<view class="value">{{ memberInfo.member_points || 0 }}</view> | ||||
| 			</view> | ||||
| 			<view> | ||||
| 				<view class="title">经验值</view> | ||||
| 				<view class="value">{{ memberInfo.member_exppoints }}</view> | ||||
| 				<view class="value">{{ memberInfo.member_exppoints || 0 }}</view> | ||||
| 			</view> | ||||
| 			<view @click="viewProgress"> | ||||
| 				<view class="title">预计进度</view> | ||||
|  | ||||
| @ -3,20 +3,11 @@ | ||||
| 		<u-tabs-swiper ref="coupon" :list="couponGroupList" name="gc_name" :is-scroll="true" active-color="#FF780F" :current="couponCurrent" font-size="24" :show-bar="false" @change="couponTabsChange" height="88" ></u-tabs-swiper> | ||||
| 		<swiper :current="swiperCouponCurrent" @animationfinish="couponAnimationFinish" :style="{ height: swiperHeight }"> | ||||
| 			<swiper-item class="swiper-coupon-item" v-for="(_, i) in couponGroupList" :key="i"> | ||||
| 				<scroll-view scroll-y style="height: 100%;"> | ||||
| 				<scroll-view scroll-y style="height: 100%;" @scrolltolower="onreachBottom"> | ||||
| 					<view v-for="(coupon, index) in couponList" :key="index" class="coupon-item"> | ||||
| 						<!-- <img src="../static/mine/23.png" /> | ||||
| 						<view class="coupon-main"> | ||||
| 							<view class="coupon-title">萌店十元优惠券</view> | ||||
| 							<view class="coupon-date"> | ||||
| 								<img src="../static/mine/26.png" /> | ||||
| 								<view>2020.05.17-2020.06.17</view> | ||||
| 							</view> | ||||
| 							<view class="coupon-integral">299积分</view> | ||||
| 						</view> | ||||
| 						<view class="coupon-btn">兑换</view> --> | ||||
| 						<Coupon :couponInfo="coupon" :status='0' :type="0" @exchange="exchangeCoupon($event)"></Coupon> | ||||
| 					</view> | ||||
| 					<u-loadmore :status="loadStatus" bgColor="#FFF" margin-top="20" margin-bottom="20" v-if="couponList.length>=pageSize" @loadmore="onreachBottom"></u-loadmore> | ||||
| 					<u-empty text="暂无优惠券" mode="coupon" color="#000" v-if="!couponList.length"></u-empty> | ||||
| 				</scroll-view> | ||||
| 			</swiper-item> | ||||
| @ -28,6 +19,7 @@ import Coupon from "@/components/mine/coupon/index"; | ||||
| export default { | ||||
| 	data() { | ||||
| 		return { | ||||
| 			pageSize: 1, | ||||
| 			swiperHeight: '', | ||||
| 			couponCurrent: 0, | ||||
| 			swiperCouponCurrent: 0, | ||||
| @ -48,20 +40,18 @@ export default { | ||||
| 	watch: { | ||||
| 		couponCurrent(index) { | ||||
| 			const id = this.couponGroupList[index].gc_id; | ||||
| 			this.getCouponList({ gc_id: id }); | ||||
| 			this.getCouponList({ gc_id: id, load: 'reload' }); | ||||
| 		} | ||||
| 	}, | ||||
| 	methods: { | ||||
| 		loadMore(page) { | ||||
| 		onreachBottom() { | ||||
| 			if(!this.timer) return false; | ||||
| 			this.loadStatus = "loading"; | ||||
| 			this.page++; | ||||
| 			this.getGoodsRecommend({ | ||||
| 				gc_id: this.classifyList[this.current].gc_id,  | ||||
| 				page: this.page,  | ||||
| 				reload: false, | ||||
| 			this.getCouponList({ | ||||
| 				gc_id: this.couponGroupList[this.couponCurrent].gc_id, | ||||
| 				load: 'loadmore', | ||||
| 			}).then(length => { | ||||
| 				// console.log(length); | ||||
| 				if(length == 0) { | ||||
| 					this.page--; | ||||
| 					this.loadStatus = 'nomore'; | ||||
| @ -77,24 +67,24 @@ export default { | ||||
| 			this.$u.api.getGoodsClass().then(res => { | ||||
| 				if(res.errCode == 0) { | ||||
| 					this.couponGroupList = res.data; | ||||
| 					this.getCouponList(this.couponGroupList[0].gc_id); | ||||
| 					this.getCouponList({ gc_id: this.couponGroupList[0].gc_id, load: 'reload' }); | ||||
| 				} | ||||
| 			}) | ||||
| 		}, | ||||
| 		getCouponList({ gc_id }) { | ||||
| 			this.$u.api.getCouponList({ | ||||
| 		async getCouponList({ gc_id, load }) { | ||||
| 			const res = await this.$u.api.getCouponList({ | ||||
| 				page: this.page, | ||||
| 				gc_id: gc_id, | ||||
| 			}).then(res => { | ||||
| 				if(res.errCode == 0) { | ||||
| 					this.couponList = res.data; | ||||
| 				} else { | ||||
| 					this.couponList = []; | ||||
| 				} | ||||
| 			}) | ||||
| 			this.timer = true; | ||||
| 			if(res.errCode == 0) { | ||||
| 				if(load == 'reload') this.couponList = res.data; | ||||
| 				else if(load == 'loadmore') this.couponList.push(...res.data); | ||||
| 			} | ||||
| 			return res.data.length; | ||||
| 		}, | ||||
| 		exchangeCoupon(id) { | ||||
| 			console.log(id); | ||||
| 			// console.log(id); | ||||
| 			 | ||||
| 		}, | ||||
| 		couponTabsChange(index) { | ||||
|  | ||||
| @ -14,7 +14,7 @@ | ||||
| 				@on-uploaded="setImageList" | ||||
| 			> | ||||
| 				<view slot="addBtn" class="slot-btn" hover-class="slot-btn__hover" hover-stay-time="150"> | ||||
| 					<img src="../static/mine/27.png" /> | ||||
| 					<image src="../static/mine/27.png"></image> | ||||
| 				</view> | ||||
| 			</u-upload> | ||||
| 		</view> | ||||
| @ -102,7 +102,7 @@ export default { | ||||
| 			background: rgba(236,236,236,1); | ||||
| 			border-radius: 10rpx; | ||||
| 			text-align: center; | ||||
| 			> img { | ||||
| 			> image { | ||||
| 				margin-top: 48rpx; | ||||
| 				width: 54rpx; | ||||
| 				height: 49rpx; | ||||
|  | ||||
| @ -10,7 +10,7 @@ | ||||
| 				:auto-upload="false" | ||||
| 			> | ||||
| 				<view slot="addBtn" class="slot-btn" hover-class="slot-btn__hover" hover-stay-time="150"> | ||||
| 					<img src="../static/mine/27.png" /> | ||||
| 					<image src="../static/mine/27.png"></image> | ||||
| 				</view> | ||||
| 			</u-upload> | ||||
| 		</view> | ||||
| @ -94,7 +94,7 @@ export default { | ||||
| 			background: rgba(236,236,236,1); | ||||
| 			border-radius: 10rpx; | ||||
| 			text-align: center; | ||||
| 			> img { | ||||
| 			> image { | ||||
| 				margin-top: 48rpx; | ||||
| 				width: 54rpx; | ||||
| 				height: 49rpx; | ||||
|  | ||||
| @ -1,20 +1,20 @@ | ||||
| <template> | ||||
| 	<view class="logistics"> | ||||
| 		<view class="logistics-info"> | ||||
| 			<view class="express"> | ||||
| 			<!-- <view class="express"> | ||||
| 				<image src="../static/mine/23.png"></image> | ||||
| 				<view class="dispatcher-info"> | ||||
| 					<view>派件员:xxx</view> | ||||
| 					<view>手机:123456789</view> | ||||
| 				</view> | ||||
| 			</view> | ||||
| 			</view> --> | ||||
| 			<view class="express-status"> | ||||
| 				<image src="../static/mine/23.png"></image> | ||||
| 				<image :src="expressInfo.goods_image"></image> | ||||
| 				<view> | ||||
| 					<view class="status">物流状态:已签收</view> | ||||
| 					<view>承运来源:百世快递</view> | ||||
| 					<view>运单编号:3253463464777</view> | ||||
| 					<view>官方电话:4009-565-656</view> | ||||
| 					<view class="status">物流状态:{{ expressInfo.is_check }}</view> | ||||
| 					<view>承运来源:{{ expressInfo.express_name || '' }}</view> | ||||
| 					<view>运单编号:{{ expressInfo.shipping_code || '' }}</view> | ||||
| 					<view>官方电话:{{ expressInfo.express_phone || '' }}</view> | ||||
| 				</view> | ||||
| 			</view> | ||||
| 		</view> | ||||
| @ -22,8 +22,8 @@ | ||||
| 			<view class="title">物流跟踪</view> | ||||
| 			<view class="main"> | ||||
| 				<view v-for="(item, index) in list" :key="index" class="logistics-item"> | ||||
| 					<view class="info u-line-2">{{ item.address }}</view> | ||||
| 					<view class="date">{{ item.date }}</view> | ||||
| 					<view class="info u-line-2">{{ item.content }}</view> | ||||
| 					<view class="date">{{ item.kd_time }}</view> | ||||
| 				</view> | ||||
| 			</view> | ||||
| 		</view> | ||||
| @ -33,24 +33,23 @@ | ||||
| export default { | ||||
| 	data() { | ||||
| 		return { | ||||
| 			list: [ | ||||
| 				{ | ||||
| 					address: '[北京市]【已签收,本人签收】,感谢使用百事快递,期待再次为您服务[北京市]【已签收,本人签收】,感谢使用百事快递,期待再次为您服务[北京市]【已签收,本人签收】,感谢使用百事快递,期待再次为您服务', | ||||
| 					date: '2019-12-25  09:38:21' | ||||
| 				}, | ||||
| 				{ | ||||
| 					address: '[北京市]【已签收,本人签收】,感谢使用百事快递,期待再次为您服务', | ||||
| 					date: '2019-12-25  09:38:21' | ||||
| 				}, | ||||
| 				{ | ||||
| 					address: '[北京市]【已签收,本人签收】,感谢使用百事快递,期待再次为您服务', | ||||
| 					date: '2019-12-15  09:38:20' | ||||
| 				}, | ||||
| 				{ | ||||
| 					address: '卖家已发货', | ||||
| 					date: '2019-12-15  09:38:20' | ||||
| 			list: [], | ||||
| 			expressInfo: {}, | ||||
| 		} | ||||
| 	}, | ||||
| 	onLoad(option) { | ||||
| 		this.getOrderLogistics(option.oid); | ||||
| 	}, | ||||
| 	methods: { | ||||
| 		getOrderLogistics(id) { | ||||
| 			this.$u.api.orderLogistics({ id: 16 }).then(res => { | ||||
| 				if(res.errCode == 0) { | ||||
| 					this.expressInfo = res.data.express_info; | ||||
| 					this.list = res.data.express_list; | ||||
| 				} else { | ||||
| 					this.list = []; | ||||
| 				} | ||||
| 			] | ||||
| 			}) | ||||
| 		} | ||||
| 	} | ||||
| }; | ||||
|  | ||||
| @ -26,7 +26,7 @@ export default { | ||||
| 		return { | ||||
| 			name: '', | ||||
| 			time: '', | ||||
| 			address: '四川省攀枝花市银江镇', | ||||
| 			address: '', | ||||
| 			params: { | ||||
| 				year: true, | ||||
| 				month: true, | ||||
|  | ||||
| @ -15,8 +15,9 @@ | ||||
| 						<view class="order-info"> | ||||
| 							<image src="../static/mine/23.png"></image> | ||||
| 							<view v-if="item.deliver_goods_type == 2 && item.order_status == 20"> | ||||
| 								<view>骑手名字:{{ item.takeawayer_name }}</view> | ||||
| 								<view>联系方式:{{ item.member_phone }}</view> | ||||
| 								<view>骑手名字:{{ item.takeawayer_name || '' }}</view> | ||||
| 								<view>联系方式:{{ item.member_phone || '' }}</view> | ||||
| 								<view>所属公司:{{ item.company || '' }}</view> | ||||
| 							</view> | ||||
| 							<view v-if="item.order_status == 0"> | ||||
| 								<view>正在等待接单</view> | ||||
| @ -35,7 +36,7 @@ | ||||
| 							<view class="btn" v-if="item.order_status == 20" @click="sendLaundryOrderConfirm(item.laundry_id)"> | ||||
| 								确认完成 | ||||
| 							</view> | ||||
| 							<view class="btn" v-if="item.order_status == 50"> | ||||
| 							<view class="btn" v-if="item.order_status == 50" @click="toComment(item.laundry_id)"> | ||||
| 								去评价 | ||||
| 							</view> | ||||
| 						</view> | ||||
| @ -49,8 +50,8 @@ | ||||
| 			</swiper-item> | ||||
| 			<swiper-item class="swiper-item"> | ||||
| 				<scroll-view scroll-y class="comment"> | ||||
| 					<view v-for="(item, index) in 3" :key="index" class="comment-item"> | ||||
| 						<Comment></Comment> | ||||
| 					<view v-for="(comment, index) in commentList" :key="index" class="comment-item"> | ||||
| 						<Comment :info="comment"></Comment> | ||||
| 					</view> | ||||
| 				</scroll-view> | ||||
| 			</swiper-item> | ||||
| @ -84,6 +85,7 @@ export default { | ||||
| 			page: 1, | ||||
| 			orderList: [], | ||||
| 			timer: true, | ||||
| 			commentList: [], | ||||
| 		} | ||||
| 	}, | ||||
| 	components: { | ||||
| @ -111,11 +113,22 @@ export default { | ||||
| 			return state; | ||||
| 		}, | ||||
| 	}, | ||||
| 	watch: { | ||||
| 		current(index) { | ||||
| 			if(index == 1) { | ||||
| 				uni.navigateTo({ | ||||
| 					url: '/pageE/tool/WashOrder' | ||||
| 				}); | ||||
| 				this.showPopup = false; | ||||
| 			} | ||||
| 		} | ||||
| 	}, | ||||
| 	onShow() { | ||||
| 		this.current = 0; | ||||
| 		this.swiperCurrent = 0; | ||||
| 		this.showPopup = false; | ||||
| 		this.sendLaundryOrderList(); | ||||
| 		this.sendCommentList(); | ||||
| 	}, | ||||
| 	methods: { | ||||
| 		async sendLaundryOrderList({ load = 'reload' } = {}) { | ||||
| @ -159,31 +172,33 @@ export default { | ||||
| 				this.page--; | ||||
| 			}) | ||||
| 		}, | ||||
| 		// 送洗评论列表 | ||||
| 		sendCommentList() { | ||||
| 			this.$u.api.sendCommentList().then(res => { | ||||
| 				if(res.errCode == 0) { | ||||
| 					this.commentList = res.data.list; | ||||
| 				} else { | ||||
| 					this.commentList = []; | ||||
| 				} | ||||
| 			}) | ||||
| 		}, | ||||
| 		toComment(id) { | ||||
| 			this.$u.route('/pageE/tool/washComment', { | ||||
| 				id: id | ||||
| 			}); | ||||
| 		}, | ||||
| 		tabsChange(index) { | ||||
| 			this.swiperCurrent = index; | ||||
| 			this.toApplyPage(index); | ||||
| 			if (index == 0){ | ||||
| 				this.showPopup = !this.showPopup; | ||||
| 			} else { | ||||
| 				this.showPopup = false; | ||||
| 			} | ||||
| 		}, | ||||
| 		animationfinish(e) { | ||||
| 			let current = e.detail.current; | ||||
| 			this.swiperCurrent = current; | ||||
| 			this.current = current; | ||||
| 			this.toApplyPage(current); | ||||
| 		}, | ||||
| 		toApplyPage(index) { | ||||
| 			var that = this; | ||||
| 			if(index == 1) { | ||||
| 				this.showPopup = false; | ||||
| 				uni.navigateTo({ | ||||
| 					url: '/pageE/tool/WashOrder' | ||||
| 				}); | ||||
| 			} else if (index == 0){ | ||||
| 				this.history(); | ||||
| 			} else { | ||||
| 				this.showPopup = false; | ||||
| 			} | ||||
| 		}, | ||||
| 		history(){ | ||||
| 			this.showPopup = true; | ||||
| 		}, | ||||
| 		replaces(e){ | ||||
| 			if(e == 1){ | ||||
|  | ||||
| @ -7,7 +7,7 @@ | ||||
| 			<swiper-item class="swiper-item"> | ||||
| 				<scroll-view scroll-y="true" style="height: 100%;"> | ||||
| 					<view class="order-info"> | ||||
| 						<view class="order-name" @click="order()"> | ||||
| 						<view class="order-name" @click="showPopup=true"> | ||||
| 							<view class="title titles" > | ||||
| 								<text>选择订单:</text> | ||||
| 								<image src="../../static/image/shop/2.png" mode=""></image> | ||||
| @ -38,9 +38,13 @@ | ||||
| 								</view> | ||||
| 							</view> | ||||
| 						</view> | ||||
| 						<view class="order-view order-phone"> | ||||
| 							<view class="title">衣服状况:</view> | ||||
| 							<input type="text" v-model="goodsStatus" /> | ||||
| 						</view> | ||||
| 						<view class="order-view order-type" @click="showClothesType=true"> | ||||
| 							<view class="title">商品类型:</view> | ||||
| 							<input type="text" v-model="type" disabled /> | ||||
| 							<input type="text" v-model="type.label" disabled /> | ||||
| 						</view> | ||||
| 						<view class="order-view order-name"> | ||||
| 							<view class="title">送洗人:</view> | ||||
| @ -66,18 +70,22 @@ | ||||
| 					<view class="upload-image"> | ||||
| 						<view class="title">上传商品图片</view> | ||||
| 						<u-upload  | ||||
| 							ref="uUpload"  | ||||
| 							@on-uploaded="onUploaded"  | ||||
| 							ref="platform" | ||||
| 							:custom-btn="true"  | ||||
| 							:max-count="count"  | ||||
| 							:max-count="count" | ||||
| 							:action="uaction" | ||||
| 							:auto-upload="false" | ||||
| 							:header="uheader" | ||||
| 							:form-data="uformData" | ||||
| 							:name="uname" | ||||
| 							@on-uploaded="setImageList" | ||||
| 						> | ||||
| 							<view slot="addBtn" class="slot-btn" hover-class="slot-btn__hover" hover-stay-time="150"> | ||||
| 								<img src="../static/mine/27.png" /> | ||||
| 								<image src="../static/mine/27.png"></image> | ||||
| 							</view> | ||||
| 						</u-upload> | ||||
| 					</view> | ||||
| 					<view class="wash-btn" @click="reset()">确认送洗</view> | ||||
| 					<view class="wash-btn" @click="submitImage">确认送洗</view> | ||||
| 				</scroll-view> | ||||
| 			</swiper-item> | ||||
| 			<swiper-item class="swiper-item"> | ||||
| @ -86,18 +94,22 @@ | ||||
| 						<view class="title">商品名称:</view> | ||||
| 						<input type="text" v-model="goodsName" /> | ||||
| 					</view> | ||||
| 					<view class="order-view order-phone" @click="showClothesType=true"> | ||||
| 						<view class="title">商品类型:</view> | ||||
| 						<input type="text" v-model="type" disabled /> | ||||
| 					</view> | ||||
| 					<view class="order-view order-phone"> | ||||
| 						<view class="title">衣服状况:</view> | ||||
| 						<input type="text" v-model="name" /> | ||||
| 						<input type="text" v-model="goodsStatus" /> | ||||
| 					</view> | ||||
| 					<view class="order-view order-phone" @click="showClothesType=true"> | ||||
| 						<view class="title">商品类型:</view> | ||||
| 						<input type="text" v-model="type.label" disabled /> | ||||
| 					</view> | ||||
| 					<view class="order-view order-name"> | ||||
| 						<view class="title">送洗人:</view> | ||||
| 						<input type="text" v-model="name" /> | ||||
| 					</view> | ||||
| 					<view class="order-view order-phone"> | ||||
| 						<view class="title">手机号:</view> | ||||
| 						<input type="text" v-model="phone" maxlength="11" /> | ||||
| 					</view> | ||||
| 					<view class="order-view order-area" @click="showAddress=true"> | ||||
| 						<view class="title">省市区:</view> | ||||
| 						<input type="text" v-model="area" disabled /> | ||||
| @ -114,28 +126,33 @@ | ||||
| 				<view class="upload-image"> | ||||
| 					<view class="title">上传商品图片</view> | ||||
| 					<u-upload  | ||||
| 						ref="uUpload"  | ||||
| 						@on-uploaded="onUploaded"  | ||||
| 						ref="physical" | ||||
| 						:custom-btn="true"  | ||||
| 						:max-count="count"  | ||||
| 						:max-count="count" | ||||
| 						:action="uaction" | ||||
| 						:auto-upload="false" | ||||
| 						:header="uheader" | ||||
| 						:form-data="uformData" | ||||
| 						:name="uname" | ||||
| 						@on-uploaded="setImageList" | ||||
| 					> | ||||
| 						<view slot="addBtn" class="slot-btn" hover-class="slot-btn__hover" hover-stay-time="150"> | ||||
| 							<img src="../static/mine/27.png" /> | ||||
| 							<image src="../static/mine/27.png"></image> | ||||
| 						</view> | ||||
| 					</u-upload> | ||||
| 				</view> | ||||
| 				<view class="wash-btn">确认送洗</view> | ||||
| 				<view class="wash-btn" @click="submitImage">确认送洗</view> | ||||
| 			</swiper-item> | ||||
| 		</swiper> | ||||
| 		<u-select v-model="showClothesType" :list="typeList" value-name="id" label-name="name" @confirm="confirmType"></u-select> | ||||
| 		<u-select v-model="showClothesType" :list="typeList" value-name="id" label-name="name" @confirm="confirmType" :safe-area-inset-bottom="true" mode="single-column"></u-select> | ||||
| 		<u-select v-model="showAddress"  | ||||
| 				mode="mutil-column-auto"  | ||||
| 				:list="areaList"  | ||||
| 				value-name="area_id"  | ||||
| 				label-name="area_name"  | ||||
| 				child-name="_child"  | ||||
| 				@confirm="setArea"> | ||||
| 				@confirm="setArea" | ||||
| 				:safe-area-inset-bottom="true"> | ||||
| 		</u-select> | ||||
| 		<u-popup v-model="showPopup" mode="bottom" border-radius="20"> | ||||
| 			<view class="order-popup"> | ||||
| @ -182,49 +199,50 @@ | ||||
| 				<view class="order-btn" @click="confirm">确认</view> | ||||
| 			</view> | ||||
| 		</u-popup> | ||||
| 		<u-toast ref="uToast" /> | ||||
| 	</view> | ||||
| </template> | ||||
| <script> | ||||
| export default { | ||||
| 	data() { | ||||
| 		return { | ||||
| 			items: [], | ||||
| 			// items: [], | ||||
| 			count: 4, // 最大图片数量 | ||||
| 			type: '', | ||||
| 			name: '', | ||||
| 			phone: '', | ||||
| 			area: '', | ||||
| 			address: '', | ||||
| 			// platformForm: { | ||||
| 			// 	type: '', | ||||
| 			// 	name: '', | ||||
| 			// 	phone: '', | ||||
| 			// 	area: '', | ||||
| 			// 	address: '', | ||||
| 			// }, | ||||
| 			// physicalForm: { | ||||
| 				 | ||||
| 			// }, | ||||
| 			goodsName: '', | ||||
| 			type: {}, // 商品类型 | ||||
| 			name: '', // 送洗人 | ||||
| 			phone: '', // 手机号 | ||||
| 			area: '', // 省市区 | ||||
| 			goodsStatus: '', // 衣服状况 | ||||
| 			address: '', // 详细地址 | ||||
| 			goodsName: '', // 商品名称 | ||||
| 			list: [{ | ||||
| 				name: '平台历史订单' | ||||
| 			}, { | ||||
| 				name: '实体店历史订单' | ||||
| 			}], | ||||
| 			typeList: [], | ||||
| 			orderList: [], | ||||
| 			typeList: [], // 商品类型列表 | ||||
| 			orderList: [], // 商品列表 | ||||
| 			page: 0, | ||||
| 			current: 0, | ||||
| 			areaList: [], | ||||
| 			swiperCurrent: 0, | ||||
| 			areaList: [], // 地址列表 | ||||
| 			showClothesType: false, | ||||
| 			showAddress: false, | ||||
| 			swiperCurrent: 0, | ||||
| 			showPopup : false, | ||||
| 			checkedList: [], | ||||
| 			page: 0, | ||||
| 			swiperHeight: '', | ||||
| 			value: '', // radio | ||||
| 			checkedGoods: {}, | ||||
| 			choose: false, // 是否选择商品 | ||||
| 			checkedGoods: {}, // 选中的商品 | ||||
| 			choose: false, // 是否选择了商品 | ||||
| 			filesArr: [], // 选择的图片 | ||||
| 			uploadImage: [], // 图片名称(后台返回)列表 | ||||
| 			uaction: this.$u.http.config.baseUrl + '/Upload/uploadfile', // 下面是上传图片的参数 | ||||
| 			uheader: { | ||||
| 				"authorization": 'Bearer' + " " + uni.getStorageSync('token') | ||||
| 			}, | ||||
| 			uname: 'common', // 与formData name 一样 | ||||
| 			uformData: { | ||||
| 				name: 'common', // 其他图片 | ||||
| 			}, | ||||
| 		} | ||||
| 	}, | ||||
| 	onShow() { | ||||
| @ -242,12 +260,17 @@ export default { | ||||
| 	methods: { | ||||
| 		getClothesTypeList() { | ||||
| 			this.$u.api.getClothesTypeList().then(res => { | ||||
| 				this.typeList = res.data.typeList; | ||||
| 				if (res.errCode == 0) { | ||||
| 					this.typeList = res.data.typeList; | ||||
| 				} else { | ||||
| 					this.typeList = []; | ||||
| 				} | ||||
| 				console.log(this.typeList); | ||||
| 			}) | ||||
| 		}, | ||||
| 		confirmType(e) { | ||||
| 			// console.log(e); | ||||
| 			this.type = e[0].label; | ||||
| 			// console.log(e[0]); | ||||
| 			this.type = e[0]; | ||||
| 		}, | ||||
| 		async getOrderList({ load = 'reload' } = {}) { | ||||
| 			const res = await this.$u.api.getOrderList({ | ||||
| @ -261,15 +284,96 @@ export default { | ||||
| 			} | ||||
| 			return res; | ||||
| 		}, | ||||
| 		submit() { | ||||
| 			this.$refs.uUpload.upload(); | ||||
| 		}, | ||||
| 		onUploaded(list) { | ||||
| 			console.log(list); | ||||
| 		submitImage() { | ||||
| 			// this.$refs.uUpload.upload(); | ||||
| 			this.current == 0 ? this.$refs.platform.upload() : this.$refs.physical.upload(); | ||||
| 			// this.confirmSend(); | ||||
| 		}, | ||||
| 		tabsChange(index) { | ||||
| 			this.swiperCurrent = index; | ||||
| 		}, | ||||
| 		setImageList(lists) { | ||||
| 			console.log(lists); | ||||
| 			let imageList = []; | ||||
| 			lists.forEach(res => { | ||||
| 				if(res.response.errCode == 0) imageList.push(res.response.data.file_name); | ||||
| 			}) | ||||
| 			// console.log(imageList); | ||||
| 			this.filesArr = imageList; | ||||
| 			console.log(this.filesArr); | ||||
| 			this.confirmSend(); | ||||
| 		}, | ||||
| 		validationParams() { | ||||
| 			if (this.current == 1) { | ||||
| 				if(this.$u.test.isEmpty(this.goodsName)) { | ||||
| 					this.showToast('商品名称不能为空', 'warning'); | ||||
| 					return false; | ||||
| 				} | ||||
| 			} | ||||
| 			if(this.current == 0) { | ||||
| 				if(JSON.stringify(this.checkedGoods) != '{}') { | ||||
| 					this.showToast('订单不能为空', 'warning'); | ||||
| 					return false; | ||||
| 				} | ||||
| 			} | ||||
| 			if(this.$u.test.isEmpty(this.goodsStatus)) { | ||||
| 				this.showToast('衣服状况不能为空', 'warning'); | ||||
| 				return false; | ||||
| 			} | ||||
| 			if(JSON.stringify(this.type) != '{}') { | ||||
| 				this.showToast('商品类型不能为空', 'warning'); | ||||
| 				return false; | ||||
| 			} | ||||
| 			if(this.$u.test.isEmpty(this.name)) { | ||||
| 				this.showToast('送洗人不能为空', 'warning'); | ||||
| 				return false; | ||||
| 			} | ||||
| 			if(this.$u.test.isEmpty(this.phone)) { | ||||
| 				this.showToast('手机号不能为空', 'warning'); | ||||
| 				return false; | ||||
| 			} | ||||
| 			if(!this.$u.test.mobile(this.phone)) { | ||||
| 				this.showToast('手机号错误', 'warning'); | ||||
| 				return false; | ||||
| 			} | ||||
| 			if(this.$u.test.isEmpty(this.area)) { | ||||
| 				this.showToast('地址不能为空', 'warning'); | ||||
| 				return false; | ||||
| 			} | ||||
| 			if(this.$u.test.isEmpty(this.address)) { | ||||
| 				this.showToast('详细地址不能为空', 'warning'); | ||||
| 				return false; | ||||
| 			} | ||||
| 			return true; | ||||
| 		}, | ||||
| 		confirmSend() { | ||||
| 			if(!this.validationParams) return false; | ||||
| 			let params = { | ||||
| 				tid: this.type.value, | ||||
| 				member_name: this.name, | ||||
| 				area_info: this.area, | ||||
| 				address_info: this.address, | ||||
| 				goods_images: this.filesArr, | ||||
| 				member_phone: this.phone, | ||||
| 				condition: this.goodsStatus, | ||||
| 			} | ||||
| 			if(this.current == 0) { | ||||
| 				Object.assign(params, { | ||||
| 					type: 1, | ||||
| 					order_id: this.checkedGoods.order_id, | ||||
| 					goods_id: this.checkedGoods.goods.goods_id, | ||||
| 				}); | ||||
| 			} else if(this.current == 1) { | ||||
| 				Object.assign(params, { | ||||
| 					type: 2, | ||||
| 					goods_name: this.goodsName, | ||||
| 				}); | ||||
| 			} | ||||
| 			// console.log(params); | ||||
| 			this.$u.api.sendLaundrySave(params).then(res => { | ||||
| 				this.$u.toast(res.message); | ||||
| 			}) | ||||
| 		}, | ||||
| 		radioChange(e){ | ||||
| 			const ids = e.split(" "); | ||||
| 			console.log(ids) | ||||
| @ -278,6 +382,7 @@ export default { | ||||
| 				if(order.order_id == ids[0]) { | ||||
| 					Object.assign(checkedGoods, { store: order.extend_store }); | ||||
| 					Object.assign(checkedGoods, { order_sn: order.order_sn }); | ||||
| 					Object.assign(checkedGoods, { order_id: order.order_id }); | ||||
| 					order.extend_order_goods.forEach(goods => { | ||||
| 						if(goods.goods_id == ids[1]) { | ||||
| 							Object.assign(checkedGoods, { goods: goods }); | ||||
| @ -301,6 +406,8 @@ export default { | ||||
| 			this.$u.api.getArea().then((res)=>{ | ||||
| 				if (res.errCode == 0) { | ||||
| 					this.areaList = res.data; | ||||
| 				} else { | ||||
| 					this.areaList = []; | ||||
| 				} | ||||
| 			}) | ||||
| 		}, | ||||
| @ -308,30 +415,13 @@ export default { | ||||
| 			let current = e.detail.current; | ||||
| 			this.swiperCurrent = current; | ||||
| 			this.current = current; | ||||
| 			this.toApplyPage(current); | ||||
| 		}, | ||||
| 		order() { | ||||
| 			this.showPopup = true; | ||||
| 		}, | ||||
| 		toApplyPage(index) { | ||||
| 			// console.log(index) | ||||
| 			if(index == 1) { | ||||
| 				this.showPopup = false; | ||||
| 				this.choose = false | ||||
| 			} | ||||
| 		}, | ||||
| 		setViewHeight() { | ||||
| 			const res = uni.getSystemInfoSync(); | ||||
| 			this.swiperHeight = res.windowHeight - (88 / 2) + 'px'; | ||||
| 			// this.swiperHeight = res.windowHeight - (88 / 2) + 'px'; | ||||
| 			this.swiperHeight = res.windowHeight + 'px'; | ||||
| 		}, | ||||
| 		// replaces(){ | ||||
| 		// 	if(this.list[0].name=='实体店历史订单'){ | ||||
| 		// 		this.$set(this.list,0,{name: '平台历史订单'} ) | ||||
| 		// 	}else{ | ||||
| 		// 		this.$set(this.list,0,{name: '实体店历史订单'} ) | ||||
| 		// 	} | ||||
| 		// }, | ||||
| 		confirm(){ | ||||
| 		confirm(e){ | ||||
| 			this.showPopup = false; | ||||
| 			if(JSON.stringify(this.checkedGoods) != '{}'){ | ||||
| 				this.choose = true; | ||||
| @ -342,9 +432,12 @@ export default { | ||||
| 		close(){ | ||||
| 			this.showPopup = false | ||||
| 		}, | ||||
| 		reset(){ | ||||
| 			this.choose = false | ||||
| 		},		 | ||||
| 		showToast(message, type) { | ||||
| 			this.$refs.uToast.show({ | ||||
| 				title: message, | ||||
| 				type: type, | ||||
| 			}) | ||||
| 		}, | ||||
| 	}, | ||||
| }; | ||||
| </script> | ||||
| @ -487,7 +580,7 @@ export default { | ||||
| 			background: rgba(236,236,236,1); | ||||
| 			border-radius: 10rpx; | ||||
| 			text-align: center; | ||||
| 			> img { | ||||
| 			> image { | ||||
| 				width: 54rpx; | ||||
| 				height: 49rpx; | ||||
| 				margin-top: 48rpx; | ||||
|  | ||||
							
								
								
									
										98
									
								
								pageE/tool/washComment.vue
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										98
									
								
								pageE/tool/washComment.vue
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,98 @@ | ||||
| <template> | ||||
| 	<view class="comment"> | ||||
| 		<view class="main-container"> | ||||
| 			<u-input v-model="content" type="textarea" height="300" maxlength="200" /> | ||||
| 			<!-- <u-upload  | ||||
| 				ref="uUpload"  | ||||
| 				@on-uploaded="onUploaded"  | ||||
| 				:custom-btn="true"  | ||||
| 				:max-count="count"  | ||||
| 				:auto-upload="false" | ||||
| 			> | ||||
| 				<view slot="addBtn" class="slot-btn" hover-class="slot-btn__hover" hover-stay-time="150"> | ||||
| 					<image src="../static/mine/27.png"></image> | ||||
| 				</view> | ||||
| 			</u-upload> --> | ||||
| 		</view> | ||||
| 		<u-toast ref="uToast" /> | ||||
| 		<view class="write-btn" @click="addWashEvaluate">发表评价</view> | ||||
| 	</view> | ||||
| </template> | ||||
| <script> | ||||
| export default { | ||||
| 	data() { | ||||
| 		return { | ||||
| 			washId: '', | ||||
| 			// count: 4, // 最大图片数量 | ||||
| 			content: '', | ||||
| 		} | ||||
| 	}, | ||||
| 	onLoad(option) { | ||||
| 		this.washId = option.id; | ||||
| 	}, | ||||
| 	methods: { | ||||
| 		verifyParams() { | ||||
| 			if(this.$u.test.isEmpty(this.content)) { | ||||
| 				this.$u.toast('内容不可为空'); | ||||
| 				return false; | ||||
| 			} | ||||
| 			return true; | ||||
| 		}, | ||||
| 		addWashEvaluate() { | ||||
| 			if(!this.verifyParams()) return false; | ||||
| 			this.$u.api.sendOrderComment({ | ||||
| 				id: this.washId, | ||||
| 				comment: this.content, | ||||
| 			}).then(res => { | ||||
| 				this.$refs.uToast.show({ | ||||
| 					title: res.message, | ||||
| 					back: true, | ||||
| 				}) | ||||
| 			}) | ||||
| 		}, | ||||
| 		bindTextAreaBlur(event) { | ||||
| 			this.content = event.detail.value; | ||||
| 		} | ||||
| 	}, | ||||
| }; | ||||
| </script> | ||||
| <style lang="scss" scoped> | ||||
| .comment { | ||||
| 	min-height: calc(100vh - var(--window-top)); | ||||
| 	background-color: #ECECEC; | ||||
| 	border-top: 1rpx solid #ffffff; | ||||
| 	.main-container { | ||||
| 		background-color: #ffffff; | ||||
| 		padding: 30rpx; | ||||
| 		margin-bottom: 10rpx; | ||||
| 		// textarea { | ||||
| 		// 	width: 100% !important; | ||||
| 		// 	height: 500rpx; | ||||
| 		// 	margin-bottom: 60rpx; | ||||
| 		// } | ||||
| 		// .slot-btn { | ||||
| 		// 	width: 140rpx; | ||||
| 		// 	height: 140rpx; | ||||
| 		// 	background: rgba(236,236,236,1); | ||||
| 		// 	border-radius: 10rpx; | ||||
| 		// 	text-align: center; | ||||
| 		// 	> img { | ||||
| 		// 		margin-top: 48rpx; | ||||
| 		// 		width: 54rpx; | ||||
| 		// 		height: 49rpx; | ||||
| 		// 	} | ||||
| 		// } | ||||
| 	} | ||||
| 	.write-btn { | ||||
| 		margin: 120rpx auto 0; | ||||
| 		width: 690rpx; | ||||
| 		height: 98rpx; | ||||
| 		background: rgba(255,120,15,1); | ||||
| 		border-radius: 46rpx; | ||||
| 		font-size: 36rpx; | ||||
| 		color: rgba(255,255,255,1); | ||||
| 		text-align: center; | ||||
| 		line-height: 98rpx; | ||||
| 	} | ||||
| } | ||||
| </style> | ||||
							
								
								
									
										13
									
								
								pages.json
									
									
									
									
									
								
							
							
						
						
									
										13
									
								
								pages.json
									
									
									
									
									
								
							| @ -644,6 +644,19 @@ | ||||
| 						} | ||||
| 					} | ||||
| 				}, | ||||
| 				{ | ||||
| 					"path": "tool/washComment", | ||||
| 					"style": { | ||||
| 						"navigationBarTitleText": "送洗评价", | ||||
| 						"app-plus": { | ||||
| 							"titleSize": "36px", | ||||
| 							"titleNView": { | ||||
| 								"titleColor": "#333333", | ||||
| 								"backgroundColor": "#FFFFFF" | ||||
| 							} | ||||
| 						} | ||||
| 					} | ||||
| 				}, | ||||
| 				{ | ||||
| 					"path": "tool/WashOrder", | ||||
| 					"style": { | ||||
|  | ||||
| @ -288,6 +288,28 @@ | ||||
| 					url: '/pageB/follow/index' | ||||
| 				}); | ||||
| 			}, | ||||
| 			clickFImage(index) { | ||||
| 				const item = this.indexImageSwiper[index]; | ||||
| 				console.log(item); | ||||
| 				this.activityLink({ type: item.url_type, id: item.info_id }); | ||||
| 			}, | ||||
| 			clickSImage(index) { | ||||
| 				const item = this.zhiboImageSwiper[index]; | ||||
| 				console.log(item); | ||||
| 				this.activityLink({ type: item.url_type, id: item.info_id }); | ||||
| 			}, | ||||
| 			activityLink({ type, id }) { | ||||
| 				if(type == 0) return false; | ||||
| 				// type 1 商品详情页, 2 店铺详情页 | ||||
| 				const url = type == 1 ? 'pageB/sdetails/index' : 'pageC/merchant/index'; | ||||
| 				let params = { id: id }; | ||||
| 				// type: 1 // 商品详情 1普通 2拼团 3秒杀 4优惠券 | ||||
| 				if(type == 1) Object.assign(params, { type: 1 }); | ||||
| 				this.$u.route({ | ||||
| 					url: url, | ||||
| 					params: params | ||||
| 				}) | ||||
| 			}, | ||||
| 		}, | ||||
| 	} | ||||
| </script> | ||||
| </script> | ||||
|  | ||||
| @ -7,7 +7,7 @@ | ||||
| 					<view class="info-left"> | ||||
| 						<view class="user-nickname">{{ userInfo.member_nickname }}</view> | ||||
| 						<view class="user-medal" @click="toOtherPage('/mine/MedalIntroduction')"> | ||||
| 							<img src="/static/image/mine/13.png" /> | ||||
| 							<image src="/static/image/mine/13.png"></image> | ||||
| 							<view class="rank-title">{{ userInfo.member_grade_name }}</view> | ||||
| 						</view> | ||||
| 					</view> | ||||
| @ -47,32 +47,32 @@ | ||||
| 					<view class="title-text">我的订单</view> | ||||
| 					<view class="more" @click="toOtherPage('/order/Index')"> | ||||
| 						<view>查看全部订单</view> | ||||
| 						<img src="/static/image/mine/21.png" /> | ||||
| 						<image src="/static/image/mine/21.png"></image> | ||||
| 					</view> | ||||
| 				</view> | ||||
| 				<view class="content"> | ||||
| 					<view @click="toOtherPage('/order/Index?current=1')"> | ||||
| 						<img src="/static/image/mine/6.png" /> | ||||
| 						<image src="/static/image/mine/6.png"></image> | ||||
| 						<view>待支付</view> | ||||
| 					</view> | ||||
| 					<view @click="toOtherPage('/order/Index?current=2')"> | ||||
| 						<img src="/static/image/mine/14.png" /> | ||||
| 						<image src="/static/image/mine/14.png"></image> | ||||
| 						<view>已取消</view> | ||||
| 					</view> | ||||
| 					<view @click="toOtherPage('/order/Index?current=3')"> | ||||
| 						<img src="/static/image/mine/2.png" /> | ||||
| 						<image src="/static/image/mine/2.png"></image> | ||||
| 						<view>待收货</view> | ||||
| 					</view> | ||||
| 					<view @click="toOtherPage('/order/Index?current=4')"> | ||||
| 						<img src="/static/image/mine/1.png" /> | ||||
| 						<image src="/static/image/mine/1.png"></image> | ||||
| 						<view>试穿试送</view> | ||||
| 					</view> | ||||
| 					<view @click="toOtherPage('/order/Index?current=5')"> | ||||
| 						<img src="/static/image/mine/3.png" /> | ||||
| 						<image src="/static/image/mine/3.png"></image> | ||||
| 						<view>待评价</view> | ||||
| 					</view> | ||||
| 					<view @click="toOtherPage('/order/Index?current=6')"> | ||||
| 						<img src="/static/image/mine/9.png" /> | ||||
| 						<image src="/static/image/mine/9.png"></image> | ||||
| 						<view>售后</view> | ||||
| 					</view> | ||||
| 				</view> | ||||
| @ -81,19 +81,19 @@ | ||||
| 				<view class="title">我的工具</view> | ||||
| 				<view class="content"> | ||||
| 					<view @click="toOtherPage('/tool/SendWash')"> | ||||
| 						<img src="/static/image/mine/20.png" /> | ||||
| 						<image src="/static/image/mine/20.png"></image> | ||||
| 						<view>送洗</view> | ||||
| 					</view> | ||||
| 					<view @click="toOtherPage('/tool/Manicure')"> | ||||
| 						<img src="/static/image/mine/19.png" /> | ||||
| 						<image src="/static/image/mine/19.png"></image> | ||||
| 						<view>美甲</view> | ||||
| 					</view> | ||||
| 					<view @click="toOtherPage('/tool/MineHistory')"> | ||||
| 						<img src="/static/image/mine/18.png" /> | ||||
| 						<image src="/static/image/mine/18.png"></image> | ||||
| 						<view>足迹</view> | ||||
| 					</view> | ||||
| 					<view @click="toOtherPage('/tool/MineCoupon')"> | ||||
| 						<img src="/static/image/mine/25.png" /> | ||||
| 						<image src="/static/image/mine/25.png"></image> | ||||
| 						<view>优惠券</view> | ||||
| 					</view> | ||||
| 				</view> | ||||
| @ -102,19 +102,19 @@ | ||||
| 				<view class="title">更多工具</view> | ||||
| 				<view class="content"> | ||||
| 					<view @click="toOtherPage('/more/Address')"> | ||||
| 						<img src="/static/image/mine/17.png" /> | ||||
| 						<image src="/static/image/mine/17.png"></image> | ||||
| 						<view>收货地址</view> | ||||
| 					</view> | ||||
| 					<view @click="toOtherPage('/more/AfterSalesHelp')"> | ||||
| 						<img src="/static/image/mine/9.png" /> | ||||
| 						<image src="/static/image/mine/9.png"></image> | ||||
| 						<view>售后政策</view> | ||||
| 					</view> | ||||
| 					<view @click="toOtherPage('/more/MineHelp')"> | ||||
| 						<img src="/static/image/mine/16.png" /> | ||||
| 						<image src="/static/image/mine/16.png"></image> | ||||
| 						<view>使用帮助</view> | ||||
| 					</view> | ||||
| 					<view @click="toOtherPage('/more/Complaints')"> | ||||
| 						<img src="/static/image/mine/15.png" /> | ||||
| 						<image src="/static/image/mine/15.png"></image> | ||||
| 						<view>投诉意见</view> | ||||
| 					</view> | ||||
| 				</view> | ||||
| @ -199,10 +199,11 @@ export default { | ||||
| 						border-radius: 13rpx; | ||||
| 						align-items: center; | ||||
| 						padding: 0 17rpx 0 10rpx; | ||||
| 						> img { | ||||
| 						> image { | ||||
| 							margin-right: 9rpx; | ||||
| 							width: 20rpx; | ||||
| 							height: 22rpx; | ||||
| 							flex-shrink: 0; | ||||
| 						} | ||||
| 						.rank-title { | ||||
| 							font-size: 16rpx; | ||||
| @ -250,7 +251,13 @@ export default { | ||||
| 		} | ||||
| 	} | ||||
| 	.mine-container { | ||||
| 		@mixin common-mine($content-padding-top, $content-padding-bottom, $image-height) { | ||||
| 		@mixin image-size($image-width, $image-height) { | ||||
| 			> image { | ||||
| 				width: $image-width !important; | ||||
| 				height: $image-height !important; | ||||
| 			} | ||||
| 		} | ||||
| 		@mixin common-mine($content-padding-top, $content-padding-bottom, $image-width, $image-height) { | ||||
| 			box-sizing: border-box; | ||||
| 			width: 690rpx; | ||||
| 			background: rgba(255,255,255,1); | ||||
| @ -280,9 +287,11 @@ export default { | ||||
| 				display: flex; | ||||
| 				> view { | ||||
| 					text-align: center; | ||||
| 					> img { | ||||
| 					> image { | ||||
| 						width: $image-width; | ||||
| 						height: $image-height; | ||||
| 						margin-bottom: 15rpx; | ||||
| 						flex-shrink: 0; | ||||
| 					} | ||||
| 					> view { | ||||
| 						font-size: 22rpx; | ||||
| @ -295,31 +304,50 @@ export default { | ||||
| 			@include common-mine( | ||||
| 				$content-padding-top: 22rpx,  | ||||
| 				$content-padding-bottom: 30rpx,  | ||||
| 				$image-height: 36rpx | ||||
| 				$image-height: 36rpx, | ||||
| 				$image-width: 36rpx | ||||
| 			); | ||||
| 			.title { | ||||
| 				justify-content: space-between; | ||||
| 				.more { | ||||
| 					display: flex; | ||||
| 					align-items: center; | ||||
| 					> img { | ||||
| 					> image { | ||||
| 						width: 19rpx; | ||||
| 						height: 19rpx; | ||||
| 						margin-left: 10rpx; | ||||
| 						flex-shrink: 0; | ||||
| 					} | ||||
| 				} | ||||
| 			} | ||||
| 			.content { | ||||
| 				justify-content: space-between; | ||||
| 				> view { | ||||
| 					text-align: center; | ||||
| 				}; | ||||
| 				> view:nth-child(1){ | ||||
| 					@include image-size($image-width: 33rpx, $image-height: 36rpx); | ||||
| 				} | ||||
| 				> view:nth-child(2){ | ||||
| 					@include image-size($image-width: 39rpx, $image-height: 33rpx); | ||||
| 				} | ||||
| 				> view:nth-child(3){ | ||||
| 					@include image-size($image-width: 41rpx, $image-height: 33rpx); | ||||
| 				} | ||||
| 				> view:nth-child(4){ | ||||
| 					@include image-size($image-width: 40rpx, $image-height: 35rpx); | ||||
| 				} | ||||
| 				> view:nth-child(5){ | ||||
| 					@include image-size($image-width: 37rpx, $image-height: 37rpx); | ||||
| 				} | ||||
| 				> view:nth-child(6){ | ||||
| 					@include image-size($image-width: 33rpx, $image-height: 35rpx); | ||||
| 				} | ||||
| 			} | ||||
| 		}  | ||||
| 		.tool { | ||||
| 			@include common-mine( | ||||
| 				$content-padding-top: 8rpx, | ||||
| 				$content-padding-bottom: 25rpx,  | ||||
| 				$image-height: 71rpx | ||||
| 				$image-height: 71rpx, | ||||
| 				$image-width: 71rpx | ||||
| 			); | ||||
| 			.content { | ||||
| 				> view:not(:last-child) { | ||||
| @ -331,7 +359,8 @@ export default { | ||||
| 			@include common-mine( | ||||
| 				$content-padding-top: 8rpx,  | ||||
| 				$content-padding-bottom: 48rpx,  | ||||
| 				$image-height: 71rpx | ||||
| 				$image-height: 71rpx, | ||||
| 				$image-width: 71rpx | ||||
| 			); | ||||
| 			.content { | ||||
| 				> view:not(:last-child) { | ||||
|  | ||||
| @ -1,5 +1,4 @@ | ||||
| <template> | ||||
| 
 | ||||
| 	<view> | ||||
| 		<view class="status_bar"></view> | ||||
| 		<scroll-view class="shop" scroll-y @scrolltolower="onreachBottom"> | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user