许智捷 2 роки тому
батько
коміт
34fed327aa

Різницю між файлами не показано, бо вона завелика
+ 0 - 41718
package-lock.json


+ 2 - 1
src/mixins/JeecgListMixin.js

@@ -85,6 +85,7 @@ export const JeecgListMixin = {
       }
       var params = this.getQueryParams();//查询条件
       this.loading = true;
+      debugger
       getAction(this.url.list, params).then((res) => {
         if (res.success) {
           //update-begin---author:zhangyafei    Date:20201118  for:适配不分页的数据列表------------
@@ -375,4 +376,4 @@ export const JeecgListMixin = {
     },
   }
 
-}
+}

+ 2 - 2
src/views/room/calendarfangtai.vue

@@ -571,7 +571,7 @@ export default {
       diffDate = Math.abs(myDate_1 - myDate_2) // 取相差毫秒数的绝对值
 
       totalDays = Math.ceil(diffDate / (1000 * 3600 * 24)) // 向下取整
-      // console.log(totalDays)    
+      // console.log(totalDays)
       if (totalDays == 0) totalDays = 1
       return totalDays    // 相差的天数
     },
@@ -737,4 +737,4 @@ export default {
 .data-row>:first-child{
   border-left: none !important;
 }
-</style>
+</style>

Різницю між файлами не показано, бо вона завелика
+ 711 - 629
src/views/room/fangtailive.vue


+ 17 - 1
src/views/room/fangwuLookRoom.vue

@@ -161,6 +161,22 @@ export default {
                     dataIndex: "contactName",
                     scopedSlots: { customRender: 'name' }
                 },
+              {
+                title: "客人电话",
+                align: "center",
+                dataIndex: "contactPhone",
+                // scopedSlots: { customRender: 'name' }
+              },
+              {
+                title: "入住时间",
+                align: "center",
+                dataIndex: "arriveTime",
+              },
+              {
+                title: "离开时间",
+                align: "center",
+                dataIndex: "dueOutTime",
+              },
                 {
                     title: "查房发起人",
                     align: "center",
@@ -359,7 +375,7 @@ export default {
         submitOK() {
             if (this.status == 2 && !this.waiterId) {
                 this.$message.warning('请选择查房人')
-                return                
+                return
             }
             this.confirmLoading = true;
             this.selectionRows.forEach(item => {

Різницю між файлами не показано, бо вона завелика
+ 1056 - 951
src/views/room/modules/checkIn/BillRoomForm.vue


Різницю між файлами не показано, бо вона завелика
+ 581 - 492
src/views/room/modules/checkIn/BillRoomInfo.vue


+ 32 - 7
src/views/room/modules/checkIn/BillRoomInfoModal.vue

@@ -68,6 +68,7 @@
 
 <script>
 import BillRoomInfo from "./BillRoomInfo";
+import { getAction, httpAction } from '@api/manage'
 
 export default {
   name: "BillRoomInfoModal",
@@ -83,13 +84,38 @@ export default {
     };
   },
   methods: {
-    add(id, key, roomId) {
-      console.log("id", id);
-      this.visible = true;
-      this.$nextTick(() => {
-        this.$refs.realForm.add(id, key, roomId);
+    add(bookingOrderId, key, roomId, liveOrderId) {
+      // let hotelId = roomLive.livingData.livingOrder.hotelId;
+      let obj = {
+        bookingOrderId: bookingOrderId,
+        roomId: roomId
+      }
+      getAction('/business/busRoomBookingOrders/canOnlyPaySelf', obj).then(res =>{
+          if (res.result && !confirm('是否团体支付??')) {
+            httpAction(
+                'business/busRoomBookingOrders/split-living?livingOrderId=' +
+                liveOrderId,
+                {},
+                "post"
+            ).then((res) => {
+              if (res.success) {
+                this.visible = true;
+                this.$nextTick(() => {
+                  this.$refs.realForm.add(res.result, key, roomId);
+                })
+              }
+            });
+          }else {
+            this.visible = true;
+            this.$nextTick(() => {
+              this.$refs.realForm.add(bookingOrderId, key, roomId);
+            })
+          }
       });
     },
+    getOrder(){
+
+    },
     edit(record) {
       this.visible = true;
       this.$nextTick(() => {
@@ -120,7 +146,6 @@ export default {
       // this.visible = false;
     },
     handleCancel() {
-      this.$emit("close");
       this.close();
     },
   },
@@ -166,4 +191,4 @@ export default {
     border-radius: 5px;
   }
 }
-</style>
+</style>

+ 68 - 9
src/views/room/modules/checkIn/EditCustomerForm.vue

@@ -32,11 +32,17 @@
               >
             </a-form-model-item>
           </a-col>
-          <a-col :span="24">
+          <a-col :span="8">
             <a-form-model-item
-              label="性别"
-              :labelCol="labelCol"
-              :wrapperCol="wrapperCol"
+                label="性别"
+              :labelCol="{
+                              xs: { span: 24 },
+                              sm: { span: 4 },
+                            }"
+              :wrapperCol="{
+                              xs: { span: 24 },
+                              sm: { span: 16 },
+                            }"
               prop="gender"
             >
               <a-radio-group v-model="model.gender">
@@ -45,6 +51,34 @@
               </a-radio-group>
             </a-form-model-item>
           </a-col>
+          <a-col :span="8">
+            <a-form-model-item
+                label="年龄"
+                :labelCol="{
+                              xs: { span: 24 },
+                              sm: { span: 6 },
+                            }"
+                :wrapperCol="{
+                              xs: { span: 24 },
+                              sm: { span: 10 },
+                            }">
+                <a-input></a-input>
+            </a-form-model-item>
+          </a-col>
+          <a-col :span="8">
+            <a-form-model-item
+                label="名族:"
+                :labelCol="{
+                              xs: { span: 24 },
+                              sm: { span: 6 },
+                            }"
+                               :wrapperCol="{
+                              xs: { span: 24 },
+                              sm: { span: 10 },
+                            }">
+              <a-input></a-input>
+            </a-form-model-item>
+          </a-col>
           <a-col :span="24">
             <a-form-model-item
               label="手机号"
@@ -58,11 +92,36 @@
               ></a-input>
             </a-form-model-item>
           </a-col>
-          <a-col :span="24">
+          <a-col :span="12">
+            <a-form-model-item
+                label="证件类型:"
+                :labelCol="{
+                              xs: { span: 24 },
+                              sm: { span: 4 },
+                            }"
+                :wrapperCol="{
+                              xs: { span: 24 },
+                              sm: { span: 10 },
+                            }"
+                prop="certType"
+                style="margin: 0px"
+            >
+              <a-select>
+                <a-select-option value="0">身份证</a-select-option>
+              </a-select>
+            </a-form-model-item>
+          </a-col>
+          <a-col :span="12">
             <a-form-model-item
               label="证件号"
-              :labelCol="labelCol"
-              :wrapperCol="wrapperCol"
+              :labelCol="{
+                              xs: { span: 24 },
+                              sm: { span: 4 },
+                            }"
+              :wrapperCol="{
+                              xs: { span: 24 },
+                              sm: { span: 10 },
+                            }"
               prop="certNo"
             >
               <a-input
@@ -97,7 +156,7 @@ export default {
       model: { payType: 1, livingOrderId: "", certType: 1, gender: 1 },
       labelCol: {
         xs: { span: 24 },
-        sm: { span: 5 },
+        sm: { span: 2 },
       },
       wrapperCol: {
         xs: { span: 24 },
@@ -220,4 +279,4 @@ export default {
     },
   },
 };
-</script>
+</script>

+ 8 - 3
src/views/room/modules/checkIn/Payment.vue

@@ -433,11 +433,15 @@ export default {
     },
     edit(record) {
       this.model = Object.assign({}, record);
+      if (record.preferentialMoney !== 0 && record.preferentialMoney !== null) {
+        this.model.coupon = true
+        this.model.preferentialType = 2
+        this.model.couponFirstAmount = record.preferentialMoney;
+      }
       this.getbusRoomPayType();
       if (this.model.vipCustomerId) {
         this.getMemeberCouponList();
       }
-
       if (this.model.vipCustomerId) {
         getAction("/business/busMemberCard/list", {
           id: this.model.vipCustomerId,
@@ -516,7 +520,8 @@ export default {
               money: item.money.toFixed(2),
               payType: item.payType,
               custorerOrderRemark: "结账退房",
-              isPreferential: false,
+              isPreferential: this.model.isPreferential,
+              preferentialMoney: this.model.preferentialMoney
             });
           });
 
@@ -581,4 +586,4 @@ export default {
   cursor: not-allowed;
   opacity: 0.5;
 }
-</style>
+</style>

+ 1 - 1
src/views/room/modules/checkIn/PaymentModal.vue

@@ -63,4 +63,4 @@ export default {
     },
   },
 };
-</script>
+</script>

+ 28 - 4
src/views/room/modules/checkIn/SelectCheckInRoomOrder.vue

@@ -89,6 +89,8 @@ import "@/assets/less/TableExpand.less";
 import { mixinDevice } from "@/utils/mixin";
 import { JeecgListMixin } from "@/mixins/JeecgListMixin";
 import { httpAction } from "@/api/manage";
+import hotelInfo from '@views/settings/hotelInfo'
+import { formatDate } from '@/utils/util'
 export default {
   name: "BusMemberCardList",
   mixins: [JeecgListMixin, mixinDevice],
@@ -105,6 +107,10 @@ export default {
       type: String,
       default: null,
     },
+    hotelId: {
+      type: String,
+      default: null,
+    },
   },
   data() {
     const hotelInfo = JSON.parse(localStorage.getItem("storeInfo"));
@@ -121,6 +127,14 @@ export default {
           dataIndex: "roomName",
         },
         {
+          title: "入住类型",
+          align: "center",
+          dataIndex: 'groupTag',
+          customRender: (groupTag) => {
+            return groupTag === null? "散" : groupTag
+          },
+        },
+        {
           title: "名字",
           align: "center",
           dataIndex: "customerName",
@@ -203,11 +217,21 @@ export default {
         this.$message.warning("请先选择订单");
         return;
       }
+      if(this.selectionRows.some(e => {
+        if (e.relType !== null) {
+          this.$message.warning( e.roomName + '房间已关联:' + e.groupTag)
+          return true;
+        }
+      })){
+        return
+      }
+      debugger
       that.confirmLoading = true;
+      debugger
       let httpurl =
-        "/business/busRoomBookingOrders/merge-order?livingRoomId=" +
-        this.livingOrderId;
-      let method = "post";
+        '/business/busRoomBookingOrders/merge-order?livingRoomId=' +
+        this.livingOrderId + '&hotelId=' + this.hotelId
+      let method = 'post';
       var livingOrderIds = [];
       this.selectionRows.forEach((t) => {
         livingOrderIds.push(t.livingOrderId);
@@ -239,4 +263,4 @@ export default {
   opacity: 0.7;
   color: #ffffff;
 }
-</style>
+</style>

+ 4 - 1
src/views/room/modules/checkIn/SelectCheckInRoomOrderModal.vue

@@ -15,6 +15,7 @@
       :disabled="disableSubmit"
       :livingOrderId="livingOrderId"
       :livingRoomId="livingRoomId"
+      :hotelId="hotelId"
       :filterIds="filterIds"
     ></picking-goods-order>
   </j-modal>
@@ -34,7 +35,9 @@ export default {
       visible: false,
       disableSubmit: false,
       livingOrderId: [],
+      bookingOrderId: "",
       livingRoomId: "",
+      hotelId: "",
       filterIds:[]
     };
   },
@@ -67,4 +70,4 @@ export default {
     },
   },
 };
-</script>
+</script>

+ 4 - 4
src/views/room/modules/checkIn/SelectRoomForm.vue

@@ -97,7 +97,7 @@
                         <div>{{item.buildingName + item.floorName}}</div>
                         <div style="display:flex;flex-wrap:wrap;">
                             <div v-for="(r, rIndex) in item.floorRooms" :style="{'border-left-color':filterColor(r.roomStatus)}" @click="checkRoomClick(r)" :key="'floorRooms' + rIndex" :class="[r.check == 1 ? 'check' : 'nocheck', r.kz == 1 ? 'kz' : '',]" class="nocheck room-status">
-                            <!-- <div 
+                            <!-- <div
                             :class="[
                               r.check == 1 ? 'check' : 'nocheck',
                               r.kz == 1 ? 'kz' : '',
@@ -286,7 +286,7 @@ export default {
         var index = this.checkedRoomStatusList.findIndex((t) => t == item.value);
         this.checkedRoomStatusList.splice(index, 1);
       } else {
-        this.checkedRoomStatusList.push(item.value);        
+        this.checkedRoomStatusList.push(item.value);
       }
       this.checkChange()
     },
@@ -349,7 +349,7 @@ export default {
                         floorRooms
                     });
                     return acc;
-                }, []);              
+                }, []);
             }
             console.log("list2", list);
             this.roomList = list;
@@ -487,4 +487,4 @@ export default {
   border-left-width: 2px;
   border-left-style: solid;
 }
-</style>
+</style>

+ 2 - 1
src/views/room/modules/checkIn/batchCardModalCopy.vue

@@ -35,6 +35,7 @@
         })
       },
       edit (record) {
+        debugger
         this.visible=true
         this.$nextTick(()=>{
           this.$refs.realForm.edit(record);
@@ -56,4 +57,4 @@
       }
     }
   }
-</script>
+</script>

+ 42 - 5
src/views/room/modules/checkIn/liveBatchCardForm.vue

@@ -8,7 +8,7 @@
         slot="detail"
       >
         <a-row>
-          <a-col :span="24">
+          <a-col :span="21">
             <a-form-model-item
               label="房型"
               :labelCol="labelCol"
@@ -29,6 +29,12 @@
               </a-checkbox-group>
             </a-form-model-item>
           </a-col>
+          <a-col :span="2" :pull="3" >
+            <a-input v-model="roomNum" placeholder="房间号" style="width: 70px"></a-input>
+          </a-col>
+          <a-col :span="1" :pull="3">
+            <a-button @click="makeCard" style="margin-left: 10px;" type="primary" ghost >制卡</a-button>
+          </a-col>
           <a-col :span="24">
             <a-form-model-item
               label="房态"
@@ -97,7 +103,7 @@
                         <div>{{item.name}}</div>
                         <div style="display:flex;flex-wrap:wrap;">
                             <div v-for="(r, rIndex) in item.rooms" :style="{'border-left-color':filterColor(r.roomStatus)}" @click="checkRoomClick(r)" :key="'floorRooms' + rIndex" :class="[r.check == 1 ? 'check' : 'nocheck', r.kz == 1 ? 'kz' : '',]" class="nocheck room-status">
-                            <!-- <div 
+                            <!-- <div
                             :class="[
                               r.check == 1 ? 'check' : 'nocheck',
                               r.kz == 1 ? 'kz' : '',
@@ -167,6 +173,7 @@ export default {
       default: false,
       required: false,
     },
+    chooseRooms: []
   },
   data() {
     const rooms = [];
@@ -224,6 +231,7 @@ export default {
       roomLayoutList: [],
       oldroomList: [],
       kzfLiving: false,
+      roomNum: '',
     };
   },
   computed: {
@@ -287,7 +295,7 @@ export default {
         var index = this.checkedRoomStatusList.findIndex((t) => t == item.value);
         this.checkedRoomStatusList.splice(index, 1);
       } else {
-        this.checkedRoomStatusList.push(item.value);        
+        this.checkedRoomStatusList.push(item.value);
       }
       this.checkChange()
     },
@@ -351,7 +359,7 @@ export default {
                         rooms
                     });
                     return acc;
-                }, []);              
+                }, []);
             }
             console.log("list2", list);
             this.roomList = list;
@@ -433,6 +441,17 @@ export default {
         if (res.success) {
           this.roomList = res.result.floorRoomVos;
           this.oldroomList = JSON.parse(JSON.stringify(res.result.floorRoomVos));
+          this.chooseRooms.forEach(c =>{
+            this.roomList.forEach(floor =>{
+              floor.rooms.forEach(room =>{
+                if (c.id === room.id){
+                  this.$set(room,"check",1);
+                }
+              })
+            })
+          })
+          console.log(this.roomList)
+          this.model.rooms = this.chooseRooms;
         }
       });
     },
@@ -444,6 +463,24 @@ export default {
       }
       that.$emit("ok", that.model.rooms);
     },
+    makeCard() {
+      const that = this
+      let findRoom = []
+      this.oldroomList.forEach(e => {
+        e.rooms.forEach(room => {
+          if (room.name === this.roomNum) {
+            findRoom.push(room)
+          }
+        })
+      })
+      console.log(findRoom)
+      debugger
+      if (findRoom.length === 0) {
+        this.$message.warning('未找到房间:' + this.roomNum)
+      } else {
+        that.$emit('ok', findRoom);
+      }
+    }
   },
 };
 </script>
@@ -497,4 +534,4 @@ export default {
   border-left-width: 2px;
   border-left-style: solid;
 }
-</style>
+</style>

+ 4 - 1
src/views/room/modules/checkIn/liveBatchCardModal.vue

@@ -13,6 +13,7 @@
       ref="realForm"
       @ok="submitCallback"
       :disabled="disableSubmit"
+      :chooseRooms="chooseRooms"
     ></select-room-form>
   </j-modal>
 </template>
@@ -30,6 +31,7 @@ export default {
       width: 800,
       visible: false,
       disableSubmit: false,
+      chooseRooms: [],
     };
   },
   methods: {
@@ -54,6 +56,7 @@ export default {
     },
     submitCallback(e) {
       console.log("e", e);
+      debugger
       this.$emit("ok", e);
       this.visible = false;
     },
@@ -62,4 +65,4 @@ export default {
     },
   },
 };
-</script>
+</script>

+ 86 - 40
src/views/room/modules/fangtaiModal/continuedModal/continuedForm.vue

@@ -6,7 +6,7 @@
                 <a-form-model ref="form" :model="model" :rules="validatorRules" slot="detail">
                     <a-row>
                         <a-col :span="24">
-                            <a-form-model-item label="续住总价" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="">
+                            <a-form-model-item label="续住总价" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="" v-if="isAddDate">
                                 <!-- <a-input v-model="model.name" placeholder="请输入餐桌名称"></a-input> -->
                                 {{PriceData.reduce((pre,cur)=> pre+cur.price*1,0 ) || 0}}
                                 <a-popover placement="right" v-if="dayNum>0">
@@ -49,9 +49,12 @@
                             </a-form-model-item>
                         </a-col>
                         <a-col :span="24">
-                            <a-form-model-item label="续住天数" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="">
+                            <a-form-model-item label="续住天数" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="" v-if="isAddDate">
                                 <a-input-number :min="0" v-model="dayNum" placeholder="请输入续住天数" style="width: 40%" @change="dayChange" />
                             </a-form-model-item>
+                          <a-form-model-item label="退租天数" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="" v-if="!isAddDate">
+                            <a-input-number :min="0" v-model="dayNum" placeholder="请输退租住天数" style="width: 40%" @change="dayChange" />
+                          </a-form-model-item>
                         </a-col>
                         <a-col :span="24">
                             <a-form-model-item label="收款方式" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="">
@@ -89,8 +92,10 @@ import {
     getAction
 } from "@/api/manage";
 import {
-    validateDuplicateValue
-} from "@/utils/util";
+  formatDate,
+  validateDuplicateValue
+} from '@/utils/util'
+import moment from 'moment/moment'
 
 export default {
     name: "PosTableForm",
@@ -150,10 +155,6 @@ export default {
                     required: true,
                     message: "请输入pos餐桌区域id!"
                 }],
-                num: [{
-                    required: true,
-                    message: "请输入金额!"
-                }],
                 tableNo: [{
                     required: true,
                     message: "请输入餐桌序号!"
@@ -172,7 +173,8 @@ export default {
             tableTypeList: [],
             regionList: [],
             PriceData: [],
-            dayNum:0
+            dayNum:0,
+            isAddDate: true
         };
     },
     watch:{
@@ -286,16 +288,16 @@ export default {
             const oneDay = 24 * 60 * 60 * 1000; // hours*minutes*seconds*milliseconds
             const firstDate = new Date(date1);
             const secondDate = new Date(date2);
-            if (secondDate<firstDate) {
-                this.$message.warning("离开时间不能小于预离时间");
-                return
-            }
-            const diffDays = Math.round(Math.abs((firstDate - secondDate) / oneDay));
-            return diffDays;
+          const diffDays = (secondDate - firstDate) / oneDay;
+          this.isAddDate = diffDays >= 0;
+          if (Math.round(diffDays) <= 0) {
+            this.PriceData = []
+          }
+          return Math.round(Math.abs(diffDays));
         },
         batchPrice(e){
             console.log(e);
-            this.PriceData.forEach(item=>{
+            this.PriceData.forEach(item => {
                 item.price = e;
             })
         },
@@ -304,16 +306,15 @@ export default {
             this.edit(this.modelDefault);
         },
         edit(record) {
-            this.model = Object.assign({}, record);
+            this.model = Object.assign({}, record)
             // this.model.startValue = record.livingData.livingOrder.dueOutTime
-            this.visible = true;
+            this.visible = true
         },
         submitForm() {
             const that = this;
             // 触发表单验证
             this.$refs.form.validate((valid) => {
                 if (valid) {
-                    that.confirmLoading = true;
                     let httpurl = "";
                     let method = "";
                     // if (!this.model.id) {
@@ -335,20 +336,56 @@ export default {
                             price:item.price,
                         }))
                     }
-                    // console.log(this.model.startValue);
-                    // return
-                    httpAction(`/business/busRoomBookingOrders/continue-living?livingOrderId=${this.model.roomInfo.livingOrderId}&dueOutTime=${this.model.startValue}`, obj, 'post')
-                        .then((res) => {
-                            if (res.success) {
-                                that.$message.success(res.message);
-                                that.$emit("ok");
-                            } else {
-                                that.$message.warning(res.message);
-                            }
-                        })
-                        .finally(() => {
-                            that.confirmLoading = false;
-                        });
+                  console.log()
+                  if (typeof (this.model.startValue) === 'undefined') {
+                    this.model.startValue = this.model.livingData.livingOrder.dueOutTime
+                  }
+                    var date = new Date(this.model.startValue)
+                    let startValueFormat = date.format('yyyy-MM-dd hh:mm:ss')
+
+// debugger
+                  httpAction(`/business/busRoomBookingOrders/isBooked?livingOrderId=${this.model.roomInfo.livingOrderId}&dueOutTime=${startValueFormat}`,{},"post")
+                      .then(res => {
+                        if (!res.success) {
+                          return
+                        }
+                        debugger
+                        if (res.result !== null){
+                          this.$confirm({
+                            title: '提示',
+                            content: '房间被 ' + res.result.contactName + ',电话 '+ res.result.phone +' 预定,是否续住?',
+                            onOk: function () {
+                              that.confirmLoading = true;
+                              httpAction(`/business/busRoomBookingOrders/continue-living?livingOrderId=${this.model.roomInfo.livingOrderId}&dueOutTime=${startValueFormat}`, obj, 'post')
+                                  .then((res) => {
+                                    if (res.success) {
+                                      that.$message.success(res.message);
+                                      that.$emit("ok");
+                                    } else {
+                                      that.$message.warning(res.message);
+                                    }
+                                  })
+                                  .finally(() => {
+                                    that.confirmLoading = false;
+                                  });
+                            },
+                          })
+                        } else {
+                          that.confirmLoading = true;
+                          httpAction(`/business/busRoomBookingOrders/continue-living?livingOrderId=${this.model.roomInfo.livingOrderId}&dueOutTime=${startValueFormat}`, obj, 'post')
+                              .then((res) => {
+                                if (res.success) {
+                                  that.$message.success(res.message);
+                                  that.$emit("ok");
+                                } else {
+                                  that.$message.warning(res.message);
+                                }
+                              })
+                              .finally(() => {
+                                that.confirmLoading = false;
+                              });
+                        }
+                      })
                 }
             });
         },
@@ -357,22 +394,31 @@ export default {
             console.log(key)
         },
         handleStartOpenChange(e) {
-            console.log(e)
+          let nowDate = new Date()
+          if (e._d < nowDate) {
+            this.$message.warning('退租时间不能小于当前时间')
+            this.model.startValue = nowDate
+            return
+          }
             this.dayNum = this.daysBetween(this.model.livingData.livingOrder.dueOutTime, e._d)
             // this.model.startValue = e._i;
         },
         dayChange(e) {
             console.log(e);
+            if (!this.isAddDate) {
+              e = -e
+            }
             this.model.startValue = this.addDate(this.model.livingData.livingOrder.dueOutTime, e);
         },
 
         disabledStartDate(endValue) {
-            // const endValue = 
-            const startValue = this.model.livingData.livingOrder.dueOutTime
-            if (!endValue || !startValue) {
-                return false;
-            }
-            return startValue.valueOf() >= endValue.valueOf();
+            // const endValue =
+            // const startValue = this.model.livingData.livingOrder.dueOutTime
+            // if (!endValue || !startValue) {
+            //     return false;
+            // }
+            // return startValue.valueOf() >= endValue.valueOf();
+          return endValue && endValue < moment().add(-1, 'days').endOf('day')
         },
     },
 };

+ 24 - 16
src/views/room/modules/fangtaiModal/continuedModal/continuedModal.vue

@@ -1,31 +1,37 @@
 <template>
-  <j-modal
-    :title="title"
-    :width="width"
-    :visible="visible"
-    switchFullscreen
-    @ok="handleOk"
-    :okButtonProps="{ class:{'jee-hidden': disableSubmit} }"
-    @cancel="handleCancel"
-    cancelText="关闭">
-    <pos-table-form ref="realForm" @ok="submitCallback" :disabled="disableSubmit"></pos-table-form>
-  </j-modal>
+  <div>
+    <j-modal
+        :title="title"
+        :width="width"
+        :visible="visible"
+        switchFullscreen
+        @ok="handleOk"
+        :okButtonProps="{ class:{'jee-hidden': disableSubmit} }"
+        @cancel="handleCancel"
+        cancelText="关闭">
+      <pos-table-form ref="realForm" @ok="submitCallback" :disabled="disableSubmit"></pos-table-form>
+    </j-modal>
+    <batchCardModalCopy ref="batchCardModalCopy" />
+  </div>
 </template>
 
 <script>
 
   import PosTableForm from './continuedForm.vue'
+  import batchCardModalCopy from './../../../modules/checkIn/batchCardModalCopy'
   export default {
     name: 'PosTableModal',
     components: {
-      PosTableForm
+      PosTableForm,
+      batchCardModalCopy
     },
     data () {
       return {
         title:'',
         width:800,
         visible: false,
-        disableSubmit: false
+        disableSubmit: false,
+        makeCardInfo: {}
       }
     },
     methods: {
@@ -36,7 +42,7 @@
         })
       },
       edit (record) {
-        this.visible=true
+        this.visible=true,
         this.$nextTick(()=>{
           this.$refs.realForm.edit(record);
         })
@@ -48,13 +54,15 @@
       handleOk () {
         this.$refs.realForm.submitForm();
       },
-      submitCallback(e){
+      submitCallback(e) {
         this.$emit('ok', e);
+        this.$refs.batchCardModalCopy.edit([this.makeCardInfo])
         this.visible = false;
+
       },
       handleCancel () {
         this.close()
       }
     }
   }
-</script>
+</script>

+ 14 - 3
src/views/room/modules/fangtaiModal/exchangeHouses/exchangeHousesForm.vue

@@ -51,6 +51,9 @@
                                                 </div>
                                             </div>
                                         </template>
+                                      <template slot="title">
+                                        <a-input-number :min="0" @change="batchPrice" placeholder="批量改价"></a-input-number>
+                                      </template>
                                         <template slot="title">
                                         </template>
                                         <a-icon type="edit" />
@@ -347,7 +350,7 @@ export default {
         },
         batchPrice(e) {
             console.log(e);
-            this.PriceData.forEach(item => {
+            this.timeData.forEach(item => {
                 item.price = e;
             })
         },
@@ -477,7 +480,15 @@ export default {
                         .then((res) => {
                             if (res.success) {
                                 that.$message.success(res.message);
-                                that.$emit("ok");
+                                let obj = {
+                                  ...this.newRoom,
+                                  layoutName: this.model.layout.name,
+                                  roomInfo: {
+                                    key1: this.model.livingData.livingCustomers.customerName,
+                                    key5: this.model.livingData.livingCustomers.phone
+                                  }
+                                }
+                                that.$emit('ok', [obj]);
                             } else {
                                 that.$message.warning(res.message);
                             }
@@ -503,7 +514,7 @@ export default {
         },
 
         disabledStartDate(endValue) {
-            // const endValue = 
+            // const endValue =
             const startValue = this.model.livingData.livingOrder.dueOutTime
             if (!endValue || !startValue) {
                 return false;

+ 20 - 13
src/views/room/modules/fangtaiModal/exchangeHouses/exchangeHousesModal.vue

@@ -1,24 +1,29 @@
 <template>
-  <j-modal
-    :title="title"
-    :width="width"
-    :visible="visible"
-    switchFullscreen
-    @ok="handleOk"
-    :okButtonProps="{ class:{'jee-hidden': disableSubmit} }"
-    @cancel="handleCancel"
-    cancelText="关闭">
-    <pos-table-form ref="realForm" @ok="submitCallback" :disabled="disableSubmit"></pos-table-form>
-  </j-modal>
+  <div>
+    <j-modal
+        :title="title"
+        :width="width"
+        :visible="visible"
+        switchFullscreen
+        @ok="handleOk"
+        :okButtonProps="{ class:{'jee-hidden': disableSubmit} }"
+        @cancel="handleCancel"
+        cancelText="关闭">
+      <pos-table-form ref="realForm" @ok="submitCallback" :disabled="disableSubmit"></pos-table-form>
+    </j-modal>
+    <batchCardModalCopy ref="batchCardModalCopy" />
+  </div>
 </template>
 
 <script>
 
   import PosTableForm from './exchangeHousesForm.vue'
+  import batchCardModalCopy from './../../../modules/checkIn/batchCardModalCopy'
   export default {
     name: 'PosTableModal',
     components: {
-      PosTableForm
+      PosTableForm,
+      batchCardModalCopy
     },
     data () {
       return {
@@ -49,6 +54,8 @@
         this.$refs.realForm.submitForm();
       },
       submitCallback(e){
+        console.log(e)
+        this.$refs.batchCardModalCopy.edit(e)
         this.$emit('ok', e);
         this.visible = false;
       },
@@ -57,4 +64,4 @@
       }
     }
   }
-</script>
+</script>

+ 59 - 2
src/views/room/modules/schedule/SelectRoomForm.vue

@@ -70,11 +70,44 @@
               }"
             >
               <a-tabs
-                default-active-key="room0"
+                default-active-key="room-all"
                 tab-position="left"
                 :style="{ height: '300px' }"
               >
                 <a-tab-pane
+                    tab="全部"
+                    key="room-all"
+                >
+                  <div>
+                    <a-row :gutter="[8, 8]" style="overflow: auto;height:300px;">
+                      <a-col
+                          :span="24"
+                          v-for="(item, index) in (roomList || [])"
+                          :key="index"
+                      >
+                        <div v-if="item.floorRooms.length !== 0">{{item.buildingName + item.floorName}}</div>
+                        <div style="display:flex;flex-wrap:wrap;">
+                          <div v-for="(r, rIndex) in item.floorRooms"  @click="checkRoomClick(r)" :key="'floorRooms' + rIndex" :class="[r.check == 1 ? 'check' : 'nocheck', r.kz == 1 ? 'kz' : '',]" class="nocheck room-status">
+                            <!-- <div
+                            :class="[
+                              r.check == 1 ? 'check' : 'nocheck',
+                              r.kz == 1 ? 'kz' : '',
+                            ]"
+                            style="display:flex;flex-wrap:wrap;"
+                            @click="checkRoomClick(r)"
+                          >
+                            <div class="nocheck room-status">
+                              {{ r.name }}
+                            </div>
+                          </div> -->
+                            {{ r.name }}
+                          </div>
+                        </div>
+                      </a-col>
+                    </a-row>
+                  </div>
+                </a-tab-pane>
+                <a-tab-pane
                   v-for="(room, index) in roomList"
                   :key="'room' + index"
                   :tab="room.floorName"
@@ -276,4 +309,28 @@ export default {
   font-size: 13px;
   padding: 8px 16px;
 }
-</style>
+#components-grid-demo-playground .nocheck {
+  border: 1px solid #cccccc;
+  border-left-width: 2px;
+}
+.check {
+  border: 1px solid #00a0e9 !important;
+}
+.nocheck {
+  border: 1px solid #cccccc;
+}
+.room-status{
+  /* height: 100%; */
+  /* line-height: 100%; */
+  font-size: 13px;
+  text-align: center;
+  cursor: pointer;
+  border-radius: 5px;
+  margin-right: 10px;
+  border: 1px solid #cccccc;
+  padding: 0px 16px;
+  margin-top: 5px;
+  border-left-width: 2px;
+  border-left-style: solid;
+}
+</style>