From 3ae92c6fa55922af770ebc8e9355c5c0255e69cd Mon Sep 17 00:00:00 2001
From: xuxy <1059738716@qq.com>
Date: 星期一, 12 八月 2024 21:54:23 +0800
Subject: [PATCH] update花店详情
---
sub_pages/customer/shop/shop-trade.vue | 43 --------
sub_pages/customer/shop/shop.vue | 186 ++++++++++++++++++++++++++----------
sub_pages/customer/trade/detail.vue | 28 ++++
3 files changed, 160 insertions(+), 97 deletions(-)
diff --git a/sub_pages/customer/shop/shop-trade.vue b/sub_pages/customer/shop/shop-trade.vue
index dbd7a58..4b3513b 100644
--- a/sub_pages/customer/shop/shop-trade.vue
+++ b/sub_pages/customer/shop/shop-trade.vue
@@ -104,47 +104,7 @@
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() {
-
- 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) {
//去商品列表页面
console.log('toDetailList', this.supplierId)
@@ -155,6 +115,7 @@
changeType(item) {
this.query.categoryId = item.id || ''
this.currentCategory = item
+ //拼接二级分类,然后查询商品列表
},
diff --git a/sub_pages/customer/shop/shop.vue b/sub_pages/customer/shop/shop.vue
index d653f30..2e44cdb 100644
--- a/sub_pages/customer/shop/shop.vue
+++ b/sub_pages/customer/shop/shop.vue
@@ -53,7 +53,7 @@
</view>
</view>
<view class="brand-info">
- <view v-if="flg==='0'" class="brand-info-0">
+ <view v-show="flg==='0'||flg==='1'" class="brand-info-0">
<view class="search-container flex"
style="padding-left: 20rpx;padding-right: 20rpx;padding-top: 20rpx">
<view class="flex1 input">
@@ -67,7 +67,7 @@
</u-input>
</view>
</view>
- <view class="component-filter-container" style="padding-top: 12rpx;">
+ <view class="component-filter-container" style="padding-top: 12rpx;" v-show="flg==='0'">
<view class="flex1" @click.stop="$refs.popup_column.open()">
排序{{ query.columnStr&&('-'+query.columnStr) || '' }}
<image src="../../../static/common/icon-arrow-down.png" class="icon-arrow-down"></image>
@@ -77,68 +77,78 @@
<image src="../../../static/common/icon-arrow-down.png" class="icon-arrow-down"></image>
</view>
</view>
- <view class="top-title m-t-12">
+ <view class="top-title m-t-12" v-show="flg==='0'">
报价已包含打包费、材料费、交易佣金
</view>
- <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="item.cover" lazy-load>
- </image>
- <view class="level">
- {{item.levelStr||''}}
- </view>
+ <no-data v-if="(!list||list.length==0)&&true" style="width: 100%;margin-top: 120rpx;"></no-data>
+ <view class="flex m-t-12 flex-wrap-normal">
+ <view class="type-list" v-if="flg==='1'">
+ <view v-for="(item,index) of catgoryTree" @click="changeType(item)"
+ :class="[query.categoryRoot===item.id?'current':'']" :key="index" class="p10 flex type-item">
+ {{item.name || '-'}}
</view>
+ </view>
+ <view class="flex1">
+
+
+ <view class="component-shop-item flex" v-for="(item,index) of list" :key="index" :class="flg==='1'?'flg-category':''">
+ <view class="img" @click.stop="toDetail(item)">
+ <image class="img img100" :src="item.cover" lazy-load>
+ </image>
+ <view class="level">
+ {{item.levelStr||''}}
+ </view>
+ </view>
- <view class="m-l-12 info-container flex1">
- <view class="title" @click.stop="toDetail(item)">
- {{item.name}}
- <view class="price">
- ¥{{item.price}}/扎
- </view>
- </view>
- <view class="shop-name" @click.stop="toDetail(item)">
- {{item.categoryStr}}
- </view>
- <view class="other-info flex" @click.stop="toDetail(item)">
- <view class="m-r-15">
- 已售:{{item.sales || 0}}
- </view>
- <view class="m-r-15">
- 剩余:{{item.stock || 0}}
- </view>
- <view class="m-r-15">
- {{item.unit}}
- </view>
- </view>
- <view class="bottom-buttons flex">
- <view class="m-l-0 m-r-a">
- <view class="m-r-15 desc-gray other-info">
- 颜色:{{item.color||'-'}}
+ <view class="m-l-12 info-container flex1">
+ <view class="title" @click.stop="toDetail(item)">
+ {{item.name}}
+ <view class="price">
+ ¥{{item.price}}/扎
</view>
</view>
- <view class="icons flex">
- <uni-icons v-if="item.shopnum&&item.shopnum>=1" type="minus" size="32"
- @click.stop="addnum(item,-1)"></uni-icons>
- <view class="curnums" @click.stop="updateItemNum(item)"
- v-if="item.shopnum&&item.shopnum>=1">
- {{ item.shopnum }}
+ <view class="shop-name" @click.stop="toDetail(item)">
+ {{item.categoryStr}}
+ </view>
+ <view class="other-info flex" @click.stop="toDetail(item)">
+ <view class="m-r-15">
+ 已售:{{item.sales || 0}}
</view>
- <uni-icons v-if="!item.shopnum||item.shopnum<=99" type="plus-filled" size="32"
- @click.stop="addnum(item,1)"></uni-icons>
+ <view class="m-r-15">
+ 剩余:{{item.stock || 0}}
+ </view>
+ <view class="m-r-15">
+ {{item.unit}}
+ </view>
+ </view>
+ <view class="bottom-buttons flex">
+ <view class="m-l-0 m-r-a">
+ <view class="m-r-15 desc-gray other-info">
+ 颜色:{{item.color||'-'}}
+ </view>
+ </view>
+ <view class="icons flex">
+ <uni-icons v-if="item.shopnum&&item.shopnum>=1" type="minus" size="32"
+ @click.stop="addnum(item,-1)"></uni-icons>
+ <view class="curnums" @click.stop="updateItemNum(item)"
+ 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,1)"></uni-icons>
+ </view>
</view>
</view>
</view>
</view>
-
+ </view>
</view>
- <view v-show="flg==='1'" class="brand-info-1">
+ <!-- <view v-show="flg==='1'" class="brand-info-1">
<trade :hidefooter="true" :supplierId="id" :catgoryTree="catgoryTree" v-if="catgoryTree" ref="trade">
</trade>
- <!-- // 构建一个分类树 -->
- <!-- catgoryTree -->
-
</view>
+ -->
<view v-if="flg==='2'" class="brand-info-3">
<view class="title">
基础信息
@@ -252,6 +262,7 @@
levelStr: '',
level: '',
name: '',
+ categoryRoot:'',
},
level_show: false,
level_columns: [
@@ -399,7 +410,13 @@
},
async changeTab(flg) {
console.log('changeTab', flg)
+ if ('0' === ('' + flg)) {
+ //刷新list数据
+ this.query.categoryRoot = ''
+ this.refreshList('post')
+ }
if ('1' === ('' + flg)) {
+ this.list = []
if (!this.catgoryTree) {
this.$message.showLoading()
const {
@@ -416,18 +433,34 @@
if (code === 0) {
// data 分类树
this.catgoryTree = data || []
- let tmp = this
- this.$nextTick(() => {
- tmp.$refs.trade.refInit(tmp.catgoryTree)
- })
+ // let tmp = this
+ // this.$nextTick(() => {
+ // tmp.$refs.trade.refInit(tmp.catgoryTree)
+ // })
}
this.$message.hideLoading()
}
+ //如果存在第一个分类,根据一级分类查询
+ if(this.catgoryTree.length>0){
+ this.query.categoryRoot =this.catgoryTree[0].id
+ //然后刷新
+ this.refreshList('post')
+
+ }
+
}
this.flg = '' + flg
//如果没有加载数据,需要加载一下
+ },
+ changeType(item) {
+ if(item.id!==this.query.categoryRoot){
+ this.query.categoryRoot = item.id || ''
+ this.refreshList('post')
+ //拼接二级分类,然后查询商品列表
+ }
+
},
buttonSearchFlow() {
// this.query.name = this.search_flow || ''
@@ -518,6 +551,55 @@
padding: 40rpx 32rpx;
height: calc(100vh - 450rpx);
padding-top: 0rpx;
+
+ .type-list {
+ max-width: 140rpx;
+ min-width: 140rpx;
+ background: #EEF7F5;
+ border-radius: 8rpx;
+ min-height: calc(100vh - 600rpx);
+ // max-height: calc(100vh - 600rpx);
+ overflow-y: scroll;
+ margin-right: 10rpx;
+
+ .type-item {
+ text-align: center;
+ font-weight: 400;
+ font-size: 24rpx;
+ color: #000000;
+ display: block;
+ line-height: 60rpx;
+ // padding-left: 30rpx;
+ // padding-right: 30rpx;
+ }
+
+ .type-item.current {
+ font-weight: 600;
+ color: #04BA97;
+ }
+ }
+ .flg-category.component-shop-item{
+ .img{
+ width: 140rpx;
+ height: 140rpx;
+ margin-top: 10rpx;
+ }
+ .info-container{
+ .title {
+ margin-top: 0rpx;
+ }
+ .shop-name{
+
+ }
+ .other-info {
+ margin-bottom: 60rpx;
+ }
+ .bottom-buttons{
+ bottom: -50rpx;
+ }
+ }
+
+ }
.brand-info-0 {
.top-title {
diff --git a/sub_pages/customer/trade/detail.vue b/sub_pages/customer/trade/detail.vue
index e0db91c..97e4269 100644
--- a/sub_pages/customer/trade/detail.vue
+++ b/sub_pages/customer/trade/detail.vue
@@ -9,17 +9,25 @@
<swiper-item v-if="dto.video">
<video :src="dto.video" class="top-img" :auto-pause-if-navigate="true"
style="display: block;margin: 0 auto;"></video>
-
+ <view class="index-tag">
+ 1/{{(dto.video&&1||0)+(dto.cover&&1||0)+(dto.bannerList&&dto.bannerList.length||0)}}
+ </view>
</swiper-item>
<swiper-item v-for="(url, index) in dto.bannerList" :key="index">
- <image class="top-img" :lazy-load="true" mode="scaleToFill" @click="previewImg(url)"
- :src="url">
+ <image class="top-img" :lazy-load="true" mode="scaleToFill" @click="previewImg(url)" :src="url">
</image>
+ <view class="index-tag">
+ {{index+1+(dto.video&&1)}}/{{(dto.video&&1||0)+(dto.cover&&1||0)+(dto.bannerList&&dto.bannerList.length||0)}}
+ </view>
</swiper-item>
<swiper-item>
- <image :src="dto.cover" :lazy-load="true" @click="previewImg(dto.cover)" class="top-img" mode="scaleToFill">
+ <image :src="dto.cover" :lazy-load="true" @click="previewImg(dto.cover)" class="top-img"
+ mode="scaleToFill">
</image>
+ <view class="index-tag">
+ {{(dto.bannerList&&dto.bannerList.length||0)+1+(dto.video&&1||0)}}/{{(dto.video&&1||0)+(dto.cover&&1||0)+(dto.bannerList&&dto.bannerList.length||0)}}
+ </view>
</swiper-item>
@@ -529,6 +537,18 @@
swiper-item {
background-color: #fff;
border-radius: 8rpx;
+ position: relative;
+ .index-tag{
+ position: absolute;
+ color: #fff;
+ font-size: 22rpx;
+ right: 10rpx;
+ bottom: 10rpx;
+ padding: 10rpx 20rpx;
+ text-align: center;
+ background-color: #545454;
+ border-radius: 30rpx;
+ }
}
}
--
Gitblit v1.9.3