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
986488d8
Commit
986488d8
authored
Oct 23, 2019
by
zhengke
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
修改地接开团
parent
b1e7e989
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
1873 additions
and
15 deletions
+1873
-15
TravelConfig.vue
...ents/newTravelmanager/TravelGroupControl/TravelConfig.vue
+17
-7
TravelManager2.vue
...ts/newTravelmanager/TravelGroupControl/TravelManager2.vue
+11
-8
TravelPrice4.vue
...ents/newTravelmanager/TravelGroupControl/TravelPrice4.vue
+1845
-0
No files found.
src/components/newTravelmanager/TravelGroupControl/TravelConfig.vue
View file @
986488d8
...
...
@@ -68,6 +68,10 @@
right
:
0
;
top
:
7px
;
}
.showOther
{
display
:
none
;
}
</
style
>
<
template
>
...
...
@@ -110,30 +114,36 @@
</el-form-item>
</div>
</div>
<div
v-if=
"isShowOther
"
>
<div
:class=
"
{'showOther':TeamType==3}
">
<el-form-item
label=
"PDF别名"
>
<el-input
type=
"text"
v-model=
"PostConfig.PDFAlias"
></el-input>
</el-form-item>
</div>
<div>
<div
v-if=
"TeamType==3"
>
<el-form-item
label=
"标题备注"
>
<el-input
v-model=
"PostConfig.Title"
type=
"textarea"
:autosize=
"
{minRows: 3, maxRows: 3 }" resize="none"
placeholder="标题备注">
</el-input>
</el-form-item>
</div>
<div
v-else
>
<el-form-item
label=
"团队标题"
>
<el-input
v-model=
"PostConfig.Title"
type=
"textarea"
:autosize=
"
{minRows: 3, maxRows: 3 }" resize="none"
placeholder="请填写团队标题">
</el-input>
</el-form-item>
</div>
<div
v-if=
"isShowOther
"
>
<div
:class=
"
{'showOther':TeamType==3}
">
<el-form-item
label=
"本团卖点"
>
<el-input
v-model=
"PostConfig.ProductRecommend"
type=
"textarea"
:autosize=
"
{minRows: 3, maxRows: 3 }"
resize="none" placeholder="本团卖点" maxlength="2000">
</el-input>
</el-form-item>
</div>
<div
v-if=
"isShowOther
"
>
<div
:class=
"
{'showOther':TeamType==3}
">
<el-form-item
label=
"备注"
>
<el-input
v-model=
"PostConfig.OpenTeamDescribe"
type=
"textarea"
:autosize=
"
{minRows: 1, maxRows: 2 }"
resize="none" placeholder="此备注只在开团行程列表中显示" maxlength="300">
</el-input>
</el-form-item>
</div>
<div
class=
"_VideoStr_box"
v-if=
"isShowOther
"
>
<div
class=
"_VideoStr_box"
:class=
"
{'showOther':TeamType==3}
">
<el-form-item
label=
"视频地址"
>
<el-input
v-model=
"PostConfig.VideoStr"
type=
"textarea"
:autosize=
"
{minRows: 1, maxRows: 1 }"
placeholder="https//:video.mp4" @blur="loadVideo">
</el-input>
...
...
@@ -154,7 +164,7 @@
<div
v-if=
"GGMapShow"
>
<GGMap></GGMap>
</div>
<div
class=
"Travel_ImgList clearfix"
v-if=
"isShowOther
"
>
<div
class=
"Travel_ImgList clearfix"
:class=
"
{'showOther':TeamType==3}
">
<div
class=
"TFimgList"
v-for=
"(item,index) in PostConfig.fileList"
:key=
"item.subCode"
>
<img
v-if=
"!item.Url"
src=
"../../../assets/img/bg_c3@3x.png"
>
<img
v-else
:src=
'compressImg(item.Url, "filt", 170, "")'
>
...
...
@@ -210,7 +220,7 @@
import
GGMap
from
"../../commonPage/GGMap"
;
export
default
{
/*接收父组件传递的参数*/
props
:
[
"PostConfig"
,
"LineList"
,
"TCNUM"
,
"
isShowOther
"
],
props
:
[
"PostConfig"
,
"LineList"
,
"TCNUM"
,
"
TeamType
"
],
data
()
{
return
{
//系列列表
...
...
src/components/newTravelmanager/TravelGroupControl/TravelManager2.vue
View file @
986488d8
...
...
@@ -33,19 +33,19 @@
</div>
<div
class=
"newTravelRight"
v-loading=
"loading"
>
<TravelConfig
@
headCallBack=
"getConfig"
@
setTravelUploadData=
"setTravelUploadData"
:PostConfig=
"PostConfig"
:TCNUM=
"TCNUM"
id=
"firstAnchor"
:LineList=
"LineList"
:
isShowOther=
"isShowOther
"
></TravelConfig>
:TCNUM=
"TCNUM"
id=
"firstAnchor"
:LineList=
"LineList"
:
TeamType=
"TeamType
"
></TravelConfig>
<TravelDaysTripDirect
id=
"secondAnchor"
@
headCallBack=
"getDaysTrip"
:NoticeParameters=
"NoticeParameters"
:subConfig=
"journeyList"
:isOpenGroup=
"false"
:IsDirect=
"PostConfig.IsDirect"
v-bind:AllCityList=
"AllCityList"
v-bind:StartCity=
"StartCity"
:UseTypeArray=
"UseTypeArray"
:AirPickUp=
"AirPickUp"
:AirSend=
"AirSend"
@
change=
"handlerChangeData"
:TeamType=
"TeamType"
:IsOpenHotel=
"PostConfig.IsOpenHotel"
></TravelDaysTripDirect>
<TravelFeature
:class=
"
{'showOther':
!isShowOther
}" ref="TravelFeature" id="thirdAnchor" @featureCallBack="getFeature" :FeatureData="FeatureData"
<TravelFeature
:class=
"
{'showOther':
TeamType==3
}" ref="TravelFeature" id="thirdAnchor" @featureCallBack="getFeature" :FeatureData="FeatureData"
:TeamType="TeamType" :isNewConfig="isNewConfig" @unlockFormCommit="unlockFormCommit">
</TravelFeature>
<TravelNotice
:class=
"
{'showOther':
!isShowOther
}" ref="TravelNotice" id="fourAnchor" @headCallBack="getNotice" :subArray="NoticeParameters"
<TravelNotice
:class=
"
{'showOther':
TeamType==3
}" ref="TravelNotice" id="fourAnchor" @headCallBack="getNotice" :subArray="NoticeParameters"
:NoticeData="NoticeData" v-bind:PostConfig="PostConfig" v-bind:AllCityList="AllCityList"
v-bind:CountryID="PostConfig.CountryID">
</TravelNotice>
<TravelPrice
@
saveMsg=
"SaveData(1)"
ref=
"TravelPrice"
id=
"fiveAnchor"
@
headCallBack=
"getPrice"
:priceList=
"PriceList"
v-if=
"TeamType==0
||TeamType==3
"
:PostConfig=
"PostConfig"
:modifyTcid=
"modifyTcid"
:priceList=
"PriceList"
v-if=
"TeamType==0"
:PostConfig=
"PostConfig"
:modifyTcid=
"modifyTcid"
:TeamType=
"TeamType"
></TravelPrice>
<TravelPrice2
ref=
"TravelPrice"
id=
"fiveAnchor"
@
headCallBack=
"getPrice"
:PostDaysTrip=
"PostDaysTrip"
v-if=
"TeamType==1"
:priceList=
"PriceList"
:PostConfig=
"PostConfig"
:modifyTcid=
"modifyTcid"
...
...
@@ -53,6 +53,10 @@
<TravelPrice3
ref=
"TravelPrice"
id=
"fiveAnchor"
@
headCallBack=
"getPrice"
:PostDaysTrip=
"PostDaysTrip"
v-if=
"TeamType==2"
:priceList=
"PriceList"
:PostConfig=
"PostConfig"
:modifyTcid=
"modifyTcid"
:TeamType=
"TeamType"
></TravelPrice3>
<TravelPrice4
ref=
"TravelPrice"
id=
"fiveAnchor"
@
headCallBack=
"getPrice"
:PostDaysTrip=
"PostDaysTrip"
v-if=
"TeamType==3"
:priceList=
"PriceList"
:PostConfig=
"PostConfig"
:modifyTcid=
"modifyTcid"
:TeamType=
"TeamType"
></TravelPrice4>
<div
class=
"btnFixedDiv"
v-if=
"IsShowBtn"
>
<div
class=
"toTop"
@
click=
"backTop"
>
<i
class=
"iconfont icon-huidaodingbu"
></i>
...
...
@@ -77,6 +81,7 @@
import
TravelPrice
from
"../TravelGroupControl/TravelPrice"
;
import
TravelPrice2
from
"../TravelGroupControl/TravelPrice2"
;
import
TravelPrice3
from
"../TravelGroupControl/TravelPrice3"
;
import
TravelPrice4
from
"../TravelGroupControl/TravelPrice4"
;
export
default
{
provide
()
{
...
...
@@ -86,8 +91,6 @@
},
data
()
{
return
{
//判断是否显示其他项
isShowOther
:
true
,
IsShowBtn
:
false
,
//是否显示按钮
ConfigId
:
0
,
//地址栏查询参数
IsHaveOffer
:
0
,
//是否有报价单
...
...
@@ -221,7 +224,8 @@
TravelNotice
:
TravelNotice
,
TravelPrice
:
TravelPrice
,
TravelPrice2
:
TravelPrice2
,
TravelPrice3
:
TravelPrice3
TravelPrice3
:
TravelPrice3
,
TravelPrice4
:
TravelPrice4
},
methods
:
{
/*获取行程特色内容对象*/
...
...
@@ -615,7 +619,6 @@
}
if
(
routeName
==
'TravelManager6'
){
this
.
TeamType
=
3
;
this
.
isShowOther
=
false
;
}
let
configId
=
this
.
$route
.
query
.
configId
;
this
.
modifyTcid
=
this
.
$route
.
query
.
tcid
;
...
...
src/components/newTravelmanager/TravelGroupControl/TravelPrice4.vue
0 → 100644
View file @
986488d8
<
style
>
.choosed
span
{
background-color
:
#1bc594
!important
;
}
.illegal
span
{
background-color
:
#c0ebd1
;
}
.TPLine
{
display
:
inline-block
;
width
:
510px
;
height
:
1px
;
border-bottom
:
1px
dashed
#bfbfbf
;
}
.TP_rightDate
{
margin-left
:
50px
;
}
.TPDateContent
.currentInput
{
background-color
:
transparent
;
}
.TP_tips
{
display
:
inline-block
;
padding
:
5px
;
border
:
1px
solid
#d1d1d1
;
position
:
relative
;
border-radius
:
4px
;
margin-right
:
10px
;
cursor
:
pointer
;
}
.TP_dateContent
{
width
:
600px
;
height
:
auto
;
margin
:
30px
0
0
120px
;
min-height
:
30px
;
position
:
relative
;
}
.TP_cancel
{
position
:
absolute
;
color
:
#e95252
;
display
:
inline-block
;
width
:
16px
;
background-color
:
#fff
;
border-radius
:
50%
;
height
:
16px
;
right
:
-8px
;
top
:
-11px
;
}
.TP_DateList
{
width
:
500px
;
margin
:
10px
0
0
120px
;
}
.ckedSpan
{
background-color
:
#2aa872
;
color
:
#fff
;
}
.TP_toLeft
{
position
:
absolute
;
top
:
20px
;
cursor
:
pointer
;
left
:
0
;
}
.TravelPrice
.days
.liList
{
cursor
:
pointer
;
}
.TP_childContent
{
position
:
absolute
;
left
:
20px
;
top
:
20px
;
}
.TP_Right
{
position
:
absolute
;
top
:
20px
;
cursor
:
pointer
;
right
:
0
;
}
.TP_Sendprepend
{
float
:
left
;
width
:
110px
;
height
:
34px
;
border
:
1px
solid
#dcdfe6
;
text-align
:
center
;
line-height
:
34px
;
background-color
:
#f5f7fa
;
color
:
#909399
;
font-size
:
14px
;
margin
:
3px
-11px
0
10px
;
}
.TravelPrice
.days
.checked1
{
border
:
1px
solid
#2aa872
!important
;
}
.TravelPrice
.days
.checked2
{
border
:
1px
solid
#e95252
!important
;
}
.TP_shangchuan
.el-form-item__label
{
width
:
auto
!important
;
margin-left
:
23px
;
}
.TravelPrice
.avatar-uploader
.el-upload
{
border
:
1px
dashed
#d9d9d9
;
border-radius
:
6px
;
cursor
:
pointer
;
position
:
relative
;
overflow
:
hidden
;
}
.TravelPrice
.avatar-uploader-icon
{
font-size
:
28px
;
color
:
#8c939d
;
width
:
148px
;
height
:
148px
;
line-height
:
148px
;
text-align
:
center
;
}
.TravelPrice
.avatar-uploader
.el-upload
:hover
{
border-color
:
#409eff
;
}
.TravelPrice
.avatar-uploader
img
{
width
:
148px
;
height
:
148px
;
display
:
block
;
}
.TravelPrice
.avatar-uploader
:hover
.TP_delImg
{
display
:
block
;
}
.TP_delImg
{
display
:
inline-block
;
width
:
32px
;
height
:
32px
;
position
:
absolute
;
z-index
:
999
;
top
:
60px
;
display
:
none
;
line-height
:
32px
;
border-radius
:
50%
;
left
:
60px
;
background-color
:
gray
;
}
.TP_delImg
:hover
{
color
:
#e95252
;
background
:
#fff
;
}
.TPright
.SaleBranchList
.el-input__inner
{
height
:
34px
!important
;
}
.TPSetInfo
.multiple_input
.el-input__inner
{
margin-top
:
3px
;
}
.SimulateDrop-box
{
width
:
288px
;
min-height
:
34px
;
position
:
relative
;
padding
:
5px
21px
5px
6px
;
float
:
left
;
margin
:
4px
0
0
10px
;
border
:
1px
solid
#d1d1d1
;
}
._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
;
width
:
100%
;
}
._TravelPricePopover
table
._color_666
{
background-color
:
#ededed
;
color
:
#666666
;
padding
:
5px
;
}
._TravelPricePopover
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
;
}
.SimulaDrop
{
position
:
absolute
;
top
:
3px
;
right
:
10px
;
color
:
#c0c4cc
;
}
.SD_flight
{
display
:
inline-block
;
height
:
24px
;
margin
:
0
3px
3px
0
;
padding
:
0
8px
;
line-height
:
22px
;
background-color
:
#f0f2f5
;
}
.TP_flightBtn
{
float
:
right
;
margin-right
:
45px
;
}
.TC-config
{
color
:
#999999
;
font-size
:
12px
;
height
:
20px
;
line-height
:
20px
;
}
.TCSwitchtitle
{
display
:
inline-block
;
vertical-align
:
top
;
width
:
86px
;
text-align
:
right
;
margin-top
:
2px
;
color
:
#606266
;
}
.TCswitch
{
width
:
280px
;
}
.TP_Airticktid
{
text-decoration
:
underline
;
cursor
:
pointer
;
color
:
#409eff
;
}
.TP_noneed
{
position
:
relative
;
top
:
10px
;
margin
:
20px
0
30px
11px
;
}
.Tp_hotelDialog
{
width
:
900px
;
}
.TphotelTable
{
width
:
100%
;
margin
:
auto
;
text-align
:
center
;
font-size
:
12px
;
color
:
#333
;
border-collapse
:
collapse
;
background-color
:
#fff
;
border
:
1px
solid
#d1d1d1
;
}
.TphotelTable
th
{
background
:
#E6E6E6
;
padding
:
8px
0
;
color
:
#333
;
border
:
1px
solid
#d1d1d1
;
font-weight
:
bold
;
}
.TphotelTable
tr
td
{
background-color
:
#fff
;
/* padding:8px 0; */
border
:
1px
solid
#d1d1d1
;
}
.Tp_btn
{
color
:
#fff
;
height
:
25px
;
background
:
#E95252
;
border
:
1px
solid
#E95252
;
cursor
:
pointer
;
border-radius
:
15px
;
margin-left
:
10px
;
}
.tp_divList
{
width
:
100%
;
min-height
:
30px
;
border-bottom
:
1px
dashed
#ccc
;
}
.tp_divList
div
{
text-align
:
left
;
padding
:
0
20px
;
margin-top
:
5px
;
}
.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
>
<
template
>
<div>
<div
class=
"TravelPrice clearfix"
:class=
"
{'foldHeight':isFold==1}">
<span
class=
"TMTitle"
>
<i></i>
团期设置
</span>
<span
class=
"foldList"
@
click=
"fold"
v-if=
"isFold==''"
>
点击折叠
</span>
<span
class=
"foldList"
@
click=
"fold"
v-if=
"isFold==1"
>
点击展开
</span>
<div
class=
"TPLeft"
>
<div
class=
"Travel_Nav"
>
<span
class=
"Travel_TT"
>
选择团期
</span>
<span
class=
"Travel_Line"
></span>
</div>
<div
class=
"clearfix"
>
<div
class=
"TPDateContent"
id=
"DayAll"
>
<div
class=
"month"
>
<ul>
<li>
<i
class=
"arrow monthminus"
@
click=
"currentYear-=1,getDateString(),initCalendar(dateString)"
>
<
</i>
<input
type=
"text"
v-model=
"currentYear"
disabled
class=
"currentInput"
@
input=
"getDateString(),initCalendar(dateString)"
>
年
<i
class=
"arrow monthadd"
@
click=
"currentYear+=1,getDateString(),initCalendar(dateString)"
>
>
</i>
</li>
<li>
<i
class=
"arrow monthminus"
@
click=
"pickPre(currentYear,currentMonth)"
>
<
</i>
<input
type=
"text"
v-model=
"currentMonth"
disabled
class=
"currentInput"
@
input=
"getDateString(),initCalendar(dateString)"
>
月
<i
class=
"arrow monthadd"
@
click=
"pickNext(currentYear,currentMonth)"
>
>
</i>
</li>
</ul>
</div>
<!-- 星期 -->
<ul
class=
"weekdays"
>
<li>
{{
$t
(
'hotel.hotel_Monday'
)
}}
</li>
<li>
{{
$t
(
'hotel.hotel_Tuesday'
)
}}
</li>
<li>
{{
$t
(
'hotel.hotel_Wednesday'
)
}}
</li>
<li>
{{
$t
(
'hotel.hotel_Thursday'
)
}}
</li>
<li>
{{
$t
(
'hotel.hotel_Friday'
)
}}
</li>
<li>
{{
$t
(
'hotel.hotel_Saturday'
)
}}
</li>
<li>
{{
$t
(
'hotel.hotel_Sunday'
)
}}
</li>
</ul>
<!-- 日期 -->
<ul
class=
"days"
>
<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>
<span
v-else-if=
"dayobject.checkState==$calendarUtils.checkState.hasValue"
@
click=
"clickedDay(dayobject)"
>
{{
dayobject
.
day
.
getDate
()
}}
</span>
</li>
</ul>
</div>
</div>
</div>
<div
class=
"TPright"
></div>
<div
class=
"TPCenter"
>
<div
class=
"TPNoDiv"
>
<span
class=
"Travel_TT"
>
报价
&
库存
&
机票绑定
</span>
<span
class=
"TPNotice"
>
(注意:公司已开启价格预警机制,最低销售价格不能低于2000.00元)
</span>
<span
class=
"TPLine"
></span>
</div>
<div
class=
"TP_rightDate"
>
<div
class=
"TP_dateContent"
>
<span
class=
"TP_toLeft"
@
click=
"priceLeftMove"
>
<i
class=
"iconfont icon-previewleft"
></i>
</span>
<div
class=
"TP_childContent"
>
<span
class=
"TP_tips"
:class=
"
{'ckedSpan':item.Checked}" @click="getDateInfo(item)"
v-for="(item,index) in showPriceList" :key="index">
{{
item
.
StartDate
}}
<span
class=
"TP_cancel"
@
click
.
stop=
"delDateList(item)"
>
<i
class=
"iconfont icon-quxiao"
></i>
</span>
</span>
</div>
<span
class=
"TP_Right"
@
click=
"priceRightMove"
>
<i
class=
"iconfont icon-arrow-right"
></i>
</span>
</div>
<div
class=
"TP_DateList"
></div>
</div>
<div>
<div
class=
"TPSetInfo clearfix"
>
<el-form
label-width=
"10px"
>
<div
class=
"clearfix"
>
<div
class=
"leftSetInfo"
>
<span
class=
"TPbaseSet"
>
基本报价设置
</span>
<span
class=
"TPsecondTitle"
>
标准
</span>
</div>
<div
class=
"TPright"
>
<div
class=
"TP_noneed"
>
<el-checkbox
v-model=
"priceData.IsSupportChildren"
:true-label=
"CheckedVaule"
:false-label=
"UnCheckedVaule"
>
支持儿童出游
</el-checkbox>
<el-checkbox
style=
"display:none;"
v-model=
"priceData.IsBookTeam"
:true-label=
"CheckedVaule"
v-if=
"PostConfig.LineId==14"
:false-label=
"UnCheckedVaule"
>
订团
</el-checkbox>
<el-checkbox
v-model=
"priceData.IsLessPrice"
:true-label=
"CheckedVaule"
:false-label=
"UnCheckedLessPrice"
>
可少价
</el-checkbox>
<input
type=
"button"
class=
"normalBtn"
value=
"酒店使用情况"
@
click=
"outerVisible=true"
v-if=
"PostConfig.LineId==14 && priceData.PriceHotelList&&priceData.PriceHotelList.length>0"
/>
</div>
<el-form-item
prop=
"B2BMemberPrice"
>
<el-input
placeholder=
"请输入"
class=
"w190 ComSeat"
v-model=
"priceData.B2BMemberPrice"
@
keyup
.
native=
"checkPrice(priceData,'B2BMemberPrice')"
>
<template
slot=
"prepend"
>
同行会员
</
template
>
</el-input>
</el-form-item>
<el-form-item
prop=
"B2BPrice"
>
<el-input
placeholder=
"请输入"
class=
"w190 ComSeat"
v-model=
"priceData.B2BPrice"
@
keyup
.
native=
"checkPrice(priceData,'B2BPrice')"
>
<
template
slot=
"prepend"
>
同行
</
template
>
</el-input>
</el-form-item>
<el-form-item
prop=
"B2CMemberPrice"
>
<el-input
placeholder=
"请输入"
class=
"w190 ComSeat"
v-model=
"priceData.B2CMemberPrice"
@
keyup
.
native=
"checkPrice(priceData,'B2CMemberPrice')"
>
<
template
slot=
"prepend"
>
直客会员
</
template
>
</el-input>
</el-form-item>
<el-form-item
prop=
"B2CPrice"
>
<el-input
placeholder=
"请输入"
class=
"w190 ComSeat"
v-model=
"priceData.B2CPrice"
@
keyup
.
native=
"checkPrice(priceData,'B2CPrice')"
>
<
template
slot=
"prepend"
>
直客
</
template
>
</el-input>
</el-form-item>
<el-form-item
prop=
"BabyPrice"
>
<el-input
placeholder=
"请输入"
class=
"w190 ComSeat"
v-model=
"priceData.BabyPrice"
@
keyup
.
native=
"checkInteger(priceData,'BabyPrice')"
>
<
template
slot=
"prepend"
>
婴儿
</
template
>
</el-input>
</el-form-item>
<el-form-item>
<el-input
placeholder=
"请输入"
class=
"w190 ComSeat"
v-model=
"priceData.SingleDMCPrice"
@
keyup
.
native=
"checkPrice(priceData,'SingleDMCPrice')"
>
<
template
slot=
"prepend"
>
单地接
</
template
>
</el-input>
</el-form-item>
<el-form-item>
<el-input
placeholder=
"请输入"
class=
"w190 ComSeat"
v-model=
"priceData.TipAmount"
@
keyup
.
native=
"checkPrice(priceData,'TipAmount')"
>
<
template
slot=
"prepend"
>
人头小费
</
template
>
</el-input>
</el-form-item>
</div>
</div>
<div
class=
"clearfix"
>
<div
class=
"leftSetInfo"
>
<span
class=
"TPbaseSet"
>
其他报价设置
</span>
<span
class=
"TPsecondTitle"
>
增收
</span>
</div>
<div
class=
"TPright"
>
<el-form-item
prop=
"ChildNeedPrice"
>
<el-input
placeholder=
"请输入"
class=
"w190 ComSeat"
v-model=
"priceData.ChildNeedPrice"
@
keyup
.
native=
"checkInteger(priceData,'ChildNeedPrice')"
>
<
template
slot=
"prepend"
>
儿童占床
</
template
>
</el-input>
</el-form-item>
<el-form-item
prop=
"BabyChargePrice"
>
<el-input
placeholder=
"请输入"
class=
"w190 ComSeat"
v-model=
"priceData.BabyChargePrice"
@
keyup
.
native=
"checkPrice(priceData,'BabyChargePrice')"
>
<
template
slot=
"prepend"
>
儿童附加费
</
template
>
</el-input>
</el-form-item>
<el-form-item
prop=
"OldManChargePrice"
>
<el-input
placeholder=
"请输入"
class=
"w190 ComSeat"
v-model=
"priceData.OldManChargePrice"
@
keyup
.
native=
"checkPrice(priceData,'OldManChargePrice')"
>
<
template
slot=
"prepend"
>
老人附加费
</
template
>
</el-input>
</el-form-item>
<el-form-item
prop=
"VisaPrice"
>
<el-input
placeholder=
"请输入"
class=
"w190 ComSeat"
v-model=
"priceData.VisaPrice"
@
keyup
.
native=
"checkPrice(priceData,'VisaPrice')"
>
<
template
slot=
"prepend"
>
签证费
</
template
>
</el-input>
</el-form-item>
<el-form-item
prop=
"SingleRoomPrice"
>
<el-input
placeholder=
"请输入"
class=
"w190 ComSeat"
v-model=
"priceData.SingleRoomPrice"
@
keyup
.
native=
"checkPrice(priceData,'SingleRoomPrice')"
>
<
template
slot=
"prepend"
>
单房差
</
template
>
</el-input>
</el-form-item>
<el-form-item
prop=
"SafeMoney"
>
<el-input
placeholder=
"请输入"
class=
"w190 ComSeat"
v-model=
"priceData.SafeMoney"
@
keyup
.
native=
"checkInteger(priceData,'SafeMoney')"
>
<
template
slot=
"prepend"
>
保险
</
template
>
</el-input>
</el-form-item>
<el-form-item
prop=
"OtherPrice"
>
<el-input
placeholder=
"请输入"
class=
"w190 ComSeat"
v-model=
"priceData.OtherPrice"
@
keyup
.
native=
"checkPrice(priceData,'OtherPrice')"
>
<
template
slot=
"prepend"
>
杂费
</
template
>
</el-input>
</el-form-item>
</div>
</div>
<div
class=
"clearfix"
>
<div
class=
"leftSetInfo"
>
<span
class=
"TPbaseSet"
></span>
<span
class=
"TPsecondTitle"
>
减免
</span>
</div>
<div
class=
"TPright"
>
<el-form-item
prop=
"ChildNoNeedPrice"
>
<el-input
placeholder=
"请输入"
class=
"w190 ComSeat"
v-model=
"priceData.ChildNoNeedPrice"
@
keyup
.
native=
"checkInteger(priceData,'ChildNoNeedPrice',true)"
>
<
template
slot=
"prepend"
>
儿童不占床
</
template
>
</el-input>
</el-form-item>
<el-form-item
prop=
"BackVisaPrice"
>
<el-input
placeholder=
"请输入"
class=
"w190 ComSeat"
v-model=
"priceData.BackVisaPrice"
@
keyup
.
native=
"checkInteger(priceData,'BackVisaPrice')"
>
<
template
slot=
"prepend"
>
退签证费
</
template
>
</el-input>
</el-form-item>
<el-form-item
style=
"display:none;"
>
<el-input
placeholder=
"请输入"
class=
"w190 ComSeat"
v-model=
"priceData.RebatePrice"
@
keyup
.
native=
"checkPrice(priceData,'RebatePrice')"
>
<
template
slot=
"prepend"
>
同行返佣
</
template
>
</el-input>
</el-form-item>
<el-form-item
style=
"display:none;"
>
<el-input
placeholder=
"请输入"
class=
"w190 ComSeat"
v-model=
"priceData.DiscountPrice"
@
keyup
.
native=
"checkPrice(priceData,'DiscountPrice')"
>
<
template
slot=
"prepend"
>
早鸟优惠
</
template
>
</el-input>
</el-form-item>
</div>
</div>
<div
class=
"clearfix"
>
<div
class=
"leftSetInfo"
>
<span
class=
"TPbaseSet"
>
设置
</span>
<span
class=
"TPsecondTitle"
></span>
</div>
<div
class=
"TPright clearfix"
>
<el-form-item
prop=
"ClearOrderHour"
>
<el-input
placeholder=
"请输入"
class=
"w190 ComSeat"
v-model=
"priceData.ClearOrderHour"
@
keyup
.
native=
"checkInteger(priceData,'ClearOrderHour')"
@
blur=
"checkInteger(priceData,'ClearOrderHour')"
>
<
template
slot=
"prepend"
>
同行清位时间
</
template
>
</el-input>
</el-form-item>
<el-form-item>
<el-input
placeholder=
"请输入"
class=
"w190 ComSeat"
v-model=
"priceData.SaleClearOrderHour"
@
keyup
.
native=
"checkInteger(priceData,'SaleClearOrderHour')"
@
blur=
"checkInteger(priceData,'SaleClearOrderHour')"
>
<
template
slot=
"prepend"
>
销售清位时间
</
template
>
</el-input>
</el-form-item>
<span
class=
"TP_Sendprepend"
>
送签时间
</span>
<el-form-item
prop=
"SendVisaTime"
style=
"margin-top:1px;"
>
<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"
>
出团公司
</span>
<el-select
class=
"w180"
v-model=
"priceData.OutBranchId"
>
<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>
</el-select>
</el-form-item>
</div>
<div
class=
"TPright clearfix"
>
<el-form-item
prop=
"YSeat"
>
<el-input
placeholder=
"人数"
class=
"w190"
v-model=
"priceData.YSeat"
@
keyup
.
native=
"checkInteger(priceData,'YSeat')"
>
<
template
slot=
"prepend"
>
经济舱/上铺
</
template
>
</el-input>
</el-form-item>
<el-form-item
prop=
"CSeat"
>
<el-input
placeholder=
"人数"
class=
"w260"
v-model=
"priceData.CSeat"
@
keyup
.
native=
"checkInteger(priceData,'CSeat')"
>
<
template
slot=
"prepend"
>
商务舱/中铺
</
template
>
</el-input>
</el-form-item>
<el-form-item
prop=
"FSeat"
>
<el-input
placeholder=
"人数"
class=
"w290"
v-model=
"priceData.FSeat"
@
keyup
.
native=
"checkInteger(priceData,'FSeat')"
>
<
template
slot=
"prepend"
>
头等舱/下铺
</
template
>
</el-input>
</el-form-item>
<el-form-item>
<el-input
placeholder=
"人数"
class=
"w190"
v-model=
"priceData.Inventory"
>
<
template
slot=
"prepend"
>
最低成团人数
</
template
>
</el-input>
</el-form-item>
<el-form-item>
<el-input
placeholder=
"人数"
class=
"w260"
v-model=
"priceData.LeaderNum"
>
<
template
slot=
"prepend"
>
领队人数
</
template
>
</el-input>
</el-form-item>
<el-form-item>
<el-input
placeholder=
"可销售机票数量"
class=
"w290"
v-model=
"priceData.CanSellTicketNum"
maxlength=
"2"
@
keyup
.
native=
"checkInteger(priceData,'CanSellTicketNum')"
@
change=
"CheckSellTicketNum(priceData)"
>
<
template
slot=
"prepend"
>
可销售机票数量
</
template
>
</el-input>
</el-form-item>
</div>
<div
class=
"TPright clearfix"
>
<el-form-item
prop=
"GatherTime"
>
<el-input
placeholder=
"请输入"
class=
"w290 ComSeat"
v-model=
"priceData.GatherTime"
>
<
template
slot=
"prepend"
>
集合时间
</
template
>
</el-input>
</el-form-item>
<el-form-item
prop=
"GatherAddress"
>
<el-input
placeholder=
"请输入"
class=
"w460 ComSeat"
v-model=
"priceData.GatherAddress"
>
<
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.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>
<el-input
placeholder=
"请输入"
class=
"w460 ComSeat"
v-model=
"priceData.GatherTag"
>
<
template
slot=
"prepend"
>
集合标识
</
template
>
</el-input>
</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>
<span
class=
"TPsecondTitle"
>
机票绑定
</span>
</div>
<div
class=
"TPright clearfix"
>
<el-popover
popper-class=
"_TravelPricePopover"
trigger=
"click"
>
<div>
<div
style=
"margin-bottom:20px;"
>
开始日期
<el-date-picker
class=
"w150"
type=
"date"
v-model=
"QFlightDateStart"
:picker-options=
"pickerBeginDateBefore"
value-format=
"yyyy-MM-dd"
placeholder
>
</el-date-picker>
结束日期
<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()"
>
查询
</button>
</div>
<div
class=
"jiDiv"
>
<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>
<td
class=
"_color_666"
>
时间
</td>
<td
class=
"_color_666"
>
PNR
</td>
<td
class=
"_color_666"
>
行程天数
</td>
<td
class=
"_color_666"
>
机票数量/使用数量
</td>
<td
class=
"_color_666"
>
绑定机位数
</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=
"机位数"
@
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"
>
销售公司
</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=
"leftSetInfo"
>
<span
class=
"TPbaseSet"
style=
"width:62px;"
></span>
<span
class=
"TPsecondTitle"
style=
"width:66px;"
>
op对外备注
</span>
</div>
<div
class=
"TPright"
style=
"float:left;"
>
<el-form-item
style=
"margin-top:-20px;"
>
<el-input
v-model=
"priceData.OPRemark"
type=
"textarea"
:autosize=
"{minRows: 3, maxRows: 3 }"
resize=
"none"
class=
"w760"
placeholder=
"op对外备注"
></el-input>
</el-form-item>
<el-form-item>
<div>
<span
class=
"TCSwitchtitle"
>
订单操作
</span>
<span
class=
"TCswitch"
>
<el-switch
v-model=
"priceData.IsOrder"
:active-value=
"inActive"
:inactive-value=
"notInActive"
>
</el-switch>
<div
class=
"TC-config"
>
关闭后,业务人员将不能操作订单
</div>
</span>
</div>
</el-form-item>
<el-form-item>
<div>
<span
class=
"TCSwitchtitle"
>
同行在线预订
</span>
<span
class=
"TCswitch"
>
<el-switch
v-model=
"priceData.IsB2B"
:active-value=
"inActive"
:inactive-value=
"notInActive"
>
</el-switch>
<div
class=
"TC-config"
>
产品将会直接推送到B2B站点
</div>
</span>
</div>
</el-form-item>
</div>
<div
class=
"TPright"
style=
"float:left;"
>
<el-form-item>
<div>
<span
class=
"TCSwitchtitle"
>
报名候补
</span>
<span
class=
"TCswitch"
>
<el-switch
v-model=
"priceData.IsSubstitution"
:active-value=
"inActive"
:inactive-value=
"notInActive"
></el-switch>
<div
class=
"TC-config"
>
关闭后不可超收人数
</div>
</span>
</div>
</el-form-item>
<el-form-item>
<div>
<span
class=
"TCSwitchtitle"
>
直客在线预订
</span>
<span
class=
"TCswitch"
>
<el-switch
v-model=
"priceData.IsB2C"
:active-value=
"inActive"
:inactive-value=
"notInActive"
>
</el-switch>
<div
class=
"TC-config"
>
产品将会直接推送到B2C站点
</div>
</span>
</div>
</el-form-item>
</div>
</div>
<div
class=
"TPright"
>
<span
v-if=
"priceData.IsLessPrice==1"
@
click=
"getLessPriceInfo(),lessPriceVisible=true"
class=
"lessPriceRule"
>
少价规则
</span>
</div>
</div>
</el-form>
</div>
<div
class=
"TPNotice"
>
注:以上报价均会根据客户所选类型做价差处理
</div>
</div>
</div>
<TravelPriceFlightList
@
headCallBack=
"setDisDirectFlight"
ref=
"TravelFlightList"
:priceData=
"priceData"
:AirTicketId=
"priceData.AirTicketId"
:DeleteAirticketIds=
"priceData.DeleteAirticketIds"
:selectFilghtList=
"selectFilghtList"
></TravelPriceFlightList>
</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"
>
日期
</th>
<th
width=
"150"
>
酒店
</th>
<th
width=
"240"
>
酒店情况
</th>
<th
width=
"100"
>
占房时间
</th>
<th
width=
"100"
>
更换酒店
</th>
<th
width=
"120"
>
操作
</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
}}
</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"
>
【OP-指定】
</a>
</
template
>
<
template
v-else-if=
"childItem.OPState==2&&childItem.DMCState==0&&childItem.HotelName!='温馨的家'&&childItem.HotelName!='机场附近酒店'"
>
<a
style=
"color:red"
>
【OP-指定】
</a>
</
template
>
<
template
v-else
>
<template
v-if=
"childItem.DMCState==1&&childItem.HotelName!='温馨的家'&&childItem.HotelName!='机场附近酒店'"
>
<a
style=
"color:green"
>
【地接-OK】
</a>
</
template
>
<
template
v-if=
"childItem.DMCState==2&&childItem.HotelName!='温馨的家'&&childItem.HotelName!='机场附近酒店'"
>
<a
style=
"color:red"
>
【地接-暂定】
</a>
</
template
>
<
template
v-if=
"childItem.DMCState==0&&childItem.HotelName!='温馨的家'&&childItem.HotelName!='机场附近酒店'"
>
<a
style=
"color:red"
>
【地接-未操作】
</a>
</
template
>
</template>
【
<span
style=
"color:green"
>
本团使用:{{childItem.UseCount}}
{{childItem.CostPrice!=0?"价格:"+childItem.CostPrice:""}}
</span>
】
</span>
<span
style=
"color:#E95252;"
v-if=
"childItem.HotelName!='温馨的家'&&childItem.HotelName!='机场附近酒店'"
>
【剩余:{{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=
"请选择"
: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"
>
剩余:{{hotelItem.Inventory}}/价格:{{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)"
>
删除
</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)"
>
库存情况
</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;"
>
※ 地接已关闭酒店操作,如需修改请联系地接OP.
</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>
所有人
</th>
<th>
部门主管
</th>
<th>
分公司总经理
</th>
</tr>
<tr
v-for=
"item in lessPriceData"
>
<td>
<span
v-if=
"item.LessMoney!=null"
style=
"margin-right:30px;"
>
{{item.LessMoney}}元
</span><span
v-if=
"item.LessPercent!=null"
>
{{item.LessPercent}}%
</span>
</td>
<td>
<span
v-if=
"item.DeptLessMoney!=null"
style=
"margin-right:30px;"
>
{{item.DeptLessMoney}}元
</span><span
v-if=
"item.DeptLessPercent!=null"
>
{{item.DeptLessPercent}}%
</span>
</td>
<td>
<span
v-if=
"item.FilialeLessMoney!=null"
style=
"margin-right:30px;"
>
{{item.FilialeLessMoney}}元
</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"
;
export
default
{
props
:
[
"priceList"
,
"priceIsDirect"
,
"OfferList"
,
"PostConfig"
,
"modifyTcid"
,
"TeamType"
],
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"
,
inActive
:
1
,
notInActive
:
0
,
//选中状态
chooseDay
:
""
,
DateArr
:
[],
priceData
:
{
AdImage
:
{
Url
:
""
,
Name
:
""
},
SaleBranchIdArray
:
[]
},
returnPriceList
:
this
.
priceList
,
//酒店列表
HotelList
:
[],
companyList
:
[],
offerList
:
[],
selectFilghtList
:
[],
FinfoList
:
[],
//选中景点
ScenicList
:
[],
//下拉框默认值
SelectDefaultValue
:
0
,
SelectOtherDefault
:
-
1
,
isFold
:
""
,
rules
:
{
Inventory
:
[{
required
:
true
,
message
:
"请填写首次入库数"
,
trigger
:
"change"
}],
ClearOrderHour
:
[{
required
:
true
,
message
:
"请填写自动清位"
,
trigger
:
"change"
}],
SendVisaTime
:
[{
required
:
true
,
message
:
"请选择送签时间"
,
trigger
:
"change"
}]
},
TeamList
:
[{
Id
:
1
,
name
:
"一般团"
},
{
Id
:
2
,
name
:
"促销团"
},
{
Id
:
3
,
name
:
"主推团"
}
],
currentPriceIndex
:
0
,
//当前团期索引位置
showPriceList
:
[],
priceShowCount
:
6
,
//团期展示条数
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
:
[],
};
},
methods
:
{
//销售公司改变方法
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
==
""
)
{
this
.
isFold
=
1
;
}
else
{
this
.
isFold
=
""
;
}
},
//年月点击切换
getDateString
:
function
()
{
this
.
dateString
=
this
.
$calendarUtils
.
formatDate
(
this
.
currentYear
,
this
.
currentMonth
,
1
);
},
//点击选中日历日期
clickedDay
(
item
)
{
this
.
chooseDay
=
this
.
getDayStr
(
item
.
day
);
switch
(
item
.
checkState
)
{
case
this
.
$calendarUtils
.
checkState
.
hasValue
:
item
.
checkState
=
this
.
$calendarUtils
.
checkState
.
checked
;
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
;
objItem
.
StartDate
=
this
.
chooseDay
;
objItem
.
TCID
=
0
;
objItem
.
PriceFlight
=
JSON
.
parse
(
JSON
.
stringify
(
this
.
PostConfig
.
FlightList
)
);
}
else
{
objItem
=
{
TCID
:
0
,
AirTicketId
:
0
,
AirticketMoney
:
0
,
B2BMemberPrice
:
0
,
B2BPrice
:
0
,
B2CMemberPrice
:
0
,
B2CPrice
:
0
,
BabyChargePrice
:
0
,
BabyPrice
:
0
,
ChildNeedPrice
:
0
,
ChildNoNeedPrice
:
0
,
ConfigId
:
0
,
DiscountPrice
:
0
,
IsSupportChildren
:
1
,
OfferId
:
0
,
OldManChargePrice
:
0
,
OtherPrice
:
0
,
PeopleNum
:
0
,
RebatePrice
:
0
,
SafeMoney
:
0
,
SingleDMCPrice
:
0
,
SingleRoomPrice
:
0
,
VisaPrice
:
0
,
BackVisaPrice
:
0
,
BackSafeMoney
:
0
,
ContractUrl
:
""
,
ContractArray
:
[],
OutBranchId
:
0
,
GatherTime
:
""
,
GatherAddress
:
""
,
AdImage
:
""
,
YSeat
:
0
,
CSeat
:
0
,
FSeat
:
0
,
Inventory
:
0
,
StartDate
:
this
.
chooseDay
,
ClearOrderHour
:
""
,
SendVisaTime
:
""
,
Checked
:
false
,
SaleBranchId
:
""
,
//销售公司编号
//销售公司数组
SaleBranchIdArray
:
[],
//op备注
OPRemark
:
""
,
//销售状态
TCSaleState
:
1
,
LeaderNum
:
0
,
IsOrder
:
0
,
IsB2B
:
0
,
IsB2C
:
0
,
IsSubstitution
:
1
,
AirticketBindList
:
[],
PriceFlight
:
JSON
.
parse
(
JSON
.
stringify
(
this
.
PostConfig
.
FlightList
)
),
//删除的绑定的航班编号
DeleteAirticketIds
:
""
,
GatherTag
:
""
,
//集合标识
AirportService
:
""
,
//机场服务
//可销售机票数量
CanSellTicketNum
:
2
,
//是否订团,0-不订,1需要订
IsBookTeam
:
0
,
//少价,0-不少价,1少价
IsLessPrice
:
1
,
//是否重新生成行程数据
IsNew
:
false
,
//选中的酒店数组
ChooseHotelArray
:
[],
//销售清位时间
SaleClearOrderHour
:
0
,
//可退景点下拉列表
ScenicBackList
:
[],
TipAmount
:
0
,
//人头小费金额
};
}
this
.
returnPriceList
.
push
(
objItem
);
this
.
initDatePickerCheched
();
this
.
returnPriceList
.
sort
(
this
.
$commonUtils
.
createComprisonFunction
(
"StartDate"
)
);
this
.
getDateInfo
(
objItem
);
break
;
}
},
//单团期修改重置日历选中
initDatePickerCheched
()
{
},
RemovePrice
(
dateStr
)
{
var
array
=
[];
this
.
returnPriceList
.
forEach
(
dayItem
=>
{
if
(
dayItem
.
StartDate
!=
dateStr
)
{
array
.
push
(
dayItem
);
}
});
this
.
returnPriceList
=
array
;
},
initCalendar
:
function
(
cur
)
{
var
newDays
=
this
.
$calendarUtils
.
createCalendar
(
cur
);
this
.
currentDay
=
newDays
.
CurrentDay
;
this
.
currentYear
=
newDays
.
CurrentYear
;
this
.
currentMonth
=
newDays
.
CurrentMonth
;
this
.
days
.
length
=
0
;
var
dateArray
=
newDays
.
DayArray
;
for
(
var
i
=
0
;
i
<
dateArray
.
length
;
i
++
)
{
var
d
=
dateArray
[
i
].
day
;
var
dayobject
=
{};
dayobject
.
day
=
d
;
dayobject
.
checkState
=
this
.
$calendarUtils
.
checkState
.
hasValue
;
this
.
days
.
push
(
dayobject
);
}
this
.
initDate
();
},
//初始化数据状态
initDate
()
{
if
(
this
.
days
!=
null
)
{
this
.
days
.
forEach
(
dayItem
=>
{
var
myDate
=
this
.
$calendarUtils
.
formatDate
(
dayItem
.
day
.
getFullYear
(),
dayItem
.
day
.
getMonth
()
+
1
,
dayItem
.
day
.
getDate
()
);
dayItem
.
checkState
=
this
.
$calendarUtils
.
checkState
.
hasValue
;
if
(
this
.
checkPriceExit
(
myDate
))
{
dayItem
.
checkState
=
this
.
$calendarUtils
.
checkState
.
checked
;
}
});
}
this
.
initDatePickerCheched
();
},
//点击左箭头切换年月
pickPre
:
function
(
year
,
month
)
{
var
d
=
new
Date
(
this
.
$calendarUtils
.
formatDate
(
year
,
month
,
1
));
d
.
setDate
(
0
);
this
.
initCalendar
(
this
.
$calendarUtils
.
formatDate
(
d
.
getFullYear
(),
d
.
getMonth
()
+
1
,
1
)
);
},
//点击右箭头切换年月
pickNext
:
function
(
year
,
month
)
{
var
d
=
new
Date
(
this
.
$calendarUtils
.
formatDate
(
year
,
month
,
1
));
d
.
setDate
(
35
);
this
.
initCalendar
(
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
};
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
{
this
.
$message
({
type
:
"error"
,
message
:
res
.
data
.
message
});
}
},
err
=>
{}
);
},
validateForm
()
{
//表单验证
let
flag
=
true
;
if
(
this
.
returnPriceList
==
null
||
this
.
returnPriceList
==
undefined
||
this
.
returnPriceList
.
length
===
0
)
{
this
.
Error
(
"请选择团期"
);
flag
=
false
;
}
if
(
flag
)
{
this
.
returnPriceList
.
forEach
(
x
=>
{
if
(
flag
)
{
if
(
!
this
.
validateTeamQuot
(
x
))
{
flag
=
false
;
}
}
});
}
return
flag
;
},
//数据验证
validateTeamQuot
(
quotationPrice
)
{
if
(
this
.
isNullOrEmpty
(
quotationPrice
.
B2BMemberPrice
)
||
this
.
isNullOrEmpty
(
quotationPrice
.
B2BPrice
)
||
this
.
isNullOrEmpty
(
quotationPrice
.
B2CMemberPrice
)
||
this
.
isNullOrEmpty
(
quotationPrice
.
B2CPrice
)
||
this
.
isNullOrEmpty
(
quotationPrice
.
BabyChargePrice
)
||
this
.
isNullOrEmpty
(
quotationPrice
.
BabyPrice
)
||
this
.
isNullOrEmpty
(
quotationPrice
.
ChildNeedPrice
)
||
this
.
isNullOrEmpty
(
quotationPrice
.
ChildNoNeedPrice
)
||
this
.
isNullOrEmpty
(
quotationPrice
.
OldManChargePrice
)
||
this
.
isNullOrEmpty
(
quotationPrice
.
OtherPrice
)
||
this
.
isNullOrEmpty
(
quotationPrice
.
SingleRoomPrice
)
||
this
.
isNullOrEmpty
(
quotationPrice
.
VisaPrice
)
||
this
.
isNullOrEmpty
(
quotationPrice
.
SingleDMCPrice
)
||
this
.
isNullOrEmpty
(
quotationPrice
.
BackVisaPrice
)
||
this
.
isNullOrEmpty
(
quotationPrice
.
OutBranchId
)
)
{
return
false
;
}
else
{
return
true
;
}
},
isNullOrEmpty
(
value
)
{
if
(
value
===
null
||
value
===
""
)
{
return
true
;
}
else
{
return
false
;
}
},
getDayStr
(
date
)
{
var
_string
=
this
.
$calendarUtils
.
formatDate
(
date
.
getFullYear
(),
date
.
getMonth
()
+
1
,
date
.
getDate
()
);
return
_string
;
},
setDisDirectFlight
(
obj
)
{
this
.
priceData
.
PriceFlight
=
JSON
.
parse
(
JSON
.
stringify
(
obj
.
priceFlight
));
this
.
priceData
.
DeleteAirticketIds
=
obj
.
DeleteAirticketIdArray
.
join
(
','
);
},
//删除标签
delDateList
(
item
)
{
var
StartDateStr
=
item
.
StartDate
;
var
that
=
this
;
that
.
Confirm
(
"是否删除?删除后不能恢复!"
,
function
()
{
if
(
item
.
TCID
>
0
)
{
that
.
apipost
(
"travel_post_RemoveTravelPrice"
,
{
TCID
:
item
.
TCID
},
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
that
.
deletePrice
(
StartDateStr
);
}
else
{
that
.
Info
(
res
.
data
.
message
);
}
},
null
);
}
else
{
that
.
deletePrice
(
StartDateStr
)
}
});
},
//删除团期
deletePrice
(
StartDateStr
)
{
this
.
days
.
forEach
(
dayItem
=>
{
var
dateStr
=
this
.
getDayStr
(
dayItem
.
day
);
if
(
dateStr
==
StartDateStr
)
{
dayItem
.
checkState
=
this
.
$calendarUtils
.
checkState
.
hasValue
;
}
});
var
array
=
[];
let
deleteIsChecked
=
false
;
this
.
returnPriceList
.
forEach
(
priceItem
=>
{
if
(
priceItem
.
StartDate
!=
StartDateStr
)
{
array
.
push
(
priceItem
);
}
else
{
if
(
priceItem
.
Checked
)
{
deleteIsChecked
=
true
;
}
}
});
this
.
returnPriceList
=
array
;
if
(
deleteIsChecked
&&
this
.
returnPriceList
.
length
>
0
)
{
this
.
returnPriceList
[
0
].
Checked
=
true
;
}
},
//选中的日期点击事件
getDateInfo
(
item
)
{
this
.
returnPriceList
.
forEach
(
x
=>
{
x
.
Checked
=
false
;
});
item
.
Checked
=
true
;
this
.
priceData
=
item
;
this
.
initFlightData
();
},
//左移动获取展示的团期
priceLeftMove
()
{
if
(
this
.
currentPriceIndex
>
0
)
{
this
.
currentPriceIndex
--
;
this
.
initShowPriceList
();
}
},
//右移动获取展示的团期
priceRightMove
()
{
if
(
this
.
currentPriceIndex
<
this
.
returnPriceList
.
length
-
this
.
priceShowCount
)
{
this
.
currentPriceIndex
++
;
this
.
initShowPriceList
();
}
},
//初始化显示团期数据
initShowPriceList
()
{
let
showPriceList
=
[];
let
getCount
=
0
;
//获取到得数量
this
.
showPriceList
=
showPriceList
;
for
(
let
i
=
this
.
currentPriceIndex
;
i
<
this
.
returnPriceList
.
length
&&
getCount
<
this
.
priceShowCount
;
i
++
)
{
showPriceList
.
push
(
this
.
returnPriceList
[
i
]);
getCount
++
;
}
},
//修改时判断初始化团期是否存在
checkPriceExit
(
date
)
{
let
isExit
=
false
;
this
.
priceList
.
forEach
(
price
=>
{
if
(
this
.
$commonUtils
.
CompareDate
(
price
.
StartDate
,
date
)
===
0
)
{
if
(
this
.
modifyTcid
>
0
)
{
if
(
price
.
TCID
==
this
.
modifyTcid
)
{
isExit
=
true
;
}
}
else
{
isExit
=
true
;
}
}
});
return
isExit
;
},
getCompanyList
()
{
//出团公司
this
.
apipost
(
"sellorder_post_GetBranchList"
,
{},
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
companyList
=
res
.
data
.
data
;
}
},
err
=>
{}
);
},
//选中航班选择框
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
=
{
RB_Branch_id
:
this
.
priceData
.
OutBranchId
,
LineID
:
this
.
PostConfig
.
LineId
,
LineTeamId
:
this
.
PostConfig
.
LineteamId
}
this
.
apipost
(
"sell_get_GetNewTCIDLessprice"
,
msg
,
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
lessPriceData
=
res
.
data
.
data
;
}
else
{
this
.
Error
(
res
.
data
.
message
);
}
},
err
=>
{}
);
},
//删除占用的酒店库存信息
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
=>
{}
);
});
},
},
mounted
()
{
var
dateObj
=
this
.
$calendarUtils
.
getCurrentDate
();
this
.
currentYear
=
dateObj
.
CurrentYear
;
this
.
currentMonth
=
dateObj
.
CurrentMonth
;
this
.
initCalendar
();
this
.
getCompanyList
();
},
watch
:
{
priceList
:
{
//深度监听,可监听到对象、数组的变化
handler
:
function
(
val
,
oldVal
)
{
this
.
returnPriceList
=
JSON
.
parse
(
JSON
.
stringify
(
this
.
priceList
));
//当团期修改
if
(
this
.
modifyTcid
>
0
)
{
let
priceList
=
[];
this
.
returnPriceList
.
forEach
(
x
=>
{
if
(
x
.
TCID
==
this
.
modifyTcid
)
{
priceList
=
[];
x
.
ConfigID
=
0
;
priceList
.
push
(
x
);
}
});
this
.
returnPriceList
=
priceList
;
}
this
.
returnPriceList
.
sort
(
this
.
$commonUtils
.
createComprisonFunction
(
"StartDate"
)
);
this
.
returnPriceList
.
forEach
((
x
,
index
)
=>
{
if
(
index
==
0
)
{
this
.
priceData
=
this
.
returnPriceList
[
index
];
x
[
"Checked"
]
=
true
;
this
.
chooseDay
=
this
.
priceData
.
StartDate
;
this
.
initFlightData
();
this
.
initScenic
();
}
else
{
x
[
"Checked"
]
=
false
;
}
this
.
DateArr
.
push
(
x
.
StartDate
);
});
this
.
initCalendar
();
},
deep
:
true
},
returnPriceList
:
{
//深度监听,可监听到对象、数组的变化
handler
:
function
(
val
,
oldVal
)
{
this
.
initShowPriceList
();
this
.
$emit
(
"headCallBack"
,
this
.
returnPriceList
);
},
deep
:
true
},
//监听报价单日期
OfferList
:
{
//深度监听,可监听到对象、数组的变化
handler
:
function
(
val
,
oldVal
)
{
this
.
initCalendar
();
},
deep
:
true
}
},
components
:
{
TravelPriceFlightList
:
TravelPriceFlightList
,
commonPHInfo
:
commonPHlInfo
}
};
</
script
>
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