Files

61 lines
1.8 KiB
JavaScript

const { request, ensureLogin, cents } = require('../../utils/api.js')
Page({
data: {
storeId: '',
loading: false,
errorMessage: '',
store: null,
rooms: [],
wifi: null,
},
onLoad(options) {
this.setData({ storeId: options.storeId || '' })
if (options.storeId) this.loadStore(options.storeId)
},
async loadStore(storeId) {
this.setData({ loading: true, errorMessage: '' })
try {
const [storeResponse, roomsResponse] = await Promise.all([
request(`/stores/${encodeURIComponent(storeId)}`),
request(`/stores/${encodeURIComponent(storeId)}/rooms`),
])
this.setData({
store: storeResponse.data,
rooms: (roomsResponse.data || []).map((room) => ({
...room,
basePriceText: cents(room.basePriceCents),
depositText: cents(room.depositCents),
})),
})
} catch (error) {
this.setData({ errorMessage: error.message || '门店加载失败' })
} finally {
this.setData({ loading: false })
}
},
openRoom(event) {
const roomId = event.currentTarget.dataset.roomId
if (!roomId || !this.data.storeId) return
wx.navigateTo({
url: `/pages/room/detail?storeId=${encodeURIComponent(this.data.storeId)}&roomId=${encodeURIComponent(roomId)}`,
})
},
async loadWifi() {
if (!this.data.storeId) return
this.setData({ loading: true, errorMessage: '' })
try {
await ensureLogin()
const response = await request(`/stores/${encodeURIComponent(this.data.storeId)}/wifi`)
this.setData({ wifi: response.data })
} catch (error) {
this.setData({ errorMessage: error.message || '请登录并确认到店权限后查看 Wi-Fi' })
} finally {
this.setData({ loading: false })
}
},
})