From dc6cdf2414ee7c453e1bca47898177f7af079945 Mon Sep 17 00:00:00 2001
From: xuxy <1059738716@qq.com>
Date: 星期一, 29 七月 2024 00:03:59 +0800
Subject: [PATCH] 1

---
 sub_pages/customer/trade/trade.vue |  104 ++++++++++++++++++++++++++++++++++++++-------------
 1 files changed, 77 insertions(+), 27 deletions(-)

diff --git a/sub_pages/customer/trade/trade.vue b/sub_pages/customer/trade/trade.vue
index 4539785..275455e 100644
--- a/sub_pages/customer/trade/trade.vue
+++ b/sub_pages/customer/trade/trade.vue
@@ -1,15 +1,15 @@
 <template>
-	<view class="container-trade" style="min-height: calc(100vh - 20rpx );">
-		<view class="search-container m-t-12 flex" v-if="!(!list||list.length==0)&&true">
+	<view class="container-trade" :style="{'min-height':hidefooter?'':'calc(100vh - 20rpx)'}">
+		<view class="search-container m-t-12 flex" v-if="!hidefooter">
 			<view class="flex1 input">
-				<u-input placeholder="请输入分类名称" v-model="query.name">
+				<u-input placeholder="请输入分类名称" v-model="query.name" clearable>
 					<template slot="suffix">
 						<uni-icons color="#20613D" type="search" size="24" @tap="buttonSearchFlow"></uni-icons>
 					</template>
 				</u-input>
 			</view>
 		</view>
-		<view class="canteen-items" style="min-height: calc(100vh - 160rpx);">
+		<view class="canteen-items" :style="{'min-height':hidefooter?'':'calc(100vh - 160rpx)'}">
 			<view v-if="(!list||list.length==0)&&true" style="width: 100%;min-height: 200rpx;">
 				&nbsp;
 			</view>
@@ -17,28 +17,28 @@
 			<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">
+						: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">
-							销量
-						</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="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">
-								<image :src="item.imageUrl" mode="scaleToFill" class="cover"
+								<image :src="item.imageUrl" mode="scaleToFill" class="cover" :lazy-load="true"
 									@click.stop="previewImg(item.imageUrl)">
 								</image>
 							</view>
@@ -54,13 +54,12 @@
 										<uni-icons type="plus-filled" size="32" @click="addnum(item)"></uni-icons>
 									</view> -->
 							</view>
-							<view style="padding-bottom:100rpx">
-							</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>
+					<footer-msg v-if="!hidefooter" :more="page.total>0&&page.total>page.current*page.size"></footer-msg>
 
 				</view>
 			</view>
@@ -69,10 +68,30 @@
 
 
 
-		<view style="min-height:200rpx">
+		<view style="min-height:200rpx" v-if="!hidefooter">
 		</view>
-		<common-footer flg="1"></common-footer>
+		<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>
 
@@ -81,6 +100,10 @@
 		mapState
 	} from 'vuex'
 	export default {
+		props: {
+			hidefooter: false,
+			catgoryTree: [],
+		},
 		data() {
 			return {
 				list: [],
@@ -89,6 +112,7 @@
 					name: '',
 					categoryId: '',
 				},
+				currentCategory: {}
 
 			}
 		},
@@ -98,6 +122,7 @@
 				this.list = data || []
 				if (this.list.length > 0) {
 					this.query.categoryId = this.list[0].id || ''
+					this.currentCategory = this.list[0] || {}
 				}
 			}).finally(() => {
 				uni.stopPullDownRefresh()
@@ -106,15 +131,37 @@
 		async onLoad() {
 
 			//加载分类
+			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) {
 					this.query.categoryId = this.list[0].id || ''
+					this.currentCategory = this.list[0] || {}
 				}
 			})
 		},
 		methods: {
+			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() {
 				//根据名称查询
 				this.$message.showLoading()
@@ -127,8 +174,10 @@
 					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()
@@ -142,6 +191,7 @@
 			},
 			changeType(item) {
 				this.query.categoryId = item.id || ''
+				this.currentCategory = item
 			},
 
 
@@ -193,7 +243,7 @@
 			margin: 0rpx 30rpx 20rpx 30rpx;
 		}
 
-	
+
 
 		.type-list {
 			max-width: 178rpx;
@@ -246,7 +296,7 @@
 				width: 164rpx;
 				// width: 690rpx;
 				// max-width: 690rpx;
-				height: 266rpx;
+				min-height: 266rpx;
 				background: #FFFFFF;
 				margin-bottom: 44rpx;
 				max-width: 164rpx;

--
Gitblit v1.9.3