Files
jdt-user/src/pages/index/index.vue
Huakk 94a4b5e1df
All checks were successful
continuous-integration/drone/push Build is passing
feat(custom):
2024-05-20 18:18:16 +08:00

159 lines
4.2 KiB
Vue

<template>
<view>
<view :style="{marginTop: BarHeight + 'px'}"></view>
<view class="local">
<view class="iconfont icon-dizhi" style="font-size: 20px"></view>
<text class="text-[28px]">{{ address }}</text>
</view>
<view class="search">
<view
class="iconfont icon-sousuo"
style="color: #8f8f8f; margin-right: 8px"></view>
<input placeholder="请输入商家名称搜索" v-model="searchVal" />
<view class="search-btn" @click="clickSearch">搜索</view>
</view>
<view class="banner">
<view class="title"></view>
<navigator class="jf-btn" hover-class="none"></navigator>
<view class="footer">
<navigator hover-class="none" class="btn-1"></navigator>
<navigator
hover-class="none"
openType="switchTab"
url="/pages/game/gamehome/index"
class="btn-2"></navigator>
<navigator hover-class="none" class="btn-3"></navigator>
</view>
</view>
<view class="navigation">
<view
class="item"
v-for="(item, index) in navigationList"
:key="index"
@click="toPage(item)">
<image class="icon" :src="item.icon" />
<view class="text">{{ item.name }}</view>
</view>
</view>
<view class="ad" @click="showTips('该功能暂未开放')"></view>
<MerList :get-user-location="getUserLocal" />
</view>
</template>
<script setup lang="ts">
import Taro from '@tarojs/taro';
import {ref} from 'vue';
import {getHomeList, getStoreList} from '@/api/home';
import MerList from '@/components/MerList.vue';
import {showTips} from '@/utils';
const statusBarHeight = Taro.getSystemInfoSync().statusBarHeight;
const BarHeight = ref((statusBarHeight as number) + 7);
interface navigationType {
ID?: number;
type: number;
icon: string;
name: string;
url: string;
}
const navigationList = ref<Array<navigationType>>([]);
Taro.useShareAppMessage(() => ({
title: '捷兑通',
path: `/pages/index/index?scene=${Taro.getStorageSync('token')}`,
imageUrl: 'https://upload.jdt168.com/1714375021923881119_Share.jpg',
}));
const searchVal = ref('');
const clickSearch = () => {
if (!searchVal.value)
return Taro.showToast({
title: '请输入商家名称再搜索',
icon: 'none',
});
Taro.navigateTo({
url: `/pages/search/index?name=${searchVal.value}`,
});
searchVal.value = '';
};
Taro.useLoad(async () => {
getNavLists();
getUserLocal();
});
const address = ref('获取位置中......');
const getUserLocal = async () => {
Taro.getLocation({
type: 'wgs84',
success: res => {
Taro.request({
url: `https://apis.map.qq.com/ws/geocoder/v1/?location=${res.latitude},${res.longitude}&key=S3GBZ-WR26O-IXNW2-SXBOD-LZXV6-WAFNO&get_poi=1`,
method: 'GET',
success: res => {
const data = res.data.result.address_component;
address.value = `${data.district}${data.street_number}`;
},
});
},
});
};
const getNavLists = async () => {
navigationList.value = [
// {
// type: 1,
// icon: '//p0.meituan.net/csc/5c770748f0028c63741c5ec14df3cc386715.png',
// url: '',
// name: '活动商家',
// },
// {
// type: 1,
// icon: '//p0.meituan.net/csc/4868c06b99008ff7d5f81e6514858c8a7950.png',
// url: '',
// name: '兑换商家',
// },
{
type: 1,
icon: '//p0.meituan.net/csc/f33ad2443a67e9f3474a1d5fd9d529db7504.png',
url: '/pages/users/settled_mer/index',
name: '商户入驻',
},
{
type: 1,
icon: '//p0.meituan.net/csc/0403cf37dd14a6b44b22ffccaa2878f95703.png',
url: '/pages/allClassList/index',
name: '全部服务',
},
];
const res = await getHomeList();
res.data.data.forEach(item => {
navigationList.value.unshift({
ID: item.ID,
type: 2,
icon: item.icon,
url: item.url,
name: item.name,
});
});
};
const toPage = item => {
item.type !== 1
? Taro.navigateTo({
url: `/pages/search/index?id=${item.ID}&name=${item.name}`,
})
: Taro.navigateTo({
url: item.url as string,
});
};
</script>
<style lang="scss">
@import './index.scss';
</style>