From b3b79d1fbbb8a86b2f39bf1e3cc34449664a8543 Mon Sep 17 00:00:00 2001
From: xuxueyang <xuxy@fengyuntec.com>
Date: 星期一, 05 八月 2024 10:47:56 +0800
Subject: [PATCH] 1
---
sub_pages/customer/trade/trade.vue | 210 ++++++++++++++++++++++++++++++++++++++++++----------
1 files changed, 169 insertions(+), 41 deletions(-)
diff --git a/sub_pages/customer/trade/trade.vue b/sub_pages/customer/trade/trade.vue
index 4539785..b702cbf 100644
--- a/sub_pages/customer/trade/trade.vue
+++ b/sub_pages/customer/trade/trade.vue
@@ -1,15 +1,17 @@
<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 @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 +19,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 +64,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 +96,10 @@
mapState
} from 'vuex'
export default {
+ props: {
+ hidefooter: false,
+ catgoryTree: [],
+ },
data() {
return {
list: [],
@@ -89,32 +108,136 @@
name: '',
categoryId: '',
},
+ currentCategory: {}
}
},
+ // #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: {
+ 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()
@@ -127,8 +250,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 +267,7 @@
},
changeType(item) {
this.query.categoryId = item.id || ''
+ this.currentCategory = item
},
@@ -193,7 +319,7 @@
margin: 0rpx 30rpx 20rpx 30rpx;
}
-
+
.type-list {
max-width: 178rpx;
@@ -246,7 +372,7 @@
width: 164rpx;
// width: 690rpx;
// max-width: 690rpx;
- height: 266rpx;
+ min-height: 266rpx;
background: #FFFFFF;
margin-bottom: 44rpx;
max-width: 164rpx;
@@ -264,6 +390,8 @@
font-size: 28rpx;
color: #000000;
line-height: 40rpx;
+ min-height: 80rpx;
+ text-align: center;
}
.desc {
--
Gitblit v1.9.3