gqx 2 роки тому
батько
коміт
5a7299b422

+ 333 - 188
src/views/room/fangtailive.vue

@@ -90,106 +90,229 @@
         </div>
         <div class="week-table" style="overflow: hidden auto">
           <div id="components-grid-demo-playground" class="w-time-period-list">
-            <template v-for="(i, iIndex) in planList2">
-              <div
-                v-for="(period, cIndex) in i.child"
-                :key="`i${iIndex}-period${cIndex}`"
-                style="padding: 5px"
-              >
-                <p>
-                  <span style="color: rgba(0, 186, 173, 1); font-weight: 600">
-                    {{ i.meetingRoomName }}{{ period.timePeriod }}
-                  </span>
-                  <a-divider type="vertical" />
-                  <span style="padding-right: 5px"
-                    >{{ period.count }}间:在住{{
-                      period.checkInCount
-                    }}间/空置{{ period.vacantCount }}间</span
-                  >
-                  <a-icon
-                    type="right"
-                    v-if="period.collapse == 0"
-                    @click="collapseClick(period, 1)"
-                  />
-                  <a-icon
-                    type="down"
-                    v-else
-                    @click="collapseClick(period, 0)"
-                  />
-                </p>
+            <div
+              v-for="(period, cIndex) in roomList"
+              :key="`period${cIndex}`"
+              style="padding: 5px"
+            >
+              <p>
+                <span style="color: rgba(0, 186, 173, 1); font-weight: 600">
+                  {{ period.buildingName }}{{ period.name }}
+                </span>
+                <a-divider type="vertical" />
+                <span style="padding-right: 5px"
+                  >{{ period.count }}间:在住{{ period.checkInCount }}间/空置{{
+                    period.vacantCount
+                  }}间</span
+                >
+                <a-icon
+                  type="right"
+                  v-if="period.collapse == 0"
+                  @click="collapseClick(period, 1)"
+                />
+                <a-icon type="down" v-else @click="collapseClick(period, 0)" />
+              </p>
 
-                <a-row :gutter="[5, 5]" v-show="period.collapse == 1">
-                  <a-col
-                    v-for="(roomLive, roomLiveIndex) in period.schedule"
-                    :key="`i${iIndex}-period${cIndex}roomLive${roomLiveIndex}`"
-                    :span="3"
-                    @click.stop="roomItemClick(roomLive)"
-                    @dblclick.stop="handleBillInfo(roomLive)"
-                  >
-                    <!-- <div class="post-mark"></div> -->
+              <a-row :gutter="[5, 5]" v-show="period.collapse == 1">
+                <a-col
+                  v-for="(roomLive, roomLiveIndex) in period.rooms"
+                  :key="`period${cIndex}roomLive${roomLiveIndex}`"
+                  :span="3"
+                  @click.stop="roomItemClick(roomLive)"
+                  @dblclick.stop="handleBillInfo(roomLive)"
+                >
+                  <!-- <div class="post-mark"></div> -->
 
+                  <div
+                    class="room-item"
+                    :style="{
+                      background:
+                        roomStatusColorList && roomStatusColorList.length > 0
+                          ? getRoomStatusColor(roomLive.roomInfo.roomStatus)
+                          : '',
+                    }"
+                  >
                     <div
-                      class="room-item"
-                      :style="{
-                        background:
-                          roomStatusColorList && roomStatusColorList.length > 0
-                            ? roomStatusColorList[roomLive.detail.status].extend
-                            : '',
-                      }"
+                      class="select-cell"
+                      v-if="roomLive.roomInfo.state == 88"
                     >
-                      <div
-                        class="select-cell"
-                        v-if="roomLive.detail.check == 1"
+                      <a-icon
+                        type="check-circle"
+                        theme="twoTone"
+                        two-tone-color="#52c41a"
+                        style="font-size: 40px"
+                      />
+                    </div>
+                    <a-popover placement="rightTop">
+                      <template
+                        slot="content"
+                        v-if="
+                          roomLive.livingData && roomLive.livingData.livingOrder
+                        "
                       >
-                        <a-icon
-                          type="check-circle"
-                          theme="twoTone"
-                          two-tone-color="#52c41a"
-                          style="font-size: 40px"
-                        />
-                      </div>
-                      <a-popover placement="rightTop">
-                        <template
-                          slot="content"
-                          v-if="roomLive.detail.status == 1"
-                        >
-                          <p>入住:{{ roomLive.detail.startDate }}</p>
-                          <p>预离:{{ roomLive.detail.endDate }}</p>
-                          <p>已住:{{ roomLive.detail.day }}晚 已付:600元</p>
-                          <p>来源:{{ roomLive.detail.mobile }} 消费:300元</p>
-                          <p>
-                            房价:{{ roomLive.detail.amout }}/晚 余额:{{
-                              roomLive.detail.balance
-                            }}
-                          </p>
-                          <p>注:{{ roomLive.detail.remark }}</p>
-                        </template>
-                        <template
-                          slot="title"
-                          v-if="roomLive.detail.status == 1"
+                        <p>
+                          入住:{{ roomLive.livingData.livingOrder.arrivalTime }}
+                        </p>
+                        <p>
+                          预离:{{ roomLive.livingData.livingOrder.dueOutTime }}
+                        </p>
+                        <p>
+                          已住:{{ roomLive.livingData.livingOrder.dayCount }}晚
+                          已付:0元
+                        </p>
+                        <!-- <p>来源:{{ roomLive.detail.mobile }} 消费:300元</p> -->
+                        <p>
+                          房价:{{
+                            roomLive.livingData.price &&
+                            roomLive.livingData.price.length > 0
+                              ? roomLive.livingData.price[0].price
+                              : 0
+                          }}/晚 余额:0
+                          <!-- {{ roomLive.detail.balance }} -->
+                        </p>
+                        <p>注:{{ roomLive.livingData.livingOrder.remark }}</p>
+                      </template>
+                      <template
+                        slot="title"
+                        v-if="
+                          roomLive.livingData && roomLive.livingData.livingOrder
+                        "
+                      >
+                        <p>
+                          客人姓名:{{
+                            roomLive.livingData.livingCustomers
+                              ? roomLive.livingData.livingCustomers.customerName
+                              : ""
+                          }}
+                          性别:{{
+                            roomLive.livingData.livingCustomers
+                              ? roomLive.livingData.livingCustomers.gender == 1
+                                ? "男"
+                                : "女"
+                              : ""
+                          }}
+                        </p>
+                        <p>
+                          手机号:{{
+                            roomLive.livingData.livingCustomers
+                              ? roomLive.livingData.livingCustomers.phone
+                              : ""
+                          }}
+                        </p>
+                        <!-- <p>同住人:{{ roomLive.detail.mobile }} 性别:女</p> -->
+                      </template>
+                      <template
+                        slot="content"
+                        v-if="
+                          !roomLive.livingData ||
+                          !roomLive.livingData.livingOrder
+                        "
+                      >
+                        <p>
+                          房态:{{
+                            getRoomStatusName(roomLive.roomInfo.roomStatus)
+                          }}
+                        </p>
+                        <p
+                          v-if="
+                            roomLive.bookingData &&
+                            roomLive.bookingData.bookingCustomer
+                          "
                         >
-                          <p>
-                            客人姓名:{{ roomLive.detail.occupant }} 性别:男
-                          </p>
-                          <p>手机号:{{ roomLive.detail.mobile }}</p>
-                          <p>同住人:{{ roomLive.detail.mobile }} 性别:女</p>
-                        </template>
-                        <template
-                          slot="content"
-                          v-if="roomLive.detail.status == 0"
+                          预定人:{{
+                            roomLive.bookingData.bookingCustomer.name
+                          }}
+                        </p>
+                        <p
+                          v-if="
+                            roomLive.bookingData &&
+                            roomLive.bookingData.bookingCustomer
+                          "
                         >
-                          <p>房态:{{ roomLive.detail.roomStatusName }}</p>
-                          <p>备注:{{ roomLive.detail.remark }}</p>
-                        </template>
-                        <template
-                          slot="title"
-                          v-if="roomLive.detail.status == 0"
+                          手机:{{ roomLive.bookingData.bookingCustomer.phone }}
+                        </p>
+                        <p
+                          v-if="
+                            roomLive.bookingData &&
+                            roomLive.bookingData.bookingOrder
+                          "
                         >
-                          <span>{{ roomLive.detail.roomType }}</span
-                          ><span>¥{{ roomLive.detail.amout }}/晚</span>
-                        </template>
-                        <a-dropdown :trigger="['contextmenu']">
-                          <div>
+                          预抵日:{{
+                            roomLive.bookingData.bookingOrder.arrivalTime
+                          }}
+                        </p>
+                        <!-- <p>
+                          备注:{{ roomLive.livingData.livingOrder.remark }}
+                        </p> -->
+                      </template>
+                      <template
+                        slot="title"
+                        v-if="
+                          !roomLive.livingData ||
+                          !roomLive.livingData.livingOrder
+                        "
+                      >
+                        <span>{{ roomLive.layout.name }}</span
+                        ><span>¥{{ roomLive.layout.marketPrice }}/晚</span>
+                      </template>
+                      <a-dropdown :trigger="['contextmenu']">
+                        <div>
+                          <div
+                            style="
+                              text-overflow: ellipsis;
+                              white-space: nowrap;
+                              overflow: hidden;
+                            "
+                          >
+                            <span
+                              style="
+                                font-size: 20px;
+                                font-weight: 600;
+                                margin-right: 2px;
+                              "
+                              >{{ roomLive.roomInfo.name }}</span
+                            >
+                            {{ roomLive.layout.name }}
+                          </div>
+                          <template
+                            v-if="
+                              roomLive.livingData &&
+                              roomLive.livingData.livingOrder
+                            "
+                          >
+                            <!-- <div>
+                              <span style="margin-right: 5px">{{
+                                roomLive.detail.occupant
+                              }}</span
+                              ><a-tag
+                                :style="{
+                                  color:
+                                    sourceType[roomLive.detail.source || 1]
+                                      .color,
+                                }"
+                                >携</a-tag
+                              >
+                            </div> -->
+                            <div>
+                              <span>
+                                {{
+                                  roomLive.livingData.livingCustomers
+                                    .customerName
+                                }}
+                              </span>
+                            </div>
+                            <div>
+                              <span
+                                >{{
+                                  roomLive.livingData.livingOrder.dayCount
+                                }}天/{{
+                                  roomLive.livingData.livingOrder.arrivalTime.substr(
+                                    5,
+                                    5
+                                  )
+                                }}</span
+                              >
+                            </div>
                             <div
                               style="
                                 text-overflow: ellipsis;
@@ -197,85 +320,99 @@
                                 overflow: hidden;
                               "
                             >
+                              <!-- <span
+                                >¥{{ roomLive.detail.amout }}/付{{
+                                  roomLive.detail.payAmount
+                                }}/余{{ roomLive.detail.balance }}</span
+                              > -->
                               <span
-                                style="
-                                  font-size: 20px;
-                                  font-weight: 600;
-                                  margin-right: 2px;
-                                "
-                                >{{ roomLive.roomNo }}</span
+                                >¥{{
+                                  roomLive.livingData.price &&
+                                  roomLive.livingData.price.length > 0
+                                    ? roomLive.livingData.price[0].price
+                                    : 0
+                                }}/付0/余0</span
                               >
-                              {{ roomLive.detail.roomType }}
                             </div>
-                            <template v-if="roomLive.detail.status == 1">
-                              <div>
-                                <span style="margin-right: 5px">{{
-                                  roomLive.detail.occupant
-                                }}</span
-                                ><a-tag
-                                  :style="{
-                                    color:
-                                      sourceType[roomLive.detail.source || 1]
-                                        .color,
-                                  }"
-                                  >携</a-tag
-                                >
-                              </div>
-                              <div>
-                                <span
-                                  >{{ roomLive.detail.day }}天/{{
-                                    roomLive.detail.date
-                                  }}</span
-                                >
-                              </div>
-                              <div
-                                style="
-                                  text-overflow: ellipsis;
-                                  white-space: nowrap;
-                                  overflow: hidden;
+                            <!-- <a-tag
+                              v-if="
+                                roomLive.bookingData &&
+                                roomLive.bookingData.bookingOrder
+                              "
+                              >订</a-tag
+                            > -->
+                            <!-- <a-tag v-if="roomLive.detail.isGroup">团</a-tag> -->
+                          </template>
+                          <template v-else>
+                            <div>
+                              <span
+                                >¥{{ roomLive.layout.marketPrice }}/晚</span
+                              >
+                            </div>
+                            <div>
+                              <span
+                                v-if="
+                                  roomLive.bookingData &&
+                                  roomLive.bookingData.bookingOrder
                                 "
                               >
-                                <span
-                                  >¥{{ roomLive.detail.amout }}/付{{
-                                    roomLive.detail.payAmount
-                                  }}/余{{ roomLive.detail.balance }}</span
-                                >
-                              </div>
-                              <a-tag>订</a-tag
-                              ><a-tag v-if="roomLive.detail.isGroup">团</a-tag>
-                            </template>
-                            <template v-else>
-                              <div>
-                                <span>¥{{ roomLive.detail.amout }}/晚</span>
-                              </div>
-                              <div
-                                style="
-                                  margin-top: 22px;
-                                  text-overflow: ellipsis;
-                                  white-space: nowrap;
-                                  overflow: hidden;
+                                {{ roomLive.bookingData.bookingCustomer.name }}
+                              </span>
+                            </div>
+                            <div>
+                              <span
+                                v-if="
+                                  roomLive.bookingData &&
+                                  roomLive.bookingData.bookingOrder
                                 "
                               >
-                                <span>注:{{ roomLive.detail.remark }}</span>
-                              </div>
-                              <a-tag>订</a-tag>
-                            </template>
-                          </div>
-                          <a-menu slot="overlay" @click="onMenuClick">
-                            <a-menu-item key="1"> 入住 </a-menu-item>
-                            <a-menu-item key="2"> 预定</a-menu-item>
-                            <a-menu-item key="3"> 置脏 </a-menu-item>
-                            <a-menu-item key="4"> 置维修 </a-menu-item>
-                            <a-menu-item key="5"> 锁房 </a-menu-item>
-                            <!-- <a-menu-item key="3"> 日志 </a-menu-item> -->
-                          </a-menu>
-                        </a-dropdown>
-                      </a-popover>
-                    </div>
-                  </a-col>
-                </a-row>
-              </div>
-            </template>
+                                {{
+                                  roomLive.bookingData.bookingOrder.dayCount
+                                }}天/{{
+                                  roomLive.bookingData.bookingOrder.arrivalTime.substr(
+                                    5,
+                                    5
+                                  )
+                                }}
+                              </span>
+                            </div>
+                            <!-- <div
+                              style="
+                                margin-top: 22px;
+                                text-overflow: ellipsis;
+                                white-space: nowrap;
+                                overflow: hidden;
+                              "
+                            >
+                              <span
+                                >注:{{
+                                  roomLive.livingData.livingOrder.remark
+                                }}</span
+                              >
+                            </div> -->
+                            <a-tag
+                              v-if="
+                                roomLive.bookingData &&
+                                roomLive.bookingData.bookingOrder
+                              "
+                              >订</a-tag
+                            >
+                          </template>
+                        </div>
+                        <a-menu slot="overlay" @click="onMenuClick">
+                          <a-menu-item key="1"> 入住 </a-menu-item>
+                          <a-menu-item key="2"> 预定</a-menu-item>
+                          <a-menu-item key="3"> 置脏 </a-menu-item>
+                          <a-menu-item key="4"> 置维修 </a-menu-item>
+                          <a-menu-item key="5"> 锁房 </a-menu-item>
+                          <!-- <a-menu-item key="3"> 日志 </a-menu-item> -->
+                        </a-menu>
+                      </a-dropdown>
+                    </a-popover>
+                  </div>
+                </a-col>
+              </a-row>
+            </div>
           </div>
         </div>
       </div>
@@ -699,7 +836,7 @@ export default {
       roomStatusColorList: [],
       roomList: [],
       roomStatusList: [],
-      checkedRoomStatusList:[],
+      checkedRoomStatusList: [],
     };
   },
   watch: {
@@ -756,6 +893,9 @@ export default {
     getAction("/rooms/cesRooms/realtime-rooms", {}).then((res) => {
       if (res.success) {
         this.roomList = res.result;
+        res.result.forEach((row) => {
+          this.$set(row, "collapse", 1);
+        });
       }
     });
   },
@@ -773,6 +913,14 @@ export default {
     // this.$refs.ModalEditScheduleRoom.disableSubmit = false;
   },
   methods: {
+    getRoomStatusColor(roomStatus) {
+      var find = this.roomStatusColorList.find((t) => t.value == roomStatus);
+      return find ? find.extend : "";
+    },
+    getRoomStatusName(roomStatus) {
+      var find = this.roomStatusList.find((t) => t.value == roomStatus);
+      return find ? find.label : "";
+    },
     toPage() {
       this.$router.push({
         // path: "/room/scheduledetail",
@@ -848,37 +996,36 @@ export default {
         clearTimeout(this.timeId);
       }
       this.timeId = setTimeout(() => {
-        if (!this.multipleRoom && roomLive.detail.check === 0) {
-          this.planList2.forEach((item) => {
-            item.child.forEach((c) => {
-              c.schedule.forEach((s) => {
-                if (s.detail.check === 1) {
-                  s.detail.check = 0;
-                }
-              });
+        if (!this.multipleRoom && roomLive.roomInfo.state !== 88) {
+          this.roomList.forEach((item) => {
+            item.rooms.forEach((c) => {
+              if (c.roomInfo.state === 88) {
+                c.roomInfo.state = 0;
+              }
             });
           });
         }
-        if (roomLive.detail.check === 0) {
-          roomLive.detail.check = 1;
+        if (roomLive.roomInfo.state !== 88) {
+          roomLive.roomInfo.state = 88;
         } else {
-          roomLive.detail.check = 0;
+          roomLive.roomInfo.state = 0;
         }
         // 清除定时器
         clearTimeout(this.timeId);
       }, 100);
     },
     handleBillInfo(roomLive) {
-      console.log("handleBillInfo", roomLive.detail.status);
+      console.log("handleBillInfo", roomLive);
       if (this.timeId) {
         clearTimeout(this.timeId);
       }
-      if (roomLive.detail.status === 0) {
+      if (!roomLive.livingData || !roomLive.livingData.livingOrder) {
         this.handleCheckInAdd(roomLive);
       } else {
-        var e = "YD20230406181756590";
-        console.log(e);
-        this.$refs.ModalBillRoomInfo.add(e);
+        this.$refs.ModalBillRoomInfo.add(
+          roomLive.livingData.livingOrder.bookingOrderId,
+          1
+        );
         this.$refs.ModalBillRoomInfo.title = "账单";
         this.$refs.ModalBillRoomInfo.disableSubmit = true;
       }
@@ -892,13 +1039,11 @@ export default {
       this.$refs.ModalBillRoomForm.disableSubmit = false;
     },
     multipleRoomChange() {
-      this.planList2.forEach((item) => {
-        item.child.forEach((c) => {
-          c.schedule.forEach((s) => {
-            if (s.detail.check === 1) {
-              s.detail.check = 0;
-            }
-          });
+      this.roomList.forEach((item) => {
+        item.rooms.forEach((c) => {
+          if (c.roomInfo.state == 88) {
+            c.roomInfo.state = 0;
+          }
         });
       });
     },

+ 11 - 3
src/views/room/modules/checkIn/BillRoomInfo.vue

@@ -478,6 +478,7 @@ export default {
       id: "",
       customerSourceList: [],
       warranterList: [],
+      key: 0,
     };
   },
   computed: {
@@ -552,9 +553,15 @@ export default {
       return find ? find.itemText : "--";
     },
     getBookingOrderInfo() {
-      getAction(this.url.getBookingOrderInfo, {
+      var obj = {
         bookingNo: this.id,
-      }).then((res) => {
+      };
+      if (this.key && this.key == 1) {
+        obj = {
+          bookingOrderId: this.id,
+        };
+      }
+      getAction(this.url.getBookingOrderInfo, obj).then((res) => {
         if (res.success) {
           var livingRoomId = JSON.parse(
             JSON.stringify(res.result.livingRoomIds[0])
@@ -586,7 +593,8 @@ export default {
     onChange(e) {
       console.log(e);
     },
-    add(id) {
+    add(id, key) {
+      this.key = key;
       this.id = id;
       this.edit(this.modelDefault);
       this.getBookingOrderInfo();

+ 2 - 2
src/views/room/modules/checkIn/BillRoomInfoModal.vue

@@ -98,11 +98,11 @@
       }
     },
     methods: {
-      add (id) {
+      add (id,key) {
         console.log("id",id)
         this.visible=true
         this.$nextTick(()=>{
-          this.$refs.realForm.add(id);
+          this.$refs.realForm.add(id,key);
         })
       },
       edit (record) {