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
143635dd
Commit
143635dd
authored
Jul 25, 2019
by
黄媛媛
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master' of
http://gitlab.oytour.com/luochao/superman
parents
d781848f
abeac456
Show whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
767 additions
and
116 deletions
+767
-116
addFinancialDocuments.vue
src/components/FinancialModule/addFinancialDocuments.vue
+4
-2
addReceivablesDocuments.vue
src/components/FinancialModule/addReceivablesDocuments.vue
+3
-1
groupTourOrderByTuan.vue
src/components/SalesModule/groupTourOrderByTuan.vue
+203
-43
investigationDetail.vue
src/components/SalesModule/investigationDetail.vue
+9
-3
RegistrationList.vue
src/components/TravelManager/TravelList/RegistrationList.vue
+46
-2
TravelPassengerList2.vue
...ponents/TravelManager/TravelList/TravelPassengerList2.vue
+384
-0
dmcTotalTable.vue
src/components/dmc/manager/dmcTotalTable.vue
+1
-1
leaderPay2.vue
src/components/leaderPay2.vue
+43
-48
TravelPrice.vue
...nents/newTravelmanager/TravelGroupControl/TravelPrice.vue
+66
-16
config.js
src/router/config.js
+8
-0
No files found.
src/components/FinancialModule/addFinancialDocuments.vue
View file @
143635dd
...
...
@@ -1271,8 +1271,10 @@ export default {
this
.
detailList
.
CostTypeId
=
this
.
orderObj
.
CostType
?
this
.
orderObj
.
CostType
:
''
;
this
.
detailList
.
UnitPrice
=
this
.
orderObj
.
Money
?
this
.
orderObj
.
Money
:
0
;
this
.
detailList
.
Number
=
this
.
orderObj
.
CostType
?
1
:
0
if
(
!
JSON
.
parse
(
sessionStorage
.
getItem
(
"saveGuestInfo"
))){
this
.
Description
=
this
.
orderObj
.
laRemark
?
this
.
orderObj
.
laRemark
:
''
;
}
}
if
(
data
.
VorcherInos
){
data
.
VorcherInos
.
forEach
(
x
=>
{
x
.
Url
=
x
.
Content
;
...
...
src/components/FinancialModule/addReceivablesDocuments.vue
View file @
143635dd
...
...
@@ -1394,8 +1394,10 @@ export default {
this
.
msg
.
Obj
=
this
.
orderObj
.
Obj
?
this
.
orderObj
.
Obj
:
''
;
this
.
msg
.
SourceID
=
this
.
orderObj
.
SourceID
?
this
.
orderObj
.
SourceID
:
0
;
this
.
msg
.
CallType
=
this
.
orderObj
.
CallType
?
this
.
orderObj
.
CallType
:
0
;
if
(
!
JSON
.
parse
(
sessionStorage
.
getItem
(
"saveGuestInfo"
))){
this
.
Description
=
this
.
orderObj
.
laRemark
?
this
.
orderObj
.
laRemark
:
''
;
}
}
if
(
data
.
VorcherInos
){
data
.
VorcherInos
.
forEach
(
x
=>
{
x
.
Url
=
x
.
Content
;
...
...
src/components/SalesModule/groupTourOrderByTuan.vue
View file @
143635dd
...
...
@@ -135,8 +135,6 @@
padding
:
9px
15px
;
}
.groupSuperSearchLayer
{}
.groupSuperSearchLayer
>
p
{
padding
:
20px
0
;
font-size
:
14px
;
...
...
@@ -255,8 +253,6 @@
font-size
:
0px
;
}
.groupTourOrder_remarks
>
div
{}
.groupTourOrder_remarks
>
div
>
div
:nth-child
(
1
)
{
float
:
left
;
display
:
flex
;
...
...
@@ -790,6 +786,90 @@
margin
:
5px
;
text-align
:
center
;
}
.groupts
.leftSetInfo
,
.groupts
.GO_TPright
{
float
:
left
;
}
.KT_Scenic
{
width
:
400px
;
max-height
:
400px
;
overflow
:
auto
;
}
.KT_Scenic
table
th
{
height
:
30px
;
border
:
1px
solid
#d1d1d1
;
}
.KT_Scenic
table
td
{
padding
:
9px
5px
!important
;
}
._TravelPricePopover
.GOScenicDiv
{
width
:
500px
;
max-height
:
400px
;
overflow
:
auto
;
}
._TravelPricePopover
table
,
.KT_Scenic
table
{
padding
:
10px
0
0
20px
;
background-color
:
#ededed
;
border-collapse
:
collapse
;
border
:
1px
solid
#d2d2d2
;
font-size
:
12px
;
margin
:
0
20px
5px
0
;
width
:
100%
;
}
._TravelPricePopover
table
._color_666
,
.KT_Scenic
table
._color_666
{
background-color
:
#ededed
;
color
:
#666666
;
padding
:
5px
;
}
._TravelPricePopover
table
td
,
.KT_Scenic
table
td
{
background-color
:
#ffffff
;
padding
:
9px
0
;
color
:
#333333
;
text-align
:
center
;
border
:
1px
solid
#d2d2d2
;
}
._TravelPricePopover
table
td
._d_name
{
background-color
:
#ededed
;
}
.groupts
.GO_Title
{
display
:
inline-block
;
margin-top
:
10px
;
padding-right
:
10px
;
font-size
:
12px
;
width
:
90px
;
text-align
:
right
;
}
.groupts
.SimulateDrop-box
{
width
:
230px
;
min-height
:
34px
;
position
:
relative
;
padding
:
5px
21px
5px
6px
;
float
:
left
;
margin-top
:
4px
;
border
:
1px
solid
#d1d1d1
;
}
.groupts
.GO_SimulaDrop
{
position
:
absolute
;
right
:
10px
;
top
:
5px
;
color
:
#d1d1d1
;
}
.groupts
.SD_flight
{
display
:
inline-block
;
height
:
24px
;
margin
:
0
3px
3px
0
;
overflow
:
hidden
;
max-width
:
200px
;
white-space
:
nowrap
;
text-overflow
:
ellipsis
;
font-size
:
12px
;
padding
:
0
8px
;
line-height
:
22px
;
background-color
:
#f0f2f5
;
}
</
style
>
...
...
@@ -1398,18 +1478,60 @@
<el-input v-model='addMsg.AirticketNum' @keyup.native="checkInteger(addMsg,'AirticketNum')" @input='getTotalPrice();getHouseNo()'></el-input>
</el-form-item>-->
</el-col>
<el-col
:span=
"
4
"
>
<el-form-item
label=
"可退景点"
>
<el-col
:span=
"
8
"
>
<
!-- <
el-form-item label="可退景点">
<el-select filterable multiple class='multiple_input' v-model='addMsg.ScenicRefundArr'
:placeholder="$t('pub.pleaseSel')" @change='ScenicRefundMethods'>
<el-option v-for='item in ScenicRefundList' :label='item.ScenicName' :value='item.Id'
:key='item.ScenicName'>
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col
:span=
"4"
>
</el-form-item> -->
<div
class=
"clearfix"
>
<div
class=
"leftSetInfo"
>
<span
class=
"GO_Title"
>
可退景点
</span>
</div>
<div
class=
"GO_TPright clearfix"
>
<el-popover
popper-class=
"_TravelPricePopover"
trigger=
"click"
>
<div>
<div
class=
"GOScenicDiv"
>
<table
width=
"100%"
border=
"0"
cellspacing=
"0"
cellpadding=
"0"
>
<tr>
<td
class=
"_color_666"
>
选择
</td>
<td
class=
"_color_666"
>
景点名称
</td>
<td
class=
"_color_666"
>
OP设置金额
</td>
<td
class=
"_color_666"
>
人数
</td>
<td
class=
"_color_666"
>
退款金额
</td>
</tr>
<tr
v-for=
"item in ScenicRefundList"
>
<td>
<el-checkbox
:checked=
"item.IsChecked"
@
change=
"getGOScenic(item)"
></el-checkbox>
</td>
<td>
{{item.CouponsName}}
</td>
<td>
{{item.RefundMoney}}
</td>
<td>
<el-input
class=
"w80"
@
keyup
.
native=
"checkInteger(item,'Number')"
@
change=
"getGOScenictWO"
v-model=
"item.Number"
></el-input>
</td>
<td>
<el-input
class=
"w80"
@
keyup
.
native=
"checkPrice(item,'BackMoney')"
@
change=
"getGOScenictWO"
v-model=
"item.BackMoney"
></el-input>
</td>
</tr>
</table>
</div>
</div>
<div
slot=
"reference"
class=
"SimulateDrop-box"
>
<span
class=
"SD_flight"
v-for=
"subItem in SciencNameList"
>
{{subItem}}
</span>
<i
class=
"iconfont icon-arrow-down GO_SimulaDrop"
></i>
</div>
</el-popover>
</div>
</div>
</el-col>
</el-row>
<el-row
:gutter=
"20"
>
...
...
@@ -1638,7 +1760,7 @@
<th
width=
"200"
>
操作
</th>
</tr>
<tr>
<td
v-show=
"list.length==0"
colspan=
"1
6
"
align=
"center"
>
暂无数据
</td>
<td
v-show=
"list.length==0"
colspan=
"1
7
"
align=
"center"
>
暂无数据
</td>
</tr>
<
template
v-for=
"op in list"
>
<tbody
class=
"not_border"
>
...
...
@@ -1900,10 +2022,15 @@
@
click=
'getDetail(item)'
></el-button>
</el-tooltip>
<el-tooltip
class=
"item"
effect=
"dark"
content=
"修改备注"
placement=
"top-start"
>
<el-button
<
!-- <
el-button
v-if="(userId==1||userId==5)|| ( item.isOwn==1 ||item.isHaveFinance=='1'||item.orderState=='1')"
type="primary" style='background:#a55eea; border-color:#a55eea' icon="iconfont icon-beizhu"
@click='getRemarks(item)'></el-button> -->
<el-button
v-if=
"(userId==1||userId==5)|| item.isOwn==1"
type=
"primary"
style=
'background:#a55eea; border-color:#a55eea'
icon=
"iconfont icon-beizhu"
@
click=
'getRemarks(item)'
></el-button>
</el-tooltip>
<el-tooltip
effect=
"dark"
content=
"日志"
placement=
"top-start"
style=
"float:left"
>
<el-popover
width=
'230'
trigger=
"click"
>
...
...
@@ -1995,7 +2122,24 @@
<!-- <span>暂无名单</span>-->
<!-- </span>-->
<span
style=
"display: block"
>
房间信息
<span
v-if=
"item.oneSex>0"
style=
"color: #e95252"
>
({{item.oneSex==1?'单男':'单女'}})
</span>
:{{item.orderGuestHouseStr}}
</span>
style=
"color: #e95252"
>
({{item.oneSex==1?'单男':'单女'}})
</span>
:
{{item.orderGuestHouseStr}}
<el-popover
trigger=
"click"
popper-class=
"KT_Scenic"
>
<table
width=
"100%"
border=
"0"
cellspacing=
"0"
cellpadding=
"0"
>
<tr
class=
"_color_666"
style=
"text-align:center;"
>
<th
width=
"150"
>
景点名称
</th>
<th
width=
"60"
>
人数
</th>
<th
width=
"60"
>
退款金额
</th>
</tr>
<tr
v-for=
"fItem in item.orderBackScenicList"
style=
"text-align:center;"
>
<td
style=
"text-align:left;"
>
{{fItem.couponsName}}
</td>
<td>
{{fItem.number}}
</td>
<td>
{{fItem.backMoney}}
</td>
</tr>
</table>
<span
slot=
"reference"
v-if=
"item.orderBackScenicList&&item.orderBackScenicList.length>0"
style=
"color:#f56c6c;margin-left:20px;cursor:pointer;"
>
退景点
</span>
</el-popover>
</span>
<!-- <span v-if="item.tipMoney" style="color:red">(小费:{{item.tipMoney}})</span> -->
<div>
<span
v-if=
"item.opTipMoney==''&&item.tipMoney!=''"
style=
"color:red"
>
(小费:{{item.tipMoney}})
</span>
...
...
@@ -2667,6 +2811,8 @@
RefuseVisaNum
:
'0'
,
AirticketNum
:
"0"
,
ScenicRefundArr
:
[],
//景点新数组
OrderBackScenicList
:[],
GoCityTime
:
""
,
BackCityTime
:
""
,
CommissionSharePeople
:
"-1"
,
...
...
@@ -2890,8 +3036,7 @@
tcnum
:
''
,
isOrder
:
''
,
},
SciencNameList
:[]
};
},
components
:
{
...
...
@@ -3377,24 +3522,45 @@
this
.
getTotalPrice
();
this
.
getTicheng
();
},
getScenicRefund
(
TCID
)
{
getScenicRefund
(
TCID
,
OrderId
)
{
this
.
OrderId
=
OrderId
;
let
msg
=
{
TCID
:
TCID
,
OrderId
:
OrderId
}
this
.
apipost
(
"sellorder_get_GetScenicRefundList"
,
{
TCID
},
"sellorder_get_GetScenicRefundList"
,
msg
,
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
ScenicRefundList
=
res
.
data
.
data
;
this
.
ScenicRefundList
.
forEach
(
item
=>
{
item
[
"ScenicName"
]
=
item
.
CouponsName
+
" -¥"
+
this
.
moneyFormat
(
item
.
RefundMoney
);
});
this
.
ScenicRefundMethods
();
this
.
getGOScenictWO
();
}
},
err
=>
{}
);
},
//勾选景点
getGOScenic
(
item
){
item
.
IsChecked
=!
item
.
IsChecked
;
},
//勾选
getGOScenictWO
(){
this
.
addMsg
.
OrderBackScenicList
=
[];
this
.
SciencNameList
=
[];
this
.
ScenicRefundList
.
forEach
(
x
=>
{
if
(
x
.
IsChecked
&&
x
.
Number
>
0
){
let
obj
=
{
CouponsId
:
x
.
CouponsId
,
IsChecked
:
x
.
IsChecked
,
BackMoney
:
x
.
BackMoney
,
Number
:
x
.
Number
}
this
.
SciencNameList
.
push
(
x
.
CouponsName
);
this
.
addMsg
.
OrderBackScenicList
.
push
(
obj
);
}
})
},
platformOrderMethods
()
{
if
(
this
.
addMsg
.
PlatformOrder
==
""
)
{
this
.
addMsg
.
MinOrderPrice
=
0
;
...
...
@@ -3463,6 +3629,10 @@
this
.
getMinPrice
(
obj
.
orderId
);
this
.
addMsg
.
OrderId
=
obj
.
orderId
;
this
.
IsChargeLossOrders
=
obj
.
isChargeLossOrders
;
//zk-点击修改清空景点
this
.
ScenicRefundList
=
[];
this
.
SciencNameList
=
[];
this
.
apipost
(
"sellorder_post_GetOrderEntity"
,
{
ID
:
obj
.
orderId
...
...
@@ -3470,8 +3640,8 @@
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
isAllowUpdate
=
res
.
data
.
data
.
IsUpdatePlatOrder
;
let
x
=
res
.
data
.
data
.
model
;
let
modelPrice
=
res
.
data
.
data
.
modelPrice
;
this
.
addMsg
=
x
;
this
.
addObj
=
res
.
data
.
data
.
modelPrice
;
...
...
@@ -3479,7 +3649,8 @@
this
.
addObj
.
OpSetLossMoney
=
x
.
OpSetLossMoney
;
this
.
addMsg
.
OneSex
=
x
.
OneSex
;
this
.
addMsg
.
ScenicRefundArr
=
res
.
data
.
data
.
ScenicRefundArr
;
this
.
getScenicRefund
(
obj
.
tcid
);
this
.
getScenicRefund
(
obj
.
tcid
,
obj
.
orderId
);
this
.
getPlatformAccount
(
obj
.
platformAccountTypeId
,
obj
.
platformAccount
);
this
.
SetOutCityId
=
res
.
data
.
data
.
SetOutCityId
;
this
.
reOutCityId
=
res
.
data
.
data
.
SetBackCityId
;
...
...
@@ -3495,21 +3666,9 @@
this
.
addMsg
.
ChirdNoNeedBedNum
=
(
x
.
ChirdNum
-
x
.
ChirdNeedBedNum
).
toString
();
this
.
addMsg
.
BabyNum
=
x
.
BabyNum
.
toString
();
this
.
addMsg
.
RefuseVisaNum
=
x
.
RefuseVisaNum
.
toString
();
this
.
addMsg
.
OrderForm
=
x
.
OrderForm
this
.
addMsg
.
allName
=
x
.
ContactName
// this.addMsg_form.OrderId=x.OrderId;
// this.addMsg_form.OpSetLossMoney=x.OpSetLossMoney;//收损金额
// this.addMsg_form.BabyChargePrice=modelPrice.BabyChargePrice;//小孩附加费
// this.addMsg_form.BabyPrice=modelPrice.BabyPrice;//婴儿价
// this.addMsg_form.BackVisaPrice=modelPrice.BackVisaPrice;//退签证费
// this.addMsg_form.ChildNeedPrice=modelPrice.ChildNeedPrice;//小孩占床增收
// this.addMsg_form.ChildNoNeedPrice=modelPrice.ChildNoNeedPrice;//小孩不占床减收
// this.addMsg_form.OldManChargePrice=modelPrice.OldManChargePrice;//老人附加费
// this.addMsg_form.OtherPrice=modelPrice.OtherPrice;//杂费
// this.addMsg_form.SingleDMCPrice=modelPrice.SingleDMCPrice;//单地接
// this.addMsg_form.VisaPrice=modelPrice.VisaPrice;//签证费用
// this.addMsg_form.SingleRoomPrice=modelPrice.SingleRoomPrice;//单房差
this
.
addMsg
.
OrderForm
=
x
.
OrderForm
;
this
.
addMsg
.
allName
=
x
.
ContactName
;
this
.
addMsg
.
OrderBackScenicList
=
x
.
OrderBackScenicList
;
this
.
IsChildrenTour
=
x
.
IsChildrenTour
;
this
.
IsBirdDiscount
=
x
.
IsBirdDiscount
;
...
...
@@ -3622,7 +3781,7 @@
let
x
=
res
.
data
.
data
.
model
;
this
.
addMsg
=
x
;
this
.
addMsg
.
ScenicRefundArr
=
res
.
data
.
data
.
ScenicRefundArr
;
this
.
getScenicRefund
(
obj
.
tcid
);
this
.
getScenicRefund
(
obj
.
tcid
,
obj
.
orderId
);
this
.
SetOutCityId
=
res
.
data
.
data
.
SetOutCityId
;
this
.
reOutCityId
=
res
.
data
.
data
.
SetBackCityId
;
this
.
addMsg
.
CustomerType
=
x
.
CustomerType
.
toString
();
...
...
@@ -4247,6 +4406,7 @@
Number
(
this
.
addMsg
.
AirticketNum
);
this
.
addMsg
.
IsChildrenTour
=
this
.
IsChildrenTour
;
this
.
addMsg
.
IsBirdDiscount
=
this
.
addObj
.
IsBirdDiscount
;
this
.
apipost
(
"sellorder_post_SetOrderInfo_02"
,
this
.
addMsg
,
...
...
src/components/SalesModule/investigationDetail.vue
View file @
143635dd
...
...
@@ -16,10 +16,16 @@
show-text
>
</el-rate>
<template
v-else-if=
"item.SurveyType === 2"
>
<el-radio
v-for=
"(r, i) in item.SurveyOptionsList"
v-model=
"item.lable"
:label=
"r.ID"
disabled=
"disabled"
:key=
"i"
>
{{
r
.
OptionsName
}}
</el-radio>
<template
v-for=
"(r, i) in item.SurveyOptionsList"
v-if=
"r.IsCheck!=='0'"
>
<span>
{{
r
.
OptionsName
}}
</span>
</
template
>
<!-- <el-radio v-for="(r, i) in item.SurveyOptionsList" v-model="item.lable" :label="r.ID" disabled="disabled" :key="i"></el-radio> -->
</template>
<
template
v-else-if=
"item.SurveyType === 3"
>
<el-checkbox
v-for=
"(r, i) in item.SurveyOptionsList"
v-model=
"item.ckeckList"
:label=
"r.ID"
disabled=
"disabled"
:key=
"i"
>
{{
r
.
OptionsName
}}
</el-checkbox
>
<template
v-for=
"(r, i) in item.SurveyOptionsList"
v-if=
"r.IsCheck!=='0'"
>
<span>
{{
r
.
OptionsName
}}
</span>
</
template
>
<!-- <el-checkbox v-for="(r, i) in item.SurveyOptionsList" v-model="item.ckeckList" :label="r.ID" disabled="disabled" :key="i">{{r.OptionsName}}</el-checkbox > -->
</template>
<
template
v-else-if=
"item.SurveyType === 4"
>
<span>
{{
item
.
TextContent
}}
</span>
...
...
src/components/TravelManager/TravelList/RegistrationList.vue
View file @
143635dd
...
...
@@ -903,6 +903,32 @@
font-size
:
12px
;
margin-left
:
10px
;
}
.RL_Scenic
{
width
:
400px
;
max-height
:
400px
;
overflow
:
auto
;
}
.RL_Scenic
table
th
{
height
:
30px
;
border
:
1px
solid
#d2d2d2
;
}
.RL_Scenic
table
td
{
padding
:
9px
5px
!important
;
border
:
1px
solid
#d2d2d2
;
}
.RL_Scenic
table
._color_666
{
background-color
:
#ededed
;
color
:
#666666
;
}
.RL_Scenic
table
{
padding
:
10px
0
0
20px
;
border-collapse
:
collapse
;
border
:
1px
solid
#d2d2d2
;
font-size
:
12px
;
margin
:
0
20px
5px
0
;
width
:
100%
;
}
</
style
>
...
...
@@ -1533,7 +1559,7 @@
<th
width=
"150"
class=
"nowrap"
>
操作
</th>
</tr>
<tr>
<td
v-show=
"OrderDataList.length==0"
colspan=
"1
4
"
align=
"center"
>
暂无数据
</td>
<td
v-show=
"OrderDataList.length==0"
colspan=
"1
6
"
align=
"center"
>
暂无数据
</td>
</tr>
<tr
v-if=
"OrderDataList.leadetList!=null && OrderDataList.leadetList.length>0"
>
...
...
@@ -2032,7 +2058,24 @@
<!--
<span
class=
"RL-redType RL-remarkCon"
v-else
>
-->
<!--
<span>
暂无名单
</span>
-->
<!--
</span>
-->
<span
style=
"display: block"
>
房间信息:
{{
childItem
.
OrderGuestHouseStr
}}
</span>
<span
style=
"display: block"
>
房间信息:
{{
childItem
.
OrderGuestHouseStr
}}
<el-popover
trigger=
"click"
popper-class=
"RL_Scenic"
>
<table
width=
"100%"
border=
"0"
cellspacing=
"0"
cellpadding=
"0"
>
<tr
class=
"_color_666"
style=
"text-align:center;"
>
<th
width=
"150"
>
景点名称
</th>
<th
width=
"60"
>
人数
</th>
<th
width=
"60"
>
退款金额
</th>
</tr>
<tr
v-for=
"fItem in childItem.OrderBackScenicList"
style=
"text-align:center;"
>
<td
style=
"text-align:left;"
>
{{
fItem
.
CouponsName
}}
</td>
<td>
{{
fItem
.
Number
}}
</td>
<td>
{{
fItem
.
BackMoney
}}
</td>
</tr>
</table>
<span
slot=
"reference"
v-if=
"childItem.OrderBackScenicList&&childItem.OrderBackScenicList.length>0"
style=
"color:#f56c6c;margin-left:20px;cursor:pointer;"
>
退景点
</span>
</el-popover>
</span>
<div>
<span
v-if=
"childItem.OPTipMoney==''&&childItem.TipMoney!=''"
style=
"color:red"
>
(小费:
{{
childItem
.
TipMoney
}}
)
</span>
<span
v-if=
"childItem.OPTipMoney!=''"
style=
"color:red"
>
...
...
@@ -3325,6 +3368,7 @@
this
.
addMsg
.
ChirdNoNeedBedNum
=
(
x
.
ChirdNum
-
x
.
ChirdNeedBedNum
).
toString
();
this
.
addMsg
.
BabyNum
=
x
.
BabyNum
.
toString
();
this
.
addMsg
.
RefuseVisaNum
=
x
.
RefuseVisaNum
.
toString
();
this
.
addMsg
.
OrderBackScenicList
=
x
.
OrderBackScenicList
;
this
.
IsChildrenTour
=
x
.
IsChildrenTour
;
this
.
IsBirdDiscount
=
x
.
IsBirdDiscount
;
...
...
src/components/TravelManager/TravelList/TravelPassengerList2.vue
0 → 100644
View file @
143635dd
<
style
>
.PassengerList2
.PT_teamTable.PT_teamTable
{
width
:
500px
;
border-collapse
:
collapse
;
}
.PT_teamTable
td
,
.PT_teamTable
th
{
border
:
1px
solid
#dcdcdc
;
padding
:
5px
;
height
:
30px
;
}
.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
;
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
;
}
</
style
>
<
template
>
<div
class=
"flexOne PassengerList PassengerList2"
>
<div
class=
"query-box"
>
<ul>
<li>
<table
class=
"PT_teamTable"
>
<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"
value=
"导出报表"
@
click=
"exportExcel()"
>
</li>
</ul>
</div>
<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=
"110"
>
英文姓
</th>
<th
width=
"145"
>
英文名
</th>
<th
width=
"45"
>
性别
</th>
<th
width=
"155"
>
出生日期
</th>
<th
width=
"120"
>
年龄类型
</th>
<th
width=
"80"
>
出生地
</th>
<th
width=
"155"
>
护照号
</th>
<th
width=
"80"
>
签发地
</th>
<th
width=
"155"
>
签发日期
</th>
<th
width=
"155"
>
护照有效期
</th>
<th
width=
"175"
>
客户手机
</th>
<th
width=
"240"
>
身份证
</th>
<th
width=
"100"
>
单价
</th>
<th
width=
"180"
>
业务员
</th>
<th
width=
"60"
>
方式
</th>
<th
width=
"100"
>
舱位
</th>
<th
width=
"120"
>
签证类型
</th>
</tr>
<tr>
<td
v-show=
"QueryMsg.dataList.Length==0"
colspan=
"22"
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
:disabled=
"subItem.SingleRoomType!=subItem.HouseType"
v-for=
"(hs, hsIndex) in numberList"
:key=
"hs"
:label=
"hs"
:value=
"hs"
>
</el-option>
</el-select>
</td>
<td>
<el-select
v-model=
"subItem.HouseType"
placeholder=
"请选择"
@
change=
"changeRmType(subItem, subIndex)"
>
<el-option
:disabled=
"subItem.SingleRoomType!=subItem.HouseType"
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
.
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>
<!--
</
template
>
-->
<tr>
<td
style=
"text-align:right"
colspan=
"22"
><input
type=
"button"
value=
"保存"
class=
"leader2Btn"
@
click=
"saveOPSetGuestHouse"
></td>
</tr>
</table>
</div>
</template>
<
script
>
export
default
{
data
()
{
return
{
//请求数据
msg
:
{
PageIndex
:
1
,
PageSize
:
100
,
TCID
:
0
,
OrderId
:
0
,
currentPage
:
1
},
IsHaveLeader
:
1
,
//1-有领队,0-无领队
IsLeaderGuide
:
0
,
//1-领兼导,0-领队
TCID
:
0
,
QueryMsg
:
{
loading
:
true
,
//返回数据
dataList
:
[],
TCID
:
0
,
OrderId
:
0
,
//团期数据
TeamInfoData
:
[]
},
houseList
:
[],
HouseTypeList
:
[],
numberList
:
[],
dataList
:
[],
};
},
methods
:
{
// 修改类型
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
,
query
:
{
id
:
id
,
tcmun
:
tcmun
,
blank
:
"y"
,
tab
:
name
}
});
},
//获取性别字符串
getSexStr
(
item
)
{
var
str
=
""
;
if
(
item
.
Sex
==
1
)
{
str
=
"男"
;
}
else
{
str
=
"女"
;
}
return
str
;
},
//获取房间类型
getHouseTypeStr
(
HouseType
)
{
var
str
=
""
;
if
(
HouseType
==
1
)
{
str
=
"自然单间"
;
}
else
if
(
HouseType
==
2
)
{
str
=
"标准双人间"
;
}
else
if
(
HouseType
==
3
)
{
str
=
"大床房"
;
}
else
if
(
HouseType
==
4
)
{
str
=
"三人间"
;
}
else
if
(
HouseType
==
5
)
{
str
=
"拼凑双人间"
;
}
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"
,
this
.
msg
,
res
=>
{
this
.
QueryMsg
.
loading
=
false
;
if
(
res
.
data
.
resultCode
==
1
)
{
let
list
=
res
.
data
.
data
.
pageData
.
result
;
this
.
dataList
=
list
// this.setDataList(list)
this
.
IsHaveLeader
=
res
.
data
.
data
.
pageData
.
IsHaveLeader
;
this
.
IsLeaderGuide
=
res
.
data
.
data
.
pageData
.
IsLeaderGuide
;
this
.
houseList
=
res
.
data
.
data
.
pageData
.
houseList
;
}
},
err
=>
{}
);
},
exportExcel
()
{
//导出报表
let
msg
=
{
TCID
:
this
.
msg
.
TCID
};
var
fileName
=
"旅客名单.xls"
;
if
(
this
.
QueryMsg
.
TeamInfoData
!=
null
)
{
fileName
=
"【"
+
this
.
QueryMsg
.
TeamInfoData
[
0
].
TCNUM
+
"】旅客名单.xls"
;
}
this
.
GetLocalFile
(
"travel_get_GetTravelGuestExport"
,
msg
,
fileName
);
},
//获取团期信息
getTeamInfo
()
{
var
qmsg
=
{
TCID
:
this
.
TCID
};
this
.
apipost
(
"travel_get_GetTravelPriceReportInfo"
,
qmsg
,
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
QueryMsg
.
TeamInfoData
=
res
.
data
.
data
;
}
},
err
=>
{}
);
}
},
mounted
()
{
let
numberList
=
[]
for
(
let
i
=
0
;
i
<
99
;
i
++
)
{
numberList
.
push
(
`
${
i
+
1
}
`
)
}
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
>
\ No newline at end of file
src/components/dmc/manager/dmcTotalTable.vue
View file @
143635dd
...
...
@@ -271,7 +271,7 @@
</div>
</td>
<td>
<div
class=
"fz16 fbold linkspan"
@
click=
"goUrlT('TravelPassengerList',item.TCID,'旅客名单')"
>
<div
class=
"fz16 fbold linkspan"
@
click=
"goUrlT('TravelPassengerList
2
',item.TCID,'旅客名单')"
>
<span
style=
"color: #4BCA81;"
v-if=
"item.HouseResult==1"
>
√
</span>
<span
class=
"colorE95252"
v-else
>
{{
item
.
HouseResult
==
'-1'
?
"x"
:
"O"
}}
</span>
</div>
...
...
src/components/leaderPay2.vue
View file @
143635dd
...
...
@@ -980,42 +980,38 @@ export default {
return
}
// type 1 零件地 自动生成 2 领队人头费 跳转
let
BType
=
3
,
AccountId
=
1
,
IsRelevanceTravel
=
1
,
TemplateId
=
71
,
RB_Branch_Id
=
userinfo
.
RB_Branch_id
,
OrderSource
=
6
;
if
(
obj
.
Type
==
2
)
{
let
id
=
[
72
,
73
];
let
TCIDARR
=
[
obj
.
TCIDs
];
let
orderObj
=
{
OrderID
:
0
,
OrderSource
:
6
,
Obj
:
{},
SourceID
:
0
,
CostType
:
180
,
TCIDList
:
TCIDARR
,
Money
:
inputPrice
,
TCNUMS
:
''
};
let
fullPath
=
`/ChoiceAddFinancialDocuments?Type=
${
1
}
&templateID=
${
JSON
.
stringify
(
id
)}
&companyID=
${
userinfo
.
RB_Branch_id
}
&orderObj=
${
JSON
.
stringify
(
orderObj
)}
&blank=y&tab=领队报账`
;
let
dom
=
document
.
querySelector
(
"#blankLink"
);
dom
.
href
=
`http://
${
window
.
location
.
host
}
/#
${
fullPath
}
`
;
dom
.
click
();
}
else
{
BType
=
1
;
AccountId
=
7
;
IsRelevanceTravel
=
0
;
TemplateId
=
obj
.
OutBranchId
===
0
?
72
:
73
;
RB_Branch_Id
=
obj
.
OutBranchId
;
OrderSource
=
8
;
}
// 自动生成
let
msg
=
{
TemplateId
:
71
,
RB_Branch_Id
:
userinfo
.
RB_Branch_i
d
,
RB_Branch_Id
:
RB_Branch_I
d
,
IsPublic
:
0
,
BType
:
4
,
AccountId
:
14
,
BType
:
BType
,
AccountId
:
AccountId
,
CostTypeID
:
180
,
WBMoney
:
obj
.
price
,
Remark
:
""
,
TCID
:
obj
.
TCIDs
,
IsRelevanceTravel
:
1
,
IsRelevanceTravel
:
IsRelevanceTravel
,
OrderID
:
0
,
vorcherInos
:
[{
FrIdStr
:
''
}],
Description
:
""
,
RemitterName
:
obj
.
LeaderOrGuidName
,
TradeDate
:
new
Date
().
Format
(
"yyyy-MM-dd"
),
OrderSource
:
6
,
OrderSource
:
OrderSource
,
}
this
.
apipost
(
'Financial_post_SetFinanceInfoCommonForIn'
,
msg
,
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
...
...
@@ -1027,7 +1023,6 @@ export default {
this
.
$message
.
error
(
res
.
data
.
message
)
}
},
null
)
}
},
goZhiDan
:
function
(
obj
)
{
let
id
=
[
59
];
...
...
@@ -1277,7 +1272,7 @@ export default {
DiningID
:
ai
.
DiningID
,
data
:
[
ai
]
});
Diningmap
[
ai
.
PlanDat
eStr
]
=
ai
;
Diningmap
[
ai
.
UseTim
eStr
]
=
ai
;
}
else
{
for
(
var
j
=
0
;
j
<
Diningdest
.
length
;
j
++
){
var
dj
=
Diningdest
[
j
];
...
...
@@ -1306,7 +1301,7 @@ export default {
TicketID
:
ai
.
TicketID
,
data
:
[
ai
]
});
Scenicmap
[
ai
.
PlanDat
eStr
]
=
ai
;
Scenicmap
[
ai
.
UseTim
eStr
]
=
ai
;
}
else
{
for
(
var
j
=
0
;
j
<
Scenicdest
.
length
;
j
++
){
var
dj
=
Scenicdest
[
j
];
...
...
src/components/newTravelmanager/TravelGroupControl/TravelPrice.vue
View file @
143635dd
...
...
@@ -185,7 +185,11 @@
max-height
:
400px
;
overflow
:
auto
;
}
._TravelPricePopover
.ScenicDiv
{
width
:
450px
;
max-height
:
400px
;
overflow
:
auto
;
}
._TravelPricePopover
table
{
padding
:
10px
0
0
20px
;
background-color
:
#ededed
;
...
...
@@ -664,19 +668,50 @@
<
template
slot=
"prepend"
>
集合标识
</
template
>
</el-input>
</el-form-item>
<el-form-item>
<span
class=
"TP_Sendprepend"
style=
"margin-left:0;width:120px;"
>
可退景点
</span>
<el-select
class=
"w180"
v-model=
"priceData.ChooseBackScenicArr"
multiple
>
<el-option
v-for=
"item in priceData.scenicBackList"
:key=
"item.ID"
:label=
"item.Name"
:value=
"item.ID"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item>
</div>
<div
class=
"clearfix"
>
<div
class=
"leftSetInfo"
>
<span
class=
"TPbaseSet"
></span>
<span
class=
"TPsecondTitle"
>
可退景点
</span>
</div>
<div
class=
"TPright clearfix"
>
<el-popover
popper-class=
"_TravelPricePopover"
trigger=
"click"
>
<div>
<div
class=
"ScenicDiv"
>
<table
width=
"100%"
border=
"0"
cellspacing=
"0"
cellpadding=
"0"
>
<tr>
<td
class=
"_color_666"
>
选择
</td>
<td
class=
"_color_666"
>
景点名称
</td>
<td
class=
"_color_666"
>
退款金额
</td>
</tr>
<tr
v-for=
"item in priceData.ScenicBackList"
>
<td>
<el-checkbox
:checked=
"item.IsChecked"
@
change=
"getScenic(item)"
></el-checkbox>
</td>
<td>
{{item.Name}}
</td>
<td>
<el-input
class=
"w80"
@
keyup
.
native=
"checkPrice(item,'RefundMoney')"
v-model=
"item.RefundMoney"
></el-input>
</td>
</tr>
</table>
</div>
</div>
<div
slot=
"reference"
class=
"SimulateDrop-box"
>
<span
class=
"SD_flight"
v-for=
"subItem in ScenicList"
>
{{subItem.Name}}
</span>
<i
class=
"iconfont icon-arrow-down SimulaDrop"
></i>
</div>
</el-popover>
<el-form-item
style=
"margin-top:1px;"
>
<el-input
placeholder=
"请输入"
class=
"w460 ComSeat"
v-model=
"priceData.AirportService"
>
<
template
slot=
"prepend"
>
机场服务
</
template
>
</el-input>
</el-form-item>
</div>
</div>
<div
class=
"clearfix"
>
<div
class=
"leftSetInfo"
>
<span
class=
"TPbaseSet"
></span>
...
...
@@ -973,6 +1008,8 @@
offerList
:
[],
selectFilghtList
:
[],
FinfoList
:
[],
//选中景点
ScenicList
:[],
//下拉框默认值
SelectDefaultValue
:
0
,
SelectOtherDefault
:
-
1
,
...
...
@@ -1142,10 +1179,8 @@
ChooseHotelArray
:
[],
//销售清位时间
SaleClearOrderHour
:
0
,
//可退景点选择列表
chooseBackScenicArr
:[],
//可退景点下拉列表
s
cenicBackList
:[],
S
cenicBackList
:[],
};
}
this
.
returnPriceList
.
push
(
objItem
);
...
...
@@ -1538,6 +1573,20 @@
}
});
},
//选中景点选择框
getScenic
(
item
){
item
.
IsChecked
=!
item
.
IsChecked
;
this
.
initScenic
();
},
//初始化景点
initScenic
(){
this
.
ScenicList
=
[];
this
.
priceData
.
ScenicBackList
.
forEach
(
x
=>
{
if
(
x
.
IsChecked
){
this
.
ScenicList
.
push
(
x
);
}
})
},
goUrl
(
path
,
id
)
{
this
.
$router
.
push
({
name
:
path
,
...
...
@@ -1735,6 +1784,7 @@
x
[
"Checked"
]
=
true
;
this
.
chooseDay
=
this
.
priceData
.
StartDate
;
this
.
initFlightData
();
this
.
initScenic
();
}
else
{
x
[
"Checked"
]
=
false
;
}
...
...
src/router/config.js
View file @
143635dd
...
...
@@ -1816,6 +1816,14 @@ export default {
title
:
'旅客名单'
},
},
{
path
:
'/TravelPassengerList2'
,
//旅客名单
name
:
'TravelPassengerList2'
,
component
:
resolve
=>
require
([
'@/components/TravelManager/TravelList/TravelPassengerList2'
],
resolve
),
meta
:
{
title
:
'旅客名单'
},
},
{
path
:
'/RegistrationList'
,
name
:
'RegistrationList'
,
...
...
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