Files
wangxiaowei f03e2ae769 修改页面
2025-07-08 13:41:07 +08:00

1373 lines
36 KiB
Plaintext
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<template>
<view class="page" :style="themeColor">
<!-- <view class="flex benben-position-layout flex flex-wrap align-center nearbyMerchants_flex_0"
:style="{height:(88+StatusBarRpx)+'rpx',paddingTop:StatusBarRpx+'rpx'}">
<view class='flex flex-wrap align-center justify-between flex-sub nearbyMerchants_fd0_0'>
<view class='flex flex-wrap align-stretch justify-center flex-sub'>
<text class='nearbyMerchants_fd0_0_c0_c0'>附近商家</text>
</view>
</view>
</view>
<view :style="{height: (88+StatusBarRpx)+'rpx'}"></view> -->
<!---flex布局flex布局开始-->
<view class="flex flex-direction flex-wrap align-stretch benben-flex-layout nearbyMerchants_flex_1">
<view class='flex flex-wrap align-center justify-between' style="flex-direction: row; align-items: center;">
<view class='flex flex-row flex-wrap align-center flex-sub nearbyMerchants_fd1_0_c0'>
<image class='nearbyMerchants_fd1_0_c0_c0' mode="aspectFill" :src='STATIC_URL+"53.png"'></image>
<input type="text" placeholder="请输入商家名称" confirm-type="done" :maxlength="-1" v-model="keyword"
style="width: 400rpx; font-size: 30rpx;" @confirm="handleSearch" />
</view>
<text class='nearbyMerchants_fd1_0_c1' @click="handleSearch">搜索</text>
</view>
<view class='flex flex-wrap align-center justify-around nearbyMerchants_fd1_1'>
<!-- @tap.stop="stateFunctionFunc()" -->
<view class='flex flex-wrap align-center justify-center nearbyMerchants_fd1_1_c0'
@tap.stop="handleShowPopup(1)">
<text class='nearbyMerchants_fd1_1_c0_c0'
:class="tabls == 1 ? 'active-tab' : ''">{{screeningMerchants_id}}</text>
<image class='nearbyMerchants_fd1_1_c0_c1' :src='STATIC_URL+"92.png"' v-if="state=='1'"></image>
<image class='nearbyMerchants_fd1_1_c0_c1_1' :src='STATIC_URL+"93.png"' v-if="state=='2'"></image>
</view>
<view class='flex nearbyMerchants_fd1_1_c1'></view>
<!-- @tap.stop="stateFunctionFunc()" -->
<view class='flex flex-wrap align-center justify-center nearbyMerchants_fd1_1_c2'
@tap.stop="handleShowPopup(2)">
<text class='nearbyMerchants_fd1_1_c2_c0'
:class="tabls == 2 ? 'active-tab' : ''">{{filterDistance_id}}</text>
<image class='nearbyMerchants_fd1_1_c2_c1' :src='STATIC_URL+"93.png"' v-if="state=='1'"></image>
<image class='nearbyMerchants_fd1_1_c2_c1_1' :src='STATIC_URL+"92.png"' v-if="state=='2'"></image>
</view>
</view>
</view>
<view v-if="isHandLocation && !lat" class="kaiqiweizhi flex align-center justify-between"
:style="{top:(70 + StatusBar ) + 'px'}"
style="flex-direction: row; justify-content: center; align-items: center;">
<view class="flex align-center" style="flex-direction: row; justify-content: center; align-items: center;">
<text class=""
style="font-size: 32upx;font-weight: 550; color: #fff; line-height: 80rpx;">开启定位权限,显示周边商家及商品</text>
<text class="kaiqiweizhi-button" @click="_getPermission">
去开启
</text>
</view>
<view class="text-df flex align-center" style="flex-direction: row; justify-content: center;">
<image src="/static/close.png" @click="isHandLocation = false" style="width:32rpx;height: 32rpx;"
mode="aspectFill"></image>
</view>
</view>
<!---flex布局flex布局结束-->
<!---flex布局flex布局开始-->
<!-- <view class="flex benben-flex-layout flex-wrap align-center nearbyMerchants_flex_2">
</view> -->
<block v-if="isPublish">
<map style="width: 750rpx; height: 200px;" :latitude="lat" :longitude="lng" scale="13"
:markers="covers"></map>
</block>
<!---flex布局flex布局结束-->
<!---flex布局flex布局开始-->
<block v-if="permissionStatus == 1">
<fu-loading v-if="isShowLoading"></fu-loading>
<fu-empty-ui v-if="list.length === 0 && isInit"></fu-empty-ui>
<view class="flex flex-direction flex-wrap align-stretch benben-flex-layout nearbyMerchants_flex_3">
<view class='flex flex-wrap align-center nearbyMerchants_fd3_0' v-for="(item, index) in list" style="position: relative;"
:key="index">
<!-- <image class='point-bg' mode="scaleToFill" src='https://lvtai-files.oss-cn-beijing.aliyuncs.com/mini/point_bg.png'
style="width: 140rpx;height: 100rpx;z-index: 9999999999999;">
</image> -->
<image
class="point-bg"
src="https://lvtai-files.oss-cn-beijing.aliyuncs.com/mini/point_bg.png"
:style="{
position: 'absolute',
top: '-32rpx',
left: '-32rpx',
width: '120rpx',
height: '112rpx',
zIndex: 10
}"
>
<!-- 文字内容需要单独用 view 包裹 -->
<text class="point-bg-txt" :style="{
position: 'absolute',
fontSize: '16rpx',
top: '-54rpx',
left: '8rpx',
width: '112rpx',
height: '112rpx',
zIndex: 10
}">积分{{item.score_rate}}%</text>
</image>
<view class='flex flex-direction flex-wrap align-start' @click.stop="handleToDetail(item)"
style="position: relative;">
<view class='flex flex-wrap align-center'>
<image class='nearbyMerchants_fd3_0_c0_c1_c0' mode="aspectFill" :src='item.logo'></image>
</view>
<!-- <image class="nearbyMerchants_fd3_0_c0_c0001" :src='STATIC_URL+"23.png"' mode="widthFix">
</image> -->
<!-- <view class='flex flex-wrap align-center justify-center nearbyMerchants_fd3_0_c0_c0'
style="flex-direction: row; justify-content: center;">
<text class='nearbyMerchants_fd3_0_c0_c0_c0'>积分</text>
<text class='nearbyMerchants_fd3_0_c0_c0_c1'>{{item.score_rate}}</text>
<text class='nearbyMerchants_fd3_0_c0_c0_c2'>%</text>
</view> -->
<image style="width: 50rpx; height: 50rpx; position: absolute; top: 0; right: 0; z-index: 100;"
v-if="item.storelevel_thumb" :src="item.storelevel_thumb" mode="aspectFill"></image>
</view>
<view class='flex flex-direction flex-wrap align-stretch flex-sub nearbyMerchants_fd3_0_c1'>
<view class='flex align-center justify-between'
style="flex-direction: row; align-items: center; width: 474rpx; justify-content: space-between;">
<view class='flex flex-wrap align-center' style="width: 320rpx;"
@click="handleToDetail(item)">
<text class='nearbyMerchants_fd3_0_c1_c0_c0_c0'>{{item.store_name}}</text>
</view>
<view class='flex align-center justify-center nearbyMerchants_fd3_0_c1_c0_c1'
@click.stop="handleToMap(item)">
<image class='nearbyMerchants_fd3_0_c1_c0_c1_c0' mode="aspectFill"
:src='STATIC_URL+"95.png"'></image>
<text class='nearbyMerchants_fd3_0_c1_c0_c1_c1'>到这里</text>
</view>
</view>
<view @click.stop="handleToDetail(item)"
class='flex flex-wrap align-center nearbyMerchants_fd3_0_c1_c1'
style="flex-direction: row; align-items: center; width: 474rpx;">
<text class='storeDetails_fd2_0_c1_c1_c1'
style="margin-right: 20rpx; color: #FF9D00;font-size: 26rpx;"
v-if="item.store_type">{{item.store_type}}</text>
<text style="margin-right: 20rpx;color:#E5E5E5">|</text>
<image class='nearbyMerchants_fd3_0_c1_c1_c0' mode="aspectFit" :src='STATIC_URL+"31.png"'>
</image>
<text class='nearbyMerchants_fd3_0_c1_c1_c1'>{{item.score}}</text>
<text class='nearbyMerchants_fd3_0_c1_c1_c2'>分</text>
</view>
<view @click.stop="handleToDetail(item)"
class='flex flex-wrap align-center justify-between nearbyMerchants_fd3_0_c1_c2'
style="flex-direction: row; align-items: center; width: 474rpx; justify-content: space-between;">
<view class='flex flex-wrap align-center' style="flex-direction: row; align-items: center;background-color: #FFEEED;padding: 4rpx 8rpx;">
<text class='nearbyMerchants_fd3_0_c1_c2_c0_c0' style="color:#FF5951;">关注人数</text>
<text class='nearbyMerchants_fd3_0_c1_c2_c0_c1' style="color:#FF5951;">{{item.collect_num}}</text>
</view>
<!-- <view class='flex flex-wrap align-center' style="flex-direction: row; align-items: center; padding-right: 24rpx;">
<text class='nearbyMerchants_fd3_0_c1_c2_c1_c0'>人均¥</text>
<text class='nearbyMerchants_fd3_0_c1_c2_c1_c1'>{{item.per_capita}}</text>
</view> -->
</view>
<view @click.stop="handleToDetail(item)"
class='flex flex-wrap align-center justify-between nearbyMerchants_fd3_0_c1_c3'
style="flex-direction: row; align-items: center; width: 474rpx; justify-content: space-between;">
<view class='flex flex-wrap align-center' style="flex-direction: row; align-items: center;">
<text class='nearbyMerchants_fd3_0_c1_c3_c0_c0'>起送¥</text>
<text class='nearbyMerchants_fd3_0_c1_c3_c0_c1'>{{item.start_price}} </text>
</view>
<view class='flex flex-wrap align-center'
style="flex-direction: row; align-items: center; padding-right: 24rpx;">
<text class='nearbyMerchants_fd3_0_c1_c3_c1_c0'>{{item.distance}}</text>
<text class='nearbyMerchants_fd3_0_c1_c3_c1_c1'>km</text>
</view>
</view>
</view>
</view>
</view>
</block>
<block v-if="permissionStatus != 1">
<fu-empty-ui @permission="handlePermission" v-if="permissionStatus == 0" emptyImage="addr"
pagingListNoListDataText="暂无开启位置权限"></fu-empty-ui>
<fu-empty-ui @permission="handlePermission" v-if="permissionStatus == -1" emptyImage="permission"
pagingListNoListDataText="您已永久拒绝位置权限"></fu-empty-ui>
</block>
<view class="popup-mask" v-if="showPopup" @click="handleHidePopup"></view>
<view class="popup" v-if="showPopup">
<view class='flex flex-wrap align-center justify-around nearbyMerchants_fd1_1'>
<view class='flex flex-wrap align-center justify-center nearbyMerchants_fd1_1_c0'
@tap.stop="handleShowPopup(1)">
<text class='nearbyMerchants_fd1_1_c0_c0'
:class="tabls == 1 ? 'active-tab' : ''">{{screeningMerchants_id}}</text>
<image class='nearbyMerchants_fd1_1_c0_c1' :src='STATIC_URL+"92.png"' v-if="state=='1'"></image>
<image class='nearbyMerchants_fd1_1_c0_c1_1' :src='STATIC_URL+"93.png"' v-if="state=='2'"></image>
</view>
<view class='flex nearbyMerchants_fd1_1_c1'></view>
<view class='flex flex-wrap align-center justify-center nearbyMerchants_fd1_1_c2'
@tap.stop="handleShowPopup(2)">
<text class='nearbyMerchants_fd1_1_c2_c0'
:class="tabls == 2 ? 'active-tab' : ''">{{filterDistance_id}}</text>
<image class='nearbyMerchants_fd1_1_c2_c1' :src='STATIC_URL+"93.png"' v-if="state=='1'"></image>
<image class='nearbyMerchants_fd1_1_c2_c1_1' :src='STATIC_URL+"92.png"' v-if="state=='2'"></image>
</view>
</view>
<view class="list-wrap" v-if="tabls == 1">
<scroll-view scroll-y="true" class="list">
<view class="item" @tap="handleChooseSort(1, '')">
<text class="title">全部商家</text>
<image class="img-dui" v-if="selectCateId == ''" :src='STATIC_URL+"dui.png"' mode="widthFix">
</image>
</view>
<view class="item" v-for="(item, index) in cateList" :key="index"
@tap="handleChooseSort(1, item.aid)">
<text class="title">{{item.title}}</text>
<image class="img-dui" v-if="selectCateId == item.aid" :src='STATIC_URL+"dui.png"'
mode="widthFix"></image>
</view>
</scroll-view>
</view>
<view class="list-wrap" v-if="tabls == 2">
<scroll-view scroll-y="true" class="list">
<view class="item" v-for="(item, index) in distanceList" :key="index"
@tap="handleChooseSort(2, item.id)">
<text class="title">{{item.title}}</text>
<image v-if="selectDistance == item.id" class="img-dui" :src='STATIC_URL+"dui.png"'
mode="widthFix"></image>
</view>
</scroll-view>
</view>
</view>
<!-- <view class="sure-btn" v-if="showPopup" @click="handleSure"><text class="sure">确定</text></view> -->
<!---flex布局flex布局结束-->
<!--筛选全部商家开始 -->
<!-- <benben-picker ref="benbenWritePickerCodepicker4" :visible.sync="pickerDiy1684578784573"
:label.sync='screeningMerchants_id' :options='screeningMerchants_list' mode='selector' :mask-show='true'
:timeout='true' :picker-height='88' default-type='value' :default-props='{"label":"name","value":"value"}'>
<template #picker-header>
<view class='flex flex-wrap align-center justify-between nearbyMerchants_picker4_0'>
<text @tap="$refs.benbenWritePickerCodepicker4.cancel()">取消</text>
<text>筛选全部商家</text>
<text class='nearbyMerchants_picker4_0_c2' @tap="$refs.benbenWritePickerCodepicker4.pickerConfirm()">确认</text>
</view>
</template>
</benben-picker> -->
<!--筛选全部商家结束 -->
<!--筛选距离开始 -->
<!-- <benben-picker ref="benbenWritePickerCodepicker5" :visible.sync="pickerDiy1684579546665"
:label.sync='filterDistance_id' :options='filterDistance_list' mode='selector' :mask-show='true' :timeout='true'
:picker-height='88' default-type='value' :default-props='{"label":"name","value":"value"}'>
<template #picker-header>
<view class='flex flex-wrap align-center justify-between nearbyMerchants_picker5_0'>
<text @tap="$refs.benbenWritePickerCodepicker5.cancel()">取消</text>
<text>筛选距离</text>
<text class='nearbyMerchants_picker5_0_c2' @tap="$refs.benbenWritePickerCodepicker5.pickerConfirm()">确认</text>
</view>
</template>
</benben-picker> -->
<!--筛选距离结束 -->
</view>
</template>
<script>
import {
STATIC_URL,
ACCEPT_PLATFORM,
SYSTEM_CONFIG
} from '@/common/config.js';
import amap from '@/common/amap-wx.js';
import {
API_BASE_URL
} from '@/common/config.js';
import {
message,
Router,
validate
} from '@/common/utils/index.js';
const _userInfo = uni.getStorageSync('USER_INFO');
import apiUrls from '@/common/api/url.js'
import permision from '@/common/permission.js'
export default {
components: {},
data() {
return {
tabls: 1,
showPopup: false,
STATIC_URL: STATIC_URL,
"pickerDiy1684579546665": false,
"pickerDiy1684578784573": false,
"fd1_0_c0_c1": "",
"data": [],
"screeningMerchants_id": "全部商家",
"screeningMerchants_list": [{
"name": "全部商家",
"value": "1",
"image": ""
}, {
"name": "美食",
"value": "2",
"image": ""
}, {
"name": "便利商超",
"value": "3",
"image": ""
}, {
"name": "生鲜水果",
"value": "4",
"image": ""
}, {
"name": "酒水饮料",
"value": "5",
"image": ""
}, {
"name": "蛋糕甜品",
"value": "6",
"image": ""
}],
"filterDistance_id": "距离筛选",
"filterDistance_list": [{
"name": "不限",
"value": "1",
"image": ""
}, {
"name": "0.5KM",
"value": "2",
"image": ""
}, {
"name": "1KM-2KM",
"value": "3",
"image": ""
}, {
"name": "2KM-3KM",
"value": "4",
"image": ""
}, {
"name": "3KM-4KM",
"value": "5",
"image": ""
}, {
"name": "5KM以上",
"value": "6",
"image": ""
}],
"state": "1",
lat: '',
lng: '',
list: [],
isShowLoading: false,
isInit: false,
status: 'more', // 表示是否有数据可以请求
page: 1,
covers: [],
amapPlugin: null, //new地图
key: '886bfe2d6c32bd8eac97c2e6d821ed0b',
post: null,
token: '',
cateList: [],
selectCateId: '',
selectDistance: '',
cateId: '',
distance: '',
keyword: '',
distanceList: [],
permissionStatus: 1,
isHandLocation: false,
isPublish: false
};
},
computed: {
themeColor() {
return this.$store.getters.themeColor
},
},
watch: {},
onLoad(options) {
this.amapPlugin = new amap.AMapWX({
key: this.key
});
if (_userInfo) {
this.token = _userInfo.user_token;
}
this.post = (url, postData = {}) => {
return new Promise((resolve, reject) => {
uni.request({
url: API_BASE_URL + url, //仅为示例,并非真实接口地址。
data: postData,
method: 'POST',
header: {
'Content-Type': 'application/x-www-form-urlencoded',
'user-token': this.token,
'lang': uni.getStorageSync('LANGUAGE_TYPE'),
'group-id': 1
},
success: (res) => {
resolve(res)
}
})
})
}
this.judgeIsLocation()
// uni.$on('LOCATION_SUCCESS', () => {
// this.judgeIsLocation()
// })
// uni.$on('SELECT_ADDRESS', (data) => {
// console.log('监听到数据', data)
// this.lat = data.lat;
// this.lng = data.lng;
// this.city = data.city;
// this.address = data.address;
// global.lat = data.lat;
// global.lng = data.lng;
// global.city = data.city;
// global.address = data.address;
// this.status = 'more';
// this.page = 1;
// this.isInit = false;
// this.list = [];
// this.getRecommendList(true);
// })
// // #ifdef APP-PLUS
// this._getPermission()
// // #endif
// // #ifndef APP-PLUS
// this._getLocation()
// // #endif
},
onUnload() {
},
onReady() {
},
onShow() {
this.getPublishStatus()
this.getCateList();
this.getDistanceList();
// let lat = uni.getStorageSync('LVTAI_LAT') || '';
// let lng = uni.getStorageSync('LVTAI_LNG') || '';
// // 定位功能
// if (!lat) {
// // #ifndef MP-WEIXIN
// let platform = uni.getSystemInfoSync().platform == 'ios' ? 1 : 2
// console.log(platform)
// if (platform == 2) {
// this.isHandLocation = true;
// } else {
// this._getLocation()
// this.isHandLocation = false;
// }
// // #endif
// // #ifdef MP-WEIXIN
// this._getLocation()
// this.toppop = false;
// // #endif
// } else {
// this._getLocation()
// }
// if (this.permissionStatus == -1) {
// this.requestAndroidPermission('android.permission.ACCESS_FINE_LOCATION');
// }
// console.log('LVTAI_LAT', uni.getStorageSync('LVTAI_LAT'));
// if (uni.getStorageSync('LVTAI_LAT') && uni.getStorageSync('LVTAI_LNG')) {
// this.lat = uni.getStorageSync('LVTAI_LAT')
// this.lng = uni.getStorageSync('LVTAI_LNG')
// this.status = 'more';
// this.page = 1;
// this.isInit = false;
// this.list = [];
// this.getRecommendList(true);
// } else {
// this._getLocation()
// }
},
onHide() {
},
onResize() {
},
onPullDownRefresh() {
// #ifdef APP-PLUS
this._getPermission()
// #endif
// #ifndef APP-PLUS
this._getLocation()
// #endif
// this.$refs.guess && this.$refs.guess.refresh();
setTimeout(() => {
uni.stopPullDownRefresh();
}, 1000);
},
onReachBottom(e) {
if (this.lat && this.lng) {
this.getRecommendList();
}
},
onPageScroll(e) {
},
methods: {
getPublishStatus() {
this.post(apiUrls.post673572b0bebd7, {
app_version: SYSTEM_CONFIG.appVersion,
type: ACCEPT_PLATFORM == 'IOS' ? 'ios' : 'android'
}).then(res => {
if (res.data.code == 1) {
this.isPublish = !res.data.data.is_listing;
console.log('上架状态', this.isPublish, res.data.data.is_listing);
}
})
},
judgeIsLocation() {
let lat = uni.getStorageSync('LVTAI_LAT') || '';
let lng = uni.getStorageSync('LVTAI_LNG') || '';
// 定位功能
if (!lat) {
// #ifndef MP-WEIXIN
let platform = uni.getSystemInfoSync().platform == 'ios' ? 1 : 2
console.log(platform)
if (platform == 2) {
this.isHandLocation = true;
} else {
this._getLocation()
this.isHandLocation = false;
}
// #endif
// #ifdef MP-WEIXIN
this._getLocation()
this.toppop = false;
// #endif
} else {
this._getLocation()
}
},
handleToDetail(item) {
uni.navigateTo({
url: `/pages/dpxq/storeDetails/storeDetails?id=${item.aid}`
})
},
handleToMap(item) {
console.log(123);
uni.openLocation({
latitude: item.address_lat - 0,
longitude: item.address_lng - 0,
name: item.address_address,
success: function() {
console.log('success');
},
fail: (err) => {
console.log(err);
}
});
},
handlePermission(type) {
console.log(123)
if (type == 1) {
this.requestAndroidPermission('android.permission.ACCESS_FINE_LOCATION');
} else {
permision.gotoAppPermissionSetting()
}
},
async requestAndroidPermission(permisionID) {
console.log(123)
var result = await permision.requestAndroidPermission(permisionID);
var strStatus
if (result == 1) {
this._getLocation();
}
this.permissionStatus = result;
},
_getPermission() {
const that = this;
uni.getSystemInfo({
success: (res) => {
if (res.platform == 'android') {
let isLocation = uni.getStorageSync('LVTAI_USER_LOCATION') || false;
if (!isLocation) {
uni.showModal({
title: '提示',
content: '获取您的定位权限以展示附近推荐商家?',
success: res => {
if (res.confirm) {
that.requestAndroidPermission(
'android.permission.ACCESS_FINE_LOCATION');
} else {
that.permissionStatus = 0;
}
}
});
} else {
this._getLocation();
}
} else {
this._getLocation();
}
}
});
},
handleSearch() {
// #ifdef APP-PLUS
this._getPermission()
// #endif
// #ifndef APP-PLUS
this._getLocation()
// #endif
},
handleShowPopup(type) {
this.tabls = type;
this.showPopup = true;
this.stateFunctionFunc()
},
handleHidePopup() {
this.showPopup = false;
},
handleChooseSort(type, value) {
console.log('type is', type)
console.log('value is', value)
if (type == 1) {
this.selectCateId = value;
} else {
this.selectDistance = value
}
this.handleSure()
},
handleSure() {
this.cateId = this.selectCateId;
let screeningMerchants_id = ''
this.cateList.map((item) => {
if (item.aid == this.cateId) {
screeningMerchants_id = item.title
}
})
if (!this.cateId) {
screeningMerchants_id = '全部商家'
}
this.screeningMerchants_id = screeningMerchants_id;
this.distance = this.selectDistance;
let filterDistance_id = ''
this.distanceList.map((item) => {
if (item.id == this.distance) {
filterDistance_id = item.title
}
})
this.filterDistance_id = filterDistance_id
if (this.tabls == 1) {
} else {
}
this.showPopup = false;
// #ifdef APP-PLUS
this._getPermission()
// #endif
// #ifndef APP-PLUS
this._getLocation()
// #endif
},
getCateList() {
this.post(apiUrls.getCateList).then(res => {
if (res.data.code == 1) {
let cateList = res.data.data;
this.cateList = cateList;
}
})
.catch(err => {
console.log(err);
});
},
getDistanceList() {
this.post(apiUrls.getDistanceList).then(res => {
if (res.data.code == 1) {
let distanceList = res.data.data;
this.distanceList = distanceList;
}
})
.catch(err => {
console.log(err);
});
},
/**
* 获取附近商家列表
* @param {Object} value
*/
getRecommendList(value) {
if (this.status != 'more') return;
this.status = 'loading';
let data = {
store_name: this.keyword,
list_rows: 20,
page: this.page,
lat: this.lat,
lng: this.lng,
is_recommend: 0,
cate_id: this.cateId,
range_id: this.distance
};
// console.log('请求的数据', data);
if (this.page == 1 && value) {
this.isShowLoading = true;
}
this.post(apiUrls.getShopList, data)
.then(res => {
console.log('订单列表', res);
this.isShowLoading = false;
if (res.data.code == 1) {
var curPageData = res.data.data.data;
let covers = [{
id: -999,
latitude: this.lat,
longitude: this.lng,
width: 36,
height: 36,
iconPath: 'https://lvtai-files.oss-cn-beijing.aliyuncs.com/mini/Location.png'
}];
curPageData.map((item) => {
covers.push({
id: item.aid,
latitude: item.address_lat,
longitude: item.address_lng,
width: 36,
height: 36,
// iconPath: 'https://nongmangmang.oss-cn-qingdao.aliyuncs.com/uploads/images/20230522/2b835a1b9e763b62c44ae4b8b727a604.png?x-oss-process=image/resize,m_fixed,h_60,w_60/rounded-corners,r_40/format,png',
iconPath: item.logo,
// label: {
// content: item.store_name,
// color: '#ffffff',
// bgColor: '#FF9D00',
// padding: 12,
// borderRadius: 30
// },
callout: {
content: item.store_name,
color: '#ffffff',
fontSize: 14,
borderRadius: 16,
bgColor: '#FF9D00',
padding: 6,
display: 'ALWAYS',
textAlign: 'center',
anchorY: 10
}
})
})
this.covers = covers;
console.log('covers', covers);
if (this.page == 1) this.list = [];
this.list = this.list.concat(curPageData);
console.log('上拉加载', curPageData.length, this.size);
if (res.data.data.last_page > this.page) {
this.status = 'more';
this.page++;
} else {
this.status = 'noMore';
}
} else {
this.$message.info(res.data.msg);
}
this.isInit = true;
uni.stopPullDownRefresh();
})
.catch(err => {
this.isShowLoading = false;
uni.stopPullDownRefresh();
});
},
_getLocation() {
// #ifdef H5
this.lat = '34.738695';
this.lng = '113.64328';
uni.setStorageSync('LVTAI_LAT', this.lat)
uni.setStorageSync('LVTAI_LNG', this.lng)
uni.setStorageSync('LVTAI_USER_LOCATION', true);
this.status = 'more';
this.page = 1;
this.isInit = false;
this.list = [];
this.address = '华城国际中心'
this.getRecommendList(true);
// #endif
// #ifndef H5
this.amapPlugin.getRegeo({
success: res => {
console.log(res[0]);
// uni.$off('LOCATION_SUCCESS', ()=>{})
// uni.$emit('LOCATION_SUCCESS', {})
uni.setStorageSync('LVTAI_USER_LOCATION', true);
this.address = res[0].regeocodeData.addressComponent.city;
this.lat = res[0].latitude;
this.lng = res[0].longitude;
uni.setStorageSync('LVTAI_LAT', this.lat)
uni.setStorageSync('LVTAI_LNG', this.lng)
this.isShowLoading = false;
this.status = 'more';
this.page = 1;
this.isInit = false;
this.list = [];
this.getRecommendList(true);
},
fail: err => {
}
});
// #endif
},
//切换状态
stateFunctionFunc() {
if (this.state == '1') {
this.state = '2';
} else if (this.state == '2') {
this.state = '1';
}
return
}
}
};
</script>
<style lang="scss" scoped>
.kaiqiweizhi-button {
height: 48rpx;
line-height: 48rpx;
padding-left: 8rpx;
padding-right: 8rpx;
background-color: #64BF1D;
color: #fff;
font-size: 24rpx;
border-radius: 12rpx;
margin-left: 18rpx;
margin-right: 18rpx;
}
.kaiqiweizhi {
position: fixed;
left: 24rpx;
right: 24rpx;
width: calc(100% - 48rpx);
height: 80rpx;
border-radius: 18rpx;
padding: 0 24rpx;
background: rgba(0, 0, 0, 0.8);
z-index: 999;
font-size: 24rpx;
color: #fff;
}
.page {
width: 750rpx;
overflow-x: hidden;
min-height: calc(100vh - var(--window-bottom));
// background: rgba(246, 247, 249, 1);
background-size: 100% auto !important;
}
.point-bg {
/* 注意nvue 中不需要设置 background 相关属性 */
resize-mode: cover; /* 替代 background-size: cover */
}
.point-bg-txt {
transform: rotate(315deg);
font-size: 20rpx;
color: #ffffff;
margin-left: 12rpx;
margin-top: 32rpx;
}
.nearbyMerchants_flex_0 {
background: rgba(255, 147, 0, 1);
width: 750rpx;
height: 88rpx;
overflow: hidden;
z-index: 10;
top: 0rpx;
background-size: 100% auto !important;
}
.nearbyMerchants_fd0_0_c0_c0 {
font-size: 36rpx;
font-weight: 500;
color: rgba(255, 255, 255, 1);
line-height: 88rpx;
}
.nearbyMerchants_fd0_0 {
margin: 0rpx 32rpx 0rpx 32rpx;
}
.nearbyMerchants_flex_1 {
background: rgba(255, 255, 255, 1);
padding: 24rpx 32rpx 0rpx 32rpx;
background-size: 100% auto !important;
}
.nearbyMerchants_fd1_1_c2_c1_1 {
width: 10rpx;
height: 6rpx;
border-radius: 0rpx 0rpx 0rpx 0rpx;
margin: 0rpx 0rpx 0rpx 8rpx;
}
.nearbyMerchants_fd1_1_c2_c1 {
width: 10rpx;
height: 6rpx;
border-radius: 0rpx 0rpx 0rpx 0rpx;
margin: 0rpx 0rpx 0rpx 8rpx;
}
.nearbyMerchants_fd1_1_c2_c0_1 {
color: #666;
font-size: 28rpx;
font-weight: 400;
line-height: 30rpx;
}
.nearbyMerchants_fd1_1_c2_c0 {
color: #666;
font-size: 28rpx;
font-weight: 400;
line-height: 30rpx;
}
.nearbyMerchants_fd1_1_c2 {
width: 300rpx;
// height: 51rpx;
flex-direction: row;
align-items: center;
justify-content: center;
}
.nearbyMerchants_fd1_1_c1 {
background: rgba(238, 238, 238, 1);
width: 1rpx;
height: 30rpx;
transform: scaleX(0.5);
}
.nearbyMerchants_fd1_1_c0_c1_1 {
width: 10rpx;
height: 6rpx;
border-radius: 0rpx 0rpx 0rpx 0rpx;
margin: 0rpx 0rpx 0rpx 8rpx;
}
.nearbyMerchants_fd1_1_c0_c1 {
width: 10rpx;
height: 6rpx;
border-radius: 0rpx 0rpx 0rpx 0rpx;
margin: 0rpx 0rpx 0rpx 8rpx;
}
.nearbyMerchants_fd1_1_c0_c0_1 {
color: #666;
font-size: 28rpx;
font-weight: 500;
line-height: 30rpx;
}
.nearbyMerchants_fd1_1_c0_c0 {
color: #666;
font-size: 28rpx;
font-weight: 500;
line-height: 30rpx;
}
.active-tab {
color: #333333;
}
.nearbyMerchants_fd1_1_c0 {
width: 300rpx;
// height: 51rpx;
flex-direction: row;
align-items: center;
justify-content: center;
}
.nearbyMerchants_fd1_1 {
padding: 32rpx 0rpx 28rpx 0rpx;
flex-direction: row;
justify-content: center;
}
.nearbyMerchants_fd1_0_c1 {
color: #333333;
font-size: 32rpx;
font-weight: 400;
line-height: 32rpx;
}
.nearbyMerchants_fd1_0_c0_c0 {
width: 28rpx;
height: 28rpx;
border-radius: 0rpx 0rpx 0rpx 0rpx;
margin: 0rpx 16rpx 0rpx 0rpx;
}
.nearbyMerchants_fd1_0_c0 {
width: 580rpx;
flex-direction: row;
align-items: center;
background: rgba(246, 247, 249, 1);
margin: 0rpx 32rpx 0rpx 0rpx;
border-radius: 32rpx 32rpx 32rpx 32rpx;
background-size: 100% auto !important;
padding: 12rpx 24rpx 12rpx 24rpx;
}
.nearbyMerchants_flex_2 {
background: url(https://lvtai-files.oss-cn-beijing.aliyuncs.com/mini/49.png) no-repeat, #eee;
background-size: 100% auto !important;
width: 750rpx;
height: 400rpx;
}
.nearbyMerchants_flex_3 {
padding: 32rpx 24rpx 0rpx 24rpx;
}
.nearbyMerchants_fd3_0_c1_c3_c1_c1 {
color: #999999;
font-size: 24rpx;
font-weight: 400;
line-height: 24rpx;
}
.nearbyMerchants_fd3_0_c1_c3_c1_c0 {
color: #999999;
font-size: 24rpx;
font-weight: 400;
line-height: 24rpx;
}
.nearbyMerchants_fd3_0_c1_c3_c0_c1 {
color: #333333;
font-size: 24rpx;
font-weight: 400;
line-height: 24rpx;
}
.nearbyMerchants_fd3_0_c1_c3_c0_c0 {
color: #333333;
font-size: 24rpx;
font-weight: 400;
line-height: 24rpx;
}
.nearbyMerchants_fd3_0_c1_c3 {
margin: 18rpx 20rpx 0rpx 0rpx;
}
.nearbyMerchants_fd3_0_c1_c2_c1_c1 {
color: #333333;
font-size: 24rpx;
font-weight: 400;
line-height: 24rpx;
}
.nearbyMerchants_fd3_0_c1_c2_c1_c0 {
color: #333333;
font-size: 24rpx;
font-weight: 400;
line-height: 24rpx;
}
.nearbyMerchants_fd3_0_c1_c2_c0_c1 {
color: #333333;
font-size: 24rpx;
font-weight: 400;
line-height: 24rpx;
}
.nearbyMerchants_fd3_0_c1_c2_c0_c0 {
color: #333333;
font-size: 24rpx;
font-weight: 400;
line-height: 24rpx;
}
.nearbyMerchants_fd3_0_c1_c2 {
margin: 18rpx 20rpx 0rpx 0rpx;
}
.nearbyMerchants_fd3_0_c1_c1_c2 {
color: #FF9D00;
font-size: 28rpx;
font-weight: 700;
line-height: 30rpx;
}
.nearbyMerchants_fd3_0_c1_c1_c1 {
color: #FF9D00;
font-size: 28rpx;
font-weight: 700;
line-height: 30rpx;
}
.nearbyMerchants_fd3_0_c1_c1_c0 {
width: 20rpx;
height: 19rpx;
border-radius: 0rpx 0rpx 0rpx 0rpx;
margin: 0rpx 8rpx 0rpx 0rpx;
}
.nearbyMerchants_fd3_0_c1_c1 {
margin: 18rpx 0rpx 0rpx 0rpx;
}
.nearbyMerchants_fd3_0_c1_c0_c1_c1 {
color: #FFFFFF;
font-size: 24rpx;
font-weight: 400;
line-height: 40rpx;
}
.nearbyMerchants_fd3_0_c1_c0_c1_c0 {
width: 24rpx;
height: 24rpx;
border-radius: 0rpx 0rpx 0rpx 0rpx;
margin: 0rpx 4rpx 0rpx 0rpx;
}
.nearbyMerchants_fd3_0_c1_c0_c1001 {
position: relative;
width: 128rpx;
height: 40rpx;
}
.nearbyMerchants_fd3_0_c1_c0_c1 {
// position: relative;
background-color: #64CBE3;
// background: url(https://lvtai-files.oss-cn-beijing.aliyuncs.com/mini/94.png) no-repeat, #eee;
width: 128rpx;
height: 40rpx;
border-radius: 50rpx 0rpx 0rpx 50rpx;
// background-size: 100% auto !important;
justify-content: center;
flex-direction: row;
display: flex;
align-items: center;
}
.nearbyMerchants_fd3_0_c1_c0_c0_c0 {
color: #333333;
font-size: 32rpx;
font-weight: 600;
line-height: 32rpx;
}
.nearbyMerchants_fd3_0_c1 {
width: 474rpx;
margin: 0rpx 0rpx 0rpx 24rpx;
}
.nearbyMerchants_fd3_0_c0_c1_c0 {
width: 180rpx;
height: 180rpx;
border-radius: 16rpx 16rpx 16rpx 16rpx;
}
.nearbyMerchants_fd3_0_c0_c0_c2 {
color: #FFFFFF;
font-size: 20rpx;
font-weight: 500;
line-height: 36rpx;
}
.nearbyMerchants_fd3_0_c0_c0_c1 {
color: #FFFFFF;
font-size: 20rpx;
font-weight: 500;
line-height: 36rpx;
}
.nearbyMerchants_fd3_0_c0_c0_c0 {
color: #FFFFFF;
font-size: 20rpx;
font-weight: 500;
line-height: 36rpx;
}
.nearbyMerchants_fd3_0_c0_c0001 {
position: absolute;
width: 128rpx;
height: 36rpx;
}
.nearbyMerchants_fd3_0_c0_c0 {
background-image: url(https://lvtai-files.oss-cn-beijing.aliyuncs.com/mini/23.png) no-repeat, rgba(255, 162, 31, 1);
width: 128rpx;
height: 36rpx;
background-size: 100% auto !important;
border-radius: 16rpx 0rpx 24rpx 0rpx;
position: absolute;
z-index: 10;
}
.nearbyMerchants_fd3_0 {
width: 702rpx;
flex-direction: row;
background: rgba(255, 255, 255, 1);
margin: 0rpx 0rpx 24rpx 0rpx;
border-radius: 16rpx 16rpx 16rpx 16rpx;
background-size: 100% auto !important;
padding: 24rpx 0rpx 24rpx 24rpx;
}
.nearbyMerchants_picker4_0_c2 {
color: #4781f5;
}
.nearbyMerchants_picker4_0 {
border-bottom: 1px solid #eee;
background: #fff;
padding: 0rpx 32rpx 0rpx 32rpx;
line-height: 88rpx;
border-radius: 25rpx 25rpx 0rpx 0rpx;
background-size: 100% auto !important;
}
.nearbyMerchants_picker5_0_c2 {
color: #4781f5;
}
.nearbyMerchants_picker5_0 {
border-bottom: 1px solid #eee;
background: #fff;
padding: 0rpx 32rpx 0rpx 32rpx;
line-height: 88rpx;
border-radius: 25rpx 25rpx 0rpx 0rpx;
background-size: 100% auto !important;
}
.popup-mask {
width: 750rpx;
background-color: rgba(0, 0, 0, 0.3);
position: fixed;
top: 0rpx;
bottom: 0;
right: 0;
left: 0;
z-index: 9;
}
.popup {
padding: 0 32rpx;
// padding: 40rpx;
position: fixed;
top: 0rpx;
width: 750rpx;
background-color: #fff;
border-radius: 0 0 24rpx 24rpx;
z-index: 99999;
}
.list-wrap {
display: flex;
flex-direction: row;
}
.img-dui {
width: 36rpx;
height: 25rpx;
}
.list {
flex: 1;
height: 600rpx;
}
.item {
// margin-bottom: 24rpx;
height: 104rpx;
flex-direction: row;
align-items: center;
justify-content: space-between;
}
.title {
font-size: 28rpx;
color: #666;
}
.activet {
color: #36AA2E !important;
}
.btn-wrap {
margin-top: 32rpx;
display: flex;
flex-direction: row;
justify-content: center;
}
.sure-btn {
position: fixed;
bottom: 48rpx;
/* #ifdef H5 */
bottom: 118rpx;
/* #endif */
right: 32rpx;
left: 32rpx;
z-index: 11;
width: 686rpx;
height: 80rpx;
background-color: #FF9300;
border-radius: 44rpx;
opacity: 1;
align-items: center;
justify-content: center;
}
.sure {
font-size: 32rpx;
color: #fff;
}
.btn {
width: 200rpx;
height: 64rpx;
background-color: #EEEEEE;
border-radius: 32px 32px 32px 32px;
display: flex;
align-items: center;
justify-content: center;
}
.btn-unselect {
width: 240rpx;
}
.btn-unselect.active {
margin-left: 20rpx;
}
.btn-text {
font-size: 24rpx;
color: #666;
}
.active {
margin-left: 20rpx;
background-color: #36AA2E;
}
.btn-text-active {
font-size: 24rpx;
color: #fff;
}
</style>