From bd97934c268b87bbbc1677dbac51b0900ee7c505 Mon Sep 17 00:00:00 2001 From: xuxueyang <xuxy@fengyuntec.com> Date: 星期四, 01 八月 2024 17:18:18 +0800 Subject: [PATCH] 1 --- sub_pages/customer/trade/list.vue | 137 +++++++++++++++++++++++++++++++-------------- 1 files changed, 94 insertions(+), 43 deletions(-) diff --git a/sub_pages/customer/trade/list.vue b/sub_pages/customer/trade/list.vue index fe3f11d..cbf772a 100644 --- a/sub_pages/customer/trade/list.vue +++ b/sub_pages/customer/trade/list.vue @@ -4,42 +4,42 @@ <view class="category-detail flex" v-if="query.category"> <view class="flex1 info"> <view class="title flex"> - <view>{{categoryInfo.name||'-'}}</view> - <view> - <image src="../../../static/common/icon-kf.png" class="icon-kf m-l-15 img100"></image> - - </view> + {{categoryInfo.name||'-'}} + <image src="../../../static/common/icon-kf.png" class="icon-kf m-l-15 img100"></image> </view> <view class="desc"> - 规格:{{categoryInfo.unit}} + 规格:{{categoryInfo.unit || '暂无'}} </view> <view class="desc"> - 颜色:{{categoryInfo.color}} + 颜色:{{categoryInfo.color || '暂无'}} </view> - <!-- <view class="desc"> + <!-- <view class="desc"> 包袋:棉袋 </view> --> </view> <view class="info-price"> <view class="title">当日均价</view> - <view class="price">19.66</view> + <view class="price">{{categoryInfo.avePrice||'暂无'}}</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 class="m-l-a m-r-5"> + {{categoryInfo.avePriceDifference&&categoryInfo.avePriceDifference>=0?'+':''}}{{categoryInfo.avePriceDifference||0}} + </view> + <view class="m-r-a m-l-5"> + {{categoryInfo.avePriceDifferenceRate&&categoryInfo.avePriceDifferenceRate>=0?'+':''}}{{categoryInfo.avePriceDifferenceRate||0}}% + </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> <!-- 查询条件 --> <view class="component-filter-container"> <view class="flex1" @click.stop="order_show=true"> - {{ this.query.columnStr || '排序' }} + 排序{{ query.columnStr&&('-'+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 || '级别' }} + {{ query.levelStr || '级别' }} <image src="../../../static/common/icon-arrow-down.png" class="icon-arrow-down"></image> </view> @@ -55,14 +55,14 @@ </view> </view> </view> + <no-data v-if="!list||list.length===0" style="width: 100%;"></no-data> <view class="component-shop-item flex" v-for="(item,index) of list" :key="index"> <view class="img" @click.stop="toDetail(item)"> - <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 class="img img100" :class="[!item.stock?'component-stock-zero-tmp':'']" :src="item.cover"> </image> <view class="level"> - {{levelStr||''}} + {{item.levelStr||''}} </view> </view> @@ -79,10 +79,10 @@ </view> <view class="other-info flex"> <view class="m-r-15"> - 已售:{{item.sales}} + 已售:{{item.sales||0}} </view> <view class="m-r-15"> - 剩余:{{item.stock}} + 剩余:{{item.stock||0}} </view> <view class="m-r-15"> {{item.unit}} @@ -129,20 +129,24 @@ <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"> + <view class="value-item" @click="updateValue(item,each)" + :class="[item.value.indexOf(each)>=0?'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> + <view class="button-green" + style="background-color: #fff;border: 2rpx solid #666; color: #666;min-width: 240rpx;left: 40rpx;right: unset;" + @click="closeParamPop"> + 关闭 + </view> - <view class="button-green" @click="closeParamPop">关闭</view> + <view class="button-green" style="min-width: 240rpx;right: 40rpx;left: unset;" + @click="closeParamPopAndQuery">查询 + </view> + </view> </view> </uni-popup> @@ -187,6 +191,11 @@ this.query.category = options.categoryId || '' this.query.zoneId = options.zoneId || '' this.query.name = options.name || '' + if (this.query.name) { + uni.setNavigationBarTitle({ + title: '商品列表-' + this.query.name + }) + } this.listApi = '/api/customer/flower/list' this.getList('post') this.$http.request('get', '/api/code/value', { @@ -196,7 +205,7 @@ }).then(res => { var data = res.data this.level_columns = [data || []] - this.columns_levels[0].unshift({ + this.level_columns[0].unshift({ label: '全部', value: '' }) @@ -216,12 +225,12 @@ if (this.query.category) { await this.getDetail() } + this.refreshShopNum() // await this.getList('post') // this. }, onReachBottom() { - this.page.current += 1 this.getMore('post') }, async onPullDownRefresh() { @@ -229,7 +238,19 @@ await this.getList('post') uni.stopPullDownRefresh() }, + async onShow() { + if (this.sign['shopnum']) { + await this.$store.dispatch('sign_clear', 'shopnum'); + //重新获取商品数目 + //只需要刷新列表的部分信息即可 + this.getList('post') + } + this.refreshShopNum() + }, methods: { + async refreshShopNum() { + this.shoptotal = await this.$store.dispatch('countShopping'); + }, async getDetail() { this.$message.showLoading() //获取到分类的详情信息 @@ -247,8 +268,19 @@ } }, updateValue(item, value) { - item.value = value - this.$set(item, 'value', value) + // item.value = value + // this.$set(item, 'value', value) + if (item.name == '优点' || item.name === '缺点') { + if (item.value.indexOf(value) < 0) { + item.value.push(value) + } else { + item.value.splice(item.value.indexOf(value), 1) + } + } else { + //单选 + item.value = [value] + } + this.$forceUpdate() }, closeParamPop() { @@ -256,13 +288,13 @@ }, 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.query.params = [] + for (var param of this.params) { + if (param.value && param.value.length > 0) { + this.query.params.push({ + id: param.id, + value: param.value.join(',') }) } } @@ -271,7 +303,7 @@ async showSelectParams() { //得有分类才有参数 this.$message.showLoading() - const res = await this.$http.request('get', '/api/supplier/flower/params', { + const res = await this.$http.request('get', '/api/customer/flower/params', { params: { categoryId: this.query.category } @@ -280,12 +312,20 @@ if (res.code === 0) { // this.columns_params = res.data || [] this.params = res.data || [] + for (var k of this.params) { + if (!k.value) { + k.value = [] + } else { + k.value = k.value.split(',') || [] + } + } this.$refs.popup_param.open() } }, select_level(e) { this.level_show = false + console.log('select_level', e) this.query.levelStr = e.value[0].label this.query.level = e.value[0].value this.refreshList('post') @@ -319,9 +359,17 @@ }) return } + if (!item.stock) { + item.stock = 0 + } if (!item.shopnum) { item.shopnum = 0 } + if (addnum > 0 & item.shopnum + addnum > item.stock) { + this.$message.showToast('库存不足,无法修改') + return + } + if (item.shopnum + addnum >= 0) { } else { @@ -330,7 +378,7 @@ this.$message.showLoading() const { code - } = await http.request('post', '/api/customer/flower/cart/change-num', { + } = await this.$http.request('post', '/api/customer/flower/cart/change-num', { data: { id: item.id, num: addnum @@ -339,8 +387,11 @@ this.$message.hideLoading() if (code === 0) { item.shopnum += addnum + this.$forceUpdate() + + this.refreshShopNum() + } - this.$forceUpdate() }, } } @@ -361,7 +412,7 @@ font-weight: 600; font-size: 36rpx; color: #000000; - line-height: 50rpx; + line-height: 44rpx; } .icon-kf { -- Gitblit v1.9.3