// nova-tourism/pages/homestay/homestay-detail/index.js let Parse = getApp().Parse; const company = getApp().globalData.company Page({ /** * 页面的初始数据 */ data: { //屏幕高度 statusBarHeight: 0, // 状态栏高度 screenHeight: 0, // 屏幕高度 customHeight: 0, // 自定义导航栏高度(如小程序右上角胶囊按钮) bottomNavHeight: 0, // 底部导航栏高度 contentHeight: 0, // 可用内容高度 // 轮播图数组 imageUrls: [], index: 1, // decodedDateStart: '', decodedDateEnd: '', objectId: "", daysBetween: 0, istoday:null, storeList: [], roomList: [] }, /** * 生命周期函数--监听页面加载 */ onLoad: function (options) { // 计算 const systemInfo = wx.getSystemInfoSync(); const statusBarHeight = systemInfo.statusBarHeight || 0; const screenHeight = systemInfo.screenHeight || 0; const custom = wx.getMenuButtonBoundingClientRect(); const customHeight = custom.height + 10 + 2 || 0; const bottomNavHeight = systemInfo.screenHeight - systemInfo.safeArea.bottom || 0; const contentHeight = (screenHeight - bottomNavHeight - statusBarHeight - customHeight) * 750 / systemInfo.windowWidth; if (bottomNavHeight) { const padding_bottom = bottomNavHeight * 750 / systemInfo.windowWidth this.setData({ bottomNavHeight: padding_bottom }) console.log(this.data.bottomNavHeight); } else { this.setData({ bottomNavHeight: 40 }) } this.setData({ statusBarHeight, screenHeight, customHeight, contentHeight }); const { objectId, date_start, date_end, daysBetween, istoday } = options; // 解码接收到的参数 const decodedDateStart = decodeURIComponent(date_start); const decodedDateEnd = decodeURIComponent(date_end); this.setData({ decodedDateStart, decodedDateEnd, objectId, daysBetween, istoday }) console.log('istoday',this.data.istoday); this.gethomestay() this.getroom() this.getpic() }, /** * 生命周期函数--监听页面初次渲染完成 */ onReady: function () { }, /** * 生命周期函数--监听页面显示 */ onShow: function () { }, /** * 生命周期函数--监听页面隐藏 */ onHide: function () { }, /** * 生命周期函数--监听页面卸载 */ onUnload: function () { }, /** * 页面相关事件处理函数--监听用户下拉动作 */ onPullDownRefresh: function () { }, /** * 页面上拉触底事件的处理函数 */ onReachBottom: function () { }, /** * 用户点击右上角分享 */ onShareAppMessage: function () { }, //随轮播图变化而变化 onSwiperChange: function (event) { const currentIndex = event.detail.current; // 获取当前索引 this.setData({ index: currentIndex + 1 }) }, //获取名宿信息 async gethomestay() { let ShopStore = new Parse.Query('ShopStore'); ShopStore.equalTo('company', company); ShopStore.equalTo('type', "stay"); ShopStore.equalTo('objectId', this.data.objectId); ShopStore.notEqualTo('isDeleted', "true"); let store = await ShopStore.find(); let storeList = store.map(item => item.toJSON()); this.setData({ storeList }); console.log(this.data.storeList); }, //获取房间信息 async getroom() { let room = new Parse.Query('ShopRoom'); room.equalTo('company', company); room.equalTo('shop', this.data.objectId); room.equalTo('isEnabled', 'true'); room.notEqualTo('isDeleted', 'true'); let room2 = await room.find(); let roomList = room2.map(item => item.toJSON()); // 对 roomList 进行排序 roomList.sort((a, b) => { // 先比较 remaining,remaining 为 0 的排后面 if (a.remaining === 0 && b.remaining !== 0) { return 1; // a 排后面 } if (a.remaining !== 0 && b.remaining === 0) { return -1; // a 排前面 } // 如果两个房间的 remaining 都不为 0,按数量升序排列 return a.remaining - b.remaining; }); this.setData({ roomList }) console.log('房间', this.data.roomList); }, //获取轮播图 async getpic() { let Banner = new Parse.Query('Banner'); Banner.equalTo('company', company); Banner.equalTo('store', this.data.objectId); Banner.equalTo('isEnabled', 'true'); Banner.notEqualTo('isDeleted', 'true'); Banner.select('image'); let Banner2 = await Banner.find(); // 提取 image 属性并存储到 imageUrls 中 let imageUrls = Banner2.map(item => item.get('image')); // 使用 get() 方法获取 image 属性 this.setData({ imageUrls // 将提取的 imageUrls 存储到组件状态中 }); console.log(this.data.imageUrls); // 输出 imageUrls }, })