|
@@ -12,7 +12,35 @@
|
|
|
></a-input>
|
|
></a-input>
|
|
|
</a-form-item>
|
|
</a-form-item>
|
|
|
</a-col>
|
|
</a-col>
|
|
|
- <a-col :span="6">
|
|
|
|
|
|
|
+ <a-col :span="3">
|
|
|
|
|
+ <a-form-item>
|
|
|
|
|
+ <a-select
|
|
|
|
|
+ placeholder="请选择房型"
|
|
|
|
|
+ v-model="queryParam.layoutId"
|
|
|
|
|
+ :allowClear="true">
|
|
|
|
|
+ <a-select-option
|
|
|
|
|
+ :value="item.id"
|
|
|
|
|
+ v-for="item in roomLayoutList"
|
|
|
|
|
+ :key="item.id">
|
|
|
|
|
+ {{ item.name }}
|
|
|
|
|
+ </a-select-option>
|
|
|
|
|
+ </a-select>
|
|
|
|
|
+ </a-form-item>
|
|
|
|
|
+ </a-col>
|
|
|
|
|
+ <a-col :span="2">
|
|
|
|
|
+ <a-form-item>
|
|
|
|
|
+ <a-select
|
|
|
|
|
+ placeholder="客人类型"
|
|
|
|
|
+ v-model="queryParam.customerType"
|
|
|
|
|
+ :allowClear="true">
|
|
|
|
|
+ <a-select-option :value="1"> 散客 </a-select-option>
|
|
|
|
|
+ <a-select-option :value="2"> 会员 </a-select-option>
|
|
|
|
|
+ <a-select-option :value="3"> 协议单位 </a-select-option>
|
|
|
|
|
+ <a-select-option :value="4"> 中介 </a-select-option>
|
|
|
|
|
+ </a-select>
|
|
|
|
|
+ </a-form-item>
|
|
|
|
|
+ </a-col>
|
|
|
|
|
+ <a-col :span="4">
|
|
|
<a-form-item label="">
|
|
<a-form-item label="">
|
|
|
<a-range-picker
|
|
<a-range-picker
|
|
|
format="YYYY-MM-DD"
|
|
format="YYYY-MM-DD"
|
|
@@ -24,18 +52,23 @@
|
|
|
</a-form-item>
|
|
</a-form-item>
|
|
|
</a-col>
|
|
</a-col>
|
|
|
|
|
|
|
|
- <a-col :span="6">
|
|
|
|
|
|
|
+ <a-col :span="5">
|
|
|
<a-form-item label="">
|
|
<a-form-item label="">
|
|
|
<a-radio-group v-model="queryParam.livingStatus" button-style="solid">
|
|
<a-radio-group v-model="queryParam.livingStatus" button-style="solid">
|
|
|
<a-radio-button value="0">全部</a-radio-button>
|
|
<a-radio-button value="0">全部</a-radio-button>
|
|
|
<a-radio-button value="-1">正常入住</a-radio-button>
|
|
<a-radio-button value="-1">正常入住</a-radio-button>
|
|
|
<a-radio-button value="1">已结</a-radio-button>
|
|
<a-radio-button value="1">已结</a-radio-button>
|
|
|
<a-radio-button value="2">先走未结</a-radio-button>
|
|
<a-radio-button value="2">先走未结</a-radio-button>
|
|
|
- <a-radio-button value="3">联房退房</a-radio-button>
|
|
|
|
|
|
|
+<!-- <a-radio-button value="3">联房退房</a-radio-button>-->
|
|
|
</a-radio-group>
|
|
</a-radio-group>
|
|
|
</a-form-item>
|
|
</a-form-item>
|
|
|
</a-col>
|
|
</a-col>
|
|
|
- <a-col :md="6" :sm="8">
|
|
|
|
|
|
|
+ <a-col :span="2">
|
|
|
|
|
+ <a-form-item label="">
|
|
|
|
|
+ <a-checkbox v-model="queryParam.onlyDebt">仅显示欠款</a-checkbox>
|
|
|
|
|
+ </a-form-item>
|
|
|
|
|
+ </a-col>
|
|
|
|
|
+ <a-col :span="4">
|
|
|
<span
|
|
<span
|
|
|
style="float: left; overflow: hidden"
|
|
style="float: left; overflow: hidden"
|
|
|
class="table-page-search-submitButtons"
|
|
class="table-page-search-submitButtons"
|
|
@@ -44,15 +77,13 @@
|
|
|
type="primary"
|
|
type="primary"
|
|
|
@click="searchQuery"
|
|
@click="searchQuery"
|
|
|
icon="search"
|
|
icon="search"
|
|
|
- >查询</a-button
|
|
|
|
|
- >
|
|
|
|
|
- <!-- <a-button
|
|
|
|
|
- type="primary"
|
|
|
|
|
- @click="searchReset"
|
|
|
|
|
- icon="reload"
|
|
|
|
|
- style="margin-left: 8px"
|
|
|
|
|
- >重置</a-button
|
|
|
|
|
- > -->
|
|
|
|
|
|
|
+ style="margin-right: 10px"
|
|
|
|
|
+ >查询</a-button>
|
|
|
|
|
+ <a-button
|
|
|
|
|
+ type="primary"
|
|
|
|
|
+ icon="download"
|
|
|
|
|
+ @click="handleExportXls('入住单')"
|
|
|
|
|
+ >导出</a-button>
|
|
|
</span>
|
|
</span>
|
|
|
</a-col>
|
|
</a-col>
|
|
|
</a-row>
|
|
</a-row>
|
|
@@ -78,6 +109,61 @@
|
|
|
class="j-table-force-nowrap"
|
|
class="j-table-force-nowrap"
|
|
|
@change="handleTableChange"
|
|
@change="handleTableChange"
|
|
|
>
|
|
>
|
|
|
|
|
+ <template slot="roomName" slot-scope="text, record">
|
|
|
|
|
+ <span :class="record.yuE < 0 ? 'textColor' : ''">
|
|
|
|
|
+ {{ text ? text : '排房' }}
|
|
|
|
|
+ </span>
|
|
|
|
|
+ </template>
|
|
|
|
|
+ <template slot="layoutName" slot-scope="text, record">
|
|
|
|
|
+ <span :class="record.yuE < 0 ? 'textColor' : ''">
|
|
|
|
|
+ {{ text }}
|
|
|
|
|
+ </span>
|
|
|
|
|
+ </template>
|
|
|
|
|
+ <template slot="customerName" slot-scope="text, record">
|
|
|
|
|
+ <span :class="record.yuE < 0 ? 'textColor' : ''">
|
|
|
|
|
+ {{ record.customerName + '/' + record.customerPhone }}
|
|
|
|
|
+ </span>
|
|
|
|
|
+ </template>
|
|
|
|
|
+ <template slot="settleType" slot-scope="text, record">
|
|
|
|
|
+ <span :class="record.yuE < 0 ? 'textColor' : ''">
|
|
|
|
|
+ {{ getSettleTypeText(record) }}
|
|
|
|
|
+ </span>
|
|
|
|
|
+ </template>
|
|
|
|
|
+ <template slot="customerType" slot-scope="text, record">
|
|
|
|
|
+ <span :class="record.yuE < 0 ? 'textColor' : ''">
|
|
|
|
|
+ {{ getCustomerTypeText(record) }}
|
|
|
|
|
+ </span>
|
|
|
|
|
+ </template>
|
|
|
|
|
+ <template slot="otype" slot-scope="text, record">
|
|
|
|
|
+ <span :class="record.yuE < 0 ? 'textColor' : ''">
|
|
|
|
|
+ {{ getOtypeText(record) }}
|
|
|
|
|
+ </span>
|
|
|
|
|
+ </template>
|
|
|
|
|
+ <template slot="arrivalTime" slot-scope="text, record">
|
|
|
|
|
+ <span :class="record.yuE < 0 ? 'textColor' : ''">
|
|
|
|
|
+ {{ text }}
|
|
|
|
|
+ </span>
|
|
|
|
|
+ </template>
|
|
|
|
|
+ <template slot="dueOutTime" slot-scope="text, record">
|
|
|
|
|
+ <span :class="record.yuE < 0 ? 'textColor' : ''">
|
|
|
|
|
+ {{ text }}
|
|
|
|
|
+ </span>
|
|
|
|
|
+ </template>
|
|
|
|
|
+ <template slot="price" slot-scope="text, record">
|
|
|
|
|
+ <span :class="record.yuE < 0 ? 'textColor' : ''">
|
|
|
|
|
+ {{ record.livingDayPrices && record.livingDayPrices.length > 0 ? record.livingDayPrices[0].price : '--' }}
|
|
|
|
|
+ </span>
|
|
|
|
|
+ </template>
|
|
|
|
|
+ <template slot="consumption" slot-scope="text, record">
|
|
|
|
|
+ <span :class="record.yuE < 0 ? 'textColor' : ''">
|
|
|
|
|
+ {{ record.yushou - record.yuE }}
|
|
|
|
|
+ </span>
|
|
|
|
|
+ </template>
|
|
|
|
|
+ <template slot="yushou" slot-scope="text, record">
|
|
|
|
|
+ <span :class="record.yuE < 0 ? 'textColor' : ''">
|
|
|
|
|
+ {{ text }}
|
|
|
|
|
+ </span>
|
|
|
|
|
+ </template>
|
|
|
<template slot="yuE" slot-scope="text, record">
|
|
<template slot="yuE" slot-scope="text, record">
|
|
|
<span :class="record.yuE < 0 ? 'textColor' : ''">
|
|
<span :class="record.yuE < 0 ? 'textColor' : ''">
|
|
|
{{ record.yuE }}
|
|
{{ record.yuE }}
|
|
@@ -162,98 +248,68 @@ export default {
|
|
|
title: '房号',
|
|
title: '房号',
|
|
|
align: 'center',
|
|
align: 'center',
|
|
|
dataIndex: 'roomName',
|
|
dataIndex: 'roomName',
|
|
|
- customRender: function (text, record) {
|
|
|
|
|
- return !text ? '排房' : text
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ scopedSlots: { customRender: 'roomName' }
|
|
|
|
|
+
|
|
|
},
|
|
},
|
|
|
{
|
|
{
|
|
|
title: '房型',
|
|
title: '房型',
|
|
|
align: 'center',
|
|
align: 'center',
|
|
|
- dataIndex: 'layoutName'
|
|
|
|
|
|
|
+ dataIndex: 'layoutName',
|
|
|
|
|
+ scopedSlots: { customRender: 'layoutName' }
|
|
|
},
|
|
},
|
|
|
{
|
|
{
|
|
|
title: '客人/电话',
|
|
title: '客人/电话',
|
|
|
align: 'center',
|
|
align: 'center',
|
|
|
dataIndex: 'customerName',
|
|
dataIndex: 'customerName',
|
|
|
- customRender: function (text, record) {
|
|
|
|
|
- return record.customerName + '/' + record.customerPhone
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ scopedSlots: { customRender: 'customerName' }
|
|
|
|
|
+ },
|
|
|
|
|
+ {
|
|
|
|
|
+ title: '状态',
|
|
|
|
|
+ align: 'center',
|
|
|
|
|
+ dataIndex: 'settleType',
|
|
|
|
|
+ scopedSlots: { customRender: 'settleType' }
|
|
|
},
|
|
},
|
|
|
{
|
|
{
|
|
|
title: '客人类型',
|
|
title: '客人类型',
|
|
|
align: 'center',
|
|
align: 'center',
|
|
|
dataIndex: 'customerType',
|
|
dataIndex: 'customerType',
|
|
|
- customRender: function (text) {
|
|
|
|
|
- if (text === 1) {
|
|
|
|
|
- return '散客'
|
|
|
|
|
- } else if (text === 2) {
|
|
|
|
|
- return '会员'
|
|
|
|
|
- } else if (text === 3) {
|
|
|
|
|
- return '协议单位'
|
|
|
|
|
- } else if (text === 4) {
|
|
|
|
|
- return '中介'
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ scopedSlots: { customRender: 'customerType' }
|
|
|
},
|
|
},
|
|
|
{
|
|
{
|
|
|
title: '入住类型',
|
|
title: '入住类型',
|
|
|
align: 'center',
|
|
align: 'center',
|
|
|
- dataIndex: 'isLiving',
|
|
|
|
|
- customRender: function (text, record) {
|
|
|
|
|
- if (record.livingDayPrices && record.livingDayPrices.length > 0) {
|
|
|
|
|
- return record.livingDayPrices[0].livingType === 1
|
|
|
|
|
- ? '全天'
|
|
|
|
|
- : '钟点'
|
|
|
|
|
- }
|
|
|
|
|
- if (record.bookingDayPrices && record.bookingDayPrices.length > 0) {
|
|
|
|
|
- return record.bookingDayPrices[0].livingType === 1
|
|
|
|
|
- ? '全天'
|
|
|
|
|
- : '钟点'
|
|
|
|
|
- }
|
|
|
|
|
- return '--'
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ dataIndex: 'otype',
|
|
|
|
|
+ scopedSlots: { customRender: 'otype' }
|
|
|
},
|
|
},
|
|
|
{
|
|
{
|
|
|
- title: '房价',
|
|
|
|
|
|
|
+ title: '预抵时间',
|
|
|
align: 'center',
|
|
align: 'center',
|
|
|
- dataIndex: 'createDate',
|
|
|
|
|
- customRender: function (text, record) {
|
|
|
|
|
- if (record.livingDayPrices && record.livingDayPrices.length > 0) {
|
|
|
|
|
- return record.livingDayPrices[0].price
|
|
|
|
|
- }
|
|
|
|
|
- if (record.bookingDayPrices && record.bookingDayPrices.length > 0) {
|
|
|
|
|
- return record.bookingDayPrices[0].price
|
|
|
|
|
- }
|
|
|
|
|
- return '--'
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ dataIndex: 'arrivalTime',
|
|
|
|
|
+ scopedSlots: { customRender: 'arrivalTime' }
|
|
|
},
|
|
},
|
|
|
- // {
|
|
|
|
|
- // title: "状态",
|
|
|
|
|
- // align: "center",
|
|
|
|
|
- // dataIndex: "createDate",
|
|
|
|
|
- // },
|
|
|
|
|
{
|
|
{
|
|
|
- title: '预抵时间',
|
|
|
|
|
|
|
+ title: '预离时间',
|
|
|
align: 'center',
|
|
align: 'center',
|
|
|
- dataIndex: 'arrivalTime'
|
|
|
|
|
|
|
+ dataIndex: 'dueOutTime',
|
|
|
|
|
+ scopedSlots: { customRender: 'dueOutTime' }
|
|
|
|
|
+
|
|
|
},
|
|
},
|
|
|
{
|
|
{
|
|
|
- title: '预离时间',
|
|
|
|
|
|
|
+ title: '房价',
|
|
|
align: 'center',
|
|
align: 'center',
|
|
|
- dataIndex: 'dueOutTime'
|
|
|
|
|
|
|
+ scopedSlots: { customRender: 'price' }
|
|
|
},
|
|
},
|
|
|
{
|
|
{
|
|
|
title: '消费合计',
|
|
title: '消费合计',
|
|
|
align: 'center',
|
|
align: 'center',
|
|
|
// dataIndex: 'yuE',
|
|
// dataIndex: 'yuE',
|
|
|
- customRender: function (text, record) {
|
|
|
|
|
- return record.yushou - record.yuE
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ scopedSlots: { customRender: 'consumption' }
|
|
|
},
|
|
},
|
|
|
{
|
|
{
|
|
|
title: '收款合计',
|
|
title: '收款合计',
|
|
|
align: 'center',
|
|
align: 'center',
|
|
|
dataIndex: 'yushou',
|
|
dataIndex: 'yushou',
|
|
|
|
|
+ scopedSlots: { customRender: 'yushou' }
|
|
|
},
|
|
},
|
|
|
{
|
|
{
|
|
|
title: '余额',
|
|
title: '余额',
|
|
@@ -275,17 +331,22 @@ export default {
|
|
|
list: '/business/busRoomBookingOrders/kedan-orders',
|
|
list: '/business/busRoomBookingOrders/kedan-orders',
|
|
|
delete: '/order/cesOrderMessage/delete',
|
|
delete: '/order/cesOrderMessage/delete',
|
|
|
deleteBatch: '/order/cesOrderMessage/deleteBatch',
|
|
deleteBatch: '/order/cesOrderMessage/deleteBatch',
|
|
|
- exportXlsUrl: '/order/cesOrderMessage/exportXls',
|
|
|
|
|
|
|
+ // exportXlsUrl: '/order/cesOrderMessage/exportXls',
|
|
|
|
|
+ exportXlsUrl: '/business/busRoomBookingOrders/exportXls2',
|
|
|
importExcelUrl: 'order/cesOrderMessage/importExcel'
|
|
importExcelUrl: 'order/cesOrderMessage/importExcel'
|
|
|
},
|
|
},
|
|
|
dictOptions: {},
|
|
dictOptions: {},
|
|
|
superFieldList: [],
|
|
superFieldList: [],
|
|
|
hotelList: [],
|
|
hotelList: [],
|
|
|
|
|
+ roomLayoutList: [],
|
|
|
queryParam: {
|
|
queryParam: {
|
|
|
type: 1,
|
|
type: 1,
|
|
|
startTime: moment(new Date()).format('YYYY-MM-DD'),
|
|
startTime: moment(new Date()).format('YYYY-MM-DD'),
|
|
|
endTime: moment(endDate).format('YYYY-MM-DD'),
|
|
endTime: moment(endDate).format('YYYY-MM-DD'),
|
|
|
- livingStatus: '0'
|
|
|
|
|
|
|
+ livingStatus: '0',
|
|
|
|
|
+ layoutId: undefined,
|
|
|
|
|
+ customerType: undefined,
|
|
|
|
|
+ onlyDebt: false
|
|
|
},
|
|
},
|
|
|
datetime: [
|
|
datetime: [
|
|
|
moment(new Date(), 'YYYY-MM-DD'),
|
|
moment(new Date(), 'YYYY-MM-DD'),
|
|
@@ -301,6 +362,14 @@ export default {
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
)
|
|
)
|
|
|
|
|
+ /* 房型 */
|
|
|
|
|
+ getAction('/rooms/cesRoomLayout/list', { pageSize: 99999, pageNo: 1 }).then(
|
|
|
|
|
+ (res) => {
|
|
|
|
|
+ if (res.success) {
|
|
|
|
|
+ this.roomLayoutList = res.result.records
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ )
|
|
|
},
|
|
},
|
|
|
computed: {
|
|
computed: {
|
|
|
importExcelUrl: function () {
|
|
importExcelUrl: function () {
|
|
@@ -308,6 +377,36 @@ export default {
|
|
|
}
|
|
}
|
|
|
},
|
|
},
|
|
|
methods: {
|
|
methods: {
|
|
|
|
|
+ getSettleTypeText(record) {
|
|
|
|
|
+ if (record.settleType === -1) {
|
|
|
|
|
+ return '正常入住'
|
|
|
|
|
+ } else if (record.settleType === 1) {
|
|
|
|
|
+ return '结账退房'
|
|
|
|
|
+ } else if (record.settleType === 2) {
|
|
|
|
|
+ return '未结退房'
|
|
|
|
|
+ }
|
|
|
|
|
+ return '--'
|
|
|
|
|
+ },
|
|
|
|
|
+ getCustomerTypeText(record) {
|
|
|
|
|
+ if (record.customerType === 1) {
|
|
|
|
|
+ return '散客'
|
|
|
|
|
+ } else if (record.customerType === 2) {
|
|
|
|
|
+ return '会员'
|
|
|
|
|
+ } else if (record.customerType === 3) {
|
|
|
|
|
+ return '协议单位'
|
|
|
|
|
+ } else if (record.customerType === 4) {
|
|
|
|
|
+ return '中介'
|
|
|
|
|
+ }
|
|
|
|
|
+ },
|
|
|
|
|
+ getOtypeText(record) {
|
|
|
|
|
+ if (record.otype === 1) {
|
|
|
|
|
+ return '全天'
|
|
|
|
|
+ } else if (record.otype === 2) {
|
|
|
|
|
+ return '钟点'
|
|
|
|
|
+ } else if (record.otype === 5) {
|
|
|
|
|
+ return '长租'
|
|
|
|
|
+ }
|
|
|
|
|
+ },
|
|
|
setOrderStatus(record) {
|
|
setOrderStatus(record) {
|
|
|
postAction('/business/busRoomBookingOrders/set-booking-status', {
|
|
postAction('/business/busRoomBookingOrders/set-booking-status', {
|
|
|
id: record.id,
|
|
id: record.id,
|