upct
This commit is contained in:
		
						commit
						2e95172a75
					
				| @ -294,8 +294,8 @@ export default { | ||||
| 				}) | ||||
| 			}, | ||||
| 			// 搜索发现列表
 | ||||
| 			searchwordlist() { | ||||
| 				return vm.$u.post('ShopSearch/searchwordlist') | ||||
| 			searchwordlist({type}) { | ||||
| 				return vm.$u.post('ShopSearch/searchWordList',{type}) | ||||
| 			}, | ||||
| 			// 提交试穿订单
 | ||||
| 			saveGoodsTry({ member_name, member_mobile, area_info, address_detail, goods_id, num, store_id, appointment_time }) { | ||||
| @ -332,6 +332,13 @@ export default { | ||||
| 					fav_id: fid, | ||||
| 					type: type | ||||
| 				}) | ||||
| 			}, | ||||
| 			//店铺列表
 | ||||
| 			storeList({ page, name_search }) { | ||||
| 				return vm.$u.post('shop/storeList',{  | ||||
| 					page, | ||||
| 					name_search: name_search | ||||
| 				}) | ||||
| 			} | ||||
|         } | ||||
|     } | ||||
|  | ||||
| @ -5,7 +5,7 @@ | ||||
|             <text>输入达人名称</text> | ||||
|         </view> | ||||
|         <view class="list"> | ||||
|             <darenItem style="margin-top:20rpx;margin-right:23rpx" v-for="item in recommendList" :key="item.id" :info="item"  v-on:pChangeType="changeType" ></darenItem> | ||||
|             <darenItem style="margin-top:20rpx;" v-for="item in recommendList" :key="item.id" :info="item"  v-on:pChangeType="changeType"></darenItem> | ||||
|         </view> | ||||
|     </view> | ||||
| </template> | ||||
| @ -76,7 +76,7 @@ export default { | ||||
| 		}, | ||||
| 		searchValue() { | ||||
| 			uni.navigateTo({ | ||||
| 				url: '/pageB/search/index' | ||||
| 				url: '/pageB/search/index?type=1' | ||||
| 			}) | ||||
| 		}, | ||||
| 	}, | ||||
|  | ||||
| @ -98,7 +98,7 @@ | ||||
| 				<image class="close" src="/static/image/common/17.png" @click="showGroupUser=false"></image> | ||||
| 			</view> | ||||
| 		</u-popup> | ||||
| 		<u-popup v-model="showInvolvementUser" mode="center"> | ||||
| 		<u-popup v-model="showInvolvementUser" mode="center" z-index="10078"> | ||||
| 			<view class="involvement-container" v-if="involvemenGroupInfo.length"> | ||||
| 				<view class="title u-line-1">参与{{ involvemenGroupInfo[0].member_nickname }}的拼团</view> | ||||
| 				<view class="involvement-view"> | ||||
| @ -443,16 +443,26 @@ export default { | ||||
| 		* @params {Number} ifcart 结算方式 1:购物车 0:直接结算(立即购买/拼团/秒杀) | ||||
| 		**/ | ||||
| 		settlementOrder({type, num = this.goodsNumber, ifcart = 0} = {}) { | ||||
| 			if(type != 'involvement') { | ||||
| 				if(!this.showSpec) { | ||||
| 					this.showSpec = true; | ||||
| 					return false; | ||||
| 				} | ||||
| 				if(!this.showSpec) { | ||||
| 					this.showSpec = true; | ||||
| 					return false; | ||||
| 				} | ||||
| 				// 如果没有规格设规格已全选 | ||||
| 				if(this.goodsInfo.spec_value == null) { | ||||
| 					this.quanxuan = true; | ||||
| 				} | ||||
| 				if(!this.quanxuan) { | ||||
| 					this.$refs.uToast.show({ | ||||
| 						title: '请选择规格' | ||||
| 					}) | ||||
| 					return false; | ||||
| 				} | ||||
| 			} | ||||
| 			if(!this.debounce) return; | ||||
| 			this.debounce = false; | ||||
| 			let params = { | ||||
| @ -516,6 +526,8 @@ export default { | ||||
|         }, | ||||
|         xuanze(id){ | ||||
| 			// console.log(id) | ||||
| 			// 选择完规格后设商品type = 1 | ||||
| 			this.type = 1; | ||||
|             this.getGoodsDetails(this.glist[id]) | ||||
| 			this.id = this.glist[id]; | ||||
| 		}, | ||||
|  | ||||
| @ -13,11 +13,14 @@ export default { | ||||
|     name:"search", | ||||
|     data(){ | ||||
|         return{ | ||||
| 			type: '', // 1 商家达人社区 2 商品 | ||||
| 			keyword: "", | ||||
| 			searchwordlist: [], | ||||
|         } | ||||
| 	}, | ||||
| 	created() { | ||||
| 	// type: 2 商品 1: 其他 | ||||
| 	onLoad(option) { | ||||
| 		this.type = option.type; | ||||
| 		this.getWordList(); | ||||
| 	}, | ||||
| 	// 点击搜索按钮 | ||||
| @ -34,8 +37,10 @@ export default { | ||||
| 	}, | ||||
|     methods:{ | ||||
| 		getWordList() { | ||||
| 			this.$u.api.searchwordlist().then(res => { | ||||
| 			this.$u.api.searchwordlist({type:this.type}).then(res => { | ||||
|                 console.log(res) | ||||
|                 this.searchwordlist = res.data; | ||||
|                  | ||||
| 			}) | ||||
| 		}, | ||||
|         search(value){ | ||||
| @ -44,14 +49,22 @@ export default { | ||||
| 				this.$u.toast('搜索内容不可为空'); | ||||
| 				return false; | ||||
| 			} | ||||
| 			let params = { | ||||
| 				value: value, | ||||
| 				type: this.type, | ||||
| 			} | ||||
| 			if(this.type == 2) { | ||||
|                 this.$u.route({ | ||||
|                     url: "/pageB/search/out", | ||||
|                 params: { | ||||
|                     value: value, | ||||
| 					type: "shop", | ||||
| 					order: 'goods_salenum' | ||||
|                 } | ||||
|                     params: params, | ||||
|                 }) | ||||
| 			}else{ | ||||
|                 this.$u.route({ | ||||
|                     url: "/pageB/search/searchGoods", | ||||
|                     params: params, | ||||
|                 }) | ||||
|             } | ||||
|              | ||||
|         } | ||||
|     } | ||||
| } | ||||
|  | ||||
| @ -1,59 +1,296 @@ | ||||
| <template> | ||||
|     <view class="out"> | ||||
|        <u-tabs :list="list" :current="current" @change="tabsChange" active-color="#FF780F" :show-bar="false" height="88" font-size="32" inactive-color="#333333"></u-tabs> | ||||
|        <swiper :current="swiperCurrent" @animationfinish="animationfinish"> | ||||
| 		    <!-- 店铺 --> | ||||
| 			<swiper-item class="swiper-item" v-for="(item, index) in dataList[current]" :key="index"> | ||||
| 				<scroll-view scroll-y style="height: 800rpx;width: 100%;" @scrolltolower="onreachBottom"> | ||||
| 					<view class="store"></view> | ||||
| 	<view class="classify-goods"> | ||||
| 		<view class="tab-container"> | ||||
| 			<view class="salenum" :class="{ 'current' : current == 0 }" @click="switchCurrent(0)">店铺</view> | ||||
| 			<view class="price" :class="{ 'current' : current == 1 }" @click="switchCurrent(1)"> | ||||
| 				达人 | ||||
| 			</view> | ||||
| 			<view class="evaluation" :class="{ 'current' : current == 2 }" @click="switchCurrent(2)">社区</view> | ||||
| 		</view> | ||||
| 		<scroll-view scroll-y class="goods-container" :style="{ height: scrollHeight }" @scrolltolower="loadMore" v-show="current == 0"> | ||||
| 			<view v-for="goods in goodsList" :key="goods.store_id" class="goods-item" @click="toDetailsPage(goods.store_id)"> | ||||
| 				<image :src="goods.store_avatar"></image> | ||||
| 				<view class="right"> | ||||
| 					<view class="name u-line-1">{{ goods.store_name }}</view> | ||||
| 					<view class="briefing u-line-2">{{ goods.store_description }}</view> | ||||
| 				</view> | ||||
| 			</view> | ||||
| 			<u-loadmore :status="loadStatus" bgColor="#FFFFFF" margin-top="20" margin-bottom="20" v-if="goodsList.length >= pageSize"></u-loadmore> | ||||
| 			<u-empty mode="list" v-if="!goodsList.length"></u-empty> | ||||
| 		</scroll-view> | ||||
| 			</swiper-item> | ||||
| 			<!-- 达人 --> | ||||
| 			<swiper-item class="swiper-item" v-for="(item, index) in dataList[current]" :key="index"> | ||||
| 				<scroll-view scroll-y style="height: 800rpx;width: 100%;" @scrolltolower="onreachBottom"> | ||||
| 					<view class="anchor"></view> | ||||
| 		<scroll-view style="width:100%;" :style="{ height: scrollHeight }" scroll-y="true" @scrolltolower="loadMore" v-if=" current == 2 "> | ||||
| 			<view class="box" style="padding: 0 30rpx;"> | ||||
| 				<view style="display:flex"> | ||||
| 					<view> | ||||
| 						<videoItem v-for="(item,id) in goodsList.filter((_, index) => !(index&1))" :key="id" :item="item" | ||||
| 							@getArticlelist="getArticlelist"></videoItem> | ||||
| 					</view> | ||||
| 					<view style="margin-left:20rpx"> | ||||
| 						<videoItem v-for="(item,id) in goodsList.filter((_, index) => index&1)" :key="id" :item="item" | ||||
| 							@getArticlelist="getArticlelist"></videoItem> | ||||
| 					</view> | ||||
| 				</view> | ||||
| 			</view> | ||||
| 			<u-loadmore :status="loadStatus" bgColor="#FFFFFF" margin-top="20" margin-bottom="20" v-if="goodsList.length >= pageSize"></u-loadmore> | ||||
| 			<u-empty mode="list" v-if="!goodsList.length"></u-empty> | ||||
| 		</scroll-view> | ||||
| 			</swiper-item> | ||||
| 			<!-- 社区 --> | ||||
| 			<swiper-item class="swiper-item" v-for="(item, index) in dataList[current]" :key="index"> | ||||
| 				<scroll-view scroll-y style="height: 800rpx;width: 100%;" @scrolltolower="onreachBottom"> | ||||
| 					<view class="community"></view> | ||||
| 		<scroll-view style="width:100%;padding: 20rpx 30rpx;margin-right:23rpx;" :style="{ height: scrollHeight }" scroll-y="true" @scrolltolower="loadMore" v-if=" current == 1 "> | ||||
| 			<view class="list" > | ||||
| 				<darenItem style="margin-top:20rpx;margin-right:23rpx;box-shadow:0px 3rpx 7rpx 0px rgba(153, 153, 153, 0.35);" v-for="item in goodsList" :key="item.id" :info="item"  v-on:pChangeType="changeType"></darenItem> | ||||
| 			</view> | ||||
| 			<u-loadmore :status="loadStatus" bgColor="#FFFFFF" margin-top="20" margin-bottom="20" v-if="goodsList.length >= pageSize"></u-loadmore> | ||||
| 			<u-empty mode="list" v-if="!goodsList.length"></u-empty> | ||||
| 		</scroll-view> | ||||
| 			</swiper-item> | ||||
| 		</swiper> | ||||
| 		 | ||||
| 	</view> | ||||
| </template> | ||||
| <script> | ||||
| 	import videoItem from "@/components/index/video-item/index" | ||||
| 	import darenItem from "@/components/index/daren-item/index"  | ||||
| export default { | ||||
| 	data() { | ||||
| 		return { | ||||
| 			list: [{ | ||||
| 				name: "店铺" | ||||
| 			}, { | ||||
| 				name: "达人" | ||||
| 			}, { | ||||
| 				name: "社区" | ||||
| 			}], | ||||
| 			pageSize: 12, | ||||
| 			cid: '', | ||||
| 			page: 1, | ||||
| 			current: 0, | ||||
| 			swiperCurrent: 0, | ||||
| 			dataList: [[1],[2],[3]], | ||||
| 			priceOrderAsc: true, // 是否升序 | ||||
| 			goodsList: [], | ||||
| 			scrollHeight: '', | ||||
| 			loadStatus: 'loadmore', | ||||
| 			timer: true, // 防止上拉加载短时间内多次调用, | ||||
| 			value:"" | ||||
| 		} | ||||
| 	}, | ||||
| 	components:{ | ||||
| 		videoItem, | ||||
| 		darenItem | ||||
| 	}, | ||||
| 	watch: { | ||||
| 		current(value) { | ||||
| 			this.page = 1; | ||||
| 			this.ShopSearch({ laod: 'reload' }); | ||||
| 		}, | ||||
| 		priceOrderAsc(value) { | ||||
| 			this.page = 1; | ||||
| 			this.ShopSearch({ laod: 'reload' }); | ||||
| 		} | ||||
| 	}, | ||||
| 	onLoad(option) { | ||||
| 		this.value = option.value; | ||||
| 		this.setViewHeight(); | ||||
| 		this.ShopSearch() | ||||
| 		this.setNavSearchInput(); | ||||
| 	}, | ||||
| 	onNavigationBarSearchInputConfirmed(value) { | ||||
| 		this.value = value.text | ||||
| 		console.log(this.value) | ||||
| 		this.ShopSearch() | ||||
| 	}, | ||||
| 	methods: { | ||||
| 		tabsChange(index) { | ||||
| 			this.current = Number(index); | ||||
| 			this.swiperCurrent = this.current; | ||||
| 		// 动态设置导航栏搜索框内容 | ||||
| 		setNavSearchInput(keyword) { | ||||
| 			// #ifdef APP-PLUS | ||||
| 			let webView = this.$mp.page.$getAppWebview(); | ||||
| 			webView.setTitleNViewSearchInputText(keyword); | ||||
| 			// #endif | ||||
| 			// #ifdef H5 | ||||
| 			let inputSearch=document.querySelector('.uni-input-input[type=search]'); | ||||
| 			var evt = new InputEvent('input', { | ||||
| 				inputType: 'insertText', | ||||
| 				data: keyword, | ||||
| 				dataTransfer: null, | ||||
| 				isComposing: false | ||||
| 			}); | ||||
| 			if(inputSearch){ | ||||
| 				inputSearch.value = keyword; | ||||
| 				inputSearch.dispatchEvent(evt); | ||||
| 			} | ||||
| 			// #endif | ||||
| 		}, | ||||
| 		animationfinish(e) { | ||||
| 			const current = Number(e.detail.current); | ||||
| 		changeType(member_id){ | ||||
| 			console.log(member_id); | ||||
| 			this.$emit("pChangeType") | ||||
| 			this.$u.api.attentionMember({ | ||||
| 				member_id: member_id | ||||
| 			}).then((res)=>{ | ||||
| 				console.log(res) | ||||
| 				for(let i in this.goodsList){ | ||||
| 				 | ||||
| 					if(this.goodsList[i].member_id == member_id){ | ||||
| 						this.goodsList[i].is_attention = res.message == "已取消关注!" ? 0 : 1 | ||||
| 					} | ||||
| 				} | ||||
| 			}) | ||||
| 		}, | ||||
| 		setOrderSort() { | ||||
| 			let sort = ''; | ||||
| 			if(this.current == 0) { | ||||
| 				sort = 'goods_salenum'; | ||||
| 			} else if (this.current == 1) { | ||||
| 				if(this.priceOrderAsc) sort = 'goods_price_asc'; | ||||
| 				else sort = 'goods_price_desc'; | ||||
| 			} else if (this.current == 2) { | ||||
| 				sort = 'evaluation_count'; | ||||
| 			} | ||||
| 			return sort; | ||||
| 		}, | ||||
| 		// 排序方式 goods_salenum:销量 evaluation_count:评价 goods_price_asc:价格从低到高 goods_price_desc:价格从高到低 | ||||
| 		async ShopSearch({ load = 'reload' } = {}) { | ||||
| 			// const res = await this.$u.api.ShopSearch({  | ||||
| 			// 	keyword: this.value,  | ||||
| 			// 	page: this.page, | ||||
| 			// 	order: sort, | ||||
| 			// }) | ||||
| 			console.log(this.value) | ||||
| 			let res = {} | ||||
| 			if(this.current == 0) { | ||||
| 				res = await this.$u.api.storeList({  | ||||
| 					name_search: this.value,  | ||||
| 					page: this.page | ||||
| 				}) | ||||
| 				this.timer = true; | ||||
| 				if(res.errCode == 0) { | ||||
| 					if(load == 'reload') this.goodsList = res.data.list.data; | ||||
| 					else if(load == 'loadmore') this.goodsList.push(...res.data.list.data); | ||||
| 				} | ||||
| 				console.log(this.goodsList) | ||||
| 				return res.data.list.data.length; | ||||
| 			} else if (this.current == 1) { | ||||
| 				 | ||||
| 				res = await this.$u.api.getExpertList({  | ||||
| 					like_nickname: this.value,  | ||||
| 					page: this.page | ||||
| 				}) | ||||
| 				this.timer = true; | ||||
| 				if(res.errCode == 0) { | ||||
| 					if(load == 'reload') this.goodsList = res.data.list; | ||||
| 					else if(load == 'loadmore') this.goodsList.push(...res.data.list); | ||||
| 				} | ||||
| 				console.log(this.goodsList) | ||||
| 				return res.data.list.length; | ||||
| 			} else if (this.current == 2) { | ||||
| 				res = await this.$u.api.getArticlelist({  | ||||
| 					value: this.value,  | ||||
| 					page: this.page | ||||
| 				}) | ||||
| 				this.timer = true; | ||||
| 				if(res.errCode == 0) { | ||||
| 					if(load == 'reload') this.goodsList = res.data.list; | ||||
| 					else if(load == 'loadmore') this.goodsList.push(...res.data.list); | ||||
| 				} | ||||
| 				console.log(this.goodsList) | ||||
| 				return res.data.list.length; | ||||
| 			} | ||||
| 			 | ||||
| 		}, | ||||
| 		loadMore() { | ||||
| 			if(this.goodsList.length < this.pageSize) return false; | ||||
| 			if(!this.timer) return false; | ||||
| 			this.loadStatus = "loading"; | ||||
| 			this.page++; | ||||
| 			this.ShopSearch({  load: 'loadmore' }).then(length => { | ||||
| 				if(length == 0) { | ||||
| 					this.page--; | ||||
| 					this.loadStatus = 'nomore'; | ||||
| 				} else { | ||||
| 					this.loadStatus = 'loading'; | ||||
| 				} | ||||
| 			}).catch(() => { | ||||
| 				this.loadStatus = "nomore"; | ||||
| 				this.page--; | ||||
| 			}) | ||||
| 		}, | ||||
| 		switchCurrent(current) { | ||||
| 			// if(current == 1 && this.current == 1) this.priceOrderAsc = !this.priceOrderAsc; | ||||
| 			this.current = current; | ||||
| 			this.swiperCurrent = current; | ||||
| 			this.goodsList = [] | ||||
| 			this.ShopSearch() | ||||
| 		}, | ||||
| 		setViewHeight() { | ||||
| 			const res = uni.getSystemInfoSync(); | ||||
| 			this.scrollHeight = res.windowHeight - res.windowWidth / 750 * 90  + 'px'; | ||||
| 		}, | ||||
| 		toDetailsPage(id) { | ||||
| 			this.$u.route('/pageC/merchant/index', { | ||||
| 				id: id | ||||
| 			}); | ||||
| 		} | ||||
| 	} | ||||
| }; | ||||
| </script> | ||||
| <style lang="scss" scoped> | ||||
| .list{ | ||||
|         display: flex; | ||||
|         flex-wrap: wrap; | ||||
|         width: calc(100% + 23rpx); | ||||
|         margin-right: -23rpx; | ||||
|     } | ||||
| .classify-goods { | ||||
| 	.tab-container { | ||||
| 		box-sizing: border-box; | ||||
| 		padding: 30rpx 40rpx; | ||||
| 		display: flex; | ||||
| 		margin-bottom: 30rpx; | ||||
| 		> view { | ||||
| 			height: 30rpx; | ||||
| 			line-height: 30rpx; | ||||
| 			flex: 1; | ||||
| 			font-size: 32rpx; | ||||
| 			color: rgba(51,51,51,1); | ||||
| 		} | ||||
| 		.salenum { | ||||
| 			text-align: left; | ||||
| 		} | ||||
| 		.price { | ||||
| 			display: flex; | ||||
| 			align-items: center; | ||||
| 			justify-content: center; | ||||
| 			.text { | ||||
| 				margin-right: 5rpx; | ||||
| 			} | ||||
| 			.icon { | ||||
| 				display: flex; | ||||
| 				flex-direction: column; | ||||
| 				align-items: center; | ||||
| 				justify-content: center; | ||||
| 			} | ||||
| 		} | ||||
| 		.evaluation { | ||||
| 			text-align: right; | ||||
| 		} | ||||
| 		.current { | ||||
| 			color: rgba(255,120,15,1); | ||||
| 		} | ||||
| 	} | ||||
| 	.goods-container { | ||||
| 		.goods-item { | ||||
| 			margin: 0 auto; | ||||
| 			width: 690rpx; | ||||
| 			display: flex; | ||||
| 			background-color: #F5F5F5; | ||||
| 			margin-bottom: 30rpx; | ||||
| 			align-items: center; | ||||
| 			> image { | ||||
| 				width: 220rpx; | ||||
| 				height: 200rpx; | ||||
| 				flex-shrink: 0; | ||||
| 				margin-right: 30rpx; | ||||
| 			} | ||||
| 			.right { | ||||
| 				width: 418rpx; | ||||
| 				.name { | ||||
| 					font-size: 30rpx; | ||||
| 					color: rgba(51,51,51,1); | ||||
| 					margin-bottom: 20rpx; | ||||
| 				} | ||||
| 				.briefing { | ||||
| 					font-size: 28rpx; | ||||
| 					color: rgba(102,102,102,1); | ||||
| 					line-height: 42rpx; | ||||
| 				} | ||||
| 			} | ||||
| 		} | ||||
| 	} | ||||
| } | ||||
| </script> | ||||
| 
 | ||||
| <style lang="scss" scoped> | ||||
| </style> | ||||
| @ -36,26 +36,50 @@ export default { | ||||
| 			goodsList: [], | ||||
| 			scrollHeight: '', | ||||
| 			loadStatus: 'loadmore', | ||||
| 			timer: true, // 防止上拉加载短时间内多次调用 | ||||
| 			timer: true, // 防止上拉加载短时间内多次调用, | ||||
| 			value:"" | ||||
| 		} | ||||
| 	}, | ||||
| 	watch: { | ||||
| 		current(value) { | ||||
| 			this.page = 1; | ||||
| 			this.goodsListByClassId({ laod: 'reload' }); | ||||
| 			this.ShopSearch({ laod: 'reload' }); | ||||
| 		}, | ||||
| 		priceOrderAsc(value) { | ||||
| 			this.page = 1; | ||||
| 			this.goodsListByClassId({ laod: 'reload' }); | ||||
| 			this.ShopSearch({ laod: 'reload' }); | ||||
| 		} | ||||
| 	}, | ||||
| 	onLoad(option) { | ||||
| 		this.cid = option.cid; | ||||
| 		this.goodsListByClassId({ load: 'reload' }); | ||||
| 		this.value = option.value | ||||
| 		this.setViewHeight(); | ||||
| 		this.setTitle(option.cname); | ||||
| 		this.ShopSearch() | ||||
| 	}, | ||||
| 	onNavigationBarSearchInputConfirmed(value) { | ||||
| 		this.value = value.text | ||||
| 		this.ShopSearch() | ||||
| 	}, | ||||
| 	methods: { | ||||
| 		setNavSearchInput(keyword) { | ||||
| 			console.log(keyword); | ||||
| 			// #ifdef APP-PLUS | ||||
| 			let webView = this.$mp.page.$getAppWebview(); | ||||
| 			webView.setTitleNViewSearchInputText(keyword); | ||||
| 			// #endif | ||||
| 			// #ifdef H5 | ||||
| 			let inputSearch=document.querySelector('.uni-input-input[type=search]'); | ||||
| 			const evt = new InputEvent('input', { | ||||
| 				inputType: 'insertText', | ||||
| 				data: keyword, | ||||
| 				dataTransfer: null, | ||||
| 				isComposing: false | ||||
| 			}); | ||||
| 			if(inputSearch){ | ||||
| 				inputSearch.value = keyword; | ||||
| 				inputSearch.dispatchEvent(evt); | ||||
| 			} | ||||
| 			// #endif | ||||
| 		}, | ||||
| 		setOrderSort() { | ||||
| 			let sort = ''; | ||||
| 			if(this.current == 0) { | ||||
| @ -69,10 +93,12 @@ export default { | ||||
| 			return sort; | ||||
| 		}, | ||||
| 		// 排序方式 goods_salenum:销量 evaluation_count:评价 goods_price_asc:价格从低到高 goods_price_desc:价格从高到低 | ||||
| 		async goodsListByClassId({ load = 'reload' } = {}) { | ||||
| 		async ShopSearch({ load = 'reload' } = {}) { | ||||
| 			console.log(this.value); | ||||
| 			this.setNavSearchInput(this.value); | ||||
| 			const sort = this.setOrderSort(); | ||||
| 			const res = await this.$u.api.goodsListByClassId({  | ||||
| 				gc_id: this.cid,  | ||||
| 			const res = await this.$u.api.ShopSearch({  | ||||
| 				keyword: this.value,  | ||||
| 				page: this.page, | ||||
| 				order: sort, | ||||
| 			}) | ||||
| @ -88,7 +114,7 @@ export default { | ||||
| 			if(!this.timer) return false; | ||||
| 			this.loadStatus = "loading"; | ||||
| 			this.page++; | ||||
| 			this.goodsListByClassId({  load: 'loadmore' }).then(length => { | ||||
| 			this.ShopSearch({  load: 'loadmore' }).then(length => { | ||||
| 				if(length == 0) { | ||||
| 					this.page--; | ||||
| 					this.loadStatus = 'nomore'; | ||||
| @ -101,22 +127,17 @@ export default { | ||||
| 			}) | ||||
| 		}, | ||||
| 		switchCurrent(current) { | ||||
| 			this.ShopSearch() | ||||
| 			if(current == 1 && this.current == 1) this.priceOrderAsc = !this.priceOrderAsc; | ||||
| 			this.current = current; | ||||
| 		}, | ||||
| 		setViewHeight() { | ||||
| 			const res = uni.getSystemInfoSync(); | ||||
| 			this.scrollHeight = res.windowHeight - (90 / 2) + 'px'; | ||||
| 		}, | ||||
| 		setTitle(title) { | ||||
| 			uni.setNavigationBarTitle({ | ||||
| 				title: title | ||||
| 			}); | ||||
| 			this.scrollHeight = res.windowHeight - res.windowWidth / 750 * 90  + 'px'; | ||||
| 		}, | ||||
| 		toDetailsPage(id) { | ||||
| 			this.$u.route('/pageB/sdetails/index', { | ||||
| 				id: id, | ||||
| 				type: 1 // 商品详情 商品类型 1普通 2拼团 3秒杀 4优惠券 | ||||
| 				id: id | ||||
| 			}); | ||||
| 		} | ||||
| 	} | ||||
|  | ||||
| @ -106,7 +106,7 @@ export default { | ||||
| 		}, | ||||
| 		setViewHeight() { | ||||
| 			const res = uni.getSystemInfoSync(); | ||||
| 			this.scrollHeight = res.windowHeight - (90 / 2) + 'px'; | ||||
| 			this.scrollHeight = res.windowHeight - (res.windowWidth / 750) * 90 + 'px'; | ||||
| 		}, | ||||
| 		setTitle(title) { | ||||
| 			uni.setNavigationBarTitle({ | ||||
|  | ||||
| @ -50,15 +50,18 @@ | ||||
| 			this.getMenuItemTop() | ||||
| 		}, | ||||
| 		onNavigationBarButtonTap(e) { | ||||
| 			if(e.index == 0) this.$u.route('/pageB/search/index'); | ||||
| 			if(e.index == 0) this.$u.route('/pageB/search/index',{ type: 2 }); | ||||
| 		}, | ||||
| 		onNavigationBarSearchInputClicked() { | ||||
| 			this.$u.route('/pageB/search/index'); | ||||
| 			this.$u.route('/pageB/search/index', { type: 2 }); | ||||
| 		}, | ||||
| 		methods: { | ||||
| 			toSearchPage() { | ||||
| 				this.$u.route({ | ||||
| 					url: "pageB/search/index" | ||||
| 					url: "pageB/search/index", | ||||
| 					prarms: { | ||||
| 						type: 2 | ||||
| 					} | ||||
| 				}) | ||||
| 			}, | ||||
| 			// 获取分类列表 | ||||
|  | ||||
| @ -1,16 +1,17 @@ | ||||
| <template> | ||||
|     <view class="imageTop"> | ||||
|         <image :src="url" mode="aspectFit"></image> | ||||
|         <image :src="url" mode="widthFix"></image> | ||||
|     </view> | ||||
| </template> | ||||
| <style lang="scss" scoped> | ||||
| .imageTop{ | ||||
|     width: 100%; | ||||
|     height: 500rpx; | ||||
|     margin-bottom: 20rpx; | ||||
| 	overflow: hidden; | ||||
|     >image{ | ||||
|         width: 100%; | ||||
|         height: 100%; | ||||
|     	margin-bottom: 20rpx; | ||||
|     } | ||||
| } | ||||
| </style> | ||||
| @ -21,6 +22,6 @@ export default { | ||||
|         return { | ||||
|         } | ||||
|     }, | ||||
|     props:['url'] | ||||
| 	props:['url'], | ||||
| } | ||||
| </script> | ||||
| @ -1,17 +1,18 @@ | ||||
| <template> | ||||
|     <view class="listItem"> | ||||
|         <video v-if="type == '2'" :src="url" :show-fullscreen-btn="true"></video> | ||||
|         <image v-else :src="url" mode="aspectFit"></image> | ||||
|         <image v-else :src="url" mode="aspectFill"></image> | ||||
|     </view> | ||||
| </template> | ||||
| <style lang="scss" scoped> | ||||
| .listItem{ | ||||
|     width: 365rpx; | ||||
|     height: 500rpx; | ||||
|     margin-bottom: 20rpx; | ||||
| 	overflow: hidden; | ||||
|     >image,video{ | ||||
|         width: 100%; | ||||
|         height: 100%; | ||||
| 		margin-bottom: 20rpx; | ||||
|     } | ||||
| } | ||||
| </style> | ||||
|  | ||||
| @ -104,7 +104,7 @@ export default { | ||||
| 		}, | ||||
| 		setViewHeight() { | ||||
| 			const res = uni.getSystemInfoSync(); | ||||
| 			this.swiperHeight = res.windowHeight - (88 / 2) + 'px'; | ||||
| 			this.swiperHeight = res.windowHeight - (res.windowWidth / 750) * 88 + 'px'; | ||||
| 		}, | ||||
| 	} | ||||
| }; | ||||
|  | ||||
| @ -125,7 +125,7 @@ export default { | ||||
| 		}, | ||||
| 		setViewHeight() { | ||||
| 			const res = uni.getSystemInfoSync(); | ||||
| 			this.scrollHeight = res.windowHeight - 90 / 2 + 'px'; | ||||
| 			this.scrollHeight = res.windowHeight - (res.windowWidth / 750) * 90 + 'px'; | ||||
| 			// console.log(this.scrollHeight); | ||||
| 		}, | ||||
| 		toDetailsPage(id) { | ||||
|  | ||||
| @ -115,7 +115,7 @@ export default { | ||||
| 		setViewHeight() { | ||||
| 			const res = uni.getSystemInfoSync(); | ||||
| 			const otherHeight = 347 + 140 + 20 + 98; | ||||
| 			this.scrollHeight = res.windowHeight - otherHeight / 2 + 'px'; | ||||
| 			this.scrollHeight = res.windowHeight - (res.windowWidth / 750) * otherHeight + 'px'; | ||||
| 			// console.log(this.scrollHeight); | ||||
| 		}, | ||||
| 		toDetailsPage(id) { | ||||
|  | ||||
| @ -38,12 +38,12 @@ | ||||
| 		</view> | ||||
| 		<view class="main"> | ||||
| 			<scroll-view class="video-image" scroll-y v-if="cur==0 && indextop.length" :style="{ height: scrollHeiht }"> | ||||
| 				<view v-for="item in indextop" :key="item.id"> | ||||
| 					<videoTop :url="item.article_pic" v-if="item.type == 2"></videoTop> | ||||
| 					<imageTop v-else :url="item.article_pic"></imageTop> | ||||
| 				<view v-for="item in indextop" :key="item.id" class="container-top"> | ||||
| 					<videoTop :url="item.article_pic" v-if="item.type == 2" @click.native="toDetailsPage(item.article_id)"></videoTop> | ||||
| 					<imageTop v-else :url="item.article_pic" @click.native="toDetailsPage(item.article_id)"></imageTop> | ||||
| 				</view> | ||||
| 				<view style="display: flex;flex-wrap: wrap;" v-if="indexlist.length"> | ||||
| 					<listitem :style="{'margin-left': index%2 == 1 ? '20rpx':'0'}" v-for="(item,index) in indexlist" :key="item.id" :type="item.type" :url="item.article_pic"></listitem> | ||||
| 				<view v-if="indexlist.length" class="container-bottom"> | ||||
| 					<listitem v-for="item in indexlist" :key="item.id" :type="item.type" :url="item.article_pic" class="bottom-item" @click.native="toDetailsPage(item.article_id)"></listitem> | ||||
| 				</view> | ||||
| 			</scroll-view> | ||||
| 			<view class="item" v-if="cur==1"> | ||||
| @ -109,6 +109,12 @@ export default { | ||||
| 		// if(e.index == 0) this.show = true; | ||||
| 	}, | ||||
| 	methods: { | ||||
| 		toDetailsPage(id) { | ||||
| 			// console.log(11); | ||||
| 			this.$u.route('pageB/photo/index', { | ||||
| 				id: id | ||||
| 			}); | ||||
| 		}, | ||||
| 		switchCurrent(current) { | ||||
| 			this.cur = current; | ||||
| 			if(current == 0) { | ||||
| @ -123,15 +129,15 @@ export default { | ||||
| 				uni.stopPullDownRefresh(); | ||||
| 			}) | ||||
| 		}, | ||||
| 		getStoreImgVideoList() { | ||||
| 			this.$u.api.getStoreImgVideoList({ id: this.sid }).then((res)=>{ | ||||
| 				if(res.data.length) { | ||||
| 					this.indextop = [res.data[0], res.data[1]]; | ||||
| 					this.indexlist = res.data.slice(2,); | ||||
| 				} | ||||
| 				uni.stopPullDownRefresh(); | ||||
| 			}) | ||||
| 		}, | ||||
| 		// getStoreImgVideoList() { | ||||
| 		// 	this.$u.api.getStoreImgVideoList({ id: this.sid }).then((res)=>{ | ||||
| 		// 		if(res.data.length) { | ||||
| 		// 			this.indextop = [res.data[0], res.data[1]]; | ||||
| 		// 			this.indexlist = res.data.slice(2,); | ||||
| 		// 		} | ||||
| 		// 		uni.stopPullDownRefresh(); | ||||
| 		// 	}) | ||||
| 		// }, | ||||
| 		attentionMember() { | ||||
| 			this.$u.api.attentionMember({ member_id: this.info.member_id }).then(res => { | ||||
| 				if(res.errCode == 0) { | ||||
| @ -149,15 +155,17 @@ export default { | ||||
| 				uni.stopPullDownRefresh(); | ||||
| 				if (res.errCode == 0) { | ||||
| 					// this.articleList = res.data.list; | ||||
| 					if(JSON.stringify(res.data) != '[]') { | ||||
| 						if(res.data.list.length > 0) { | ||||
| 							this.indextop = [res.data.list[0]] | ||||
| 						this.indextop = [res.data.list[0], res.data.list[1]]; | ||||
| 							// this.indextop = [res.data.list[0], res.data.list[1]]; | ||||
| 						} | ||||
| 						if(res.data.list.length > 1) { | ||||
| 							this.indextop.push(res.data.list[1]); | ||||
| 							this.indexlist.push(...res.data.list.slice(2,)); | ||||
| 						} | ||||
| 					} | ||||
| 				} | ||||
| 			}) | ||||
| 		}, | ||||
| 		setViewHeight() { | ||||
| @ -288,10 +296,24 @@ export default { | ||||
| 		.video-image { | ||||
| 			padding-bottom: 98rpx; | ||||
| 		} | ||||
| 		.container-top { | ||||
| 			> view { | ||||
| 			margin-top: 20rpx; | ||||
| 				margin-bottom: 10rpx; | ||||
| 			} | ||||
| 		} | ||||
| 		.container-bottom { | ||||
| 			margin-top: 20rpx;  | ||||
| 			display: flex; | ||||
| 			flex-wrap: wrap; | ||||
| 			justify-content: space-between; | ||||
| 			.bottom-item { | ||||
| 				margin-bottom: 10rpx; | ||||
| 			} | ||||
| 		} | ||||
| 		// > view { | ||||
| 		// 	margin-top: 20rpx; | ||||
| 		// } | ||||
| 	} | ||||
| 	.tabbar { | ||||
| 		border-top: 1rpx #DBDADA solid; | ||||
| 		width: 100%; | ||||
|  | ||||
| @ -98,8 +98,37 @@ export default { | ||||
| 	}, | ||||
| 	onNavigationBarButtonTap(e) { | ||||
| 		if( e.index == 0 ) uni.navigateBack(); | ||||
| 		if( e.index == 1 ) this.customers(); | ||||
| 	}, | ||||
| 	methods: { | ||||
| 		customers(){ | ||||
| 			function Friend(uuid, name, avatar,time = "", text = "",date = "") { | ||||
| 				this.uuid = uuid; | ||||
| 				this.name = name; | ||||
| 				this.avatar = avatar; | ||||
| 				this.online = false; | ||||
| 				this.unReadMessage = 0; | ||||
| 				this.text = text; | ||||
| 				this.time = time; | ||||
| 				this.date = date | ||||
| 			} | ||||
| 			// console.log(123) | ||||
| 			this.$u.api.getAtwillUserInfo({ | ||||
| 				id: 1 // 平台店铺 id | ||||
| 			}).then((res)=>{ | ||||
| 				// console.log(res) | ||||
| 				let user = new Friend(res.data.member_id,res.data.member_nickname,res.data.member_avatar) | ||||
| 				this.$u.route({ | ||||
| 					url:"/pageD/privateChat/privateChat", | ||||
| 					params:{ | ||||
| 						id:JSON.stringify(user) | ||||
| 					} | ||||
| 					 | ||||
| 				}) | ||||
| 			}).catch((err)=>{ | ||||
| 				console.log(err) | ||||
| 			}) | ||||
| 		}, | ||||
| 		changeAvatar() { | ||||
| 			const url = this.$u.http.config.baseUrl + '/Upload/uploadfile'; | ||||
| 			uni.chooseImage({ | ||||
|  | ||||
| @ -40,7 +40,7 @@ export default { | ||||
| 		setIntegralHeight() { | ||||
| 			const res = uni.getSystemInfoSync(); | ||||
| 			// console.log(res.windowHeight); | ||||
| 			this.integralHeight = res.windowHeight - 251 / 2 + 'px'; | ||||
| 			this.integralHeight = res.windowHeight - (res.windowWidth / 750) * 251 + 'px'; | ||||
| 		}, | ||||
| 		getMemberPointsStat() { | ||||
| 			this.$u.api.getMemberPointsStat().then((res)=>{ | ||||
|  | ||||
| @ -3,7 +3,7 @@ | ||||
| 		<scroll-view scroll-y class="medal-article"> | ||||
| 			<view class="medal-title"> | ||||
| 				<image src="../static/mine/29.png"></image> | ||||
| 				<view>了解勋章</view> | ||||
| 				<view>{{ title }}</view> | ||||
| 				<image src="../static/mine/30.png"></image> | ||||
| 			</view> | ||||
| 			<view class="medal-content"> | ||||
| @ -18,6 +18,7 @@ export default { | ||||
| 	data() { | ||||
| 		return { | ||||
| 			nodes: '', | ||||
| 			title: '', | ||||
| 		} | ||||
| 	},  | ||||
| 	created() { | ||||
| @ -27,7 +28,8 @@ export default { | ||||
| 		getMemberPointsStat() { | ||||
| 			this.$u.api.getMemberPointsStat().then((res)=>{ | ||||
| 				if (res.errCode == 0) { | ||||
| 					const nodes = res.data.grade_rule; | ||||
| 					this.title = res.data.grade_rule.document_title; | ||||
| 					const nodes = res.data.grade_rule.document_content; | ||||
| 					this.nodes = common.unescapeHTML(nodes); | ||||
| 				} | ||||
| 			}) | ||||
|  | ||||
| @ -101,9 +101,9 @@ export default { | ||||
| 		}, | ||||
| 		getMemberPointsStat() { | ||||
| 			this.$u.api.getMemberPointsStat().then((res)=>{ | ||||
| 				if (res.errCode == 0) { | ||||
| 				if(res.errCode == 0) { | ||||
| 					this.memberInfo = res.data; | ||||
| 					this.nodes = common.unescapeHTML(this.memberInfo.points_rule); | ||||
| 					this.nodes = common.unescapeHTML(this.memberInfo.points_rule.document_content); | ||||
| 				} | ||||
| 			}) | ||||
| 		}, | ||||
| @ -117,9 +117,9 @@ export default { | ||||
| 		setViewHeight() { | ||||
| 			const res = uni.getSystemInfoSync(); | ||||
| 			// console.log(res.windowHeight); | ||||
| 			this.richHeight = res.windowHeight - (88 + 250) / 2 + 'px'; | ||||
| 			this.richHeight = res.windowHeight - (88 + 250) * (res.windowWidth / 750) + 'px'; | ||||
| 			// console.log(this.richHeight); | ||||
| 			this.swiperHeight = res.windowHeight - 88 / 2 + 'px'; | ||||
| 			this.swiperHeight = res.windowHeight - (res.windowWidth / 750) * 88 + 'px'; | ||||
| 		}, | ||||
| 		viewProgress() { | ||||
| 			this.$u.route({ | ||||
|  | ||||
| @ -7,11 +7,11 @@ | ||||
| 		<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%;" @scrolltolower="onreachBottom" class="coupon-scroll"> | ||||
| 					<view v-for="(coupon, index) in couponList" :key="index" class="coupon-item"> | ||||
| 					<view v-for="(coupon, index) in couponList[i]" :key="index" class="coupon-item"> | ||||
| 						<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> | ||||
| 					<u-empty text="暂无优惠券" mode="coupon" color="#000" v-if="!couponList[i] || !couponList[i].length"></u-empty> | ||||
| 					<u-loadmore :status="loadStatus" bgColor="#FFF" margin-bottom="60" v-if="!couponList[i] || couponList[i].length>=pageSize" @loadmore="onreachBottom"></u-loadmore> | ||||
| 				</scroll-view> | ||||
| 			</swiper-item> | ||||
| 		</swiper> | ||||
| @ -49,7 +49,7 @@ export default { | ||||
| 	}, | ||||
| 	watch: { | ||||
| 		couponCurrent(index) { | ||||
| 			this.couponList = []; | ||||
| 			// this.couponList = []; | ||||
| 			const id = this.couponGroupList[index].gc_id; | ||||
| 			this.getCouponList({ gc_id: id, load: 'reload' }); | ||||
| 		}, | ||||
| @ -89,9 +89,10 @@ export default { | ||||
| 			}) | ||||
| 			this.timer = true; | ||||
| 			if(res.errCode == 0) { | ||||
| 				if(load == 'reload') this.couponList = res.data; | ||||
| 				else if(load == 'loadmore') this.couponList.push(...res.data); | ||||
| 				if(load == 'reload') this.couponList[this.couponCurrent] = res.data; | ||||
| 				else if(load == 'loadmore') this.couponList[this.couponCurrent].push(...res.data); | ||||
| 			} | ||||
| 			this.$forceUpdate(); | ||||
| 			return res.data.length; | ||||
| 		}, | ||||
| 		exchangeCoupon(id) { | ||||
| @ -109,7 +110,7 @@ export default { | ||||
| 		}, | ||||
| 		setViewHeight() { | ||||
| 			const res = uni.getSystemInfoSync(); | ||||
| 			this.swiperHeight = res.windowHeight - ((88 + 10 + 88) / 2) + 'px'; | ||||
| 			this.swiperHeight = res.windowHeight - ((88 + 10 + 88) * (res.windowWidth / 750)) + 'px'; | ||||
| 		}, | ||||
| 	}, | ||||
| }; | ||||
|  | ||||
| @ -5,17 +5,17 @@ | ||||
| 				<view class="rank-value">lv{{ memberInfo.member_level }}</view> | ||||
| 				<view class="line-box"> | ||||
| 					<u-line-progress :percent="percent" :show-percent="false" inactive-color="#FFFFFF" active-color="#F1A36B" height="30" :striped="true" :striped-active="true"></u-line-progress> | ||||
| 					<text>{{ memberInfo.member_exppoints | percentExp(memberInfo.next_grade_exppoints_diff) }}</text> | ||||
| 					<text>{{ memberInfo.member_exppoints + '/' + memberInfo.next_member_level_exppoints }}</text> | ||||
| 				</view> | ||||
| 				<view class="rank-value">lv{{ memberInfo.member_level + 1 }}</view> | ||||
| 				<view class="rank-value">lv{{ memberInfo.next_member_level }}</view> | ||||
| 			</view> | ||||
| 			<view class="exp-value">经验值<span>{{ memberInfo.member_exppoints }}</span></view> | ||||
| 			<view class="distance">距离下一级还需要{{ memberInfo.next_grade_exppoints_diff }}经验值</view> | ||||
| 			<view class="distance">距离下一级还需要 {{ memberInfo.next_member_level_exppoints_diff }} 经验值</view> | ||||
| 		</view> | ||||
| 		<view class="body"> | ||||
| 			<view class="title"> | ||||
| 			<view class="title" v-if="memberInfo.level_rule"> | ||||
| 				<image src="/static/image/mine/34.png"></image> | ||||
| 				<text>等级定义</text> | ||||
| 				<text>{{ memberInfo.level_rule.document_title }}</text> | ||||
| 			</view> | ||||
| 			<!-- <view class="rank-list"> | ||||
| 				<view v-for="(rank, index) in rank" :key="index" class="list-item"> | ||||
| @ -57,11 +57,9 @@ export default { | ||||
| 			this.$u.api.getMemberPointsStat().then((res)=>{ | ||||
| 				if (res.errCode == 0) { | ||||
| 					this.memberInfo = res.data; | ||||
| 					this.nodes = common.unescapeHTML(res.data.points_rule); | ||||
| 					this.nodes = common.unescapeHTML(res.data.level_rule.document_content); | ||||
| 					// console.log(this.percent); | ||||
| 					this.percent = typeof(res.data.next_grade_exppoints_diff) == 'Number'  | ||||
| 					? res.data.member_exppoints / (res.data.next_grade_exppoints_diff + res.data.member_exppoints) | ||||
| 					: 100; | ||||
| 					this.percent = (res.data.member_exppoints / res.data.next_member_level_exppoints) * 100; | ||||
| 				} | ||||
| 			}) | ||||
| 		}, | ||||
| @ -123,7 +121,7 @@ export default { | ||||
| 		} | ||||
| 	} | ||||
| 	.body { | ||||
| 		margin-top: 60rpx; | ||||
| 		margin-top: 20rpx; | ||||
| 		.title { | ||||
| 			height: 88rpx; | ||||
| 			display: flex; | ||||
| @ -133,7 +131,7 @@ export default { | ||||
| 			font-weight: 500; | ||||
| 			color: rgba(51,51,51,1); | ||||
| 			// border-bottom: #ECECEC 1rpx solid; | ||||
| 			margin-bottom: 30rpx; | ||||
| 			margin-bottom: 20rpx; | ||||
| 			> image { | ||||
| 				width: 29rpx; | ||||
| 				height: 36rpx; | ||||
|  | ||||
| @ -90,7 +90,7 @@ export default { | ||||
| 		}, | ||||
| 		setViewHeight() { | ||||
| 			const res = uni.getSystemInfoSync(); | ||||
| 			this.swiperHeight = res.windowHeight - (88 / 2) + 'px'; | ||||
| 			this.swiperHeight = res.windowHeight - (88 * (res.windowWidth / 750)) + 'px'; | ||||
| 		}, | ||||
| 		tabsChange(index) { | ||||
| 			this.swiperCurrent = index; | ||||
|  | ||||
| @ -6,7 +6,7 @@ | ||||
| 				<scroll-view scroll-y class="scroll-coupon"> | ||||
| 					<view v-if="couponList[index]"> | ||||
| 						<view class="coupon-item" v-for="(coupon, c_index) in couponList[index]" :key="c_index"> | ||||
| 							<Coupon :couponInfo="coupon" :status='index' :type="1" @use="useCoupon($event)" :goodsClass="goodsClass"></Coupon> | ||||
| 							<Coupon :couponInfo="coupon" :status='index' @use="useCoupon($event)" :goodsClass="goodsClass"></Coupon> | ||||
| 						</view> | ||||
| 					</view> | ||||
| 					<u-empty text="暂无优惠券" mode="coupon" v-if="!couponList[index] || !couponList[index].length"></u-empty> | ||||
| @ -68,12 +68,22 @@ export default { | ||||
| 				this.$forceUpdate(); | ||||
| 			}) | ||||
| 		}, | ||||
| 		useCoupon(id) { | ||||
| 			console.log(id); | ||||
| 		useCoupon(coupon) { | ||||
| 			// console.log(coupon); | ||||
| 			if(coupon.type == 1) { | ||||
| 				this.$u.route({ | ||||
| 					type: 'switchTab', | ||||
| 					url: 'pages/shop/index', | ||||
| 				}) | ||||
| 			} else if(coupon.type == 2) { | ||||
| 				this.$u.route('pageC/merchant/index', { | ||||
| 					id: coupon.voucher_store_id, | ||||
| 				}); | ||||
| 			} | ||||
| 		}, | ||||
| 		setViewHeight() { | ||||
| 			const res = uni.getSystemInfoSync(); | ||||
| 			this.swiperHeight = res.windowHeight - (88 / 2 + 11 / 2) + 'px'; | ||||
| 			this.swiperHeight = res.windowHeight - (100 * (res.windowWidth / 750)) + 'px'; | ||||
| 		}, | ||||
| 		tabsChange(index) { | ||||
| 			this.swiperCurrent = index; | ||||
|  | ||||
| @ -4,12 +4,12 @@ | ||||
| 			<view class="item-box"> | ||||
| 				<!-- 需求:只显示最近五十条数据 后台未作限制 --> | ||||
| 				<view v-for="(item, index) in historyList.slice(0, 50)" :key="index" class="history-item"> | ||||
| 					<view class="item-title"> | ||||
| 					<view class="item-title" @click="viewStoreDetails(item.store_id)"> | ||||
| 						<image :src="item.store_avatar"></image> | ||||
| 						<view>{{ item.store_name }}</view> | ||||
| 						<view class="u-line-2">{{ item.store_name }}</view> | ||||
| 					</view> | ||||
| 					<image :src="item.goods_image" class="item-image"></image> | ||||
| 					<view class="item-info"> | ||||
| 					<image :src="item.goods_image" class="item-image" @click="viewGoodsDetails(item.goods_id)"></image> | ||||
| 					<view class="item-info" @click="viewGoodsDetails(item.goods_id)"> | ||||
| 						<view class="info-name u-line-1">{{ item.goods_name }}</view> | ||||
| 					</view> | ||||
| 				</view> | ||||
| @ -34,6 +34,22 @@ export default { | ||||
| 		this.getBrowseList(); | ||||
| 	}, | ||||
|     methods: { | ||||
| 		viewStoreDetails(sid) { | ||||
| 			this.$u.route({ | ||||
| 				url: 'pageC/merchant/index', | ||||
| 				params: { | ||||
| 					id: sid, | ||||
| 				} | ||||
| 			}) | ||||
| 		}, | ||||
| 		viewGoodsDetails(id) { | ||||
| 			this.$u.route({ | ||||
| 				url: 'pageB/sdetails/index', | ||||
| 				params: { | ||||
| 					id: id, | ||||
| 				} | ||||
| 			}) | ||||
| 		}, | ||||
| 		async getBrowseList () { | ||||
| 			const res = await this.$u.api.getBrowseList({ page: this.page }); | ||||
| 			this.timer = false; | ||||
|  | ||||
| @ -44,7 +44,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" @click="toComment(item.laundry_id)"> | ||||
| 							<view class="btn" v-if="item.order_status == 50 && !item.comment" @click="toComment(item.laundry_id)"> | ||||
| 								去评价 | ||||
| 							</view> | ||||
| 						</view> | ||||
| @ -192,7 +192,7 @@ export default { | ||||
| 		}, | ||||
| 		setViewHeight() { | ||||
| 			const res = uni.getSystemInfoSync(); | ||||
| 			this.swiperHeight = res.windowHeight - (88 / 2) + 'px'; | ||||
| 			this.swiperHeight = res.windowHeight - (88 * (res.windowWidth / 750)) + 'px'; | ||||
| 		}, | ||||
| 		toComment(id) { | ||||
| 			this.$u.route('/pageE/tool/washComment', { | ||||
|  | ||||
| @ -175,7 +175,7 @@ | ||||
| 							<view class="checkd"> | ||||
| 								<label class="radio-view" v-for="(item, index) in items.extend_order_goods" :key="index"> | ||||
| 									<view class="radio"> | ||||
| 										<u-radio color="#F0AD4E" :name="items.order_id + ' ' + item.goods_id" active-color="#FF780F" icon-size="34" shape="circle"></u-radio> | ||||
| 										<u-radio color="#F0AD4E" :name="items.order_id + ' ' + item.goods_id" active-color="#FF780F" icon-size="24" shape="circle"></u-radio> | ||||
| 									</view> | ||||
| 									<view class="store_info"> | ||||
| 										<view class="info_img"> | ||||
| @ -267,7 +267,7 @@ export default { | ||||
| 				} else { | ||||
| 					this.typeList = []; | ||||
| 				} | ||||
| 				console.log(this.typeList); | ||||
| 				// console.log(this.typeList); | ||||
| 			}) | ||||
| 		}, | ||||
| 		confirmType(e) { | ||||
| @ -388,7 +388,7 @@ export default { | ||||
| 		}, | ||||
| 		radioChange(e){ | ||||
| 			const ids = e.split(" "); | ||||
| 			console.log(ids) | ||||
| 			// console.log(ids) | ||||
| 			let checkedGoods = {}; | ||||
| 			this.orderList.forEach(order => { | ||||
| 				if(order.order_id == ids[0]) { | ||||
| @ -438,8 +438,6 @@ export default { | ||||
| 		}, | ||||
| 		setViewHeight() { | ||||
| 			const res = uni.getSystemInfoSync(); | ||||
| 			// this.swiperHeight = res.windowHeight - (88 / 2) + 'px'; | ||||
| 			// this.swiperHeight = res.windowHeight + 500 + 'px'; | ||||
| 			this.swiperHeight = res.windowHeight - (res.windowWidth / 750) * 88 + 'px'; | ||||
| 		}, | ||||
| 		confirm(e){ | ||||
|  | ||||
| @ -442,7 +442,9 @@ | ||||
| 				}) | ||||
| 			}, | ||||
|             goSearch() { | ||||
|                 this.$u.route("/pageB/search/index"); | ||||
|                 this.$u.route("/pageB/search/index", { | ||||
| 					type: 2, | ||||
| 				}); | ||||
|             } | ||||
| 		}, | ||||
| 	} | ||||
|  | ||||
| @ -5,7 +5,7 @@ | ||||
| 				<u-avatar  @click="toOtherPage('/mine/MineInfo')" :src="userInfo.member_avatar + '?' + new Date().getTime()" :size="110"></u-avatar> | ||||
| 				<view class="user-info"> | ||||
| 					<view class="info-left"> | ||||
| 						<view class="user-nickname">{{ userInfo.member_nickname }}</view> | ||||
| 						<view class="user-nickname u-line-1">{{ userInfo.member_nickname }}</view> | ||||
| 						<view class="user-medal" @click="toOtherPage('/mine/MedalIntroduction')"> | ||||
| 							<image src="/static/image/mine/13.png"></image> | ||||
| 							<view class="rank-title">{{ userInfo.member_grade_name }}</view> | ||||
| @ -192,13 +192,14 @@ export default { | ||||
| 				.info-left { | ||||
| 					margin-right: 15rpx; | ||||
| 					.user-nickname { | ||||
| 						width: 100rpx; | ||||
| 						font-size: 30rpx; | ||||
| 						color: rgba(51,51,51,1); | ||||
| 						margin-bottom: 19rpx; | ||||
| 					} | ||||
| 					.user-medal { | ||||
| 						display: flex; | ||||
| 						width: 110rpx; | ||||
| 						// width: 110rpx; | ||||
| 						// height: 25rpx; | ||||
| 						background: linear-gradient(269deg,rgba(175,175,175,1) 0%,rgba(224,224,224,1) 100%); | ||||
| 						border-radius: 13rpx; | ||||
|  | ||||
| @ -112,7 +112,10 @@ | ||||
| 			sousuo() { | ||||
| 				// console.log(123) | ||||
| 				this.$u.route({ | ||||
| 					url: "pageB/search/index" | ||||
| 					url: "pageB/search/index", | ||||
| 					params: { | ||||
| 						type: 1, | ||||
| 					} | ||||
| 				}) | ||||
| 			}, | ||||
| 			// 获取定位 | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user