From b10eb57418fa353211313f4ff20a9da39ae51156 Mon Sep 17 00:00:00 2001 From: mkm <727897186@qq.com> Date: Fri, 19 May 2023 15:05:53 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pages/gather/gather.vue | 12 +- pages/nongKe/supply_chain/supplier.vue | 2168 ++++++++++++------------ pages/store/home/index.vue | 6 + 3 files changed, 1118 insertions(+), 1068 deletions(-) diff --git a/pages/gather/gather.vue b/pages/gather/gather.vue index b87f7f7..0579e56 100644 --- a/pages/gather/gather.vue +++ b/pages/gather/gather.vue @@ -4,8 +4,8 @@ <u-empty :show="jurisdiction" marginTop="260" mode="permission" :text="emptyText" icon="http://cdn.uviewui.com/uview/empty/permission.png"></u-empty> <block v-if="isLogin"> - <!-- <view class="special_work com" v-if="userInfoData.mer_info.type_id === 12"> --> - <view class="special_work com" v-if="true"> + <view class="special_work com" v-if="userInfoData.mer_info.type_id === 12"> + <!-- <view class="special_work com" v-if="true"> --> <view class="title">市级供应链</view> <view class="content"> <view class="examine" @click="navigator(`/pages/nongKe/supply_chain/goods_list?merid=${mer_id}`)"> @@ -38,8 +38,8 @@ </view> </view> - <!-- <view class="business com" v-if="userInfoData.mer_info.type_id === 10"> --> - <view class="business com" v-if="true"> + <view class="business com" v-if="userInfoData.mer_info.type_id === 10"> + <!-- <view class="business com" v-if="true"> --> <view class="special_work com"> <view class="title">我的店铺</view> <view class="content "> @@ -99,8 +99,8 @@ <!-- <gatherBusiness :userInfoData="userInfoData" /> --> </view> - <!-- <view class="business com" v-if="userInfoData.mer_info.type_id === 11"> --> - <view class="business com" v-if="true"> + <view class="business com" v-if="userInfoData.mer_info.type_id === 11"> + <!-- <view class="business com" v-if="true"> --> <view class="special_work com"> <view class="title">里海云仓</view> <view class="content "> diff --git a/pages/nongKe/supply_chain/supplier.vue b/pages/nongKe/supply_chain/supplier.vue index bfede4f..c540736 100644 --- a/pages/nongKe/supply_chain/supplier.vue +++ b/pages/nongKe/supply_chain/supplier.vue @@ -1,1069 +1,1113 @@ <template> - <view> - <view class='productList' :style="viewColor"> - <view class='search acea-row row-between-wrapper' :class="'styleType'+store_street_theme"> - <!--#ifdef H5--> - <view class="back" @click='backjJump()'> - <view class="iconfont icon-xiangzuo"></view> - </view> - <!--#endif--> - <view class='input acea-row row-between-wrapper'><text class='iconfont icon-sousuo'></text> - <input placeholder='搜索店铺名称' placeholder-class='placeholder' confirm-type='search' name="search" - :value='sotreParam.keyword' @confirm="searchSubmit"></input> - </view> - <view v-if="mer_location == 1" :class="'styleType'+store_street_theme" style="text-align: right;" - class='iconfont search-right' @click='showMaoLocation(latitude,longitude)'> - <view class="iconfont icon-dingwei"></view> - <view class="right-text" v-if="recommend_address"> - {{recommend_address}} - </view> - <view class="iconfont icon-xiangyou" v-if="recommend_address"></view> - </view> - </view> - <view class="nav-wrapper" :class="'styleType'+store_street_theme"> - <view class='nav acea-row row-middle' :class="'styleType'+store_street_theme"> - <view v-for="item in downMenus" :key="item.key" class='item' :class="{'font-colors':firstKey == item.key}" - @click='set_where(item.key)'> - <view class=""> - {{item.title}} - </view> - <view class="line" :class="{'font-line':firstKey == item.key}"> - </view> - </view> - <view class="item" @click="bindRight"> - <view>筛选 - <!-- <text class="iconfont icon-shaixuan"></text> --> - </view> - <view class="line"> - </view> - </view> - </view> - </view> - <!-- 店铺 --> - <block> - <view class="mer-box"> - <block v-if="store_street_theme == 1"> - <view class="mer-item" v-for="(item,index) in storeList" :key='index'> - <view class="mer-hd" @click="goStore(item.mer_id)"> - <image :src="item.mini_banner?item.mini_banner:item.mer_banner" mode="aspectFill"></image> - <view class="mer-name"> - <image :src="item.mer_avatar"></image> - <view class=""> - <view class="mer-top"> - <view class="txt line1">{{item.mer_name}}</view> - <image v-if="margin_ico_switch==1 && margin_ico && item.is_margin==10" :src="margin_ico" - class="store-margin"></image> - <text v-if="item.type_name" class="font-bg-red ml8">{{item.type_name}}</text> - <text v-else-if="item.is_trader" class="font-bg-red ml8">自营</text> - </view> - <view class="mer-btn"> - <view class=""> - {{item.care_count<10000 ? item.care_count : (item.care_count/10000).toFixed(2)+'万'}}人关注 - </view> - <view class="line" v-if="item.distance"></view> - <view class="distance" v-if="item.distance" @click.stop="showStoreLocation(item)"> - <view class=""> - {{item.distance}} - </view> - <view class="iconfont icon-xiangyou"></view> - </view> - </view> - </view> - </view> - </view> - <view class="pro-box" :class="'styleType'+store_street_theme"> - <navigator :url="`/pages/goods_details/index?id=${itemn.product_id}&product_type=98`" hover-class="none" - class="pro-item" v-for="(itemn,indexn) in item.recommend.slice(0,3)" :key='indexn'> - <view class="picture"> - <easy-loadimage mode="widthFix" :image-src="itemn.image"></easy-loadimage> - <view v-if="itemn.border_pic" :style="{ backgroundImage: `url(${itemn.border_pic})` }" - class="border-picture"></view> - </view> - <view class="price"> - <text>¥</text>{{itemn.price}} - </view> - </navigator> - </view> - </view> - </block> - <block v-if="store_street_theme == 2"> - <view class="mer-item2" v-for="(item,index) in storeList" :key='index'> - <view class="mer-hd mer-shop-count" @click="goStore(item.mer_id)"> - <image class="mer-avatar" :src="item.mer_avatar"></image> - <view class="mer-shop-right"> - <view class="mer-count"> - <view class="mer-top"> - <view class="txt line1">{{item.mer_name}}</view> - <text v-if="item.type_name" class="font-bg-red ml8">{{item.type_name}}</text> - <text v-else-if="item.is_trader" class="font-bg-red ml8">自营</text> - </view> - <view class="mer-btn"> - <view class=""> - {{item.care_count<10000 ? item.care_count : (item.care_count/10000).toFixed(2)+'万'}}人关注 - </view> - <view class="line" v-if="item.distance"></view> - <view class="distance" v-if="item.distance" @click.stop="showStoreLocation(item)"> - <view class=""> - {{item.distance}} - </view> - <view class="iconfont icon-xiangyou"></view> - </view> - </view> - </view> - <view class="pro-box"> - <navigator :url="`/pages/goods_details/index?id=${itemn.product_id}`" hover-class="none" - class="pro-item" v-for="(itemn,indexn) in item.recommend.slice(0,3)" :key='indexn'> - <view class="picture"> - <easy-loadimage mode="widthFix" :image-src="itemn.image"></easy-loadimage> - <view v-if="itemn.border_pic" :style="{ backgroundImage: `url(${itemn.border_pic})` }" - class="border-picture"></view> - </view> - <view class="price"> - <text>¥</text>{{itemn.price}} - </view> - </navigator> - </view> - </view> - </view> - </view> - </block> - <block v-if="store_street_theme == 3"> - <view class="mer-item mer-item3" v-for="(item,index) in storeList" :key='index' - :style="'background-image:url('+item.mini_banner+')'"> - <view class="mer-hd" @click="goStore(item.mer_id)"> - <view class="mer-name"> - <image :src="item.mer_avatar"></image> - <view class=""> - <view class="mer-top"> - <view class="txt line1">{{item.mer_name}}</view> - <text v-if="item.type_name" class="font-bg-red ml8">{{item.type_name}}</text> - <text v-else-if="item.is_trader" class="font-bg-red ml8">自营</text> - </view> - <view class="mer-btn"> - <view class=""> - {{item.care_count<10000 ? item.care_count : (item.care_count/10000).toFixed(2)+'万'}}人关注 - </view> - <view class="line" v-if="item.distance"></view> - <view class="distance" v-if="item.distance" @click.stop="showStoreLocation(item)"> - <view class=""> - {{item.distance}} - </view> - <view class="iconfont icon-xiangyou"></view> - </view> - </view> - </view> - </view> - </view> - <view class="pro-box" :class="'styleType'+store_street_theme"> - <navigator :url="`/pages/goods_details/index?id=${itemn.product_id}`" hover-class="none" - class="pro-item" v-for="(itemn,indexn) in item.recommend.slice(0,3)" :key='indexn'> - <view class="picture"> - <image :src="itemn.image"></image> - <view v-if="itemn.border_pic" :style="{ backgroundImage: `url(${itemn.border_pic})` }" - class="border-picture"></view> - </view> - <view class="price"> - <text>¥</text>{{itemn.price}} - </view> - </navigator> - </view> - </view> - </block> - <view class='loadingicon acea-row row-center-wrapper' v-if="loading"> - <text class='loading iconfont icon-jiazai' :hidden='loading==false'></text>{{loadTitle}} - </view> - </view> - <view class='no-shop' v-if="!storeList.length && !loading && !loadingIcon" v-cloak> - <view class='pictrue' style="margin: 0 auto;"> - <image src='../../../static/images/noCart.png'></image> - <text>暂无店铺,快去搜索其他店铺吧</text> - </view> - </view> - </block> - </view> - <rightSlider v-if="rightBox" :status="rightBox" :merList="merList" :storeTypeArr="storeTypeArr" @confirm="confirm" - @close="close"></rightSlider> - </view> + <view> + <view class='productList' :style="viewColor"> + <view class='search acea-row row-between-wrapper' :class="'styleType'+store_street_theme"> + <!--#ifdef H5--> + <view class="back" @click='backjJump()'> + <view class="iconfont icon-xiangzuo"></view> + </view> + <!--#endif--> + <view class='input acea-row row-between-wrapper'><text class='iconfont icon-sousuo'></text> + <input placeholder='搜索店铺名称' placeholder-class='placeholder' confirm-type='search' name="search" + :value='sotreParam.keyword' @confirm="searchSubmit"></input> + </view> + <view v-if="mer_location == 1" :class="'styleType'+store_street_theme" style="text-align: right;" + class='iconfont search-right' @click='showMaoLocation(latitude,longitude)'> + <view class="iconfont icon-dingwei"></view> + <view class="right-text" v-if="recommend_address"> + {{recommend_address}} + </view> + <view class="iconfont icon-xiangyou" v-if="recommend_address"></view> + </view> + </view> + <view class="nav-wrapper" :class="'styleType'+store_street_theme"> + <view class='nav acea-row row-middle' :class="'styleType'+store_street_theme"> + <view v-for="item in downMenus" :key="item.key" class='item' + :class="{'font-colors':firstKey == item.key}" @click='set_where(item.key)'> + <view class=""> + {{item.title}} + </view> + <view class="line" :class="{'font-line':firstKey == item.key}"> + </view> + </view> + <view class="item" @click="bindRight"> + <view>筛选 + <!-- <text class="iconfont icon-shaixuan"></text> --> + </view> + <view class="line"> + </view> + </view> + </view> + </view> + <!-- 店铺 --> + <block> + <view class="mer-box"> + <block v-if="store_street_theme == 1"> + <view class="mer-item" v-for="(item,index) in storeList" :key='index'> + <view class="mer-hd" @click="goStore(item.mer_id)"> + <image :src="item.mini_banner?item.mini_banner:item.mer_banner" mode="aspectFill"> + </image> + <view class="mer-name"> + <image :src="item.mer_avatar"></image> + <view class=""> + <view class="mer-top"> + <view class="txt line1">{{item.mer_name}}</view> + <image v-if="margin_ico_switch==1 && margin_ico && item.is_margin==10" + :src="margin_ico" class="store-margin"></image> + <text v-if="item.type_name" + class="font-bg-red ml8">{{item.type_name}}</text> + <text v-else-if="item.is_trader" class="font-bg-red ml8">自营</text> + </view> + <view class="mer-btn"> + <view class=""> + {{item.care_count<10000 ? item.care_count : (item.care_count/10000).toFixed(2)+'万'}}人关注 + </view> + <view class="line" v-if="item.distance"></view> + <view class="distance" v-if="item.distance" + @click.stop="showStoreLocation(item)"> + <view class=""> + {{item.distance}} + </view> + <view class="iconfont icon-xiangyou"></view> + </view> + </view> + </view> + </view> + </view> + <view class="pro-box" :class="'styleType'+store_street_theme"> + <view hover-class="none" class="pro-item" + v-for="(itemn,indexn) in item.recommend" :key='indexn' v-if="indexn<=2"> + <view @click="go_details(itemn.product_type,itemn.product_id)"> + <view class="picture"> + <easy-loadimage mode="widthFix" :image-src="itemn.image"></easy-loadimage> + <view v-if="itemn.border_pic" + :style="{ backgroundImage: `url(${itemn.border_pic})` }" + class="border-picture"></view> + </view> + <view class="price"> + <text>¥</text>{{itemn.price}} + </view> + </view> + </view> + </view> + </view> + </block> + <block v-if="store_street_theme == 2"> + <view class="mer-item2" v-for="(item,index) in storeList" :key='index'> + <view class="mer-hd mer-shop-count" @click="goStore(item.mer_id)"> + <image class="mer-avatar" :src="item.mer_avatar"></image> + <view class="mer-shop-right"> + <view class="mer-count"> + <view class="mer-top"> + <view class="txt line1">{{item.mer_name}}</view> + <text v-if="item.type_name" + class="font-bg-red ml8">{{item.type_name}}</text> + <text v-else-if="item.is_trader" class="font-bg-red ml8">自营</text> + </view> + <view class="mer-btn"> + <view class=""> + {{item.care_count<10000 ? item.care_count : (item.care_count/10000).toFixed(2)+'万'}}人关注 + </view> + <view class="line" v-if="item.distance"></view> + <view class="distance" v-if="item.distance" + @click.stop="showStoreLocation(item)"> + <view class=""> + {{item.distance}} + </view> + <view class="iconfont icon-xiangyou"></view> + </view> + </view> + </view> + <view class="pro-box"> + <view hover-class="none" class="pro-item" + v-for="(itemn,indexn) in item.recommend.slice(0,3)" :key='indexn' v-if="indexn<=2"> + <view @click="go_details(itemn.product_type,itemn.product_id)"> + + <view class="picture"> + <easy-loadimage mode="widthFix" :image-src="itemn.image"> + </easy-loadimage> + <view v-if="itemn.border_pic" + :style="{ backgroundImage: `url(${itemn.border_pic})` }" + class="border-picture"></view> + </view> + <view class="price"> + <text>¥</text>{{itemn.price}} + </view> + </view> + </view> + </view> + </view> + </view> + </view> + </block> + <block v-if="store_street_theme == 3"> + <view class="mer-item mer-item3" v-for="(item,index) in storeList" :key='index' + :style="'background-image:url('+item.mini_banner+')'"> + <view class="mer-hd" @click="goStore(item.mer_id)"> + <view class="mer-name"> + <image :src="item.mer_avatar"></image> + <view class=""> + <view class="mer-top"> + <view class="txt line1">{{item.mer_name}}</view> + <text v-if="item.type_name" + class="font-bg-red ml8">{{item.type_name}}</text> + <text v-else-if="item.is_trader" class="font-bg-red ml8">自营</text> + </view> + <view class="mer-btn"> + <view class=""> + {{item.care_count<10000 ? item.care_count : (item.care_count/10000).toFixed(2)+'万'}}人关注 + </view> + <view class="line" v-if="item.distance"></view> + <view class="distance" v-if="item.distance" + @click.stop="showStoreLocation(item)"> + <view class=""> + {{item.distance}} + </view> + <view class="iconfont icon-xiangyou"></view> + </view> + </view> + </view> + </view> + </view> + <view class="pro-box" :class="'styleType'+store_street_theme"> + <view hover-class="none" class="pro-item" + v-for="(itemn,indexn) in item.recommend.slice(0,3)" :key='indexn' v-if="indexn<=2"> + <view @click="go_details(itemn.product_type,itemn.product_id)"> + + <view class="picture"> + <image :src="itemn.image"></image> + <view v-if="itemn.border_pic" + :style="{ backgroundImage: `url(${itemn.border_pic})` }" + class="border-picture"></view> + </view> + <view class="price"> + <text>¥</text>{{itemn.price}} + </view> + </view> + </view> + </view> + </view> + </block> + <view class='loadingicon acea-row row-center-wrapper' v-if="loading"> + <text class='loading iconfont icon-jiazai' :hidden='loading==false'></text>{{loadTitle}} + </view> + </view> + <view class='no-shop' v-if="!storeList.length && !loading && !loadingIcon" v-cloak> + <view class='pictrue' style="margin: 0 auto;"> + <image src='../../../static/images/noCart.png'></image> + <text>暂无店铺,快去搜索其他店铺吧</text> + </view> + </view> + </block> + </view> + <rightSlider v-if="rightBox" :status="rightBox" :merList="merList" :storeTypeArr="storeTypeArr" + @confirm="confirm" @close="close"></rightSlider> + </view> </template> <script> - import { storeMerchantList, getGeocoder } from '@/api/store.js'; - import recommend from './component/recommend'; - import rightSlider from './component/rightSlider'; - import { merClassifly, getStoreTypeApi } from '@/api/store.js'; - import { mapGetters } from "vuex"; - import { goShopDetail } from '@/libs/order.js' - import { configMap } from '@/utils'; - import easyLoadimage from '@/components/easy-loadimage/easy-loadimage.vue'; - const app = getApp(); - export default { - components: { - recommend, - rightSlider, - easyLoadimage - }, - data() { - return { - price: 0, - stock: 0, - nows: false, - loading: false, - loadingIcon: true, - loadTitle: '加载更多', - title: '', - hotPage: 1, - hotLimit: 10, - hotScroll: false, - // 筛选框 - rightBox: false, - //品牌列表 - brandList: [], - downKey: 0, - downStatus: false, - // 下拉菜单 - downMenu: [{ - title: '默认', - key: 0, - order: "" - }, - { - title: '销量', - key: 1, - order: 'sales' - }, - { - title: '好评', - key: 2, - order: 'rate' - }, - { - title: '距离', - key: 3, - order: 'location' - } - ], - // 是否第一个 - firstKey: 0, - // 商铺列表 - storeList: [], - sotreParam: { - keyword: '', - page: 1, - limit: 10, - order: '', - category_id: '', - type_id: '', - street_id: '' - }, - storeKey: 0, - storeScroll: true, - mer_id: '', - sortId: '', - price_on: '', - price_off: '', - detaile_address: "", - recommend_address: "", - location_address: "", - latitude: "", - longitude: "", - count: 0, - storeTypeArr: [], //店铺类型 - merList: [], //商户分类 - }; - }, - onLoad(options) { - this.sotreParam.street_id = options.street_id - this.sotreParam.type_id = options.type_id - this.sotreParam.type_id = options.type_id && options.type_id.split(',').toString() || '' - this.sotreParam.category_id = options.cate_id && options.cate_id.split(',').toString() || '' - this.storeList = []; - if (this.mer_location == 1) { - this.selfLocation() - } - this.storeMerchantList(); - this.getClassfication(); - this.getStoreType(); - }, - computed: { - downMenus: function() { - return this.downMenu.filter((item) => { - if (this.mer_location) { - return item - } else { - return item.key < 3 - } - }) - }, - ...configMap({ - margin_ico_switch: 0, - margin_ico: '', - mer_location: 0, - store_street_theme: 1, - hide_mer_status: '', - }, mapGetters(['viewColor'])), - }, - methods: { - // 获取商户分类 - getClassfication: function() { - let temp = [] - merClassifly() - .then(res => { - temp = res.data.map(item => { - return { - ...item, - check: false - } - }) - if (this.sotreParam.category_id.length > 0) { - this.sotreParam.category_id.forEach((ids, index) => { - temp.forEach(el => { - if (ids == el.merchant_category_id) { - el.check = true - } - }) - }) - } - this.merList = temp - }) - .catch(res => { - this.$util.Tips({ - title: res - }); - }); - }, - // 获取店铺类型 - getStoreType: function() { - let temp = [] - getStoreTypeApi().then(res => { - res.data.forEach(item => { - if (item.mer_type_id == this.sotreParam.type_id) { - temp.push({ - ...item, - check: true - }) - } - }) - this.storeTypeArr = temp - }) - .catch(res => { - this.$util.Tips({ - title: res - }); - }); - }, - /** 打开地图**/ - showMaoLocation(lat, long) { - if (!lat || !long) return this.$util.Tips({ - title: '请设置允许商城访问您的位置!' - }); - //#ifdef H5 - if (this.$wechat.isWeixin() === true) { - this.$wechat.seeLocation({ - latitude: Number(lat), - longitude: Number(long), - name: '当前位置', - address: this.location_address - }).then(res => { - console.log('success'); - }) - } else { - //#endif - uni.openLocation({ - latitude: parseFloat(lat), - longitude: parseFloat(long), - name: '当前位置', - address: this.location_address, - scale: 8, - success: function(res) { - console.log(res) - }, - }); - // #ifdef H5 - } - //#endif - }, - showStoreLocation(item) { - if (!item.lat || !item.long) return this.$util.Tips({ - title: '请设置允许商城访问您的位置!' - }); - //#ifdef H5 - if (this.$wechat.isWeixin() === true) { - this.$wechat.seeLocation({ - latitude: Number(item.lat), - longitude: Number(item.long), - name: item.mer_name, - address: item.mer_address ? item.mer_address : '', - }).then(res => { - console.log('success'); - }) - } else { - //#endif - uni.openLocation({ - latitude: parseFloat(item.lat), - longitude: parseFloat(item.long), - scale: 8, - name: item.mer_name, - address: item.mer_address ? item.mer_address : '', - success: function(res) { - console.log(res) - }, - }); - // #ifdef H5 - } - //#endif - }, - selfLocation() { - let self = this - uni.getLocation({ - type: 'gcj02', - success: (res) => { - let latitude, longitude; - latitude = res.latitude.toString(); - longitude = res.longitude.toString(); - this.latitude = res.latitude - this.longitude = res.longitude - getGeocoder({ - lat: latitude, - long: longitude - }).then(res => { - console.log(res) - this.detaile_address = res.data.address; - this.location_address = res.data.address; - this.recommend_address = res.data.address.length > 4 ? res.data.address.slice(0, 4) + '...' : - res.data.address - }).catch(err => { - uni.showToast({ - title: err, - icon: 'none' - }) - }) - }, - fail: (res) => { - uni.showToast({ - title: res, - icon: 'none', - duration: 1000 - }); - }, - }); - }, - // 查找店铺 - storeMerchantList() { - if (this.loading) return - this.loading = true - let rqData = { - keyword: this.sotreParam.keyword, - page: this.sotreParam.page, - limit: 10, - order: this.sotreParam.order, - category_id: this.sotreParam.category_id, - type_id: this.sotreParam.type_id, - street_id: this.sotreParam.street_id - } - if (this.latitude) { - rqData.location = this.latitude + ',' + this.longitude - } - console.log(rqData) - storeMerchantList(rqData).then(res => { - this.count = res.data.count - this.storeList = this.storeList.concat(res.data.list) - this.loading = false - this.loadingIcon = false - }) - }, - // 进店 - goStore(id) { - if (this.sotreParam.type_id == 12) { - uni.navigateTo({ - url: `/pages/nongKe/supply_chain/merchant?id=${id}` - }) - } else { - if (this.hide_mer_status != 1) { - uni.navigateTo({ - url: `/pages/store/home/index?id=${id}&type=7` - }) - } - } - }, - searchSubmit: function(e) { - let that = this; - that.$set(that.sotreParam, 'keyword', e.detail.value); - this.set_where(this.firstKey) - }, - // 右侧切换 - bindRight() { - this.sotreParam.page = 1 - this.rightBox = true - }, - // 组件确定 - confirm(data) { - let arr1 = [], - arr2 = [] - if (data.storeTypeArr.length == 0) { - // this.sotreParam.type_id = '' - } else { - data.storeTypeArr.forEach(item => { - arr1.push(item.mer_type_id) - }) - this.sotreParam.type_id = arr1.toString(); - } - if (data.merList.length == 0) { - this.sotreParam.category_id = '' - } else { - data.merList.forEach(item => { - arr2.push(item.merchant_category_id) - }) - this.sotreParam.category_id = arr2.toString(); - } - this.rightBox = data.status - this.loadend = false; - this.$set(this.sotreParam, 'page', 1) - this.storeList = []; - this.storeMerchantList(); - }, - // 组件关闭 - close() { - this.rightBox = false - }, - //点击事件处理 - set_where: function(e) { - if (this.loading) return - this.storeList = [] - this.firstKey = e - this.sotreParam.page = 1 - this.sotreParam.order = this.downMenu[e].order - this.storeMerchantList(); - }, - backjJump() { - uni.navigateBack({ - delta: 1 - }) - }, - }, - //刷新 - onPullDownRefresh() { - uni.stopPullDownRefresh() - }, - //上划加载更多 - onReachBottom() { - if (this.count === this.storeList.length) { - if (this.count === 0) { - return - } - uni.showToast({ - title: '已加载全部', - icon: 'none', - duration: 1000 - }); - } else { - this.sotreParam.page += 1 - this.storeMerchantList() - } - }, - // 滚动监听 - onPageScroll(e) { - // 传入scrollTop值并触发所有easy-loadimage组件下的滚动监听事件 - uni.$emit('scroll'); - } - } + import { + storeMerchantList, + getGeocoder + } from '@/api/store.js'; + import recommend from './component/recommend'; + import rightSlider from './component/rightSlider'; + import { + merClassifly, + getStoreTypeApi + } from '@/api/store.js'; + import { + mapGetters + } from "vuex"; + import { + goShopDetail + } from '@/libs/order.js' + import { + configMap + } from '@/utils'; + import easyLoadimage from '@/components/easy-loadimage/easy-loadimage.vue'; + const app = getApp(); + export default { + components: { + recommend, + rightSlider, + easyLoadimage + }, + data() { + return { + price: 0, + stock: 0, + nows: false, + loading: false, + loadingIcon: true, + loadTitle: '加载更多', + title: '', + hotPage: 1, + hotLimit: 10, + hotScroll: false, + // 筛选框 + rightBox: false, + //品牌列表 + brandList: [], + downKey: 0, + downStatus: false, + // 下拉菜单 + downMenu: [{ + title: '默认', + key: 0, + order: "" + }, + { + title: '销量', + key: 1, + order: 'sales' + }, + { + title: '好评', + key: 2, + order: 'rate' + }, + { + title: '距离', + key: 3, + order: 'location' + } + ], + // 是否第一个 + firstKey: 0, + // 商铺列表 + storeList: [], + sotreParam: { + keyword: '', + page: 1, + limit: 10, + order: '', + category_id: '', + type_id: '', + street_id: '' + }, + storeKey: 0, + storeScroll: true, + mer_id: '', + sortId: '', + price_on: '', + price_off: '', + detaile_address: "", + recommend_address: "", + location_address: "", + latitude: "", + longitude: "", + count: 0, + storeTypeArr: [], //店铺类型 + merList: [], //商户分类 + }; + }, + onLoad(options) { + this.sotreParam.street_id = options.street_id + this.sotreParam.type_id = options.type_id + this.sotreParam.type_id = options.type_id && options.type_id.split(',').toString() || '' + this.sotreParam.category_id = options.cate_id && options.cate_id.split(',').toString() || '' + this.storeList = []; + if (this.mer_location == 1) { + this.selfLocation() + } + this.storeMerchantList(); + this.getClassfication(); + this.getStoreType(); + }, + computed: { + downMenus: function() { + return this.downMenu.filter((item) => { + if (this.mer_location) { + return item + } else { + return item.key < 3 + } + }) + }, + ...configMap({ + margin_ico_switch: 0, + margin_ico: '', + mer_location: 0, + store_street_theme: 1, + hide_mer_status: '', + }, mapGetters(['viewColor'])), + }, + methods: { + // 获取商户分类 + go_details:function(product_type,product_id) { + if (product_type == 98) { + uni.navigateTo({ + url: `/pages/admin/goods_details/index?product_id=${product_id}&product_type=${product_type}` + }) + } + if (product_type == 0) { + uni.navigateTo({ + url: `/pages/goods_details/index?id=${product_id}` + }) + } + }, + getClassfication: function() { + let temp = [] + merClassifly() + .then(res => { + temp = res.data.map(item => { + return { + ...item, + check: false + } + }) + if (this.sotreParam.category_id.length > 0) { + this.sotreParam.category_id.forEach((ids, index) => { + temp.forEach(el => { + if (ids == el.merchant_category_id) { + el.check = true + } + }) + }) + } + this.merList = temp + }) + .catch(res => { + this.$util.Tips({ + title: res + }); + }); + }, + // 获取店铺类型 + getStoreType: function() { + let temp = [] + getStoreTypeApi().then(res => { + res.data.forEach(item => { + if (item.mer_type_id == this.sotreParam.type_id) { + temp.push({ + ...item, + check: true + }) + } + }) + this.storeTypeArr = temp + }) + .catch(res => { + this.$util.Tips({ + title: res + }); + }); + }, + /** 打开地图**/ + showMaoLocation(lat, long) { + if (!lat || !long) return this.$util.Tips({ + title: '请设置允许商城访问您的位置!' + }); + //#ifdef H5 + if (this.$wechat.isWeixin() === true) { + this.$wechat.seeLocation({ + latitude: Number(lat), + longitude: Number(long), + name: '当前位置', + address: this.location_address + }).then(res => { + console.log('success'); + }) + } else { + //#endif + uni.openLocation({ + latitude: parseFloat(lat), + longitude: parseFloat(long), + name: '当前位置', + address: this.location_address, + scale: 8, + success: function(res) { + console.log(res) + }, + }); + // #ifdef H5 + } + //#endif + }, + showStoreLocation(item) { + if (!item.lat || !item.long) return this.$util.Tips({ + title: '请设置允许商城访问您的位置!' + }); + //#ifdef H5 + if (this.$wechat.isWeixin() === true) { + this.$wechat.seeLocation({ + latitude: Number(item.lat), + longitude: Number(item.long), + name: item.mer_name, + address: item.mer_address ? item.mer_address : '', + }).then(res => { + console.log('success'); + }) + } else { + //#endif + uni.openLocation({ + latitude: parseFloat(item.lat), + longitude: parseFloat(item.long), + scale: 8, + name: item.mer_name, + address: item.mer_address ? item.mer_address : '', + success: function(res) { + console.log(res) + }, + }); + // #ifdef H5 + } + //#endif + }, + selfLocation() { + let self = this + uni.getLocation({ + type: 'gcj02', + success: (res) => { + let latitude, longitude; + latitude = res.latitude.toString(); + longitude = res.longitude.toString(); + this.latitude = res.latitude + this.longitude = res.longitude + getGeocoder({ + lat: latitude, + long: longitude + }).then(res => { + console.log(res) + this.detaile_address = res.data.address; + this.location_address = res.data.address; + this.recommend_address = res.data.address.length > 4 ? res.data.address + .slice(0, 4) + '...' : + res.data.address + }).catch(err => { + uni.showToast({ + title: err, + icon: 'none' + }) + }) + }, + fail: (res) => { + uni.showToast({ + title: res, + icon: 'none', + duration: 1000 + }); + }, + }); + }, + // 查找店铺 + storeMerchantList() { + if (this.loading) return + this.loading = true + let rqData = { + keyword: this.sotreParam.keyword, + page: this.sotreParam.page, + limit: 10, + order: this.sotreParam.order, + category_id: this.sotreParam.category_id, + type_id: this.sotreParam.type_id, + street_id: this.sotreParam.street_id + } + if (this.latitude) { + rqData.location = this.latitude + ',' + this.longitude + } + console.log(rqData) + storeMerchantList(rqData).then(res => { + this.count = res.data.count + this.storeList = this.storeList.concat(res.data.list) + this.loading = false + this.loadingIcon = false + }) + }, + // 进店 + goStore(id) { + if (this.sotreParam.type_id == 12) { + uni.navigateTo({ + url: `/pages/nongKe/supply_chain/merchant?id=${id}` + }) + } else { + if (this.hide_mer_status != 1) { + uni.navigateTo({ + url: `/pages/store/home/index?id=${id}&type=7` + }) + } + } + }, + searchSubmit: function(e) { + let that = this; + that.$set(that.sotreParam, 'keyword', e.detail.value); + this.set_where(this.firstKey) + }, + // 右侧切换 + bindRight() { + this.sotreParam.page = 1 + this.rightBox = true + }, + // 组件确定 + confirm(data) { + let arr1 = [], + arr2 = [] + if (data.storeTypeArr.length == 0) { + // this.sotreParam.type_id = '' + } else { + data.storeTypeArr.forEach(item => { + arr1.push(item.mer_type_id) + }) + this.sotreParam.type_id = arr1.toString(); + } + if (data.merList.length == 0) { + this.sotreParam.category_id = '' + } else { + data.merList.forEach(item => { + arr2.push(item.merchant_category_id) + }) + this.sotreParam.category_id = arr2.toString(); + } + this.rightBox = data.status + this.loadend = false; + this.$set(this.sotreParam, 'page', 1) + this.storeList = []; + this.storeMerchantList(); + }, + // 组件关闭 + close() { + this.rightBox = false + }, + //点击事件处理 + set_where: function(e) { + if (this.loading) return + this.storeList = [] + this.firstKey = e + this.sotreParam.page = 1 + this.sotreParam.order = this.downMenu[e].order + this.storeMerchantList(); + }, + backjJump() { + uni.navigateBack({ + delta: 1 + }) + }, + }, + //刷新 + onPullDownRefresh() { + uni.stopPullDownRefresh() + }, + //上划加载更多 + onReachBottom() { + if (this.count === this.storeList.length) { + if (this.count === 0) { + return + } + uni.showToast({ + title: '已加载全部', + icon: 'none', + duration: 1000 + }); + } else { + this.sotreParam.page += 1 + this.storeMerchantList() + } + }, + // 滚动监听 + onPageScroll(e) { + // 传入scrollTop值并触发所有easy-loadimage组件下的滚动监听事件 + uni.$emit('scroll'); + } + } </script> <style lang="scss" scoped> - .productList .search { - width: 100%; - height: 86rpx; - padding: 0 20rpx; - box-sizing: border-box; - position: fixed; - left: 0; - top: 0; - z-index: 9; - display: flex; - flex-wrap: nowrap; - background-color: #fff; - - &.styleType1 { - background-color: var(--view-theme); - } - - .search-right { - display: flex; - align-items: center; - justify-content: space-between; - max-width: max-content; - flex: 1; - padding-left: 20rpx; - } - - .right-text { - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; - font-size: 28rpx; - width: max-content; - color: #fff; - padding: 0 10rpx; - } - - .icon-xiangyou, - .icon-dingwei { - font-size: 30rpx; - color: #fff; - } - } - - .search-right.styleType2 .right-text, - .search-right.styleType3 .right-text { - color: #282828; - } - - .search-right.styleType2 .icon-xiangyou, - .search-right.styleType3 .icon-xiangyou { - color: #999999; - } - - .search-right.styleType2 .icon-dingwei, - .search-right.styleType3 .icon-dingwei { - color: #8A8A8A; - } - - .productList .search .back { - display: flex; - align-items: center; - width: 40rpx; - height: 60rpx; - - .iconfont { - color: #fff; - font-size: 36rpx; - } - } - - .productList .search .input { - flex: 1; - height: 60rpx; - background-color: #fff; - border-radius: 50rpx; - padding: 0 20rpx; - box-sizing: border-box; - } - - .productList .search.styleType2 .input, - .productList .search.styleType3 .input { - background: #EDEDED; - } - - .productList .search .input input { - flex: 1; - height: 100%; - font-size: 26rpx; - margin-left: 10rpx; - } - - .productList .search .input .placeholder { - color: #999; - } - - .productList .search .input .iconfont { - font-size: 35rpx; - color: #555; - } - - .productList .search .icon-pailie, - .productList .search .icon-tupianpailie { - color: #fff; - width: 62rpx; - font-size: 40rpx; - height: 86rpx; - line-height: 86rpx; - } - - .productList .nav-wrapper { - z-index: 9; - position: fixed; - left: 0; - top: 0; - width: 100%; - margin-top: 86rpx; - background-color: #fff; - - &.styleType1 { - background-color: var(--view-theme); - } - - .tab-bar { - display: flex; - align-items: center; - - .tab-item { - position: relative; - flex: 1; - display: flex; - justify-content: center; - align-items: center; - padding: 8rpx 0 20rpx; - color: #fff; - font-size: 28rpx; - font-weight: bold; - - &::after { - content: ' '; - position: absolute; - left: 50%; - bottom: 18rpx; - width: 30rpx; - height: 3rpx; - background: transparent; - transform: translateX(-50%); - } - - &.on { - &::after { - background: #fff; - } - } - } - } - } - - .border-picture { - position: absolute; - top: 0; - left: 0; - width: 100%; - height: 100%; - background: center/cover no-repeat; - } - - .productList .nav { - height: 86rpx; - color: #454545; - font-size: 28rpx; - display: flex; - justify-content: space-between; - padding: 0 28rpx; - } - - .productList .nav .item { - display: flex; - align-items: center; - justify-content: center; - flex-direction: column; - color: #FFFFFF; - flex: 1; - } - - .productList .nav.styleType2 .item, - .productList .nav.styleType3 .item { - color: #282828; - } - - .productList .nav .item.font-colors { - font-weight: 500; - color: #FFFFFF; - } - - .productList .nav.styleType2 .item.font-colors, - .productList .nav.styleType3 .item.font-colors { - color: var(--view-theme); - } - - .productList .nav .item .font-line { - height: 4rpx; - background-color: #fff; - margin-top: 3rpx; - width: 28rpx; - animation: line 0.3s; - -moz-animation: line 0.3s; - /* Firefox */ - -webkit-animation: line 0.3s; - /* Safari 和 Chrome */ - -o-animation: line 0.3s; - /* Opera */ - } - - .productList .nav.styleType2 .item .font-line, - .productList .nav.styleType3 .item .font-line { - background-color: var(--view-theme); - } - - @keyframes line { - from { - width: 0rpx; - } - - to { - width: 28rpx; - } - } - - .productList .nav .item image { - width: 15rpx; - height: 19rpx; - margin-left: 10rpx; - } - - .mer-box { - padding: 20rpx 20rpx; - margin-top: 168rpx; - - .store-margin { - width: 30rpx !important; - height: 32rpx !important; - margin: 0 0 0 10rpx !important; - border: none !important; - border-radius: 0 !important; - } - - .mer-item { - margin-bottom: 20rpx; - background-color: #fff; - border-radius: 16rpx; - - &.mer-item3 { - background-size: cover; - background-repeat: no-repeat; - } - - .mer-hd { - position: relative; - width: 100%; - height: 134rpx; - border-radius: 16rpx 16rpx 0 0; - overflow: hidden; - display: flex; - - image { - width: 100%; - height: 100%; - } - - .mer-name { - position: absolute; - left: 20rpx; - top: 30rpx; - display: flex; - align-items: center; - padding: 0 10rpx; - - image { - width: 79rpx; - height: 79rpx; - border: 1px solid #fff; - border-radius: 50%; - margin-right: 10rpx; - } - - .txt { - flex: 1; - } - } - } - - /deep/.easy-loadimage { - width: 100%; - height: 214rpx; - border-radius: 8rpx; - } - - .pro-box { - display: flex; - align-items: center; - padding: 20rpx 20rpx 30rpx; - - .pro-item { - width: 218rpx; - margin-right: 14rpx; - - .picture, - /deep/image, - uni-image { - width: 100%; - height: 214rpx; - border-radius: 8rpx; - position: relative; - } - - .price { - margin-top: 5rpx; - font-size: 28rpx; - color: var(--view-priceColor); - font-weight: bold; - - text { - font-size: 28rpx; - } - } - - &:last-child { - margin-right: 0; - } - } - - &.styleType3 { - padding: 20rpx; - - .pro-item { - background-color: #fff; - border-radius: 16rpx; - text-align: center; - padding: 10rpx 0 20rpx; - - .picture, - /deep/image, - uni-image { - width: 194rpx; - height: 194rpx; - text-align: center; - border-radius: 8rpx; - position: relative; - margin: 0 auto; - } - } - } - } - } - - .mer-top { - display: flex; - align-items: center; - color: #FFFFFF; - font-size: 28rpx; - font-weight: bold; - margin-bottom: 6rpx; - - .font-bg-red { - margin-left: 20rpx; - font-size: 18rpx; - padding: 2rpx 10rpx; - color: #fff; - border-radius: 30rpx; - width: auto; - background-color: var(--view-theme); - border-color: var(--view-theme); - } - } - - .mer-btn { - color: rgba($color: #fff, $alpha: 0.7); - font-size: 24rpx; - display: flex; - align-items: center; - - .line { - width: 2rpx; - height: 18rpx; - color: rgba($color: #fff, $alpha: 0.7); - margin: 0 12rpx; - } - - .distance { - display: flex; - align-items: center; - font-size: 24rpx; - - .iconfont { - font-size: 24rpx; - line-height: 24rpx; - } - } - } - - .more-shop { - display: flex; - align-items: center; - justify-content: center; - background-color: #FFFFFF; - padding: 27rpx 0; - color: #999999; - font-size: 26rpx; - - .icon-xiangyou { - font-size: 22rpx; - } - } - } - - .mer-item2 { - padding: 20rpx; - background: #fff; - margin-bottom: 20rpx; - border-radius: 16rpx; - - .mer-shop-count { - display: flex; - - .mer-avatar { - width: 100rpx; - height: 100rpx; - } - - .mer-top { - color: #282828; - } - - .mer-shop-right { - margin-left: 20rpx; - - .mer-btn { - color: #666666; - } - - } - - .pro-box { - display: flex; - align-items: center; - margin-top: 20rpx; - - .pro-item { - width: 170rpx; - margin-right: 20rpx; - - .picture, - /deep/image, - uni-image, - /deep/.easy-loadimage { - width: 100%; - height: 170rpx; - border-radius: 8rpx; - position: relative; - } - - .price { - margin-top: 5rpx; - font-size: 28rpx; - color: var(--view-priceColor); - font-weight: bold; - - text { - font-size: 28rpx; - } - } - - &:last-child { - margin-right: 0; - } - } - } - } - - } - - .no-shop { - background-color: #fff; - padding-bottom: calc(100% - 176rpx); - - .pictrue { - display: flex; - flex-direction: column; - align-items: center; - color: $uni-nothing-text; - - image { - width: 414rpx; - height: 380rpx; - } - } - } -</style> \ No newline at end of file + .productList .search { + width: 100%; + height: 86rpx; + padding: 0 20rpx; + box-sizing: border-box; + position: fixed; + left: 0; + top: 0; + z-index: 9; + display: flex; + flex-wrap: nowrap; + background-color: #fff; + + &.styleType1 { + background-color: var(--view-theme); + } + + .search-right { + display: flex; + align-items: center; + justify-content: space-between; + max-width: max-content; + flex: 1; + padding-left: 20rpx; + } + + .right-text { + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + font-size: 28rpx; + width: max-content; + color: #fff; + padding: 0 10rpx; + } + + .icon-xiangyou, + .icon-dingwei { + font-size: 30rpx; + color: #fff; + } + } + + .search-right.styleType2 .right-text, + .search-right.styleType3 .right-text { + color: #282828; + } + + .search-right.styleType2 .icon-xiangyou, + .search-right.styleType3 .icon-xiangyou { + color: #999999; + } + + .search-right.styleType2 .icon-dingwei, + .search-right.styleType3 .icon-dingwei { + color: #8A8A8A; + } + + .productList .search .back { + display: flex; + align-items: center; + width: 40rpx; + height: 60rpx; + + .iconfont { + color: #fff; + font-size: 36rpx; + } + } + + .productList .search .input { + flex: 1; + height: 60rpx; + background-color: #fff; + border-radius: 50rpx; + padding: 0 20rpx; + box-sizing: border-box; + } + + .productList .search.styleType2 .input, + .productList .search.styleType3 .input { + background: #EDEDED; + } + + .productList .search .input input { + flex: 1; + height: 100%; + font-size: 26rpx; + margin-left: 10rpx; + } + + .productList .search .input .placeholder { + color: #999; + } + + .productList .search .input .iconfont { + font-size: 35rpx; + color: #555; + } + + .productList .search .icon-pailie, + .productList .search .icon-tupianpailie { + color: #fff; + width: 62rpx; + font-size: 40rpx; + height: 86rpx; + line-height: 86rpx; + } + + .productList .nav-wrapper { + z-index: 9; + position: fixed; + left: 0; + top: 0; + width: 100%; + margin-top: 86rpx; + background-color: #fff; + + &.styleType1 { + background-color: var(--view-theme); + } + + .tab-bar { + display: flex; + align-items: center; + + .tab-item { + position: relative; + flex: 1; + display: flex; + justify-content: center; + align-items: center; + padding: 8rpx 0 20rpx; + color: #fff; + font-size: 28rpx; + font-weight: bold; + + &::after { + content: ' '; + position: absolute; + left: 50%; + bottom: 18rpx; + width: 30rpx; + height: 3rpx; + background: transparent; + transform: translateX(-50%); + } + + &.on { + &::after { + background: #fff; + } + } + } + } + } + + .border-picture { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + background: center/cover no-repeat; + } + + .productList .nav { + height: 86rpx; + color: #454545; + font-size: 28rpx; + display: flex; + justify-content: space-between; + padding: 0 28rpx; + } + + .productList .nav .item { + display: flex; + align-items: center; + justify-content: center; + flex-direction: column; + color: #FFFFFF; + flex: 1; + } + + .productList .nav.styleType2 .item, + .productList .nav.styleType3 .item { + color: #282828; + } + + .productList .nav .item.font-colors { + font-weight: 500; + color: #FFFFFF; + } + + .productList .nav.styleType2 .item.font-colors, + .productList .nav.styleType3 .item.font-colors { + color: var(--view-theme); + } + + .productList .nav .item .font-line { + height: 4rpx; + background-color: #fff; + margin-top: 3rpx; + width: 28rpx; + animation: line 0.3s; + -moz-animation: line 0.3s; + /* Firefox */ + -webkit-animation: line 0.3s; + /* Safari 和 Chrome */ + -o-animation: line 0.3s; + /* Opera */ + } + + .productList .nav.styleType2 .item .font-line, + .productList .nav.styleType3 .item .font-line { + background-color: var(--view-theme); + } + + @keyframes line { + from { + width: 0rpx; + } + + to { + width: 28rpx; + } + } + + .productList .nav .item image { + width: 15rpx; + height: 19rpx; + margin-left: 10rpx; + } + + .mer-box { + padding: 20rpx 20rpx; + margin-top: 168rpx; + + .store-margin { + width: 30rpx !important; + height: 32rpx !important; + margin: 0 0 0 10rpx !important; + border: none !important; + border-radius: 0 !important; + } + + .mer-item { + margin-bottom: 20rpx; + background-color: #fff; + border-radius: 16rpx; + + &.mer-item3 { + background-size: cover; + background-repeat: no-repeat; + } + + .mer-hd { + position: relative; + width: 100%; + height: 134rpx; + border-radius: 16rpx 16rpx 0 0; + overflow: hidden; + display: flex; + + image { + width: 100%; + height: 100%; + } + + .mer-name { + position: absolute; + left: 20rpx; + top: 30rpx; + display: flex; + align-items: center; + padding: 0 10rpx; + + image { + width: 79rpx; + height: 79rpx; + border: 1px solid #fff; + border-radius: 50%; + margin-right: 10rpx; + } + + .txt { + flex: 1; + } + } + } + + /deep/.easy-loadimage { + width: 100%; + height: 214rpx; + border-radius: 8rpx; + } + + .pro-box { + display: flex; + align-items: center; + padding: 20rpx 20rpx 30rpx; + + .pro-item { + width: 218rpx; + margin-right: 14rpx; + + .picture, + /deep/image, + uni-image { + width: 100%; + height: 214rpx; + border-radius: 8rpx; + position: relative; + } + + .price { + margin-top: 5rpx; + font-size: 28rpx; + color: var(--view-priceColor); + font-weight: bold; + + text { + font-size: 28rpx; + } + } + + &:last-child { + margin-right: 0; + } + } + + &.styleType3 { + padding: 20rpx; + + .pro-item { + background-color: #fff; + border-radius: 16rpx; + text-align: center; + padding: 10rpx 0 20rpx; + + .picture, + /deep/image, + uni-image { + width: 194rpx; + height: 194rpx; + text-align: center; + border-radius: 8rpx; + position: relative; + margin: 0 auto; + } + } + } + } + } + + .mer-top { + display: flex; + align-items: center; + color: #FFFFFF; + font-size: 28rpx; + font-weight: bold; + margin-bottom: 6rpx; + + .font-bg-red { + margin-left: 20rpx; + font-size: 18rpx; + padding: 2rpx 10rpx; + color: #fff; + border-radius: 30rpx; + width: auto; + background-color: var(--view-theme); + border-color: var(--view-theme); + } + } + + .mer-btn { + color: rgba($color: #fff, $alpha: 0.7); + font-size: 24rpx; + display: flex; + align-items: center; + + .line { + width: 2rpx; + height: 18rpx; + color: rgba($color: #fff, $alpha: 0.7); + margin: 0 12rpx; + } + + .distance { + display: flex; + align-items: center; + font-size: 24rpx; + + .iconfont { + font-size: 24rpx; + line-height: 24rpx; + } + } + } + + .more-shop { + display: flex; + align-items: center; + justify-content: center; + background-color: #FFFFFF; + padding: 27rpx 0; + color: #999999; + font-size: 26rpx; + + .icon-xiangyou { + font-size: 22rpx; + } + } + } + + .mer-item2 { + padding: 20rpx; + background: #fff; + margin-bottom: 20rpx; + border-radius: 16rpx; + + .mer-shop-count { + display: flex; + + .mer-avatar { + width: 100rpx; + height: 100rpx; + } + + .mer-top { + color: #282828; + } + + .mer-shop-right { + margin-left: 20rpx; + + .mer-btn { + color: #666666; + } + + } + + .pro-box { + display: flex; + align-items: center; + margin-top: 20rpx; + + .pro-item { + width: 170rpx; + margin-right: 20rpx; + + .picture, + /deep/image, + uni-image, + /deep/.easy-loadimage { + width: 100%; + height: 170rpx; + border-radius: 8rpx; + position: relative; + } + + .price { + margin-top: 5rpx; + font-size: 28rpx; + color: var(--view-priceColor); + font-weight: bold; + + text { + font-size: 28rpx; + } + } + + &:last-child { + margin-right: 0; + } + } + } + } + + } + + .no-shop { + background-color: #fff; + padding-bottom: calc(100% - 176rpx); + + .pictrue { + display: flex; + flex-direction: column; + align-items: center; + color: $uni-nothing-text; + + image { + width: 414rpx; + height: 380rpx; + } + } + } +</style> diff --git a/pages/store/home/index.vue b/pages/store/home/index.vue index d08503b..42d52ff 100644 --- a/pages/store/home/index.vue +++ b/pages/store/home/index.vue @@ -674,6 +674,12 @@ this.getCategory(); break; case 3: + this.where={ + order: '', + keyword: '', + page: 1, + limit: 30 + }; this.getGoods(); break; case 4: