| | |
| | | import { defineStore } from 'pinia' |
| | | import locationUtil from '@/utils/location.js' |
| | | import { reportLocationApi } from '@/api/map.js' |
| | | |
| | | const useLocationStore = defineStore('location', { |
| | | state: () => ({ |
| | |
| | | // 位置更新间隔(毫秒) |
| | | updateInterval: 5000, |
| | | // 位置监听器ID |
| | | watcherId: null |
| | | watcherId: null, |
| | | // 上次位置上报时间 |
| | | lastReportTime: 0 |
| | | }), |
| | | |
| | | getters: { |
| | |
| | | }, |
| | | |
| | | /** |
| | | * 位置信息上报(可根据实际需求实现) |
| | | * 位置信息上报 |
| | | * @param {Object} location 位置信息 |
| | | */ |
| | | reportLocation(location) { |
| | | // 这里可以添加位置信息上报到服务器的逻辑 |
| | | // 例如:api.uploadLocation(location) |
| | | console.log('位置上报:', location); |
| | | async reportLocation(location) { |
| | | |
| | | try { |
| | | const now = Date.now(); |
| | | // 检查是否达到上报时间间隔(1分钟) |
| | | if (now - this.lastReportTime >= 60000) { |
| | | // 构造请求参数 |
| | | const params = { |
| | | longitude: location.longitude, |
| | | latitude: location.latitude, |
| | | // reportTime: new Date().toISOString() |
| | | }; |
| | | |
| | | // 调用位置上报接口 |
| | | const result = await reportLocationApi(params); |
| | | console.log('位置上报成功:', result); |
| | | |
| | | // 更新上次上报时间 |
| | | this.lastReportTime = now; |
| | | } |
| | | } catch (error) { |
| | | console.error('位置上报失败:', error); |
| | | } |
| | | }, |
| | | |
| | | /** |