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
bf3cfb10
Commit
bf3cfb10
authored
Aug 28, 2019
by
华国豪
🙄
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master' of
http://gitlab.oytour.com/luochao/superman
parents
d96cb3cf
8e692580
Show whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
439 additions
and
392 deletions
+439
-392
bookDinnerStatisticsDetails.vue
src/components/Restaurant/bookDinnerStatisticsDetails.vue
+6
-3
groupTourOrder.vue
src/components/SalesModule/groupTourOrder.vue
+2
-3
TravelPassengerList2.vue
...ponents/TravelManager/TravelList/TravelPassengerList2.vue
+174
-343
TravelpassengerList.vue
...mponents/TravelManager/TravelList/TravelpassengerList.vue
+251
-38
comCheckDinner.vue
src/components/commonPage/comCheckDinner.vue
+2
-1
config.js
src/router/config.js
+4
-4
No files found.
src/components/Restaurant/bookDinnerStatisticsDetails.vue
View file @
bf3cfb10
...
...
@@ -53,8 +53,10 @@
<tr>
<td
colspan=
"2"
>
<span
style=
"padding-left:5px;"
class=
"link"
@
click=
"goUrlR('restaurantList',subItem.DiningID,'餐厅列表')"
>
{{
subItem
.
DiningName
}}
</span>
@
click=
"goUrlR('restaurantList',subItem.DiningID,'餐厅列表')"
>
{{
subItem
.
DiningName
}}
<br/>
真实名称:
{{
subItem
.
DiningRealName
}}
</span>
</td>
</tr>
<tr>
...
...
@@ -82,7 +84,7 @@
<el-option
v-for=
'itemHotel in item.DinnerList'
:label=
'itemHotel.RealName'
:value=
'itemHotel.ID'
:key=
'itemHotel.ID'
></el-option>
</el-select>
<span
style=
"color:green"
>
{{
subItem
.
NewDiningName
}}
</span><br/>
<span
style=
"color:green"
>
{{
subItem
.
NewDining
Real
Name
}}
</span><br/>
<el-popover
placement=
"right"
width=
"540"
trigger=
"click"
v-model=
"subItem.isShowPop"
>
<comCheckDinner
:ref=
"'comCheckDinner'+index+subIndex+''"
:UseDate=
"item.UseTimeStr"
v-on:childDinner=
"childDinnerList"
>
...
...
@@ -261,6 +263,7 @@
oldData
.
PayStyleExt
=
obj
.
PayStyle
;
oldData
.
NewDiningID
=
obj
.
ID
;
oldData
.
NewDiningName
=
obj
.
Name
;
oldData
.
NewDiningRealName
=
obj
.
RealName
;
this
.
list
.
forEach
(
x
=>
{
x
.
DiningSummaryList
.
forEach
(
y
=>
{
y
.
isShowPop
=
false
;
...
...
src/components/SalesModule/groupTourOrder.vue
View file @
bf3cfb10
...
...
@@ -1390,7 +1390,7 @@
</td>
<td
width=
"70"
>
报名类型
</td>
<td>
<el-select
v-model=
'msg.GroupType
'
filterab
le
:placeholder=
"$t('pub.pleaseSel')"
>
<el-select
v-model=
'msg.GroupType
Array'
filterable
multip
le
:placeholder=
"$t('pub.pleaseSel')"
>
<el-option
label=
"不限"
value=
'-1'
></el-option>
<el-option
v-for=
"item in ctlxList"
:label=
'item.Name'
:value=
'item.Id'
:key=
'item.Id'
>
</el-option>
...
...
@@ -2189,6 +2189,7 @@
ContactName
:
''
,
CustomerId
:
'-1'
,
GroupType
:
'-1'
,
GroupTypeArray
:[],
OrderSource
:
'-1'
,
CStartDate
:
''
,
CEndDate
:
''
,
...
...
@@ -3927,12 +3928,10 @@
'sellorder_post_GetTravelOrderList'
,
this
.
msg
,
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
loading
=
false
this
.
total
=
res
.
data
.
data
.
count
this
.
list
=
res
.
data
.
data
.
pageData
;
console
.
log
(
this
.
list
,
'list'
);
}
else
{
this
.
$message
.
error
(
res
.
data
.
message
)
}
...
...
src/components/TravelManager/TravelList/TravelPassengerList2.vue
View file @
bf3cfb10
<
style
>
.PassengerList2
.PT_teamTable
.PT_teamTable
{
width
:
5
00px
;
.PassengerList2
.PT_teamTable
{
width
:
8
00px
;
border-collapse
:
collapse
;
}
.PT_teamTable
td
,
.PT_teamTable
th
{
}
.PassengerList2
.PT_teamTable
td
,
.PassengerList2
.PT_teamTable
th
{
border
:
1px
solid
#dcdcdc
;
padding
:
5px
;
height
:
30px
;
}
.PT_teamTable
tr
th
{
}
.PassengerList2
.PT_teamTable
tr
th
{
background
:
#eee
;
height
:
30px
;
border
:
1px
solid
#dcdcdc
;
}
.PT_teamTable
tr
td
{
background
:
#fff
;}
.travelpassengerlist
{
font-size
:
12px
;
background
:
#dcdcdc
;}
.travelpassengerlist
tr
th
{
height
:
30px
;
}
.travelpassengerlist
tr
td
{
background
:
#fff
;
text-align
:
center
;}
/*拒签人员*/
.travelpassengerlist
.redTr
td
{
color
:
#E95252
;
}
.leader2Btn
{
color
:
#fff
;
padding
:
0
15px
;
.PassengerList2
.PT_teamTable
tr
td
{
background
:
#fff
;
}
.PassengerList2
.travelpassengerlist
{
font-size
:
12px
;
background
:
#dcdcdc
;
}
.PassengerList2
.travelpassengerlist
tr
th
{
height
:
30px
;
background
:
#e95252
;
border
:
1px
solid
#e95252
;
cursor
:
pointer
;
border-radius
:
15px
;
}
.PassengerList2
input
.houseno
{
border
:
none
;
border-bottom
:
1px
solid
#dcdcdc
;
transition
:
all
linear
.5s
;
}
.PassengerList2
input
.houseno
:focus
{
border-bottom
:
1px
solid
#e95252
;
}
.tips__
{
color
:
#e95252
;
}
.PassengerList2
.travelpassengerlist
tr
td
{
background
:
#fff
;
text-align
:
center
;
margin
:
10px
;
}
}
/*拒签人员*/
.PassengerList2
.travelpassengerlist
.redTr
td
{
color
:
#E95252
;
}
</
style
>
<
template
>
<div
class=
"flexOne PassengerList
PassengerList
2"
>
<div
class=
"flexOne PassengerList2"
>
<div
class=
"query-box"
>
<ul>
<li>
...
...
@@ -57,38 +47,27 @@
<tr>
<th
width=
"140"
>
团号
</th>
<th>
团名
</th>
<th
width=
"60"
>
人数
</th>
<th
width=
"120"
>
出发日期
</th>
</tr>
<tr
v-for=
"item in QueryMsg.TeamInfoData"
>
<td><a
@
click=
"goUrlTravelControl('团控列表','TravelControlList',item.TCID,item.TCNUM)"
style=
"cursor:pointer;color:blue;"
>
{{
item
.
TCNUM
}}
</a></td>
<td><a
@
click=
"goUrlTravelControl('团控列表','TravelControlList',item.TCID,item.TCNUM)"
style=
"cursor:pointer;color:blue;"
>
{{
item
.
TCNUM
}}
</a></td>
<td>
{{
item
.
Title
}}
</td>
<td>
{{
item
.
Inventory
}}
人
</td>
<td>
{{
item
.
StartDate
}}
{{
item
.
WeekStr
}}
</td>
</tr>
</table>
</li>
<li>
<input
type=
"button"
class=
"normalBtn"
v-if=
"!allDIs"
value=
"分房表确认"
@
click=
"querenHotel()"
>
<input
type=
"button"
class=
"normalBtn"
value=
"导出报表"
@
click=
"exportExcel()"
>
</li>
</ul>
</div>
<p
class=
"tips__"
v-if=
"allDIs"
>
op已确认分房,不能在进行任何操作
</p>
<table
style=
"margin-bottom: 50px;"
class=
"travelpassengerlist"
border=
"0"
cellspacing=
"1"
cellpadding=
"0"
v-loading=
"QueryMsg.loading"
>
<table
class=
"travelpassengerlist"
border=
"0"
cellspacing=
"1"
cellpadding=
"0"
v-loading=
"QueryMsg.loading"
>
<tr>
<th
width=
"50"
>
房间数
</th>
<th
width=
"50"
>
房号
</th>
<th
width=
"130"
>
酒店及房型
</th>
<th
width=
"130"
>
旅客姓名
</th>
<th
width=
"120"
>
占床
</th>
<th
width=
"110"
>
英文姓
</th>
<th
width=
"145"
>
英文名
</th>
<th
width=
"45"
>
性别
</th>
...
...
@@ -108,35 +87,23 @@
<th
width=
"120"
>
签证类型
</th>
</tr>
<tr>
<td
v-show=
"QueryMsg.dataList.Length==0"
colspan=
"
23
"
align=
"center"
>
暂无数据
</td>
<td
v-show=
"QueryMsg.dataList.Length==0"
colspan=
"
12
"
align=
"center"
>
暂无数据
</td>
</tr>
<!--
<template
v-for=
"(item, index) in QueryMsg.dataList"
>
-->
<tr
v-for=
"(subItem, subIndex) in dataList"
:class=
"
{'redTr':subItem.VisaState==1}">
<td>
{{
subIndex
+
1
}}
</td>
<td
width=
"80"
>
<el-select
v-model=
"subItem.HouseNo"
placeholder=
"请选择"
@
change=
"sortNumberN(subItem, subIndex)"
>
<el-option
v-for=
"(hs, hsIndex) in numberList"
:disabled=
"(subItem.HouseType == 1 && IsLeaderGuide == 1) || hs.dis || allDIs"
:key=
"hs.name"
:label=
"hs.name"
:value=
"hs.name"
>
</el-option>
</el-select>
</td>
<tbody
v-for=
"(item,index) in QueryMsg.dataList"
:key=
"index"
>
<tr
v-for=
"(subItem,subIndex) in item"
:class=
"
{'redTr':subItem.VisaState==1}">
<td
v-if=
"subIndex==0"
:rowspan=
"subItem.RowsCount"
>
{{
index
+
1
}}
</td>
<td
v-if=
"subIndex==0"
:rowspan=
"subItem.RowsCount"
></td>
<td>
<el-select
v-model=
"subItem.HouseType"
placeholder=
"请选择"
@
change=
"changeRmType(subItem, subIndex)"
>
<el-option
:disabled=
"(subItem.HouseType == 1 && IsLeaderGuide == 1) || allDIs"
v-for=
"(hs, hsIndex) in HouseTypeList"
:key=
"hsIndex"
:label=
"hs.HouseName"
:value=
"hs.HouseType"
>
</el-option>
</el-select>
<!--自然单间 指定单间(单房差)-->
<template
v-if=
"subItem.SingleRoomType==subItem.HouseType"
>
{{
getHouseTypeStr
(
subItem
.
HouseType
)
}}
</
template
>
<
template
v-else
>
{{
getHouseTypeStr
(
subItem
.
SingleRoomType
)
}}
<br
/><span
style=
"color:red;"
>
(指定)
</span>
</
template
>
<
template
v-if=
"subItem.IsBed==0"
><br
/><span
style=
"color:red;"
>
(不占床)
</span></
template
>
</td>
<td>
{{subItem.GuestName}}
</td>
<td>
{{
subItem
.
IsBed
==
1
?
'占床'
:
'不占床'
}}
</td>
<td>
{{subItem.ESurName}}
</td>
<td>
{{subItem.EName}}
</td>
<td>
{{getSexStr(subItem)}}
</td>
...
...
@@ -150,22 +117,19 @@
<td>
{{subItem.MobilePhone}}
</td>
<td>
{{subItem.IdCard}}
</td>
<td>
{{subItem.UnitPrice}}
</td>
<td>
{{
subItem
.
CreateBy
Str
}}
</td>
<td>
{{subItem.CreateBy}}
</td>
<td>
{{subItem.GroupTypeStr}}
</td>
<td
align=
"center"
>
经济舱
<br>
(Y)
</td>
<td>
{{
subItem
.
VisaTypeStr
}}
{{
subItem
.
VisaTypeStr
==
1
?
'拒签'
:
"正常"
}}
</td>
</tr>
<!--
</
template
>
-->
<tr
v-if=
"!allDIs"
>
<td
style=
"text-align:right"
colspan=
"23"
><input
type=
"button"
value=
"保存"
class=
"leader2Btn"
@
click=
"saveOPSetGuestHouse"
></td>
<td>
{{subItem.VisaType}} {{subItem.VisaState==1?'拒签':"正常"}}
</td>
</tr>
</tbody>
</table>
</div>
</template>
<
script
>
export
default
{
export
default
{
data
()
{
return
{
//请求数据
...
...
@@ -174,10 +138,12 @@ export default {
PageSize
:
100
,
TCID
:
0
,
OrderId
:
0
,
currentPage
:
1
currentPage
:
1
,
isGetTicket
:
1
,
//不查询机票
isGetZiYouXing
:
1
,
//不查询自由行
},
IsHaveLeader
:
1
,
//1-有领队,0-无领队
IsLeaderGuide
:
0
,
//1-领兼导,0-领队
IsHaveLeader
:
1
,
//1-有领队,0-无领队
IsLeaderGuide
:
0
,
//1-领兼导,0-领队
TCID
:
0
,
QueryMsg
:
{
loading
:
true
,
...
...
@@ -187,83 +153,10 @@ export default {
OrderId
:
0
,
//团期数据
TeamInfoData
:
[]
},
houseList
:
[],
HouseTypeList
:
[],
numberList
:
[],
dataList
:
[],
allDIs
:
false
,
}
};
},
methods
:
{
// 确认酒店
querenHotel
:
function
(){
this
.
apipost
(
"travel_get_UpdateOpSureHouse"
,
{
TCID
:
this
.
TCID
},
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
$message
.
success
(
'操作成功'
)
this
.
getList
()
}
else
{
this
.
$message
.
error
(
'操作失败'
)
}
},
err
=>
{}
);
},
// 修改类型
changeRmType
:
function
(
obj
,
index
){
let
list
=
this
.
dataList
;
for
(
let
i
=
0
;
i
<
list
.
length
;
i
++
)
{
if
(
obj
.
HouseNo
===
list
[
i
].
HouseNo
)
{
list
[
i
].
HouseType
=
obj
.
HouseType
list
[
i
].
SingleRoomType
=
obj
.
HouseType
}
}
list
=
list
.
sort
(
this
.
compare
)
this
.
dataList
=
list
;
},
compare
:
function
(
obj1
,
obj2
)
{
var
val1
=
Number
(
obj1
.
HouseNo
);
var
val2
=
Number
(
obj2
.
HouseNo
);
if
(
val1
<
val2
)
{
return
-
1
;
}
else
if
(
val1
>
val2
)
{
return
1
;
}
else
{
return
0
;
}
},
// 修改房号
sortNumberN
:
function
(
obj
,
index
){
let
list
=
this
.
dataList
;
// 选择房号后循环数据把房号相同的数据房型修改成一样的
for
(
let
i
=
0
;
i
<
list
.
length
;
i
++
)
{
if
(
obj
.
HouseNo
===
list
[
i
].
HouseNo
&&
obj
.
Id
!==
list
[
i
].
Id
)
{
obj
.
HouseType
=
list
[
i
].
HouseType
list
[
index
].
SingleRoomType
=
list
[
i
].
HouseType
}
}
list
=
list
.
sort
(
this
.
compare
)
this
.
dataList
=
list
;
},
//保存分房
saveOPSetGuestHouse
:
function
(){
this
.
apipost
(
"travel_get_OPSetGuestHouse"
,
this
.
dataList
,
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
$message
.
success
(
'操作成功'
)
this
.
getList
()
}
else
{
this
.
$message
.
error
(
'操作失败'
)
}
},
err
=>
{}
);
},
goUrlTravelControl
(
name
,
path
,
id
,
tcmun
)
{
this
.
$router
.
push
({
name
:
path
,
...
...
@@ -294,108 +187,54 @@ export default {
str
=
"标准双人间"
;
}
else
if
(
HouseType
==
3
)
{
str
=
"大床房"
;
}
else
if
(
HouseType
==
4
)
{
}
else
if
(
HouseType
==
4
)
{
str
=
"三人间"
;
}
else
if
(
HouseType
==
5
)
{
}
else
if
(
HouseType
==
5
)
{
str
=
"拼凑双人间"
;
}
else
{
}
else
{
str
=
"未分配"
;
}
return
str
;
},
getHouseTypeList
:
function
(){
this
.
apipost
(
"travel_get_GetHouseType"
,
this
.
msg
,
res
=>
{
this
.
QueryMsg
.
loading
=
false
;
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
HouseTypeList
=
res
.
data
.
data
;
}
},
err
=>
{}
);
},
setDataList
:
function
(
list
){
var
Diningmap
=
{},
Diningdest
=
[];
for
(
var
i
=
0
;
i
<
list
.
length
;
i
++
){
var
ai
=
list
[
i
];
if
(
!
Diningmap
[
ai
.
HouseNo
]){
Diningdest
.
push
({
HouseType
:
ai
.
HouseType
,
HouseNo
:
ai
.
HouseNo
,
data
:
[
ai
]
});
Diningmap
[
ai
.
HouseNo
]
=
ai
;
}
else
{
for
(
var
j
=
0
;
j
<
Diningdest
.
length
;
j
++
){
var
dj
=
Diningdest
[
j
];
if
(
dj
.
HouseType
==
ai
.
HouseType
&&
dj
.
HouseNo
==
ai
.
HouseNo
){
dj
.
data
.
push
(
ai
);
break
;
}
}
}
}
this
.
QueryMsg
.
dataList
=
Diningdest
;
},
//获取数据
getList
()
{
this
.
QueryMsg
.
loading
=
true
;
this
.
apipost
(
"travel_get_GetTravelGuestPageList_V2
"
,
"travel_get_GetTravelGuestPageList
"
,
this
.
msg
,
res
=>
{
this
.
QueryMsg
.
loading
=
false
;
if
(
res
.
data
.
resultCode
==
1
)
{
let
list
=
res
.
data
.
data
.
pageData
.
result
;
this
.
IsHaveLeader
=
res
.
data
.
data
.
pageData
.
IsHaveLeader
;
this
.
IsLeaderGuide
=
res
.
data
.
data
.
pageData
.
IsLeaderGuide
;
this
.
houseList
=
res
.
data
.
data
.
pageData
.
houseList
;
let
disNum
=
[],
numberList
=
this
.
numberList
;
this
.
allDIs
=
res
.
data
.
data
.
pageData
.
OpSureHouse
==
2
?
true
:
false
list
.
map
(
x
=>
{
if
(
x
.
HouseType
==
1
&&
this
.
IsLeaderGuide
==
1
){
disNum
.
push
(
x
.
HouseNo
)
}
})
for
(
let
i
=
0
;
i
<
disNum
.
length
;
i
++
){
for
(
let
o
=
0
;
o
<
numberList
.
length
;
o
++
){
if
(
disNum
[
i
]
==
numberList
[
o
].
name
){
numberList
[
o
].
dis
=
true
}
}
}
this
.
dataList
=
list
this
.
numberList
=
numberList
// this.setDataList(list)
this
.
QueryMsg
.
dataList
=
res
.
data
.
data
.
pageData
.
result
;
this
.
IsHaveLeader
=
res
.
data
.
data
.
pageData
.
IsHaveLeader
;
this
.
IsLeaderGuide
=
res
.
data
.
data
.
pageData
.
IsLeaderGuide
;
}
},
err
=>
{}
);
},
exportExcel
()
{
this
.
QueryMsg
.
loading
=
true
;
//导出报表
let
msg
=
{
TCID
:
this
.
msg
.
TCID
TCID
:
this
.
msg
.
TCID
,
isGetTicket
:
1
,
//不查询机票
isGetZiYouXing
:
1
,
//不查询自由行
};
var
fileName
=
"旅客名单.xls"
;
if
(
this
.
QueryMsg
.
TeamInfoData
!=
null
)
{
fileName
=
"【"
+
this
.
QueryMsg
.
TeamInfoData
[
0
].
TCNUM
+
"】旅客名单.xls"
;
}
this
.
GetLocalFile
(
"travel_get_GetTravelGuestExport"
,
msg
,
fileName
);
this
.
GetLocalFile
(
"travel_get_GetTravelGuestExport"
,
msg
,
fileName
,
res
=>
{
this
.
QueryMsg
.
loading
=
false
;
});
},
//获取团期信息
getTeamInfo
()
{
var
qmsg
=
{
TCID
:
this
.
TCID
TCID
:
this
.
TCID
,
};
this
.
apipost
(
"travel_get_GetTravelPriceReportInfo"
,
...
...
@@ -410,20 +249,12 @@ export default {
}
},
mounted
()
{
let
numberList
=
[]
for
(
let
i
=
0
;
i
<
99
;
i
++
)
{
numberList
.
push
({
name
:
`
${
i
+
1
}
`
,
dis
:
false
,
})
}
this
.
numberList
=
numberList
this
.
TCID
=
this
.
$route
.
query
.
id
;
this
.
msg
.
TCID
=
this
.
TCID
;
this
.
msg
.
OrderId
=
this
.
$route
.
query
.
OrderId
;
this
.
getTeamInfo
();
this
.
getList
();
this
.
getHouseTypeList
();
}
};
};
</
script
>
src/components/TravelManager/TravelList/TravelpassengerList.vue
View file @
bf3cfb10
<
style
>
.PT_teamTable
{
width
:
8
0
0px
;
.P
assengerList
.PT_teamTable.P
T_teamTable
{
width
:
8
5
0px
;
border-collapse
:
collapse
;
}
.PT_teamTable
td
,
.PT_teamTable
th
{
.P
assengerList
.P
T_teamTable
td
,
.P
assengerList
.P
T_teamTable
th
{
border
:
1px
solid
#dcdcdc
;
padding
:
5px
;
height
:
30px
;
}
.PT_teamTable
tr
th
{
.P
assengerList
.P
T_teamTable
tr
th
{
background
:
#eee
;
height
:
30px
;
border
:
1px
solid
#dcdcdc
;
}
.PT_teamTable
tr
td
{
.P
assengerList
.P
T_teamTable
tr
td
{
background
:
#fff
;
}
.travelpassengerlist
{
.
PassengerList
.
travelpassengerlist
{
font-size
:
12px
;
background
:
#dcdcdc
;
}
.travelpassengerlist
tr
th
{
.
PassengerList
.
travelpassengerlist
tr
th
{
height
:
30px
;
}
.travelpassengerlist
tr
td
{
.
PassengerList
.
travelpassengerlist
tr
td
{
background
:
#fff
;
text-align
:
center
;
}
/*拒签人员*/
.travelpassengerlist
.redTr
td
{
.
PassengerList
.
travelpassengerlist
.redTr
td
{
color
:
#E95252
;
}
.PassengerList
.leader2Btn
{
color
:
#fff
;
padding
:
0
15px
;
height
:
30px
;
background
:
#e95252
;
border
:
1px
solid
#e95252
;
cursor
:
pointer
;
border-radius
:
15px
;
}
.PassengerList
input
.houseno
{
border
:
none
;
border-bottom
:
1px
solid
#dcdcdc
;
transition
:
all
linear
.5s
;
}
.PassengerList
input
.houseno
:focus
{
border-bottom
:
1px
solid
#e95252
;
}
.PassengerList
.tips__
{
color
:
#e95252
;
text-align
:
center
;
margin
:
10px
;
}
</
style
>
<
template
>
<div
class=
"flexOne PassengerList"
>
<div
class=
"flexOne PassengerList
PassengerList
"
>
<div
class=
"query-box"
>
<ul>
<li>
...
...
@@ -51,29 +77,31 @@
<tr>
<th
width=
"140"
>
团号
</th>
<th>
团名
</th>
<th
width=
"60"
>
人数
</th>
<th
width=
"120"
>
出发日期
</th>
</tr>
<tr
v-for=
"item in QueryMsg.TeamInfoData"
>
<td><a
@
click=
"goUrlTravelControl('团控列表','TravelControlList',item.TCID,item.TCNUM)"
style=
"cursor:pointer;color:blue;"
>
{{
item
.
TCNUM
}}
</a></td>
<td>
{{
item
.
Title
}}
</td>
<td>
{{
item
.
Inventory
}}
人
</td>
<td>
{{
item
.
StartDate
}}
{{
item
.
WeekStr
}}
</td>
</tr>
</table>
</li>
<li>
<input
type=
"button"
class=
"normalBtn"
v-if=
"!allDIs"
value=
"分房表确认"
@
click=
"querenHotel()"
>
<input
type=
"button"
class=
"normalBtn"
value=
"导出报表"
@
click=
"exportExcel()"
>
</li>
</ul>
</div>
<table
class=
"travelpassengerlist"
border=
"0"
cellspacing=
"1"
cellpadding=
"0"
v-loading=
"QueryMsg.loading"
>
<p
class=
"tips__"
v-if=
"allDIs"
>
op已确认分房,不能在进行任何操作
</p>
<table
style=
"margin-bottom: 50px;"
class=
"travelpassengerlist"
border=
"0"
cellspacing=
"1"
cellpadding=
"0"
v-loading=
"QueryMsg.loading"
>
<tr>
<th
width=
"50"
>
房间数
</th>
<th
width=
"50"
>
房号
</th>
<th
width=
"130"
>
酒店及房型
</th>
<th
width=
"130"
>
旅客姓名
</th>
<th
width=
"120"
>
占床
</th>
<th
width=
"110"
>
英文姓
</th>
<th
width=
"145"
>
英文名
</th>
<th
width=
"45"
>
性别
</th>
...
...
@@ -93,23 +121,28 @@
<th
width=
"120"
>
签证类型
</th>
</tr>
<tr>
<td
v-show=
"QueryMsg.dataList.Length==0"
colspan=
"
12
"
align=
"center"
>
暂无数据
</td>
<td
v-show=
"QueryMsg.dataList.Length==0"
colspan=
"
23
"
align=
"center"
>
暂无数据
</td>
</tr>
<tbody
v-for=
"(item,index) in QueryMsg.dataList"
:key=
"index"
>
<tr
v-for=
"(subItem,subIndex) in item"
:class=
"
{'redTr':subItem.VisaState==1}">
<td
v-if=
"subIndex==0"
:rowspan=
"subItem.RowsCount"
>
{{
index
+
1
}}
</td>
<td
v-if=
"subIndex==0"
:rowspan=
"subItem.RowsCount"
></td>
<tbody>
<tr
v-for=
"(subItem, subIndex) in dataList"
:class=
"
{'redTr':subItem.VisaState==1}">
<td>
{{
subIndex
+
1
}}
</td>
<td
width=
"80"
>
<el-select
v-model=
"subItem.HouseNo"
placeholder=
"请选择"
@
change=
"sortNumberN(subItem, subIndex)"
>
<el-option
v-for=
"(hs, hsIndex) in numberList"
:disabled=
"(subItem.HouseType == 1 && IsLeaderGuide == 1) || hs.dis || allDIs"
:key=
"hs.name"
:label=
"hs.name"
:value=
"hs.name"
>
</el-option>
</el-select>
</td>
<td>
<!--自然单间 指定单间(单房差)-->
<template
v-if=
"subItem.SingleRoomType==subItem.HouseType"
>
{{
getHouseTypeStr
(
subItem
.
HouseType
)
}}
</
template
>
<
template
v-else
>
{{
getHouseTypeStr
(
subItem
.
SingleRoomType
)
}}
<br
/><span
style=
"color:red;"
>
(指定)
</span>
</
template
>
<
template
v-if=
"subItem.IsBed==0"
><br
/><span
style=
"color:red;"
>
(不占床)
</span></
template
>
<el-select
v-model=
"subItem.HouseType"
placeholder=
"请选择"
@
change=
"changeRmType(subItem, subIndex)"
>
<el-option
:disabled=
"(subItem.HouseType == 1 && IsLeaderGuide == 1) || allDIs"
v-for=
"(hs, hsIndex) in HouseTypeList"
:key=
"hsIndex"
:label=
"hs.HouseName"
:value=
"hs.HouseType"
>
</el-option>
</el-select>
</td>
<td>
{{
subItem
.
GuestName
}}
</td>
<td>
{{
subItem
.
IsBed
==
1
?
'占床'
:
'不占床'
}}
</td>
<td>
{{
subItem
.
ESurName
}}
</td>
<td>
{{
subItem
.
EName
}}
</td>
<td>
{{
getSexStr
(
subItem
)
}}
</td>
...
...
@@ -123,12 +156,51 @@
<td>
{{
subItem
.
MobilePhone
}}
</td>
<td>
{{
subItem
.
IdCard
}}
</td>
<td>
{{
subItem
.
UnitPrice
}}
</td>
<td>
{{subItem.CreateBy}}
</td>
<td>
{{
subItem
.
CreateBy
Str
}}
</td>
<td>
{{
subItem
.
GroupTypeStr
}}
</td>
<td
align=
"center"
>
经济舱
<br>
(Y)
</td>
<td>
{{subItem.VisaType}} {{subItem.VisaState==1?'拒签':"正常"}}
</td>
<td>
{{
subItem
.
VisaTypeStr
}}
{{
subItem
.
VisaTypeStr
==
1
?
'拒签'
:
"正常"
}}
</td>
</tr>
<tr
v-if=
"!allDIs"
style=
"height:50px; line-height:50px;"
>
<td
style=
"text-align:right"
colspan=
"23"
><input
type=
"button"
value=
"保存"
class=
"leader2Btn"
@
click=
"saveOPSetGuestHouse"
></td>
</tr>
</tbody>
<!--单机票和自由行-->
<tbody>
<tr
style=
"height:50px; line-height:50px;"
>
<td
colspan=
"23"
></td>
</tr>
<tr
v-for=
"(subItem, subIndex) in otherList"
:class=
"
{'redTr':subItem.VisaState==1}">
<td>
{{
subIndex
+
1
}}
</td>
<td
width=
"80"
>
</td>
<td>
{{
subItem
.
GroupTypeStr
}}
</td>
<td>
{{
subItem
.
GuestName
}}
</td>
<td>
{{
subItem
.
IsBed
==
1
?
'占床'
:
'不占床'
}}
</td>
<td>
{{
subItem
.
ESurName
}}
</td>
<td>
{{
subItem
.
EName
}}
</td>
<td>
{{
getSexStr
(
subItem
)
}}
</td>
<td>
{{
subItem
.
Birthday
}}
</td>
<td>
{{
subItem
.
PeopleType
}}
</td>
<td>
{{
subItem
.
BirthdayAddress
}}
</td>
<td>
{{
subItem
.
PassportNo
}}
</td>
<td>
{{
subItem
.
PassportAddress
}}
</td>
<td>
{{
subItem
.
PassportIssued
}}
</td>
<td>
{{
subItem
.
PassportExpiry
}}
</td>
<td>
{{
subItem
.
MobilePhone
}}
</td>
<td>
{{
subItem
.
IdCard
}}
</td>
<td>
{{
subItem
.
UnitPrice
}}
</td>
<td>
{{
subItem
.
CreateByStr
}}
</td>
<td>
{{
subItem
.
GroupTypeStr
}}
</td>
<td
align=
"center"
>
经济舱
<br>
(Y)
</td>
<td>
{{
subItem
.
VisaTypeStr
}}
{{
subItem
.
VisaTypeStr
==
1
?
'拒签'
:
"正常"
}}
</td>
</tr>
</tbody>
</table>
...
...
@@ -144,7 +216,9 @@
PageSize
:
100
,
TCID
:
0
,
OrderId
:
0
,
currentPage
:
1
currentPage
:
1
,
isGetTicket
:
1
,
//查询机票
isGetZiYouXing
:
1
,
//查询自由行
},
IsHaveLeader
:
1
,
//1-有领队,0-无领队
IsLeaderGuide
:
0
,
//1-领兼导,0-领队
...
...
@@ -157,10 +231,85 @@
OrderId
:
0
,
//团期数据
TeamInfoData
:
[]
}
},
houseList
:
[],
HouseTypeList
:
[],
numberList
:
[],
dataList
:
[],
otherList
:
[],
//单机票和自由行列表
allDIs
:
false
,
};
},
methods
:
{
// 确认酒店
querenHotel
:
function
()
{
this
.
apipost
(
"travel_get_UpdateOpSureHouse"
,
{
TCID
:
this
.
TCID
},
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
$message
.
success
(
'操作成功'
)
this
.
getList
()
}
else
{
this
.
$message
.
error
(
'操作失败'
)
}
},
err
=>
{}
);
},
// 修改类型
changeRmType
:
function
(
obj
,
index
)
{
let
list
=
this
.
dataList
;
for
(
let
i
=
0
;
i
<
list
.
length
;
i
++
)
{
if
(
obj
.
HouseNo
===
list
[
i
].
HouseNo
)
{
list
[
i
].
HouseType
=
obj
.
HouseType
list
[
i
].
SingleRoomType
=
obj
.
HouseType
}
}
list
=
list
.
sort
(
this
.
compare
)
this
.
dataList
=
list
;
},
compare
:
function
(
obj1
,
obj2
)
{
var
val1
=
Number
(
obj1
.
HouseNo
);
var
val2
=
Number
(
obj2
.
HouseNo
);
if
(
val1
<
val2
)
{
return
-
1
;
}
else
if
(
val1
>
val2
)
{
return
1
;
}
else
{
return
0
;
}
},
// 修改房号
sortNumberN
:
function
(
obj
,
index
)
{
let
list
=
this
.
dataList
;
// 选择房号后循环数据把房号相同的数据房型修改成一样的
for
(
let
i
=
0
;
i
<
list
.
length
;
i
++
)
{
if
(
obj
.
HouseNo
===
list
[
i
].
HouseNo
&&
obj
.
Id
!==
list
[
i
].
Id
)
{
obj
.
HouseType
=
list
[
i
].
HouseType
list
[
index
].
SingleRoomType
=
list
[
i
].
HouseType
}
}
list
=
list
.
sort
(
this
.
compare
)
this
.
dataList
=
list
;
},
//保存分房
saveOPSetGuestHouse
:
function
()
{
this
.
apipost
(
"travel_get_OPSetGuestHouse"
,
this
.
dataList
,
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
$message
.
success
(
'操作成功'
)
this
.
getList
()
}
else
{
this
.
$message
.
error
(
'操作失败'
)
}
},
err
=>
{}
);
},
goUrlTravelControl
(
name
,
path
,
id
,
tcmun
)
{
this
.
$router
.
push
({
name
:
path
,
...
...
@@ -200,37 +349,92 @@
}
return
str
;
},
getHouseTypeList
:
function
()
{
this
.
apipost
(
"travel_get_GetHouseType"
,
this
.
msg
,
res
=>
{
this
.
QueryMsg
.
loading
=
false
;
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
HouseTypeList
=
res
.
data
.
data
;
}
},
err
=>
{}
);
},
setDataList
:
function
(
list
)
{
var
Diningmap
=
{},
Diningdest
=
[];
for
(
var
i
=
0
;
i
<
list
.
length
;
i
++
)
{
var
ai
=
list
[
i
];
if
(
!
Diningmap
[
ai
.
HouseNo
])
{
Diningdest
.
push
({
HouseType
:
ai
.
HouseType
,
HouseNo
:
ai
.
HouseNo
,
data
:
[
ai
]
});
Diningmap
[
ai
.
HouseNo
]
=
ai
;
}
else
{
for
(
var
j
=
0
;
j
<
Diningdest
.
length
;
j
++
)
{
var
dj
=
Diningdest
[
j
];
if
(
dj
.
HouseType
==
ai
.
HouseType
&&
dj
.
HouseNo
==
ai
.
HouseNo
)
{
dj
.
data
.
push
(
ai
);
break
;
}
}
}
}
this
.
QueryMsg
.
dataList
=
Diningdest
;
},
//获取数据
getList
()
{
this
.
QueryMsg
.
loading
=
true
;
this
.
apipost
(
"travel_get_GetTravelGuestPageList"
,
"travel_get_GetTravelGuestPageList
_V2
"
,
this
.
msg
,
res
=>
{
this
.
QueryMsg
.
loading
=
false
;
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
QueryMsg
.
dataList
=
res
.
data
.
data
.
pageData
.
result
;
let
list
=
res
.
data
.
data
.
pageData
.
result
;
this
.
otherList
=
res
.
data
.
data
.
pageData
.
otherResult
;
this
.
IsHaveLeader
=
res
.
data
.
data
.
pageData
.
IsHaveLeader
;
this
.
IsLeaderGuide
=
res
.
data
.
data
.
pageData
.
IsLeaderGuide
;
this
.
houseList
=
res
.
data
.
data
.
pageData
.
houseList
;
let
disNum
=
[],
numberList
=
this
.
numberList
;
this
.
allDIs
=
res
.
data
.
data
.
pageData
.
OpSureHouse
==
2
?
true
:
false
list
.
map
(
x
=>
{
if
(
x
.
HouseType
==
1
&&
this
.
IsLeaderGuide
==
1
)
{
disNum
.
push
(
x
.
HouseNo
)
}
})
for
(
let
i
=
0
;
i
<
disNum
.
length
;
i
++
)
{
for
(
let
o
=
0
;
o
<
numberList
.
length
;
o
++
)
{
if
(
disNum
[
i
]
==
numberList
[
o
].
name
)
{
numberList
[
o
].
dis
=
true
}
}
}
this
.
dataList
=
list
this
.
numberList
=
numberList
}
},
err
=>
{}
);
},
exportExcel
()
{
this
.
QueryMsg
.
loading
=
true
;
//导出报表
let
msg
=
{
TCID
:
this
.
msg
.
TCID
TCID
:
this
.
msg
.
TCID
,
isGetTicket
:
0
,
//查询机票
isGetZiYouXing
:
0
,
//查询自由行
};
var
fileName
=
"旅客名单.xls"
;
if
(
this
.
QueryMsg
.
TeamInfoData
!=
null
)
{
fileName
=
"【"
+
this
.
QueryMsg
.
TeamInfoData
[
0
].
TCNUM
+
"】旅客名单.xls"
;
}
this
.
GetLocalFile
(
"travel_get_GetTravelGuestExport"
,
msg
,
fileName
,
res
=>
{
this
.
QueryMsg
.
loading
=
false
;
});
this
.
GetLocalFile
(
"travel_get_GetTravelGuestExport"
,
msg
,
fileName
);
},
//获取团期信息
...
...
@@ -251,11 +455,20 @@
}
},
mounted
()
{
let
numberList
=
[]
for
(
let
i
=
0
;
i
<
99
;
i
++
)
{
numberList
.
push
({
name
:
`
${
i
+
1
}
`
,
dis
:
false
,
})
}
this
.
numberList
=
numberList
this
.
TCID
=
this
.
$route
.
query
.
id
;
this
.
msg
.
TCID
=
this
.
TCID
;
this
.
msg
.
OrderId
=
this
.
$route
.
query
.
OrderId
;
this
.
getTeamInfo
();
this
.
getList
();
this
.
getHouseTypeList
();
}
};
...
...
src/components/commonPage/comCheckDinner.vue
View file @
bf3cfb10
...
...
@@ -74,7 +74,7 @@
<div
class=
"clearfix comCheckDinner"
>
<div
class=
"comCk_list"
v-for=
"(subItem,subIndex) in item.DinnerList"
>
<input
:id=
"'H'+index+'_'+subIndex"
type=
"checkbox"
v-model=
"subItem.isChecked"
@
click=
"getDinner(item.DinnerList,subIndex)"
/>
<label
:for=
"'H'+index+'_'+subIndex"
style=
"cursor: pointer"
>
{{
subItem
.
Name
}}
</label>
<label
:for=
"'H'+index+'_'+subIndex"
style=
"cursor: pointer"
>
{{
subItem
.
Real
Name
}}
</label>
</div>
</div>
</el-tab-pane>
...
...
@@ -143,6 +143,7 @@
ckDinnerObj
.
ID
=
this
.
ckedDinner
.
ID
;
ckDinnerObj
.
Address
=
this
.
ckedDinner
.
Address
;
ckDinnerObj
.
Name
=
this
.
ckedDinner
.
Name
;
ckDinnerObj
.
RealName
=
this
.
ckedDinner
.
RealName
;
ckDinnerObj
.
PayStyle
=
this
.
ckedDinner
.
PayStyle
;
ckDinnerObj
.
Tel
=
this
.
ckedDinner
.
Tel
;
ckDinnerObj
.
RebateRatio
=
this
.
ckedDinner
.
RebateRatio
;
...
...
src/router/config.js
View file @
bf3cfb10
...
...
@@ -1928,16 +1928,16 @@ export default {
title
:
'领队用款'
},
},
{
path
:
'/TravelPassengerList
'
,
//旅客名单 可
分房
name
:
'TravelPassengerList'
,
path
:
'/TravelPassengerList
2'
,
//旅客名单 不能
分房
name
:
'TravelPassengerList
2
'
,
component
:
resolve
=>
require
([
'@/components/TravelManager/TravelList/TravelPassengerList2'
],
resolve
),
meta
:
{
title
:
'旅客名单'
},
},
{
path
:
'/TravelPassengerList
2'
,
//旅客名单 不能分房
name
:
'TravelPassengerList
2
'
,
path
:
'/TravelPassengerList
'
,
//旅客名单 可分房
name
:
'TravelPassengerList'
,
component
:
resolve
=>
require
([
'@/components/TravelManager/TravelList/TravelPassengerList'
],
resolve
),
meta
:
{
title
:
'旅客名单'
...
...
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