const api = require('../../utils/api') Page({ data: { serviceLocation: null, loading: true, loadError: false, }, onLoad() { this.loadStation() }, async loadStation() { this.setData({ loading: true, loadError: false }) try { const home = await api.get('/home') this.setData({ serviceLocation: home?.serviceLocation || null, loading: false }) } catch (error) { console.error('加载服务站失败', error) this.setData({ loading: false, loadError: true }) } }, call() { const station = this.data.serviceLocation const phoneNumber = station?.contactPhone || station?.contactPhoneDisplay || '' const digitCount = phoneNumber.replace(/\D/g, '').length if (!phoneNumber || phoneNumber.includes('*') || digitCount < 5) { wx.showToast({ title: '联系电话请以预约确认为准', icon: 'none' }) return } wx.makePhoneCall({ phoneNumber }) }, openMap() { const station = this.data.serviceLocation const latitude = Number(station?.latitude) const longitude = Number(station?.longitude) if (Number.isFinite(latitude) && Number.isFinite(longitude) && latitude && longitude) { wx.openLocation({ latitude, longitude, name: station.name, address: station.address || '', }) return } if (station?.address) { wx.setClipboardData({ data: station.address }) return } wx.showToast({ title: '暂未提供地图位置', icon: 'none' }) }, book() { const id = this.data.serviceLocation?.id const query = id ? `?serviceLocationId=${encodeURIComponent(id)}` : '' wx.navigateTo({ url: `/pages/service-appointment/service-appointment${query}` }) }, onRetry() { this.loadStation() }, })