Bladeren bron

调整样式 增加弹窗

DESKTOP-B78GIPM\admin 2 jaren geleden
bovenliggende
commit
525c12f3d6
1 gewijzigde bestanden met toevoegingen van 445 en 418 verwijderingen
  1. 445 418
      src/views/pos/diandan.vue

+ 445 - 418
src/views/pos/diandan.vue

@@ -1,460 +1,487 @@
 <template>
-  <a-card :bordered="false" class="card-pd">
+<a-card :bordered="false" class="card-pd">
     <a-tabs v-model="tabPosTypeId" @change="tabPosTypeChange">
-      <a-tab-pane
-        :key="item.id"
-        :tab="item.name"
-        v-for="item in posTypeList"
-      ></a-tab-pane>
+        <a-tab-pane :key="item.id" :tab="item.name" v-for="item in posTypeList"></a-tab-pane>
     </a-tabs>
-    <div style="display: flex; height: calc(100vh - 350px)">
-      <a-card style="width: 25%">
-        <p v-if="selectRoomOrder && selectRoomOrder.roomName">
-          房间:{{ selectRoomOrder.roomName }},姓名:{{ selectRoomOrder.customerName }}
-        </p>
-        <a-table
-          bordered
-          :columns="columns"
-          :data-source="selectGoodsList"
-          :pagination="false"
-          rowKey="id"
-          :scroll="{ y: 560 }"
-        >
-          <template slot="num" slot-scope="text, record, index">
-            <div>
-              <a-input-number
-                v-model="record.num"
-                :max="record.inventory"
-                @change="(event) => numChange(event, index)"
-              />
-            </div>
-          </template>
-          <template slot="required" slot-scope="text, record, index">
-            <div>
-              <a-switch v-model="record.required" />
-            </div>
-          </template>
+    <div style="display: flex; height: calc(100vh - 350px);">
+        <a-card style="width: 30%">
+            <a href="#" @click="remarkModal">
+                <a-icon type="edit" />整单备注</a>
+            <p v-if="selectRoomOrder && selectRoomOrder.roomName">
+                <a-icon type="user" /> 房间:{{ selectRoomOrder.roomName }},姓名:{{ selectRoomOrder.customerName }}
+            </p>
+            <a-table bordered :columns="columns" :data-source="selectGoodsList" :row-selection="rowSelection" rowKey="id" :scroll="{ y: 560 }">
+                <template slot="num" slot-scope="text, record, index">
+                    <div>
+                        <a-input-number v-model="record.num" :max="record.inventory" @change="(event) => numChange(event, index)" />
+                    </div>
+                </template>
+                <template slot="required" slot-scope="text, record, index">
+                    <div>
+                        <a-switch v-model="record.required" />
+                    </div>
+                </template>
 
-          <span slot="action" slot-scope="text, record, index">
-            <a @click="handleDelete(index)">删除</a>
-          </span>
-        </a-table>
-        <p>数量:{{ sum }}</p>
-        <div style="display: flex; gap: 5px; flex-flow: wrap">
-          <a-button @click="handleClear" :disabled="btnDisabled">清空</a-button>
-          <!-- <a-button @click="handleAdd" :disabled="btnDisabled">备注</a-button> -->
-          <!-- <a-button :disabled="btnDisabled">退货</a-button> -->
-          <a-button v-if="!btnDisabled" @click="handleAdd">挂单</a-button>
-          <a-button v-else @click="handlePickingGoodsOrder">取单</a-button>
-          <a-button
-            v-if="selectRoomOrder && selectRoomOrder.roomName && !btnDisabled"
-            @click="handleToRoomFeePayment"
-            >确定挂房帐</a-button
-          >
-          <a-button v-else @click="handleSelectCheckInRoomOrder"
-            >挂房帐</a-button
-          >
-          <a-button :disabled="btnDisabled" type="danger" @click="handlePayment"
-            >结账¥{{ amount.toFixed(2) }}</a-button
-          >
-        </div>
-      </a-card>
-      <a-card style="width: 75%">
-        <a-tabs v-model="tabgoodsTypeId" @change="tabGoodsTypeChange">
-          <a-tab-pane key="1" tab="全部"></a-tab-pane>
-          <a-tab-pane
-            :key="item.id"
-            :tab="item.name"
-            v-for="item in goodsTypeList"
-          ></a-tab-pane>
-        </a-tabs>
-        <a-row :gutter="[5, 5]">
-          <a-col
-            v-for="item in dataSource"
-            :key="item.id"
-            :span="3"
-            @click.stop="itemClick(item)"
-          >
-            <div class="room-item check">
-              <div class="select-cell"></div>
-              <template v-if="item.id != '0'">
-                <div>{{ item.name }}</div>
-                <div style="margin-top: 10px; color: red">
-                  ¥{{ item.sellingPrice.toFixed(2) }}
-                </div>
-                <div style="margin-top: 10px">库{{ item.inventory }}</div>
-                <div
-                  v-if="item.isSellClear"
-                  style="display: flex; justify-content: right"
-                >
-                  <a-tag color="#f50"> 沽清 </a-tag>
-                </div></template
-              >
-              <template v-else>
-                <div style="font-weight: 800; text-align: center">+临时菜</div>
-              </template>
+                <span slot="action" slot-scope="text, record, index">
+                    <a @click="handleDelete(index)">删除</a>
+                </span>
+            </a-table>
+            <p>数量:{{ sum }}</p>
+            <div style="display: flex; gap: 5px; flex-flow: wrap">
+                <a-button @click="handleClear" :disabled="btnDisabled">清空</a-button>
+                <!-- <a-button @click="handleAdd" :disabled="btnDisabled">备注</a-button> -->
+                <!-- <a-button :disabled="btnDisabled">退货</a-button> -->
+                <a-button v-if="!btnDisabled" @click="handleAdd">挂单</a-button>
+                <a-button v-else @click="handlePickingGoodsOrder">取单</a-button>
+                <a-button v-if="selectRoomOrder && selectRoomOrder.roomName && !btnDisabled" @click="handleToRoomFeePayment">确定挂房帐</a-button>
+                <a-button v-else @click="handleSelectCheckInRoomOrder">挂房帐</a-button>
+                <a-button :disabled="btnDisabled" type="danger" @click="handlePayment">结账¥{{ amount.toFixed(2) }}</a-button>
+                <a-button :disabled="btnDisabled">退货</a-button>
             </div>
-          </a-col>
-        </a-row>
-      </a-card>
+        </a-card>
+        <a-card style="width: 75%;position: relative;">
+            <a-tabs v-model="tabgoodsTypeId" @change="tabGoodsTypeChange">
+                <a-tab-pane key="1" tab="全部"></a-tab-pane>
+                <a-tab-pane :key="item.id" :tab="item.name" v-for="item in goodsTypeList"></a-tab-pane>
+            </a-tabs>
+            <a-row :gutter="[5, 5]">
+                <a-col v-for="item in dataSource" :key="item.id" :span="3" @click.stop="itemClick(item)">
+                    <div class="room-item check">
+                        <div class="select-cell"></div>
+                        <template v-if="item.id != '0'">
+                            <div>{{ item.name }}</div>
+                            <div style="margin-top: 10px; color: red">
+                                ¥{{ item.sellingPrice.toFixed(2) }}
+                            </div>
+                            <div style="margin-top: 10px">库{{ item.inventory }}</div>
+                            <div v-if="item.isSellClear" style="display: flex; justify-content: right">
+                                <a-tag color="#f50"> 沽清 </a-tag>
+                            </div>
+                        </template>
+                        <template v-else>
+                            <div style="font-weight: 800; text-align: center">+临时菜</div>
+                        </template>
+                    </div>
+                </a-col>
+            </a-row>
+            <a-row style="margin-top:30px;">
+                <a-space :size="size">
+                  <a-input v-if="!isSaoma" placeholder="输入名称、简拼、条码"></a-input>
+                  <a-input v-else placeholder="请扫描条码"></a-input>
+                  <a-button v-if="!isSaoma">查询</a-button>
+                  <a-button @click="isSaoma=!isSaoma">切换为扫码模式</a-button>
+                </a-space>
+            </a-row>
+        </a-card>
+        
     </div>
     <payment-modal ref="modalPaymentForm" @ok="modalFormOk"></payment-modal>
     <goods-modal ref="modalGoodsForm" @ok="modalFormOk2"></goods-modal>
-    <picking-goods-order-modal
-      ref="modalPickingGoodsOrderForm"
-      @ok="modalPickingGoodsOrderFormOk"
-    ></picking-goods-order-modal>
-    <select-check-in-room-order-modal
-      ref="modalSelectCheckInRoomOrderModal"
-      @ok="modalSelectCheckInRoomOrderFormOk"
-    ></select-check-in-room-order-modal>
-  </a-card>
+    <picking-goods-order-modal ref="modalPickingGoodsOrderForm" @ok="modalPickingGoodsOrderFormOk"></picking-goods-order-modal>
+    <select-check-in-room-order-modal ref="modalSelectCheckInRoomOrderModal" @ok="modalSelectCheckInRoomOrderFormOk"></select-check-in-room-order-modal>
+
+    <a-modal @cancel="isRemarkModal = false" :visible="isRemarkModal" title="添加备注">
+        <a-form-model :model="form">
+            <a-form-model-item label="备注">
+                <a-input v-model="remark" type="textarea" />
+            </a-form-model-item>
+        </a-form-model>
+    </a-modal>
+
+</a-card>
 </template>
+
   
-  <script>
+<script>
 // import { JeecgListMixin } from "@/mixins/JeecgListMixin";
 // import PosRegionModal from "./modules/PosRegionModal";
-import { filterObj } from "@/utils/util";
-import { getAction, postAction, deleteAction } from "@/api/manage";
+import {
+    filterObj
+} from "@/utils/util";
+import {
+    getAction,
+    postAction,
+    deleteAction
+} from "@/api/manage";
 import PaymentModal from "./modules/PaymentModal.vue";
 import goodsModal from "./modules/goodStock/goodsModal.vue";
 import PickingGoodsOrderModal from "./modules/PickingGoodsOrderModal.vue";
 import SelectCheckInRoomOrderModal from "./modules/SelectCheckInRoomOrderModal.vue";
-import { computed } from "vue";
-import { tree } from "@/api/good";
-const columns = [
-  {
-    title: "商品名称",
-    dataIndex: "name",
-  },
-  {
-    title: "数量",
-    dataIndex: "num",
-    scopedSlots: { customRender: "num" },
-  },
-  {
-    title: "售价",
-    dataIndex: "sellingPrice",
-  },
-];
-export default {
-  name: "memberList",
-  components: {
-    PaymentModal,
-    goodsModal,
-    PickingGoodsOrderModal,
-    SelectCheckInRoomOrderModal,
-  },
-  data() {
-    return {
-      columns,
-      sellClear: 0,
-      queryParam: {},
-      // 分页参数
-      ipagination: {
-        current: 1,
-        pageSize: 99999,
-        pageSizeOptions: ["10", "20", "30"],
-        showTotal: (total, range) => {
-          return range[0] + "-" + range[1] + " 共" + total + "条";
-        },
-        showQuickJumper: true,
-        showSizeChanger: true,
-        total: 0,
-      },
-      url: {
-        list: "/pos/posSellClearGoods/list",
-        delete: "/pos/posSellClearGoods/delete",
-        deleteBatch: "/pos/posSellClearGoods/deleteBatch",
-        exportXlsUrl: "/pos/posSellClearGoods/exportXls",
-        importExcelUrl: "pos/posSellClearGoods/importExcel",
-      },
-      dictOptions: {},
-      superFieldList: [],
-      selectedRowKeys: [],
-      isorter: {
-        column: "createTime",
-        order: "desc",
-      },
-      treeData: [],
-      selectGoods: {},
-      posTypeList: [],
-      tabPosTypeId: "",
-      selectGoodsList: [],
-      goodsTypeList: [],
-      tabgoodsTypeId: "1",
-      dataSource: [],
-      oldSelectGoodsList: [],
-      selectOrderInfo: {},
-      selectRoomOrder: {},
-    };
-  },
-  provide() {
-    return {
-      treeData: computed(() => this.treeData),
-    };
-  },
-  computed: {
-    sum() {
-      return this.selectGoodsList.reduce(function (total, item) {
-        return total + item.num;
-      }, 0);
-    },
-    amount() {
-      return this.selectGoodsList.reduce(function (total, item) {
-        return total + item.sellingPrice * item.num;
-      }, 0);
-    },
-    btnDisabled() {
-      var res = this.selectGoodsList && this.selectGoodsList.length > 0;
-      return !res;
-    },
-  },
-  created() {
-    this.dataSource = [{ id: "0" }];
-    getAction("/pos/posType/list", { pageNo: 1, pageSize: 99 }).then((res) => {
-      if (res.success) {
-        this.posTypeList = res.result.records;
-        if (this.posTypeList && this.posTypeList.length > 0) {
-          this.tabPosTypeId = this.posTypeList[0].id;
-          this.loadGoodsType();
-        }
-      }
-    });
-    this.loadTree();
-  },
-  methods: {
-    loadTree() {
-      var that = this;
-      tree().then((res) => {
-        if (res.success) {
-          this.treeData = res.result;
-        }
-      });
-    },
-    modalFormOk() {},
-    modalFormOk2(e) {
-      console.log(e);
-      var good = JSON.parse(JSON.stringify(e));
-      this.$set(good, "num", 1);
-      this.selectGoodsList.push(good);
-    },
-    modalSelectCheckInRoomOrderFormOk(e) {
-      console.log(e);
-      this.selectRoomOrder = e;
-    },
-    modalPickingGoodsOrderFormOk(e) {
-      console.log(e);
-      if (e && e.orderDetailList && e.orderDetailList.length > 0) {
-        this.selectOrderInfo = e.orderInfo;
-        e.orderDetailList.forEach((t) => {
-          t.sellingPrice = t.payMoney;
-          t.name = t.goodsName;
-          t.id = t.goodsId;
-        });
-        this.selectGoodsList = e.orderDetailList;
-      }
-    },
-    numChange(e, index) {
-      console.log(e);
-      if (e <= 0) {
-        this.selectGoodsList.splice(index, 1);
-      }
-    },
-    handleClear() {
-      this.selectGoodsList = [];
-      // this.selectOrderInfo = {};
+import {
+    computed
+} from "vue";
+import {
+    tree
+} from "@/api/good";
+const columns = [{
+        title: "商品名称",
+        dataIndex: "name",
     },
-    tabPosTypeChange(e) {
-      this.loadGoodsType();
-    },
-    tabGoodsTypeChange(e) {
-      this.loadGoods();
-    },
-    loadGoodsType() {
-      getAction("/rooms/cesStockType/getTopTypesByPosType", {
-        posType: this.tabPosTypeId,
-      }).then((res2) => {
-        if (res2.success) {
-          this.goodsTypeList = res2.result;
-          if (this.goodsTypeList && this.goodsTypeList.length > 0) {
-            this.loadGoods();
-          }
-        }
-      });
-    },
-    loadGoods() {
-      var ids = [];
-      if (this.tabgoodsTypeId === "1") {
-        this.goodsTypeList.forEach((t) => {
-          ids.push(t.id);
-        });
-      } else {
-        ids.push(this.tabgoodsTypeId);
-      }
-      this.dataSource = [{ id: "0" }];
-      getAction("/pos/posSellClearGoods/list", {
-        pageNo: 1,
-        pageSize: 99999,
-        goodTypes: ids,
-      }).then((res) => {
-        if (res.success) {
-          this.dataSource = [...this.dataSource, ...res.result.records];
-        }
-      });
+    {
+        title: "数量",
+        dataIndex: "num",
+        scopedSlots: {
+            customRender: "num"
+        },
     },
-    handleDelete() {
-      deleteAction("/pos/posSellClearGoods/delete", {
-        goodsId: this.selectGoods.id,
-      })
-        .then((res) => {
-          if (res.success) {
-            this.$message.success(res.message);
-            this.loadData();
-            this.sellClear = 0;
-          } else {
-            this.$message.warning(res.message);
-          }
-        })
-        .finally(() => {});
+    {
+        title: "售价",
+        dataIndex: "sellingPrice",
     },
-    handleSelectCheckInRoomOrder() {
-      this.$refs.modalSelectCheckInRoomOrderModal.add();
-      this.$refs.modalSelectCheckInRoomOrderModal.title = "选择转帐人";
-      this.$refs.modalSelectCheckInRoomOrderModal.disableSubmit = false;
+];
+export default {
+    name: "memberList",
+    components: {
+        PaymentModal,
+        goodsModal,
+        PickingGoodsOrderModal,
+        SelectCheckInRoomOrderModal,
     },
-    handlePickingGoodsOrder() {
-      this.$refs.modalPickingGoodsOrderForm.add();
-      this.$refs.modalPickingGoodsOrderForm.title = "取单";
-      this.$refs.modalPickingGoodsOrderForm.disableSubmit = false;
+    data() {
+        return {
+            isRemarkModal: false,
+            isSaoma: false,
+            remark:'',
+            columns,
+            sellClear: 0,
+            queryParam: {},
+            // 分页参数
+            ipagination: {
+                current: 1,
+                pageSize: 99999,
+                pageSizeOptions: ["10", "20", "30"],
+                showTotal: (total, range) => {
+                    return range[0] + "-" + range[1] + " 共" + total + "条";
+                },
+                showQuickJumper: true,
+                showSizeChanger: true,
+                total: 0,
+            },
+            url: {
+                list: "/pos/posSellClearGoods/list",
+                delete: "/pos/posSellClearGoods/delete",
+                deleteBatch: "/pos/posSellClearGoods/deleteBatch",
+                exportXlsUrl: "/pos/posSellClearGoods/exportXls",
+                importExcelUrl: "pos/posSellClearGoods/importExcel",
+            },
+            dictOptions: {},
+            superFieldList: [],
+            selectedRowKeys: [],
+            isorter: {
+                column: "createTime",
+                order: "desc",
+            },
+            treeData: [],
+            selectGoods: {},
+            posTypeList: [],
+            tabPosTypeId: "",
+            selectGoodsList: [],
+            goodsTypeList: [],
+            tabgoodsTypeId: "1",
+            dataSource: [],
+            oldSelectGoodsList: [],
+            selectOrderInfo: {},
+            selectRoomOrder: {},
+        };
     },
-    handleAddTempGoods() {
-      this.$refs.modalGoodsForm.add();
-      this.$refs.modalGoodsForm.title = "新增菜品";
-      this.$refs.modalGoodsForm.disableSubmit = false;
+    provide() {
+        return {
+            treeData: computed(() => this.treeData),
+        };
     },
-    handleToRoomFeePayment() {
-      this.handleAdd();
+    computed: {
+        rowSelection() {
+            return {
+                onChange: (selectedRowKeys, selectedRows) => {
+                    console.log(`selectedRowKeys: ${selectedRowKeys}`, 'selectedRows: ', selectedRows);
+                },
+                getCheckboxProps: record => ({
+                    props: {
+                        disabled: record.name === 'Disabled User', // Column configuration not to be checked
+                        name: record.name,
+                    },
+                }),
+            };
+        },
+        sum() {
+            return this.selectGoodsList.reduce(function (total, item) {
+                return total + item.num;
+            }, 0);
+        },
+        amount() {
+            return this.selectGoodsList.reduce(function (total, item) {
+                return total + item.sellingPrice * item.num;
+            }, 0);
+        },
+        btnDisabled() {
+            var res = this.selectGoodsList && this.selectGoodsList.length > 0;
+            return !res;
+        },
     },
-    handlePayment() {
-      this.handleAdd((e) => {
-        var amount = this.oldSelectGoodsList.reduce(function (total, item) {
-          return total + item.sellingPrice * item.num;
-        }, 0);
-        this.$refs.modalPaymentForm.edit({
-          billAmount: amount,
-          deposit: 0,
-          roomFee: amount,
-          subjectType: 5,
-          feeType: 2,
-          preferentialType: 1,
-          couponFirstAmount: 0,
-          discount: 9,
-          orderCode: e,
+    created() {
+        this.dataSource = [{
+            id: "0"
+        }];
+        getAction("/pos/posType/list", {
+            pageNo: 1,
+            pageSize: 99
+        }).then((res) => {
+            if (res.success) {
+                this.posTypeList = res.result.records;
+                if (this.posTypeList && this.posTypeList.length > 0) {
+                    this.tabPosTypeId = this.posTypeList[0].id;
+                    this.loadGoodsType();
+                }
+            }
         });
-        this.$refs.modalPaymentForm.title = "POS结账";
-        this.$refs.modalPaymentForm.disableSubmit = false;
-      });
+        this.loadTree();
     },
-    handleAdd(callback) {
-      if (!this.selectGoodsList || this.selectGoodsList.length <= 0) {
-        this.$message.warning("请先选择商品");
-        return;
-      }
-      var _info = JSON.parse(localStorage.getItem("storeInfo"));
-      var model = { goodsId: this.selectGoods.id };
-      if (_info) {
-        model.hotelId = _info.id;
-      }
-      model.id = this.selectOrderInfo.id;
-      model.toRoomFeeOrderId = this.selectRoomOrder.livingOrderId;
-      model.posType = this.tabPosTypeId;
-      var posOrderGoodsDetailList = [];
-      this.selectGoodsList.forEach((t) => {
-        posOrderGoodsDetailList.push({
-          goodsId: t.id,
-          num: t.num,
-          money: t.sellingPrice,
-        });
-      });
-      model.posOrderGoodsDetailList = posOrderGoodsDetailList;
-      postAction("/pos/posOrderGoods/add", model)
-        .then((res) => {
-          if (res.success) {
-            this.$message.success(res.message);
-            this.oldSelectGoodsList = JSON.parse(
-              JSON.stringify(this.selectGoodsList)
-            );
+    methods: {
+        remarkModal() {
+            this.isRemarkModal = true;
+        },
+
+        loadTree() {
+            var that = this;
+            tree().then((res) => {
+                if (res.success) {
+                    this.treeData = res.result;
+                }
+            });
+        },
+        modalFormOk() {},
+        modalFormOk2(e) {
+            console.log(e);
+            var good = JSON.parse(JSON.stringify(e));
+            this.$set(good, "num", 1);
+            this.selectGoodsList.push(good);
+        },
+        modalSelectCheckInRoomOrderFormOk(e) {
+            console.log(e);
+            this.selectRoomOrder = e;
+        },
+        modalPickingGoodsOrderFormOk(e) {
+            console.log(e);
+            if (e && e.orderDetailList && e.orderDetailList.length > 0) {
+                this.selectOrderInfo = e.orderInfo;
+                e.orderDetailList.forEach((t) => {
+                    t.sellingPrice = t.payMoney;
+                    t.name = t.goodsName;
+                    t.id = t.goodsId;
+                });
+                this.selectGoodsList = e.orderDetailList;
+            }
+        },
+        numChange(e, index) {
+            console.log(e);
+            if (e <= 0) {
+                this.selectGoodsList.splice(index, 1);
+            }
+        },
+        handleClear() {
             this.selectGoodsList = [];
-            this.selectOrderInfo = {};
-            this.selectRoomOrder = {};
+            // this.selectOrderInfo = {};
+        },
+        tabPosTypeChange(e) {
+            this.loadGoodsType();
+        },
+        tabGoodsTypeChange(e) {
             this.loadGoods();
-            if (callback) {
-              callback(res.result.code);
+        },
+        loadGoodsType() {
+            getAction("/rooms/cesStockType/getTopTypesByPosType", {
+                posType: this.tabPosTypeId,
+            }).then((res2) => {
+                if (res2.success) {
+                    this.goodsTypeList = res2.result;
+                    if (this.goodsTypeList && this.goodsTypeList.length > 0) {
+                        this.loadGoods();
+                    }
+                }
+            });
+        },
+        loadGoods() {
+            var ids = [];
+            if (this.tabgoodsTypeId === "1") {
+                this.goodsTypeList.forEach((t) => {
+                    ids.push(t.id);
+                });
+            } else {
+                ids.push(this.tabgoodsTypeId);
             }
-          } else {
-            this.$message.warning(res.message);
-          }
-        })
-        .finally(() => {});
-    },
-    itemClick(row) {
-      console.log(row);
-      if (row.id == "0") {
-        this.handleAddTempGoods();
-        return;
-      }
-      if (row.isSellClear) {
-        this.$message.warning("选择的商品已沽清");
-        return;
-      }
-      var good = JSON.parse(JSON.stringify(row));
-      this.$set(good, "num", 1);
-      var find = this.selectGoodsList.find((t) => t.id === row.id);
-      if (find) {
-        if (find.inventory > find.num) {
-          find.num++;
-        }
-      } else {
-        this.selectGoodsList.push(good);
-      }
+            this.dataSource = [{
+                id: "0"
+            }];
+            getAction("/pos/posSellClearGoods/list", {
+                pageNo: 1,
+                pageSize: 99999,
+                goodTypes: ids,
+            }).then((res) => {
+                if (res.success) {
+                    this.dataSource = [...this.dataSource, ...res.result.records];
+                }
+            });
+        },
+        handleDelete() {
+            deleteAction("/pos/posSellClearGoods/delete", {
+                    goodsId: this.selectGoods.id,
+                })
+                .then((res) => {
+                    if (res.success) {
+                        this.$message.success(res.message);
+                        this.loadData();
+                        this.sellClear = 0;
+                    } else {
+                        this.$message.warning(res.message);
+                    }
+                })
+                .finally(() => {});
+        },
+        handleSelectCheckInRoomOrder() {
+            this.$refs.modalSelectCheckInRoomOrderModal.add();
+            this.$refs.modalSelectCheckInRoomOrderModal.title = "选择转帐人";
+            this.$refs.modalSelectCheckInRoomOrderModal.disableSubmit = false;
+        },
+        handlePickingGoodsOrder() {
+            this.$refs.modalPickingGoodsOrderForm.add();
+            this.$refs.modalPickingGoodsOrderForm.title = "取单";
+            this.$refs.modalPickingGoodsOrderForm.disableSubmit = false;
+        },
+        handleAddTempGoods() {
+            this.$refs.modalGoodsForm.add();
+            this.$refs.modalGoodsForm.title = "新增菜品";
+            this.$refs.modalGoodsForm.disableSubmit = false;
+        },
+        handleToRoomFeePayment() {
+            this.handleAdd();
+        },
+        handlePayment() {
+            this.handleAdd((e) => {
+                var amount = this.oldSelectGoodsList.reduce(function (total, item) {
+                    return total + item.sellingPrice * item.num;
+                }, 0);
+                this.$refs.modalPaymentForm.edit({
+                    billAmount: amount,
+                    deposit: 0,
+                    roomFee: amount,
+                    subjectType: 5,
+                    feeType: 2,
+                    preferentialType: 1,
+                    couponFirstAmount: 0,
+                    discount: 9,
+                    orderCode: e,
+                });
+                this.$refs.modalPaymentForm.title = "POS结账";
+                this.$refs.modalPaymentForm.disableSubmit = false;
+            });
+        },
+        handleAdd(callback) {
+            if (!this.selectGoodsList || this.selectGoodsList.length <= 0) {
+                this.$message.warning("请先选择商品");
+                return;
+            }
+            var _info = JSON.parse(localStorage.getItem("storeInfo"));
+            var model = {
+                goodsId: this.selectGoods.id
+            };
+            if (_info) {
+                model.hotelId = _info.id;
+            }
+            model.id = this.selectOrderInfo.id;
+            model.toRoomFeeOrderId = this.selectRoomOrder.livingOrderId;
+            model.posType = this.tabPosTypeId;
+            var posOrderGoodsDetailList = [];
+            this.selectGoodsList.forEach((t) => {
+                posOrderGoodsDetailList.push({
+                    goodsId: t.id,
+                    num: t.num,
+                    money: t.sellingPrice,
+                });
+            });
+            model.posOrderGoodsDetailList = posOrderGoodsDetailList;
+            postAction("/pos/posOrderGoods/add", model)
+                .then((res) => {
+                    if (res.success) {
+                        this.$message.success(res.message);
+                        this.oldSelectGoodsList = JSON.parse(
+                            JSON.stringify(this.selectGoodsList)
+                        );
+                        this.selectGoodsList = [];
+                        this.selectOrderInfo = {};
+                        this.selectRoomOrder = {};
+                        this.loadGoods();
+                        if (callback) {
+                            callback(res.result.code);
+                        }
+                    } else {
+                        this.$message.warning(res.message);
+                    }
+                })
+                .finally(() => {});
+        },
+        itemClick(row) {
+            console.log(row);
+            if (row.id == "0") {
+                this.handleAddTempGoods();
+                return;
+            }
+            if (row.isSellClear) {
+                this.$message.warning("选择的商品已沽清");
+                return;
+            }
+            var good = JSON.parse(JSON.stringify(row));
+            this.$set(good, "num", 1);
+            var find = this.selectGoodsList.find((t) => t.id === row.id);
+            if (find) {
+                if (find.inventory > find.num) {
+                    find.num++;
+                }
+            } else {
+                this.selectGoodsList.push(good);
+            }
+        },
     },
-  },
 };
 </script>
-  <style scoped>
+  
+<style scoped>
 @import "~@assets/less/common.less";
+
 .room-item {
-  height: 110px;
-  /* line-height: 200px; */
-  font-size: 13px;
-  padding: 0px 5px;
-  border-radius: 5px;
-  cursor: pointer;
-  position: relative;
-  display: flex;
-  flex-direction: column;
-  justify-content: center;
+    height: 110px;
+    /* line-height: 200px; */
+    font-size: 13px;
+    padding: 0px 5px;
+    border-radius: 5px;
+    cursor: pointer;
+    position: relative;
+    display: flex;
+    flex-direction: column;
+    justify-content: center;
 }
+
 .check {
-  border: #000 solid 3px;
+    border: #000 solid 3px;
 }
+
 .ant-table-wrapper {
-  height: calc(100vh - 500px);
+    height: calc(100vh - 500px);
 }
+
 /deep/ .card-pd .ant-card-body {
-  padding: 0 !important;
+    padding: 0 !important;
 }
+
 .select-cell {
-  position: absolute;
-  width: 100%;
-  height: 100%;
-  left: 0;
-  top: 0;
-  z-index: 10;
-  -webkit-user-select: none;
-  -moz-user-select: none;
-  -ms-user-select: none;
-  user-select: none;
+    position: absolute;
+    width: 100%;
+    height: 100%;
+    left: 0;
+    top: 0;
+    z-index: 10;
+    -webkit-user-select: none;
+    -moz-user-select: none;
+    -ms-user-select: none;
+    user-select: none;
 }
-</style>
+</style>