From 3d917ba8ceae67ce6a2c670c8a08ad34a3d8cad7 Mon Sep 17 00:00:00 2001 From: xuxueyang <xuxy@fengyuntec.com> Date: 星期三, 07 八月 2024 14:08:13 +0800 Subject: [PATCH] 1 --- sub_pages/customer/trade/trade.vue | 273 +++++++++++++++++++++++++++++++++++++++++++----------- 1 files changed, 215 insertions(+), 58 deletions(-) diff --git a/sub_pages/customer/trade/trade.vue b/sub_pages/customer/trade/trade.vue index 4539785..9419328 100644 --- a/sub_pages/customer/trade/trade.vue +++ b/sub_pages/customer/trade/trade.vue @@ -1,15 +1,25 @@ <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="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="请输入分类名称" v-model="query.name"> + <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" @tap="buttonSearchFlow"></uni-icons> + <uni-icons color="#20613D" type="search" size="24" @click="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;"> </view> @@ -17,50 +27,43 @@ <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" - @click.stop="previewImg(item.imageUrl)"> + <!-- @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> - <view class="price">¥29.01-30.01</view> + <view class="price">¥{{item.priceLow || 0}}-{{item.priceHigh||0}}</view> + <view class="desc">在售 {{item.stock||'0'}} 扎</view> + </view> - <view class="desc">在售14410扎</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 style="padding-bottom:100rpx"> - </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 +72,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&¤tCategory.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 +104,10 @@ mapState } from 'vuex' export default { + props: { + hidefooter: false, + catgoryTree: [], + }, data() { return { list: [], @@ -89,50 +116,177 @@ 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() { - + 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) { - this.query.categoryId = this.list[0].id || '' + 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() { - //根据名称查询 - 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 || '' - } else { - this.query.categoryId = '' - } - }).finally(() => { - this.$message.hideLoading() - }) + + 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) { //去商品列表页面 @@ -142,6 +296,7 @@ }, changeType(item) { this.query.categoryId = item.id || '' + this.currentCategory = item }, @@ -193,7 +348,7 @@ margin: 0rpx 30rpx 20rpx 30rpx; } - + .type-list { max-width: 178rpx; @@ -246,7 +401,7 @@ width: 164rpx; // width: 690rpx; // max-width: 690rpx; - height: 266rpx; + min-height: 266rpx; background: #FFFFFF; margin-bottom: 44rpx; max-width: 164rpx; @@ -264,6 +419,8 @@ font-size: 28rpx; color: #000000; line-height: 40rpx; + min-height: 80rpx; + text-align: center; } .desc { -- Gitblit v1.9.3