DESKTOP-B78GIPM\admin 2 år sedan
förälder
incheckning
3bafb43265

+ 69 - 0
src/views/room/modules/checkIn/HistoryModal.vue

@@ -0,0 +1,69 @@
+<template>
+  <j-modal
+    :title="title"
+    :width="width"
+    :visible="visible"
+    switchFullscreen
+    @ok="handleOk"
+    :okButtonProps="{ class: { 'jee-hidden': disableSubmit } }"
+    @cancel="handleCancel"
+    cancelText="关闭"
+  >
+    <refund
+      :phone="phone"
+      ref="realForm"
+      @ok="submitCallback"
+      :disabled="disableSubmit"
+    ></refund>
+  </j-modal>
+</template>
+
+<script>
+import Refund from "./HistoryModalTable.vue";
+
+export default {
+  name: "RefundModal",
+  components: {
+    Refund,
+  },
+  data() {
+    return {
+      title: "历史入住信息",
+      width: 800,
+      visible: false,
+      disableSubmit: false,
+      phone: "",
+    };
+  },
+  methods: {
+    add(phone) {
+      this.phone = phone;
+      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(record) {
+      console.log(record);
+      this.$emit("ok", record);
+      this.visible = false;
+    },
+    handleCancel() {
+      this.close();
+    },
+  },
+};
+</script>

+ 427 - 0
src/views/room/modules/checkIn/HistoryModalTable.vue

@@ -0,0 +1,427 @@
+<template>
+    <div class="back">
+        <div class="" style="">
+            <a-card :bordered="false">
+                <!-- 查询区域 -->
+                <div class="table-page-search-wrapper">
+                    <a-form layout="inline">
+                        <a-row :gutter="24">
+                            <a-col :span="12">
+                                <!-- <a-form-item label="">
+                                    <j-input placeholder="姓名" v-model="queryParam.name" style="width: 200px"></j-input>
+                                </a-form-item> -->
+                                姓名:{{dataSource[0].name}}
+                            </a-col>
+                            <a-col :span="12">
+                                <!-- <a-form-item label="">
+                                    <j-input placeholder="手机号码" v-model="queryParam.name" style="width: 200px"></j-input>
+                                </a-form-item> -->
+                                手机号码:{{phone}}
+                            </a-col>
+                            
+                        </a-row>
+                        <a-row :gutter="[24,24]">
+                            <a-col :span="12">
+                                <!-- <a-form-item label="">
+                                    <j-input placeholder="证件号码" v-model="queryParam.name" style="width: 200px"></j-input>
+                                </a-form-item> -->
+                                证件号码:{{dataSource[0].cert_no}}
+                            </a-col>
+
+                            <a-col :span="12">
+                                <!-- <a-form-item label="">
+                                    <j-input placeholder="会员" v-model="queryParam.name" style="width: 200px"></j-input>
+                                </a-form-item> -->
+                                会员:{{dataSource[0].huiyuan}}
+                            </a-col>
+                        </a-row>
+                    </a-form>
+                </div>
+                <!-- 查询区域-END -->
+                <div>
+                    <a-table ref="table" size="middle" :scroll="{ x: '100%' }" bordered rowKey="id" :columns="columns"
+                        :dataSource="dataSource" :pagination="ipagination" :loading="loading" class="j-table-force-nowrap" @change="handleTableChange">
+                        <span slot="state" slot-scope="record">
+                            {{record?'启用':'停用'}}
+                            <!-- {{record}} -->
+                        </span>
+                        <template slot="num" slot-scope="text, record, index">
+                            {{index+1}}
+                        </template>
+                        <span slot="action" slot-scope="text, record">
+                            <!-- <a @click="handleEdit(record)">修改</a> -->
+                            <!-- <a-divider type="vertical" /> -->
+                            <a @click="ok(record)">选择</a>
+                            <!-- <a-divider type="vertical" />
+                            <a-popconfirm title="确定删除吗?" @confirm="() => handleDelete(record.id)">
+                                <a>删除</a>
+                            </a-popconfirm> -->
+                        </span>
+                    </a-table>
+                </div>
+            </a-card>
+        </div>
+        <!-- 单位设置区域 -->
+        <!-- <SetUnit :unitVisible="unitVisible" @center="handleCancel" /> -->
+    </div>
+
+</template>
+<script>
+import { tree, delTree, goodBatchDel, goodSet } from '@/api/good'
+import { JeecgListMixin } from "@/mixins/JeecgListMixin";
+// import roomLayoutForm from './goodStock/goods'
+// import index from '/src/index.vue'
+// import stockTypeModel from './stockTypeModel.vue'
+// import Commodity from './moreSet/commodity.vue'
+// import GoodImg from './moreSet/goodImg.vue';
+// import moreSet from './moreSet/moreModal.vue'
+import { computed } from 'vue';
+// import SetUnit from './setUnit/index.vue'
+
+
+const tabListNoTitle=[
+        {
+          key: 'commodity',
+          tab: '商品小程序设置',
+        },
+        {
+          key: 'goodImg',
+          tab: '商品图片',
+        },
+        {
+          key: 'project',
+          tab: '餐饮设置',
+        },
+        {
+          key: 'game',
+          tab: '娱乐设置',
+        },
+      ]
+export default {
+    name: "goodList",
+    mixins: [JeecgListMixin],
+    components: {
+        // stockTypeModel,
+        // roomLayoutForm,
+        // SetUnit,
+        // moreSet,
+        // index
+        // Commodity,
+        // GoodImg
+      },
+    props:{
+        phone:{
+            default:''
+        },
+    },
+    data() {
+        return {
+            key: 'tab1',
+            noTitleKey: 'commodity',
+
+            checkedKeys: [''],
+            tabListNoTitle,
+            selectedKeys: [],
+            queryParam: {},
+            //单位对话框
+            unitVisible:false,
+            // 分页参数
+            ipagination: {
+                current: 1,
+                pageSize: 10,
+                pageSizeOptions: ["10", "20", "30"],
+                showTotal: (total, range) => {
+                    return range[0] + "-" + range[1] + " 共" + total + "条";
+                },
+                showQuickJumper: true,
+                showSizeChanger: true,
+                total: 0,
+            },
+            // 表头
+            columns: [
+                {
+                    title: "序号",
+                    align: "center",
+                    // dataIndex: "type",
+                    customCell:() => {
+                        return {
+                        style: {
+                            wordWrap:'break-word',
+                            wordBreak:'break-all',
+                            whiteSpace:'normal',
+                            minHeight:'50px',
+                            width: '50px',
+                        }
+                        }
+                    },
+                    scopedSlots: { customRender: 'num' }
+                },
+                {
+                    title: "离店日期",
+                    align: "center",
+                    dataIndex: "due_out_time",
+                    // customCell:() => {
+                    //     return {
+                    //     style: {
+                    //         wordWrap:'break-word',
+                    //         wordBreak:'break-all',
+                    //         whiteSpace:'normal',
+                    //         minHeight:'50px',
+                    //         width: '50px',
+                    //     }
+                    //     }
+                    // }
+                },
+                {
+                    title: "房型",
+                    align: "center",
+                    dataIndex: "layout_name",
+                    // customCell:() => {
+                    //     return {
+                    //     style: {
+                    //         wordWrap:'break-word',
+                    //         wordBreak:'break-all',
+                    //         whiteSpace:'normal',
+                    //         minHeight:'50px',
+                    //         width: '50px',
+                    //     }
+                    //     }
+                    // }
+                },
+                {
+                    title: "房号",
+                    align: "center",
+                    dataIndex: "room_name",
+                },
+                {
+                    title: "历史房价",
+                    align: "center",
+                    dataIndex: "price",
+                }
+                // {
+                //     title: '操作',
+                //     dataIndex: 'action',
+                //     key: 'action',
+                //     scopedSlots: { customRender: "action" },
+                //     align:'center',
+                //     // fixed: "right",
+                //     // width: 200,
+                // }
+            ],
+            url: {
+                // list: 'org.jeecg.modules.business/busMarketMember/list',
+                list:'/business/busRoomBookingOrders/ruzhu-history-list?phone=' + this.phone,
+                // list: "/rooms/cesRoomLayout/list?hotelId",
+                // delete: "/rooms/cesRoomLayout/remove",
+                delete:'/rooms/cesGoods/delete',
+                // deleteBatch: "/rooms/cesRoomLayout/deleteBatch",
+                deleteBatch:'/rooms/cesGoods/delBatch',
+                exportXlsUrl: "/rooms/cesRoomLayout/exportXls",
+                importExcelUrl:"rooms/cesRoomLayout/importExcel",
+            },
+            dictOptions: {},
+            superFieldList: [],
+            selectedRowKeys: [],
+            isorter: {
+                column: "createTime",
+                order: "desc",
+            },
+            stockTypeVisible:false,
+            // 选中的数据
+            beforeTree:null,
+            goodsSetVisible:false,//进退货弹窗
+            moreSetVisible:false,//更多设置弹窗
+            goodsSetData:{
+                number:0,
+                type:1
+            }
+        };
+    },
+    computed: {
+
+    },
+    watch: {
+
+    },
+    created() {
+        this.loadTree();
+    },
+    provide(){
+        return {
+            beforeTree:computed(() => this.beforeTree?this.beforeTree:{id:'0'}),
+            treeData:computed(()=> this.treeData),
+            dataSource:computed(()=> this.dataSource)
+        }
+    },
+    methods: {
+        // handleStockTypeModelManager(item,type) {
+        //     this.$refs.indexTable.visible = true
+        //     return
+        //     console.log(item, type)
+        //     this.beforeTree = null
+        //     if (item!='-1') {
+        //         this.beforeTree = item
+        //         this.beforeTree.editData = type ===2?true:false
+        //     }
+        //     console.log(this.beforeTree);
+        //     this.$refs.stockTypeModel.title = type === 1 ?"新增":"修改"
+        //     this.$refs.stockTypeModel.visible = true
+        // },
+        loadTree() {
+            var that = this
+            tree().then((res) => {
+                if (res.success) {
+                    this.treeData = res.result;
+                }
+            })
+        },
+        ok(record){
+            this.$emit('ok', record)
+        },
+        onExpand(expandedKeys) {
+            console.log('onExpand', expandedKeys);
+            // if not set autoExpandParent to false, if children expanded, parent can not collapse.
+            // or, you can remove all expanded children keys.
+        },
+        onSelect(selectedKeys, info) {
+            console.log('onSelect', info);
+            this.selectedKeys = selectedKeys;
+        },
+        /**
+         * 保存成功
+         */
+        onSave(){
+            this.loadTree()
+        },
+        /**
+         * 删除
+         */
+        confirmDel(id){
+            delTree({id:id}).then(res=>{
+                if (res.code && res.code==200) {
+                    this.$message.success('删除成功')
+                    this.loadTree()
+                }
+            })
+        },
+        //批量删除
+        goodBatchDel(){
+            console.log(this.selectedRowKeys);
+            if (this.selectedRowKeys.length==0) {
+                this.$message.info('请先选择要删除的数据')
+                return
+            }
+            this.$confirm({
+                title: '提示',
+                content: '确认要删除吗',
+                okText: '确认',
+                cancelText: '取消',
+                onOk:(e)=>{
+                    return goodBatchDel({idStr:this.selectedRowKeys.toString()}).then(res=>{
+                        if (res.code && res.code==200) {
+                            this.$message.success(res.message)
+                            this.loadData();
+                        }else{
+                            this.$message.error(res.message)
+                        }
+                    })
+                }
+            });
+        },
+        //单位设置区域
+        handleOk(e) {
+            // this.confirmLoading = true;
+            // setTimeout(() => {
+            //     this.visible = false;
+            //     this.confirmLoading = false;
+            // }, 2000);
+            this.unitVisible=false
+        },
+        handleCancel(e) {
+            console.log('Clicked cancel button',e);
+            this.unitVisible = false;
+        },
+        /**
+         * 进退货
+         */
+        goodsSet(){
+            this.goodsSetData = this.dataSource.filter(item=> item.id==this.selectedRowKeys.toString() )[0]
+            console.log(this.goodsSetData);
+            this.goodsSetVisible = true
+        },
+        goodChange(e){
+            console.log(e);
+            this.goodsSetData.type = e.target.value
+        },
+        //更多设置
+        moreSet(record){
+            console.log(this.$refs.modalSet);
+            this.$refs.modalSet.edit(record)
+            this.$refs.modalForm.disableSubmit = false;
+            // this.moreSetVisible = true
+        },
+        //更多设置确认
+        handleMoreSetOk(){
+
+        },
+        //更多设置切换卡片
+        onTabChange(key, type) {
+            console.log(key, type);
+            this[type] = key;
+        },
+
+        //进退货确认事件
+        handleGoodOk(){
+            console.log(this.goodsSetData);
+            if (!this.goodsSetData.type) {
+                this.goodsSetData.type = 1
+            }
+            let obj = {
+                hotelId:this.goodsSetData.hotelId,
+                goodId:this.goodsSetData.id,
+                type:this.goodsSetData.type,
+                goodNum:this.goodsSetData.goodNum,
+                remark:this.goodsSetData.remark?this.goodsSetData.remark:''
+            }
+            // this.goodsSetData.goodId = this.goodsSetData.id
+            goodSet(obj).then(res=>{
+                if (res.code && res.code==200) {
+                            this.$message.success(res.message)
+                            this.goodsSetVisible = false
+                            // this.goodsSetData = {}
+                            this.loadData();
+                        }else{
+                            this.$message.error(res.message)
+                        }
+            })
+
+        },
+        //进退货取消
+        handleGoodCancel(){
+            this.goodsSetVisible = false
+        },
+        submitForm(){}
+    },
+};
+</script>
+<style scoped>
+.back {
+    display: flex;
+    justify-content: space-between;
+}
+
+.back-left {
+    /* flex: 1 */
+}
+
+.back-right {
+    flex: 1;
+}
+
+.ant-tree li .ant-tree-node-content-wrapper {
+    height: auto !important;
+}
+
+.ant-tree li .ant-tree-node-content-wrapper.ant-tree-node-selected {
+    background-color: #bae7ff33;
+}</style>