From c3319db3d83f2d4fa7fdf06e3792496ce77d90aa Mon Sep 17 00:00:00 2001
From: xuxueyang <xuxy@fengyuntec.com>
Date: 星期一, 09 九月 2024 02:24:16 +0800
Subject: [PATCH] update 提及的修复问题和会员信息相关的

---
 sub_pages/customer/trade/trade.vue | 1110 ++++++++++++++++++++++++++--------------------------------
 1 files changed, 498 insertions(+), 612 deletions(-)

diff --git a/sub_pages/customer/trade/trade.vue b/sub_pages/customer/trade/trade.vue
index 523f096..e706b98 100644
--- a/sub_pages/customer/trade/trade.vue
+++ b/sub_pages/customer/trade/trade.vue
@@ -1,613 +1,499 @@
-<template>
-	<view class="container-canteen" style="min-height: calc(100vh - 20rpx );">
-
-		<view class="canteen-items" style="min-height: calc(100vh - 360rpx);">
-			<view v-if="(!list||list.length==0)&&true" style="width: 100%;min-height: 200rpx;">
-				&nbsp;
-			</view>
-			<no-data v-if="(!list||list.length==0)&&true" style="width: 100%;margin-top: 220rpx;"></no-data>
-			<view class="" style="display: flex;flex-wrap: inherit;" v-else>
-				<view class="type-list">
-					<view v-for="(item,index) of types" @click="changeType(item)"
-						:class="[query.typeId==item.id?'current':'']" :key="index" class="p10 flex type-item">
-						{{item.name || '-'}}
-					</view>
-				</view>
-				<view class="canteen-item-container">
-					<view v-for="(item,index) of listFilter" :key="item.id" class="p10 canteen-item list"
-						style="display: flex;flex-wrap: inherit;">
-						<view class="m-r-10">
-							<image :src="item.cover" mode="scaleToFill" class="cover" @click="previewImg(item.cover)">
-							</image>
-						</view>
-						<view class="cateen_infos list">
-							<view class="title">{{item.name}}</view>
-							<view class="desc">月售:{{item.monthSale || '0'}}</view>
-							<view class="flex bottom-buttons flex">
-								<view class="price flex">
-									<view class="icon">¥</view>
-									<view class='num'>{{item.price || '-'}}</view>
-								</view>
-								<view class="icons flex">
-									<uni-icons v-if="item.shopnum&&item.shopnum>=1" type="minus" size="32"
-										@click="mulnum(item)"></uni-icons>
-									<view class="curnums" v-if="item.shopnum&&item.shopnum>=1">{{item.shopnum}}</view>
-									<uni-icons type="plus-filled" size="32" @click="addnum(item)"></uni-icons>
-								</view>
-							</view>
-						</view>
-						<view style="padding-bottom:100rpx">
-						</view>
-					</view>
-
-					<footer-msg v-if="query.block&&query.schoolArea"
-						:more="page.total>0&&page.total>page.current*page.size"></footer-msg>
-
-				</view>
-			</view>
-
-		</view>
-
-
-
-		<view style="min-height:200rpx">
-		</view>
-		<common-footer flg="1"></common-footer>
-
-	</view>
-</template>
-
-<script>
-	import {
-		mapState
-	} from 'vuex'
-	export default {
-		data() {
-			return {
-				list: [],
-				showpop: false,
-				query: {
-					name: '',
-					// status:'',
-					schoolArea: '',
-					schoolAreaStr: '',
-					block: '',
-					blockStr: '',
-					typeId: '',
-				},
-				types: [{
-					name: '全部',
-					id: ''
-				}],
-				schools: [],
-				schoolIndex: -1,
-				blockIndex: -1,
-				blocks: [],
-				shoptotal: 0,
-				cal: 0,
-			}
-		},
-		async onLoad() {
-			// this.list = [{
-			// 	'shopnum': 0
-			// }, {
-			// 	'shopnum': 1
-			// }]
-
-			//加载分类
-			this.$http.request('get', '/api/canteen/goods/type/list', {
-				params: {
-					size: 100
-				}
-			}).then(async res => {
-				if (res.code == 0) {
-					this.types = res.data && res.data.records || []
-					this.types.unshift({
-						name: '全部',
-						id: ''
-					});
-
-				}
-			})
-
-			this.listApi = '/api/canteen/customer/goods/list'
-
-			// this.getList()
-			//加载校区、楼栋
-			this.$http.request('get', '/api/school/area/list', {
-
-			}).then(async res => {
-				if (res.code == 0) {
-					this.schools = res.data || []
-					// this.schools = [{
-					// 	'name': '全部',
-					// 	'id': '',
-					// }]
-					// for (var item of arr) {
-					// 	this.schools.push(item)
-					// }
-				}
-				console.log('schools', this.schools)
-				var schoolIndex = uni.getStorageSync('schoolIndex')
-				if (!schoolIndex && schoolIndex !== 0) {
-					// await this.getList()
-					// this.list.forEach(item => {
-					// 	if (!item.shopnum) {
-					// 		item.shopnum = 0
-					// 	}
-					// })
-				} else {
-					this.schoolIndex = schoolIndex
-					if (this.schoolIndex >= 0) {
-						this.PickerChangeSchool({
-							detail: {
-								value: this.schoolIndex
-							}
-						})
-						// await this.getList()
-						// this.list.forEach(item => {
-						// 	if (!item.shopnum) {
-						// 		item.shopnum = 0
-						// 	}
-						// })
-					}
-				}
-
-			})
-
-
-		},
-		methods: {
-			changeType(item) {
-				this.query.typeId = item.id || ''
-			},
-			async PickerChangeSchool(e) {
-				if (e.detail.value == '-1') {
-					this.$message.showToast('未选择校区')
-					return
-				}
-				this.schoolIndex = parseInt(e.detail.value)
-				this.query.schoolArea = this.schools[this.schoolIndex].id
-				this.blockIndex = -1
-
-				this.$message.showLoading()
-				var {
-					data
-				} = await this.$http.request('get', '/api/school/block/list', {
-					params: {
-						schoolArea: this.query.schoolArea,
-						size: 200
-					}
-				})
-
-				this.blocks = data && data.records || []
-				// var arr = data.records || []
-				// this.blocks = [{
-				// 	'name': '全部',
-				// 	'id': '',
-				// }]
-				// for (var item of arr) {
-				// 	this.blocks.push(item)
-				// }
-				this.$message.hideLoading()
-				if (this.blocks.length >= 1) {
-					this.query.block = this.blocks[0].id
-					this.query.blockStr = this.blocks[0].name
-					this.page.current = 1
-					this.blockIndex = 0
-					this.list = []
-					this.getList()
-				} else {
-					this.page.current = 1
-					this.list = []
-				}
-
-
-
-			},
-			async PickerChangeBlock(e) {
-				if (e.detail.value == '-1') {
-					this.$message.showToast('未选择楼栋')
-					return
-				}
-				this.blockIndex = parseInt(e.detail.value)
-				this.query.block = this.blocks[this.blockIndex].id
-				this.page.current = 1
-				// this.list = []
-				this.list = []
-				// this.getList()
-				await this.getList()
-				this.list.forEach(item => {
-					if (!item.shopnum) {
-						item.shopnum = 0
-					}
-				})
-
-			},
-			mulnum(item) {
-				if (item.shopnum > 0) {
-					item.shopnum -= 1
-				}
-				this.shoptotal -= 1
-				this.cal += 1
-				this.$forceUpdate()
-
-			},
-			addnum(item) {
-				// console.log('addnum', item)
-				if (item.shopnum) {
-					item.shopnum += 1
-				} else {
-					item.shopnum = 1
-				}
-				this.shoptotal += 1
-				this.cal += 1
-				this.$forceUpdate()
-			},
-			openShopDetail() {
-				// this.showpop = false
-				// this.$forceUpdate()
-				this.cal += 1
-				this.$refs.popup_shop_detail.open()
-				this.$nextTick(() => {
-					this.$refs.addressselect && this.$refs.addressselect.init()
-				})
-			},
-			closeShopDetail() {
-				// this.showpop = true
-				this.$refs.popup_shop_detail.close()
-			},
-			async submitGood() {
-				var values = []
-				for (var item of this.list) {
-					if (item.shopnum > 0) {
-						values.push({
-							id: item.id,
-							num: item.shopnum
-						})
-					}
-				}
-				//购买
-				if (!this.address.id) {
-					this.$message.showToast('请先选择收获地址')
-					return
-				}
-
-				await this.$message.confirm('确定购买吗?')
-				this.$message.showLoading()
-				const {
-					code,
-					data
-				} = await this.$http.request('post', '/api/canteen/customer/order', {
-					data: {
-						customerAddress: (this.address.schoolAreaStr || '') + (this.address.blockStr || '') + (
-							this
-							.address.room || '') + (this.address.address || ''),
-						customerTel: this.address.tel,
-						customer: this.address.name,
-						goodsList: values, //规格
-					}
-				})
-
-				this.$message.hideLoading()
-				if (code == 0) {
-
-					this.list.forEach(item => {
-						item.shopnum = 0
-					})
-					this.shoptotal = 0
-					this.cal += 1
-					this.$refs.popup_shop_detail.close()
-					this.$forceUpdate()
-
-					//todo,预支付
-					//深夜食堂的逻辑不太一样
-					if (true) {
-						const orderInfo = await this.$http.request('get', '/api/canteen/customer/payment/' + data
-							.orderId, {})
-						//支付准备
-						var info = orderInfo.data
-						let that = this
-						wx.requestPayment({
-							...info,
-							success(res) {
-								console.log('pay success', res)
-								uni.navigateTo({
-									url: '/pages/canteen/canteen-success/canteen-success'
-								})
-							},
-							fail(err) {
-								console.error('pay fail', err)
-								that.$message.showToast('支付失败')
-							}
-						})
-					} else {
-						uni.navigateTo({
-							url: '/pages/canteen/canteen-success/canteen-success'
-						})
-					}
-
-
-				}
-			}
-		},
-		computed: {
-			...mapState({
-				address: state => {
-					return state.defaultaddress || {}
-				},
-			}),
-			selectprices() {
-				var arr = 0
-				for (var item of this.list) {
-					if (item.shopnum > 0) {
-						// arr.push(item)
-						arr += (item.price >= 0 ? item.price : 0) * item.shopnum
-					}
-				}
-				if (this.cal > 0) {
-					return arr
-
-				}
-				return 0
-			},
-			selectgoods() {
-				var arr = []
-				for (var item of this.list) {
-					if (item.shopnum > 0) {
-						arr.push(item)
-					}
-				}
-				if (this.cal > 0) {
-					return arr
-
-				}
-				return arr
-
-			},
-			listFilter() {
-				if (this.query.typeId) {
-					var arr = []
-					if (this.list && this.list.length > 0) {
-						for (var item of this.list) {
-							if (item.typeId === this.query.typeId || item.type === this.query.typeId) {
-								arr.push(item)
-							}
-						}
-					}
-					return arr
-				} else {
-					return this.list
-				}
-
-			},
-			// shoptotal() {
-			// 	var a = 0
-			// 	for (var item of this.list) {
-			// 		a += item.shopnum || 0
-			// 	}
-			// 	console.log('shoptotal',a,this.list)
-			// 	return a
-			// }
-		}
-	}
-</script>
-
-<style lang="scss" scoped>
-	.container-canteen {
-		background-color: #FFFFFF;
-
-		.type-list {
-			max-width: 178rpx;
-			width: 178rpx;
-			min-width: 178rpx;
-			background: #EEF7F5;
-			border-radius: 8rpx;
-			min-height: calc(100vh - 300rpx);
-			max-height: calc(100vh - 300rpx);
-			overflow-y: scroll;
-			margin-left: 30rpx;
-
-			.type-item {
-				text-align: center;
-				font-weight: 400;
-				font-size: 28rpx;
-				color: #000000;
-				line-height: 88rpx;
-				// padding-left: 30rpx;
-				// padding-right: 30rpx;
-			}
-
-			.type-item.current {
-				font-weight: 600;
-				font-size: 28rpx;
-				color: #04BA97;
-			}
-		}
-
-		.title-before-blue.green {
-			padding-left: 30rpx;
-			padding-bottom: 0rpx;
-		}
-
-		.title-before-blue:before {
-			color: #04BA97;
-			font-weight: 600;
-			min-width: 14rpx;
-			background: #04BA97;
-			border-radius: 8rpx;
-			display: inline-block;
-		}
-
-		.popup_shop_detail {
-			background: #FFFFFF;
-			// padding: 30rpx 0rpx;
-			padding-bottom: 30rpx;
-
-			.footer-shop {
-				margin: 0 auto;
-				margin-top: 46rpx;
-			}
-
-			.common-address-select {
-				margin-left: 20rpx;
-				margin-right: 20rpx;
-			}
-
-			.close-parent {
-				margin-right: 20rpx;
-			}
-
-			.canteen-items {
-				.canteen-item {
-					margin-left: 20rpx;
-					margin-right: 0rpx;
-
-					.cateen_infos {
-						width: 440rpx;
-
-					}
-
-					.cateen_infos.list {
-						max-width: 30 0rpx;
-						min-width: 200rpx;
-					}
-				}
-			}
-		}
-
-		.canteen-items {
-			// margin-left: 30rpx;
-
-			.canteen-item {
-				margin-left: 30rpx;
-				margin-right: 30rpx;
-				// width: 690rpx;
-				// max-width: 690rpx;
-				height: 206rpx;
-				background: #FFFFFF;
-				border-radius: 16rpx;
-				display: flex;
-				margin-bottom: 24rpx;
-
-				.cover {
-					width: 202rpx;
-					height: 202rpx;
-				}
-
-				.title {
-					font-weight: 600;
-					font-size: 32rpx;
-					color: #000000;
-					line-height: 44rpx;
-				}
-
-				.desc {
-					font-weight: 400;
-					font-size: 24rpx;
-					color: #666666;
-					line-height: 34rpx;
-				}
-
-				.price {
-
-					font-size: 24rpx;
-
-					.icon {
-						line-height: 60rpx;
-					}
-
-					.num {
-						font-weight: 600;
-						font-size: 36rpx;
-						color: #000000;
-						// line-height: 50rpx;
-					}
-				}
-
-				.cateen_infos {
-					width: 400rpx;
-					position: relative;
-				}
-
-				.cateen_infos.list {
-					max-width: 300rpx;
-					min-width: 200rpx;
-
-				}
-
-				.bottom-buttons {
-					// width: 400rpx;
-					position: absolute;
-					bottom: 0rpx;
-
-					left: 0;
-					right: 0;
-
-					.icons {
-						margin-left: auto;
-						margin-right: 0;
-
-						.curnums {
-							line-height: 60rpx;
-						}
-					}
-				}
-			}
-
-			.canteen-item-container {
-				width: 100%;
-				min-height: 300rpx;
-				max-height: calc(100vh - 300rpx);
-				overflow-y: scroll;
-			}
-
-			.canteen-item.list {
-				margin-right: 0rpx;
-				flex: 1;
-				margin-bottom: 0rpx;
-
-				.cover {
-					width: 158rpx;
-					height: 158rpx;
-				}
-			}
-		}
-
-		.canteen-footer-shop {
-			position: absolute;
-			position: fixed;
-			left: 30rpx;
-			bottom: 30rpx;
-		}
-
-		.area-select {
-			.area {
-
-				margin-right: 0rpx;
-
-				.t {
-					font-weight: 400;
-					font-size: 32rpx;
-					color: #000000;
-					line-height: 44rpx;
-				}
-
-				.i {}
-			}
-
-			.area-1 {
-				margin-left: auto;
-			}
-
-			.area-2 {
-				margin-left: 84rpx;
-			}
-		}
-
-		.canteen-banner {
-			width: 750rpx;
-			min-height: 360rpx;
-		}
-	}
+<template>
+	<view class="container-trade" :style="{'min-height':hidefooter?'':'calc(100vh - 20rpx)'}">
+		<view class="search-container m-t-12 flex" v-if="!hidefooter">
+			<view class="flex m-r-20">
+				<view class="m-r-10" style="line-height: 80rpx;" @click="changeSearchType">
+					{{type=='category'?'按分类':'按店铺'}}
+				</view>
+				<u-icon name="arrow-down"></u-icon>
+
+			</view>
+			<view class="flex1 input">
+				<u-input :placeholder="type==='category'?'请输入分类名称':'请输入店铺名称'" v-model="query.name" clearable
+					@confirm="buttonSearchFlow" @clear="()=>{
+					$nextTick(()=>{buttonSearchFlow()})
+				}">
+					<template slot="suffix">
+						<uni-icons color="#20613D" type="search" size="24" @click="buttonSearchFlow"></uni-icons>
+					</template>
+				</u-input>
+			</view>
+		</view>
+		<view class="canteen-items" :style="{'min-height':hidefooter?'':'calc(100vh - 340rpx)'}">
+			<view v-if="(!list||list.length==0)&&true" style="width: 100%;min-height: 200rpx;">
+				&nbsp;
+			</view>
+			<no-data v-if="(!list||list.length==0)&&true" style="width: 100%;margin-top: 220rpx;"></no-data>
+			<view class="" style="display: flex;flex-wrap: inherit;" v-else>
+				<view class="type-list">
+					<view v-for="(item,index) of list" @click="changeType(item)"
+						:class="[query.categoryId===item.id?'current':'']" :key="index" class="p10 flex type-item">
+						{{item.name || '-'}}
+					</view>
+				</view>
+				<view class="canteen-item-container">
+					<!--					<view class="component-filter-container" style="padding-top: 12rpx;">-->
+					<!--						<view class="flex1" @click="openParamPop">-->
+					<!--							筛选-->
+					<!--						</view>-->
+					<!--						<view class="flex1">-->
+					<!--							颜色<image src="../../../static/common/icon-arrow-down.png" class="icon-arrow-down"></image>-->
+					<!--						</view>-->
+					<!--						<view class="flex1">-->
+					<!--							筛选<image src="../../../static/common/icon-arrow-down.png" class="icon-arrow-down"></image>-->
+					<!--						</view>-->
+					<!--					</view>-->
+					<!--					<u-divider></u-divider>-->
+					<view class="flex">
+						<view v-for="(item,index) of listFilter" :key="item.id" class="canteen-item list"
+							@click.stop="toDetailList(item)">
+							<view class="m-r-10">
+								<!-- @click.stop="previewImg(item.imageUrl)" -->
+								<image :src="item.imageUrl" :class="[!item.stock?'':'']" mode="scaleToFill"
+									class="cover" :lazy-load="true">
+								</image>
+							</view>
+							<view class="cateen_infos list">
+								<view class="title">{{item.name}}</view>
+								<!-- #ifdef PUB_CUSTOMER_DEV -->
+								
+								<view class="price">
+									<view>会员价</view>
+									<view>¥{{item.priceLowMember || 0}}-{{item.priceHighMember||0}}</view>
+								</view>								
+								<view class="price component-price-old">¥{{item.priceLow || 0}}-{{item.priceHigh||0}}</view>
+								
+								<!-- #endif -->
+								<!-- #ifndef PUB_CUSTOMER_DEV -->
+								<view class="price">¥{{item.priceLow || 0}}-{{item.priceHigh||0}}</view>
+								<!-- #endif -->
+								<view class="desc">在售 {{item.stock||'0'}} 扎</view>
+							</view>
+
+						</view>
+						<view style="padding-bottom:40rpx">
+						</view>
+					</view>
+					<footer-msg v-if="!hidefooter" :more="page.total>0&&page.total>page.current*page.size"></footer-msg>
+
+				</view>
+			</view>
+
+		</view>
+
+
+
+		<view style="min-height:100rpx" v-if="!hidefooter">
+		</view>
+		<common-footer flg="1" v-if="!hidefooter">></common-footer>
+
+		<uni-popup ref="popup_param" type="bottom">
+			<view class="component-popup_input_all" v-if="currentCategory&&currentCategory.params">
+				<view class="text-center m-b-40" style="font-size: 48rpx;font-weight: 600;">商品参数设置</view>
+				<!-- 输入框-->
+				<view v-for="(item,i) in currentCategory.params" :key="i" class="m-t-20">
+					<view class="title topic-font" style="font-size: 40rpx;font-weight: 600;">{{item.name}}</view>
+					<view class="m-t-12 flex value-items">
+						<view class="value-item" @click="updateValue(item,each)" :class="[item.value===each?'cur':'']"
+							v-for="(each, j) in item.values" :key="j">
+							{{each || '-'}}
+						</view>
+					</view>
+				</view>
+				<view class="button-space"></view>
+				<view>
+					<view class="button-green button-white" @click="closeParamPop">关闭</view>
+					<view class="button-green" @click="updateParamsAndSearch">查询</view>
+				</view>
+			</view>
+		</uni-popup>
+	</view>
+</template>
+
+<script>
+	import {
+		mapState
+	} from 'vuex'
+	export default {
+		props: {
+			hidefooter: false,
+			catgoryTree: [],
+			supplierId: '',
+		},
+		data() {
+			return {
+				list: [],
+				showpop: false,
+				query: {
+					name: '',
+					categoryId: '',
+				},
+				currentCategory: {},
+				type: 'category', //supplier
+
+
+			}
+		},
+		// #ifdef PUB_CUSTOMER
+		onShareAppMessage() {
+			let that = this;
+			var name = that.currentInfo.customerDTO && that.currentInfo.customerDTO.name || that.currentInfo.supplierDTO &&
+				that.currentInfo.supplierDTO.name || that.currentInfo.partnerDTO && that.currentInfo.partnerDTO.name || ''
+			var url =
+				`/pages/home/home?shareId=${this.currentInfo&&this.currentInfo.id||''}&shareName=${name||''}`; //你的转发页面路径拼接参数
+			return {
+				title: "花满芫",
+				path: url,
+			}
+		},
+		onShareTimeline() {
+			let that = this;
+			var name = that.currentInfo.customerDTO && that.currentInfo.customerDTO.name || that.currentInfo.supplierDTO &&
+				that.currentInfo.supplierDTO.name || that.currentInfo.partnerDTO && that.currentInfo.partnerDTO.name || ''
+			var url =
+				`/pages/home/home?shareId=${this.currentInfo&&this.currentInfo.id||''}&shareName=${name||''}`; //你的转发页面路径拼接参数
+			return {
+				title: "花满芫",
+				path: url,
+			}
+		},
+		// #endif
+		onPullDownRefresh() {
+			this.$http.request('get', '/api/customer/flower/category/tree', {}).then(res => {
+				var data = res.data
+				this.list = data || []
+				if (this.list.length > 0) {
+					this.query.categoryId = this.list[0].id || ''
+					this.currentCategory = this.list[0] || {}
+				}
+			}).finally(() => {
+				uni.stopPullDownRefresh()
+			})
+		},
+		async onLoad(options) {
+			let selectId = options.categoryId || ''
+			//加载分类
+			this.$message.showLoading()
+			this.$http.request('get', '/api/customer/flower/category/tree', {}).then(res => {
+				this.$message.hideLoading()
+				var data = res.data
+				this.list = data || []
+				if (this.list.length > 0) {
+					if (selectId) {
+						for (var item of this.list) {
+							if (item.id == selectId) {
+								this.query.categoryId = item.id || ''
+								this.currentCategory = item
+								break
+							}
+						}
+					} else {
+						this.query.categoryId = this.list[0].id || ''
+						this.currentCategory = this.list[0] || {}
+					}
+
+				}
+			})
+		},
+		methods: {
+			changeSearchType() {
+				if (this.type == 'category') {
+					this.type = 'supplier'
+					this.query.name = ''
+				} else {
+					this.type = 'category'
+					this.query.name = ''
+				}
+			},
+			maxWeightPrice(item) {
+				var p = 0
+				if (item.weightA && item.weightA > p) {
+					p = item.weightA
+				}
+				if (item.weightB && item.weightB > p) {
+					p = item.weightB
+				}
+				if (item.weightC && item.weightC > p) {
+					p = item.weightC
+				}
+				if (item.weightD && item.weightD > p) {
+					p = item.weightD
+				}
+				if (item.weightE && item.weightE > p) {
+					p = item.weightE
+				}
+				if (item.weightO && item.weightO > p) {
+					p = item.weightO
+				}
+				return p
+			},
+			minWeightPrice(item) {
+				var p = -1
+				if (item.weightA && item.weightA < p) {
+					p = item.weightA
+				}
+				if (item.weightB && item.weightB < p) {
+					p = item.weightB
+				}
+				if (item.weightC && item.weightC < p) {
+					p = item.weightC
+				}
+				if (item.weightD && item.weightD < p) {
+					p = item.weightD
+				}
+				if (item.weightE && item.weightE < p) {
+					p = item.weightE
+				}
+				if (item.weightO && item.weightO < p) {
+					p = item.weightO
+				}
+				if (p < 0) {
+					p = 0
+				}
+				return p
+			},
+			refInit(catgoryTree) {
+				this.list = catgoryTree || []
+				if (this.list.length > 0) {
+					this.query.categoryId = this.list[0].id || ''
+					this.currentCategory = this.list[0] || {}
+				}
+			},
+			async updateParamsAndSearch() {
+				//todo 设置参数并查询
+				await this.refreshList()
+				this.$refs.popup_param.close()
+			},
+			openParamPop() {
+				//todo 同时设置查询参数为空吧
+				this.$refs.popup_param.open()
+			},
+			closeParamPop() {
+				this.$refs.popup_param.close()
+			},
+			buttonSearchFlow() {
+
+				if (this.type == 'category') {
+					//根据分类名称查询
+					this.$message.showLoading()
+					this.$http.request('get', '/api/customer/flower/category/tree', {
+						params: {
+							name: this.query.name || ''
+						}
+					}).then(res => {
+						var data = res.data
+						this.list = data || []
+						if (this.list.length > 0) {
+							this.query.categoryId = this.list[0].id || ''
+							this.currentCategory = this.list[0] || {}
+						} else {
+							this.query.categoryId = ''
+							this.currentCategory = {}
+						}
+					}).finally(() => {
+						this.$message.hideLoading()
+					})
+				} else {
+					uni.navigateTo({
+						url: '/sub_pages/customer/trade/list?' + 'supplierName=' + this.query.name
+					})
+
+				}
+			},
+			toDetailList(item) {
+				//去商品列表页面
+				console.log('toDetailList',this.supplierId)
+				uni.navigateTo({
+					url: `/sub_pages/customer/trade/list?categoryId=${item.id}&supplierId=${this.supplierId||''}`
+				})
+			},
+			changeType(item) {
+				this.query.categoryId = item.id || ''
+				this.currentCategory = item
+			},
+
+
+			async submitGood() {
+				var values = []
+				for (var item of this.list) {
+					if (item.shopnum > 0) {
+						values.push({
+							id: item.id,
+							num: item.shopnum
+						})
+					}
+				}
+			}
+		},
+		computed: {
+			...mapState({
+				address: state => {
+					return state.defaultaddress || {}
+				},
+			}),
+			listFilter() {
+				if (this.query.categoryId) {
+					var arr = []
+					if (this.list && this.list.length > 0) {
+						for (var item of this.list) {
+							if (item.id === this.query.categoryId || item.id === this.query.categoryId) {
+								// arr.push(item)
+								return item.children || []
+							}
+						}
+					}
+					return arr
+				} else {
+					return []
+				}
+
+			},
+		}
+	}
+</script>
+
+<style lang="scss" scoped>
+	.container-trade {
+		background-color: #FFFFFF;
+		padding-top: 20rpx;
+
+		.search-container {
+			margin: 0rpx 30rpx 20rpx 30rpx;
+		}
+
+
+
+		.type-list {
+			max-width: 178rpx;
+			width: 178rpx;
+			min-width: 178rpx;
+			background: #EEF7F5;
+			border-radius: 8rpx;
+			min-height: calc(100vh - 270rpx);
+			max-height: calc(100vh - 270rpx);
+			overflow-y: scroll;
+			margin-right: 16rpx;
+
+			.type-item {
+				text-align: center;
+				font-weight: 400;
+				font-size: 28rpx;
+				color: #000000;
+				line-height: 88rpx;
+				// padding-left: 30rpx;
+				// padding-right: 30rpx;
+			}
+
+			.type-item.current {
+				font-weight: 600;
+				font-size: 28rpx;
+				color: #04BA97;
+			}
+		}
+
+		.title-before-blue.green {
+			padding-left: 30rpx;
+			padding-bottom: 0rpx;
+		}
+
+		.title-before-blue:before {
+			color: #04BA97;
+			font-weight: 600;
+			min-width: 14rpx;
+			background: #04BA97;
+			border-radius: 8rpx;
+			display: inline-block;
+		}
+
+
+		.canteen-items {
+			// margin-left: 30rpx;
+
+			.canteen-item {
+				margin: 0 auto;
+				width: 164rpx;
+				// width: 690rpx;
+				// max-width: 690rpx;
+				min-height: 266rpx;
+				background: #FFFFFF;
+				margin-bottom: 44rpx;
+				max-width: 164rpx;
+
+				.cover {
+					width: 164rpx;
+					height: 164rpx;
+					background-size: 100% 100%;
+					border-radius: 8rpx;
+					border: 2rpx solid #f8f8f8;
+				}
+
+				.title {
+					font-weight: 500;
+					font-size: 28rpx;
+					color: #000000;
+					line-height: 40rpx;
+					min-height: 80rpx;
+					text-align: center;
+				}
+
+				.desc {
+					margin-top: 8rpx;
+					font-weight: 400;
+					font-size: 24rpx;
+					color: #6E9F66;
+					line-height: 34rpx;
+					height: 34rpx;
+					background-color: rgba(202, 229, 214, 0.57);
+					border-radius: 4rpx;
+					text-align: center;
+
+				}
+
+				.price {
+					font-weight: 400;
+					font-size: 24rpx;
+					color: #CF0000;
+					line-height: 34rpx;
+					text-align: center;
+				}
+
+
+
+
+
+			}
+
+			.canteen-item-container {
+				width: 100%;
+				min-height: 300rpx;
+				max-height: calc(100vh - 270rpx);
+				overflow-y: scroll;
+			}
+
+			.canteen-item:nth-child(3n+1) {
+				margin-left: 0rpx;
+				margin-right: 15rpx;
+			}
+
+			.canteen-item:nth-child(3n+2) {
+				margin-left: 15rpx;
+				margin-right: 15rpx;
+			}
+
+			.canteen-item:nth-child(3n+3) {
+				margin-left: 15rpx;
+				margin-right: 0rpx;
+			}
+		}
+
+		.canteen-footer-shop {
+			position: absolute;
+			position: fixed;
+			left: 30rpx;
+			bottom: 30rpx;
+		}
+
+
+
+	}
 </style>
\ No newline at end of file

--
Gitblit v1.9.3