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
f16ce97e
Commit
f16ce97e
authored
Sep 16, 2019
by
华国豪
🙄
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master' of
http://gitlab.oytour.com/luochao/superman
parents
862e24d1
a5b4d9b9
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
537 additions
and
402 deletions
+537
-402
PriceHotelWorkList.vue
...omponents/TravelManager/TravelList/PriceHotelWorkList.vue
+537
-402
No files found.
src/components/TravelManager/TravelList/PriceHotelWorkList.vue
View file @
f16ce97e
<
style
>
.HotelWorkList
.has-gutter
tr
th
,
.el-table
th
.is-leaf
{
background-color
:
#EAEAEA
!important
;
}
.HotelWorkList
.HW_hotelDialog
{
width
:
900px
;
}
.HotelWorkList
.Hw_tableOne
{
width
:
100%
;
height
:
40px
;
background-color
:
#EAEAEA
;
}
.HotelWorkList
.Hw_tableOne
th
{
text-align
:
center
;
}
.HotelWorkList
.HotelWorkInput
.el-input
{
width
:
223px
;
}
.HotelWorkList
.HworkInput
.el-input
{
width
:
110px
;
}
</
style
>
<
template
>
<div
class=
"HotelWorkList"
>
<div
class=
"query-box
HotelWorkInput
"
style=
"border-bottom: none;"
>
<div
class=
"
Price
HotelWorkList"
>
<div
class=
"query-box"
style=
"border-bottom: none;"
>
<ul>
<li>
<span>
<em>
{{
$t
(
'system.quety_area'
)
}}
</em>
<el-select
v-model=
"msg.Province"
filterable
class=
"w110 HworkInput"
@
change=
"getProvinceList(msg.Province,2)"
:placeholder=
"$t('hotel.hotel_province')"
>
<el-option
:key=
"0"
:value=
"0"
label=
"请选择"
></el-option>
<el-option
v-for=
"item in provinceList"
:key=
"item.ID"
:label=
"item.Name"
:value=
"item.ID"
></el-option>
</el-select>
<el-select
v-model=
"msg.City"
filterable
class=
"w110 HworkInput"
:placeholder=
"$t('hotel.hotel_city')"
>
<el-option
:key=
"0"
:value=
"0"
label=
"请选择"
></el-option>
<el-option
v-for=
"item in cityList"
:key=
"item.ID"
:label=
"item.Name"
:value=
"item.ID"
></el-option>
<em>
{{
$t
(
'Operation.Op_Country'
)
}}
/
{{
$t
(
'system.query_dest'
)
}}
</em>
<el-select
v-model=
"msg.PlaceID"
filterable
:placeholder=
"$t('pub.pleaseSel')"
@
change=
"getLineTeamList()"
>
<el-option
:label=
"$t('pub.unlimitedSel')"
:value=
"0"
></el-option>
<el-option
v-for=
"item in queryCommonData.PlaceList"
:label=
"item.PlaceName"
:value=
"item.PlaceID"
:key=
"item.LtID"
></el-option>
</el-select>
</span>
</li>
<li
style=
"display:none;"
>
<span><em>
{{
$t
(
'admin.admin_company'
)
}}
</em>
<el-select
filterable
v-model=
'msg.OutBranchId'
:placeholder=
"$t('pub.unlimitedSel')"
>
<el-option
:label=
"$t('pub.unlimitedSel')"
:value=
'-1'
></el-option>
<el-option
v-for=
'item in companyList'
:label=
'item.BName'
:value=
'item.Id'
:key=
"item.Id"
>
<li>
<span>
<em>
系列
</em>
<el-select
v-model=
"msg.LineteamId"
filterable
:placeholder=
"$t('pub.pleaseSel')"
>
<el-option
label=
"不限"
:value=
'0'
></el-option>
<el-option
v-for=
"item in queryCommonData.LineTeamList"
:label=
'item.LtName'
:value=
'item.LtID'
:key=
'item.LtID'
>
</el-option>
</el-select>
</span>
</li>
<li>
<span>
<em>
星级
</em>
<el-select
v-model=
"msg.Star"
:placeholder=
"$t('pub.pleaseSel')"
>
<el-option
:label=
"$t('pub.unlimitedSel')"
:value=
'0'
></el-option>
<el-option
label=
"3星或商务"
:value=
'3'
></el-option>
<el-option
label=
"4星"
:value=
'4'
></el-option>
<el-option
label=
"5星"
:value=
'5'
></el-option>
<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"
:picker-options=
"pickerBeginDateBefore"
></el-date-picker>
-
<el-date-picker
v-model=
'msg.EndDate'
class=
'w135'
value-format=
"yyyy-MM-dd"
type=
"date"
:picker-options=
"pickerBeginDateAfter"
></el-date-picker>
</span>
</li>
<li><span>
<em>
状态
</em>
<el-select
v-model=
'msg.PriceStatus'
>
<el-option
:label=
"$t('pub.unlimitedSel')"
:value=
"0"
></el-option>
<el-option
v-for=
"team in $tripUtils.TeamStatesList.TeamStates"
:label=
"team.Name"
:key=
"team.Id"
:value=
"team.Id"
v-if=
"team.Id==1 || team.Id==3"
></el-option>
</el-select>
</span>
</li>
<li>
<span>
<em>
价格区间
</em>
<el-select
v-model=
"msg.PriceLevel"
:placeholder=
"$t('pub.pleaseSel')"
>
<el-option
:label=
"$t('pub.unlimitedSel')"
:value=
'0'
></el-option>
<el-option
label=
"5000以下"
:value=
'1'
></el-option>
<el-option
label=
"5000~6000"
:value=
'2'
></el-option>
<el-option
label=
"6000~7000"
:value=
'3'
></el-option>
<el-option
label=
"7000~8000"
:value=
'4'
></el-option>
<el-option
label=
"8000~9000"
:value=
'5'
></el-option>
<el-option
label=
"9000~10000"
:value=
'6'
></el-option>
<el-option
label=
"10000以上"
:value=
'7'
></el-option>
<em>
航空公司
</em>
<el-select
v-model=
"msg.AirLineId"
filterable
:placeholder=
"$t('system.ph_buxian')"
>
<el-option
:label=
"$t('system.ph_buxian')"
:value=
"0"
>
</el-option>
<el-option
v-for=
"item in queryCommonData.AirlineList"
:key=
"item.AirLineId"
:label=
"item.AlName"
:value=
"item.AirLineId"
></el-option>
</el-select>
</span>
</li>
<li>
<span>
<em>
时间
</em>
<el-date-picker
v-model=
"msg.YearMonthStr"
type=
"month"
value-format=
"yyyy-MM"
placeholder=
"选择月"
>
</el-date-picker>
<em>
OP
</em>
<el-select
v-model=
"msg.CreateBy"
filterable
:placeholder=
"$t('pub.pleaseSel')"
>
<el-option
:label=
"$t('pub.unlimitedSel')"
:value=
"0"
>
</el-option>
<el-option
v-for=
"item in queryCommonData.EmployeeList"
:label=
"item.EmName"
:value=
"item.EmployeeId"
:key=
"item.EmployeeId"
></el-option>
</el-select>
</span>
</li>
<li>
<span>
<em>
供应商
</em>
<el-select
v-model=
"msg.Supplier"
placeholder=
"请选择"
>
<el-option
:label=
"$t('pub.unlimitedSel')"
:value=
'0'
></el-option>
<el-option
v-for=
"(item,index) in SupplierList"
:key=
"index"
:label=
"item.Name"
:value=
"item.ID"
>
<em>
地接团号
</em>
<el-input
v-model=
'msg.CombinationNum'
></el-input>
</span>
</li>
<li>
<span>
<em>
出团公司
</em>
<el-select
v-model=
"msg.OutBranchIds"
filterable
multiple
class=
"multiple_input"
:placeholder=
"$t('pub.pleaseSel')"
>
<el-option
v-for=
"item in queryCommonData.BranchList"
:label=
'item.BName'
:value=
'item.Id'
:key=
'item.Id'
>
</el-option>
</el-select>
</span>
</li>
<li>
<span>
<em>
酒店
</em>
<el-select
v-model=
"msg.HotelChooseArray"
:placeholder=
"$t('pub.pleaseSel')"
class=
"multiple_input w300"
filterable
multiple
:multiple-limit=
"3"
>
<el-option
v-for=
"item in HotelList"
:key=
"item.ID"
:label=
"item.Name"
:value=
"item.ID"
></el-option>
<em>
酒店状态
</em>
<el-select
v-model=
"msg.HotelStatus"
:placeholder=
"$t('pub.pleaseSel')"
filterable
>
<el-option
:label=
"$t('pub.unlimitedSel')"
:value=
'0'
></el-option>
<el-option
label=
"全部OK"
:value=
'100'
></el-option>
<el-option
label=
"暂定一晚"
:value=
'1'
></el-option>
<el-option
label=
"暂定两晚"
:value=
'2'
></el-option>
<el-option
label=
"暂定三晚"
:value=
'3'
></el-option>
<el-option
label=
"暂定四晚"
:value=
'4'
></el-option>
<el-option
label=
"暂定五晚"
:value=
'5'
></el-option>
<el-option
label=
"暂定六晚"
:value=
'6'
></el-option>
<el-option
label=
"暂定七晚以上"
:value=
'7'
></el-option>
</el-select>
</span>
</li>
<li>
<input
type=
"button"
class=
"normalBtn"
value=
"查询"
@
click=
"getList()"
/>
<input
type=
"button"
class=
"normalBtn"
value=
"下载"
@
click=
"DownLoadHotelWork()"
/>
<input
type=
"button"
class=
"normalBtn"
value=
"查询"
@
click=
"getList();resetPageIndex()"
/>
</li>
</ul>
</div>
<div
class=
"hotelProductManage2_tableBox"
style=
"margin-bottom: 20px;"
>
<span
style=
"color:#FFFFFF; background-color:green ; padding: 2px 4px; border-radius: 5px;"
>
OK
</span>
<span
style=
"color:#FFFFFF; background-color:#3333CC; padding: 2px 4px; border-radius: 5px;"
>
暂定
</span>
<span
style=
"color:#FFFFFF; background-color:red; padding: 2px 4px; border-radius: 5px;"
>
未操作
</span>
<span
style=
"color:#FFFFFF; background-color:#000; padding: 2px 4px; border-radius: 5px;"
>
无库存
</span>
</div>
<template
v-if=
"isShow"
>
<el-table
:data=
"dataList"
style=
"width:100%"
border
v-loading=
'loading'
height=
"700"
>
<el-table-column
fixed
label=
"酒店名称"
min-width=
"180"
style=
"background:#EAEAEA"
>
<template
slot-scope=
"scope"
>
<div
style=
"text-decoration: underline;cursor:pointer"
@
click=
"GotoHotel(scope.row.Hotel)"
>
{{
scope
.
row
.
HotelName
}}
</div>
</
template
>
</el-table-column>
<el-table-column
v-for=
'(item,index) in dataList[0].DayList'
:label=
"item.DateStr"
:key=
'index'
min-width=
"150"
>
<
template
slot-scope=
"scope"
>
<template
v-if=
"scope.row.DayList[index].IsHaveStock==0"
>
<div
style=
"background-color:#000!important;width:50px;height:100%;margin:0,padding:0;color:#FFFFFF"
>
无库存
</div>
</
template
>
<
template
v-else
>
<template
v-if=
"scope.row.DayList[index].HotelJourneyOrderList&&scope.row.DayList[index].HotelJourneyOrderList.length>0"
>
<template
v-for=
"(childItem,childIndex) in scope.row.DayList[index].HotelJourneyOrderList"
>
<div
:title=
"childItem.TCID+'【OK】'"
v-if=
"childItem.DMCState==1||childItem.OPState==1"
slot=
"reference"
class=
"w80"
style=
"white-space:nowrap;color:green;cursor:pointer;text-decoration:underline;"
@
click=
"outerVisible=true,GetClickItem(item.DateAllStr,scope.row.Hotel,childItem.TCID)"
>
{{
childItem
.
BookGroup
}}
</div>
<div
style=
"width: 100%; overflow-x: auto;padding-bottom: 10px; "
class=
"ownScrollbarStyle"
:style=
"
{height: boxHeight + 'px'}">
<table
border=
"0"
cellspacing=
"1"
cellpadding=
"0"
class=
"roomReservationsTalbe"
v-loading=
'loading'
style=
"width:100%;"
>
<tr>
<th
width=
"120"
>
序号
</th>
<th
width=
"80"
>
出发地
</th>
<th
width=
"90"
>
航班时间
</th>
<th
width=
"145"
>
公司团号
</th>
<th
width=
"100"
>
机位总数
<br
/>
(Y/E/F)
</th>
<th
width=
"80"
>
占床
<br
/>
不占床
</th>
<th
width=
"110"
>
时间
</th>
<th
width=
"120"
>
酒店名称
</th>
<th
width=
"120"
>
更换酒店
</th>
<th
width=
"100"
>
OP状态
</th>
<th
width=
"100"
>
地接状态
</th>
<th
width=
"150"
>
操作
</th>
</tr>
<tr
v-if=
"DataList.length==0"
>
<td
colspan=
"14"
>
暂无数据
</td>
</tr>
<template
v-for=
"(outItem,outindex) in DataList"
>
<tbody
:class=
"
{roomReservationsSplitTrCss:outindex%2!=0}">
<template
v-for=
"(item,index) in outItem.StaticsReportList"
>
<template
v-for=
"(subItem,subIndex) in item.CommonReport.HotelOrderListReport"
v-if=
"subItem.HotelOrderList.length>0"
>
<template
v-for=
"(thirdItem,thirdIndex) in subItem.HotelOrderList"
>
<tr>
<td
:rowspan=
"outItem.rootRowspan"
v-if=
'index==0&&subIndex==0&&thirdIndex==0'
>
{{
outItem
.
NewCombinationNum
}}
</td>
<td
:rowspan=
"item.itemRowSpan"
v-if=
'subIndex==0&&thirdIndex==0'
>
{{
item
.
StartCityNames
}}
</td>
<td
:rowspan=
"item.itemRowSpan"
v-if=
'subIndex==0&&thirdIndex==0'
>
<div
class=
"w150"
>
{{
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
:rowspan=
"item.itemRowSpan"
v-if=
'subIndex==0&&thirdIndex==0'
>
<p
@
click=
"goUrlT('productQuery',item.TCNUMS,'产品查询')"
style=
"cursor:pointer;text-decoration:underline;"
>
{{
item
.
TCNUMS
}}
(
{{
item
.
TCIDS
}}
)
</p>
</td>
<td
:rowspan=
"item.itemRowSpan"
v-if=
'subIndex==0&&thirdIndex==0'
>
<p
@
click=
"goUrlT('RegistrationList',item.TCIDS,'报名清单')"
style=
"cursor:pointer;text-decoration:underline;"
>
{{
item
.
TotalSeat
}}
/
{{
item
.
CommonReport
.
HouseStatistics
.
RealityYSeatNum
}}
/
{{
item
.
CommonReport
.
HouseStatistics
.
RealityESeatNum
}}
/
{{
item
.
CommonReport
.
HouseStatistics
.
RealityFSeatNum
}}
</p>
</td>
<td
:rowspan=
"item.itemRowSpan"
v-if=
'subIndex==0&&thirdIndex==0'
>
<p
@
click=
"goUrlT('passengerHouse',item.TCIDS,'房间分配')"
style=
"cursor:pointer;text-decoration:underline;"
>
{{
item
.
CommonReport
.
HouseStatistics
.
NeedBed
}}
/
{{
item
.
CommonReport
.
HouseStatistics
.
NoNeedBed
}}
</p>
</td>
<td
:rowspan=
"subItem.HotelOrderList.length"
v-if=
'thirdIndex==0'
>
{{
subItem
.
UseTimeStr
}}
</td>
<td
style=
"text-align:left;padding-left:2px;"
>
<template
v-if=
"thirdItem.HotelName!=thirdItem.NewHotelName && thirdItem.NewHotelName!=''"
>
<span
style=
"text-decoration:line-through"
>
{{
thirdItem
.
HotelName
}}
</span>
</
template
>
<
template
v-else
>
{{
thirdItem
.
HotelName
}}
</
template
>
</td>
<td
style=
"text-align:left;padding-left:2px;"
>
<
template
v-if=
"thirdItem.HotelName!=thirdItem.NewHotelName"
>
<span
style=
"color:red;"
>
{{
thirdItem
.
NewHotelName
}}
</span>
</
template
>
</td>
<td>
<
template
v-if=
"thirdItem.OPState==1"
>
<span
style=
"color: green;"
>
OP-指定
</span>
</
template
>
<
template
v-else-if=
"thirdItem.OPState==2"
>
<span
style=
"color:red;"
>
OP-暂定
</span>
</
template
>
</td>
<td>
<
template
v-if=
"thirdItem.DMCState==1"
>
<span
style=
"color: green;"
>
地接-OK
</span>
</
template
>
<
template
v-else-if=
"thirdItem.DMCState==2"
>
<span
style=
"color:red;"
>
地接-暂定
</span>
</
template
>
<
template
v-else-if=
"thirdItem.DMCState==0"
>
<span
style=
"color:red;"
>
地接-未操作
</span>
</
template
>
</td>
<td>
<el-popover
placement=
"right"
width=
"540"
trigger=
"click"
v-model=
"subItem.isShowPop"
>
<comCheckHotel
:ref=
"'comCheckHotel'+index+subIndex+''"
:UseDate=
"subItem.UseTimeStr"
>
</comCheckHotel>
<el-button
size=
"small"
type=
"danger"
:data-index=
"'comCheckHotel'+index+subIndex+''"
slot=
"reference"
style=
"cursor:pointer;"
@
click=
"getChildHotel(index,subIndex),subItem.isShowPop=true"
>
酒店选择
</el-button>
</el-popover>
</td>
</tr>
</template>
</template>
<
template
v-else
>
<div
slot=
"reference"
class=
"w80"
style=
"cursor:pointer;text-decoration:underline;"
@
click=
"outerVisible=true,GetClickItem(item.DateAllStr,scope.row.Hotel,0)"
>
设置酒店
</div>
</
template
>
</template>
</template>
</el-table-column>
</el-table>
<div
class=
"noDataNotice"
v-if=
"dataList.length==0"
>
<i
class=
"iconfont icon-kong"
></i>
<p>
{{$t("active.ld_noData")}}
</p>
</div>
</template>
<el-dialog
custom-class=
'HW_hotelDialog'
:title=
"'【'+qMsg.DateStr+'】团期酒店信息列表'"
:visible
.
sync=
"outerVisible"
center
>
<div>
团号/地接团号:
<el-input
type=
"text"
v-model=
"qMsg.TCNUM"
maxlength=
"50"
class=
"w200"
></el-input>
<input
type=
"button"
class=
"normalBtn"
value=
"查询"
@
click=
"GetChangeHotelList()"
/>
</div>
<table
class=
"Hw_tableOne"
style=
"margin-top:20px;"
>
<tr>
<th
width=
"60"
>
选择
</th>
<th
width=
"145"
>
团号
</th>
<th
width=
"150"
>
地接团号
</th>
<th
width=
"125"
>
酒店
</th>
<th
width=
"125"
>
更换酒店
</th>
<th
width=
"80"
>
OP状态
</th>
<th
width=
"90"
>
地接状态
</th>
<th
width=
"90"
>
操作
</th>
</tr>
</tbody>
</template>
</table>
<div
style=
"height:400px;overflow:auto;border-bottom:1px solid #d1d1d1;border-left:1px solid #d1d1d1;"
v-loading=
"changeLoading"
>
<table
style=
"width:100%;"
>
<tr
v-for=
"(hItem,hIndex) in MyDataList"
>
<td
style=
"text-align:center;"
width=
"60"
>
<el-checkbox
:checked=
"hItem.IsChecked"
@
change=
"ChangeStatus(hItem)"
></el-checkbox>
</td>
<td
style=
"text-align:center;"
width=
"145"
>
{{hItem.TCNUM}}
<br
/>
({{hItem.TCID}})
</td>
<td
style=
"text-align:center;"
width=
"150"
>
{{hItem.DMCNum}}
</td>
<td
style=
"text-align:left;"
width=
"125"
>
{{hItem.OldHotelName}}
</td>
<td
style=
"text-align:left;"
width=
"125"
>
{{hItem.NewHotelName}}
</td>
<td
style=
"text-align:center;"
width=
"80"
>
<
template
v-if=
"hItem.OPState==1"
>
<a
style=
"color:green"
>
OP-指定
</a>
</
template
>
<
template
v-else-if=
"hItem.OPState==2"
>
<a
style=
"color:red"
>
OP-暂定
</a>
</
template
>
</td>
<td
style=
"text-align:center;"
width=
"90"
>
<
template
v-if=
"hItem.DMCState==1"
>
<a
style=
"color:green"
>
地接-OK
</a>
</
template
>
<
template
v-else-if=
"hItem.DMCState==2"
>
<a
style=
"color:red"
>
地接-暂定
</a>
</
template
>
<
template
v-else-if=
"hItem.DMCState==0"
>
<a
style=
"color:red"
>
地接-未操作
</a>
</
template
>
</td>
<td
style=
"text-align:center;"
width=
"90"
>
<a
style=
"text-decoration:underline;color:blue;cursor:pointer;"
@
click=
"DelItem(hItem)"
>
删除
</a>
</td>
</tr>
</table>
</div>
<div
style=
"text-align:center;margin-top:20px;"
>
<input
type=
"button"
class=
"normalBtn"
value=
"保存"
@
click=
"SaveHotelOrder()"
/>
<input
type=
"button"
class=
"normalBtn"
value=
"关闭"
@
click=
"CloseHotel()"
/>
</div>
</el-dialog>
</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
>
import
com
monHotelWork
from
"../../commonPage/commonHotelWork
.vue"
;
import
com
CheckHotel
from
"../../commonPage/comCheckHotel
.vue"
;
export
default
{
data
()
{
return
{
//查询条件
loading
:
false
,
currentPage
:
1
,
total
:
0
,
msg
:
{
YearMonthStr
:
""
,
CountryId
:
651
,
//只查询日本
//酒店选择数组
HotelChooseArray
:
[],
Province
:
0
,
//省份编号
City
:
0
,
//城市编号
OutBranchId
:
-
1
,
//出团公司编号
//星级
Star
:
0
,
//价格等级
PriceLevel
:
0
,
//供应商
Supplier
:
0
,
},
qMsg
:
{
DateStr
:
""
,
pageIndex
:
1
,
pageSize
:
5
,
SelectType
:
1
,
StartDate
:
''
,
EndDate
:
''
,
//酒店编号
HotelId
:
0
,
TCID
:
0
,
TCNUM
:
""
,
//团号
},
//团查询条件
defaultSelectValue
:
0
,
dataList
:
[],
loading
:
false
,
isShow
:
false
,
changeLoading
:
false
,
//改变酒店loading
MyDataList
:
[],
//获取可变更的酒店列表
outerVisible
:
false
,
//省份列表
provinceList
:
[],
//城市列表
cityList
:
[],
//供应商列表
SupplierList
:
[],
//公司列表
companyList
:
[],
//酒店列表
HotelList
:
[],
};
//日期
DateStr
:
""
,
//出团公司
OutBranchIds
:
[],
LineId
:
14
,
PlaceID
:
0
,
LineteamId
:
0
,
//航空公司
AirLineId
:
0
,
CreateBy
:
0
,
TCNUM
:
''
,
PriceStatus
:
0
,
CombinationNum
:
''
,
HotelStatus
:
0
},
DataList
:
[],
//数据列表
boxHeight
:
0
,
queryCommonData
:
{
//公司数据
BranchList
:
[],
//国家
PlaceList
:
[],
LineList
:
[],
LineTeamList
:
[],
AirlineList
:
[],
EmployeeList
:
[],
},
findex
:
0
,
childIndex
:
0
,
pickerBeginDateBefore
:
{
disabledDate
:
time
=>
{
if
(
this
.
msg
.
EndDate
==
null
)
{
return
false
;
}
else
{
let
endTime
=
new
Date
(
this
.
msg
.
EndDate
)
return
endTime
.
getTime
()
<
time
.
getTime
()
}
}
},
pickerBeginDateAfter
:
{
disabledDate
:
time
=>
{
let
startTime
=
new
Date
(
this
.
msg
.
StartDate
)
return
startTime
.
getTime
()
>=
time
.
getTime
()
}
}
}
},
components
:
{
com
monHotelWork
com
CheckHotel
},
methods
:
{
GotoHotel
(
HotelId
)
{
goUrlR
(
path
,
obj
,
title
)
{
this
.
$router
.
push
({
path
:
"HotelManagement"
,
name
:
path
,
query
:
{
ID
:
HotelId
,
tab
:
"酒店查询"
,
"ID"
:
obj
,
blank
:
'y'
,
tab
:
title
}
})
;
})
},
ChangeStatus
(
item
)
{
item
.
IsChecked
=
!
item
.
IsChecked
;
goUrlT
(
path
,
obj
,
title
)
{
this
.
$router
.
push
({
name
:
path
,
query
:
{
"id"
:
obj
,
blank
:
'y'
,
tab
:
title
}
})
},
CloseHotel
()
{
this
.
outerVisible
=
false
;
this
.
MyDataList
=
[];
this
.
qMsg
.
DateStr
=
""
;
this
.
qMsg
.
HotelId
=
0
;
this
.
qMsg
.
TCID
=
0
;
this
.
qMsg
.
TCNUM
=
""
;
goUrl
(
path
,
obj
,
outItem
,
title
)
{
this
.
$router
.
push
({
name
:
path
,
query
:
{
"id"
:
obj
.
TCIDS
,
'TCNUM'
:
obj
.
TCNUMS
,
'flightTotal'
:
obj
.
TotalSeat
,
'GuestNum'
:
obj
.
CommonReport
.
HouseStatistics
.
RealityNum
,
'NewCombinationNum'
:
outItem
.
NewCombinationNum
,
'LeaderName'
:
obj
.
LeaderName
,
'GuideName'
:
obj
.
GuideName
,
blank
:
'y'
,
tab
:
title
}
})
},
GetClickItem
(
DateStr
,
HotelId
,
TCID
)
{
this
.
qMsg
.
DateStr
=
DateStr
;
this
.
qMsg
.
HotelId
=
HotelId
;
this
.
qMsg
.
TCID
=
TCID
;
this
.
qMsg
.
TCNUM
=
""
;
this
.
GetChangeHotelList
();
handleCurrentChange
(
val
)
{
this
.
msg
.
pageIndex
=
val
;
this
.
getList
();
},
//获取可以改变的酒店列表
GetChangeHotelList
()
{
this
.
changeLoading
=
true
;
this
.
MyDataList
=
[];
var
that
=
this
;
this
.
apipost
(
"journeyorder_post_GetCanChangeHotelListService"
,
this
.
qMsg
,
res
=>
{
that
.
changeLoading
=
false
;
if
(
res
.
data
.
resultCode
==
1
)
{
var
nArray
=
res
.
data
.
data
;
nArray
.
forEach
(
item
=>
{
if
(
item
.
TCID
==
this
.
qMsg
.
TCID
)
{
item
.
IsChecked
=
true
;
}
resetPageIndex
()
{
this
.
msg
.
pageIndex
=
1
;
this
.
currentPage
=
1
;
},
getList
()
{
this
.
loading
=
true
;
this
.
apipost
(
'dmcstatistics_post_GetUniteCombinationNumService'
,
this
.
msg
,
res
=>
{
this
.
loading
=
false
;
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
total
=
res
.
data
.
data
.
count
;
var
sourceData
=
res
.
data
.
data
.
pageData
.
data
;
if
(
sourceData
)
{
sourceData
.
forEach
(
rootItem
=>
{
var
rootRowspan
=
0
;
//合团跨行
rootItem
.
StaticsReportList
.
forEach
(
subItem
=>
{
var
itemRowSpan
=
0
;
//酒店跨行
subItem
.
CommonReport
.
HotelOrderListReport
.
forEach
(
thirdItem
=>
{
thirdItem
.
HotelOrderList
.
forEach
(
lastItem
=>
{
rootRowspan
++
;
itemRowSpan
++
;
});
thirdItem
.
isShowPop
=
false
;
});
subItem
.
itemRowSpan
=
itemRowSpan
;
});
rootItem
.
rootRowspan
=
rootRowspan
;
});
that
.
MyDataList
=
nArray
;
}
else
{
that
.
Error
(
res
.
data
.
message
);
}
},
err
=>
{}
);
},
//保存酒店订单
SaveHotelOrder
()
{
var
that
=
this
;
that
.
Confirm
(
"是否要替换选中的酒店?"
,
function
()
{
var
newList
=
[];
if
(
that
.
MyDataList
&&
that
.
MyDataList
.
length
>
0
)
{
that
.
MyDataList
.
forEach
(
item
=>
{
if
(
item
.
IsChecked
)
{
var
Nitem
=
JSON
.
parse
(
JSON
.
stringify
(
item
));
Nitem
.
NewHotelID
=
that
.
qMsg
.
HotelId
;
newList
.
push
(
Nitem
);
}
});
this
.
DataList
=
sourceData
;
this
.
$forceUpdate
()
}
else
{
this
.
Error
(
res
.
data
.
message
)
}
if
(
newList
&&
newList
.
length
>
0
)
{
that
.
apipost
(
"journeyorder_post_SaveWorkHotelOrderService"
,
newList
,
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
that
.
Success
(
res
.
data
.
message
);
that
.
getList
();
that
.
CloseHotel
();
}
else
{
that
.
Error
(
res
.
data
.
message
);
}
},
err
=>
{}
);
},
err
=>
{})
},
getLineList
()
{
this
.
apipost
(
"line_post_GetAllList"
,
{},
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
queryCommonData
.
LineList
=
res
.
data
.
data
;
this
.
queryCommonData
.
PlaceList
=
[]
this
.
queryCommonData
.
LineTeamList
=
[]
}
else
{
th
at
.
Info
(
"请选择团期!"
);
th
is
.
Error
(
res
.
data
.
message
);
}
});
},
//删除酒店
DelItem
(
hItem
)
{
var
that
=
this
;
this
.
Confirm
(
"是否删除?删除后将不能恢复!"
,
function
()
{
that
.
apipost
(
'dmcstatistics_post_DeleteHotelOrder'
,
{
ID
:
hItem
.
ID
,
TCID
:
hItem
.
TCID
},
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
that
.
Success
(
res
.
data
.
message
);
that
.
getList
();
that
.
GetChangeHotelList
();
}
else
{
that
.
Error
(
res
.
data
.
message
);
}
},
err
=>
{})
});
getChildHotel
(
index
,
subIndex
)
{
this
.
findex
=
index
;
this
.
childIndex
=
subIndex
;
let
str
=
`comCheckHotel
${
index
}${
subIndex
}
`
this
.
$refs
[
str
][
0
].
getCheckHotel
();
},
getList
()
{
this
.
loading
=
true
;
this
.
isShow
=
false
;
this
.
dataList
=
[];
if
(
this
.
msg
.
YearMonthStr
==
""
)
{
this
.
msg
.
YearMonthStr
=
new
Date
().
Format
(
"yyyy-MM"
);
//获取目的地列表
getLinePlaceList
()
{
this
.
msg
.
PlaceID
=
0
;
this
.
msg
.
LineteamId
=
0
;
let
msg
=
{
lineID
:
this
.
msg
.
LineId
,
}
this
.
apipost
(
'team_post_GetLinePlace'
,
msg
,
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
queryCommonData
.
PlaceList
=
res
.
data
.
data
this
.
queryCommonData
.
LineTeamList
=
[]
}
})
},
//获取系列列表
getLineTeamList
()
{
this
.
msg
.
LineteamId
=
0
let
msg
=
{
lineID
:
this
.
msg
.
LineId
,
placeID
:
this
.
msg
.
PlaceID
,
isTOOP
:
1
}
this
.
apipost
(
"hotel_post_GetHotelWorkListService"
,
this
.
msg
,
this
.
apipost
(
'team_post_GetList'
,
msg
,
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
queryCommonData
.
LineTeamList
=
res
.
data
.
data
}
})
},
//获取航空公司
getAirlineList
()
{
this
.
apipost
(
'airline_post_GetList'
,
{},
res
=>
{
this
.
loading
=
false
;
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
dataList
=
res
.
data
.
data
;
this
.
isShow
=
true
;
}
else
{
this
.
Error
(
res
.
data
.
message
);
this
.
queryCommonData
.
AirlineList
=
res
.
data
.
data
}
},
err
=>
{}
)
;
)
},
getProvinceList
(
ID
,
type
)
{
//根据省份获取城市
//根据当前员工所在部门获取该部门及子部门员工信息
getEmployeeList
()
{
let
userInfo
=
this
.
getLocalStorage
()
let
msg
=
{
Id
:
ID
};
if
(
type
==
1
)
{
this
.
msg
.
Province
=
0
;
this
.
msg
.
City
=
0
;
this
.
provinceList
=
[];
this
.
cityList
=
[];
}
else
if
(
type
==
2
)
{
this
.
msg
.
City
=
0
;
this
.
cityList
=
[];
GroupId
:
userInfo
.
RB_Group_id
,
BranchId
:
'-1'
,
DepartmentId
:
'-1'
,
PostId
:
'-1'
,
IsLeave
:
'0'
}
this
.
apipost
(
"dict_post_Destination_GetChildList"
,
msg
,
'admin_get_EmployeeGetList'
,
{},
res
=>
{
if
(
type
==
1
)
{
this
.
provinceList
=
res
.
data
.
data
;
}
else
if
(
type
==
2
)
{
this
.
cityList
=
res
.
data
.
data
;
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
queryCommonData
.
EmployeeList
=
res
.
data
.
data
}
},
err
=>
{}
);
},
// 获取供应商
initSupplier
()
{
this
.
apipost
(
"supplier_post_GetAllList"
,
{
Type
:
1
},
res
=>
{
if
(
res
.
data
.
resultCode
===
1
)
{
this
.
SupplierList
=
res
.
data
.
data
;
}
},
err
=>
{});
)
},
getBranchList
()
{
this
.
apipost
(
'admin_get_BranchGetList'
,
{
RB_Group_Id
:
'2'
,
//初始化公司
getCompanyList
()
{
let
userInfo
=
this
.
getLocalStorage
()
var
RB_Group_id
=
userInfo
.
RB_Group_id
let
msg
=
{
Status
:
0
,
},
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
companyList
=
res
.
data
.
data
;
}
},
err
=>
{})
},
//获取酒店列表
GetHotelList
()
{
is_show
:
0
,
RB_Group_Id
:
RB_Group_id
}
this
.
apipost
(
"hotel_post_GetHasStockHotelList"
,
{
Country
:
651
,
IsMoreThanZero
:
1
},
'admin_get_BranchGetList'
,
msg
,
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
Hotel
List
=
res
.
data
.
data
;
this
.
queryCommonData
.
Branch
List
=
res
.
data
.
data
;
}
},
err
=>
{}
);
},
//Excel下载
DownLoadHotelWork
()
{
this
.
loading
=
true
;
let
qMsg
=
{
queryMsg
:
this
.
msg
,
uid
:
this
.
getLocalStorage
().
EmployeeId
};
let
fileName
=
"酒店工作表"
+
this
.
$commonUtils
.
getCurrentDate
()
+
".xls"
;
this
.
GetLocalFile
(
"hotel_get_downloadHotelWork"
,
qMsg
,
fileName
,
res
=>
{
this
.
loading
=
false
;
});
)
},
},
mounted
()
{
this
.
GetHotelList
();
this
.
msg
.
YearMonthStr
=
new
Date
().
Format
(
"yyyy-MM"
);
// this.msg.YearMonthStr="2019-10";
// this.msg.HotelChooseArray=[1489];
this
.
getProvinceList
(
651
,
1
);
//this.getBranchList();
this
.
initSupplier
();
let
myDate
=
new
Date
();
let
nowDate
=
myDate
.
getFullYear
()
+
"-"
+
parseInt
(
myDate
.
getMonth
()
+
1
)
+
"-"
+
myDate
.
getDate
();
if
(
this
.
$route
.
query
.
hotelId
)
{
this
.
msg
.
HotelId
=
this
.
$route
.
query
.
hotelId
;
}
if
(
this
.
$route
.
query
.
dateStr
)
{
this
.
msg
.
DateStr
=
this
.
$route
.
query
.
dateStr
;
}
if
(
this
.
$route
.
query
.
hotelId
||
this
.
$route
.
query
.
dateStr
)
{
this
.
msg
.
StartDate
=
""
;
}
else
{
this
.
msg
.
StartDate
=
nowDate
;
}
let
width
=
window
.
innerWidth
-
50
;
let
height
=
window
.
innerHeight
-
65
-
164
;
this
.
boxHeight
=
height
;
this
.
offsetwidth
=
width
;
this
.
getLinePlaceList
();
this
.
getAirlineList
();
this
.
getEmployeeList
();
this
.
getCompanyList
();
this
.
getList
();
},
}
;
}
</
script
>
<
style
>
.PriceHotelWorkList
.roomReservationsSplitTrCss
td
{
background
:
#eee
!important
;
}
.PriceHotelWorkList
.roomReservationsTalbe
{
background
:
#ccc
;
}
.PriceHotelWorkList
.roomReservationsTalbe
tr
th
{
background
:
#E6E6E6
;
height
:
40px
;
font-size
:
12px
;
color
:
#333
;
}
.PriceHotelWorkList
.roomReservationsTalbe
tr
{
background
:
#fff
;
text-align
:
center
;
height
:
40px
;
}
.PriceHotelWorkList
.roomReservationsTalbe
tr
td
{
font-size
:
12px
;
}
.PriceHotelWorkList
.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
;
}
.PriceHotelWorkList
.roomReservationsTalbe
tr
td
.pDateStyle
:last-child
{
border-bottom
:
none
;
}
.PriceHotelWorkList
.roomReservationsTalbe
tr
td
.pDateStyle
>
span
:after
{
content
:
'/'
;
}
.PriceHotelWorkList
.roomReservationsTalbe
tr
td
.pDateStyle
>
span
:last-child:after
{
content
:
''
}
.PriceHotelWorkList
.roomReservationsTalbe
tr
td
.link
p
:hover
{
text-decoration
:
underline
;
cursor
:
pointer
;
}
.PriceHotelWorkList
.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
>
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