/** * 首页 */ import { View, Image } from '@tarojs/components' import { useLoad } from '@tarojs/taro' import Taro from '@tarojs/taro' import { observer } from 'mobx-react' import { Swiper } from '@taroify/core' import { LocationOutlined } from '@taroify/icons' import { useEffect, useState } from 'react' import { userStore } from '../../store' import { getBigImage, BIG_IMAGES } from '@/utils/imageHelper' import './index.scss' const Index = observer(() => { const [currentDistance, setCurrentDistance] = useState('--') const [storeName, setStoreName] = useState('黑八大师联盟球厅店') useLoad(() => { console.log('首页加载') }) // 请求定位权限并获取位置 const requestLocationPermission = async () => { try { // 检查定位权限设置 const setting = await Taro.getSetting() if (!setting.authSetting['scope.userLocation']) { // 未授权,请求授权 try { await Taro.authorize({ scope: 'scope.userLocation' }) } catch (err) { // 用户拒绝授权,引导用户手动开启 Taro.showModal({ title: '定位权限', content: '需要获取您的位置信息以显示附近门店,请在设置中开启定位权限', confirmText: '去设置', success: (res) => { if (res.confirm) { Taro.openSetting() } } }) return } } // 获取当前位置 const location = await Taro.getLocation({ type: 'gcj02', isHighAccuracy: true }) console.log('当前位置:', location) // 这里可以根据实际位置计算距离,暂时模拟 setCurrentDistance('1.12km') } catch (err) { console.error('获取位置失败:', err) setCurrentDistance('--') } } useEffect(() => { // 页面加载时请求定位权限 requestLocationPermission() }, []) // 处理扫码开台点击 - 跳转到独立扫码页面(无tabbar) const handleScanClick = () => { Taro.navigateTo({ url: '/pages/scanCode/index' }) } // 处理附近门店点击 const handleNearbyStoreClick = () => { Taro.switchTab({ url: '/pages/store/index' }) } // 处理团购核销点击 const handleGroupBuyClick = () => { Taro.showToast({ title: '团购核销功能开发中', icon: 'none' }) } return ( {/* 轮播图区域 */} {/* 内容区域 - 上移覆盖轮播图 */} {/* 左侧扫码开台 */} 扫码开台 扫球桌二维码开台/关台 {/* 右侧上下两个卡片 */} {/* 附近门店 */} 附近门店 {storeName} {currentDistance} {/* 团购核销 */} 团购核销 美团/抖音/点评/快手 ) }) export default Index