From e7731f1cf08331d23cd0d27549025a2642caa9ab Mon Sep 17 00:00:00 2001
From: xuxueyang <xuxy@fengyuntec.com>
Date: 星期三, 24 七月 2024 18:58:39 +0800
Subject: [PATCH] update todo还差个订单详情的商品列表展示

---
 sub_pages/customer/trade/list.vue |  615 +++++++++++++++++++++++++++++++++----------------------
 1 files changed, 370 insertions(+), 245 deletions(-)

diff --git a/sub_pages/customer/trade/list.vue b/sub_pages/customer/trade/list.vue
index 21f5466..3f7e9f7 100644
--- a/sub_pages/customer/trade/list.vue
+++ b/sub_pages/customer/trade/list.vue
@@ -1,268 +1,393 @@
 <template>
-	<!-- 列表页面 -->
-	<view class="trade-list">
-		<view class="category-detail flex">
-			<view class="flex1 info">
-				<view class="title flex">
-					<view>牛油果泡泡</view>
-					<view>
-						<image src="../../../static/common/icon-kf.png" class="icon-kf m-l-15 img100"></image>
-						
-					</view>
-				</view>
-				<view class="desc">
-					规格:10支/扎
-				</view>
-				<view class="desc">
-					估重:1.3kg/扎
-				</view>
-				<view class="desc">
-					包袋:棉袋
-				</view>
-			</view>
-			<view class="info-price">
-				<view class="title">当日均价</view>
-				<view class="price">19.66</view>
-				<view class="flex desc">
-					<view class="m-l-a m-r-5">+0.76</view>
-					<view class="m-r-a m-l-5">+4.02%</view>
-				</view>
-			</view>
-		</view>
-		<view class="" style="min-height: calc(100vh - 260rpx);">
-			<no-data v-if="!list||list.length==0" style="width: 100%;"></no-data>
-			<view v-else>
-				<!-- 查询条件 -->
-				<view class="component-filter-container">
-					<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 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 class="flex1">
-						筛选<image src="../../../static/common/icon-arrow-down.png" class="icon-arrow-down"></image>
-					</view>
-				</view>
-			</view>
-			<view class="component-shop-item flex" v-for="(item,index) of list" :key="index"
-			 @click="toDetail(item)">
-				<view class="img">
-					<image class="img img100"
-						src="https://hmy-flower.oss-cn-shanghai.aliyuncs.com/ff/fff3027bd0a146478fd1f0aae816a028%E5%BE%AE%E4%BF%A1%E6%88%AA%E5%9B%BE_20240710224139.png">
-					</image>
-					<view class="level">
-						A级
-					</view>
-				</view>
+  <!-- 列表页面 -->
+  <view class="trade-list">
+    <view class="category-detail flex">
+      <view class="flex1 info">
+        <view class="title flex">
+          <view>牛油果泡泡</view>
+          <view>
+            <image src="../../../static/common/icon-kf.png" class="icon-kf m-l-15 img100"></image>
 
-				<view class="m-l-12 info-container flex1">
-					<view class="title">
-						橙色芭比
-						<view class="price">
-							¥6.60/扎
-						</view>
-					</view>
-					<view class="shop-name">
-						牛油果泡泡·白色
-					</view>
-					<view class="other-info flex">
-						<view class="m-r-15">
-							已售:7
-						</view>
-						<view class="m-r-15">
-							剩余:13
-						</view>
-						<view class="m-r-15">
-							1支/扎
-						</view>
-					</view>
-					<view class="bottom-buttons  flex">
+          </view>
+        </view>
+        <view class="desc">
+          规格:10支/扎
+        </view>
+        <view class="desc">
+          估重:1.3kg/扎
+        </view>
+        <view class="desc">
+          包袋:棉袋
+        </view>
+      </view>
+      <view class="info-price">
+        <view class="title">当日均价</view>
+        <view class="price">19.66</view>
+        <view class="flex desc">
+          <view class="m-l-a m-r-5">+0.76</view>
+          <view class="m-r-a m-l-5">+4.02%</view>
+        </view>
+      </view>
+    </view>
+    <view class="" style="min-height: calc(100vh - 260rpx);">
+      <no-data v-if="!list||list.length==0" style="width: 100%;"></no-data>
+      <view v-else>
+        <!-- 查询条件 -->
+        <view class="component-filter-container">
+          <view class="flex1" @click.stop="order_show=true">
+            {{ this.query.columnStr || '排序' }}
+            <image src="../../../static/common/icon-arrow-down.png" class="icon-arrow-down"></image>
+          </view>
+          <view class="flex1" @click.stop="level_show=true">
+            {{ this.query.levelStr || '级别' }}
+            <image src="../../../static/common/icon-arrow-down.png" class="icon-arrow-down"
+            ></image>
+          </view>
 
-						<view class="icons flex">
-							<uni-icons v-if="item.shopnum&&item.shopnum>=1" type="minus" size="32"
-								@click.stop="mulnum(item)"></uni-icons>
-							<view class="curnums" v-if="item.shopnum&&item.shopnum>=1">{{item.shopnum}}</view>
-							<uni-icons v-if="!item.shopnum||item.shopnum<=99" type="plus-filled" size="32"
-								@click.stop="addnum(item)"></uni-icons>
-						</view>
-					</view>
-				</view>
-			</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 class="flex1" @click="showSelectParams" v-if="query.category">
+            筛选
+            <image src="../../../static/common/icon-arrow-down.png" class="icon-arrow-down"></image>
+          </view>
+        </view>
+      </view>
+
+      <view class="component-shop-item flex" v-for="(item,index) of list" :key="index"
+            @click="toDetail(item)">
+        <view class="img">
+          <image class="img img100"
+                 src="https://hmy-flower.oss-cn-shanghai.aliyuncs.com/ff/fff3027bd0a146478fd1f0aae816a028%E5%BE%AE%E4%BF%A1%E6%88%AA%E5%9B%BE_20240710224139.png">
+          </image>
+          <view class="level">
+            A级
+          </view>
+        </view>
+
+        <view class="m-l-12 info-container flex1">
+          <view class="title">
+            橙色芭比
+            <view class="price">
+              ¥6.60/扎
+            </view>
+          </view>
+          <view class="shop-name">
+            牛油果泡泡·白色
+          </view>
+          <view class="other-info flex">
+            <view class="m-r-15">
+              已售:7
+            </view>
+            <view class="m-r-15">
+              剩余:13
+            </view>
+            <view class="m-r-15">
+              1支/扎
+            </view>
+          </view>
+          <view class="bottom-buttons  flex">
+
+            <view class="icons flex">
+              <uni-icons v-if="item.shopnum&&item.shopnum>=1" type="minus" size="32"
+                         @click.stop="mulnum(item)"></uni-icons>
+              <view class="curnums" v-if="item.shopnum&&item.shopnum>=1">{{ item.shopnum }}</view>
+              <uni-icons v-if="!item.shopnum||item.shopnum<=99" type="plus-filled" size="32"
+                         @click.stop="addnum(item)"></uni-icons>
+            </view>
+          </view>
+        </view>
+      </view>
 
 
-			<view class="icon-shop"  v-if="list&&list.length>0">
-				<!-- 购物图标 -->
-				<!-- 如果有购买的东西,就要附带数字了 -->
-				<view v-if="shoptotal>0" class="number">
-					{{shoptotal}}
-				</view>
-			</view>
-		</view>
+      <view class="icon-shop" v-if="list&&list.length>0">
+        <!-- 购物图标 -->
+        <!-- 如果有购买的东西,就要附带数字了 -->
+        <view v-if="shoptotal>0" class="number">
+          {{ shoptotal }}
+        </view>
+      </view>
+    </view>
 
-		<!-- 判断是否到底了,自动吧 -->
-		<footer-msg :more="page.total>0&&page.total>page.current*page.size"></footer-msg>
-		
-		
-	
-	</view>
+    <!-- 判断是否到底了,自动吧 -->
+    <footer-msg :more="page.total>0&&page.total>page.current*page.size"></footer-msg>
+
+
+    <u-picker :show="level_show" @confirm="select_level" keyName="label" :columns="level_columns"
+              @cancel="level_show=false"></u-picker>
+    <u-picker :show="order_show" @confirm="select_order" keyName="label" :columns="order_columns"
+              @cancel="order_show=false"></u-picker>
+
+    <uni-popup ref="popup_param" type="bottom">
+      <view class="component-popup_input_all" v-if="params">
+        <view class="text-center m-b-40" style="font-size: 48rpx;font-weight: 600;">商品参数设置</view>
+        <!-- 输入框-->
+        <view v-for="(item,i) in 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 class="button-space"></view>
+        <view class="button-green" style="background-color: #fff;bottom: 160rpx;color: #000"
+              @click="closeParamPopAndQuery">
+          查询
+        </view>
+
+        <view class="button-green" @click="closeParamPop">关闭</view>
+      </view>
+    </uni-popup>
+
+  </view>
 </template>
 
 <script>
-	export default {
-		data() {
-			return {
-				query: {
-					category: '',
-				},
-				shoptotal:0,
-				list:[{},{},{}]
-			}
-		},
-		async onLoad(options) {
-			// this.list = [{},{}]
-			console.log('options', options)
-			this.query.category = options.categoryId || ''
-			this.listApi = '/api/customer/flower/list'
-      this.getList()
+export default {
+  data() {
+    return {
+      query: {
+        category: '',
+        zoneId: '',
+        levelStr: '',
+        level: '',
+        column: '',
+        params: [],
+        columnStr: '',
+      },
+      params: [],
 
-      // await this.getList('post')
-			// this.
-		},
-		onReachBottom() {
-			this.page.current += 1
-			this.getMore('post')
-		},
-		async onPullDownRefresh() {
-			this.page.current = 1
-			await this.getList('post')
-			uni.stopPullDownRefresh()
-		},
-		methods: {
-			toDetail(item) {
-				uni.navigateTo({
-					url: `/sub_pages/customer/trade/detail?id=${item.id}`
-				})
-			},
-			mulnum(item) {
-				if (item.shopnum > 0) {
-					item.shopnum -= 1
-				}
-				this.shoptotal -= 1
-				this.$forceUpdate()
-			
-			},
-			addnum(item) {
-				if (item.shopnum) {
-					item.shopnum += 1
-				} else {
-					item.shopnum = 1
-				}
-				this.shoptotal += 1
-				this.$forceUpdate()
-			},
-		}
-	}
+      shoptotal: 0,
+      list: [],
+      level_show: false,
+      level_columns: [[]],
+
+      order_show: false,
+      order_columns: [[]]
+    }
+  },
+  async onLoad(options) {
+    // this.list = [{},{}]
+    console.log('options', options)
+    this.query.category = options.categoryId || ''
+    this.query.zoneId = options.zoneId || ''
+    this.listApi = '/api/customer/flower/list'
+    this.getList()
+    this.$http.request('get', '/api/code/value', {
+      params: {
+        type: 'FLOWER_LEVEL'
+      }
+    }).then(res => {
+      var data = res.data
+      this.level_columns = [data || []]
+      this.columns_levels[0].unshift({
+        label: '全部',
+        value: ''
+      })
+    })
+    this.$http.request('get', '/api/code/value', {
+      params: {
+        type: 'FLOWER_ORDER_BY'
+      }
+    }).then(res => {
+      var data = res.data
+      this.order_columns = [data || []]
+      this.order_columns[0].unshift({
+        label: '默认',
+        value: ''
+      })
+    })
+
+    // await this.getList('post')
+    // this.
+  },
+  onReachBottom() {
+    this.page.current += 1
+    this.getMore('post')
+  },
+  async onPullDownRefresh() {
+    this.page.current = 1
+    await this.getList('post')
+    uni.stopPullDownRefresh()
+  },
+  methods: {
+    updateValue(item, value) {
+      item.value = value
+      this.$set(item, 'value', value)
+      this.$forceUpdate()
+    },
+    closeParamPop() {
+      this.$refs.popup_param.close()
+    },
+    closeParamPopAndQuery() {
+      this.$refs.popup_param.close()
+      //设置参数
+      this.dto.params = []
+      for (var params of this.params) {
+        if (params.value) {
+          this.dto.params.push({
+            id: params.id,
+            value: params.value
+          })
+        }
+      }
+      this.refreshList('post')
+    },
+    async showSelectParams() {
+      //得有分类才有参数
+      this.$message.showLoading()
+      const res = await this.$http.request('get', '/api/supplier/flower/params', {
+        params: {
+          categoryId: this.dto.category
+        }
+      })
+      this.$message.hideLoading()
+      if (res.code === 0) {
+        // this.columns_params = res.data || []
+        this.dto.params = res.data || []
+        this.$refs.popup_param.open()
+      }
+
+    },
+    select_level(e) {
+      this.level_show = false
+      this.query.levelStr = e.value[0].label
+      this.query.level = e.value[0].value
+      this.refreshList('post')
+
+    },
+    select_order(e) {
+      this.order_show = false
+      this.query.columnStr = e.value[0].label
+      this.query.column = e.value[0].value
+      this.refreshList('post')
+
+    },
+    toDetail(item) {
+      uni.navigateTo({
+        url: `/sub_pages/customer/trade/detail?id=${item.id}`
+      })
+    },
+    mulnum(item) {
+      if (item.shopnum > 0) {
+        item.shopnum -= 1
+      }
+      this.shoptotal -= 1
+      this.$forceUpdate()
+
+    },
+    addnum(item) {
+      if (item.shopnum) {
+        item.shopnum += 1
+      } else {
+        item.shopnum = 1
+      }
+      this.shoptotal += 1
+      this.$forceUpdate()
+    },
+  }
+}
 </script>
 
 <style lang="scss">
-	.trade-list {
-		padding: 24rpx 30rpx;
+.trade-list {
+  padding: 24rpx 30rpx;
 
-		.category-detail {
-			padding: 22rpx 38rpx;
-			margin-bottom: 10rpx;
-			background-color: #E1F0E7;
-			border-radius: 8rpx;
+  .category-detail {
+    padding: 22rpx 38rpx;
+    margin-bottom: 10rpx;
+    background-color: #E1F0E7;
+    border-radius: 8rpx;
 
-			.info {
-				.title {
-					font-weight: 600;
-					font-size: 36rpx;
-					color: #000000;
-					line-height: 50rpx;
-				}
+    .info {
+      .title {
+        font-weight: 600;
+        font-size: 36rpx;
+        color: #000000;
+        line-height: 50rpx;
+      }
 
-				.icon-kf {
-					width: 44rpx;
-					height: 44rpx;
-				}
+      .icon-kf {
+        width: 44rpx;
+        height: 44rpx;
+      }
 
-				.desc {
-					font-weight: 400;
-					font-size: 24rpx;
-					color: #666666;
-					line-height: 34rpx;
-					margin-top: 8rpx;
-				}
-			}
+      .desc {
+        font-weight: 400;
+        font-size: 24rpx;
+        color: #666666;
+        line-height: 34rpx;
+        margin-top: 8rpx;
+      }
+    }
 
-			.info-price {
-				padding: 22rpx;
-				text-align: center;
-				background: #FFFFFF;
-				border-radius: 8rpx;
-				min-width: 260rpx;
-				.title {
-					font-weight: 400;
-					font-size: 24rpx;
-					color: #000000;
-					line-height: 34rpx;
-				}
+    .info-price {
+      padding: 22rpx;
+      text-align: center;
+      background: #FFFFFF;
+      border-radius: 8rpx;
+      min-width: 260rpx;
 
-				.price {
-					font-weight: 600;
-					font-size: 32rpx;
-					color: #BF0000;
-					line-height: 44rpx;
-					margin-top: 12rpx;
-				}
+      .title {
+        font-weight: 400;
+        font-size: 24rpx;
+        color: #000000;
+        line-height: 34rpx;
+      }
 
-				.desc {
-					font-weight: 400;
-					font-size: 24rpx;
-					color: #666666;
-					line-height: 34rpx;
-					margin-top: 12rpx;
-				}
-			}
-		}
+      .price {
+        font-weight: 600;
+        font-size: 32rpx;
+        color: #BF0000;
+        line-height: 44rpx;
+        margin-top: 12rpx;
+      }
+
+      .desc {
+        font-weight: 400;
+        font-size: 24rpx;
+        color: #666666;
+        line-height: 34rpx;
+        margin-top: 12rpx;
+      }
+    }
+  }
 
 
-	.icon-shop {
-		position: absolute;
-		position: fixed;
-	
-		background-image: url('../../../static/images/customer/gwc.png');
-		width: 140rpx;
-		height: 140rpx;
-		// box-shadow: 0rpx 4rpx 22rpx 0rpx rgba(0, 0, 0, 0.16);
-		border-radius: 50%;
-		right: 40rpx;
-		bottom: 300rpx;
-		background-size: 100% 100%;
-	
-		.number {
-			width: 30rpx;
-			height: 30rpx;
-			background: #F20000;
-			line-height: 30rpx;
-			text-align: center;
-			position: absolute;
-			right: 14rpx;
-			top: 14rpx;
-			color: #FFFFFF;
-			border-radius: 50%;
-			font-size: 24rpx;
-		}
-	
-	}
-	
-	}
+  .icon-shop {
+    position: absolute;
+    position: fixed;
+
+    background-image: url('../../../static/images/customer/gwc.png');
+    width: 140rpx;
+    height: 140rpx;
+    // box-shadow: 0rpx 4rpx 22rpx 0rpx rgba(0, 0, 0, 0.16);
+    border-radius: 50%;
+    right: 40rpx;
+    bottom: 300rpx;
+    background-size: 100% 100%;
+
+    .number {
+      width: 30rpx;
+      height: 30rpx;
+      background: #F20000;
+      line-height: 30rpx;
+      text-align: center;
+      position: absolute;
+      right: 14rpx;
+      top: 14rpx;
+      color: #FFFFFF;
+      border-radius: 50%;
+      font-size: 24rpx;
+    }
+
+  }
+
+}
 </style>
\ No newline at end of file

--
Gitblit v1.9.3