bug修改

This commit is contained in:
DESKTOP-GMUNQ1B\k 2024-04-07 17:16:33 +08:00
parent 33a80b53cd
commit 7527061444
11 changed files with 1697 additions and 1434 deletions
components
WaterfallsFlowItem
popups
pages.json
pages
admin/storeDiy
cloud_warehouse/home
columnGoods/goods_search
payment
plantGrass/plant_search
store/home
whole_sale

@ -1,447 +1,451 @@
<template> <template>
<view v-if="type == 0" class="wf-item-page wf-page0" :style="viewColor"> <view v-if="type == 0" class="wf-item-page wf-page0" :style="viewColor">
<view class='pictrue'> <view class='pictrue'>
<easy-loadimage mode="widthFix" :image-src="item.image"></easy-loadimage> <easy-loadimage mode="widthFix" :image-src="item.image"></easy-loadimage>
<view v-if="item.stock == 0" class="sell_out">已售罄</view> <view v-if="item.stock == 0" class="sell_out">已售罄</view>
<view v-if="item.border_pic" :style="{ backgroundImage: `url(${item.border_pic})` }" class="border-picture"> <view v-if="item.border_pic" :style="{ backgroundImage: `url(${item.border_pic})` }" class="border-picture">
</view> </view>
</view> </view>
<view class="text"> <view class="text">
<view class='name line2'>{{item.store_name}}</view> <view class='name line2'>{{item.store_name}}</view>
<view class="acea-row row-middle"> <view class="acea-row row-middle">
<view><text class="store_info">{{item.store_info}}</text></view> <view><text class="store_info">{{item.store_info}}</text></view>
</view> </view>
<view class="item_tags"> <view class="item_tags">
<!-- 后端返回的标签 --> <!-- 后端返回的标签 -->
<text class="tags_item delivery" :class="{'delivery_yellow': sale_type==2&&i==0}" <text class="tags_item delivery" :class="{'delivery_yellow': e =='批发价'?true:false}"
v-for="(e, i) in item.mer_label_name" :key="i">{{e}}</text> v-for="(e, i) in item.mer_label_name" :key="i">{{e}}</text>
<!-- 商品标签 -->
<!-- <text v-if="item.product_type == 0 && item.merchant.type_name" class="font-bg-red b-color">{{item.merchant.type_name}}</text> <!-- 商品标签 -->
<!-- <text v-if="item.product_type == 0 && item.merchant.type_name" class="font-bg-red b-color">{{item.merchant.type_name}}</text>
<text v-else-if="item.product_type == 0 && item.merchant.is_trader" class="font-bg-red b-color">自营</text> --> <text v-else-if="item.product_type == 0 && item.merchant.is_trader" class="font-bg-red b-color">自营</text> -->
<text v-if="item.product_type != 0" <text v-if="item.product_type != 0"
:class="'font_bg-red type'+item.product_type">{{item.product_type == 1 ? "秒杀" : item.product_type == 2 ? "预售" : item.product_type == 3 ? "助力" : item.product_type == 4 ? "拼团" : ""}}</text> :class="'font_bg-red type'+item.product_type">{{item.product_type == 1 ? "秒杀" : item.product_type == 2 ? "预售" : item.product_type == 3 ? "助力" : item.product_type == 4 ? "拼团" : ""}}</text>
<text class="tags_item ticket" v-if="item.issetCoupon">领券</text> <text class="tags_item ticket" v-if="item.issetCoupon">领券</text>
<text class="tags_item delivery" v-if="item.delivery_free == 1">包邮</text> <text class="tags_item delivery" v-if="item.delivery_free == 1">包邮</text>
</view> </view>
<view class="acea-row row-middle" style="display: flex;justify-content: space-between;"> <view class="acea-row row-middle" style="display: flex;justify-content: space-between;">
<view class='money'><text class='num'>{{item.price}}</text><text <view class='money'><text class='num'>{{item.price}}</text><text
style="color: #ccc;">/{{item.unit_name}}</text></view> style="color: #ccc;">/{{item.unit_name}}</text></view>
<image class="car" src="@/static/assets/car.png"></image> <image class="car" src="@/static/assets/car.png"></image>
</view> </view>
<view v-if="item.show_svip_info && item.show_svip_info.show_svip_price && item.svip_price" <view v-if="item.show_svip_info && item.show_svip_info.show_svip_price && item.svip_price"
class="acea-row row-middle svip"> class="acea-row row-middle svip">
<text class='vip-money'>{{item.svip_price}}</text> <text class='vip-money'>{{item.svip_price}}</text>
<view class="vipImg"> <view class="vipImg">
<image :src="`${domain}/static/images/svip.png`"></image> <image :src="`${domain}/static/images/svip.png`"></image>
</view> </view>
</view> </view>
</view> </view>
</view> </view>
<view v-else-if="type == 1" class="wf-page1" :style="viewColor"> <view v-else-if="type == 1" class="wf-page1" :style="viewColor">
<view class='pictrue'> <view class='pictrue'>
<easy-loadimage mode="widthFix" :image-src="item.image"></easy-loadimage> <easy-loadimage mode="widthFix" :image-src="item.image"></easy-loadimage>
<view v-if="item.stock == 0" class="sell_out">已售罄</view> <view v-if="item.stock == 0" class="sell_out">已售罄</view>
<view v-if="item.border_pic" :style="{ backgroundImage: `url(${item.border_pic})` }" class="border-picture"> <view v-if="item.border_pic" :style="{ backgroundImage: `url(${item.border_pic})` }" class="border-picture">
</view> </view>
</view> </view>
<view class='text'> <view class='text'>
<view class='name line2'>{{item.store_name}}</view> <view class='name line2'>{{item.store_name}}</view>
<view class="acea-row row-middle"> <view class="acea-row row-middle">
<view class="store_info"><text>{{item.store_info}}</text></view> <view class="store_info"><text>{{item.store_info}}</text></view>
</view> </view>
<view class="item_tags acea-row"> <view class="item_tags acea-row">
<text class="tags_item delivery_yellow" v-if="sale_type == 2">批发价</text> <text class="tags_item delivery_yellow" v-if="sale_type == 2">批发价</text>
<!-- 商品标签 --> <!-- 商品标签 -->
<!-- <text v-if="item.merchant.type_name && item.product_type == 0" class="font-bg-red b-color">{{item.merchant.type_name}}</text> <!-- <text v-if="item.merchant.type_name && item.product_type == 0" class="font-bg-red b-color">{{item.merchant.type_name}}</text>
<text v-else-if="item.merchant.is_trader && item.product_type == 0" class="font-bg-red b-color">自营</text> --> <text v-else-if="item.merchant.is_trader && item.product_type == 0" class="font-bg-red b-color">自营</text> -->
<text v-if="item.product_type != 0" <text v-if="item.product_type != 0"
:class="'font_bg-red type'+item.product_type">{{item.product_type == 1 ? "秒杀" : item.product_type == 2 ? "预售" : item.product_type == 3 ? "助力" : item.product_type == 4 ? "拼团" : ""}}</text> :class="'font_bg-red type'+item.product_type">{{item.product_type == 1 ? "秒杀" : item.product_type == 2 ? "预售" : item.product_type == 3 ? "助力" : item.product_type == 4 ? "拼团" : ""}}</text>
<text class="tags_item ticket" v-if="item.issetCoupon">领券</text> <text class="tags_item ticket" v-if="item.issetCoupon">领券</text>
<text class="tags_item delivery" v-if="item.delivery_free == 1">包邮</text> <text class="tags_item delivery" v-if="item.delivery_free == 1">包邮</text>
</view> </view>
<view class='money'> <view class='money'>
<text class='num'>{{item.price}}</text> <text class='num'>{{item.price}}</text>
</view> </view>
<view v-if="item.show_svip_info.show_svip && item.show_svip_info.show_svip_price" <view v-if="item.show_svip_info.show_svip && item.show_svip_info.show_svip_price"
class="acea-row row-middle svip"> class="acea-row row-middle svip">
<text class='vip-money'>{{item.svip_price}}</text> <text class='vip-money'>{{item.svip_price}}</text>
<view class="vipImg"> <view class="vipImg">
<image :src="`${domain}/static/images/svip.png`"></image> <image :src="`${domain}/static/images/svip.png`"></image>
</view> </view>
</view> </view>
<view class="score">{{item.rate}}评分 {{item.reply_count}}条评论</view> <view class="score">{{item.rate}}评分 {{item.reply_count}}条评论</view>
<view class="company" v-if="item.merchant" @click.stop="goShop(item.merchant.mer_id)"> <view class="company" v-if="item.merchant" @click.stop="goShop(item.merchant.mer_id)">
<text class="line1">{{item.merchant.mer_name}}</text> <text class="line1">{{item.merchant.mer_name}}</text>
<view class="flex" v-if="isStore != '1'"> <view class="flex" v-if="isStore != '1'">
进店 进店
<text class="iconfont icon-xiangyou"></text> <text class="iconfont icon-xiangyou"></text>
</view> </view>
</view> </view>
</view> </view>
<!-- 返佣 --> <!-- 返佣 -->
<block v-if="item.max_extension>0 && (item.product_type == 0 || item.product_type == 2)"> <block v-if="item.max_extension>0 && (item.product_type == 0 || item.product_type == 2)">
<view class="foot-bar"> <view class="foot-bar">
<text class="iconfont icon-fenxiang"></text> <text class="iconfont icon-fenxiang"></text>
最高赚 ¥{{item.max_extension}} 最高赚 ¥{{item.max_extension}}
</view> </view>
</block> </block>
</view> </view>
</template> </template>
<script> <script>
// +---------------------------------------------------------------------- // +----------------------------------------------------------------------
// | CRMEB [ CRMEB ] // | CRMEB [ CRMEB ]
// +---------------------------------------------------------------------- // +----------------------------------------------------------------------
// | Copyright (c) 2016~2023 https://www.crmeb.com All rights reserved. // | Copyright (c) 2016~2023 https://www.crmeb.com All rights reserved.
// +---------------------------------------------------------------------- // +----------------------------------------------------------------------
// | Licensed CRMEBCRMEB // | Licensed CRMEBCRMEB
// +---------------------------------------------------------------------- // +----------------------------------------------------------------------
// | Author: CRMEB Team <admin@crmeb.com> // | Author: CRMEB Team <admin@crmeb.com>
// +---------------------------------------------------------------------- // +----------------------------------------------------------------------
import easyLoadimage from '@/components/easy-loadimage/easy-loadimage.vue' import easyLoadimage from '@/components/easy-loadimage/easy-loadimage.vue'
import { mapGetters } from "vuex"; import {
import { HTTP_REQUEST_URL } from '@/config/app'; mapGetters
export default { } from "vuex";
components: { easyLoadimage }, import {
computed: mapGetters(['viewColor']), HTTP_REQUEST_URL
props: { } from '@/config/app';
item: { export default {
type: Object, components: {
require: true easyLoadimage
}, },
type: { computed: mapGetters(['viewColor']),
type: Number, props: {
default: 0 item: {
}, type: Object,
isStore: { require: true
type: [String, Number], },
default: '1' type: {
}, type: Number,
isLogin: { default: 0
type: Boolean, },
require: false isStore: {
}, type: [String, Number],
sale_type: { default: '1'
type: [String, Number], },
default: '1' isLogin: {
}, type: Boolean,
}, require: false
data() { },
return { sale_type: {
domain: HTTP_REQUEST_URL, type: [String, Number],
} default: '1'
}, },
methods: { },
goShop(id) { data() {
this.$emit('goShop', id); return {
}, domain: HTTP_REQUEST_URL,
authOpen() { }
this.$emit('authOpen'); },
}, methods: {
followToggle(item) { goShop(id) {
this.$emit('followToggle', item); this.$emit('goShop', id);
} },
} authOpen() {
} this.$emit('authOpen');
},
followToggle(item) {
this.$emit('followToggle', item);
}
}
}
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.wf-item-page { .wf-item-page {
background: #fff; background: #fff;
overflow: hidden; overflow: hidden;
border-radius: 16rpx; border-radius: 16rpx;
padding-bottom: 20rpx; padding-bottom: 20rpx;
} }
.wf-page0 .coupon { .wf-page0 .coupon {
background: rgba(255, 248, 247, 1); background: rgba(255, 248, 247, 1);
border: 1px solid rgba(233, 51, 35, 1); border: 1px solid rgba(233, 51, 35, 1);
border-radius: 4rpx; border-radius: 4rpx;
font-size: 20rpx; font-size: 20rpx;
margin-left: 18rpx; margin-left: 18rpx;
padding: 1rpx 4rpx; padding: 1rpx 4rpx;
} }
.wf-page0 .pictrue { .wf-page0 .pictrue {
width: 100% !important; width: 100% !important;
height: 345rpx; height: 345rpx;
position: relative; position: relative;
/deep/image, /deep/image,
/deep/.easy-loadimage, /deep/.easy-loadimage,
uni-image { uni-image {
height: 345rpx; height: 345rpx;
border-radius: 16rpx 16rpx 0 0; border-radius: 16rpx 16rpx 0 0;
} }
.border-picture { .border-picture {
position: absolute; position: absolute;
top: 0; top: 0;
left: 0; left: 0;
width: 100%; width: 100%;
height: 100%; height: 100%;
border-radius: 16rpx 16rpx 0 0; border-radius: 16rpx 16rpx 0 0;
background: center/cover no-repeat; background: center/cover no-repeat;
} }
} }
.loadfail-img { .loadfail-img {
width: 100%; width: 100%;
height: 360rpx; height: 360rpx;
} }
.svip { .svip {
margin: 5rpx 0 15rpx; margin: 5rpx 0 15rpx;
} }
.vip-money { .vip-money {
color: #282828; color: #282828;
font-size: 22rpx; font-size: 22rpx;
margin-left: 6rpx; margin-left: 6rpx;
font-weight: bold; font-weight: bold;
} }
.vipImg { .vipImg {
width: 65rpx; width: 65rpx;
height: 28rpx; height: 28rpx;
margin-left: 4rpx; margin-left: 4rpx;
image { image {
width: 100%; width: 100%;
height: 100%; height: 100%;
display: block; display: block;
} }
} }
.wf-page0 .name { .wf-page0 .name {
color: #000; color: #000;
margin: 20rpx 0 10rpx 0; margin: 20rpx 0 10rpx 0;
font-size: 30rpx; font-size: 30rpx;
overflow: hidden; overflow: hidden;
text-overflow: ellipsis; text-overflow: ellipsis;
display: -webkit-box; display: -webkit-box;
-webkit-line-clamp: 2; -webkit-line-clamp: 2;
-webkit-box-orient: vertical; -webkit-box-orient: vertical;
text-align: left; text-align: left;
} }
.wf-page0 .text { .wf-page0 .text {
padding: 0 20rpx; padding: 0 20rpx;
} }
.wf-page0 .money { .wf-page0 .money {
font-size: 20rpx; font-size: 20rpx;
font-weight: bold; font-weight: bold;
color: var(--view-priceColor); color: var(--view-priceColor);
} }
.b-color { .b-color {
background-color: var(--view-theme); background-color: var(--view-theme);
border: 1px solid var(--view-theme); border: 1px solid var(--view-theme);
} }
.wf-page0 .money .num { .wf-page0 .money .num {
font-size: 34rpx; font-size: 34rpx;
} }
.wf-page1 .wf-item { .wf-page1 .wf-item {
.name { .name {
font-size: 30rpx; font-size: 30rpx;
overflow: hidden; overflow: hidden;
text-overflow: ellipsis; text-overflow: ellipsis;
display: -webkit-box; display: -webkit-box;
-webkit-line-clamp: 2; -webkit-line-clamp: 2;
-webkit-box-orient: vertical; -webkit-box-orient: vertical;
text-align: left; text-align: left;
} }
} }
.wf-page1 .pictrue { .wf-page1 .pictrue {
position: relative; position: relative;
height: 345rpx; height: 345rpx;
width: 100% !important; width: 100% !important;
/deep/image, /deep/image,
/deep/.easy-loadimage, /deep/.easy-loadimage,
uni-image { uni-image {
height: 345rpx; height: 345rpx;
border-radius: 20rpx 20rpx 0 0; border-radius: 20rpx 20rpx 0 0;
} }
.border-picture { .border-picture {
position: absolute; position: absolute;
top: 0; top: 0;
left: 0; left: 0;
width: 100%; width: 100%;
height: 100%; height: 100%;
border-radius: 20rpx 20rpx 0 0; border-radius: 20rpx 20rpx 0 0;
background: center/cover no-repeat; background: center/cover no-repeat;
} }
} }
.sell_out { .sell_out {
display: flex; display: flex;
width: 150rpx; width: 150rpx;
height: 150rpx; height: 150rpx;
align-items: center; align-items: center;
justify-content: center; justify-content: center;
border-radius: 100%; border-radius: 100%;
background: rgba(0, 0, 0, .6); background: rgba(0, 0, 0, .6);
color: #fff; color: #fff;
font-size: 30rpx; font-size: 30rpx;
position: absolute; position: absolute;
top: 50%; top: 50%;
left: 50%; left: 50%;
margin: -75rpx 0 0 -75rpx; margin: -75rpx 0 0 -75rpx;
&::before { &::before {
content: ""; content: "";
display: block; display: block;
width: 140rpx; width: 140rpx;
height: 140rpx; height: 140rpx;
border-radius: 100%; border-radius: 100%;
border: 1px dashed #fff; border: 1px dashed #fff;
position: absolute; position: absolute;
top: 5rpx; top: 5rpx;
left: 5rpx; left: 5rpx;
} }
} }
.loading-img { .loading-img {
height: 345rpx; height: 345rpx;
max-height: 360rpx; max-height: 360rpx;
} }
.wf-page1 .text { .wf-page1 .text {
padding: 20rpx 17rpx 26rpx 17rpx; padding: 20rpx 17rpx 26rpx 17rpx;
font-size: 30rpx; font-size: 30rpx;
color: #222; color: #222;
} }
.wf-page1 .text .money { .wf-page1 .text .money {
display: flex; display: flex;
align-items: center; align-items: center;
font-size: 26rpx; font-size: 26rpx;
font-weight: bold; font-weight: bold;
margin-top: 8rpx; margin-top: 8rpx;
color: var(--view-priceColor); color: var(--view-priceColor);
} }
.wf-page1 .text .money .num { .wf-page1 .text .money .num {
font-size: 34rpx; font-size: 34rpx;
} }
.item_tags { .item_tags {
margin-top: 8rpx; margin-top: 8rpx;
display: flex; display: flex;
} }
.item_tags .tags_item { .item_tags .tags_item {
display: flex; display: flex;
font-size: 20rpx; font-size: 20rpx;
text-align: center; text-align: center;
border-radius: 5rpx; border-radius: 5rpx;
padding: 0 4rpx; padding: 4rpx 6rpx;
height: 28rpx; align-items: center;
align-items: center; justify-content: center;
justify-content: center; margin-right: 8rpx;
margin-right: 8rpx; }
}
.item_tags .tags_item.ticket { .item_tags .tags_item.ticket {
color: var(--view-theme); color: var(--view-theme);
border: 1px solid var(--view-theme); border: 1px solid var(--view-theme);
} }
.item_tags .tags_item.delivery { .item_tags .tags_item.delivery {
// color: #FF9000; color: #fff;
// border: 1px solid #FF9000; background-color: var(--view-theme);
color: var(--view-theme); }
border: 1px solid var(--view-theme);
}
.item_tags .tags_item.delivery_yellow { .delivery_yellow {
color: #FF9000; background-color: #FF9000 !important;
border: 1px solid #FF9000; color: #fff !important;
} }
.wf-page1 .text .money .ticket-big { .wf-page1 .text .money .ticket-big {
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: center; justify-content: center;
max-width: 163rpx; max-width: 163rpx;
padding: 0 6rpx; padding: 0 6rpx;
height: 28rpx; height: 28rpx;
margin-left: 10rpx; margin-left: 10rpx;
background-image: url(~static/images/yh.png); background-image: url(~static/images/yh.png);
background-size: 100% 100%; background-size: 100% 100%;
font-size: 20rpx; font-size: 20rpx;
font-weight: normal; font-weight: normal;
} }
.wf-page1 .text .score { .wf-page1 .text .score {
margin-top: 10rpx; margin-top: 10rpx;
color: #737373; color: #737373;
font-size: 20rpx; font-size: 20rpx;
} }
.wf-page1 .text .company { .wf-page1 .text .company {
display: flex; display: flex;
align-items: center; align-items: center;
color: #737373; color: #737373;
font-size: 20rpx; font-size: 20rpx;
margin-top: 10rpx; margin-top: 10rpx;
.line1 { .line1 {
max-width: 200rpx; max-width: 200rpx;
} }
.flex { .flex {
display: flex; display: flex;
align-items: center; align-items: center;
margin-left: 10rpx; margin-left: 10rpx;
color: #282828; color: #282828;
.iconfont { .iconfont {
font-size: 16rpx; font-size: 16rpx;
margin-top: 4rpx; margin-top: 4rpx;
} }
} }
} }
.foot-bar { .foot-bar {
width: 100%; width: 100%;
height: 52rpx; height: 52rpx;
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: center; justify-content: center;
background-image: linear-gradient(-90deg, var(--view-bntColor21) 0%, var(--view-bntColor22) 100%); background-image: linear-gradient(-90deg, var(--view-bntColor21) 0%, var(--view-bntColor22) 100%);
border-radius: 0px 0px 16rpx 16rpx; border-radius: 0px 0px 16rpx 16rpx;
color: #fff; color: #fff;
font-size: 24rpx; font-size: 24rpx;
.icon-fenxiang { .icon-fenxiang {
font-size: 24rpx; font-size: 24rpx;
margin-right: 10rpx; margin-right: 10rpx;
} }
} }
.car { .car {
width: 40rpx; width: 40rpx;
height: 40rpx; height: 40rpx;
} }
.store_info { .store_info {
width: 100%; width: 100%;
font-size: 22rpx; font-size: 22rpx;
color: #333; color: #333;
white-space: pre-wrap; white-space: pre-wrap;
font-weight: 400; font-weight: 400;
display: -webkit-box; display: -webkit-box;
-webkit-box-orient: vertical; -webkit-box-orient: vertical;
overflow: hidden; overflow: hidden;
text-overflow: ellipsis; text-overflow: ellipsis;
-webkit-line-clamp: 3; -webkit-line-clamp: 3;
/* 表示限制显示三行 */ /* 表示限制显示三行 */
} }
</style> </style>

@ -220,14 +220,14 @@
.keyboard-right-clear { .keyboard-right-clear {
width: 100%; width: 100%;
height: 240rpx; height: 120rpx;
line-height: 226rpx; line-height: 120rpx;
} }
.keyboard-right-pay { .keyboard-right-pay {
width: 100%; width: 100%;
height: 240rpx; height: 360rpx;
line-height: 226rpx; line-height: 360rpx;
text-align: center; text-align: center;
background-color: #40AE36; background-color: #40AE36;
color: #fff !important; color: #fff !important;

@ -57,28 +57,28 @@
"navigationStyle": "custom" "navigationStyle": "custom"
} }
}, },
{ {
"path": "uni_modules/guyue-updater/pages/updater", "path": "uni_modules/guyue-updater/pages/updater",
"style": { "style": {
"app-plus": { "app-plus": {
"animationDuration": 200, "animationDuration": 200,
"animationType": "fade-in", "animationType": "fade-in",
"background": "transparent", "background": "transparent",
"backgroundColorTop": "transparent", "backgroundColorTop": "transparent",
"bounce": "none", "bounce": "none",
"popGesture": "none", "popGesture": "none",
"scrollIndicator": false, "scrollIndicator": false,
"titleNView": false "titleNView": false
}, },
"backgroundColor": "transparent", "backgroundColor": "transparent",
"disableScroll": true, "disableScroll": true,
"navigationStyle": "custom" "navigationStyle": "custom"
} }
}, },
{ {
"path": "pages/payment/get_payment", "path": "pages/payment/get_payment",
"style": { "style": {
"navigationBarTitleText": "提货付款", "navigationBarTitleText": "支付",
"navigationStyle": "custom" "navigationStyle": "custom"
} }
}, },
@ -282,12 +282,11 @@
} }
}, },
{ {
"path" : "pages/newActivity/share/share", "path": "pages/newActivity/share/share",
"style" : "style": {
{ "navigationBarTitleText": "",
"navigationBarTitleText" : "", "enablePullDownRefresh": false
"enablePullDownRefresh" : false }
}
} }
], ],
"subPackages": [{ "subPackages": [{
@ -579,7 +578,7 @@
"path": "order_list/index", "path": "order_list/index",
"style": { "style": {
"navigationBarTitleText": "我的订单", "navigationBarTitleText": "我的订单",
"navigationStyle": "custom" "navigationStyle": "custom"
} }
}, },
{ {

@ -1,6 +1,7 @@
<template> <template>
<view :style="{ 'background-image': `linear-gradient(0deg, rgba(0, 0, 0, 0.9) 0%, rgba(0, 0, 0, 0.5) 100%),url(${store.mer_banner})` }" <view
class="store-home"> :style="{ 'background-image': `linear-gradient(0deg, rgba(0, 0, 0, 0.9) 0%, rgba(0, 0, 0, 0.5) 100%),url(${store.mer_banner})` }"
class="store-home">
<!-- 搜索 --> <!-- 搜索 -->
<!-- #ifdef MP || APP-PLUS --> <!-- #ifdef MP || APP-PLUS -->
<view :style="{ height: statusBarHeight }"></view> <view :style="{ height: statusBarHeight }"></view>
@ -26,7 +27,8 @@
<view :class="{ active: navActive === 0 }" class="item"> <view :class="{ active: navActive === 0 }" class="item">
<view class="cont"> <view class="cont">
{{ select.selected ? '评分' : '默认' }} {{ select.selected ? '评分' : '默认' }}
<text :class="['arrow-icon', 'iconfont', select.show ? 'icon-xiangshang' : 'icon-xiangxia']"></text> <text
:class="['arrow-icon', 'iconfont', select.show ? 'icon-xiangshang' : 'icon-xiangxia']"></text>
</view> </view>
</view> </view>
<view :class="{ active: navActive === 1 }" class="item"> <view :class="{ active: navActive === 1 }" class="item">
@ -35,20 +37,24 @@
<view :class="{ active: navActive === 2 }" class="item"> <view :class="{ active: navActive === 2 }" class="item">
<view class="cont"> <view class="cont">
价格 价格
<image :src="sortPrice ? domain+'/static/diy/up'+keyColor+'.png' : domain+'/static/diy/down'+keyColor+'.png'"></image> <image
:src="sortPrice ? domain+'/static/diy/up'+keyColor+'.png' : domain+'/static/diy/down'+keyColor+'.png'">
</image>
</view> </view>
</view> </view>
<view class="item"> <view class="item">
<view class="cont"> <view class="cont">
<text :class="['layout-icon', 'iconfont', isColumn ? 'icon-pailie' : 'icon-tupianpailie']"></text> <text
:class="['layout-icon', 'iconfont', isColumn ? 'icon-pailie' : 'icon-tupianpailie']"></text>
</view> </view>
</view> </view>
</view> </view>
<view v-show="select.show && navShow" class="select"> <view v-show="select.show && navShow" class="select">
<view v-for="item in select.options" :key="item.id" :class="{ active: item.id === select.selected }" class="item"> <view v-for="item in select.options" :key="item.id" :class="{ active: item.id === select.selected }"
{{ item.name }} class="item">
<text v-if="item.id === select.selected" class="iconfont icon-gou"></text> {{ item.name }}
</view> <text v-if="item.id === select.selected" class="iconfont icon-gou"></text>
</view>
</view> </view>
</view> </view>
<!--diy页面的导航--> <!--diy页面的导航-->
@ -82,7 +88,8 @@
<view class="score"> <view class="score">
<view class="star"> <view class="star">
<view <view
:style="{width: `${score.star.toFixed(2)}%`, backgroundImage: `url(${domain}/static/diy/score1${keyColor}.png)`}"></view> :style="{width: `${score.star.toFixed(2)}%`, backgroundImage: `url(${domain}/static/diy/score1${keyColor}.png)`}">
</view>
</view> </view>
<view>{{ score.number.toFixed(1) }}</view> <view>{{ score.number.toFixed(1) }}</view>
</view> </view>
@ -110,7 +117,8 @@
<view class="item active"> <view class="item active">
<view class="cont"> <view class="cont">
{{ select.selected ? '评分' : '默认' }} {{ select.selected ? '评分' : '默认' }}
<text :class="['arrow-icon', 'iconfont', select.show ? 'icon-xiangshang' : 'icon-xiangxia']"></text> <text
:class="['arrow-icon', 'iconfont', select.show ? 'icon-xiangshang' : 'icon-xiangxia']"></text>
</view> </view>
</view> </view>
<view class="item"> <view class="item">
@ -121,21 +129,24 @@
<view class="item"> <view class="item">
<view class="cont"> <view class="cont">
价格 价格
<image v-if="navActive === 2 && where.order == 'price_asc'" :src="domain+'/static/diy/up'+keyColor+'.png'"></image> <image v-if="navActive === 2 && where.order == 'price_asc'"
<image v-if="navActive === 2 && where.order == 'price_desc'" :src="domain+'/static/diy/down'+keyColor+'.png'"></image> :src="domain+'/static/diy/up'+keyColor+'.png'"></image>
<image v-if="navActive === 2 && where.order == 'price_desc'"
:src="domain+'/static/diy/down'+keyColor+'.png'"></image>
</view> </view>
</view> </view>
<view class="item"> <view class="item">
<view class="cont"> <view class="cont">
<text :class="['layout-icon', 'iconfont', isColumn ? 'icon-pailie' : 'icon-tupianpailie']"></text> <text
:class="['layout-icon', 'iconfont', isColumn ? 'icon-pailie' : 'icon-tupianpailie']"></text>
</view> </view>
</view> </view>
</view> </view>
<view v-show="select.show && !navShow" class="select"> <view v-show="select.show && !navShow" class="select">
<view v-for="item in select.options" :key="item.id" :class="{ active: item.id === select.selected }" class="item" <view v-for="item in select.options" :key="item.id" :class="{ active: item.id === select.selected }"
>{{ item.name }} class="item">{{ item.name }}
<text v-if="item.id === select.selected" class="iconfont icon-gou"></text> <text v-if="item.id === select.selected" class="iconfont icon-gou"></text>
</view> </view>
</view> </view>
</view> </view>
<!--diy导航--> <!--diy导航-->
@ -155,9 +166,10 @@
</view> </view>
</view> </view>
<view v-show="select.show && !navShow" class="select"> <view v-show="select.show && !navShow" class="select">
<view v-for="item in select.options" :key="item.id" :class="{ active: item.id === select.selected }" class="item"> <view v-for="item in select.options" :key="item.id" :class="{ active: item.id === select.selected }"
class="item">
{{ item.name }} {{ item.name }}
<text v-if="item.id === select.selected" class="iconfont icon-gou"></text> <text v-if="item.id === select.selected" class="iconfont icon-gou"></text>
</view> </view>
</view> </view>
</view> </view>
@ -167,19 +179,14 @@
<!-- #ifdef H5 --> <!-- #ifdef H5 -->
<view v-for="(item, index) in styleConfig" :key="index"> <view v-for="(item, index) in styleConfig" :key="index">
<block v-if="item.name != 'headerSerch' && item.name != 'tabNav' && item.name != 'pageFoot'"> <block v-if="item.name != 'headerSerch' && item.name != 'tabNav' && item.name != 'pageFoot'">
<component <component :is="item.name" :index="index" :dataConfig="item" :merId="id"
:is="item.name" @detail="goGoodsDetail"></component>
:index="index"
:dataConfig="item"
:merId="id"
@detail="goGoodsDetail"
></component>
</block> </block>
</block> </block>
</view> </view>
<!-- #endif --> <!-- #endif -->
<!-- #ifdef MP || APP-PLUS--> <!-- #ifdef MP || APP-PLUS-->
<block v-for="(item, index) in styleConfig" :key="index" > <block v-for="(item, index) in styleConfig" :key="index">
<view> <view>
<activeParty v-if="item.name == 'activeParty'" :merId="id" :dataConfig="item"></activeParty> <activeParty v-if="item.name == 'activeParty'" :merId="id" :dataConfig="item"></activeParty>
<articleList v-if="item.name == 'articleList'" :merId="id" :dataConfig="item"></articleList> <articleList v-if="item.name == 'articleList'" :merId="id" :dataConfig="item"></articleList>
@ -188,9 +195,11 @@
<combination v-if="item.name == 'combination'" :merId="id" :dataConfig="item"></combination> <combination v-if="item.name == 'combination'" :merId="id" :dataConfig="item"></combination>
<topic v-if="item.name == 'topic'" :merId="id" :dataConfig="item"></topic> <topic v-if="item.name == 'topic'" :merId="id" :dataConfig="item"></topic>
<coupon v-if="item.name == 'coupon'" :merId="id" :dataConfig="item"></coupon> <coupon v-if="item.name == 'coupon'" :merId="id" :dataConfig="item"></coupon>
<goodList v-if="item.name == 'goodList'" :merId="id" :dataConfig="item" @detail="goGoodsDetail"></goodList> <goodList v-if="item.name == 'goodList'" :merId="id" :dataConfig="item"
@detail="goGoodsDetail"></goodList>
<guide v-if="item.name == 'guide'" :merId="id" :dataConfig="item"></guide> <guide v-if="item.name == 'guide'" :merId="id" :dataConfig="item"></guide>
<liveBroadcast v-if="item.name == 'liveBroadcast'" :merId="id" :dataConfig="item"></liveBroadcast> <liveBroadcast v-if="item.name == 'liveBroadcast'" :merId="id" :dataConfig="item">
</liveBroadcast>
<menus v-if="item.name == 'menus'" :merId="id" :dataConfig="item"></menus> <menus v-if="item.name == 'menus'" :merId="id" :dataConfig="item"></menus>
<presellList v-if="item.name == 'presellList'" :merId="id" :dataConfig="item"></presellList> <presellList v-if="item.name == 'presellList'" :merId="id" :dataConfig="item"></presellList>
<richText v-if="item.name == 'richText'" :merId="id" :dataConfig="item"></richText> <richText v-if="item.name == 'richText'" :merId="id" :dataConfig="item"></richText>
@ -227,14 +236,32 @@
import request from "@/utils/request.js"; import request from "@/utils/request.js";
import WaterfallsFlow from '@/components/WaterfallsFlow/WaterfallsFlow.vue' import WaterfallsFlow from '@/components/WaterfallsFlow/WaterfallsFlow.vue'
import easyLoadimage from '@/components/easy-loadimage/easy-loadimage.vue' import easyLoadimage from '@/components/easy-loadimage/easy-loadimage.vue'
import {getStoreDetail, getStoreGoods, getStoreCategory, storeServiceList, hasServiceApi} from '@/api/store.js'; import {
import { getDiy } from '@/api/api.js'; getStoreDetail,
import { getUserInfo } from '@/api/user.js'; getStoreGoods,
import { configMap } from "@/utils"; getStoreCategory,
import { mapGetters } from "vuex"; storeServiceList,
import { goShopDetail } from '@/libs/order.js'; hasServiceApi
} from '@/api/store.js';
import {
getDiy
} from '@/api/api.js';
import {
getUserInfo
} from '@/api/user.js';
import {
configMap
} from "@/utils";
import {
mapGetters
} from "vuex";
import {
goShopDetail
} from '@/libs/order.js';
import emptyPage from '@/components/emptyPage.vue' import emptyPage from '@/components/emptyPage.vue'
import { HTTP_REQUEST_URL } from '@/config/app'; import {
HTTP_REQUEST_URL
} from '@/config/app';
import mConfig from '../../store/component/index.js'; import mConfig from '../../store/component/index.js';
// #ifdef MP || APP-PLUS // #ifdef MP || APP-PLUS
import activeParty from '../../index/component/activeParty'; import activeParty from '../../index/component/activeParty';
@ -389,7 +416,8 @@
number: 0 number: 0
}; };
if ('postage_score' in store) { if ('postage_score' in store) {
score.number = (parseFloat(store.postage_score) + parseFloat(store.product_score) + parseFloat(store.service_score)) / score.number = (parseFloat(store.postage_score) + parseFloat(store.product_score) + parseFloat(
store.service_score)) /
3; 3;
score.star = score.number / 5 * 100; score.star = score.number / 5 * 100;
} }
@ -398,7 +426,7 @@
...configMap({ ...configMap({
margin_ico_switch: 0, margin_ico_switch: 0,
margin_ico: '', margin_ico: '',
}, mapGetters(['isLogin','uid','viewColor','keyColor'])), }, mapGetters(['isLogin', 'uid', 'viewColor', 'keyColor'])),
}, },
watch: { watch: {
@ -435,7 +463,11 @@
// diy // diy
diyData() { diyData() {
let that = this; let that = this;
getDiy({id: that.id, did: that.did, version: '221'}).then(res => { getDiy({
id: that.id,
did: that.did,
version: '221'
}).then(res => {
let data = res.data; let data = res.data;
that.styleConfig = that.objToArr(data.value); that.styleConfig = that.objToArr(data.value);
uni.setNavigationBarTitle({ uni.setNavigationBarTitle({
@ -458,13 +490,14 @@
getStore: function() { getStore: function() {
getStoreDetail(this.id).then(res => { getStoreDetail(this.id).then(res => {
this.store = res.data; this.store = res.data;
if(this.id == 0){ if (this.id == 0) {
this.tabs = this.tabs1 this.tabs = this.tabs1
}else{ } else {
if((res.data.delivery_way.length == 1 && res.data.delivery_way[0] == '1') || res.data.delivery_way.length == 2){ if ((res.data.delivery_way.length == 1 && res.data.delivery_way[0] == '1') || res.data
.delivery_way.length == 2) {
this.tabs = this.tabs1 this.tabs = this.tabs1
this.service_open = true this.service_open = true
}else{ } else {
this.tabs = this.tabs2 this.tabs = this.tabs2
this.service_open = false this.service_open = false
} }
@ -523,16 +556,18 @@
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.tab-cont{ .tab-cont {
background: #f5f5f5; background: #f5f5f5;
min-height: 500rpx; min-height: 500rpx;
pointer-events: none; pointer-events: none;
} }
/deep/.care { /deep/.care {
background-image: none !important; background-image: none !important;
border: 1px solid #fff; border: 1px solid #fff;
background-color: transparent; background-color: transparent;
} }
.store-home { .store-home {
position: fixed; position: fixed;
top: 0; top: 0;
@ -547,6 +582,7 @@
background: left top/750rpx 390rpx no-repeat fixed; background: left top/750rpx 390rpx no-repeat fixed;
overflow: hidden; overflow: hidden;
} }
.header { .header {
position: relative; position: relative;
z-index: 6; z-index: 6;
@ -555,6 +591,7 @@
padding-right: 34rpx; padding-right: 34rpx;
height: 43px; height: 43px;
padding-left: 33rpx; padding-left: 33rpx;
.head-menu { .head-menu {
display: -webkit-box; display: -webkit-box;
display: -webkit-flex; display: -webkit-flex;
@ -566,10 +603,12 @@
width: 70px; width: 70px;
background: rgba(0, 0, 0, 0.25); background: rgba(0, 0, 0, 0.25);
border-radius: 13px; border-radius: 13px;
.icon-xiangzuo { .icon-xiangzuo {
font-size: 32rpx; font-size: 32rpx;
color: #FFFFFF; color: #FFFFFF;
} }
.iconfont { .iconfont {
-webkit-box-flex: 1; -webkit-box-flex: 1;
-webkit-flex: 1; -webkit-flex: 1;
@ -577,11 +616,13 @@
text-align: center; text-align: center;
color: #fff; color: #fff;
box-sizing: border-box; box-sizing: border-box;
&.icon-xiangzuo { &.icon-xiangzuo {
border-right: 1px solid rgba(255,255,255,.3); border-right: 1px solid rgba(255, 255, 255, .3);
} }
} }
} }
.search { .search {
flex: 1; flex: 1;
display: flex; display: flex;
@ -596,6 +637,7 @@
color: #999999; color: #999999;
/* #ifdef MP */ /* #ifdef MP */
margin-right: 200rpx; margin-right: 200rpx;
/* #endif */ /* #endif */
.iconfont { .iconfont {
margin-right: 13rpx; margin-right: 13rpx;
@ -604,27 +646,32 @@
} }
} }
} }
.main_count{
.main_count {
background-color: #ffffff; background-color: #ffffff;
padding: 30rpx 20rpx; padding: 30rpx 20rpx;
.list{
.list {
width: 710rpx; width: 710rpx;
height: 280rpx; height: 280rpx;
margin-bottom: 30rpx; margin-bottom: 30rpx;
position: relative; position: relative;
.picture{
.picture {
width: 710rpx; width: 710rpx;
height: 280rpx; height: 280rpx;
border-radius: 16rpx; border-radius: 16rpx;
} }
} }
} }
.main { .main {
flex: 1; flex: 1;
min-height: 0rpx; min-height: 0rpx;
box-sizing: border-box; box-sizing: border-box;
padding: 0; padding: 0;
} }
.store { .store {
position: relative; position: relative;
z-index: 6; z-index: 6;
@ -634,33 +681,40 @@
padding-left: 20rpx; padding-left: 20rpx;
padding-top: 20rpx; padding-top: 20rpx;
padding-bottom: 22rpx; padding-bottom: 22rpx;
image { image {
width: 74rpx; width: 74rpx;
height: 74rpx; height: 74rpx;
border-radius: 6rpx; border-radius: 6rpx;
} }
.store-margin{
.store-margin {
width: 26rpx; width: 26rpx;
height: 26rpx; height: 26rpx;
margin-left: 10rpx; margin-left: 10rpx;
} }
.kefu{
.kefu {
color: #ffffff; color: #ffffff;
margin-right: 26rpx; margin-right: 26rpx;
cursor: pointer; cursor: pointer;
.icon-kefu3{
.icon-kefu3 {
font-size: 34rpx; font-size: 34rpx;
} }
} }
.text { .text {
flex: 1; flex: 1;
min-width: 0; min-width: 0;
margin-right: 20rpx; margin-right: 20rpx;
margin-left: 20rpx; margin-left: 20rpx;
.text-view { .text-view {
display: inline-flex; display: inline-flex;
align-items: center; align-items: center;
max-width: 100%; max-width: 100%;
.name { .name {
flex: 1; flex: 1;
min-width: 0; min-width: 0;
@ -672,12 +726,14 @@
line-height: 1; line-height: 1;
color: #FFFFFF; color: #FFFFFF;
} }
.iconfont { .iconfont {
margin-left: 10rpx; margin-left: 10rpx;
font-size: 17rpx; font-size: 17rpx;
color: #FFFFFF; color: #FFFFFF;
} }
} }
.score { .score {
display: flex; display: flex;
align-items: center; align-items: center;
@ -686,6 +742,7 @@
font-size: 24rpx; font-size: 24rpx;
line-height: 1; line-height: 1;
color: #FFFFFF; color: #FFFFFF;
.star { .star {
position: relative; position: relative;
width: 111rpx; width: 111rpx;
@ -693,6 +750,7 @@
margin-right: 10rpx; margin-right: 10rpx;
background: url(../../columnGoods/images/star.png) left top/100% 100% no-repeat; background: url(../../columnGoods/images/star.png) left top/100% 100% no-repeat;
overflow: hidden; overflow: hidden;
view { view {
position: absolute; position: absolute;
top: 0; top: 0;
@ -700,13 +758,15 @@
width: 100%; width: 100%;
height: 100%; height: 100%;
background: url(../../columnGoods/images/star_active.png) left top/111rpx 19rpx no-repeat; background: url(../../columnGoods/images/star_active.png) left top/111rpx 19rpx no-repeat;
&.star_purple{
&.star_purple {
background: url(../../columnGoods/images/star_active_purple.png) left top/111rpx 19rpx no-repeat; background: url(../../columnGoods/images/star_active_purple.png) left top/111rpx 19rpx no-repeat;
} }
} }
} }
} }
} }
button { button {
display: flex; display: flex;
justify-content: center; justify-content: center;
@ -718,40 +778,49 @@
font-weight: 500; font-weight: 500;
font-size: 22rpx; font-size: 22rpx;
color: #FFFFFF; color: #FFFFFF;
.iconfont { .iconfont {
margin-right: 6rpx; margin-right: 6rpx;
font-size: 22rpx; font-size: 22rpx;
} }
&.gary { &.gary {
background-color: #999; background-color: #999;
} }
} }
} }
.font-bg-red { .font-bg-red {
background-color: var(--view-theme); background-color: var(--view-theme);
border: 1px solid var(--view-theme); border: 1px solid var(--view-theme);
} }
.nav.fixed { .nav.fixed {
position: fixed; position: fixed;
left: 0; left: 0;
width: 100%; width: 100%;
.nav-cont { .nav-cont {
position: absolute; position: absolute;
width: 100%; width: 100%;
} }
} }
.nav { .nav {
position: relative; position: relative;
.nav-cont { .nav-cont {
display: flex; display: flex;
align-items: center; align-items: center;
height: 84rpx; height: 84rpx;
.item { .item {
flex: 1; flex: 1;
display: flex; display: flex;
justify-content: center; justify-content: center;
align-items: center; align-items: center;
min-width: 0; min-width: 0;
.cont { .cont {
display: flex; display: flex;
justify-content: center; justify-content: center;
@ -762,16 +831,20 @@
font-weight: 500; font-weight: 500;
font-size: 24rpx; font-size: 24rpx;
color: #FFFFFF; color: #FFFFFF;
.arrow-icon { .arrow-icon {
margin-left: 10rpx; margin-left: 10rpx;
font-size: 18rpx; font-size: 18rpx;
} }
.layout-icon { .layout-icon {
font-size: 32rpx; font-size: 32rpx;
} }
.icon-pailie { .icon-pailie {
font-size: 32rpx; font-size: 32rpx;
} }
image { image {
width: 15rpx; width: 15rpx;
height: 21rpx; height: 21rpx;
@ -779,6 +852,7 @@
} }
} }
} }
.active { .active {
.cont { .cont {
background-color: #FFFFFF; background-color: #FFFFFF;
@ -787,6 +861,7 @@
} }
} }
} }
.select { .select {
position: absolute; position: absolute;
top: 100%; top: 100%;
@ -800,14 +875,17 @@
border-bottom-left-radius: 24rpx; border-bottom-left-radius: 24rpx;
background-color: #FFFFFF; background-color: #FFFFFF;
box-shadow: 0px 2px 10px 0px rgba(0, 0, 0, 0.06); box-shadow: 0px 2px 10px 0px rgba(0, 0, 0, 0.06);
.item { .item {
margin-top: 28rpx; margin-top: 28rpx;
font-size: 24rpx; font-size: 24rpx;
color: #454545; color: #454545;
} }
.active { .active {
color: var(--view-theme); color: var(--view-theme);
.iconfont{
.iconfont {
color: var(--view-theme); color: var(--view-theme);
float: right; float: right;
font-size: 20rpx; font-size: 20rpx;
@ -815,6 +893,7 @@
} }
} }
} }
.goods { .goods {
display: flex; display: flex;
flex-wrap: wrap; flex-wrap: wrap;
@ -824,12 +903,14 @@
padding-left: 20rpx; padding-left: 20rpx;
background-color: #F5F5F5; background-color: #F5F5F5;
width: 750rpx; width: 750rpx;
.item { .item {
width: 345rpx; width: 345rpx;
border-radius: 16rpx; border-radius: 16rpx;
margin-bottom: 20rpx; margin-bottom: 20rpx;
background-color: #FFFFFF; background-color: #FFFFFF;
overflow: hidden; overflow: hidden;
.sell_out { .sell_out {
display: flex; display: flex;
width: 110rpx; width: 110rpx;
@ -837,14 +918,15 @@
align-items: center; align-items: center;
justify-content: center; justify-content: center;
border-radius: 100%; border-radius: 100%;
background: rgba(0,0,0,.6); background: rgba(0, 0, 0, .6);
color: #fff; color: #fff;
font-size: 24rpx; font-size: 24rpx;
position: absolute; position: absolute;
top: 50%; top: 50%;
left: 50%; left: 50%;
margin: -55rpx 0 0 -55rpx; margin: -55rpx 0 0 -55rpx;
&::before{
&::before {
content: ""; content: "";
display: block; display: block;
width: 100rpx; width: 100rpx;
@ -856,17 +938,24 @@
left: 5rpx; left: 5rpx;
} }
} }
.image,.easy-loadimage,image,uni-image {
.image,
.easy-loadimage,
image,
uni-image {
width: 345rpx; width: 345rpx;
height: 345rpx; height: 345rpx;
image { image {
display: block; display: block;
width: 100%; width: 100%;
height: 100%; height: 100%;
} }
} }
.text { .text {
padding: 20rpx 20rpx 25rpx; padding: 20rpx 20rpx 25rpx;
.name { .name {
font-weight: 500; font-weight: 500;
font-size: 30rpx; font-size: 30rpx;
@ -874,25 +963,30 @@
color: #222222; color: #222222;
display: flex; display: flex;
align-items: center; align-items: center;
.name_text{
.name_text {
display: inline-block; display: inline-block;
max-width: 400rpx; max-width: 400rpx;
} }
} }
.money-wrap { .money-wrap {
display: flex; display: flex;
align-items: center; align-items: center;
margin-top: 43rpx; margin-top: 43rpx;
.money { .money {
font-weight: bold; font-weight: bold;
font-size: 26rpx; font-size: 26rpx;
color: var(--view-priceColor); color: var(--view-priceColor);
text { text {
font-size: 34rpx; font-size: 34rpx;
line-height: 1; line-height: 1;
} }
} }
} }
.score { .score {
margin-top: 20rpx; margin-top: 20rpx;
font-weight: 500; font-weight: 500;
@ -901,9 +995,11 @@
color: #737373; color: #737373;
} }
} }
.item_tags{
.item_tags {
margin-top: 8rpx; margin-top: 8rpx;
} }
.item_tags .tags_item { .item_tags .tags_item {
display: inline-block; display: inline-block;
font-size: 20rpx; font-size: 20rpx;
@ -913,14 +1009,17 @@
line-height: 28rpx; line-height: 28rpx;
margin-right: 8rpx; margin-right: 8rpx;
} }
.item_tags .tags_item.ticket{
.item_tags .tags_item.ticket {
border: 1px solid var(--view-theme); border: 1px solid var(--view-theme);
color: var(--view-theme); color: var(--view-theme);
} }
.item_tags .tags_item.delivery{
.item_tags .tags_item.delivery {
color: #FF9000; color: #FF9000;
border: 1px solid #FF9000; border: 1px solid #FF9000;
} }
.foot { .foot {
display: flex; display: flex;
justify-content: center; justify-content: center;
@ -930,6 +1029,7 @@
font-weight: 500; font-weight: 500;
font-size: 24rpx; font-size: 24rpx;
color: #FFFFFF; color: #FFFFFF;
.iconfont { .iconfont {
margin-right: 10rpx; margin-right: 10rpx;
font-size: 22rpx; font-size: 22rpx;
@ -942,6 +1042,7 @@
.column { .column {
padding: 0; padding: 0;
background-color: #FFFFFF; background-color: #FFFFFF;
.item { .item {
position: relative; position: relative;
display: flex; display: flex;
@ -949,6 +1050,7 @@
padding: 30rpx 20rpx; padding: 30rpx 20rpx;
border-radius: 0; border-radius: 0;
margin-bottom: 0; margin-bottom: 0;
&::before { &::before {
content: " "; content: " ";
position: absolute; position: absolute;
@ -957,7 +1059,11 @@
left: 250rpx; left: 250rpx;
border-top: 1px solid #F5F5F5; border-top: 1px solid #F5F5F5;
} }
/deep/.image,/deep/.easy-loadimage,/deep/image,/deep/uni-image {
/deep/.image,
/deep/.easy-loadimage,
/deep/image,
/deep/uni-image {
width: 260rpx; width: 260rpx;
height: 260rpx; height: 260rpx;
border-radius: 16rpx; border-radius: 16rpx;
@ -965,6 +1071,7 @@
position: relative; position: relative;
} }
.border-picture { .border-picture {
position: absolute; position: absolute;
top: 0; top: 0;
@ -973,6 +1080,7 @@
height: 100%; height: 100%;
background: center/cover no-repeat; background: center/cover no-repeat;
} }
.text { .text {
position: relative; position: relative;
width: 450rpx; width: 450rpx;
@ -980,18 +1088,22 @@
padding-top: 0; padding-top: 0;
padding-right: 0; padding-right: 0;
padding-bottom: 0; padding-bottom: 0;
.name { .name {
color: #282828; color: #282828;
width: 100%; width: 100%;
display: flex; display: flex;
} }
.item_bot{
.item_bot {
width: 100%; width: 100%;
} }
.money-wrap { .money-wrap {
display: flex; display: flex;
align-items: center; align-items: center;
margin-top: 52rpx; margin-top: 52rpx;
.ticket { .ticket {
height: 28rpx; height: 28rpx;
padding-right: 12rpx; padding-right: 12rpx;
@ -1005,6 +1117,7 @@
} }
} }
} }
.foot { .foot {
position: absolute; position: absolute;
right: 20rpx; right: 20rpx;
@ -1018,14 +1131,17 @@
} }
} }
} }
.category { .category {
padding-top: 34rpx; padding-top: 34rpx;
padding-right: 20rpx; padding-right: 20rpx;
padding-left: 20rpx; padding-left: 20rpx;
.section { .section {
border-radius: 10rpx; border-radius: 10rpx;
margin-bottom: 20rpx; margin-bottom: 20rpx;
background-color: #FFFFFF; background-color: #FFFFFF;
.head { .head {
position: relative; position: relative;
display: flex; display: flex;
@ -1035,6 +1151,7 @@
padding-left: 36rpx; padding-left: 36rpx;
font-weight: bold; font-weight: bold;
color: #282828; color: #282828;
&::before { &::before {
content: " "; content: " ";
position: absolute; position: absolute;
@ -1045,6 +1162,7 @@
background-color: var(--view-theme); background-color: var(--view-theme);
transform: translateY(-50%); transform: translateY(-50%);
} }
.title { .title {
flex: 1; flex: 1;
min-width: 0; min-width: 0;
@ -1053,17 +1171,20 @@
text-overflow: ellipsis; text-overflow: ellipsis;
font-size: 30rpx; font-size: 30rpx;
} }
.iconfont { .iconfont {
font-size: 22rpx; font-size: 22rpx;
line-height: 1; line-height: 1;
} }
} }
.body { .body {
display: flex; display: flex;
flex-wrap: wrap; flex-wrap: wrap;
justify-content: space-between; justify-content: space-between;
align-items: center; align-items: center;
padding: 9rpx 36rpx 14rpx; padding: 9rpx 36rpx 14rpx;
.item { .item {
width: 314rpx; width: 314rpx;
height: 84rpx; height: 84rpx;
@ -1083,22 +1204,26 @@
} }
} }
} }
.empty-box{
.empty-box {
display: flex; display: flex;
flex-direction: column; flex-direction: column;
justify-content: center; justify-content: center;
align-items: center; align-items: center;
margin-top: 0; margin-top: 0;
padding-top: 200rpx; padding-top: 200rpx;
image{
image {
width: 414rpx; width: 414rpx;
height: 240rpx; height: 240rpx;
} }
.txt{
.txt {
font-size: 26rpx; font-size: 26rpx;
color: #999; color: #999;
} }
} }
.footer { .footer {
position: fixed; position: fixed;
bottom: 0; bottom: 0;
@ -1111,6 +1236,7 @@
height: calc(100rpx + env(safe-area-inset-bottom)); /// IOS>11.2/ height: calc(100rpx + env(safe-area-inset-bottom)); /// IOS>11.2/
background-color: #FFFFFF; background-color: #FFFFFF;
opacity: 0.96; opacity: 0.96;
.item { .item {
flex: 1; flex: 1;
display: flex; display: flex;
@ -1120,33 +1246,40 @@
font-weight: 500; font-weight: 500;
font-size: 20rpx; font-size: 20rpx;
color: #282828; color: #282828;
.iconfont { .iconfont {
font-size: 43rpx; font-size: 43rpx;
} }
.icon-zhuanti{
.icon-zhuanti {
font-size: 38rpx; font-size: 38rpx;
} }
} }
.active { .active {
color: var(--view-theme); color: var(--view-theme);
} }
} }
.p-b-75{
.p-b-75 {
padding-bottom: 150rpx; padding-bottom: 150rpx;
} }
.vip-money { .vip-money {
color: #282828; color: #282828;
font-size: 22rpx; font-size: 22rpx;
margin-left: 6rpx; margin-left: 6rpx;
font-weight: bold; font-weight: bold;
} }
.vipImg { .vipImg {
width: 65rpx; width: 65rpx;
height: 28rpx; height: 28rpx;
margin-left: 4rpx; margin-left: 4rpx;
image { image {
width: 100%!important; width: 100% !important;
height: 100%!important; height: 100% !important;
display: block; display: block;
} }
} }

@ -4,7 +4,8 @@
} }
.wholeSale { .wholeSale {
background-color: #f8fafb !important; background-color: #f8fafb !important;
.wholeSale-header { .wholeSale-header {
margin-bottom: 20rpx; margin-bottom: 20rpx;
// background-color: #40AE36; // background-color: #40AE36;
@ -45,18 +46,19 @@
.wholeSale-con { .wholeSale-con {
margin: 0 20rpx; margin: 0 20rpx;
.wholeSale-nav{ .wholeSale-nav {
display: flex; display: flex;
align-items: center; align-items: center;
margin-bottom: 40rpx; margin-bottom: 40rpx;
.icon{
margin-right: 20rpx; .icon {
} margin-right: 20rpx;
} }
}
.search_content { .search_content {
// margin-bottom: 40rpx; // margin-bottom: 40rpx;
flex: 1; flex: 1;
height: 70rpx; height: 70rpx;
padding: 2px 2px 2px 21.05rpx; padding: 2px 2px 2px 21.05rpx;
border-radius: 80rpx; border-radius: 80rpx;
@ -96,47 +98,47 @@
margin-bottom: 20rpx; margin-bottom: 20rpx;
.category-wrap { .category-wrap {
display: flex; display: flex;
padding-bottom: 20rpx; padding-bottom: 20rpx;
.category-item { .category-item {
display: flex; display: flex;
flex-direction: column; flex-direction: column;
justify-content: center; justify-content: center;
align-items: center; align-items: center;
margin-right: 38rpx; margin-right: 38rpx;
text { text {
margin-top: 16rpx; margin-top: 16rpx;
font-size: 24rpx; font-size: 24rpx;
color: #666666; color: #666666;
white-space: nowrap; white-space: nowrap;
} }
.category-item-text { .category-item-text {
width: 120rpx; width: 120rpx;
text-align: center; text-align: center;
overflow: hidden; overflow: hidden;
white-space: nowrap; white-space: nowrap;
text-overflow: ellipsis; text-overflow: ellipsis;
} }
} }
.category-item-active { .category-item-active {
position: relative; position: relative;
.category-item-img { .category-item-img {
border: 2px solid #40AE36; border: 2px solid #40AE36;
border-radius: 50%; border-radius: 50%;
} }
text { text {
background-color: #40AE36; background-color: #40AE36;
color: #fff; color: #fff;
padding: 2rpx 10rpx 6rpx 10rpx; padding: 2rpx 10rpx 6rpx 10rpx;
border-radius: 50rpx; border-radius: 50rpx;
} }
} }
} }
} }
@ -199,40 +201,43 @@
} }
</style> </style>
<template> <template>
<view class="wholeSale"> <view class="wholeSale">
<!-- 顶部 --> <!-- 顶部 -->
<view class="wholeSale-header" style="position: fixed;top: 0;left: 0;width: 100%;z-index: 999;"> <view class="wholeSale-header" style="position: fixed;top: 0;left: 0;width: 100%;z-index: 999;">
<!-- 适配不同机 --> <!-- 适配不同机 -->
<view style="height: var(--status-bar-height);background-color: #40af37;"></view> <view style="height: var(--status-bar-height);background-color: #40af37;"></view>
<view style="display: flex;padding: 20rpx 28rpx;background-color: #40af37;color: #fff;"> <view style="display: flex;padding: 20rpx 28rpx;background-color: #40af37;color: #fff;">
<view style="display: flex;font-weight: bold;font-size: 32rpx;"><u-icon style="margin-right: 20rpx;" name="arrow-left" size="20" color="#fff" @click="navBack"></u-icon>里海云仓</view> <view style="display: flex;font-weight: bold;font-size: 32rpx;"><u-icon style="margin-right: 20rpx;"
</view> name="arrow-left" size="20" color="#fff" @click="navBack"></u-icon>里海云仓</view>
</view>
</view> </view>
<!-- 内容 --> <!-- 内容 -->
<view class="wholeSale-con" style="padding-top: calc(var(--status-bar-height) + 100rpx);"> <view class="wholeSale-con" style="padding-top: calc(var(--status-bar-height) + 100rpx);">
<view class="wholeSale-nav"> <view class="wholeSale-nav">
<!-- <u-icon class="icon" name="arrow-left" size="20" @click="navBack"></u-icon> --> <!-- <u-icon class="icon" name="arrow-left" size="20" @click="navBack"></u-icon> -->
<!-- 搜索 --> <!-- 搜索 -->
<view @click="navTo(`/pages/columnGoods/goods_search/index?back=true&searchVal=${where.keyword}`)" hover-class="none" <view @click="navTo(`/pages/columnGoods/goods_search/index?back=true&searchVal=${where.keyword}`)"
class="search_content flex_a_c_j_sb"> hover-class="none" class="search_content flex_a_c_j_sb">
<view class="flex_a_c search_content_wrap"> <view class="flex_a_c search_content_wrap">
<view class="iconfont icon-sousuo" style="font-size: 39rpx;"></view> <view class="iconfont icon-sousuo" style="font-size: 39rpx;"></view>
<input type="text" placeholder="搜索商品名称" :value="where.keyword" placeholder-style="font-size: 30rpx;color:#999;" <input type="text" placeholder="搜索商品名称" :value="where.keyword"
disabled style="pointer-events: none;"> placeholder-style="font-size: 30rpx;color:#999;" disabled style="pointer-events: none;">
</view> </view>
<!-- <button class="search_btn">搜索</button> --> <!-- <button class="search_btn">搜索</button> -->
</view> </view>
</view> </view>
<!-- 商品大分类 --> <!-- 商品大分类 -->
<view class="category"> <view class="category">
<scroll-view scroll-x="true"> <scroll-view scroll-x="true">
<view class="category-wrap"> <view class="category-wrap">
<block v-for="(item,index) in store_category" :key="index"> <block v-for="(item,index) in store_category" :key="index">
<view class="category-item" :class="{'category-item-active': index==cate_change}" @click="changeCate(index)"> <view class="category-item" :class="{'category-item-active': index==cate_change}"
<u--image class="category-item-img" width="108rpx" :src="item.pic" height="108rpx" shape="circle"> @click="changeCate(index)">
<u--image class="category-item-img" width="108rpx" :src="item.pic" height="108rpx"
shape="circle">
<template v-slot:loading> <template v-slot:loading>
<u-loading-icon color="#999" size="15" /> <u-loading-icon color="#999" size="15" />
</template> </template>
@ -249,7 +254,8 @@
<scroll-view scroll-x="true"> <scroll-view scroll-x="true">
<view class="cate-wrap"> <view class="cate-wrap">
<block v-for="(item,index) in store_category_children" :key="index"> <block v-for="(item,index) in store_category_children" :key="index">
<view class="cate-item" :class="{'cate-item-active':index == cate_change_children}" @click="changeChildrenCate(index)"> <view class="cate-item" :class="{'cate-item-active':index == cate_change_children}"
@click="changeChildrenCate(index)">
<text>{{item.cate_name}}</text> <text>{{item.cate_name}}</text>
</view> </view>
</block> </block>
@ -274,7 +280,7 @@
<!-- 流水瀑布 --> <!-- 流水瀑布 -->
<WaterfallsFlow :wfList='hostProduct' @itemTap="goDetail" :type="0" /> <WaterfallsFlow :wfList='hostProduct' @itemTap="goDetail" :type="0" />
<loadmore :type="isLoading"></loadmore> <loadmore :type="isLoading"></loadmore>
</view> </view>
</view> </view>
</template> </template>
@ -284,109 +290,110 @@
goShopDetail goShopDetail
} from '@/libs/order.js' } from '@/libs/order.js'
import WaterfallsFlow from '@/components/WaterfallsFlow/WaterfallsFlow.vue' import WaterfallsFlow from '@/components/WaterfallsFlow/WaterfallsFlow.vue'
import { import {
getStoreCategory, getStoreCategory,
getProductslist getProductslist
} from "@/api/store.js" } from "@/api/store.js"
export default { export default {
components: { components: {
WaterfallsFlow WaterfallsFlow
}, },
data() { data() {
return { return {
hostProduct: [], hostProduct: [],
store_category: [], // store_category: [], //
store_category_children: [], // store_category_children: [], //
cate_change: 0, cate_change: 0,
cate_change_children: 0, cate_change_children: 0,
isLoading: 0, isLoading: 0,
where:{ where: {
page: 1, page: 1,
limit: 20, limit: 20,
mer_type: 1, //1-, 2-, 3- mer_type: 1, //1-, 2-, 3-
mer_cate_id: '', mer_cate_id: '',
keyword: '', keyword: '',
deduction_rate: '', // deduction_rate: '', //
} }
} }
}, },
onLoad(option){ onLoad(option) {
this.getStoreCategory(); this.getStoreCategory();
this.getProductslist(true); this.getProductslist(true);
}, },
onReachBottom() { onReachBottom() {
this.getProductslist(); this.getProductslist();
}, },
onPageScroll() { onPageScroll() {
uni.$emit('scroll'); uni.$emit('scroll');
}, },
methods: { methods: {
navTo(url){ navTo(url) {
uni.navigateTo({ uni.navigateTo({
url:url, url: url,
success: () => { success: () => {
uni.$once('searchValue', (e)=>{ uni.$once('searchValue', (e) => {
this.$nextTick(()=>{ this.$nextTick(() => {
this.where.keyword = e; this.where.keyword = e;
this.getProductslist(true); this.getProductslist(true);
}) })
}) })
} }
}) })
}, },
navBack(){ navBack() {
uni.navigateBack(); uni.navigateBack();
}, },
tabsChange(e) { tabsChange(e) {
this.tabsCurr = e; this.tabsCurr = e;
}, },
changeCate(e){ changeCate(e) {
this.cate_change = e; this.cate_change = e;
this.store_category_children = []; this.store_category_children = [];
if(this.store_category[e].children) this.store_category_children = [...this.store_category[e].children]; if (this.store_category[e].children) this.store_category_children = [...this.store_category[e].children];
this.store_category_children.unshift({ this.store_category_children.unshift({
cate_name: '全部', cate_name: '全部',
store_category_id: '' store_category_id: ''
}) })
this.cate_change_children = 0; this.cate_change_children = 0;
this.where.mer_cate_id = this.store_category[e].store_category_id; this.where.mer_cate_id = this.store_category[e].store_category_id;
this.getProductslist(true); this.getProductslist(true);
}, },
changeChildrenCate(e){ changeChildrenCate(e) {
this.cate_change_children = e; this.cate_change_children = e;
this.where.mer_cate_id = this.store_category_children[e].store_category_id; this.where.mer_cate_id = this.store_category_children[e].store_category_id;
if(e==0) this.where.mer_cate_id = this.store_category[this.cate_change].store_category_id; // , id if (e == 0) this.where.mer_cate_id = this.store_category[this.cate_change]
this.getProductslist(true); .store_category_id; // , id
}, this.getProductslist(true);
getStoreCategory(){ },
getStoreCategory(259).then(res=>{ getStoreCategory() {
this.store_category = [{ getStoreCategory(259).then(res => {
cate_name: '全部', this.store_category = [{
pic: 'https://lihai001.oss-cn-chengdu.aliyuncs.com/def/0bc7a202404021652194310.png', cate_name: '全部',
store_category_id: '' pic: 'https://lihai001.oss-cn-chengdu.aliyuncs.com/def/0bc7a202404021652194310.png',
}, ...res.data]; store_category_id: ''
this.store_category_children = this.store_category[0].children || []; }, ...res.data];
this.store_category_children.unshift({ this.store_category_children = this.store_category[0].children || [];
cate_name: '全部', this.store_category_children.unshift({
store_category_id: '' cate_name: '全部',
}) store_category_id: ''
}) })
}, })
getProductslist(reLoad=false){ },
if(reLoad){ getProductslist(reLoad = false) {
this.where.page = 1; if (reLoad) {
this.hostProduct = []; this.where.page = 1;
this.isLoading = 0; this.hostProduct = [];
} this.isLoading = 0;
if(this.isLoading==-1)return; }
this.isLoading = 1; if (this.isLoading == -1) return;
getProductslist(this.where).then(res=>{ this.isLoading = 1;
this.hostProduct = [...this.hostProduct, ...res.data.list]; getProductslist(this.where).then(res => {
this.isLoading = 0; this.hostProduct = [...this.hostProduct, ...res.data.list];
if(res.data.list.length<this.where.limit) this.isLoading = -1; this.isLoading = 0;
this.where.page++; if (res.data.list.length < this.where.limit) this.isLoading = -1;
}) this.where.page++;
}, })
},
goDetail(item) { goDetail(item) {
goShopDetail(item, this.uid).then(res => { goShopDetail(item, this.uid).then(res => {
if (this.isLogin) { if (this.isLogin) {

@ -4,8 +4,8 @@
<view class='search acea-row row-between-wrapper'> <view class='search acea-row row-between-wrapper'>
<view class='input acea-row row-between-wrapper'> <view class='input acea-row row-between-wrapper'>
<text class='iconfont icon-sousuo2'></text> <text class='iconfont icon-sousuo2'></text>
<input type='text' :value='searchValue' :focus="focus" :placeholder="isShop?'点击搜索店铺名称':'点击搜索商品名称'" placeholder-class='placeholder' <input type='text' :value='searchValue' :focus="focus" :placeholder="isShop?'点击搜索店铺名称':'点击搜索商品名称'"
@input="setValue"></input> placeholder-class='placeholder' @input="setValue"></input>
</view> </view>
<view class='bnt' @tap='searchBut'>搜索</view> <view class='bnt' @tap='searchBut'>搜索</view>
</view> </view>
@ -25,7 +25,9 @@
</view> </view>
<view v-if="historyList.length == 0" style="text-align: center; color: #999;">暂无搜索历史~</view> <view v-if="historyList.length == 0" style="text-align: center; color: #999;">暂无搜索历史~</view>
<block v-if="isShop==false"> <block v-if="isShop==false">
<view class='title'>热门搜索</view>
<!-- <view class='title'>热门搜索</view>
<view class='list acea-row' :style="{'height': hotSearchBox?'auto':'150rpx'}"> <view class='list acea-row' :style="{'height': hotSearchBox?'auto':'150rpx'}">
<block v-for="(item,index) in hotSearchList" :key="index"> <block v-for="(item,index) in hotSearchList" :key="index">
<view class='item line1' @tap='setHotSearchValue(item,1)'>{{item.keyword}}</view> <view class='item line1' @tap='setHotSearchValue(item,1)'>{{item.keyword}}</view>
@ -38,9 +40,9 @@
<view class="more-btn" v-if="hotSearchList.length>8 && hotSearchBox" @click="hotSearchBox = false"> <view class="more-btn" v-if="hotSearchList.length>8 && hotSearchBox" @click="hotSearchBox = false">
收起<text class="iconfont icon-xiangshang"></text> 收起<text class="iconfont icon-xiangshang"></text>
</view> </view>
</view> </view> -->
<!--今日热搜模块--> <!--今日热搜模块-->
<view class="search-hot"> <!-- <view class="search-hot">
<scroll-view v-if="isShow" scroll-x="true" style="white-space: nowrap; display: flex;" scroll-with-animation show-scrollbar="true"> <scroll-view v-if="isShow" scroll-x="true" style="white-space: nowrap; display: flex;" scroll-with-animation show-scrollbar="true">
<view v-if="daySearchList.length>0" class="scroll-count"> <view v-if="daySearchList.length>0" class="scroll-count">
<view class="scroll-item" :style="{'background-image':`url(${domain}/static/images/search-title-bg.png)`}"> <view class="scroll-item" :style="{'background-image':`url(${domain}/static/images/search-title-bg.png)`}">
@ -70,7 +72,7 @@
</view> </view>
</view> </view>
</view> </view>
<!--热销排行--> 热销排行
<view v-for="(item,index) in hotRankList" class="scroll-count"> <view v-for="(item,index) in hotRankList" class="scroll-count">
<view class="scroll-item" :style="{'background-image':`url(${domain}/static/images/search-title-bg.png)`}"> <view class="scroll-item" :style="{'background-image':`url(${domain}/static/images/search-title-bg.png)`}">
<view class="search-title"> <view class="search-title">
@ -110,8 +112,8 @@
<text>开启热搜榜</text> <text>开启热搜榜</text>
</view> </view>
</view> </view>
</view> </view> -->
</block> </block>
</view> </view>
<!-- #ifndef H5 --> <!-- #ifndef H5 -->
<passwordPopup></passwordPopup> <passwordPopup></passwordPopup>
@ -129,17 +131,34 @@
// +---------------------------------------------------------------------- // +----------------------------------------------------------------------
// | Author: CRMEB Team <admin@crmeb.com> // | Author: CRMEB Team <admin@crmeb.com>
// +---------------------------------------------------------------------- // +----------------------------------------------------------------------
import { getSearchKeyword,copyPasswordSearch,getTodayHotSearch,getHotRanking } from '@/api/store.js'; import {
getSearchKeyword,
copyPasswordSearch,
getTodayHotSearch,
getHotRanking
} from '@/api/store.js';
import shareScence from '@/libs/spread'; import shareScence from '@/libs/spread';
import { silenceBindingSpread } from '@/utils'; import {
import { goShopDetail } from '@/libs/order.js'; silenceBindingSpread
import { initiateAssistApi } from '@/api/activity.js'; } from '@/utils';
import { mapGetters } from 'vuex'; import {
import { HTTP_REQUEST_URL } from '@/config/app'; goShopDetail
} from '@/libs/order.js';
import {
initiateAssistApi
} from '@/api/activity.js';
import {
mapGetters
} from 'vuex';
import {
HTTP_REQUEST_URL
} from '@/config/app';
// #ifndef H5 // #ifndef H5
import passwordPopup from '@/components/passwordPopup'; import passwordPopup from '@/components/passwordPopup';
// #endif // #endif
import { toLogin } from '@/libs/login.js'; import {
toLogin
} from '@/libs/login.js';
export default { export default {
computed: mapGetters(['isLogin', 'uid']), computed: mapGetters(['isLogin', 'uid']),
components: { components: {
@ -173,19 +192,19 @@
hotSearchBox: false, hotSearchBox: false,
mainWidth: 960, mainWidth: 960,
isShow: true, isShow: true,
back: false, back: false,
isShop: false, isShop: false,
}; };
}, },
onLoad(options) { onLoad(options) {
this.searchValue = options.searchVal || '' this.searchValue = options.searchVal || ''
this.back = options.back; this.back = options.back;
if(options.shop=='true'){ if (options.shop == 'true') {
this.isShop = options.shop; this.isShop = options.shop;
uni.setNavigationBarTitle({ uni.setNavigationBarTitle({
title: '搜索店铺' title: '搜索店铺'
}) })
} }
}, },
onShow: function() { onShow: function() {
try { try {
@ -230,13 +249,13 @@
}); });
}, },
/*今日热搜*/ /*今日热搜*/
getHotSearchList(){ getHotSearchList() {
getTodayHotSearch().then(res => { getTodayHotSearch().then(res => {
this.$set(this, 'daySearchList', res.data); this.$set(this, 'daySearchList', res.data);
}); });
}, },
/*热销排行*/ /*热销排行*/
getHotRankingList(){ getHotRankingList() {
getHotRanking().then(res => { getHotRanking().then(res => {
this.$set(this, 'hotRankList', res.data); this.$set(this, 'hotRankList', res.data);
}); });
@ -257,19 +276,21 @@
this.$set(this, 'searchValue', event.detail.value); this.$set(this, 'searchValue', event.detail.value);
}, },
searchBut: function() { searchBut: function() {
if(this.back) { if (this.back) {
return uni.navigateBack({ return uni.navigateBack({
success: () => { success: () => {
uni.$emit('searchValue', this.searchValue) uni.$emit('searchValue', this.searchValue)
} }
}) })
} }
if(/^(\/@[1-9]{1}).*\*\//.test(this.searchValue)){ if (/^(\/@[1-9]{1}).*\*\//.test(this.searchValue)) {
uni.showLoading({ uni.showLoading({
title: '加载中', title: '加载中',
mask: true mask: true
}); });
copyPasswordSearch({key: this.searchValue}).then(res => { copyPasswordSearch({
key: this.searchValue
}).then(res => {
uni.hideLoading(); uni.hideLoading();
let item = res.data let item = res.data
shareScence(res.data.user.uid, this.isLogin); shareScence(res.data.user.uid, this.isLogin);
@ -283,7 +304,8 @@
let id = res.data.product_assist_set_id; let id = res.data.product_assist_set_id;
uni.hideLoading(); uni.hideLoading();
uni.navigateTo({ uni.navigateTo({
url: '/pages/activity/assist_detail/index?id=' + id url: '/pages/activity/assist_detail/index?id=' +
id
}); });
}) })
@ -294,7 +316,7 @@
}); });
}); });
} else { } else {
toLogin() toLogin()
} }
}) })
}).catch(err => { }).catch(err => {
@ -304,7 +326,7 @@
}); });
this.searchValue = "" this.searchValue = ""
}); });
}else{ } else {
let status = false let status = false
this.tempStorage.forEach((el, index) => { this.tempStorage.forEach((el, index) => {
if (el == this.searchValue) { if (el == this.searchValue) {
@ -335,9 +357,11 @@
.searchGood .search { .searchGood .search {
padding-left: 30rpx; padding-left: 30rpx;
} }
.searchGood .search { .searchGood .search {
margin-top: 20rpx; margin-top: 20rpx;
} }
.searchGood .search .input { .searchGood .search .input {
width: 598rpx; width: 598rpx;
background-color: #f7f7f7; background-color: #f7f7f7;
@ -346,17 +370,21 @@
box-sizing: border-box; box-sizing: border-box;
height: 66rpx; height: 66rpx;
} }
.searchGood .search .input input { .searchGood .search .input input {
width: 472rpx; width: 472rpx;
font-size: 28rpx; font-size: 28rpx;
} }
.searchGood .search .input .placeholder { .searchGood .search .input .placeholder {
color: #bbb; color: #bbb;
} }
.searchGood .search .input .iconfont { .searchGood .search .input .iconfont {
color: #000; color: #000;
font-size: 35rpx; font-size: 35rpx;
} }
.searchGood .search .bnt { .searchGood .search .bnt {
width: 120rpx; width: 120rpx;
text-align: center; text-align: center;
@ -365,11 +393,13 @@
font-size: 30rpx; font-size: 30rpx;
color: #282828; color: #282828;
} }
.searchGood .title { .searchGood .title {
position: relative; position: relative;
font-size: 28rpx; font-size: 28rpx;
color: #282828; color: #282828;
margin: 50rpx 30rpx 25rpx 30rpx; margin: 50rpx 30rpx 25rpx 30rpx;
.icon-shanchu { .icon-shanchu {
position: absolute; position: absolute;
right: 0; right: 0;
@ -378,10 +408,12 @@
color: #999; color: #999;
} }
} }
.searchGood .list { .searchGood .list {
padding: 0 10rpx; padding: 0 10rpx;
overflow: hidden; overflow: hidden;
} }
.searchGood .list .item { .searchGood .list .item {
font-size: 26rpx; font-size: 26rpx;
color: #666; color: #666;
@ -393,10 +425,12 @@
margin: 0 0 20rpx 20rpx; margin: 0 0 20rpx 20rpx;
max-width: 150rpx; max-width: 150rpx;
} }
.searchGood .line { .searchGood .line {
border-bottom: 1rpx solid #eee; border-bottom: 1rpx solid #eee;
margin: 20rpx 30rpx 0 30rpx; margin: 20rpx 30rpx 0 30rpx;
} }
.more-btn { .more-btn {
display: flex; display: flex;
align-items: center; align-items: center;
@ -405,97 +439,117 @@
height: 60rpx; height: 60rpx;
font-size: 24rpx; font-size: 24rpx;
color: #999; color: #999;
.iconfont { .iconfont {
font-size: 22rpx; font-size: 22rpx;
margin-left: 10rpx; margin-left: 10rpx;
} }
} }
.search-hot{
.search-hot {
padding: 0 30rpx 30rpx; padding: 0 30rpx 30rpx;
padding-bottom: calc(30rpx+ constant(safe-area-inset-bottom)); /// IOS<11.2/ padding-bottom: calc(30rpx+ constant(safe-area-inset-bottom)); /// IOS<11.2/
padding-bottom: calc(30rpx + env(safe-area-inset-bottom)); /// IOS>11.2/ padding-bottom: calc(30rpx + env(safe-area-inset-bottom)); /// IOS>11.2/
scroll-view{
width:100%; scroll-view {
width: 100%;
} }
/deep/.uni-scroll-view-content{
/deep/.uni-scroll-view-content {
display: flex; display: flex;
} }
} }
.scroll-item{
.scroll-item {
border: 1px solid #FFECEC; border: 1px solid #FFECEC;
border-radius: 16rpx; border-radius: 16rpx;
background-repeat: no-repeat; background-repeat: no-repeat;
background-size: 100% auto; background-size: 100% auto;
height: 980rpx; height: 980rpx;
} }
.scroll-count{
.scroll-count {
display: inline-block; display: inline-block;
width: 450rpx; width: 450rpx;
margin-right: 30rpx; margin-right: 30rpx;
vertical-align:top; vertical-align: top;
&:last-child{
&:last-child {
margin-right: 0; margin-right: 0;
} }
.search-title{
.search-title {
padding: 20rpx 20rpx 32rpx; padding: 20rpx 20rpx 32rpx;
color: #E93323; color: #E93323;
font-size: 28rpx; font-size: 28rpx;
font-weight: bold; font-weight: bold;
display: flex; display: flex;
align-items: center; align-items: center;
.title-icon{
.title-icon {
width: 30rpx; width: 30rpx;
height: 30rpx; height: 30rpx;
margin-right: 10rpx; margin-right: 10rpx;
} }
} }
.search-list{
.search-list {
padding: 0 20rpx 40rpx; padding: 0 20rpx 40rpx;
position: relative; position: relative;
top: -15rpx; top: -15rpx;
} }
.search-item{
.search-item {
display: flex; display: flex;
align-items: center; align-items: center;
margin-bottom: 20rpx; margin-bottom: 20rpx;
&:nth-child(n+3){
&:nth-child(n+3) {
margin-bottom: 0; margin-bottom: 0;
} }
.list-more{
.list-more {
display: flex; display: flex;
align-items: center; align-items: center;
margin-top: 40rpx; margin-top: 40rpx;
} }
.picture{
.picture {
width: 106rpx; width: 106rpx;
height: 106rpx; height: 106rpx;
border-radius: 10rpx; border-radius: 10rpx;
position: relative; position: relative;
.image{
.image {
width: 100%; width: 100%;
height: 100%; height: 100%;
border-radius: 10rpx; border-radius: 10rpx;
} }
} }
.list-info{
.list-info {
max-width: 260rpx; max-width: 260rpx;
margin-left: 20rpx; margin-left: 20rpx;
} }
.title{
.title {
margin: 0; margin: 0;
color: #282828; color: #282828;
font-size: 26rpx; font-size: 26rpx;
&.titleml{
&.titleml {
margin-left: 15rpx; margin-left: 15rpx;
max-width: 360rpx; max-width: 360rpx;
} }
} }
.info{
.info {
font-size: 22rpx; font-size: 22rpx;
color: #999999; color: #999999;
} }
} }
.list-num{
.list-num {
width: 28rpx; width: 28rpx;
height: 31rpx; height: 31rpx;
display: flex; display: flex;
@ -504,16 +558,19 @@
font-size: 20rpx; font-size: 20rpx;
color: #ffffff; color: #ffffff;
background-size: 100% 100%; background-size: 100% 100%;
&.num-pic{
&.num-pic {
position: absolute; position: absolute;
top: 0; top: 0;
left: 0; left: 0;
} }
} }
} }
.search-hot-switch{
.search-hot-switch {
margin-top: 20rpx; margin-top: 20rpx;
.switch{
.switch {
border: 1px solid #CCCCCC; border: 1px solid #CCCCCC;
border-radius: 22rpx; border-radius: 22rpx;
display: flex; display: flex;
@ -523,7 +580,8 @@
height: 43rpx; height: 43rpx;
color: #666666; color: #666666;
font-size: 20rpx; font-size: 20rpx;
.iconfont{
.iconfont {
font-size: 24rpx; font-size: 24rpx;
margin-right: 10rpx; margin-right: 10rpx;
position: relative; position: relative;

@ -2,7 +2,7 @@
<view class="container"> <view class="container">
<!-- #ifdef APP-PLUS --> <!-- #ifdef APP-PLUS -->
<view v-if="!isWeixin" class="v-navbar"> <view v-if="!isWeixin" class="v-navbar">
<u-navbar title="提货付款" :safeAreaInsetTop="false" :fixed="false" @leftClick="leftClick" bgColor="transparent" <u-navbar title="支付" :safeAreaInsetTop="false" :fixed="false" @leftClick="leftClick" bgColor="transparent"
leftIconColor="#333" :titleStyle="{color:'#333',fontWeight:'bold',fontSize:'32rpx'}"> leftIconColor="#333" :titleStyle="{color:'#333',fontWeight:'bold',fontSize:'32rpx'}">
</u-navbar> </u-navbar>
</view> </view>
@ -49,11 +49,12 @@
</scroll-view> --> </scroll-view> -->
</view> </view>
</view> </view>
<!-- #ifdef H5 -->
<view class="v-btn-wrap" @click="submitOrder"> <!-- <view class="v-btn-wrap" @click="submitOrder">
<u-button class="v-btn" :loading="loading" <u-button class="v-btn" :loading="loading"
:text="Number(cartForm.total_amount||0).toFixed(2)+'元 确认支付'"></u-button> :text="Number(cartForm.total_amount||0).toFixed(2)+'元 确认支付'"></u-button>
</view> </view> -->
<!-- #endif -->
<!-- 登陆 --> <!-- 登陆 -->
<authorize :isAuto="isAuto" :is-pay="true" :isShowAuth="isShowAuth" @authColse="authColse" <authorize :isAuto="isAuto" :is-pay="true" :isShowAuth="isShowAuth" @authColse="authColse"

@ -102,7 +102,7 @@
<text @click="openDiscount">优惠明细</text> <text @click="openDiscount">优惠明细</text>
</view> </view>
</view> </view>
<view class='settlement' style='z-index:100' @tap="SubOrder">{{'提交订单'}}</view> <view class='settlement' style='z-index:100' @tap="SubOrder">{{'立即支付'}}</view>
</view> </view>
</view> </view>
<block v-if="coupon.status"> <block v-if="coupon.status">

@ -4,8 +4,9 @@
<view class='search acea-row row-between-wrapper'> <view class='search acea-row row-between-wrapper'>
<view class='input acea-row row-between-wrapper'> <view class='input acea-row row-between-wrapper'>
<text class='iconfont icon-sousuo2'></text> <text class='iconfont icon-sousuo2'></text>
<input type='text' :value='searchValue' :focus="focus" placeholder='请输入关键字' placeholder-class='placeholder' <input type='text' :value='searchValue' :focus="focus" placeholder='请输入关键字'
@input="setValue" confirm-type="search" @confirm="searchBut()"></input> placeholder-class='placeholder' @input="setValue" confirm-type="search"
@confirm="searchBut()"></input>
</view> </view>
<view class='bnt' @tap='searchCancle'>取消</view> <view class='bnt' @tap='searchCancle'>取消</view>
</view> </view>
@ -24,20 +25,20 @@
</view> </view>
</view> </view>
<view v-if="historyList.length == 0" style="text-align: center; color: #999;">暂无搜索历史~</view> <view v-if="historyList.length == 0" style="text-align: center; color: #999;">暂无搜索历史~</view>
<view class='title'>热门搜索</view> <!-- <view class='title'>热门搜索</view>
<view class='list acea-row' :style="{'height': hotSearchBox?'auto':'150rpx'}"> <view class='list acea-row' :style="{'height': hotSearchBox?'auto':'150rpx'}">
<block v-for="(item,index) in hotSearchList" :key="index"> <block v-for="(item,index) in hotSearchList" :key="index">
<view class='item line1' @tap='setHotSearchValue(item,1)'>{{item.keyword}}</view> <view class='item line1' @tap='setHotSearchValue(item,1)'>{{item.keyword}}</view>
</block> </block>
</view> </view> -->
<view> <!-- <view>
<view class="more-btn" v-if="hotSearchList.length>8 && !hotSearchBox" @click="hotSearchBox = true"> <view class="more-btn" v-if="hotSearchList.length>8 && !hotSearchBox" @click="hotSearchBox = true">
展开全部<text class="iconfont icon-xiangxia"></text> 展开全部<text class="iconfont icon-xiangxia"></text>
</view> </view>
<view class="more-btn" v-if="hotSearchList.length>8 && hotSearchBox" @click="hotSearchBox = false"> <view class="more-btn" v-if="hotSearchList.length>8 && hotSearchBox" @click="hotSearchBox = false">
收起<text class="iconfont icon-xiangshang"></text> 收起<text class="iconfont icon-xiangshang"></text>
</view> </view>
</view> </view> -->
</view> </view>
</view> </view>
</template> </template>
@ -52,7 +53,9 @@
// +---------------------------------------------------------------------- // +----------------------------------------------------------------------
// | Author: CRMEB Team <admin@crmeb.com> // | Author: CRMEB Team <admin@crmeb.com>
// +---------------------------------------------------------------------- // +----------------------------------------------------------------------
import { hotSearchLst } from '@/api/community.js'; import {
hotSearchLst
} from '@/api/community.js';
export default { export default {
data() { data() {
return { return {
@ -149,7 +152,7 @@
url: '/pages/plantGrass/plant_search_list/index?searchValue=' + this.searchValue url: '/pages/plantGrass/plant_search_list/index?searchValue=' + this.searchValue
}) })
}, },
searchCancle(){ searchCancle() {
uni.navigateBack(); uni.navigateBack();
} }
} }
@ -166,6 +169,7 @@
padding-left: 30rpx; padding-left: 30rpx;
margin-top: 20rpx; margin-top: 20rpx;
} }
.searchGood .search .input { .searchGood .search .input {
width: 598rpx; width: 598rpx;
background-color: #f7f7f7; background-color: #f7f7f7;
@ -174,17 +178,21 @@
box-sizing: border-box; box-sizing: border-box;
height: 66rpx; height: 66rpx;
} }
.searchGood .search .input input { .searchGood .search .input input {
width: 472rpx; width: 472rpx;
font-size: 28rpx; font-size: 28rpx;
} }
.searchGood .search .input .placeholder { .searchGood .search .input .placeholder {
color: #bbb; color: #bbb;
} }
.searchGood .search .input .iconfont { .searchGood .search .input .iconfont {
color: #000; color: #000;
font-size: 35rpx; font-size: 35rpx;
} }
.searchGood .search .bnt { .searchGood .search .bnt {
width: 120rpx; width: 120rpx;
text-align: center; text-align: center;
@ -193,11 +201,13 @@
font-size: 30rpx; font-size: 30rpx;
color: #282828; color: #282828;
} }
.searchGood .title { .searchGood .title {
position: relative; position: relative;
font-size: 28rpx; font-size: 28rpx;
color: #282828; color: #282828;
margin: 50rpx 30rpx 25rpx 30rpx; margin: 50rpx 30rpx 25rpx 30rpx;
.icon-shanchu { .icon-shanchu {
position: absolute; position: absolute;
right: 0; right: 0;
@ -206,10 +216,12 @@
color: #999; color: #999;
} }
} }
.searchGood .list { .searchGood .list {
padding: 0 10rpx; padding: 0 10rpx;
overflow: hidden; overflow: hidden;
} }
.searchGood .list .item { .searchGood .list .item {
font-size: 26rpx; font-size: 26rpx;
color: #666; color: #666;
@ -221,10 +233,12 @@
margin: 0 0 20rpx 20rpx; margin: 0 0 20rpx 20rpx;
max-width: 150rpx; max-width: 150rpx;
} }
.searchGood .line { .searchGood .line {
border-bottom: 1rpx solid #eee; border-bottom: 1rpx solid #eee;
margin: 20rpx 30rpx 0 30rpx; margin: 20rpx 30rpx 0 30rpx;
} }
.more-btn { .more-btn {
display: flex; display: flex;
align-items: center; align-items: center;
@ -233,6 +247,7 @@
height: 60rpx; height: 60rpx;
font-size: 24rpx; font-size: 24rpx;
color: #999; color: #999;
.iconfont { .iconfont {
font-size: 22rpx; font-size: 22rpx;
margin-left: 10rpx; margin-left: 10rpx;

@ -153,7 +153,8 @@
<view class="text on acea-row row-between-wrapper"> <view class="text on acea-row row-between-wrapper">
<view class="name line1"> <view class="name line1">
<text class="name_text line1">{{ item.store_name }}</text> <text class="name_text line1">{{ item.store_name }}</text>
<text class="sale_num">已销 {{item.sales}}{{item.sales>0?'+':''}}</text> <text v-if="item.sales>0"
class="sale_num">已销{{item.sales}}{{item.sales>0?'+':''}}</text>
</view> </view>
<!-- 标签 --> <!-- 标签 -->

File diff suppressed because it is too large Load Diff