210 lines
5.3 KiB
Vue
210 lines
5.3 KiB
Vue
<template>
|
|
<view class="home-base-bg">
|
|
<InputAndSwiper type='0' :bannerURL="swiperList"></InputAndSwiper>
|
|
<view class="home-content">
|
|
<view class="service">
|
|
<u-image src="/static/statistics/sy_icon_lxkf.png" width="108rpx" height="108rpx"/>
|
|
</view>
|
|
<HomeNavCard></HomeNavCard>
|
|
<HomeNoticeBar :text="notice" />
|
|
<Statistics :statNum="statNum"/>
|
|
<view class="show-and-search">
|
|
<view class="show-tab list-tab" :class="{ 'tab-activate': chooseIndex === 0 }" @click="this.chooseIndex=0">
|
|
<text>店铺列表</text>
|
|
</view>
|
|
<view class="search-tab list-tab" :class="{ 'tab-activate': chooseIndex === 1 }" @click="this.chooseIndex=1">
|
|
<text>找店列表</text>
|
|
</view>
|
|
</view>
|
|
<SearchShopList v-if="chooseIndex" />
|
|
<ShowShopList v-else />
|
|
</view>
|
|
<TabBar :current-page="0"></TabBar>
|
|
</view>
|
|
</template>
|
|
|
|
<script>
|
|
import HomeNoticeBar from "./HomeMainContent/HomeNoticeBar.vue"
|
|
import HomeNavCard from "./HomeMainContent/HomeNavCard.vue"
|
|
import Statistics from "./HomeMainContent/Statistics.vue"
|
|
import QQMapWX from "@/utils/qqmap-wx-jssdk.min.js"
|
|
export default {
|
|
components: {
|
|
HomeNavCard,
|
|
HomeNoticeBar,
|
|
Statistics
|
|
},
|
|
data() {
|
|
return {
|
|
notice: [],
|
|
chooseIndex: 0,
|
|
statNum: {},
|
|
swiperList:[]
|
|
}
|
|
},
|
|
onLoad() {
|
|
this.getBanner()
|
|
this.getNotice()
|
|
this.getStat()
|
|
this.open()
|
|
},
|
|
methods: {
|
|
getBanner(){
|
|
this.$api.getBanner().then(res=>{
|
|
console.log('轮播图',res.data.data);
|
|
this.swiperList = res.data.data.map(item=>this.$api.imgUrl+item.img)
|
|
})
|
|
},
|
|
getNotice(){
|
|
this.$api.getHotInfo().then(res=>{
|
|
this.notice = res.data.data.map(item=>item.title)
|
|
})
|
|
},
|
|
getStat(){
|
|
this.$api.getStat().then(res=>{
|
|
this.statNum = res.data.data
|
|
console.log(res.data.data);
|
|
})
|
|
},
|
|
getRegionList() {
|
|
var that = this
|
|
uni.request({
|
|
url: 'https://apis.map.qq.com/ws/district/v1/getchildren?id=' + uni.getStorageSync('city_code') + '&key=' +
|
|
that.$api.key,
|
|
success(res) {
|
|
uni.setStorageSync('regionList', JSON.stringify(res.data.result[0].map(item => item.fullname)));
|
|
},
|
|
fail(err) {
|
|
console.log('请求区域失败:', err);
|
|
}
|
|
})
|
|
},
|
|
getUserLocation() {
|
|
var that = this
|
|
let qqmapsdk = new QQMapWX({
|
|
key: that.$api.key
|
|
});
|
|
uni.getFuzzyLocation({
|
|
type: 'wgs84',
|
|
success(res) {
|
|
console.log('res.latitude', res.latitude);
|
|
console.log('res.longitude', res.longitude);
|
|
qqmapsdk.reverseGeocoder({
|
|
location: {
|
|
latitude: res.latitude,
|
|
longitude: res.longitude
|
|
},
|
|
success: (re) => {
|
|
console.log("解析地址成功", re);
|
|
console.log(re.result.ad_info.city);
|
|
console.log(re.result.ad_info.district);
|
|
let city = re.result.ad_info.city
|
|
let district = re.result.ad_info.district
|
|
console.log('city-code',re.result.ad_info.city_code.substring(3));
|
|
uni.setStorageSync('city_code', re.result.ad_info.city_code.substring(3));
|
|
uni.setStorageSync('city', city.slice(0, 2));
|
|
uni.setStorageSync('district', district);
|
|
that.getRegionList()
|
|
// that.position = city.slice(0, 2) + district.slice(0, 2)
|
|
},
|
|
fail: (re) => {
|
|
console.log(re, '失败信息');
|
|
}
|
|
})
|
|
},
|
|
fail(err) {
|
|
console.log("获取经纬度失败", err);
|
|
},
|
|
});
|
|
},
|
|
//提示用户开启定位服务
|
|
open() {
|
|
var that = this
|
|
uni.getSetting({
|
|
success: function (res) {
|
|
if (res.authSetting['scope.userFuzzyLocation']) {
|
|
console.log('用户已经授权定位权限');
|
|
} else {
|
|
console.log('用户未授权定位权限');
|
|
uni.authorize({
|
|
scope: 'scope.userFuzzyLocation',
|
|
success: function() {
|
|
console.log('授权成功');
|
|
that.getUserLocation()
|
|
},
|
|
fail: function() {
|
|
console.log('授权失败');
|
|
uni.showModal({
|
|
content: '检测到您没打开获取信息功能权限,是否去设置打开?',
|
|
confirmText: "确认",
|
|
cancelText: '取消',
|
|
success: (res) => {
|
|
if (res.confirm) {
|
|
uni.openSetting({
|
|
success: (res) => {
|
|
console.log(res);
|
|
that.getUserLocation();
|
|
}
|
|
})
|
|
} else {
|
|
console.log('取消');
|
|
return false;
|
|
}
|
|
}
|
|
})
|
|
return false;
|
|
}
|
|
})
|
|
}
|
|
}
|
|
});
|
|
}
|
|
}
|
|
}
|
|
</script>
|
|
|
|
<style lang="scss" scoped>
|
|
.home-base-bg {
|
|
background-color: $uni-bg-color-grey;
|
|
width: 100%;
|
|
|
|
.home-content {
|
|
margin: 0 10px;
|
|
.service {
|
|
position: fixed;
|
|
right: 17rpx;
|
|
top: 1109rpx;
|
|
z-index: 1;
|
|
}
|
|
}
|
|
|
|
.show-and-search {
|
|
display: flex;
|
|
|
|
.list-tab {
|
|
z-index: 2;
|
|
width: 259rpx;
|
|
height: 70rpx;
|
|
background: #B7EBD2;
|
|
border-radius: 11px 100px 0px 0px;
|
|
color: #fff;
|
|
font-size: 15px;
|
|
line-height: 21px;
|
|
font-weight: 500;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
}
|
|
|
|
.search-tab {
|
|
z-index: 1;
|
|
transform: translateX(-61rpx);
|
|
}
|
|
|
|
.tab-activate {
|
|
background: linear-gradient(#E86262, #CC3333);
|
|
z-index: 3;
|
|
}
|
|
}
|
|
}
|
|
</style> |