// nova-tourism/pages/my/my-order/order-detail/index.js let Parse = getApp().Parse; const company = getApp().globalData.company const dateF = require("../../../../../utils/date") Page({ /** * 页面的初始数据 */ data: { statusBarHeight: 0, screenHeight: 0, customHeight: 0, bottomNavHeight: 0, contentHeight: 0, objectId: '', value: '', roomList: {}, isQr: false, //二维码弹框 statusMap: { 100: '未入住', 200: '已入住', 300: '续住', 400: '已退房', 500: '申请退款', 601: '退款审核通过', 602: '退款已驳回', 700: '退款成功', 800: '已完成', 101: '已取消支付', 102: '已完申请退房成', 103: '退房成功', 104: '退房被驳回', 105: '未支付', }, }, /** * 生命周期函数--监听页面加载 */ onLoad: function (options) { const { objectId, value } = options; const Value = decodeURIComponent(value); this.setData({ objectId, value: Value }) console.log(this.data.value, this.data.objectId); 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; this.setData({ statusBarHeight, screenHeight, customHeight, bottomNavHeight, contentHeight }); if (this.data.value == '民宿') { this.getRoomOrder() } }, async getRoomOrder() { let Order = new Parse.Query('RoomOrder'); Order.equalTo('company', company); Order.equalTo('objectId', this.data.objectId); Order.include('room'); Order.equalTo('user', Parse.User.current().id); Order.include('shopStore'); let room = await Order.find(); let roomList = room.map(async item => { let roomItme = item.toJSON(); roomItme.tiem = await this.formatDate2(roomItme.startTime.iso, roomItme.endTime.iso) roomItme.startTime = await this.formatDate(roomItme.startTime.iso) roomItme.endTime = await this.formatDate(roomItme.endTime.iso) return roomItme }); let roomList2 = await Promise.all(roomList); this.setData({ roomList: roomList2[0] }) console.log(this.data.roomList); }, formatDate2(date1, date2) { date1 = new Date(date1); date2 = new Date(date2); // 获取年份、月份和日期 const year1 = date1.getFullYear(); const month1 = date1.getMonth() + 1; // 月份从0开始,所以要加1 const day1 = date1.getDate(); const year2 = date2.getFullYear(); const month2 = date2.getMonth() + 1; // 月份从0开始,所以要加1 const day2 = date2.getDate(); // 返回格式化的字符串 return `${year1}年${month1}月${day1}日入住 - ${year2}年${month2}月${day2}日离店`; }, formatDate(isoString) { const date = new Date(isoString); const year = date.getUTCFullYear(); const month = String(date.getUTCMonth() + 1).padStart(2, '0'); // 月份从0开始 const day = String(date.getUTCDate()).padStart(2, '0'); const hours = String(date.getUTCHours()).padStart(2, '0'); const minutes = String(date.getUTCMinutes()).padStart(2, '0'); const seconds = String(date.getUTCSeconds()).padStart(2, '0'); return `${year}-${month}-${day} 14:00:00`; }, //复制 copyOrderNum() { const orderNum = this.data.roomList.orderNum; // 获取订单编号 if (orderNum) { wx.setClipboardData({ data: orderNum, success: () => { wx.showToast({ title: '复制成功', icon: 'success', duration: 2000 }); }, fail: (err) => { console.error('复制失败:', err); wx.showToast({ title: '复制失败', icon: 'none', duration: 2000 }); } }); } else { wx.showToast({ title: '没有订单编号', icon: 'none', duration: 2000 }); } }, //续住 gourl() { const start = new Date(); const end = new Date(start); // 复制 start 日期 end.setDate(start.getDate() + 1); // 将 end 设置为 start 的后一天 // 构造要传递的信息 const info = { objectId: this.data.roomList.room.objectId, date_start: dateF.formatTime('YYYY-mm-dd', start), date_end: dateF.formatTime('YYYY-mm-dd', end), }; console.log('info', info); wx.navigateTo({ url: `../../../homestay/homestay-order2/index?objectId=${info.objectId}&date_start=${info.date_start}&date_end=${info.date_end}` }); }, /**展开订单二维码 */ async openQr() { let { qr } = this.data if (qr) { this.setData({ isQr: true }) return } let that = this let { roomList } = this.data let url = 'https://server.fmode.cn/api/common/qrcode' wx.request({ url: url, data: { qrCode: roomList?.objectId || '', darkColor: "#000000", lightColor: "#ffffff" }, method: 'GET', header: { 'content-type': 'application/json' }, success: function (res) { let qr = res.data.data that.setData({ qr, isQr: true, }) }, fail: function () { wx.showToast({ title: '请求二维码失败,请稍后再试', }) } }) }, closeQr() { this.setData({ isQr: false }) }, /** * 生命周期函数--监听页面初次渲染完成 */ onReady: function () { }, /** * 生命周期函数--监听页面显示 */ onShow: function () { }, /** * 生命周期函数--监听页面隐藏 */ onHide: function () { }, /** * 生命周期函数--监听页面卸载 */ onUnload: function () { }, /** * 页面相关事件处理函数--监听用户下拉动作 */ onPullDownRefresh: function () { }, /** * 页面上拉触底事件的处理函数 */ onReachBottom: function () { }, /** * 用户点击右上角分享 */ onShareAppMessage: function () { } })