Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
S
SuperMan
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
1
Issues
1
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
罗超
SuperMan
Commits
fc032c40
Commit
fc032c40
authored
Mar 22, 2019
by
黄奎
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
酒店统计修改
parent
0f4c5b48
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
845 additions
and
637 deletions
+845
-637
roomReservations.vue
src/components/Hotel/roomReservations.vue
+423
-310
roomReservationsDetails.vue
src/components/Hotel/roomReservationsDetails.vue
+422
-327
No files found.
src/components/Hotel/roomReservations.vue
View file @
fc032c40
<
template
>
<div>
<div
class=
"query-box"
style=
"border-bottom: none;"
>
<ul>
<!--
<li><span><em>
线路
</em>
<el-select
v-model=
"msg.LineId"
filterable
:placeholder=
"$t('pub.pleaseSel')"
@
change=
"getLineTeamList(msg.LineId)"
>
<el-option
label=
"不限"
value=
'-1'
></el-option>
<el-option
v-for=
"item in LineList"
:label=
'item.LineName'
:value=
'item.LineID'
:key=
'item.LineID'
>
</el-option>
</el-select>
</span>
</li>
-->
<li><span><em>
系列
</em>
<el-select
v-model=
"msg.LineteamId"
filterable
:placeholder=
"$t('pub.pleaseSel')"
>
<el-option
label=
"不限"
value=
'-1'
></el-option>
<el-option
v-for=
"item in LineTeamList"
:label=
'item.LtName'
:value=
'item.LtID'
:key=
'item.LtID'
>
</el-option>
</el-select>
</span>
</li>
<li>
<span>
<em>
团号
</em><el-input
v-model=
'msg.TCNUM'
></el-input>
</span>
</li>
<li><span><em>
日期
</em><el-date-picker
v-model=
'msg.StartDate'
class=
'w135'
value-format=
"yyyy-MM-dd"
type=
"date"
></el-date-picker>
-
<el-date-picker
v-model=
'msg.EndDate'
class=
'w135'
value-format=
"yyyy-MM-dd"
type=
"date"
></el-date-picker>
</span>
</li>
<li>
<input
type=
"button"
class=
"normalBtn"
value=
"查询"
@
click=
"getList();resetPageIndex()"
/>
</li>
</ul>
</div>
<div
style=
"width: 100%; overflow-x: auto;padding-bottom: 10px; "
class=
"ownScrollbarStyle"
>
<table
border=
"0"
cellspacing=
"1"
cellpadding=
"0"
class=
"roomReservationsTalbe"
v-loading=
'loading'
>
<tr>
<th
width=
"w50"
>
序号
</th>
<th
width=
"120"
>
出发地
</th>
<th
width=
"120"
>
航班时间
</th>
<th
width=
"80"
>
公司团号
</th>
<th
width=
"120"
>
机位总数/(Y/E/F)
</th>
<th
width=
"120"
>
占床/不占床
</th>
<th
width=
"80"
>
实际用房数
</th>
<th></th>
<th
v-for=
'item in thLengthTitle'
>
{{
item
}}
</th>
<th>
备注
</th>
<th>
操作
</th>
</tr>
<tr
v-if=
"list.length==0"
>
<td
colspan=
"10"
>
暂无数据
</td>
</tr>
<tbody
v-for=
"(outItem,outindex) in list"
:class=
"
{roomReservationsSplitTrCss:outindex%2!=0}">
<template
v-for=
"(item,index) in outItem.StaticsReportList"
>
<tr>
<td
:rowspan=
"2*outItem.StaticsReportList.length"
v-if=
'index==0'
>
<div
style=
"max-width: 100px; min-width: 50px; "
>
{{
outindex
+
1
}}
</div>
<div
v-if=
'outItem.StaticsReportList.length>1'
class=
"w100"
>
合团号:
{{
outItem
.
NewCombinationNum
}}
</div>
</td>
<td><div
class=
"w80"
>
{{
item
.
StartCityNames
}}
</div></td>
<td><div
class=
"w80"
>
{{
item
.
FlightDate
}}
<el-popover
popper-class=
"roomReservations_tripDetails"
width=
"550"
trigger=
"click"
>
<table
width=
"100%"
border=
"0"
cellspacing=
"0"
cellpadding=
"0"
>
<tr
class=
"_color_666"
style=
"text-align:center;"
>
<th
width=
"60"
>
{{
$t
(
'Airticket.Air_segment'
)
}}
</th>
<th
width=
"80"
>
{{
$t
(
'system.query_flightNum'
)
}}
</th>
<th
width=
"150"
>
起飞时间
</th>
<th
width=
"80"
>
到达时间
</th>
<th
width=
"100"
>
经停城市
</th>
</tr>
<tr
v-for=
"(ds,din) in item.FlightList"
:key=
"din"
style=
"text-align:center;"
>
<td
class=
"_d_name _color_666"
>
<span
v-if=
"din==0"
>
{{
$t
(
'Airticket.Air_go'
)
}}
</span>
<span
v-else-if=
"din==item.FlightList.length-1"
>
{{
$t
(
'Airticket.Air_returnTrip'
)
}}
</span>
<span
v-else-if=
"din>0 && din!=item.FlightList.length-1"
>
{{
$t
(
'Airticket.Air_transit'
)
}}
</span>
</td>
<td>
<div>
{{
ds
.
Flight_number
}}
</div>
<div
style=
"margin-top:5px;"
>
{{
ds
.
AlName
}}
</div>
</td>
<td>
<div>
{{
ds
.
FlightDate
}}
{{
ds
.
Departure_time
}}
</div>
<div
style=
"margin-top:5px;"
>
{{
ds
.
dName
}}
</div>
</td>
<td>
<div>
{{
ds
.
FlightArrivalTime
}}
{{
ds
.
Arrival_time
}}
</div>
<div
style=
"margin-top:5px;"
>
{{
ds
.
aName
}}
</div>
</td>
<td>
{{
ds
.
StopoverName
}}
</td>
</tr>
</table>
<el-button
slot=
"reference"
class=
"normalBtn mt5"
style=
'height:24px; padding: 0 10px; background: #2AAEF2; border-color: #2AAEF2;'
>
详情
</el-button>
</el-popover>
</div></td>
<td><div
class=
"w120 link"
>
<p
@
click=
"goUrlT('productQuery',item.TCNUMS,'产品查询')"
>
{{
item
.
TCNUMS
}}
</p>
</div></td>
<td><div
class=
"w120 link"
>
<p
@
click=
"goUrlT('RegistrationList',item.TCIDS,'报名清单')"
>
{{
item
.
TotalSeat
}}
/
{{
item
.
CommonReport
.
HouseStatistics
.
RealityYSeatNum
}}
/
{{
item
.
CommonReport
.
HouseStatistics
.
RealityESeatNum
}}
/
{{
item
.
CommonReport
.
HouseStatistics
.
RealityFSeatNum
}}
</p>
</div></td>
<td><div
class=
"w80 link"
>
<p
@
click=
"goUrlT('passengerHouse',item.TCIDS,'房间分配')"
>
{{
item
.
CommonReport
.
HouseStatistics
.
NeedBed
}}
/
{{
item
.
CommonReport
.
HouseStatistics
.
NoNeedBed
}}
</p>
</div></td>
<td><div
class=
"w80"
>
{{
item
.
CommonReport
.
HouseStatistics
.
RealityRoomNum
}}
</div></td>
<td
style=
"vertical-align: top;"
>
<div
class=
"w260"
>
<p
class=
"pDateStyle"
>
时间
</p>
<p
class=
"pDateStyle"
style=
"height: 50px!important; line-height: 50px;"
>
酒店名称
</p>
<p
class=
"pDateStyle"
>
用房数
</p>
<p
class=
"pDateStyle"
>
房间预定数
</p>
<p
class=
"pDateStyle"
>
<span
v-show=
"item.CommonReport.HouseStatistics.HouseTypeList.length==0"
>
房型
</span>
<span
v-for=
"x in item.CommonReport.HouseStatistics.HouseTypeList"
>
{{
x
.
HouseTypeName
}}
</span>
</p>
</div>
</td>
<td
v-for=
"(x,ii) in item.CommonReport.HotelList"
style=
"vertical-align: top;"
>
<div
class=
"w150"
v-if=
'ii
<item
.
CommonReport
.
valueLength
'
>
<p
class=
"pDateStyle"
>
{{
x
.
CheckInDateStr
}}
</p>
<p
@
click=
"goUrlR('HotelManagement',x.HotelId,'酒店管理')"
class=
"pDateStyle phoverStype ownScrollbarStyle"
style=
"height: 50px!important; overflow:auto;"
>
<span
v-if=
'x.HotelOrderState==0'
class=
"colorE95252"
>
(待定)
</span>
{{
x
.
NewHotelName
}}
</p>
<p
class=
"pDateStyle"
>
{{
item
.
CommonReport
.
HouseStatistics
.
RealityRoomNum
}}
</p>
<p
class=
"pDateStyle"
>
<span
v-for=
"q in x.OrderDetailsList"
>
{{
q
.
HouseTypeCount
}}
</span>
</p>
<p
class=
"pDateStyle"
>
<span
v-for=
"x in item.CommonReport.HouseStatistics.HouseTypeList"
>
{{
x
.
HouseTypeCount
}}
</span>
<span
v-if=
"item.CommonReport.HouseStatistics.HouseTypeList.length==0"
>
暂无订房
</span>
</p>
</div>
<div>
<div
class=
"query-box"
style=
"border-bottom: none;"
>
<ul>
</td>
<td>
<div
class=
"w200"
>
{{
item
.
Remarks
}}
</div>
</td>
<td>
<div
class=
"w80 link"
>
<p
@
click=
"goUrl('roomReservationsDetails',item,'订房详情')"
>
详情
</p>
</div>
</td>
</tr>
<li><span><em>
系列
</em>
<el-select
v-model=
"msg.LineteamId"
filterable
:placeholder=
"$t('pub.pleaseSel')"
>
<el-option
label=
"不限"
value=
'-1'
></el-option>
<el-option
v-for=
"item in LineTeamList"
:label=
'item.LtName'
:value=
'item.LtID'
:key=
'item.LtID'
>
</el-option>
</el-select>
</span>
</li>
<li>
<span>
<em>
团号
</em>
<el-input
v-model=
'msg.TCNUM'
></el-input>
</span>
</li>
<li><span><em>
日期
</em>
<el-date-picker
v-model=
'msg.StartDate'
class=
'w135'
value-format=
"yyyy-MM-dd"
type=
"date"
></el-date-picker>
-
<el-date-picker
v-model=
'msg.EndDate'
class=
'w135'
value-format=
"yyyy-MM-dd"
type=
"date"
></el-date-picker>
</span>
</li>
<li>
<input
type=
"button"
class=
"normalBtn"
value=
"查询"
@
click=
"getList();resetPageIndex()"
/>
</li>
</ul>
</div>
<div
style=
"width: 100%; overflow-x: auto;padding-bottom: 10px; "
class=
"ownScrollbarStyle"
>
<table
border=
"0"
cellspacing=
"1"
cellpadding=
"0"
class=
"roomReservationsTalbe"
v-loading=
'loading'
>
<tr>
<td
:colspan=
"colspanTotal"
style=
"text-align: left!important;padding-left: 20px;"
>
<div
class=
"link"
>
<p
@
click=
"goUrlT('productQuery',item.TCNUMS,'产品查询')"
>
{{
item
.
Titles
}}
</p>
<div
v-show=
"outItem.StaticsReportList[0].DMCRemark!=''"
class=
"colorE95252"
>
地接备注:
{{
outItem
.
StaticsReportList
[
0
].
DMCRemark
}}
</div>
</div>
</td>
<th
width=
"w50"
>
序号
</th>
<th
width=
"120"
>
出发地
</th>
<th
width=
"120"
>
航班时间
</th>
<th
width=
"80"
>
公司团号
</th>
<th
width=
"120"
>
机位总数/(Y/E/F)
</th>
<th
width=
"120"
>
占床/不占床
</th>
<th
width=
"80"
>
实际用房数
</th>
<th></th>
<th
v-for=
'item in thLengthTitle'
>
{{
item
}}
</th>
<th>
备注
</th>
<th>
操作
</th>
</tr>
<tr
v-if=
"list.length==0"
>
<td
colspan=
"10"
>
暂无数据
</td>
</tr>
</
template
>
</tbody>
</table>
</div>
<el-pagination
background
@
current-change=
"handleCurrentChange"
:current-page
.
sync=
"currentPage"
layout=
"total,prev, pager, next, jumper"
:page-size=
msg.pageSize
:total=
total
></el-pagination>
</div>
<tbody
v-for=
"(outItem,outindex) in list"
:class=
"
{roomReservationsSplitTrCss:outindex%2!=0}">
<template
v-for=
"(item,index) in outItem.StaticsReportList"
>
<tr>
<td
:rowspan=
"2*outItem.StaticsReportList.length"
v-if=
'index==0'
>
<div
style=
"max-width: 100px; min-width: 50px; "
>
{{
outindex
+
1
}}
</div>
<div
v-if=
'outItem.StaticsReportList.length>1'
class=
"w100"
>
合团号:
{{
outItem
.
NewCombinationNum
}}
</div>
</td>
<td>
<div
class=
"w80"
>
{{
item
.
StartCityNames
}}
</div>
</td>
<td>
<div
class=
"w80"
>
{{
item
.
FlightDate
}}
<el-popover
popper-class=
"roomReservations_tripDetails"
width=
"550"
trigger=
"click"
>
<table
width=
"100%"
border=
"0"
cellspacing=
"0"
cellpadding=
"0"
>
<tr
class=
"_color_666"
style=
"text-align:center;"
>
<th
width=
"60"
>
{{
$t
(
'Airticket.Air_segment'
)
}}
</th>
<th
width=
"80"
>
{{
$t
(
'system.query_flightNum'
)
}}
</th>
<th
width=
"150"
>
起飞时间
</th>
<th
width=
"80"
>
到达时间
</th>
<th
width=
"100"
>
经停城市
</th>
</tr>
<tr
v-for=
"(ds,din) in item.FlightList"
:key=
"din"
style=
"text-align:center;"
>
<td
class=
"_d_name _color_666"
>
<span
v-if=
"din==0"
>
{{
$t
(
'Airticket.Air_go'
)
}}
</span>
<span
v-else-if=
"din==item.FlightList.length-1"
>
{{
$t
(
'Airticket.Air_returnTrip'
)
}}
</span>
<span
v-else-if=
"din>0 && din!=item.FlightList.length-1"
>
{{
$t
(
'Airticket.Air_transit'
)
}}
</span>
</td>
<td>
<div>
{{
ds
.
Flight_number
}}
</div>
<div
style=
"margin-top:5px;"
>
{{
ds
.
AlName
}}
</div>
</td>
<td>
<div>
{{
ds
.
FlightDate
}}
{{
ds
.
Departure_time
}}
</div>
<div
style=
"margin-top:5px;"
>
{{
ds
.
dName
}}
</div>
</td>
<td>
<div>
{{
ds
.
FlightArrivalTime
}}
{{
ds
.
Arrival_time
}}
</div>
<div
style=
"margin-top:5px;"
>
{{
ds
.
aName
}}
</div>
</td>
<td>
{{
ds
.
StopoverName
}}
</td>
</tr>
</table>
<el-button
slot=
"reference"
class=
"normalBtn mt5"
style=
'height:24px; padding: 0 10px; background: #2AAEF2; border-color: #2AAEF2;'
>
详情
</el-button>
</el-popover>
</div>
</td>
<td>
<div
class=
"w120 link"
>
<p
@
click=
"goUrlT('productQuery',item.TCNUMS,'产品查询')"
>
{{
item
.
TCNUMS
}}
</p>
</div>
</td>
<td>
<div
class=
"w120 link"
>
<p
@
click=
"goUrlT('RegistrationList',item.TCIDS,'报名清单')"
>
{{
item
.
TotalSeat
}}
/
{{
item
.
CommonReport
.
HouseStatistics
.
RealityYSeatNum
}}
/
{{
item
.
CommonReport
.
HouseStatistics
.
RealityESeatNum
}}
/
{{
item
.
CommonReport
.
HouseStatistics
.
RealityFSeatNum
}}
</p>
</div>
</td>
<td>
<div
class=
"w80 link"
>
<p
@
click=
"goUrlT('passengerHouse',item.TCIDS,'房间分配')"
>
{{
item
.
CommonReport
.
HouseStatistics
.
NeedBed
}}
/
{{
item
.
CommonReport
.
HouseStatistics
.
NoNeedBed
}}
</p>
</div>
</td>
<td>
<div
class=
"w80"
>
{{
item
.
CommonReport
.
HouseStatistics
.
RealityRoomNum
}}
</div>
</td>
<td
style=
"vertical-align: top;"
>
<div
class=
"w260"
>
<p
class=
"pDateStyle"
>
时间
</p>
<p
class=
"pDateStyle"
style=
"height: 50px!important; line-height: 50px;"
>
酒店名称
</p>
<p
class=
"pDateStyle"
>
用房数
</p>
<p
class=
"pDateStyle"
>
房间预定数
</p>
<p
class=
"pDateStyle"
>
<span
v-show=
"item.CommonReport.HouseStatistics.HouseTypeList.length==0"
>
房型
</span>
<span
v-for=
"x in item.CommonReport.HouseStatistics.HouseTypeList"
>
{{
x
.
HouseTypeName
}}
</span>
</p>
</div>
</td>
<td
v-for=
"(x,ii) in item.CommonReport.HotelList"
style=
"vertical-align: top;"
>
<div
class=
"w150"
v-if=
'ii
<item
.
CommonReport
.
valueLength
'
>
<p
class=
"pDateStyle"
>
{{
x
.
CheckInDateStr
}}
</p>
<p
@
click=
"goUrlR('HotelManagement',x.HotelId,'酒店管理')"
class=
"pDateStyle phoverStype ownScrollbarStyle"
style=
"height: 50px!important; overflow:auto;"
>
<span
v-if=
'x.HotelOrderState==0'
class=
"colorE95252"
>
(待定)
</span>
{{
x
.
NewHotelName
}}
</p>
<p
class=
"pDateStyle"
>
{{
item
.
CommonReport
.
HouseStatistics
.
RealityRoomNum
}}
</p>
<p
class=
"pDateStyle"
>
<span
v-for=
"q in x.OrderDetailsList"
>
{{
q
.
HouseTypeCount
}}
</span>
</p>
<p
class=
"pDateStyle"
>
<span
v-for=
"x in item.CommonReport.HouseStatistics.HouseTypeList"
>
{{
x
.
HouseTypeCount
}}
</span>
<span
v-if=
"item.CommonReport.HouseStatistics.HouseTypeList.length==0"
>
暂无订房
</span>
</p>
</div>
</td>
<td>
<div
class=
"w200"
>
{{
item
.
Remarks
}}
</div>
</td>
<td>
<div
class=
"w80 link"
>
<p
@
click=
"goUrl('roomReservationsDetails',item,'订房详情')"
>
详情
</p>
</div>
</td>
</tr>
<tr>
<td
:colspan=
"colspanTotal"
style=
"text-align: left!important;padding-left: 20px;"
>
<div
class=
"link"
>
<p
@
click=
"goUrlT('productQuery',item.TCNUMS,'产品查询')"
>
{{
item
.
Titles
}}
</p>
<div
v-show=
"outItem.StaticsReportList[0].DMCRemark!=''"
class=
"colorE95252"
>
地接备注:
{{
outItem
.
StaticsReportList
[
0
].
DMCRemark
}}
</div>
</div>
</td>
</tr>
</
template
>
</tbody>
</table>
</div>
<el-pagination
background
@
current-change=
"handleCurrentChange"
:current-page
.
sync=
"currentPage"
layout=
"total,prev, pager, next, jumper"
:page-size=
msg.pageSize
:total=
total
></el-pagination>
</div>
</template>
<
script
>
export
default
{
data
()
{
return
{
loading
:
false
,
currentPage
:
1
,
total
:
0
,
msg
:{
pageIndex
:
1
,
pageSize
:
5
,
SelectType
:
1
,
LineId
:
14
,
LineteamId
:
"-1"
,
StartDate
:
''
,
EndDate
:
''
},
LineList
:
[],
LineTeamList
:
[],
thLengthTitle
:[],
list
:[],
colspanTotal
:
0
,
}
},
methods
:
{
getLineList
()
{
this
.
apipost
(
"line_post_GetAllList"
,
{},
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
LineList
=
res
.
data
.
data
;
}
else
{
this
.
$message
.
error
(
res
.
data
.
message
);
}
});
},
//获取系列列表
getLineTeamList
(
lineId
)
{
this
.
LineTeamList
=
[];
this
.
apipost
(
"team_post_GetList"
,
{
lineID
:
14
,
isTOOP
:
1
export
default
{
data
()
{
return
{
loading
:
false
,
currentPage
:
1
,
total
:
0
,
msg
:
{
pageIndex
:
1
,
pageSize
:
5
,
SelectType
:
1
,
LineId
:
14
,
LineteamId
:
"-1"
,
StartDate
:
''
,
EndDate
:
''
},
res
=>
{
LineList
:
[],
LineTeamList
:
[],
thLengthTitle
:
[],
list
:
[],
colspanTotal
:
0
,
}
},
methods
:
{
getLineList
()
{
this
.
apipost
(
"line_post_GetAllList"
,
{},
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
LineList
=
res
.
data
.
data
;
}
else
{
this
.
$message
.
error
(
res
.
data
.
message
);
}
});
},
//获取系列列表
getLineTeamList
(
lineId
)
{
this
.
LineTeamList
=
[];
this
.
apipost
(
"team_post_GetList"
,
{
lineID
:
14
,
isTOOP
:
1
},
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
msg
.
LineteamId
=
"-1"
;
this
.
LineTeamList
=
res
.
data
.
data
;
}
}
);
},
goUrlR
(
path
,
obj
,
title
)
{
this
.
$router
.
push
({
name
:
path
,
query
:
{
"ID"
:
obj
,
blank
:
'y'
,
tab
:
title
}
})
},
goUrlT
(
path
,
obj
,
title
)
{
this
.
$router
.
push
({
name
:
path
,
query
:
{
"id"
:
obj
,
blank
:
'y'
,
tab
:
title
}
})
},
goUrl
(
path
,
obj
,
title
)
{
this
.
$router
.
push
({
name
:
path
,
query
:
{
"id"
:
obj
.
TCIDS
,
'TCNUM'
:
obj
.
TCNUMS
,
'flightTotal'
:
obj
.
TotalSeat
,
'GuestNum'
:
obj
.
CommonReport
.
HouseStatistics
.
RealityNum
,
'NewCombinationNum'
:
obj
.
NewCombinationNum
,
blank
:
'y'
,
tab
:
title
}
})
},
handleCurrentChange
(
val
)
{
this
.
msg
.
pageIndex
=
val
;
this
.
getList
();
},
resetPageIndex
()
{
this
.
msg
.
pageIndex
=
1
;
this
.
currentPage
=
1
;
},
getList
()
{
this
.
loading
=
true
this
.
apipost
(
'dmcstatistics_post_GetUniteCombinationNumService'
,
this
.
msg
,
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
msg
.
LineteamId
=
"-1"
;
this
.
LineTeamList
=
res
.
data
.
data
;
this
.
loading
=
false
console
.
log
(
res
.
data
.
data
.
pageData
.
data
)
this
.
total
=
res
.
data
.
data
.
count
this
.
list
=
res
.
data
.
data
.
pageData
.
data
this
.
thLengthArr
=
[]
this
.
thLengthTitle
=
[]
this
.
colspanTotal
=
res
.
data
.
data
.
pageData
.
columnsCount
+
9
for
(
let
i
=
1
;
i
<=
res
.
data
.
data
.
pageData
.
columnsCount
;
i
++
)
{
this
.
thLengthTitle
.
push
(
'第'
+
i
+
'晚'
)
}
this
.
list
.
forEach
(
outItem
=>
{
outItem
.
StaticsReportList
.
forEach
(
item
=>
{
item
.
CommonReport
[
'valueLength'
]
=
item
.
CommonReport
.
HotelList
.
length
if
(
item
.
CommonReport
.
HotelList
.
length
<
res
.
data
.
data
.
pageData
.
columnsCount
)
{
let
_cha
=
res
.
data
.
data
.
pageData
.
columnsCount
-
item
.
CommonReport
.
HotelList
.
length
let
_chaArr
=
new
Array
()
for
(
let
i
=
0
;
i
<
_cha
;
i
++
)
{
_chaArr
.
push
({
'HotelName'
:
''
})
}
item
.
CommonReport
.
HotelList
=
item
.
CommonReport
.
HotelList
.
concat
(
_chaArr
)
}
else
{
}
})
})
// this.list.forEach(item=>{
// item.CommonReport['valueLength']=item.CommonReport.HotelList.length
// if(item.CommonReport.HotelList.length
<
res
.
data
.
data
.
pageData
.
columnsCount
){
// let _cha=res.data.data.pageData.columnsCount-item.CommonReport.HotelList.length
// let _chaArr=new Array()
// for (let i=0;i
<
_cha
;
i
++
)
{
// _chaArr.push({'HotelName':''})
// }
// item.CommonReport.HotelList=item.CommonReport.HotelList.concat(_chaArr)
// console.log(item.CommonReport)
// }else{
//
// }
// })
}
else
{
this
.
loading
=
false
this
.
$message
.
error
(
res
.
data
.
message
)
}
}
);
},
goUrlR
(
path
,
obj
,
title
){
this
.
$router
.
push
({
name
:
path
,
query
:{
"ID"
:
obj
,
blank
:
'y'
,
tab
:
title
}})
},
goUrlT
(
path
,
obj
,
title
){
this
.
$router
.
push
({
name
:
path
,
query
:{
"id"
:
obj
,
blank
:
'y'
,
tab
:
title
}})
},
goUrl
(
path
,
obj
,
title
){
this
.
$router
.
push
({
name
:
path
,
query
:{
"id"
:
obj
.
TCIDS
,
'TCNUM'
:
obj
.
TCNUMS
,
'flightTotal'
:
obj
.
TotalSeat
,
'GuestNum'
:
obj
.
CommonReport
.
HouseStatistics
.
RealityNum
,
'NewCombinationNum'
:
obj
.
NewCombinationNum
,
blank
:
'y'
,
tab
:
title
}})
},
handleCurrentChange
(
val
)
{
this
.
msg
.
pageIndex
=
val
;
this
.
getList
();
},
resetPageIndex
()
{
this
.
msg
.
pageIndex
=
1
;
this
.
currentPage
=
1
;
},
getList
(){
this
.
loading
=
true
this
.
apipost
(
'dmcstatistics_post_GetUniteCombinationNumService'
,
this
.
msg
,
res
=>
{
if
(
res
.
data
.
resultCode
==
1
){
this
.
loading
=
false
console
.
log
(
res
.
data
.
data
.
pageData
.
data
)
this
.
total
=
res
.
data
.
data
.
count
this
.
list
=
res
.
data
.
data
.
pageData
.
data
this
.
thLengthArr
=
[]
this
.
thLengthTitle
=
[]
this
.
colspanTotal
=
res
.
data
.
data
.
pageData
.
columnsCount
+
9
for
(
let
i
=
1
;
i
<=
res
.
data
.
data
.
pageData
.
columnsCount
;
i
++
){
this
.
thLengthTitle
.
push
(
'第'
+
i
+
'晚'
)
}
this
.
list
.
forEach
(
outItem
=>
{
outItem
.
StaticsReportList
.
forEach
(
item
=>
{
item
.
CommonReport
[
'valueLength'
]
=
item
.
CommonReport
.
HotelList
.
length
if
(
item
.
CommonReport
.
HotelList
.
length
<
res
.
data
.
data
.
pageData
.
columnsCount
){
let
_cha
=
res
.
data
.
data
.
pageData
.
columnsCount
-
item
.
CommonReport
.
HotelList
.
length
let
_chaArr
=
new
Array
()
for
(
let
i
=
0
;
i
<
_cha
;
i
++
)
{
_chaArr
.
push
({
'HotelName'
:
''
})
}
item
.
CommonReport
.
HotelList
=
item
.
CommonReport
.
HotelList
.
concat
(
_chaArr
)
}
else
{
}
})
})
// this.list.forEach(item=>{
// item.CommonReport['valueLength']=item.CommonReport.HotelList.length
// if(item.CommonReport.HotelList.length
<
res
.
data
.
data
.
pageData
.
columnsCount
){
// let _cha=res.data.data.pageData.columnsCount-item.CommonReport.HotelList.length
// let _chaArr=new Array()
// for (let i=0;i
<
_cha
;
i
++
)
{
// _chaArr.push({'HotelName':''})
// }
// item.CommonReport.HotelList=item.CommonReport.HotelList.concat(_chaArr)
// console.log(item.CommonReport)
// }else{
//
// }
// })
}
else
{
this
.
loading
=
false
this
.
$message
.
error
(
res
.
data
.
message
)
}
},
err
=>
{})
},
},
err
=>
{})
},
},
beforeCreate
(){
beforeCreate
()
{
},
mounted
()
{
let
myDate
=
new
Date
();
let
nowDate
=
let
myDate
=
new
Date
();
let
nowDate
=
myDate
.
getFullYear
()
+
"-"
+
parseInt
(
myDate
.
getMonth
()
+
1
)
+
"-"
+
myDate
.
getDate
();
this
.
msg
.
StartDate
=
nowDate
;
this
.
getList
()
// this.getLineList()
this
.
getLineTeamList
()
},
}
this
.
msg
.
StartDate
=
nowDate
;
this
.
getList
()
// this.getLineList()
this
.
getLineTeamList
()
},
}
</
script
>
<
style
>
.roomReservationsSplitTrCss
td
{
background
:
#eee
!important
;}
.roomReservationsTalbe
{
background
:
#ccc
;}
.roomReservationsTalbe
tr
th
{
background
:
#E6E6E6
;
height
:
40px
;
font-size
:
12px
;
color
:
#333
;}
.roomReservationsTalbe
tr
{
background
:
#fff
;
text-align
:
center
;
height
:
40px
;}
.roomReservationsTalbe
tr
td
{
font-size
:
12px
;}
.roomReservationsTalbe
tr
td
.pDateStyle
{
border-bottom
:
1px
solid
#ccc
;
min-height
:
24px
;
line-height
:
24px
;
margin-top
:
0
;
box-sizing
:
content-box
;
padding
:
0
10px
;}
.roomReservationsTalbe
tr
td
.pDateStyle
:last-child
{
border-bottom
:
none
;}
.roomReservationsTalbe
tr
td
.pDateStyle
>
span
:after
{
content
:
'/'
;}
.roomReservationsTalbe
tr
td
.pDateStyle
>
span
:last-child:after
{
content
:
''
}
.roomReservationsTalbe
tr
td
.link
p
:hover
{
text-decoration
:
underline
;
cursor
:
pointer
;}
.roomReservationsTalbe
tr
td
.phoverStype
:hover
{
text-decoration
:
underline
;
cursor
:
pointer
;}
.roomReservations_tripDetails
{
padding
:
0
;
box-shadow
:
0px
1px
3px
0px
#dedede
;
max-height
:
400px
;
overflow-y
:
auto
;}
.roomReservations_tripDetails
.popper__arrow
::after
{
border-bottom-color
:
#ededed
!important
;}
.roomReservations_tripDetails
table
{
padding
:
10px
0
0
20px
;
background-color
:
#ededed
;
border-collapse
:
collapse
;
border
:
1px
solid
#d2d2d2
;
font-size
:
12px
;}
.roomReservations_tripDetails
table
th
{
background-color
:
#ededed
;
padding
:
5px
;}
.roomReservations_tripDetails
table
td
{
background-color
:
#ffffff
;
padding
:
9px
15px
;
color
:
#333333
;
border
:
1px
solid
#d2d2d2
;}
.roomReservations_tripDetails
table
td
._d_name
{
background-color
:
#ededed
;}
.roomReservations_tripDetails
table
._color_666
{
color
:
#666666
;}
.roomReservations_tripDetails
table
tr
._color_666
th
{
padding
:
9px
15px
;}
.roomReservationsSplitTrCss
td
{
background
:
#eee
!important
;
}
.roomReservationsTalbe
{
background
:
#ccc
;
}
.roomReservationsTalbe
tr
th
{
background
:
#E6E6E6
;
height
:
40px
;
font-size
:
12px
;
color
:
#333
;
}
.roomReservationsTalbe
tr
{
background
:
#fff
;
text-align
:
center
;
height
:
40px
;
}
.roomReservationsTalbe
tr
td
{
font-size
:
12px
;
}
.roomReservationsTalbe
tr
td
.pDateStyle
{
border-bottom
:
1px
solid
#ccc
;
min-height
:
24px
;
line-height
:
24px
;
margin-top
:
0
;
box-sizing
:
content-box
;
padding
:
0
10px
;
}
.roomReservationsTalbe
tr
td
.pDateStyle
:last-child
{
border-bottom
:
none
;
}
.roomReservationsTalbe
tr
td
.pDateStyle
>
span
:after
{
content
:
'/'
;
}
.roomReservationsTalbe
tr
td
.pDateStyle
>
span
:last-child:after
{
content
:
''
}
.roomReservationsTalbe
tr
td
.link
p
:hover
{
text-decoration
:
underline
;
cursor
:
pointer
;
}
.roomReservationsTalbe
tr
td
.phoverStype
:hover
{
text-decoration
:
underline
;
cursor
:
pointer
;
}
.roomReservations_tripDetails
{
padding
:
0
;
box-shadow
:
0px
1px
3px
0px
#dedede
;
max-height
:
400px
;
overflow-y
:
auto
;
}
.roomReservations_tripDetails
.popper__arrow
::after
{
border-bottom-color
:
#ededed
!important
;
}
.roomReservations_tripDetails
table
{
padding
:
10px
0
0
20px
;
background-color
:
#ededed
;
border-collapse
:
collapse
;
border
:
1px
solid
#d2d2d2
;
font-size
:
12px
;
}
.roomReservations_tripDetails
table
th
{
background-color
:
#ededed
;
padding
:
5px
;
}
.roomReservations_tripDetails
table
td
{
background-color
:
#ffffff
;
padding
:
9px
15px
;
color
:
#333333
;
border
:
1px
solid
#d2d2d2
;
}
.roomReservations_tripDetails
table
td
._d_name
{
background-color
:
#ededed
;
}
.roomReservations_tripDetails
table
._color_666
{
color
:
#666666
;
}
.roomReservations_tripDetails
table
tr
._color_666
th
{
padding
:
9px
15px
;
}
</
style
>
src/components/Hotel/roomReservationsDetails.vue
View file @
fc032c40
<
template
>
<div>
<div
class=
"query-box"
style=
"border-bottom: none;"
>
<ul>
<li>
<input
type=
"button"
class=
"fr normalBtn mb30"
value=
"保存"
@
click=
"saveList(1)"
/>
<input
type=
"button"
class=
"fr normalBtn mb30"
value=
"保存草稿"
@
click=
"saveList(0)"
/>
</li>
</ul>
</div>
<div
style=
"width: 100%; overflow-x: auto;padding-bottom: 10px; "
class=
"ownScrollbarStyle"
>
<table
border=
"0"
cellspacing=
"1"
cellpadding=
"0"
class=
"roomReservationsDetailsTalbe"
>
<tr>
<th
class=
"fz14"
colspan=
"10"
>
团队信息(定团号:
{{
NewCombinationNum
}}
)
</th>
<th
class=
"fz14"
colspan=
"12"
>
地接操作信息
</th>
</tr>
<tr>
<th
width=
"120"
>
公司团号
</th>
<th
width=
"200"
>
酒店名称
</th>
<th
width=
"80"
>
入住时间
</th>
<th
width=
"120"
>
机位总数/(Y/E/F)
</th>
<th
width=
"120"
>
占床/不占床
</th>
<th
width=
"80"
>
实际用房数
</th>
<th
width=
"150"
>
房间类型
</th>
<th
width=
"80"
>
房间数
</th>
<th
width=
"80"
>
房间人数
</th>
<th
width=
"200"
>
修改酒店
</th>
<th
width=
"150"
>
房间预定数
</th>
<th
width=
"120"
>
尚差房间数
</th>
<th
width=
"80"
>
单价/每人
</th>
<th
width=
"80"
>
免减人数
</th>
<th
width=
"80"
>
金额小计
</th>
<th
width=
"80"
>
返佣
</th>
<th
width=
"80"
>
金额总计
</th>
<th
width=
"80"
>
付款方式
</th>
<th
width=
"80"
>
联系电话
</th>
<th
width=
"80"
>
地址
</th>
<th
width=
"80"
>
订团号
</th>
<th
width=
"80"
>
备注
</th>
<th
width=
"80"
>
操作
</th>
</tr>
<tr
v-for=
"(item,index) in list"
>
<td
:rowspan=
"list.length"
v-if=
"index==0"
>
<div
class=
"w120"
>
<p
class=
"link"
@
click=
"goUrlT('productQuery',TCNUM,'产品查询')"
>
{{
TCNUM
}}
</p>
<el-button
@
click=
'openChart()'
v-if=
"CreateByAccount!=''"
type=
"primary"
style=
"background:#6DD875; border-color:#6DD875;padding:4px;margin-top:10px;"
>
联系OP
</el-button>
</div>
</td>
<td><div
class=
"w200 padding10"
>
<p
class=
"link"
style=
"word-break: normal;"
:class=
"
{'Hotel_red':item.HotelChangeState==3}" @click="goUrlR('HotelManagement',item.HotelId,'酒店管理')">
{{
item
.
HotelName
}}
</p>
</div>
</td>
<td><div
class=
"w80"
>
{{
item
.
CheckInDateStr
}}
</div></td>
<td>
<div
class=
"w120"
>
<p
class=
"link"
@
click=
"goUrlT('RegistrationList',item.TCID,'报名清单')"
>
{{
flightTotal
}}
/
{{
item
.
HouseStatistics
.
RealityYSeatNum
}}
/
{{
item
.
HouseStatistics
.
RealityESeatNum
}}
/
{{
item
.
HouseStatistics
.
RealityFSeatNum
}}
</p>
</div>
</td>
<td><div
class=
"w120"
>
<p
class=
"link"
@
click=
"goUrlT('passengerHouse',item.TCIDS,'房间分配')"
>
{{
item
.
HouseStatistics
.
NeedBed
}}
/
{{
item
.
HouseStatistics
.
NoNeedBed
}}
</p>
</div></td>
<td><div
class=
"w80"
>
{{
item
.
HouseStatistics
.
RealityRoomNum
}}
</div></td>
<td><div
class=
"w150"
>
<p
class=
"pHouseStyle"
v-for=
"o in item.HouseStatistics.HouseTypeList"
>
{{
o
.
HouseTypeName
}}
</p>
</div></td>
<td><div
class=
"w80"
>
<p
class=
"pHouseStyle"
v-for=
"o in item.HouseStatistics.HouseTypeList"
>
{{
o
.
HouseTypeCount
}}
</p>
</div></td>
<td><div
class=
"w80"
>
<p
class=
"pHouseStyle"
v-for=
"o in item.HouseStatistics.HouseTypeList"
>
{{
o
.
HouseGuestNum
}}
</p>
</div></td>
<td><div
class=
"w150"
>
<el-select
class=
'w120 sel'
v-model=
'item.NewHotelId'
filterable
:placeholder=
"$t('pub.pleaseSel')"
@
visible-change=
'getHotelList(item)'
@
change=
'sendValue(item)'
>
<el-option
v-for=
'itemHotel in item.hotelList'
:label=
'itemHotel.Name'
:value=
'itemHotel.ID'
:key=
'itemHotel.ID'
></el-option>
</el-select>
</div></td>
<td>
<div
class=
"w80"
>
<p
class=
"pHouseStyle"
v-for=
"o in item.OrderDetailsList"
>
<el-input
class=
'w50 tcenter'
@
keyup
.
native=
"checkInteger(o,'HouseTypeCount')"
v-model=
'o.HouseTypeCount'
></el-input>
</p>
</div>
</td>
<td>
<div
class=
"w80"
>
<p
class=
"pHouseStyle"
:class=
"
{colorRed:o.HouseTypeCount-item.HouseStatistics.HouseTypeList[index].HouseTypeCount
<0
}"
v-for=
"(o,index) in item.OrderDetailsList"
>
{{
o
.
HouseTypeCount
-
item
.
HouseStatistics
.
HouseTypeList
[
index
].
HouseTypeCount
}}
</p>
</div>
</td>
<td>
<div
class=
"w120"
>
<p
class=
"pHouseStyle"
v-for=
"(o,index) in item.OrderDetailsList"
@
input=
"calculationPrice(item)"
>
<el-input
@
keyup
.
native=
"checkInteger(o,'UnitPrice')"
class=
'w80 tcenter'
v-model=
'o.UnitPrice'
></el-input>
</p>
</div>
</td>
<td>
<div
class=
"w80"
>
<p
class=
"pHouseStyle"
v-for=
"(o,index) in item.OrderDetailsList"
@
input=
"calculationPrice(item)"
>
<el-input
class=
'w50'
@
keyup
.
native=
"checkInteger(o,'HotelDiscount')"
v-model=
'o.HotelDiscount'
></el-input>
</p>
</div>
</td>
<td>
<div
class=
"w80"
>
<p
class=
"pHouseStyle"
v-for=
"(o,index) in item.OrderDetailsList"
>
{{
o
.
UnitPrice
*
(
o
.
HouseGuestNum
-
o
.
HotelDiscount
)
}}
</p>
</div>
</td>
<td>
<!--返佣-->
<div
class=
"w80"
>
<p
class=
"pHouseStyle link"
v-for=
"(o,index) in item.OrderDetailsList"
@
input=
"calculationPrice(item)"
>
<span
class=
"spanlink"
v-if=
'o.IsRebateRatio==0'
@
click=
"goUrl('HotelInfo',o,'酒店管理')"
>
设置
</span>
<span
v-if=
'o.IsRebateRatio!=0'
>
{{
o
.
RebateRatio
}}
</span>
</p>
</div>
</td>
<td>
<div
class=
"w120"
>
{{
item
.
TotalPrice
}}
</div>
</td>
<td><div
class=
"w120"
>
<el-select
class=
'w100 sel'
v-model=
'item.PayStyle'
:placeholder=
"$t('pub.pleaseSel')"
>
<el-option
label=
'请选择'
value=
'0'
></el-option>
<el-option
label=
'现付'
value=
'1'
></el-option>
<el-option
label=
'签单'
value=
'2'
></el-option>
<el-option
label=
'实物抵扣'
value=
'5'
></el-option>
<el-option
label=
'预付'
value=
'4'
></el-option>
</el-select>
</div></td>
<td><div
class=
"w120"
>
{{
item
.
Tel
}}
</div></td>
<td><div
class=
"w200 padding10"
>
{{
item
.
Address
}}
</div></td>
<td>
<div
class=
"w150"
>
<el-input
class=
'w120'
v-model=
'item.ReserveNo'
></el-input>
</div>
</td>
<td>
<div
class=
"w150"
>
<el-input
type=
'textarea'
class=
'w120'
v-model=
'item.Remarks'
></el-input>
</div>
</td>
<td>
<input
type=
"button"
class=
"roomBtn"
value=
"保存"
@
click=
"SaveSingle(item)"
/>
</td>
</tr>
</table>
</div>
</div>
<div>
<div
class=
"query-box"
style=
"border-bottom: none;"
>
<ul>
<li>
<input
type=
"button"
class=
"fr normalBtn mb30"
value=
"保存"
@
click=
"saveList(1)"
/>
<input
type=
"button"
class=
"fr normalBtn mb30"
value=
"保存草稿"
@
click=
"saveList(0)"
/>
</li>
</ul>
</div>
<div
style=
"width: 100%; overflow-x: auto;padding-bottom: 10px; "
class=
"ownScrollbarStyle"
>
<table
border=
"0"
cellspacing=
"1"
cellpadding=
"0"
class=
"roomReservationsDetailsTalbe"
>
<tr>
<th
class=
"fz14"
colspan=
"10"
>
团队信息(定团号:
{{
NewCombinationNum
}}
)
</th>
<th
class=
"fz14"
colspan=
"12"
>
地接操作信息
</th>
</tr>
<tr>
<th
width=
"120"
>
公司团号
</th>
<th
width=
"200"
>
酒店名称
</th>
<th
width=
"80"
>
入住时间
</th>
<th
width=
"120"
>
机位总数/(Y/E/F)
</th>
<th
width=
"120"
>
占床/不占床
</th>
<th
width=
"80"
>
实际用房数
</th>
<th
width=
"150"
>
房间类型
</th>
<th
width=
"80"
>
房间数
</th>
<th
width=
"80"
>
房间人数
</th>
<th
width=
"200"
>
修改酒店
</th>
<th
width=
"150"
>
房间预定数
</th>
<th
width=
"120"
>
尚差房间数
</th>
<th
width=
"80"
>
单价/每人
</th>
<th
width=
"80"
>
免减人数
</th>
<th
width=
"80"
>
金额小计
</th>
<th
width=
"80"
>
返佣
</th>
<th
width=
"80"
>
金额总计
</th>
<th
width=
"80"
>
付款方式
</th>
<th
width=
"80"
>
联系电话
</th>
<th
width=
"80"
>
地址
</th>
<th
width=
"80"
>
订团号
</th>
<th
width=
"80"
>
备注
</th>
<th
width=
"80"
>
操作
</th>
</tr>
<tr
v-for=
"(item,index) in list"
>
<td
:rowspan=
"list.length"
v-if=
"index==0"
>
<div
class=
"w120"
>
<p
class=
"link"
@
click=
"goUrlT('productQuery',TCNUM,'产品查询')"
>
{{
TCNUM
}}
</p>
<el-button
@
click=
'openChart()'
v-if=
"CreateByAccount!=''"
type=
"primary"
style=
"background:#6DD875; border-color:#6DD875;padding:4px;margin-top:10px;"
>
联系OP
</el-button>
</div>
</td>
<td>
<div
class=
"w200 padding10"
>
<p
class=
"link"
style=
"word-break: normal;"
:class=
"
{'Hotel_red':item.HotelChangeState==3}"
@click="goUrlR('HotelManagement',item.HotelId,'酒店管理')">
{{
item
.
HotelName
}}
</p>
</div>
</td>
<td>
<div
class=
"w80"
>
{{
item
.
CheckInDateStr
}}
</div>
</td>
<td>
<div
class=
"w120"
>
<p
class=
"link"
@
click=
"goUrlT('RegistrationList',item.TCID,'报名清单')"
>
{{
flightTotal
}}
/
{{
item
.
HouseStatistics
.
RealityYSeatNum
}}
/
{{
item
.
HouseStatistics
.
RealityESeatNum
}}
/
{{
item
.
HouseStatistics
.
RealityFSeatNum
}}
</p>
</div>
</td>
<td>
<div
class=
"w120"
>
<p
class=
"link"
@
click=
"goUrlT('passengerHouse',item.TCIDS,'房间分配')"
>
{{
item
.
HouseStatistics
.
NeedBed
}}
/
{{
item
.
HouseStatistics
.
NoNeedBed
}}
</p>
</div>
</td>
<td>
<div
class=
"w80"
>
{{
item
.
HouseStatistics
.
RealityRoomNum
}}
</div>
</td>
<td>
<div
class=
"w150"
>
<p
class=
"pHouseStyle"
v-for=
"o in item.HouseStatistics.HouseTypeList"
>
{{
o
.
HouseTypeName
}}
</p>
</div>
</td>
<td>
<div
class=
"w80"
>
<p
class=
"pHouseStyle"
v-for=
"o in item.HouseStatistics.HouseTypeList"
>
{{
o
.
HouseTypeCount
}}
</p>
</div>
</td>
<td>
<div
class=
"w80"
>
<p
class=
"pHouseStyle"
v-for=
"o in item.HouseStatistics.HouseTypeList"
>
{{
o
.
HouseGuestNum
}}
</p>
</div>
</td>
<td>
<div
class=
"w150"
>
<el-select
class=
'w120 sel'
v-model=
'item.NewHotelId'
filterable
:placeholder=
"$t('pub.pleaseSel')"
@
visible-change=
'getHotelList(item)'
@
change=
'sendValue(item)'
>
<el-option
v-for=
'itemHotel in item.hotelList'
:label=
'itemHotel.Name'
:value=
'itemHotel.ID'
:key=
'itemHotel.ID'
></el-option>
</el-select>
</div>
</td>
<td>
<div
class=
"w80"
>
<p
class=
"pHouseStyle"
v-for=
"o in item.OrderDetailsList"
>
<el-input
class=
'w50 tcenter'
@
keyup
.
native=
"checkInteger(o,'HouseTypeCount')"
v-model=
'o.HouseTypeCount'
></el-input>
</p>
</div>
</td>
<td>
<div
class=
"w80"
>
<p
class=
"pHouseStyle"
:class=
"
{colorRed:o.HouseTypeCount-item.HouseStatistics.HouseTypeList[index].HouseTypeCount
<0
}"
v-for=
"(o,index) in item.OrderDetailsList"
>
{{
o
.
HouseTypeCount
-
item
.
HouseStatistics
.
HouseTypeList
[
index
].
HouseTypeCount
}}
</p>
</div>
</td>
<td>
<div
class=
"w120"
>
<p
class=
"pHouseStyle"
v-for=
"(o,index) in item.OrderDetailsList"
@
input=
"calculationPrice(item)"
>
<el-input
@
keyup
.
native=
"checkInteger(o,'UnitPrice')"
class=
'w80 tcenter'
v-model=
'o.UnitPrice'
>
</el-input>
</p>
</div>
</td>
<td>
<div
class=
"w80"
>
<p
class=
"pHouseStyle"
v-for=
"(o,index) in item.OrderDetailsList"
@
input=
"calculationPrice(item)"
>
<el-input
class=
'w50'
@
keyup
.
native=
"checkInteger(o,'HotelDiscount')"
v-model=
'o.HotelDiscount'
>
</el-input>
</p>
</div>
</td>
<td>
<div
class=
"w80"
>
<p
class=
"pHouseStyle"
v-for=
"(o,index) in item.OrderDetailsList"
>
{{
o
.
UnitPrice
*
(
o
.
HouseGuestNum
-
o
.
HotelDiscount
)
}}
</p>
</div>
</td>
<td>
<!--返佣-->
<div
class=
"w80"
>
<p
class=
"pHouseStyle link"
v-for=
"(o,index) in item.OrderDetailsList"
@
input=
"calculationPrice(item)"
>
<span
class=
"spanlink"
v-if=
'o.IsRebateRatio==0'
@
click=
"goUrl('HotelInfo',o,'酒店管理')"
>
设置
</span>
<span
v-if=
'o.IsRebateRatio!=0'
>
{{
o
.
RebateRatio
}}
</span>
</p>
</div>
</td>
<td>
<div
class=
"w120"
>
{{
item
.
TotalPrice
}}
</div>
</td>
<td>
<div
class=
"w120"
>
<el-select
class=
'w100 sel'
v-model=
'item.PayStyle'
:placeholder=
"$t('pub.pleaseSel')"
>
<el-option
label=
'请选择'
value=
'0'
></el-option>
<el-option
label=
'现付'
value=
'1'
></el-option>
<el-option
label=
'签单'
value=
'2'
></el-option>
<el-option
label=
'实物抵扣'
value=
'5'
></el-option>
<el-option
label=
'预付'
value=
'4'
></el-option>
</el-select>
</div>
</td>
<td>
<div
class=
"w120"
>
{{
item
.
Tel
}}
</div>
</td>
<td>
<div
class=
"w200 padding10"
>
{{
item
.
Address
}}
</div>
</td>
<td>
<div
class=
"w150"
>
<el-input
class=
'w120'
v-model=
'item.ReserveNo'
></el-input>
</div>
</td>
<td>
<div
class=
"w150"
>
<el-input
type=
'textarea'
class=
'w120'
v-model=
'item.Remarks'
></el-input>
</div>
</td>
<td>
<input
type=
"button"
class=
"roomBtn"
value=
"保存"
@
click=
"SaveSingle(item)"
/>
</td>
</tr>
</table>
</div>
</div>
</
template
>
<
script
>
export
default
{
data
()
{
return
{
defaultSelectValue
:
0
,
list
:
[],
roomList
:
[],
TCNUM
:
''
,
flightTotal
:
0
,
GuestNum
:
0
,
hotelList
:
[],
//创建人头像
CreateByPhoto
:
''
,
//创建人联系电话
CreateByAccount
:
''
,
//创建人姓名
CreateByName
:
''
,
}
},
export
default
{
data
()
{
return
{
defaultSelectValue
:
0
,
list
:
[],
roomList
:
[],
TCNUM
:
''
,
flightTotal
:
0
,
GuestNum
:
0
,
hotelList
:
[],
//创建人头像
CreateByPhoto
:
''
,
//创建人联系电话
CreateByAccount
:
''
,
//创建人姓名
CreateByName
:
''
,
}
},
methods
:
{
//联系op
openChart
(){
this
.
MsgBus
.
$emit
(
'openChat'
,{
account
:
this
.
CreateByAccount
,
alias
:
this
.
CreateByName
,
avatar
:
this
.
CreateByPhoto
})
},
goUrl
(
path
,
obj
,
name
)
{
this
.
$router
.
push
({
path
:
path
,
query
:
{
id
:
obj
.
HotelId
,
blank
:
"y"
,
tab
:
name
}
});
},
goUrlR
(
path
,
obj
,
title
){
this
.
$router
.
push
({
name
:
path
,
query
:{
"ID"
:
obj
,
blank
:
'y'
,
tab
:
title
}})
},
goUrlT
(
path
,
obj
,
title
){
this
.
$router
.
push
({
name
:
path
,
query
:{
"id"
:
obj
,
blank
:
'y'
,
tab
:
title
}})
},
getList
(){
this
.
apipost
(
'dmcstatistics_get_GetHotelStaticsDetail'
,{
TCIDs
:
this
.
$route
.
query
.
id
,
NewCombinationNum
:
this
.
$route
.
query
.
NewCombinationNum
},
res
=>
{
if
(
res
.
data
.
resultCode
==
1
){
this
.
list
=
res
.
data
.
data
.
HotelList
;
this
.
CreateBy
=
res
.
data
.
data
.
CreateBy
;
this
.
CreateByPhoto
=
res
.
data
.
data
.
CreateByPhoto
;
this
.
CreateByAccount
=
res
.
data
.
data
.
CreateByAccount
;
this
.
list
.
forEach
(
item
=>
{
this
.
calculationPrice
(
item
)
item
.
hotelList
.
push
({
Name
:
item
.
NewHotelName
,
ID
:
item
.
NewHotelId
})
item
.
PayStyle
=
item
.
PayStyle
.
toString
()
item
.
OrderDetailsList
.
forEach
((
x
,
index1
)
=>
{
if
(
x
.
HouseTypeCount
<=
0
){
x
.
HouseTypeCount
=
item
.
HouseStatistics
.
HouseTypeList
[
index1
].
HouseTypeCount
.
toString
();
}
else
{
x
.
HouseTypeCount
=
x
.
HouseTypeCount
.
toString
();
}
x
.
HouseTypeCount
=
x
.
HouseTypeCount
.
toString
();
x
.
UnitPrice
=
x
.
UnitPrice
.
toString
();
x
.
HotelDiscount
=
x
.
HotelDiscount
.
toString
();
})
})
}
else
{
this
.
$message
.
error
(
res
.
data
.
message
)
}
},
err
=>
{})
},
calculationPrice
(
obj
){
let
totalPrice
=
0
obj
.
OrderDetailsList
.
forEach
(
item
=>
{
totalPrice
+=
item
.
UnitPrice
*
(
item
.
HouseGuestNum
-
item
.
HotelDiscount
)
*
(
1
-
item
.
RebateRatio
/
100
)
})
obj
.
TotalPrice
=
totalPrice
.
toFixed
(
2
)
this
.
$forceUpdate
()
},
getHotelList
(
obj
){
this
.
apipost
(
'hotel_post_GetLineHotelList'
,{
IsGetPic
:
0
,
IsGetRemark
:
0
,
QCity
:
obj
.
QCity
},
res
=>
{
if
(
res
.
data
.
resultCode
==
1
){
obj
.
hotelList
=
res
.
data
.
data
}
else
{
this
.
$message
.
error
(
res
.
data
.
message
)
}
},
err
=>
{})
},
sendValue
(
obj
){
if
(
obj
.
hotelList
.
length
>
0
)
{
let
ckedObj
=
obj
.
hotelList
.
find
(
item
=>
item
.
ID
==
obj
.
NewHotelId
)
obj
.
Address
=
ckedObj
.
Address
obj
.
Tel
=
ckedObj
.
Tel
obj
.
NewHotelName
=
ckedObj
.
Name
}
else
{
obj
.
Address
=
''
obj
.
Tel
=
''
}
},
saveList
(
type
){
if
(
type
==
0
){
this
.
list
.
forEach
(
item
=>
{
item
.
HotelOrderState
=
0
})
}
if
(
type
==
1
){
this
.
list
.
forEach
(
item
=>
{
item
.
HotelOrderState
=
1
})
}
this
.
list
.
forEach
(
x
=>
{
x
.
OrderDetailsList
.
forEach
(
y
=>
{
y
.
HouseTypeCount
=
parseInt
(
y
.
HouseTypeCount
);
y
.
UnitPrice
=
parseInt
(
y
.
UnitPrice
);
y
.
HotelDiscount
=
parseInt
(
y
.
HotelDiscount
);
})
})
this
.
apipost
(
'dmcstatistics_get_SetHotelOrder'
,
this
.
list
,
res
=>
{
if
(
res
.
data
.
resultCode
==
1
){
this
.
Success
(
res
.
data
.
message
)
}
else
{
this
.
Error
(
res
.
data
.
message
)
}
},
err
=>
{})
},
//单条保存
SaveSingle
(
item
){
item
.
HotelOrderState
=
1
;
this
.
apipost
(
'dmcstatistics_post_SetNewHotelOrder'
,
item
,
res
=>
{
if
(
res
.
data
.
resultCode
==
1
){
this
.
Success
(
res
.
data
.
message
)
}
else
{
this
.
Error
(
res
.
data
.
message
)
}
},
err
=>
{})
//联系op
openChart
()
{
this
.
MsgBus
.
$emit
(
'openChat'
,
{
account
:
this
.
CreateByAccount
,
alias
:
this
.
CreateByName
,
avatar
:
this
.
CreateByPhoto
})
},
goUrl
(
path
,
obj
,
name
)
{
this
.
$router
.
push
({
path
:
path
,
query
:
{
id
:
obj
.
HotelId
,
blank
:
"y"
,
tab
:
name
}
});
},
goUrlR
(
path
,
obj
,
title
)
{
this
.
$router
.
push
({
name
:
path
,
query
:
{
"ID"
:
obj
,
blank
:
'y'
,
tab
:
title
}
})
},
goUrlT
(
path
,
obj
,
title
)
{
this
.
$router
.
push
({
name
:
path
,
query
:
{
"id"
:
obj
,
blank
:
'y'
,
tab
:
title
}
})
},
getList
()
{
this
.
apipost
(
'dmcstatistics_get_GetHotelStaticsDetail'
,
{
TCIDs
:
this
.
$route
.
query
.
id
,
NewCombinationNum
:
this
.
$route
.
query
.
NewCombinationNum
},
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
list
=
res
.
data
.
data
.
HotelList
;
this
.
CreateBy
=
res
.
data
.
data
.
CreateBy
;
this
.
CreateByPhoto
=
res
.
data
.
data
.
CreateByPhoto
;
this
.
CreateByAccount
=
res
.
data
.
data
.
CreateByAccount
;
this
.
list
.
forEach
(
item
=>
{
this
.
calculationPrice
(
item
)
item
.
hotelList
.
push
({
Name
:
item
.
NewHotelName
,
ID
:
item
.
NewHotelId
})
item
.
PayStyle
=
item
.
PayStyle
.
toString
()
item
.
OrderDetailsList
.
forEach
((
x
,
index1
)
=>
{
if
(
x
.
HouseTypeCount
<=
0
)
{
x
.
HouseTypeCount
=
item
.
HouseStatistics
.
HouseTypeList
[
index1
].
HouseTypeCount
.
toString
();
}
else
{
x
.
HouseTypeCount
=
x
.
HouseTypeCount
.
toString
();
}
x
.
HouseTypeCount
=
x
.
HouseTypeCount
.
toString
();
x
.
UnitPrice
=
x
.
UnitPrice
.
toString
();
x
.
HotelDiscount
=
x
.
HotelDiscount
.
toString
();
})
})
}
else
{
this
.
$message
.
error
(
res
.
data
.
message
)
}
},
err
=>
{})
},
calculationPrice
(
obj
)
{
let
totalPrice
=
0
obj
.
OrderDetailsList
.
forEach
(
item
=>
{
totalPrice
+=
item
.
UnitPrice
*
(
item
.
HouseGuestNum
-
item
.
HotelDiscount
)
*
(
1
-
item
.
RebateRatio
/
100
)
})
obj
.
TotalPrice
=
totalPrice
.
toFixed
(
2
)
this
.
$forceUpdate
()
},
getHotelList
(
obj
)
{
this
.
apipost
(
'hotel_post_GetLineHotelList'
,
{
IsGetPic
:
0
,
IsGetRemark
:
0
,
QCity
:
obj
.
QCity
},
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
obj
.
hotelList
=
res
.
data
.
data
}
else
{
this
.
$message
.
error
(
res
.
data
.
message
)
}
},
err
=>
{})
},
sendValue
(
obj
)
{
if
(
obj
.
hotelList
.
length
>
0
)
{
let
ckedObj
=
obj
.
hotelList
.
find
(
item
=>
item
.
ID
==
obj
.
NewHotelId
)
obj
.
Address
=
ckedObj
.
Address
obj
.
Tel
=
ckedObj
.
Tel
obj
.
NewHotelName
=
ckedObj
.
Name
}
else
{
obj
.
Address
=
''
obj
.
Tel
=
''
}
},
saveList
(
type
)
{
if
(
type
==
0
)
{
this
.
list
.
forEach
(
item
=>
{
item
.
HotelOrderState
=
0
})
}
if
(
type
==
1
)
{
this
.
list
.
forEach
(
item
=>
{
item
.
HotelOrderState
=
1
})
}
this
.
list
.
forEach
(
x
=>
{
x
.
OrderDetailsList
.
forEach
(
y
=>
{
y
.
HouseTypeCount
=
parseInt
(
y
.
HouseTypeCount
);
y
.
UnitPrice
=
parseInt
(
y
.
UnitPrice
);
y
.
HotelDiscount
=
parseInt
(
y
.
HotelDiscount
);
})
})
this
.
apipost
(
'dmcstatistics_get_SetHotelOrder'
,
this
.
list
,
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
Success
(
res
.
data
.
message
)
}
else
{
this
.
Error
(
res
.
data
.
message
)
}
},
err
=>
{})
},
//单条保存
SaveSingle
(
item
)
{
item
.
HotelOrderState
=
1
;
this
.
apipost
(
'dmcstatistics_post_SetNewHotelOrder'
,
item
,
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
Success
(
res
.
data
.
message
)
}
else
{
this
.
Error
(
res
.
data
.
message
)
}
},
err
=>
{})
}
},
created
()
{
}
},
mounted
()
{
this
.
TCNUM
=
this
.
$route
.
query
.
TCNUM
;
this
.
flightTotal
=
this
.
$route
.
query
.
flightTotal
;
this
.
GuestNum
=
this
.
$route
.
query
.
GuestNum
;
this
.
NewCombinationNum
=
this
.
$route
.
query
.
NewCombinationNum
;
this
.
getList
()
// this.getHotelList()
},
}
this
.
TCNUM
=
this
.
$route
.
query
.
TCNUM
;
this
.
flightTotal
=
this
.
$route
.
query
.
flightTotal
;
this
.
GuestNum
=
this
.
$route
.
query
.
GuestNum
;
this
.
NewCombinationNum
=
this
.
$route
.
query
.
NewCombinationNum
;
this
.
getList
()
},
}
</
script
>
<
style
>
.roomReservationsDetailsTalbe
.roomBtn
{
color
:
#fff
;
padding
:
0
10px
!important
;
height
:
30px
!important
;
.roomReservationsDetailsTalbe
.roomBtn
{
color
:
#fff
;
padding
:
0
10px
!important
;
height
:
30px
!important
;
background
:
#E95252
;
border
:
1px
solid
#E95252
;
cursor
:
pointer
;
border-radius
:
15px
;
margin
:
0
10px
;
}
.roomReservationsDetailsTalbe
{
background
:
#ddd
;}
.roomReservationsDetailsTalbe
tr
th
{
background
:
#eee
;
height
:
40px
;
font-size
:
12px
;
color
:
#333
;}
.roomReservationsDetailsTalbe
tr
{
background
:
#fff
;
text-align
:
center
;
height
:
40px
;}
.roomReservationsDetailsTalbe
tr
td
{
font-size
:
12px
;}
.roomReservationsDetailsTalbe
tr
td
.pHouseStyle
{
border-bottom
:
1px
solid
#ccc
;
height
:
28px
;
line-height
:
28px
;}
.roomReservationsDetailsTalbe
tr
td
.colorRed
{
color
:
#E95252
;}
.roomReservationsDetailsTalbe
tr
td
.pHouseStyle
:last-child
{
border-bottom
:
none
;}
.roomReservationsDetailsTalbe
tr
td
input
{
height
:
20px
!important
;
padding
:
0
!important
;
text-align
:
center
;}
.roomReservationsDetailsTalbe
tr
td
.sel
input
{
height
:
34px
!important
;
padding-right
:
20px
!important
;
padding-left
:
5px
!important
;
font-size
:
12px
!important
;}
.roomReservationsDetailsTalbe
tr
td
.link
:hover
{
text-decoration
:
underline
;
cursor
:
pointer
;}
.roomReservationsDetailsTalbe
.Hotel_red
{
color
:
red
;}
</
style
>
\ No newline at end of file
margin
:
0
10px
;
}
.roomReservationsDetailsTalbe
{
background
:
#ddd
;
}
.roomReservationsDetailsTalbe
tr
th
{
background
:
#eee
;
height
:
40px
;
font-size
:
12px
;
color
:
#333
;
}
.roomReservationsDetailsTalbe
tr
{
background
:
#fff
;
text-align
:
center
;
height
:
40px
;
}
.roomReservationsDetailsTalbe
tr
td
{
font-size
:
12px
;
}
.roomReservationsDetailsTalbe
tr
td
.pHouseStyle
{
border-bottom
:
1px
solid
#ccc
;
height
:
28px
;
line-height
:
28px
;
}
.roomReservationsDetailsTalbe
tr
td
.colorRed
{
color
:
#E95252
;
}
.roomReservationsDetailsTalbe
tr
td
.pHouseStyle
:last-child
{
border-bottom
:
none
;
}
.roomReservationsDetailsTalbe
tr
td
input
{
height
:
20px
!important
;
padding
:
0
!important
;
text-align
:
center
;
}
.roomReservationsDetailsTalbe
tr
td
.sel
input
{
height
:
34px
!important
;
padding-right
:
20px
!important
;
padding-left
:
5px
!important
;
font-size
:
12px
!important
;
}
.roomReservationsDetailsTalbe
tr
td
.link
:hover
{
text-decoration
:
underline
;
cursor
:
pointer
;
}
.roomReservationsDetailsTalbe
.Hotel_red
{
color
:
red
;
}
</
style
>
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment