gqx vor 2 Jahren
Ursprung
Commit
5c1e4c5a45

+ 4 - 4
src/views/orders/orderInfo.vue

@@ -10,13 +10,13 @@
         <p>房价管理</p>
       </div>
 
-      <div class="height-100" @click="toPage()">
+      <!-- <div class="height-100" @click="toPage()">
         <img
           src="http://oss.qlan99.com/20200529/9e08a25e47344f84aed0f5ce58ceadb1.png"
           width="50"
         />
         <p>放量管理</p>
-      </div>
+      </div> -->
       <div class="height-100" @click="toPage('/tenant/orderinfo/appraiseinfo')">
         <img
           src="http://oss.qlan99.com/20200529/0a3e72c04b224ca19f74419090db0472.png"
@@ -35,7 +35,7 @@
     <p style="margin-top: 25px">订单管理</p>
     <a-divider />
     <div class="space-align-container">
-      <div class="height-100" @click="toPage()">
+      <!-- <div class="height-100" @click="toPage()">
         <img
           src="http://oss.qlan99.com/20200529/1e5f75e885454e8e83c563afec910123.png"
         />
@@ -52,7 +52,7 @@
           src="http://oss.qlan99.com/20200529/1e5f75e885454e8e83c563afec910123.png"
         />
         <p>点餐订单</p>
-      </div>
+      </div> -->
       <div class="height-100" @click="toPage('/tenant/orderinfo/servicerepairorderinfo')">
         <img
           src="http://oss.qlan99.com/20200529/1e5f75e885454e8e83c563afec910123.png"

+ 1 - 1
src/views/room/leasegoods.vue

@@ -128,7 +128,7 @@ import { JeecgListMixin } from "@/mixins/JeecgListMixin";
 import CesOrderLeaseGoodsModal from "./modules/leasegoods/CesOrderLeaseGoodsModal";
 import { httpAction, postAction, getAction } from "@/api/manage";
 export default {
-  name: "租借物品",
+  name: "LeaseGoods",
   mixins: [JeecgListMixin, mixinDevice],
   components: {
     CesOrderLeaseGoodsModal,

+ 40 - 6
src/views/room/modules/checkIn/BillRoomInfo.vue

@@ -44,35 +44,45 @@
               <a-badge
                 dot
                 :number-style="{ backgroundColor: '#52c41a' }"
-                v-if="item.livingOrder.settleType == 1"
+                v-if="item.livingOrder && item.livingOrder.settleType == 1"
               >
                 <span style="font-size: 12px">已结退房</span>
               </a-badge>
               <a-badge
                 dot
                 :number-style="{ backgroundColor: '#52c41a' }"
-                v-if="item.livingOrder.settleType == 2"
+                v-if="item.livingOrder && item.livingOrder.settleType == 2"
               >
                 <span style="font-size: 12px">未结退房</span>
               </a-badge>
             </span>
             <a-descriptions :column="2">
               <a-descriptions-item label="主客姓名">
-                {{ item.livingCustomers[0].customerName }}
+                {{
+                  item.livingCustomers
+                    ? item.livingCustomers[0].customerName
+                    : "--"
+                }}
                 <a-icon
                   type="edit"
                   style="color: rgba(255, 141, 26, 1); font-size: 18px"
               /></a-descriptions-item>
               <a-descriptions-item label="性别">
                 {{
-                  item.livingCustomers[0].gender === 1 ? "男" : "女"
+                  item.livingCustomers
+                    ? item.livingCustomers[0].gender === 1
+                      ? "男"
+                      : "女"
+                    : "--"
                 }}</a-descriptions-item
               >
               <a-descriptions-item label="房间数量">
                 {{ livingIndex == 0 ? model.livingRoomIds.length : 1 }}间
               </a-descriptions-item>
               <a-descriptions-item label="手机号">
-                {{ item.livingCustomers[0].phone }}
+                {{
+                  item.livingCustomers ? item.livingCustomers[0].phone : "--"
+                }}
                 <a-icon
                   type="edit"
                   style="color: rgba(255, 141, 26, 1); font-size: 18px"
@@ -425,6 +435,10 @@
     <fee-modal ref="modalFeeForm" @ok="modalFormOk"></fee-modal>
     <member-message-modal ref="modalMemberMessage"></member-message-modal>
     <lease-goods-modal ref="modalLeaseGoods"></lease-goods-modal>
+    <select-check-in-room-order-modal
+      ref="modalSelectCheckInRoomOrder"
+      @ok="modalFormOk"
+    ></select-check-in-room-order-modal>
   </div>
 </template>
 
@@ -438,6 +452,7 @@ import PaymentModal from "./PaymentModal.vue";
 import FeeModal from "./FeeModal";
 import MemberMessageModal from "@/views/room/modules/membergoodsmanage/membermessageModal";
 import LeaseGoodsModal from "@/views/room/modules/leasegoods/leasegoodsModal";
+import SelectCheckInRoomOrderModal from "./SelectCheckInRoomOrderModal.vue";
 import { match } from "assert";
 const columns = [
   // {
@@ -546,6 +561,7 @@ export default {
     FeeModal,
     MemberMessageModal,
     LeaseGoodsModal,
+    SelectCheckInRoomOrderModal,
   },
   props: {
     //表单禁用
@@ -711,6 +727,22 @@ export default {
         },
       });
     },
+    addUnion() {
+      if (this.selectRoomId === "1") {
+        this.$message.warning("请先选择房间");
+        return;
+      }
+      var index = this.model.livingRoomIds.findLastIndex(
+        (t) => t.roomId == this.selectRoomId
+      );
+      var find = this.model.livingRoomIds[index];
+      this.$refs.modalSelectCheckInRoomOrder.add();
+      this.$refs.modalSelectCheckInRoomOrder.title = "请选择需要关联的订单";
+      this.$refs.modalSelectCheckInRoomOrder.disableSubmit = false;
+      this.$refs.modalSelectCheckInRoomOrder.livingOrderId =
+        find.livingOrder.id;
+      this.$refs.modalSelectCheckInRoomOrder.livingRoomId = find.roomId;
+    },
     addLeaseGoods() {
       if (this.selectRoomId === "1") {
         this.$message.warning("请先选择房间");
@@ -901,7 +933,9 @@ export default {
           livingRoomId.roomName = "全部";
           var list = [];
           res.result.livingRoomIds.forEach((t) => {
-            list = [...list, ...t.livingCustomers];
+            if (t.livingCustomers) {
+              list = [...list, ...t.livingCustomers];
+            }
           });
           livingRoomId.livingCustomers = list;
           res.result.livingRoomIds.unshift(livingRoomId);

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

@@ -40,7 +40,7 @@
           <a-icon
             type="retweet"
             style="color: #fff; font-size: 30px"
-          /><a-button type="link"> 联房 </a-button>
+          /><a-button type="link" @click="handleUnion"> 联房 </a-button>
         </div>
         <div class="menu">
           <a-icon type="euro" style="color: #fff; font-size: 30px" /><a-button
@@ -105,6 +105,9 @@ export default {
     handleOk() {
       this.$refs.realForm.submitForm();
     },
+    handleUnion() {
+      this.$refs.realForm.addUnion();
+    },
     handleMessage() {
       this.$refs.realForm.addMessage();
     },

+ 238 - 0
src/views/room/modules/checkIn/SelectCheckInRoomOrder.vue

@@ -0,0 +1,238 @@
+<template>
+  <a-card :bordered="false">
+    <!-- 查询区域 -->
+    <div class="table-page-search-wrapper">
+      <a-form layout="inline" @keyup.enter.native="searchQuery">
+        <a-row :gutter="24">
+          <a-col :span="6">
+            <a-form-item label="">
+              <j-input
+                placeholder="入住单号/房间号/姓名"
+                v-model="queryParam.keyw"
+              ></j-input>
+            </a-form-item>
+          </a-col>
+          <a-col :span="3">
+            <span>
+              <a-button type="primary" @click="searchQuery" icon="search"
+                >查询</a-button
+              >
+            </span>
+          </a-col>
+        </a-row>
+      </a-form>
+    </div>
+    <!-- 查询区域-END -->
+
+    <!-- table区域-begin -->
+    <div>
+      <a-table
+        ref="table"
+        size="middle"
+        :scroll="{ x: true }"
+        bordered
+        rowKey="livingOrderId"
+        :columns="columns"
+        :dataSource="dataSource"
+        :pagination="ipagination"
+        :loading="loading"
+        class="j-table-force-nowrap"
+        @change="handleTableChange"
+        :rowSelection="{
+          selectedRowKeys: selectedRowKeys,
+          onChange: onSelectChange,
+        }"
+      >
+        <template slot="avatar" slot-scope="text">
+          <a-avatar v-if="text" :src="text" />
+          <a-avatar v-else icon="user" />
+        </template>
+        <template slot="imgSlot" slot-scope="text, record">
+          <span v-if="!text" style="font-size: 12px; font-style: italic"
+            >无图片</span
+          >
+          <img
+            v-else
+            :src="getImgView(text)"
+            :preview="record.id"
+            height="25px"
+            alt=""
+            style="max-width: 80px; font-size: 12px; font-style: italic"
+          />
+        </template>
+        <template slot="fileSlot" slot-scope="text">
+          <span v-if="!text" style="font-size: 12px; font-style: italic"
+            >无文件</span
+          >
+          <a-button
+            v-else
+            :ghost="true"
+            type="primary"
+            icon="download"
+            size="small"
+            @click="downloadFile(text)"
+          >
+            下载
+          </a-button>
+        </template>
+
+        <span slot="action" slot-scope="text, record">
+          <a @click="handleSelect(record)">选择</a>
+        </span>
+      </a-table>
+    </div>
+  </a-card>
+</template>
+
+<script>
+import "@/assets/less/TableExpand.less";
+import { mixinDevice } from "@/utils/mixin";
+import { JeecgListMixin } from "@/mixins/JeecgListMixin";
+import { httpAction } from "@/api/manage";
+export default {
+  name: "BusMemberCardList",
+  mixins: [JeecgListMixin, mixinDevice],
+  props: {
+    livingOrderId: {
+      type: String,
+      default: null,
+    },
+    livingRoomId: {
+      type: String,
+      default: null,
+    },
+  },
+  data() {
+    const hotelInfo = JSON.parse(localStorage.getItem("storeInfo"));
+    return {
+      datetime: [],
+      hotelId: "",
+      num: 1,
+      description: "PickingGoodsOrder",
+      // 表头
+      columns: [
+        {
+          title: "房间",
+          align: "center",
+          dataIndex: "roomName",
+        },
+        {
+          title: "名字",
+          align: "center",
+          dataIndex: "customerName",
+        },
+        {
+          title: "单号",
+          align: "center",
+          dataIndex: "livingOrderNo",
+        },
+        {
+          title: "状态",
+          align: "center",
+          dataIndex: "customerId",
+          customRender(text) {
+            return "正常入住";
+          },
+        },
+        // {
+        //   title: "金额",
+        //   align: "center",
+        //   dataIndex: "payMoney",
+        // },
+        // {
+        //   title: "操作",
+        //   dataIndex: "action",
+        //   align: "center",
+        //   fixed: "right",
+        //   width: 147,
+        //   scopedSlots: { customRender: "action" },
+        // },
+      ],
+      url: {
+        list: "/business/busRoomBookingOrders/living-orders?status=-1",
+        delete: "/business/busMemberCard/delete",
+        deleteBatch: "/business/busMemberCard/deleteBatch",
+        exportXlsUrl: "/business/busMemberCard/exportXls",
+        importExcelUrl: "business/busMemberCard/importExcel",
+      },
+      dictOptions: {},
+      superFieldList: [],
+      orderGoodsDetailList: [],
+      selectOrderInfo: {},
+      end: false,
+    };
+  },
+  watch: {
+    dataSource: function (val) {
+      if (this.end) return;
+      console.log("val", val);
+      if (val && val.length > 0) {
+        this.dataSource = val.filter(
+          (t) => t.livingOrderId != this.livingOrderId
+        );
+      }
+      this.end = true;
+      setTimeout(() => {
+        this.end = false;
+      }, 100);
+    },
+  },
+  created() {},
+  computed: {
+    importExcelUrl: function () {
+      return `${window._CONFIG["domianURL"]}/${this.url.importExcelUrl}`;
+    },
+  },
+  methods: {
+    searchQuery() {
+      this.loadData(1);
+      this.selectedRowKeys = [];
+      this.selectionRows = [];
+    },
+    handleSelect(row) {
+      this.$emit("ok", row);
+    },
+    submitForm() {
+      const that = this;
+      console.log("this.selectionRows", this.selectionRows);
+      if (this.selectedRowKeys.length === 0) {
+        this.$message.warning("请先选择订单");
+        return;
+      }
+      that.confirmLoading = true;
+      let httpurl =
+        "/business/busRoomBookingOrders/merge-order?livingRoomId=" +
+        this.livingOrderId;
+      let method = "post";
+      var livingOrderIds = [];
+      this.selectionRows.forEach((t) => {
+        livingOrderIds.push(t.livingOrderId);
+      });
+      httpAction(httpurl, livingOrderIds, method).then((res) => {
+        if (res.success) {
+          that.$message.success(res.message);
+          that.$emit("ok");
+        } else {
+          that.$message.warning(res.message);
+        }
+      });
+    },
+  },
+};
+</script>
+<style scoped>
+@import "~@assets/less/common.less";
+/deep/ .ant-input-search-button {
+  background-color: #ff4d4f;
+  border-color: #ff4d4f;
+}
+/deep/ .ant-input-search-button[disabled]:hover {
+  opacity: 0.7;
+  background-color: #ff4d4f;
+  border-color: #ff4d4f;
+}
+/deep/ .ant-input-search-button[disabled] {
+  opacity: 0.7;
+  color: #ffffff;
+}
+</style>

+ 68 - 0
src/views/room/modules/checkIn/SelectCheckInRoomOrderModal.vue

@@ -0,0 +1,68 @@
+<template>
+  <j-modal
+    :title="title"
+    :width="width"
+    :visible="visible"
+    switchFullscreen
+    @ok="handleOk"
+    :okButtonProps="{ class: { 'jee-hidden': disableSubmit } }"
+    @cancel="handleCancel"
+    cancelText="关闭"
+  >
+    <picking-goods-order
+      ref="realForm"
+      @ok="submitCallback"
+      :disabled="disableSubmit"
+      :livingOrderId="livingOrderId"
+      :livingRoomId="livingRoomId"
+    ></picking-goods-order>
+  </j-modal>
+</template>
+
+<script>
+import PickingGoodsOrder from "./SelectCheckInRoomOrder";
+export default {
+  name: "PickingGoodsOrderModal",
+  components: {
+    PickingGoodsOrder,
+  },
+  data() {
+    return {
+      title: "",
+      width: 1200,
+      visible: false,
+      disableSubmit: false,
+      livingOrderId: "",
+      livingRoomId: "",
+    };
+  },
+  methods: {
+    add() {
+      this.visible = true;
+      // this.$nextTick(()=>{
+      //   this.$refs.realForm.add();
+      // })
+    },
+    edit(record) {
+      this.visible = true;
+      this.$nextTick(() => {
+        this.$refs.realForm.edit(record);
+      });
+    },
+    close() {
+      this.$emit("close");
+      this.visible = false;
+    },
+    handleOk() {
+      this.$refs.realForm.submitForm();
+    },
+    submitCallback(e) {
+      this.$emit("ok", e);
+      this.visible = false;
+    },
+    handleCancel() {
+      this.close();
+    },
+  },
+};
+</script>

+ 4 - 1
src/views/room/modules/leasegoods/CesOrderLeaseGoodsForm.vue

@@ -21,7 +21,7 @@
                   v-for="(item, index) in roomsList"
                   :key="item.id"
                 >
-                {{ item.roomName }}/{{ item.customerName }}
+                  {{ item.roomName }}/{{ item.customerName }}
                 </a-select-option>
               </a-select>
             </a-form-model-item>
@@ -181,6 +181,9 @@ export default {
   methods: {
     add(livingOrderId) {
       this.modelDefault.livingOrderId = livingOrderId;
+      if (this.modelDefault.livingOrderId == null) {
+        this.modelDefault.livingOrderId = undefined;
+      }
       this.edit(this.modelDefault);
     },
     edit(record) {

+ 3 - 0
src/views/room/modules/membermessage/BusMemberMessageForm.vue

@@ -167,6 +167,9 @@ export default {
   methods: {
     add(livingOrderId) {
       this.modelDefault.livingOrderId = livingOrderId;
+      if (this.modelDefault.livingOrderId == null) {
+        this.modelDefault.livingOrderId = undefined;
+      }
       this.edit(this.modelDefault);
     },
     edit(record) {

+ 1 - 1
src/views/stock/modules/DepositoryForm.vue

@@ -93,7 +93,7 @@ export default {
         hotelId: [{ required: true, message: "请输入关联酒店!" }],
         name: [{ required: true, message: "请输入名称!" }],
         state: [{ required: true, message: "请输入状态!" }],
-        online: [{ required: true, message: "请输入线上预定!" }],
+        address: [{ required: true, message: "请输入仓库地址!" }],
       },
       url: {
         add: "/kc/kcDepository/add",