let Parse = getApp().Parse; const company = getApp().globalData.company Component({ /** * 组件的属性列表 */ properties: {}, /** * 组件的初始数据 */ data: { statusBarHeight: 0, screenHeight: 0, customHeight: 0, bottomNavHeight: 0, contentHeight: 0, date_start: '', date_end: '', date_start1: '', date_end1: '', istoday:true, daysBetween:1, show: false, //店铺数据 storeList:[], //价格 price:211 }, lifetimes: { detached: function () {}, attached: async function () { 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 - 50 - statusBarHeight - customHeight) * 750 / systemInfo.windowWidth; this.setData({ statusBarHeight, screenHeight, customHeight, bottomNavHeight, contentHeight }); this.getcurrentdate(); this.gethomestar() }, }, /** * 组件的方法列表 */ methods: { //获取今日明日日期 getcurrentdate() { const today = new Date(); const tomorrow = new Date(); tomorrow.setDate(today.getDate() + 1); this.setData({ date_start: this.formatDate(today), date_end: this.formatDate(tomorrow), date_start1: this.formatDate(today), date_end1: this.formatDate(tomorrow), }); console.log(this.data.date_start, this.data.date_end); }, // 计算两个日期之间的天数 calculateDaysBetween(startDate, endDate) { const start = new Date(startDate); const end = new Date(endDate); const timeDifference = end - start; // 计算时间差(毫秒) const daysDifference = timeDifference / (1000 * 3600 * 24); // 转换为天数 return daysDifference; // 返回天数差 }, //开日历 onDisplay() { this.setData({ show: true }); }, //关日历 onClose() { this.setData({ show: false }); }, //转换日期 formatDate(date) { date = new Date(date); return `${date.getMonth() + 1}月${date.getDate()}日`; }, //选好日期点击完成后 onConfirm(event) { const [start, end] = event.detail; const daysBetween = this.calculateDaysBetween(start, end); // 计算天数差 this.setData({ show: false, date_start: `${this.formatDate(start)} `, date_end: `${this.formatDate(end)}`, daysBetween }); if(this.data.date_start.trim()==this.data.date_start1.trim()&&this.data.date_end.trim()==this.data.date_end1.trim()){ this.setData({ istoday:true }) console.log(this.data.istoday); }else{ this.setData({ istoday:false }) console.log(this.data.istoday); } this.gethomestar() console.log(`入住日期: ${this.data.date_start}, 离店日期: ${this.data.date_end}, 天数差: ${daysBetween}天`); }, gourl(e) { const url = e.currentTarget.dataset.url; const id = e.currentTarget.dataset.id; // 构造要传递的信息 const info = { objectId: id, date_start: this.data.date_start, date_end: this.data.date_end, daysBetween: this.data.daysBetween, istoday:this.data.istoday, }; // 将信息转为查询字符串 const queryString = Object.keys(info) .map(key => `${encodeURIComponent(key)}=${encodeURIComponent(info[key])}`) .join('&'); // 使用查询字符串跳转 wx.navigateTo({ url: `${url}?${queryString}`, }); }, //获取店铺消息 async gethomestar() { let ShopStore = new Parse.Query('ShopStore'); ShopStore.equalTo('company', company); ShopStore.equalTo('type', "stay"); ShopStore.notEqualTo('isDeleted', "true"); let store = await ShopStore.find(); let storeList = store.map(item => { let storeItem = item.toJSON(); // 为每一项添加价格属性 storeItem.price = storeItem.perCapita*this.data.daysBetween; return storeItem; }); this.setData({ storeList }); console.log(this.data.storeList); } } });