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