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
0b386570
Commit
0b386570
authored
May 11, 2023
by
黄奎
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
页面修改
parent
f999f618
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
977 additions
and
374 deletions
+977
-374
TravelManager2.vue
...ts/newTravelmanager/TravelGroupControl/TravelManager2.vue
+1
-1
TravelPrice2.vue
...ents/newTravelmanager/TravelGroupControl/TravelPrice2.vue
+976
-373
No files found.
src/components/newTravelmanager/TravelGroupControl/TravelManager2.vue
View file @
0b386570
...
...
@@ -52,7 +52,7 @@
<!--小包团-->
<TravelPrice2
ref=
"TravelPrice"
id=
"fiveAnchor"
@
headCallBack=
"getPrice"
:PostDaysTrip=
"PostDaysTrip"
v-if=
"TeamType==1"
:priceList=
"PriceList"
:PostConfig=
"PostConfig"
:modifyTcid=
"modifyTcid"
:TeamType=
"TeamType"
></TravelPrice2>
:TeamType=
"TeamType"
:CurrentUserInfo=
"CurrentUserInfo"
:IsDirect=
"PostConfig.IsDirect"
></TravelPrice2>
<!--一日游-->
<TravelPrice3
ref=
"TravelPrice"
id=
"fiveAnchor"
@
headCallBack=
"getPrice"
:PostDaysTrip=
"PostDaysTrip"
v-if=
"TeamType==2"
:priceList=
"PriceList"
:PostConfig=
"PostConfig"
:modifyTcid=
"modifyTcid"
...
...
src/components/newTravelmanager/TravelGroupControl/TravelPrice2.vue
View file @
0b386570
...
...
@@ -98,7 +98,7 @@
background-color
:
#f5f7fa
;
color
:
#909399
;
font-size
:
14px
;
margin
:
4
px
-11px
0
10px
;
margin
:
3
px
-11px
0
10px
;
}
.TravelPrice
.days
.checked1
{
...
...
@@ -172,16 +172,8 @@
margin-top
:
3px
;
}
.TPSetInfo
.multiple_input.multiple_input2
{
height
:
34px
!important
;
}
.TPSetInfo
.multiple_input.multiple_input2
.el-input__inner
{
height
:
34px
!important
;
}
.SimulateDrop-box
{
width
:
190
px
;
width
:
288
px
;
min-height
:
34px
;
position
:
relative
;
padding
:
5px
21px
5px
6px
;
...
...
@@ -190,31 +182,43 @@
border
:
1px
solid
#d1d1d1
;
}
._TravelPriceDetails
table
{
._TravelPricePopover
.jiDiv
{
width
:
750px
;
max-height
:
400px
;
overflow
:
auto
;
}
._TravelPricePopover
.ScenicDiv
{
width
:
450px
;
max-height
:
400px
;
overflow
:
auto
;
}
._TravelPricePopover
table
{
padding
:
10px
0
0
20px
;
background-color
:
#ededed
;
border-collapse
:
collapse
;
border
:
1px
solid
#d2d2d2
;
font-size
:
12px
;
margin
:
0
20px
5px
0
;
min-width
:
800px
;
width
:
100%
;
}
._TravelPrice
Details
table
._color_666
{
._TravelPrice
Popover
table
._color_666
{
background-color
:
#ededed
;
color
:
#666666
;
padding
:
5px
;
}
._TravelPrice
Details
table
td
{
._TravelPrice
Popover
table
td
{
background-color
:
#ffffff
;
padding
:
9px
30px
;
padding
:
9px
0
;
color
:
#333333
;
text-align
:
center
;
border
:
1px
solid
#d2d2d2
;
}
._TravelPrice
Details
table
td
._d_name
{
._TravelPrice
Popover
table
td
._d_name
{
background-color
:
#ededed
;
}
...
...
@@ -228,7 +232,7 @@
.SD_flight
{
display
:
inline-block
;
height
:
24px
;
margin
-bottom
:
3px
;
margin
:
0
3px
3px
0
;
padding
:
0
8px
;
line-height
:
22px
;
background-color
:
#f0f2f5
;
...
...
@@ -259,46 +263,92 @@
width
:
280px
;
}
.dijiebaojia
{
margin-bottom
:
15px
;
padding-top
:
15px
;
.TP_Airticktid
{
text-decoration
:
underline
;
cursor
:
pointer
;
color
:
#409eff
;
}
.TP_noneed
{
position
:
relative
;
top
:
10px
;
margin
:
20px
0
30px
11px
;
}
.Tp_hotelDialog
{
width
:
900px
;
}
.dijiebaojia
table
{
.TphotelTable
{
width
:
100%
;
margin
:
auto
;
text-align
:
center
;
font-size
:
12px
;
color
:
#333
;
border-collapse
:
collapse
;
width
:
390px
;
border
-color
:
#dcdfe6
;
background-color
:
#fff
;
border
:
1px
solid
#d1d1d1
;
}
.dijiebaojia
table
tr
td
{
padding
:
8px
15px
;
color
:
#000
;
.TphotelTable
th
{
background
:
#E6E6E6
;
padding
:
8px
0
;
color
:
#333
;
border
:
1px
solid
#d1d1d1
;
font-weight
:
bold
;
}
.dijiebaojia
table
tr
td
._price
{
/*color: red;*/
.TphotelTable
tr
td
{
background-color
:
#fff
;
/* padding:8px 0; */
border
:
1px
solid
#d1d1d1
;
}
.dijiebaojia_table_btn
{
background-color
:
#e95252
;
font-size
:
12px
;
color
:
white
;
padding
:
3px
5px
;
border-radius
:
4px
;
.Tp_btn
{
color
:
#fff
;
height
:
25px
;
background
:
#E95252
;
border
:
1px
solid
#E95252
;
cursor
:
pointer
;
border-radius
:
15px
;
margin-left
:
10px
;
}
.dijiebaojia_table_btn_hide
{
margin-left
:
10px
;
.tp_divList
{
width
:
100%
;
min-height
:
30px
;
border-bottom
:
1px
dashed
#ccc
;
}
._yes_click
{
background-color
:
#e95252
!important
;
color
:
white
;
.tp_divList
div
{
text-align
:
left
;
padding
:
0
20px
;
margin-top
:
5px
;
}
.TpricehasTicket
{
color
:
#47BF8C
!important
;
.tp_divList
:last-child
{
border
:
0
;
}
.disClick
{
background-color
:
#d1d1d1
;
color
:
#fff
;
border
:
1px
solid
#d1d1d1
;
cursor
:
default
;
}
.disClick
:hover
{
background-color
:
#d1d1d1
!important
;
cursor
:
default
!important
;
box-shadow
:
none
!important
;
}
.lessPriceRule
{
font-size
:
14px
;
margin-left
:
40px
;
text-decoration
:
underline
;
cursor
:
pointer
;
}
</
style
>
...
...
@@ -346,19 +396,13 @@
</ul>
<!-- 日期 -->
<ul
class=
"days"
>
<li
class=
"liList"
v-for=
"(dayobject,index) in days"
:key=
"dayobject.subCode"
:class=
"
{'TpricehasTicket':dayobject.Tip}" :title="dayobject.Tip?'当天有机票':''">
<template
v-if=
"dayobject.click"
>
<li
class=
"liList"
v-for=
"(dayobject,index) in days"
:key=
"dayobject.subCode"
>
<span
v-if=
"dayobject.checkState==$calendarUtils.checkState.noChecked"
class=
"other-month"
>
{{
dayobject
.
day
.
getDate
()
}}
</span
>
<span
v-if=
"dayobject.checkState==$calendarUtils.checkState.checked"
class=
"checked1"
@
click=
"clickedDay(dayobject)"
>
{{
dayobject
.
day
.
getDate
()
}}
</span>
@
click=
"clickedDay(dayobject)"
>
{{
dayobject
.
day
.
getDate
()
}}
</span>
<span
v-else-if=
"dayobject.checkState==$calendarUtils.checkState.hasValue"
@
click=
"clickedDay(dayobject)"
>
{{
dayobject
.
day
.
getDate
()
}}
</span>
</
template
>
<
template
v-else
>
<span
class=
"other-month"
>
{{
dayobject
.
day
.
getDate
()
}}
</span>
</
template
>
@
click=
"clickedDay(dayobject)"
>
{{
dayobject
.
day
.
getDate
()
}}
</span>
</li>
</ul>
</div>
...
...
@@ -393,47 +437,51 @@
</div>
<div>
<div
class=
"TPSetInfo clearfix"
>
<el-form
label-width=
"10px"
style=
"border-collapse:collapse;"
>
<div
class=
"dijiebaojia clearfix"
style=
"display:none;"
>
<p
class=
"TPbaseSet"
style=
"width: 140px;"
>
{{$t('sm.dijiebaojia')}}
</p>
<table
border=
"1"
bordercolor=
"#dcdfe6"
class=
"fl"
v-if=
"dijiebaojiaShow&&queryPriceList.length>0"
v-loading=
"queryPriceListLoading"
>
<
template
v-for=
"item in queryPriceList"
>
<template
v-for=
"son in item.PricesList"
>
<tr
v-if=
"son.OfferType===1"
>
<td
rowspan=
"4"
>
{{
$t
(
'tips.di'
)
}}{{
item
.
DayNum
}}{{
$t
(
'hotel.hotel_day'
)
}}
</td>
<td>
{{
$t
(
'sm.tuanqishezhi'
)
}}{{
$t
(
'hotel.hotel'
)
}}
</td>
<td
class=
"_price"
>
{{
son
.
OfferPrice
?
son
.
OfferPrice
:
"暂无报价"
}}
</td>
</tr>
<tr
v-else
>
<td
v-if=
"son.OfferType===2"
>
{{
$t
(
'MarketingActi.car'
)
}}
</td>
<td
v-if=
"son.OfferType===3"
>
{{
$t
(
'scen.sc_piao'
)
}}
</td>
<td
v-if=
"son.OfferType===4"
>
{{
$t
(
'commonPickUp.Pick_resName'
)
}}
</td>
<td
class=
"_price"
>
{{
son
.
OfferPrice
?
son
.
OfferPrice
:
"暂无报价"
}}
</td>
</tr>
</
template
>
</template>
<tr>
<td>
{{$t('active.cl_jipiao')}}
</td>
<td
colspan=
"2"
align=
"center"
></td>
</tr>
<tr>
<td>
{{$t('fnc.a_heji')}}
</td>
<td
colspan=
"2"
align=
"center"
>
{{OfferTotalMoney}}
</td>
</tr>
</table>
<p
class=
"fl dijiebaojia_table_btn"
v-if=
"!dijiebaojiaShow&&queryPriceList.length>0"
@
click=
"dijiebaojiaShow=true"
>
{{$t('sm.xianshidijie')}}
</p>
<p
class=
"fl dijiebaojia_table_btn dijiebaojia_table_btn_hide"
v-if=
"dijiebaojiaShow&&queryPriceList.length>0"
@
click=
"dijiebaojiaShow=false"
>
{{$t('sm.yuincangdijie')}}
</p>
</div>
<el-form
label-width=
"10px"
>
<div
class=
"clearfix"
>
<div
class=
"leftSetInfo"
>
<span
class=
"TPbaseSet"
>
{{
$t
(
'sm.basebaojia'
)
}}
</span>
<span
class=
"TPsecondTitle"
>
{{
$t
(
'Operation.Op_standard'
)
}}
</span>
</div>
<div
class=
"TPright"
>
<div
class=
"TP_noneed"
>
<el-checkbox
v-model=
"priceData.IsSupportChildren"
:true-label=
"CheckedVaule"
:false-label=
"UnCheckedVaule"
>
{{
$t
(
'op.SupportChild'
)
}}
</el-checkbox>
<el-checkbox
style=
"display:none;"
v-model=
"priceData.IsBookTeam"
:true-label=
"CheckedVaule"
v-if=
"PostConfig.LineId==14"
:false-label=
"UnCheckedVaule"
>
{{
$t
(
'op.OrderTeam'
)
}}
</el-checkbox>
<el-checkbox
v-model=
"priceData.IsLessPrice"
:true-label=
"CheckedVaule"
:false-label=
"UnCheckedLessPrice"
>
{{
$t
(
'op.CanLessPrice'
)
}}
</el-checkbox>
<template
v-if=
"CurrentUserInfo.RB_Group_id==2"
>
<input
type=
"button"
class=
"normalBtn"
:value=
"$t('op.HotelUse')"
@
click=
"outerVisible=true"
v-if=
"(PostConfig.LineId==14 || PostConfig.LineId==131|| PostConfig.LineId==90||PostConfig.LineId==168) "
/>
</
template
>
<!-- <template v-if="CurrentUserInfo.RB_Group_id==2">
<input type="button" class="normalBtn" :value="$t('op.HotelUse')" @click="outerVisible=true"
v-if="(PostConfig.LineId==14 || PostConfig.LineId==131|| PostConfig.LineId==90||PostConfig.LineId==168) && priceData.PriceHotelList&&priceData.PriceHotelList.length>0" />
</template> -->
<
template
v-else
>
<input
type=
"button"
class=
"normalBtn"
:value=
"$t('op.HotelUse')"
@
click=
"outerVisible=true"
v-if=
"IsDirect==1 && priceData.PriceHotelList&&priceData.PriceHotelList.length>0"
/>
</
template
>
</div>
<div
style=
"margin:0 0 20px 10px;height:34px;"
>
<div
style=
"display:inline-block;height:34px;line-height:34px;"
>
<el-checkbox
v-model=
"priceData.IsUseCompanyBus"
:true-label=
"CheckedVaule"
:false-label=
"UnCheckedLessPrice"
label=
"公司车辆"
>
</el-checkbox>
</div>
<
template
v-if=
"priceData.IsUseCompanyBus==1"
>
<el-select
v-model=
"priceData.BusPriceId"
>
<el-option
v-for=
"item in busPriceList"
:key=
"item.Id"
:label=
"item.BusNumber"
:value=
"item.Id"
>
<span
style=
"float: left"
>
{{
item
.
AreaTypeName
}}
(
{{
item
.
BusTypeStr
}}
)
</span>
<span
style=
"float: right; color: #8492a6; font-size: 13px"
>
{{
item
.
BusNumber
}}
</span>
</el-option>
</el-select>
</
template
>
</div>
<el-form-item
prop=
"B2BMemberPrice"
>
<el-input
:placeholder=
"$t('pub.pleaseImport')"
class=
"w190 ComSeat"
v-model=
"priceData.B2BMemberPrice"
@
keyup
.
native=
"checkPrice(priceData,'B2BMemberPrice')"
>
...
...
@@ -467,9 +515,16 @@
<el-form-item>
<el-input
:placeholder=
"$t('pub.pleaseImport')"
class=
"w190 ComSeat"
v-model=
"priceData.SingleDMCPrice"
@
keyup
.
native=
"checkPrice(priceData,'SingleDMCPrice')"
>
<
template
slot=
"prepend"
>
{{
$t
(
's
m.dandijie
'
)
}}
</
template
>
<
template
slot=
"prepend"
>
{{
$t
(
's
alesModule.SingleJ
'
)
}}
</
template
>
</el-input>
</el-form-item>
<el-form-item>
<el-input
:placeholder=
"$t('pub.pleaseImport')"
class=
"w190 ComSeat"
v-model=
"priceData.TipAmount"
@
keyup
.
native=
"checkPrice(priceData,'TipAmount')"
>
<
template
slot=
"prepend"
>
{{
$t
(
'op.RTXF'
)
}}
</
template
>
</el-input>
</el-form-item>
</div>
</div>
<div
class=
"clearfix"
>
...
...
@@ -522,7 +577,7 @@
</el-form-item>
</div>
</div>
<div
class=
"clearfix"
style=
"display:none;"
>
<div
class=
"clearfix"
>
<div
class=
"leftSetInfo"
>
<span
class=
"TPbaseSet"
></span>
<span
class=
"TPsecondTitle"
></span>
...
...
@@ -545,7 +600,8 @@
<div
class=
"TPright"
>
<el-form-item
prop=
"ChildNoNeedPrice"
>
<el-input
:placeholder=
"$t('pub.pleaseImport')"
class=
"w190 ComSeat"
v-model=
"priceData.ChildNoNeedPrice"
@
keyup
.
native=
"checkInteger(priceData,'ChildNoNeedPrice')"
>
v-model=
"priceData.ChildNoNeedPrice"
@
keyup
.
native=
"checkInteger(priceData,'ChildNoNeedPrice',true)"
>
<
template
slot=
"prepend"
>
{{
$t
(
'Operation.Op_childNobed'
)
}}
</
template
>
</el-input>
</el-form-item>
...
...
@@ -562,7 +618,7 @@
<
template
slot=
"prepend"
>
{{
$t
(
'sm.tonghangfanyong'
)
}}
</
template
>
</el-input>
</el-form-item>
<el-form-item
style=
"display:none;"
>
<el-form-item>
<el-input
:placeholder=
"$t('pub.pleaseImport')"
class=
"w190 ComSeat"
v-model=
"priceData.DiscountPrice"
@
keyup
.
native=
"checkPrice(priceData,'DiscountPrice')"
>
<
template
slot=
"prepend"
>
{{
$t
(
'sm.zaoniaoyouhui'
)
}}
</
template
>
...
...
@@ -573,29 +629,32 @@
<div
class=
"clearfix"
>
<div
class=
"leftSetInfo"
>
<span
class=
"TPbaseSet"
>
{{$t('leader.leader_Set')}}
</span>
<span
class=
"TPsecondTitle"
style=
"margin-right: 10px"
>
{{$t('sm.jipiaobangding')}}
</span>
<el-select
class=
"w180"
v-model=
"priceData.AirTicketId"
>
<el-option
v-for=
"(item,index) in queryFlightAirListData"
:key=
"index"
:label=
"item.AlCode+'-'+item.FlightDate+'-'+item.PNR"
:value=
"item.AirLineTicketId"
></el-option>
</el-select>
<span
class=
"TPsecondTitle"
></span>
</div>
<div
class=
"TPright clearfix"
>
<el-form-item
prop=
"ClearOrderHour"
v-if=
"TeamType==1"
>
<el-form-item
prop=
"ClearOrderHour"
>
<el-input
:placeholder=
"$t('pub.pleaseImport')"
class=
"w190 ComSeat"
v-model=
"priceData.ClearOrderHour"
@
keyup
.
native=
"checkInteger(priceData,'ClearOrderHour')"
@
blur=
"checkInteger(priceData,'ClearOrderHour')"
>
<
template
slot=
"prepend"
>
{{
$t
(
'sm.zidongqingwei'
)
}}
</
template
>
</el-input>
</el-form-item>
<span
class=
"TP_Sendprepend"
v-if=
"TeamType==1"
>
{{$t('sm.songqianshijian')}}
</span>
<el-form-item
prop=
"SendVisaTime"
style=
"margin-top:1px;"
v-if=
"TeamType==1"
>
<el-form-item>
<el-input
:placeholder=
"$t('pub.pleaseImport')"
class=
"w190 ComSeat"
v-model=
"priceData.SaleClearOrderHour"
@
keyup
.
native=
"checkInteger(priceData,'SaleClearOrderHour')"
@
blur=
"checkInteger(priceData,'SaleClearOrderHour')"
>
<
template
slot=
"prepend"
>
{{
$t
(
'salesModule.XSQW'
)
}}
</
template
>
</el-input>
</el-form-item>
<span
class=
"TP_Sendprepend"
>
{{$t('sm.songqianshijian')}}
</span>
<el-form-item
prop=
"SendVisaTime"
>
<el-date-picker
clearable
class=
"w150"
v-model=
"priceData.SendVisaTime"
type=
"date"
value-format=
"yyyy-MM-dd"
:placeholder=
"$t('admin.admin_choDate')"
></el-date-picker>
</el-form-item>
<el-form-item
prop=
"OutBranchId"
style=
"margin-top:1px;"
>
<span
class=
"TP_Sendprepend"
style=
"margin:3px -1px 0 0"
>
{{$t('scen.sc_cp')}}
</span>
<el-select
class=
"w180"
v-model=
"priceData.OutBranchId"
:disabled=
"TeamType==1"
@
change=
"getstandardCurrencyName"
>
<el-select
class=
"w180"
v-model=
"priceData.OutBranchId"
@
change=
"getstandardCurrencyName"
>
<el-option
:label=
"$t('pub.unlimitedSel')"
:value=
"SelectOtherDefault"
></el-option>
<el-option
v-for=
"item in companyList"
:key=
"item.id"
:label=
"item.bName"
:value=
"item.id"
>
</el-option>
...
...
@@ -613,64 +672,55 @@
</el-select>
</el-form-item> -->
<el-form-item
style=
"margin-top:1px;"
v-if=
"TeamType==1"
>
<span
class=
"TP_Sendprepend"
style=
"margin:3px -1px 0 0"
>
{{$t('visa.v_salecompany')}}
</span>
<el-select
class=
"w180 multiple_input"
:class=
"{'SaleBranchList':priceData.SaleBranchIdArray==''}"
v-model=
"priceData.SaleBranchIdArray"
multiple
>
<el-option
v-for=
"item in companyList"
:key=
"item.id"
:label=
"item.bName"
:value=
"item.id"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item
style=
"margin-top:1px;"
v-else
>
<span
class=
"TP_Sendprepend"
style=
"margin:3px -1px 0 0"
>
{{$t('visa.v_salecompany')}}
</span>
<el-select
class=
"w180 multiple_input multiple_input2"
:class=
"{'SaleBranchList':priceData.SaleBranchIdArray==''}"
:disabled=
"TeamType==1"
v-model=
"priceData.SaleBranchIdArray"
multiple
>
<el-option
v-for=
"item in companyList"
:key=
"item.id"
:label=
"item.bName"
:value=
"item.id"
>
<el-form-item
style=
"margin-top:1px;"
>
<span
class=
"TP_Sendprepend"
style=
"margin:3px -1px 0 0"
>
供应商
</span>
<el-select
class=
"w180"
v-model=
"priceData.SupplierId"
>
<el-option
:label=
"$t('pub.unlimitedSel')"
:value=
"SelectDefaultValue"
></el-option>
<el-option
v-for=
"item in SupplierList"
:key=
"item.Id"
:label=
"item.Name"
:value=
"item.Id"
>
</el-option>
</el-select>
</el-form-item>
</div>
<div
class=
"TPright clearfix"
>
<el-form-item
prop=
"YSeat"
v-if=
"TeamType==1"
>
<el-form-item
prop=
"YSeat"
>
<el-input
:placeholder=
"$t('pub.pleaseImport')"
class=
"w190"
v-model=
"priceData.YSeat"
@
keyup
.
native=
"checkInteger(priceData,'YSeat')"
>
<
template
slot=
"prepend"
>
{{
$t
(
'sm.jingjicangsp'
)
}}
</
template
>
</el-input>
</el-form-item>
<el-form-item
prop=
"CSeat"
v-if=
"TeamType==1"
>
<el-input
:placeholder=
"$t('pub.pleaseImport')"
class=
"w
19
0"
v-model=
"priceData.CSeat"
<el-form-item
prop=
"CSeat"
>
<el-input
:placeholder=
"$t('pub.pleaseImport')"
class=
"w
26
0"
v-model=
"priceData.CSeat"
@
keyup
.
native=
"checkInteger(priceData,'CSeat')"
>
<
template
slot=
"prepend"
>
{{
$t
(
'sm.cangwuzp'
)
}}
</
template
>
</el-input>
</el-form-item>
<el-form-item
prop=
"FSeat"
v-if=
"TeamType==1"
>
<el-input
:placeholder=
"$t('pub.pleaseImport')"
class=
"w2
6
0"
v-model=
"priceData.FSeat"
<el-form-item
prop=
"FSeat"
>
<el-input
:placeholder=
"$t('pub.pleaseImport')"
class=
"w2
9
0"
v-model=
"priceData.FSeat"
@
keyup
.
native=
"checkInteger(priceData,'FSeat')"
>
<
template
slot=
"prepend"
>
{{
$t
(
'sm.toudengxp'
)
}}
</
template
>
</el-input>
</el-form-item>
<el-form-item>
<el-input
class=
"w290"
v-model=
"priceData.Inventory"
:disabled=
"TeamType==1
"
>
<el-input
:placeholder=
"$t('pub.pleaseImport')"
class=
"w190"
v-model=
"priceData.Inventory
"
>
<
template
slot=
"prepend"
>
{{
$t
(
'sm.zdctrs'
)
}}
</
template
>
</el-input>
</el-form-item>
<el-form-item
style=
"margin-top:1px;"
>
<span
class=
"TP_Sendprepend"
style=
"margin:3px -1px 0 0"
>
{{$t('sm.xiaoshouzt')}}
</span>
<el-select
class=
"w180"
v-model=
"priceData.TCSaleState"
>
<el-option
v-for=
"item in TeamList"
:key=
"item.Id"
:label=
"item.name"
:value=
"item.Id"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item
v-if=
"TeamType==1"
>
<el-input
:placeholder=
"$t('pub.pleaseImport')"
class=
"w290"
v-model=
"priceData.LeaderNum"
>
<el-form-item>
<el-input
:placeholder=
"$t('pub.pleaseImport')"
class=
"w260"
v-model=
"priceData.LeaderNum"
>
<
template
slot=
"prepend"
>
{{
$t
(
'sm.Leadernum'
)
}}
</
template
>
</el-input>
</el-form-item>
<el-form-item>
<el-input
:placeholder=
"$t('op.CanSallTicketNum')"
class=
"w290"
v-model=
"priceData.CanSellTicketNum"
maxlength=
"2"
@
keyup
.
native=
"checkInteger(priceData,'CanSellTicketNum')"
@
change=
"CheckSellTicketNum(priceData)"
>
<
template
slot=
"prepend"
>
{{
$t
(
'op.CanSallTicketNum'
)
}}
</
template
>
</el-input>
</el-form-item>
</div>
<div
class=
"TPright clearfix"
>
<el-form-item
prop=
"GatherTime"
>
<el-input
:placeholder=
"$t('pub.pleaseImport')"
class=
"w
1
90 ComSeat"
v-model=
"priceData.GatherTime"
>
<el-input
:placeholder=
"$t('pub.pleaseImport')"
class=
"w
2
90 ComSeat"
v-model=
"priceData.GatherTime"
>
<
template
slot=
"prepend"
>
{{
$t
(
'sm.jiheshijian'
)
}}
</
template
>
</el-input>
</el-form-item>
...
...
@@ -680,8 +730,154 @@
<
template
slot=
"prepend"
>
{{
$t
(
'sm.jihedidian'
)
}}
</
template
>
</el-input>
</el-form-item>
<el-form-item
style=
"margin-top:1px;"
>
<el-input
:placeholder=
"$t('pub.pleaseImport')"
class=
"w260"
v-model=
"priceData.AirportService"
>
<
template
slot=
"prepend"
>
{{
$t
(
'op.AirSupplier'
)
}}
</
template
>
</el-input>
</el-form-item>
<el-form-item
prop=
"EmergencyContact"
>
<el-input
:placeholder=
"$t('pub.pleaseImport')"
class=
"w260"
v-model=
"priceData.EmergencyContact"
>
<
template
slot=
"prepend"
>
紧急联系人
</
template
>
</el-input>
</el-form-item>
<el-form-item>
<el-input
:placeholder=
"$t('pub.pleaseImport')"
class=
"w260 ComSeat"
v-model=
"priceData.GatherTag"
>
<
template
slot=
"prepend"
>
{{
$t
(
'op.JHbiaoshi'
)
}}
</
template
>
</el-input>
</el-form-item>
</div>
<div
class=
"clearfix"
>
<div
class=
"leftSetInfo"
>
<span
class=
"TPbaseSet"
></span>
<span
class=
"TPsecondTitle"
>
{{$t('salesModule.ScenicRefund')}}
</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"
>
{{$t('fnc.xuanze')}}
</td>
<td
class=
"_color_666"
>
{{$t('visaT.jdname')}}
</td>
<td
class=
"_color_666"
>
{{$t('fnc.tkjine')}}
</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>
<span
class=
"TP_Sendprepend"
style=
"margin-left:0;width:120px;"
>
{{$t('sm.xiaoshouzt')}}
</span>
<el-select
class=
"w180"
v-model=
"priceData.TCSaleState"
>
<el-option
v-for=
"item in TeamList"
:key=
"item.Id"
:label=
"item.name"
:value=
"item.Id"
>
</el-option>
</el-select>
</el-form-item>
</div>
</div>
<div
class=
"clearfix"
>
<div
class=
"leftSetInfo"
>
<span
class=
"TPbaseSet"
></span>
<span
class=
"TPsecondTitle"
>
{{$t('sm.jipiaobangding')}}
</span>
</div>
<div
class=
"TPright clearfix"
>
<el-popover
popper-class=
"_TravelPricePopover"
trigger=
"click"
>
<div>
<div
style=
"margin-bottom:20px;"
>
{{$t('hotel.hotel_StartDate')}}
<el-date-picker
class=
"w150"
type=
"date"
v-model=
"QFlightDateStart"
:picker-options=
"pickerBeginDateBefore"
value-format=
"yyyy-MM-dd"
placeholder
>
</el-date-picker>
{{$t('hotel.hotel_EndDate')}}
<el-date-picker
class=
"w150"
type=
"date"
v-model=
"QFlightDateEnd"
:picker-options=
"pickerBeginDateAfter"
value-format=
"yyyy-MM-dd"
placeholder
>
</el-date-picker>
<button
class=
"normalBtn"
@
click
.
stop=
"getSelectFilght()"
>
{{$t('pub.searchBtn')}}
</button>
</div>
<div
class=
"jiDiv"
>
<table
width=
"100%"
border=
"0"
cellspacing=
"0"
cellpadding=
"0"
>
<tr>
<td
class=
"_color_666"
>
{{$t('fnc.xuanze')}}
</td>
<td
class=
"_color_666"
>
{{$t('fnc.jpbianhao')}}/{{$t('op.Tickets')}}
</td>
<td
class=
"_color_666"
>
{{$t('system.query_flightNum')}}/{{$t('system.query_airCompanyName')}}/{{$t('Airticket.Air_segment')}}
</td>
<td
class=
"_color_666"
>
{{$t('adm.adm_time')}}
</td>
<td
class=
"_color_666"
>
PNR
</td>
<td
class=
"_color_666"
>
{{$t('visa.v_xcdays')}}
</td>
<td
class=
"_color_666"
>
{{$t('op.TicketNum')}}/{{$t('hotel.table_UseAmount')}}
</td>
<td
class=
"_color_666"
>
{{$t('op.BindTicket')}}
</td>
</tr>
<tr
v-for=
"fitem in selectFilghtList"
>
<td>
<el-checkbox
v-model=
"fitem.IsSelected===true"
@
change=
"getSelect(fitem)"
></el-checkbox>
</td>
<td>
{{fitem.AirticketId}}/{{fitem.TicketByName}}
</td>
<td>
<span
class=
"TP_Airticktid"
@
click=
"goUrl('TicketManager',fitem.AirticketId)"
>
{{fitem.FlightNumber}}
</span>
/
{{fitem.AlName}} / {{fitem.DepartureName}}-{{fitem.ArrivalCityName}}
</td>
<td>
{{fitem.FlightDate}} {{fitem.Departure_time}}
</td>
<td>
{{fitem.PNR}}
</td>
<td>
{{fitem.DayNum}}
</td>
<td>
{{fitem.TicketNum}} / {{fitem.UseAmount}}
</td>
<td>
<el-input
class=
"w69"
:placeholder=
"$t('salesModule.AirNum')"
@
keyup
.
native=
"getFlightBindNum(fitem)"
v-model=
"fitem.BindNum"
></el-input>
</td>
</tr>
</table>
</div>
</div>
<div
slot=
"reference"
class=
"SimulateDrop-box"
>
<span
class=
"SD_flight"
v-for=
"item in FinfoList"
>
{{item.name}} {{item.date}}
</span>
<i
class=
"iconfont icon-arrow-down SimulaDrop"
></i>
</div>
</el-popover>
<el-form-item
style=
"margin-top:1px;"
>
<span
class=
"TP_Sendprepend"
style=
"margin:3px -1px 0 0"
>
{{$t('visa.v_salecompany')}}
</span>
<el-select
class=
"w350 multiple_input"
:class=
"{'SaleBranchList':priceData.SaleBranchIdArray==''}"
v-model=
"priceData.SaleBranchIdArray"
multiple
@
change=
"ChangeSaleBranch(priceData)"
>
<el-option
v-for=
"item in companyList"
:key=
"item.id"
:label=
"item.bName"
:value=
"item.id"
>
</el-option>
</el-select>
</el-form-item>
</div>
</div>
<div
class=
"clearfix"
>
<div
class=
"TPright clearfix"
>
<el-form-item
prop=
"OutBranchId"
style=
"margin-top:1px;"
>
<span
class=
"TP_Sendprepend"
style=
"margin:3px -1px 0 0"
>
团队类型
</span>
<el-select
class=
"w180"
v-model=
"priceData.PriceTeamType"
>
<
template
v-for=
"item in TeamListArr"
>
<!--去掉小包团2023-04-19-->
<el-option
v-if=
"item.Id!=4"
:key=
"item.Id"
:label=
"item.Name"
:value=
"item.Id"
>
</el-option>
</
template
>
</el-select>
</el-form-item>
<el-form-item
style=
"margin-top:1px;"
>
<span
class=
"TP_Sendprepend"
style=
"margin:3px -1px 0 0"
>
报价单地址
</span>
<el-upload
class=
"upload-demo"
style=
"display:inline-block;position:relative;top:-1px;left:3px;"
...
...
@@ -692,6 +888,9 @@
v-if=
"priceData.PriceOfferUrl"
target=
"_blank"
>
预览
</a>
</el-form-item>
</div>
</div>
<div
class=
"clearfix"
>
<div
class=
"leftSetInfo"
>
<span
class=
"TPbaseSet"
style=
"width:62px;"
></span>
...
...
@@ -740,20 +939,15 @@
<span
class=
"TCswitch"
>
<el-switch
v-model=
"priceData.IsB2C"
:active-value=
"inActive"
:inactive-value=
"notInActive"
>
</el-switch>
<div
class=
"TC-config"
>
{{$t('
sm.cpjhtuiB2bzzd
')}}
</div>
<div
class=
"TC-config"
>
{{$t('
op.TuisongB2c
')}}
</div>
</span>
</div>
</el-form-item>
</div>
</div>
<div
class=
"TPright"
style=
"float:left;"
>
<span>
{{$t('sm.tuanqibq')}}
</span>
<span>
<el-checkbox-group
v-model=
"priceData.PriceTagIds"
>
<el-checkbox
v-for=
"team in teamTips"
:label=
"team.ID"
:key=
"team.Content"
>
{{team.Content}}
</el-checkbox>
</el-checkbox-group>
</span>
<div
class=
"TPright"
>
<span
v-if=
"priceData.IsLessPrice==1"
@
click=
"getLessPriceInfo(),lessPriceVisible=true"
class=
"lessPriceRule"
>
{{$t('op.sjgz')}}
</span>
</div>
</div>
</el-form>
...
...
@@ -761,22 +955,168 @@
<div
class=
"TPNotice"
>
{{$t('sm.ysbjchajiacl')}}
</div>
</div>
</div>
<
template
v-if=
"CurrentUserInfo.UseFlightType==0"
>
<TravelPriceFlightList
@
headCallBack=
"setDisDirectFlight"
ref=
"TravelFlightList"
:priceData=
"priceData"
:AirTicketId=
"priceData.AirTicketId"
:selectFilghtList=
"selectFilghtList"
></TravelPriceFlightList>
:AirTicketId=
"priceData.AirTicketId"
:DeleteAirticketIds=
"priceData.DeleteAirticketIds"
:selectFilghtList=
"selectFilghtList"
></TravelPriceFlightList>
</
template
>
<
template
v-else
>
<TravelPriceFlightListSelf
@
headCallBack=
"setDisDirectFlight"
ref=
"TravelFlightList"
:priceData=
"priceData"
:AirTicketId=
"priceData.AirTicketId"
:DeleteAirticketIds=
"priceData.DeleteAirticketIds"
:selectFilghtList=
"selectFilghtList"
></TravelPriceFlightListSelf>
</
template
>
</div>
<el-dialog
custom-class=
'Tp_hotelDialog'
title=
"酒店使用情况"
:visible
.
sync=
"outerVisible"
center
>
<table
class=
"TphotelTable"
border=
"0"
cellspacing=
'1'
v-if=
"priceData.TCID>0"
>
<tr>
<th
width=
"100"
>
{{$t('sm.Date')}}
</th>
<th
width=
"150"
>
{{$t('hotel.hotel')}}
</th>
<th
width=
"240"
>
{{$t('op.jdqk')}}
</th>
<th
width=
"100"
>
{{$t('salesModule.UseRoomTime')}}
</th>
<th
width=
"100"
>
{{$t('salesModule.ChangeHotel')}}
</th>
<th
width=
"120"
>
{{$t('system.table_operation')}}
</th>
</tr>
<
template
v-for=
"(subItem,subIndex) in priceData.PriceHotelList"
>
<tr
v-for=
"(childItem,childIndex) in subItem.SubList"
>
<td
style=
"background-color:#E6E6E6;color:#333;"
v-if=
"childIndex==0"
:rowspan=
"subItem.SubList.length"
>
{{
subItem
.
UseDay
}}
(
{{
getDayByDate
(
subItem
.
UseDay
)
}}
)
</td>
<td
style=
"text-align:left;padding-left:3px;"
>
{{
childItem
.
HotelName
}}
</td>
<td
style=
"text-align:left;padding-left:3px;"
>
<span
v-if=
"childItem.UseCount>0 && subItem.SubList.length==1"
>
<template
v-if=
"childItem.OPState==1&&childItem.HotelName!='温馨的家'&&childItem.HotelName!='机场附近酒店'"
>
<a
style=
"color:green"
>
【
{{
$t
(
'salesModule.OPZD'
)
}}
】
</a>
</
template
>
<
template
v-else-if=
"childItem.OPState==2&&childItem.DMCState==0&&childItem.HotelName!='温馨的家'&&childItem.HotelName!='机场附近酒店'"
>
<a
style=
"color:red"
>
【
{{
$t
(
'salesModule.OPZD'
)
}}
】
</a>
</
template
>
<
template
v-else
>
<template
v-if=
"childItem.DMCState==1&&childItem.HotelName!='温馨的家'&&childItem.HotelName!='机场附近酒店'"
>
<a
style=
"color:green"
>
【
{{
$t
(
'salesModule.DJOK'
)
}}
】
</a>
</
template
>
<
template
v-if=
"childItem.DMCState==2&&childItem.HotelName!='温馨的家'&&childItem.HotelName!='机场附近酒店'"
>
<a
style=
"color:red"
>
【
{{
$t
(
'salesModule.DJZK'
)
}}
】
</a>
</
template
>
<
template
v-if=
"childItem.DMCState==0&&childItem.HotelName!='温馨的家'&&childItem.HotelName!='机场附近酒店'"
>
<a
style=
"color:red"
>
【
{{
$t
(
'salesModule.DJWCZ'
)
}}
】
</a>
</
template
>
</template>
【
<span
style=
"color:green"
>
{{$t('op.btsy')}}:{{childItem.UseCount}}
{{childItem.CostPrice!=0?"价格:"+childItem.CostPrice:""}}
</span>
】
</span>
<span
style=
"color:#E95252;"
v-if=
"childItem.HotelName!='温馨的家'&&childItem.HotelName!='机场附近酒店'"
>
【{{$t('hotel.hotel_remainList')}}:{{childItem.RemainingInventory}}】
</span>
</td>
<td>
<
template
v-if=
"childItem.OPState==1||(childItem.OPState==2 && childItem.DMCState==0)"
>
{{
childItem
.
CreateDateStr
}}
</
template
>
</td>
<td
v-if=
"childIndex==0"
:rowspan=
"subItem.SubList.length"
>
<el-select
class=
"w180"
v-model=
"subItem.NewHotelId"
@
visible-change=
"getHotelList(subItem,$event)"
@
change=
"changeHotelList()"
filterable
>
<el-option
:key=
"0"
:label=
"$t('pub.pleaseSel')"
:value=
"0"
></el-option>
<el-option
v-for=
"hotelItem in subItem.HotelList"
:key=
"hotelItem.ID"
:label=
"hotelItem.Name"
:value=
"hotelItem.ID"
>
<span
style=
"float:left"
>
{{hotelItem.Name}}
</span>
<span
style=
"float:right;color:red;font-size:13px"
>
{{$t('hotel.hotel_remainList')}}:{{hotelItem.Inventory}}/{{$t('Operation.Op_price')}}:{{hotelItem.CostPrice}}{{hotelItem.PriceTaxTypeStr}}
</span>
</el-option>
</el-select>
</td>
<td>
<span
v-if=
"childItem.UseCount>0 && subItem.SubList.length==1"
>
<span
style=
"color:red;white-space:nowrap;cursor:pointer;"
@
click=
"DeleteStock(subItem)"
>
{{$t('system.ph_shanchu')}}
</span>
</span>
<span>
<el-popover
width=
"700"
trigger=
"click"
popper-class=
"DMC_HotelPop"
>
<commonPHInfo
:name=
'"comPriceHotelInfo"+subIndex+childIndex'
:ref=
'"comPriceHotelInfo"+subIndex+childIndex'
></commonPHInfo>
<span
slot=
"reference"
class=
"price"
style=
"cursor:pointer;text-decoration:underline;"
@
click=
"GetHotelUsePriceList(childItem.HotelId,subItem.UseDay,subIndex,childIndex)"
>
{{$t('op.kcqk')}}
</span>
</el-popover>
</span>
</td>
</tr>
</template>
</table>
<div
slot=
"footer"
class=
"dialog-footer"
>
<button
class=
"normalBtn"
type=
"primary"
@
click=
"PostConfig.IsUpdateHotel=1,saveHoteluseDetail(1)"
v-if=
"!(priceData.IsOpenHotel&&priceData.IsOpenHotel==1)"
:class=
"{'disClick':!isSaved}"
>
{{btnText}}
</button>
<button
class=
"normalBtn"
type=
"primary"
@
click=
"PostConfig.IsUpdateHotel=2;saveHoteluseDetail(2)"
v-if=
"!(priceData.IsOpenHotel&&priceData.IsOpenHotel==1)"
:class=
"{'disClick':!isSaved}"
>
{{btnTongBu}}
</button>
<button
class=
"hollowFixedBtn"
:class=
"{'disClick':!isSaved}"
@
click=
"cancelHotelUseDetail()"
>
{{$t('pub.cancelBtn')}}
</button>
<
template
v-if=
"priceData.IsOpenHotel&&priceData.IsOpenHotel==1"
>
<br
/>
<span
style=
"color:red;font-weight:bold;"
>
※
{{
$t
(
'op.DJyiguanbi'
)
}}
.
</span>
</
template
>
</div>
</el-dialog>
<el-dialog
custom-class=
'Tp_hotelDialog'
title=
"少价规则"
:visible
.
sync=
"lessPriceVisible"
center
>
<table
class=
"TphotelTable"
border=
"0"
cellspacing=
'1'
v-if=
"lessPriceData.length>0"
>
<tr>
<th>
{{$t('op.syr')}}
</th>
<th>
{{$t('op.bmzg')}}
</th>
<th>
{{$t('op.fgszjl')}}
</th>
</tr>
<tr
v-for=
"item in lessPriceData"
>
<td>
<span
v-if=
"item.LessMoney!=null"
style=
"margin-right:30px;"
>
{{item.LessMoney}}{{$t('hotel.hotel_yuan')}}
</span><span
v-if=
"item.LessPercent!=null"
>
{{item.LessPercent}}%
</span>
</td>
<td>
<span
v-if=
"item.DeptLessMoney!=null"
style=
"margin-right:30px;"
>
{{item.DeptLessMoney}}{{$t('hotel.hotel_yuan')}}
</span><span
v-if=
"item.DeptLessPercent!=null"
>
{{item.DeptLessPercent}}%
</span>
</td>
<td>
<span
v-if=
"item.FilialeLessMoney!=null"
style=
"margin-right:30px;"
>
{{item.FilialeLessMoney}}{{$t('hotel.hotel_yuan')}}
</span><span
v-if=
"item.FilialeLessPercent!=null"
>
{{item.FilialeLessPercent}}%
</span>
</td>
</tr>
</table>
<div
class=
"noData"
v-else
>
{{$t('system.content_noData')}}
</div>
<div
slot=
"footer"
class=
"dialog-footer"
>
<button
class=
"hollowFixedBtn"
@
click=
"lessPriceVisible=false"
>
{{$t('pub.cancelBtn')}}
</button>
</div>
</el-dialog>
</div>
</template>
<
script
>
import
commonPHlInfo
from
"../../commonPage/commonPriceHotelInfo.vue"
;
import
TravelPriceFlightList
from
"../TravelGroupControl/TravelPriceFlightList.vue"
;
import
TravelPriceFlightList_Self
from
"../TravelGroupControl/TravelPriceFlightList_Self.vue"
;
export
default
{
props
:
[
"priceList"
,
"priceIsDirect"
,
"OfferList"
,
"PostConfig"
,
"modifyTcid"
,
"PostDaysTrip"
,
"TeamType"
],
props
:
[
"priceList"
,
"priceIsDirect"
,
"OfferList"
,
"PostConfig"
,
"modifyTcid"
,
"TeamType"
,
"CurrentUserInfo"
,
"IsDirect"
],
data
()
{
return
{
outerVisible
:
false
,
currentDay
:
1
,
currentMonth
:
1
,
currentYear
:
1970
,
uploadList
:
[],
CheckedVaule
:
1
,
//选中值
UnCheckedVaule
:
2
,
//没选中
UnCheckedLessPrice
:
0
,
//不少价
isSaved
:
true
,
btnText
:
'保存'
,
btnTongBu
:
'同步酒店'
,
//日期数组
days
:
[],
dateString
:
"2016-01-02"
,
...
...
@@ -803,10 +1143,14 @@
},
],
returnPriceList
:
this
.
priceList
,
//酒店列表
HotelList
:
[],
companyList
:
[],
offerList
:
[],
selectFilghtList
:
[],
FinfoList
:
[],
//选中景点
ScenicList
:
[],
//下拉框默认值
SelectDefaultValue
:
0
,
SelectOtherDefault
:
-
1
,
...
...
@@ -814,50 +1158,93 @@
rules
:
{
Inventory
:
[{
required
:
true
,
message
:
this
.
$t
(
'sm.qtxshoucirks'
)
,
message
:
"请填写首次入库数"
,
trigger
:
"change"
}],
ClearOrderHour
:
[{
required
:
true
,
message
:
this
.
$t
(
'sm.qtxzdqw'
)
,
message
:
"请填写自动清位"
,
trigger
:
"change"
}],
SendVisaTime
:
[{
required
:
true
,
message
:
this
.
$t
(
'sm.qxzsqshijain'
)
,
message
:
"请选择送签时间"
,
trigger
:
"change"
}]
},
TeamList
:
[{
Id
:
1
,
name
:
this
.
$t
(
'sm.yibantuan'
)
name
:
"一般团"
},
{
Id
:
2
,
name
:
this
.
$t
(
'sm.cuxiaotuan'
)
name
:
"促销团"
},
{
Id
:
3
,
name
:
this
.
$t
(
'sm.zhutuituan'
)
name
:
"主推团"
}
],
currentPriceIndex
:
0
,
//当前团期索引位置
showPriceList
:
[],
priceShowCount
:
6
,
//团期展示条数
userID
:
null
,
dijiebaojiaShow
:
false
,
queryPriceListLoading
:
true
,
queryPriceList
:
[],
OfferTotalMoney
:
0
,
queryFlightAirListData
:
[],
queryFlightAirDateList
:
[],
getSelectdata
:
''
,
//团期标签
teamTips
:
[],
standardCurrencyName
:
''
QFlightDateStart
:
''
,
//航班查询开始日期
QFlightDateEnd
:
''
,
//航班查询结束日期
pickerBeginDateBefore
:
{
disabledDate
:
time
=>
{
let
endTime
=
new
Date
(
this
.
QFlightDateEnd
);
return
endTime
.
getTime
()
<
time
.
getTime
();
}
},
pickerBeginDateAfter
:
{
disabledDate
:
time
=>
{
let
startTime
=
new
Date
(
this
.
QFlightDateStart
);
return
startTime
.
getTime
()
>=
time
.
getTime
();
}
},
//少价规则
lessPriceVisible
:
false
,
lessPriceData
:
[],
SupplierList
:
[],
//供应商列表
TeamListArr
:
[],
busPriceList
:
[],
//车辆列表
standardCurrencyName
:
''
,
};
},
methods
:
{
//获取团期供应商列表
getTravelSupplier
()
{
this
.
apipost
(
"supplier_get_GetTravelSupplierList"
,
{},
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
SupplierList
=
res
.
data
.
data
;
}
else
{
this
.
$message
({
type
:
"error"
,
message
:
res
.
data
.
message
});
}
},
err
=>
{}
);
},
//销售公司改变方法
ChangeSaleBranch
(
item
)
{
var
str
=
""
;
if
(
item
.
SaleBranchIdArray
&&
item
.
SaleBranchIdArray
.
length
>
0
)
{
item
.
SaleBranchIdArray
.
forEach
(
subItem
=>
{
str
+=
subItem
+
","
;
});
str
=
str
.
substring
(
0
,
str
.
lastIndexOf
(
','
));
}
item
.
SaleBranchId
=
str
;
},
//调用子组件方法
GetHotelUsePriceList
(
HotelId
,
UseDay
,
index
,
hotelSubIndex
)
{
let
str
=
`comPriceHotelInfo
${
index
}${
hotelSubIndex
}
`
;
this
.
$refs
[
str
][
0
].
getHotelPriceList
(
HotelId
,
UseDay
);
},
//点击折叠
fold
()
{
if
(
this
.
isFold
==
""
)
{
...
...
@@ -883,6 +1270,7 @@
var
objItem
=
""
;
if
(
this
.
returnPriceList
.
length
>
0
)
{
objItem
=
JSON
.
parse
(
JSON
.
stringify
(
this
.
returnPriceList
[
0
]));
objItem
.
OPRemark
=
""
;
objItem
.
AirTicketId
=
0
;
objItem
.
AirticketBindList
=
[];
objItem
.
Checked
=
false
;
...
...
@@ -891,6 +1279,8 @@
objItem
.
PriceFlight
=
JSON
.
parse
(
JSON
.
stringify
(
this
.
PostConfig
.
FlightList
)
);
//自定义航班列表
objItem
.
SelfPriceFlight
=
[];
}
else
{
objItem
=
{
TCID
:
0
,
...
...
@@ -906,7 +1296,7 @@
ChildNoNeedPrice
:
0
,
ConfigId
:
0
,
DiscountPrice
:
0
,
IsSupportChildren
:
0
,
IsSupportChildren
:
1
,
OfferId
:
0
,
OldManChargePrice
:
0
,
OtherPrice
:
0
,
...
...
@@ -924,10 +1314,10 @@
GatherTime
:
""
,
GatherAddress
:
""
,
AdImage
:
""
,
YSeat
:
2
,
YSeat
:
0
,
CSeat
:
0
,
FSeat
:
0
,
Inventory
:
2
,
Inventory
:
0
,
StartDate
:
this
.
chooseDay
,
ClearOrderHour
:
""
,
SendVisaTime
:
""
,
...
...
@@ -938,167 +1328,61 @@
//op备注
OPRemark
:
""
,
//销售状态
TCSaleState
:
0
,
TCSaleState
:
1
,
LeaderNum
:
0
,
IsOrder
:
0
,
IsB2B
:
0
,
IsB2C
:
0
,
IsSubstitution
:
1
,
AirticketBindList
:
[],
LowNum
:
2
,
TeamType
:
1
,
//选中团期标签
PriceTagIds
:
[],
PriceFlight
:
JSON
.
parse
(
JSON
.
stringify
(
this
.
PostConfig
.
FlightList
)
),
//自定义航班列表
SelfPriceFlight
:
[],
//删除的绑定的航班编号
DeleteAirticketIds
:
""
,
GatherTag
:
""
,
//集合标识
AirportService
:
""
,
//机场服务
//可销售机票数量
CanSellTicketNum
:
2
,
//是否订团,0-不订,1需要订
IsBookTeam
:
0
,
//少价,0-不少价,1少价
IsLessPrice
:
1
,
//是否重新生成行程数据
IsNew
:
false
,
//选中的酒店数组
ChooseHotelArray
:
[],
//销售清位时间
SaleClearOrderHour
:
0
,
//可退景点下拉列表
ScenicBackList
:
[],
TipAmount
:
0
,
//人头小费金额
//非中国大陆护照报价
ForeignPassportPrice
:
0
,
UseFlightType
:
this
.
CurrentUserInfo
.
UseFlightType
,
SupplierId
:
0
,
//供应商编号
PriceOfferUrl
:
""
,
PriceTeamType
:
1
,
//团队类型
PriceOfferUrl
:
''
,
//报价单地址
PriceOfferName
:
""
,
//报价单名称
IsUseCompanyBus
:
0
,
//是否使用公司车辆
BusPriceId
:
0
,
//公司车辆编号
EmergencyContact
:
""
,
//紧急联系人
};
}
this
.
queryFlightAirListData
.
forEach
(
subItem
=>
{
if
(
subItem
.
FlightDate
==
objItem
.
StartDate
)
{
objItem
.
AirTicketId
=
subItem
.
AirLineTicketId
}
});
this
.
returnPriceList
.
push
(
objItem
);
this
.
initDatePickerCheched
();
this
.
returnPriceList
.
sort
(
this
.
$commonUtils
.
createComprisonFunction
(
"StartDate"
)
);
this
.
getDateInfo
(
objItem
);
this
.
queryPriceOffer
();
break
;
}
},
// 获取地接报价
queryPriceOffer
(
time
)
{
if
(
this
.
PostDaysTrip
===
""
)
return
;
this
.
queryPriceListLoading
=
true
;
let
queryPriceList
=
{
LowNum
:
2
,
DayNum
:
0
,
HotelList
:
[],
TrafficList
:
[],
ScenicList
:
[],
DinnerList
:
[],
PriceList
:
[]
};
queryPriceList
.
DayNum
=
this
.
PostDaysTrip
.
DayNum
;
// 酒店
this
.
PostDaysTrip
.
HotelList
.
forEach
(
x
=>
{
let
msg
=
{
HotelId
:
x
.
HotelId
,
DayNum
:
x
.
DayNum
};
queryPriceList
.
HotelList
.
push
(
msg
);
});
// 交通
this
.
PostDaysTrip
.
TrafficList
.
forEach
(
x
=>
{
let
msg
=
{
DayNum
:
x
.
DayNum
,
};
queryPriceList
.
TrafficList
.
push
(
msg
);
});
// 景点
this
.
PostDaysTrip
.
ScenicList
.
forEach
(
x
=>
{
let
msg
=
{
CouponsId
:
x
.
CouponsId
,
DayNum
:
x
.
DayNum
};
queryPriceList
.
ScenicList
.
push
(
msg
);
});
// 餐厅
this
.
PostDaysTrip
.
DinnerList
.
forEach
(
x
=>
{
let
msg
=
{
DinnerId
:
x
.
DinnerId
,
DayNum
:
x
.
DayNum
};
queryPriceList
.
DinnerList
.
push
(
msg
);
});
// 时间
queryPriceList
.
PriceList
.
push
({
StartDate
:
time
?
time
:
this
.
chooseDay
});
this
.
apipost
(
'travel_get_GetTeamGroupLocalOfferList'
,
queryPriceList
,
res
=>
{
if
(
res
.
data
.
resultCode
===
1
)
{
let
data
=
res
.
data
.
data
;
this
.
queryPriceList
=
data
.
objList
;
this
.
OfferTotalMoney
=
data
.
TotalMoney
;
}
this
.
queryPriceListLoading
=
false
;
},
null
)
},
// 获取飞机票1
queryFlightAir
()
{
let
TrafficList
=
this
.
PostDaysTrip
;
let
msg
=
{
FstartcityId
:
0
,
FendcityId
:
0
,
EstartcityId
:
0
,
EendcityId
:
0
,
};
if
(
TrafficList
.
TrafficList
!=
null
&&
TrafficList
.
TrafficList
.
length
>=
2
)
{
if
(
TrafficList
.
TrafficList
[
0
].
SubTraffic
[
0
].
ArrivalCityId
===
0
)
return
;
if
(
TrafficList
.
TrafficList
[
0
].
SubTraffic
[
0
].
StartCityId
===
0
)
return
;
msg
.
FstartcityId
=
TrafficList
.
TrafficList
[
0
].
SubTraffic
[
0
].
StartCityId
;
msg
.
FendcityId
=
TrafficList
.
TrafficList
[
0
].
SubTraffic
[
0
].
ArrivalCityId
;
if
(
TrafficList
.
TrafficList
[
TrafficList
.
TrafficList
.
length
-
1
].
SubTraffic
.
length
>=
2
)
{
let
list
=
TrafficList
.
TrafficList
[
TrafficList
.
TrafficList
.
length
-
1
].
SubTraffic
[
TrafficList
.
TrafficList
[
TrafficList
.
TrafficList
.
length
-
1
].
SubTraffic
.
length
-
1
];
if
(
list
.
ArrivalCityId
===
0
)
return
;
if
(
list
.
StartCityId
===
0
)
return
;
msg
.
EstartcityId
=
list
.
StartCityId
;
msg
.
EendcityId
=
list
.
ArrivalCityId
;
}
else
{
if
(
TrafficList
.
TrafficList
[
TrafficList
.
TrafficList
.
length
-
1
].
SubTraffic
[
0
].
ArrivalCityId
===
0
)
return
;
if
(
TrafficList
.
TrafficList
[
TrafficList
.
TrafficList
.
length
-
1
].
SubTraffic
[
0
].
StartCityId
===
0
)
return
;
msg
.
EstartcityId
=
TrafficList
.
TrafficList
[
TrafficList
.
TrafficList
.
length
-
1
].
SubTraffic
[
0
].
StartCityId
;
msg
.
EendcityId
=
TrafficList
.
TrafficList
[
TrafficList
.
TrafficList
.
length
-
1
].
SubTraffic
[
0
].
ArrivalCityId
;
}
this
.
queryFlightAirList
(
msg
);
}
},
// 获取飞机票2
queryFlightAirList
(
msg
)
{
this
.
apipost
(
"AirTicket_get_GetTicketList"
,
msg
,
res
=>
{
if
(
res
.
data
.
resultCode
===
1
)
{
this
.
queryFlightAirListData
=
res
.
data
.
data
;
this
.
queryFlightAirListData
.
forEach
(
x
=>
{
this
.
queryFlightAirDateList
.
push
({
day
:
x
.
FlightDate
})
});
this
.
initCalendarEdit
();
}
},
null
)
},
// 拿到航班信息初始化日历
initCalendarEdit
()
{
for
(
let
i
in
this
.
queryFlightAirDateList
)
{
for
(
let
k
in
this
.
days
)
{
this
.
days
[
k
].
click
=
true
;
if
(
this
.
queryFlightAirDateList
[
i
].
day
==
new
Date
(
this
.
days
[
k
].
day
).
Format
(
"yyyy-MM-dd"
))
{
this
.
days
[
k
].
Tip
=
true
;
//HK 2020-02-03注释
//this.days[k].click = true;
}
}
}
//this.$forceUpdate();
},
//单团期修改重置日历选中
initDatePickerCheched
()
{
// if (this.modifyTcid > 0 && this.returnPriceList.length > 0) {
// let oneDay = this.returnPriceList[0];
// this.days.forEach(x => {
// if (this.getDayStr(x.day) != oneDay.StartDate) {
// x.checkState = this.$calendarUtils.checkState.hasValue;
// }
// });
// }
},
RemovePrice
(
dateStr
)
{
var
array
=
[];
...
...
@@ -1122,11 +1406,9 @@
var
dayobject
=
{};
dayobject
.
day
=
d
;
dayobject
.
checkState
=
this
.
$calendarUtils
.
checkState
.
hasValue
;
dayobject
.
click
=
false
;
this
.
days
.
push
(
dayobject
);
}
this
.
initDate
();
this
.
initCalendarEdit
();
},
//初始化数据状态
initDate
()
{
...
...
@@ -1161,15 +1443,78 @@
this
.
$calendarUtils
.
formatDate
(
d
.
getFullYear
(),
d
.
getMonth
()
+
1
,
1
)
);
},
initFlightData
()
{
this
.
selectFilghtList
=
[];
this
.
FinfoList
=
[];
if
(
this
.
priceData
.
AirticketBindList
.
length
>
0
)
{
this
.
QFlightDateStart
=
this
.
priceData
.
AirticketBindList
[
0
].
FlightDate
;
this
.
QFlightDateEnd
=
this
.
priceData
.
AirticketBindList
[
this
.
priceData
.
AirticketBindList
.
length
-
1
]
.
FlightDate
;
this
.
getSelectFilght
();
}
else
{
this
.
QFlightDateStart
=
this
.
daysCalculate
(
this
.
priceData
.
StartDate
,
-
1
);
this
.
QFlightDateEnd
=
this
.
daysCalculate
(
this
.
priceData
.
StartDate
,
1
);
this
.
getSelectFilght
();
}
},
//日期计算
daysCalculate
(
date
,
addDay
)
{
var
date
=
new
Date
(
date
);
//获取当前时间
date
.
setDate
(
date
.
getDate
()
+
addDay
);
return
date
.
Format
(
"yyyy-MM-dd"
);
},
getSelectFilght
()
{
let
createBy
=
this
.
priceData
.
CreateBy
;
if
(
createBy
==
undefined
||
createBy
==
0
)
{
let
userInfo
=
this
.
getLocalStorage
();
createBy
=
userInfo
.
EmployeeId
;
}
let
msg
=
{
QFlightDateStart
:
this
.
QFlightDateStart
,
QFlightDateEnd
:
this
.
QFlightDateEnd
,
CreateBy
:
createBy
,
AirTicketId
:
this
.
priceData
.
AirTicketId
,
TCID
:
this
.
priceData
.
TCID
};
compareDay
(
day
)
{
var
_string
=
this
.
getDayStr
(
day
);
if
(
_string
==
this
.
chooseDay
)
{
return
true
;
let
that
=
this
;
this
.
apipost
(
"TravelAirTicket_Get_GetSelfPurchaseList"
,
msg
,
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
let
resultFilghtList
=
res
.
data
.
data
;
that
.
selectFilghtList
=
[];
resultFilghtList
.
forEach
(
x
=>
{
that
.
selectFilghtList
.
push
(
x
);
});
//通过返回数据初始化下拉选中
that
.
FinfoList
=
[];
if
(
that
.
priceData
.
AirticketBindList
!=
null
)
{
that
.
priceData
.
AirticketBindList
.
forEach
(
x
=>
{
that
.
selectFilghtList
.
forEach
(
y
=>
{
if
(
x
.
PurchaseId
==
y
.
Id
&&
x
.
BindNum
>
0
)
{
y
.
IsSelected
=
true
;
y
.
BindNum
=
x
.
BindNum
;
that
.
FinfoList
.
push
({
name
:
y
.
AlName
,
date
:
y
.
FlightDate
});
}
});
});
}
that
.
$forceUpdate
();
}
else
{
return
false
;
this
.
$message
({
type
:
"error"
,
message
:
res
.
data
.
message
});
}
},
err
=>
{}
);
},
validateForm
()
{
//表单验证
let
flag
=
true
;
...
...
@@ -1178,7 +1523,7 @@
this
.
returnPriceList
==
undefined
||
this
.
returnPriceList
.
length
===
0
)
{
this
.
Error
(
this
.
$t
(
'sm.qxztuanqi'
)
);
this
.
Error
(
"请选择团期"
);
flag
=
false
;
}
if
(
flag
)
{
...
...
@@ -1233,14 +1578,24 @@
return
_string
;
},
setDisDirectFlight
(
obj
)
{
if
(
this
.
CurrentUserInfo
.
UseFlightType
==
0
)
{
if
(
obj
.
priceFlight
&&
obj
.
priceFlight
.
length
>
0
)
{
this
.
priceData
.
PriceFlight
=
JSON
.
parse
(
JSON
.
stringify
(
obj
.
priceFlight
));
}
}
else
{
if
(
obj
.
priceFlight
&&
obj
.
priceFlight
.
length
>
0
)
{
this
.
priceData
.
SelfPriceFlight
=
JSON
.
parse
(
JSON
.
stringify
(
obj
.
priceFlight
));
}
}
if
(
obj
.
DeleteAirticketIdArray
&&
obj
.
DeleteAirticketIdArray
.
length
>
0
)
{
this
.
priceData
.
DeleteAirticketIds
=
obj
.
DeleteAirticketIdArray
.
join
(
','
);
}
},
//删除标签
delDateList
(
item
)
{
var
StartDateStr
=
item
.
StartDate
;
var
that
=
this
;
that
.
Confirm
(
this
.
$t
(
'sm.sfdeletenothf'
)
,
function
()
{
that
.
Confirm
(
"是否删除?删除后不能恢复!"
,
function
()
{
if
(
item
.
TCID
>
0
)
{
that
.
apipost
(
"travel_post_RemoveTravelPrice"
,
{
...
...
@@ -1260,17 +1615,6 @@
}
});
},
uploadFileBtn
(
file
)
{
//上传
let
newArr
=
[];
newArr
.
push
(
file
.
file
)
let
path
=
"/Upload/Temporary/"
this
.
$message
.
info
(
this
.
$t
(
'tips.shangchuanzhong'
))
this
.
UploadSelfFileT
(
path
,
newArr
,
x
=>
{
this
.
priceData
.
PriceOfferUrl
=
this
.
domainManager
().
ViittoFileUrl
+
x
.
data
.
FilePath
;
this
.
priceData
.
PriceOfferName
=
x
.
data
.
SourceFileName
;
this
.
Success
(
this
.
$t
(
'tips.scchenggong'
))
});
},
//删除团期
deletePrice
(
StartDateStr
)
{
this
.
days
.
forEach
(
dayItem
=>
{
...
...
@@ -1302,7 +1646,7 @@
});
item
.
Checked
=
true
;
this
.
priceData
=
item
;
this
.
queryPriceOffer
(
item
.
StartDate
);
this
.
initFlightData
(
);
},
//左移动获取展示的团期
priceLeftMove
()
{
...
...
@@ -1361,51 +1705,321 @@
this
.
standardCurrencyName
=
''
}
},
//出团公司
getCompanyList
()
{
//出团公司
this
.
apipost
(
"sellorder_post_GetBranchList"
,
{},
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
companyList
=
res
.
data
.
data
;
this
.
getstandardCurrencyName
()
this
.
$forceUpdate
()
}
},
err
=>
{}
);
},
//获取所有小包团
getAllTeamTips
()
{
//选中航班选择框
getSelect
(
item
)
{
if
(
this
.
PostConfig
.
LineId
==
14
&&
item
.
DayNum
!=
this
.
PostConfig
.
DayNum
)
{
this
.
Error
(
"团期行程天数和机票的行程天数不一致!请重新选择!"
);
return
;
}
item
.
IsSelected
=
!
item
.
IsSelected
;
this
.
FinfoList
=
[];
this
.
selectFilghtList
.
forEach
(
x
=>
{
if
(
x
.
IsSelected
)
{
this
.
FinfoList
.
push
({
name
:
x
.
AlName
,
date
:
x
.
FlightDate
});
var
isExsit
=
false
;
this
.
priceData
.
AirticketBindList
.
forEach
(
y
=>
{
if
(
x
.
Id
==
y
.
PurchaseId
)
{
isExsit
=
true
;
y
.
BindNum
=
x
.
BindNum
;
}
});
if
(
!
isExsit
)
{
this
.
priceData
.
AirticketBindList
.
push
({
AirTicketId
:
x
.
AirticketId
,
BindNum
:
x
.
BindNum
,
ID
:
0
,
PurchaseId
:
x
.
Id
,
FlightDate
:
x
.
FlightDate
});
}
}
else
{
var
flag
=
true
;
for
(
var
i
=
0
;
i
<
this
.
priceData
.
AirticketBindList
.
length
;
i
++
)
{
if
(
this
.
priceData
.
AirticketBindList
[
i
].
PurchaseId
===
x
.
Id
&&
flag
)
{
flag
=
false
;
this
.
priceData
.
AirticketBindList
.
splice
(
i
,
1
);
}
}
}
});
this
.
priceData
.
AirticketBindList
.
sort
(
this
.
$commonUtils
.
createComprisonFunction
(
"FlightDate"
)
);
},
//改变输入框的值
getFlightBindNum
(
fitem
)
{
var
TotalSeat
=
parseInt
(
this
.
priceData
.
YSeat
)
+
parseInt
(
this
.
priceData
.
CSeat
)
+
parseInt
(
this
.
priceData
.
FSeat
);
if
(
Number
(
fitem
.
TicketNum
)
-
Number
(
fitem
.
OtherTeamUseNum
)
<
Number
(
fitem
.
BindNum
))
{
fitem
.
BindNum
=
0
;
this
.
Error
(
"最多只能绑定"
+
(
Number
(
fitem
.
TicketNum
)
-
Number
(
fitem
.
OtherTeamUseNum
))
+
"个机位"
);
}
this
.
selectFilghtList
.
forEach
((
x
,
index
)
=>
{
if
(
x
.
IsSelected
)
{
this
.
priceData
.
AirticketBindList
.
forEach
(
y
=>
{
if
(
x
.
Id
==
y
.
PurchaseId
)
{
y
.
BindNum
=
x
.
BindNum
;
}
});
}
});
},
//选中景点选择框
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
,
query
:
{
"id"
:
id
,
blank
:
'y'
,
tab
:
'票务管理'
}
})
},
//检查机位数是否超过设置的可销售数量
CheckSellTicketNum
(
item
)
{
var
totalNum
=
0
;
if
(
item
.
YSeat
&&
item
.
YSeat
!=
''
)
{
totalNum
+=
Number
(
item
.
YSeat
);
}
if
(
item
.
CSeat
&&
item
.
CSeat
!=
''
)
{
totalNum
+=
Number
(
item
.
CSeat
);
}
if
(
item
.
FSeat
&&
item
.
FSeat
!=
''
)
{
totalNum
+=
Number
(
item
.
FSeat
);
}
var
canSellNum
=
0
;
if
(
item
.
CanSellTicketNum
&&
item
.
CanSellTicketNum
!=
''
)
{
canSellNum
=
Number
(
item
.
CanSellTicketNum
);
}
if
(
totalNum
<
canSellNum
)
{
this
.
Info
(
"可销售机票数量不能超过本团机位数!"
)
item
.
CanSellTicketNum
=
0
;
}
},
//每一天只能选择一个酒店
changeHotelStatus
(
item
,
index
)
{
item
.
CheckList
.
forEach
((
subItem
,
subIndex
)
=>
{
if
(
subIndex
!=
index
)
{
subItem
.
CheckStatus
=
false
;
}
});
},
//获取选择的酒店
changeHotelList
()
{
this
.
priceData
.
ChooseHotelArray
=
[];
if
(
this
.
priceData
.
PriceHotelList
!=
null
&&
this
.
priceData
.
PriceHotelList
.
length
>
0
)
{
this
.
priceData
.
PriceHotelList
.
forEach
(
x
=>
{
var
obj
=
{
HotelId
:
0
,
DayNum
:
0
}
if
(
x
.
NewHotelId
>
0
)
{
obj
.
HotelId
=
x
.
NewHotelId
;
obj
.
DayNum
=
x
.
DayNum
;
this
.
priceData
.
ChooseHotelArray
.
push
(
obj
);
}
else
{
x
.
CheckList
.
forEach
((
y
,
index
)
=>
{
if
(
y
.
CheckStatus
)
{
obj
.
HotelId
=
x
.
SubList
[
index
].
HotelId
;
obj
.
DayNum
=
x
.
SubList
[
index
].
DayNum
this
.
priceData
.
ChooseHotelArray
.
push
(
obj
);
}
})
}
});
if
(
this
.
priceData
.
ChooseHotelArray
!=
null
&&
this
.
priceData
.
ChooseHotelArray
.
length
>
0
)
{
this
.
priceData
.
IsNew
=
true
;
}
}
},
//保存酒店使用情况
saveHoteluseDetail
(
type
)
{
var
that
=
this
;
var
str
=
"是否确定提交选中的酒店?"
;
if
(
type
==
2
)
{
str
=
"是否同步行程酒店到地接?"
;
}
this
.
Confirm
(
str
,
function
()
{
if
(
that
.
isSaved
)
{
that
.
isSaved
=
false
;
that
.
$emit
(
"saveMsg"
);
}
if
(
type
==
2
)
{
that
.
btnTongBu
=
"同步酒店..."
;
}
else
{
that
.
btnText
=
'保存...'
;
}
});
},
//取消
cancelHotelUseDetail
()
{
this
.
priceData
.
IsNew
=
false
;
if
(
this
.
priceData
.
PriceHotelList
!=
null
&&
this
.
priceData
.
PriceHotelList
.
length
>
0
)
{
this
.
priceData
.
PriceHotelList
.
forEach
(
x
=>
{
x
.
NewHotelId
=
0
;
});
}
this
.
outerVisible
=
false
;
},
//关闭弹窗方法
closeHotelDialog
()
{
this
.
outerVisible
=
false
;
},
//保存完成初始化
initStatus
()
{
this
.
isSaved
=
true
;
this
.
btnText
=
'保存'
;
this
.
btnTongBu
=
"同步酒店"
;
},
//获取酒店信息
getHotelList
(
item
,
event
)
{
if
(
event
)
{
var
msg
=
{
Country
:
651
,
sDate
:
item
.
UseDay
,
IsMoreThanZero
:
1
};
this
.
apipost
(
"hotel_post_GetHasStockHotelListExt"
,
msg
,
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
item
.
HotelList
=
res
.
data
.
data
;
}
},
err
=>
{}
);
}
},
//获取少价信息
getLessPriceInfo
()
{
let
msg
=
{
name
:
'theme'
,
code
:
'1'
RB_Branch_id
:
this
.
priceData
.
OutBranchId
,
LineID
:
this
.
PostConfig
.
LineId
,
LineTeamId
:
this
.
PostConfig
.
LineteamId
}
this
.
apipost
(
"
travel_get_GetTravelPriceTag
"
,
msg
,
res
=>
{
this
.
apipost
(
"
sell_get_GetNewTCIDLessprice
"
,
msg
,
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
teamTips
=
res
.
data
.
data
;
this
.
lessPriceData
=
res
.
data
.
data
;
}
else
{
this
.
Error
(
res
.
data
.
message
);
}
},
err
=>
{});
},
err
=>
{}
);
},
created
()
{
if
(
this
.
TeamType
==
1
)
{
let
userInfo
=
this
.
getLocalStorage
();
this
.
priceData
.
OutBranchId
=
userInfo
.
RB_Branch_id
;
this
.
userID
=
userInfo
.
EmployeeId
;
this
.
priceData
.
SaleBranchIdArray
.
push
(
userInfo
.
RB_Branch_id
);
//删除占用的酒店库存信息
DeleteStock
(
item
)
{
var
that
=
this
;
this
.
Confirm
(
"是否此酒店库存信息?"
,
function
()
{
let
delMsg
=
{
hotelId
:
item
.
SubList
[
0
].
HotelId
,
TCID
:
item
.
TCID
,
useTime
:
item
.
SubList
[
0
].
JourneyDate
};
that
.
apipost
(
"hoteluse_post_DeleteHotelUse"
,
delMsg
,
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
that
.
Success
(
"操作成功!"
);
item
.
SubList
[
0
].
UseCount
=
0
;
}
else
{
that
.
Error
(
res
.
data
.
message
);
}
},
err
=>
{}
);
});
},
//根据日期返回星期几
getDayByDate
(
dateString
)
{
if
(
dateString
)
{
var
date
;
var
dateArray
=
dateString
.
split
(
"-"
);
date
=
new
Date
(
dateArray
[
0
],
parseInt
(
dateArray
[
1
]
-
1
),
dateArray
[
2
]);
return
"日一二三四五六"
.
charAt
(
date
.
getDay
());
}
},
//获取团队类型
getTeamList
()
{
this
.
apipost
(
"travel_get_GetTravelPriceTeamTypeList"
,
{},
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
TeamListArr
=
res
.
data
.
data
;
// 屏蔽单项服务
this
.
TeamListArr
.
splice
(
-
1
)
}
else
{
this
.
Error
(
res
.
data
.
message
);
}
},
err
=>
{}
);
},
uploadFileBtn
(
file
)
{
//上传
let
newArr
=
[];
newArr
.
push
(
file
.
file
)
let
path
=
"/Upload/Temporary/"
this
.
$message
.
info
(
this
.
$t
(
'tips.shangchuanzhong'
))
this
.
UploadSelfFileT
(
path
,
newArr
,
x
=>
{
this
.
priceData
.
PriceOfferUrl
=
this
.
domainManager
().
ViittoFileUrl
+
x
.
data
.
FilePath
;
this
.
priceData
.
PriceOfferName
=
x
.
data
.
SourceFileName
;
this
.
Success
(
this
.
$t
(
'tips.scchenggong'
))
});
},
//获取车辆列表
getBusList
()
{
this
.
apipost
(
"bus_get_GetBusTypePriceList"
,
{
IsHaveBusNum
:
1
},
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
busPriceList
=
res
.
data
.
data
;
}
else
{
this
.
Error
(
res
.
data
.
message
);
}
},
err
=>
{}
);
}
},
mounted
()
{
var
dateObj
=
this
.
$calendarUtils
.
getCurrentDate
();
this
.
currentYear
=
dateObj
.
CurrentYear
;
this
.
currentMonth
=
dateObj
.
CurrentMonth
;
this
.
queryFlightAir
();
this
.
initCalendar
();
this
.
getCompanyList
();
this
.
getAllTeamTips
();
this
.
getTravelSupplier
();
this
.
getTeamList
();
this
.
getBusList
();
},
watch
:
{
priceList
:
{
...
...
@@ -1432,6 +2046,8 @@
this
.
priceData
=
this
.
returnPriceList
[
index
];
x
[
"Checked"
]
=
true
;
this
.
chooseDay
=
this
.
priceData
.
StartDate
;
this
.
initFlightData
();
this
.
initScenic
();
}
else
{
x
[
"Checked"
]
=
false
;
}
...
...
@@ -1441,15 +2057,11 @@
},
deep
:
true
},
priceData
:
{
handler
:
function
(
val
,
oldVal
)
{},
deep
:
true
},
returnPriceList
:
{
//深度监听,可监听到对象、数组的变化
handler
:
function
(
val
,
oldVal
)
{
this
.
initShowPriceList
();
this
.
$emit
(
"headCallBack"
,
this
.
returnPriceList
,
this
.
priceData
.
OutGroupTyp
);
this
.
$emit
(
"headCallBack"
,
this
.
returnPriceList
,
this
.
priceData
.
OutGroupTyp
e
);
},
deep
:
true
},
...
...
@@ -1468,21 +2080,12 @@
this
.
initCalendar
();
},
deep
:
true
},
//监听行程数据变化
PostDaysTrip
:
{
handler
:
function
(
val
,
oldVal
)
{
// 行程天数
if
(
oldVal
===
""
)
return
;
this
.
queryPriceOffer
();
this
.
queryFlightAir
();
},
deep
:
true
}
},
components
:
{
TravelPriceFlightList
:
TravelPriceFlightList
TravelPriceFlightList
:
TravelPriceFlightList
,
commonPHInfo
:
commonPHlInfo
,
TravelPriceFlightListSelf
:
TravelPriceFlightList_Self
,
}
};
...
...
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