feat(M08-A): 接入顾客端选店下单入口
This commit is contained in:
@@ -1,8 +1,60 @@
|
||||
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 })
|
||||
}
|
||||
},
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user