瀏覽代碼

minsu page

邹能昇 4 月之前
父節點
當前提交
3c0d54aec8

+ 43 - 12
nova-tourism/pages/homestay/homestay-detail/index.js

@@ -1,6 +1,7 @@
 // nova-tourism/pages/homestay/homestay-detail/index.js
 let Parse = getApp().Parse;
 const company = getApp().globalData.company
+import dateServ from '../../../service/date';
 Page({
 
     /**
@@ -38,6 +39,7 @@ Page({
         show: false,
         date_start1: '',
         date_end1:'',
+
     },
 
     /**
@@ -194,28 +196,57 @@ Page({
         room.equalTo('company', company);
         room.equalTo('shop', this.data.objectId);
         room.equalTo('isEnabled', 'true');
-        room.include('benefitMap')
+        room.include('benefitMap');
         room.notEqualTo('isDeleted', 'true');
-
+    
         let room2 = await room.find();
-        let roomList = room2.map(item => item.toJSON());
+        // 使用 Promise.all 来处理异步操作
+        let roomList = await Promise.all(room2.map(async item => {
+            let roomItem = item.toJSON();
+            let count = await this.checkOrderCount(roomItem.objectId, this.data.start, this.data.end);
+            console.log(count, roomItem.total); 
+            roomItem.isroom = count < roomItem.total; // 简化判断
+            return roomItem;
+        }));
+    
         // 对 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 排前面
+            // 首先比较 isroom,true 排在前面
+            if (a.isroom === b.isroom) {
+                // 如果 isroom 相同,按 remaining 排序
+                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;
             }
-            // 如果两个房间的 remaining 都不为 0,按数量升序排列
-            return a.remaining - b.remaining;
+            return a.isroom ? -1 : 1; // true 排在前面,false 排在后面
         });
+    
         this.setData({
             roomList
-        })
+        });
         console.log('房间', this.data.roomList);
     },
+    async checkOrderCount(roomId,start,end) {
+        const startTime = new Date(start);
+        const endTime = new Date(end);
+        let now = dateServ.changeDateTime(new Date(), '14:00:00')
+        let Order = new Parse.Query("RoomOrder")
+        Order.equalTo("room", roomId)
+        Order.equalTo("company", company)
+        Order.exists("status")
+        Order.notContainedIn('status',[100,400,601,700])
+        Order.greaterThanOrEqualTo("startTime", endTime) //20  23    21 22  
+        Order.lessThanOrEqualTo("endTime", startTime)
+        Order.select("startTime", "endTime")
+        let count = await Order.count()
+        console.log(count);
+        return count
+    },
     //收藏功能
     async iscollect(object) {
         const currentUser = Parse.User.current();

+ 2 - 2
nova-tourism/pages/homestay/homestay-detail/index.wxml

@@ -48,7 +48,7 @@
                 <van-calendar show="{{ show }}" show-confirm="{{ true }}" confirm-text="完成" confirm-disabled-text='完成' type="range" bind:close="onClose" bind:confirm="onConfirm" color='#46a9a4' position='bottom' />
             </van-sticky>
             <block wx:for="{{roomList}}" wx:key="index">
-                <view class="room-card" wx:if="{{item.remaining>0||item.remaining== undefined}}">
+                <view class="room-card" wx:if="{{item.isroom}}">
                     <view class="room-card1">
                         <image src="{{item.images[0]}}"></image>
                         <view class="room-card-textbox">
@@ -80,7 +80,7 @@
                     </view>
                 </view>
                 <!-- 无房 -->
-                <view class="room-card" style="opacity: 0.5;" wx:if="{{item.remaining==0}}">
+                <view class="room-card" style="opacity: 0.5;" wx:if="{{!item.isroom}}">
                     <view class="room-card1">
                         <image src="{{item.images[0]}}"></image>
                         <view class="room-card-textbox">

+ 1 - 1
nova-tourism/pages/homestay/homestay-order2/index.js

@@ -169,7 +169,7 @@ Page({
         Order.lessThanOrEqualTo("endTime", startTime)
         Order.select("startTime", "endTime")
         let count = await Order.count()
-        console.log(count);
+        console.log('count',count);
         return count
     },
     //生成订单号