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
86549e2c
Commit
86549e2c
authored
Jun 23, 2025
by
黄奎
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
新增机票数据分析页面
parent
6473f29d
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
4494 additions
and
1216 deletions
+4494
-1216
ticketSpider.vue
src/components/Ticketing/ticketSpider.vue
+4486
-0
TravelticketManager.1.vue
...components/TravelManager/Ticket/TravelticketManager.1.vue
+0
-1215
order-form2.vue
src/components/orderCommon/order-form2.vue
+0
-1
config.js
src/router/config.js
+8
-0
No files found.
src/components/Ticketing/ticketSpider.vue
0 → 100644
View file @
86549e2c
This source diff could not be displayed because it is too large. You can
view the blob
instead.
src/components/TravelManager/Ticket/TravelticketManager.1.vue
deleted
100644 → 0
View file @
6473f29d
<
style
>
.TravelticketManager_list
{
padding
:
20px
0
0
0
;
}
.TravelticketManager
._ol_info
{
font-size
:
12px
;
width
:
100%
;
overflow-x
:
auto
;
height
:
100%
;
}
.TravelticketManager
._ol_color
{
font-size
:
12px
;
width
:
100%
;
margin-bottom
:
20px
;
}
.TravelticketManager
._ol_color
li
{
float
:
left
;
padding
:
0
15px
;
display
:
flex
;
align-items
:
center
;
}
.TravelticketManager
._ol_color
li
._cl
{
border-radius
:
3px
;
display
:
inline-block
;
width
:
5px
;
height
:
12px
;
margin-right
:
5px
;
}
.TravelticketManager
._red
{
background-color
:
#e95252
;
}
.TravelticketManager
._red_text
{
color
:
#e95252
;
}
.TravelticketManager
._green
{
background-color
:
#47bf8c
;
}
.TravelticketManager
._green_text
{
color
:
#47bf8c
;
}
.TravelticketManager
._blu
{
background-color
:
#2aaef2
;
}
.TravelticketManager
._blu_text
{
color
:
#2aaef2
;
}
.TravelticketManager
._ol_list
{
min-height
:
500px
;
}
.TravelticketManager
._ol_list
>
li
{
align-items
:
center
;
border
:
1px
solid
#dddddd
;
margin
:
20px
0
0px
15px
;
position
:
relative
;
overflow
:
hidden
;
transition
:
linear
all
0.5s
;
background-color
:
#fff
;
padding
:
10px
0
5px
0
;
}
.TravelticketManager
._ol_list
>
li
:hover
{
box-shadow
:
0px
0px
20px
rgba
(
191
,
191
,
191
,
1
);
transition
:
all
linear
0.5s
;
}
.TravelticketManager
._oll_tit
{
color
:
#333333
;
font-size
:
14px
;
overflow
:
hidden
;
text-overflow
:
ellipsis
;
white-space
:
nowrap
;
}
.TravelticketManager
._oll_tit
span
{
display
:
inline-block
;
padding
:
1px
10px
;
font-size
:
12px
;
border
:
solid
1px
#ff9000
;
color
:
#ff9000
;
border-radius
:
4px
;
}
.TravelticketManager
._oll_line
{
max-width
:
5px
;
min-width
:
5px
;
height
:
100%
;
z-index
:
50
;
position
:
absolute
;
top
:
0
;
left
:
0
;
background
:
rgba
(
233
,
82
,
82
,
1
);
border-top-left-radius
:
4px
;
border-bottom-left-radius
:
4px
;
display
:
inline-block
;
}
.TravelticketManager
._oll_line._o_green
{
background
:
#47bf8c
;
}
.TravelticketManager
._oll_line._o_blu
{
background
:
#2aaef2
;
}
.TravelticketManager
._oll_info
{
padding-left
:
20px
;
overflow
:
hidden
;
margin-top
:
-15px
;
}
.TravelticketManager
._oll_img
{
height
:
50px
;
width
:
50px
;
margin-top
:
15px
;
border-radius
:
50%
;
margin-left
:
20px
;
}
.TravelticketManager
._oll_adrr
{
color
:
white
;
font-size
:
12px
;
margin-top
:
8px
;
overflow
:
hidden
;
text-overflow
:
ellipsis
;
white-space
:
nowrap
;
display
:
inline-block
;
padding
:
4px
9px
;
background-color
:
#2aaef2
;
border-radius
:
2px
;
}
.wangfan
{
color
:
#2aaef2
!important
;
font-size
:
12px
!important
;
display
:
inline-block
!important
;
padding
:
4px
9px
!important
;
background-color
:
white
!important
;
border-radius
:
9px
!important
;
border
:
1px
solid
#2aaef2
!important
;
width
:
auto
!important
;
height
:
auto
!important
;
}
.wangfan.hollowFixedBtn
:hover
{
color
:
#ffffff
;
border-color
:
#2aaef2
;
background-color
:
#2aaef2
;
}
.wangfan.hollowFixedBtn
{
cursor
:
pointer
;
}
.TMM_CNY
{
height
:
100%
;
display
:
flex
;
align-items
:
center
;
color
:
#333333
;
font-size
:
14px
;
/* padding-left: 40px; */
min-width
:
100px
;
}
.TMM_CNY
span
{
color
:
#47bf8c
;
font-size
:
16px
;
margin-left
:
1px
;
}
._Seat
{
height
:
100%
;
display
:
flex
;
border-right
:
1px
dashed
#dcdfe6
;
}
.SeatList
{
width
:
120px
;
height
:
60px
;
background-color
:
#f9f9f9
;
margin
:
9px
15px
0
0
;
}
.SeatList
>
ul
>
li
:nth-child
(
1
)
{
margin-left
:
16px
;
}
.SeatList
>
ul
>
li
{
float
:
left
;
text-align
:
center
;
margin
:
5px
10px
0
0
;
}
.SeatList
>
ul
>
li
:last-child
{
margin-right
:
0
;
}
.SeatList
.iconfont
{
color
:
#d1d1d1
;
display
:
inline-block
;
margin-top
:
5px
;
}
.SeatList
._num1
{
font-size
:
16px
;
color
:
#333333
;
font-family
:
PingFangSC-Semibold
,
sans-serif
;
}
.SeatList
._num2
{
font-size
:
16px
;
color
:
#47bf8c
;
font-family
:
PingFangSC-Semibold
,
sans-serif
;
}
.SeatList
._num3
{
font-size
:
16px
;
color
:
#e95252
;
font-family
:
PingFangSC-Semibold
,
sans-serif
;
}
.SeatList
._wz
{
color
:
#666666
;
}
.SeatList
._yiyong
{
cursor
:
pointer
;
text-decoration
:
underline
;
}
.TKM_raduis
>
ul
{
display
:
-webkit-box
;
align-items
:
center
;
padding-left
:
25px
;
margin-top
:
17px
;
}
.TKM_raduis
>
ul
>
li
:not
(
._head
)
{
height
:
24px
;
width
:
24px
;
border-radius
:
50%
;
background-color
:
#47bf8c
;
color
:
white
;
text-align
:
center
;
line-height
:
24px
;
margin-right
:
16px
;
}
.TKM_raduis
>
ul
>
li
:not
(
._head
)
{
background-color
:
#bcbcbc
;
color
:
#909090
;
}
._ol_list
li
._head
{
display
:
flex
;
align-items
:
center
;
}
._ol_list
li
._head
img
{
height
:
26px
;
width
:
26px
;
border-radius
:
50%
;
margin
:
0
5px
0
15px
;
}
._ol_list
li
._head
span
{
padding-left
:
7px
;
display
:
inline-block
;
margin-right
:
25px
;
}
._jztime
{
color
:
#666666
;
margin
:
0
12px
;
min-width
:
100px
;
}
._jztime
.PingFangSC
{
font-size
:
12px
;
}
._jztime
._text
{
font-size
:
12px
;
}
._btn._ttm_page
{
height
:
100%
;
display
:
flex
;
align-items
:
center
;
}
._btn._ttm_page
.hollowFixedBtn
{
padding
:
6px
11px
;
width
:
60px
;
margin-right
:
10px
;
font-size
:
12px
;
}
.TravelticketManager
.el-pagination
{
border
:
none
!important
;
}
._command_box
{}
._command_tb
{
width
:
-webkit-fill-available
;
margin-top
:
10px
;
margin-left
:
15px
;
text-align
:
left
;
}
._command_tb
tr
:first-child
{
background-color
:
#cbe9fa
;
}
._command_tb
tr
th
{
font-size
:
12px
;
color
:
#387ea5
;
padding
:
8px
;
}
._command_tb
tr
td
:first-child
{
color
:
#387ea5
;
}
._command_tb
tr
td
{
color
:
#333333
;
padding
:
8px
;
font-size
:
12px
;
background-color
:
#e0f4ff
;
overflow
:
hidden
;
text-overflow
:
ellipsis
;
white-space
:
nowrap
;
}
._command_tb
thead
,
._command_tb
tbody
tr
{
display
:
table
;
width
:
100%
;
table-layout
:
fixed
;
}
._command_tb
tbody
{
display
:
block
;
overflow-y
:
scroll
;
}
._tripDetails
{
padding
:
0
;
box-shadow
:
0px
1px
3px
0px
#dedede
;
}
._tripDetails
.popper__arrow
::after
{
border-bottom-color
:
#ededed
!important
;
}
._tripDetails
table
{
padding
:
10px
0
0
20px
;
background-color
:
#ededed
;
border-collapse
:
collapse
;
border
:
1px
solid
#d2d2d2
;
font-size
:
12px
;
}
._tripDetails
table
th
{
background-color
:
#ededed
;
padding
:
5px
;
}
._tripDetails
table
td
{
background-color
:
#ffffff
;
padding
:
9px
15px
;
color
:
#333333
;
border
:
1px
solid
#d2d2d2
;
}
._tripDetails
table
td
._d_name
{
background-color
:
#ededed
;
}
._tripDetails
table
._color_666
{
color
:
#666666
;
}
._tripDetails
table
tr
._color_666
th
{
padding
:
9px
15px
;
}
._trip_CNY
{
width
:
auto
!important
;
padding
:
10px
!important
;
background-color
:
#ffffff
;
}
._trip_CNY
table
{
background-color
:
#ededed
;
border-collapse
:
collapse
;
}
._trip_CNY
table
._rb_bor
{
border-right
:
1px
dashed
#d3d3d3
;
border-bottom
:
1px
dashed
#d3d3d3
;
}
._trip_CNY
table
._lb_bor
{
border-right
:
1px
dashed
#d3d3d3
;
border-top
:
1px
dashed
#d3d3d3
;
}
._trip_CNY
table
._rt_bor
{
border-left
:
1px
dashed
#d3d3d3
;
border-bottom
:
1px
dashed
#d3d3d3
;
}
._trip_CNY
table
._lt_bor
{
border-left
:
1px
dashed
#d3d3d3
;
border-top
:
1px
dashed
#d3d3d3
;
}
._trip_CNY
table
td
{
padding
:
15px
;
text-align
:
left
;
}
._trip_CNY
table
td
._CNY_name
{
display
:
inline-block
;
width
:
21px
;
height
:
21px
;
font-size
:
12px
;
color
:
#ffffff
;
background-color
:
#2aaef2
;
line-height
:
21px
;
text-align
:
center
;
border-radius
:
50%
;
}
._trip_CNY
table
td
._CNY_num
{
color
:
#333333
;
position
:
relative
;
top
:
2px
;
}
._CNY
p
{
color
:
#333333
;
cursor
:
pointer
;
text-decoration
:
underline
;
font-size
:
14px
;
}
.TravelticketManager
._ol_info
::-webkit-scrollbar
{
/*滚动条整体样式*/
width
:
4px
;
/*高宽分别对应横竖滚动条的尺寸*/
height
:
8px
;
}
.TravelticketManager
._ol_info
::-webkit-scrollbar-thumb
{
/*滚动条里面小方块*/
border-radius
:
4px
;
-webkit-box-shadow
:
inset
0
0
2px
rgba
(
0
,
0
,
0
,
0.2
);
background
:
#c9c9c9
;
}
.TravelticketManager
._ol_info
::-webkit-scrollbar-track
{
/*滚动条里面轨道*/
-webkit-box-shadow
:
inset
0
0
2px
rgba
(
0
,
0
,
0
,
0.2
);
border-radius
:
4px
;
background
:
#ededed
;
}
._command_tb
tbody
::-webkit-scrollbar
{
width
:
4px
;
height
:
1px
;
}
._command_tb
tbody
::-webkit-scrollbar-thumb
{
border-radius
:
4px
;
-webkit-box-shadow
:
inset
0
0
2px
rgba
(
0
,
0
,
0
,
0.2
);
background
:
#c9c9c9
;
}
._command_tb
tbody
::-webkit-scrollbar-thumb
{
-webkit-box-shadow
:
inset
0
0
2px
rgba
(
0
,
0
,
0
,
0.2
);
border-radius
:
4px
;
background
:
#ededed
;
}
.TravelticketManager
.upload-demo
{
text-align
:
center
;
}
._bg_gre
{
background-color
:
#47bf8c
!important
;
color
:
white
!important
;
}
.TravelticketManager
.icon-img_plane
{
font-size
:
12px
;
-webkit-transform
:
scale
(
0.8
);
}
.TravelticketManager
.departName
{
text-align
:
right
;
}
.TravelticketManager
.arrivalName
{
text-align
:
left
;
}
.TravelticketManager
._destination
.el-button
:focus
{
background-color
:
#2aaef2
!important
;
color
:
#fff
!important
;
}
.TravelticketManager
.travelTo
{
position
:
relative
;
top
:
-2px
;
}
.TravelticketManager
.icon-arrow1
{
font-size
:
12px
;
}
.TravelticketManager
.multiple_input
.el-input
{
height
:
auto
!important
;
}
.TravelticketManager
.el-button--primary
{
padding
:
5px
;
margin-right
:
1px
;
}
.TravelticketManager
.ticketUl
li
{
display
:
inline-block
;
}
.TravelticketManager
.travelBtm
{
width
:
100%
;
height
:
70px
;
border-top
:
1px
dashed
#dadada
;
text-align
:
right
;
padding
:
15px
300px
0
0
;
}
.TravelticketManager
.orderDan
{
height
:
150px
;
padding
:
30px
0
0
30px
;
}
.TravelticketManager
.orderBtList
{
margin-top
:
20px
;
}
.TravelticketManager
.query-box
ul
.el-input
{
width
:
150px
;
}
.TravelticketManager
.vmiddle
{
display
:
flex
;
align-items
:
Center
;
/* height: 78px; */
}
.TM_btm
{
margin-left
:
0
!important
;
}
.TravelticketManager
.TICK_Code
{
position
:
absolute
;
left
:
25px
;
/* top: 5px; */
}
.TravelticketManager
.TCID_cont
{
height
:
28px
;
line-height
:
28px
;
border-top
:
1px
dashed
#ccc
;
text-indent
:
20px
;
}
.Ticket_TCID
{
margin-right
:
2px
;
}
.TravelticketManager
.disClick
{
background-color
:
#d1d1d1
;
color
:
#fff
;
border
:
1px
solid
#d1d1d1
;
}
/*航班详情*/
.TravelticketManager
.FlightDivDetails
{
width
:
100%
;
/* height: 65px; */
/* overflow: auto; */
}
.TravelticketManager
._flightList
{
text-align
:
left
;
font-size
:
12px
;
margin-bottom
:
5px
;
padding-right
:
5px
;
}
/*航班号*/
.TravelticketManager
.FlightNumber
{
color
:
#ff0066
;
font-weight
:
bold
;
}
</
style
>
<
template
>
<div
class=
"flexOne TravelticketManager"
>
<div
class=
"query-box"
>
<ul>
<li>
<span
class=
"hotel_name"
>
<em>
{{
$t
(
'objFill.v101.BasicDocuments.col.t1'
)
}}
</em>
<el-date-picker
class=
"w150"
v-model=
"Query.QNeedDateStart"
type=
"date"
value-format=
"yyyy-MM-dd"
placeholder=
""
:picker-options=
"pickerBeginDateBefore"
>
</el-date-picker>
<el-date-picker
class=
"w150"
v-model=
"Query.QNeedDateEnd"
type=
"date"
value-format=
"yyyy-MM-dd"
placeholder=
""
:picker-options=
"pickerBeginDateAfter"
>
</el-date-picker>
</span>
</li>
<li>
<span
class=
"hotel_name"
>
<em>
{{
$t
(
'system.query_airCompanyName'
)
}}
</em>
<el-select
v-model=
"Query.AirLineID"
filterable
:placeholder=
"$t('system.ph_in')"
class=
"w150"
>
<el-option
:label=
"$t('pub.unlimitedSel')"
:value=
"selectDefauleValue"
></el-option>
<el-option
v-for=
"item in AirLineList"
:label=
'item.AlName'
:value=
'item.AirLineId'
:key=
'item.AirLineId'
>
</el-option>
</el-select>
</span>
</li>
<li>
<span
class=
"hotel_name"
>
<em>
{{
$t
(
'system.query_flightNum'
)
}}
</em>
<el-input
v-model=
"Query.Flight_number"
type=
"text"
@
keyup
.
native
.
enter=
"getList"
:placeholder=
"$t('system.ph_airNum')"
>
</el-input>
</span>
</li>
<li>
<button
class=
"hollowFixedBtn"
type=
"button"
@
click=
"resetPageIndex(),getList()"
>
{{
$t
(
'pub.searchBtn'
)
}}
</button>
<button
class=
"normalBtn"
type=
"button"
@
click=
"isShowNeed=true,isShowOrder=false"
style=
"display:none;"
>
{{
$t
(
'objFill.v101.tixuqiu'
)
}}
</button>
</li>
</ul>
</div>
<div
class=
"TravelticketManager_list"
>
<ul
class=
"_ol_color clearfix"
>
<li><span
class=
"_red _cl"
></span><span
class=
"_red_text"
>
{{
$t
(
'Airticket.Air_redType'
)
}}
:
</span>
{{
$t
(
'Airticket.Air_firstClass'
)
}}
</li>
<li><span
class=
"_green _cl"
></span><span
class=
"_green_text"
>
{{
$t
(
'Airticket.Air_greenType'
)
}}
:
</span>
{{
$t
(
'Airticket.Air_businessClass'
)
}}
</li>
<li><span
class=
"_blu _cl"
></span><span
class=
"_blu_text"
>
{{
$t
(
'Airticket.Air_blueType'
)
}}
:
</span>
{{
$t
(
'Airticket.Air_EconomyClass'
)
}}
</li>
</ul>
<div
class=
"_ol_info"
>
<ul
class=
"_ol_list"
v-loading=
"loading"
>
<li
v-for=
"(item,index) in dataList"
:data-id=
"item.ID"
>
<span
class=
"_oll_line"
v-if=
"item.FreightSpace==1"
></span>
<span
class=
"_oll_line _o_green"
v-if=
"item.FreightSpace==2"
></span>
<span
class=
"_oll_line _o_blu"
v-if=
"item.FreightSpace==3"
></span>
<el-row
:gutter=
"10"
>
<el-col
:span=
"3"
class=
"vmiddle"
>
<div>
<span
class=
"TICK_Code"
>
{{
$t
(
'hotel.hotel_SerialNumber'
)
}}
:
{{
item
.
ID
}}
</span>
<img
class=
"_oll_img"
v-if=
"item.AirlineUrl"
:src=
"item.AirlineUrl"
:onerror=
"defaultImg"
/>
<img
class=
"_oll_img"
v-else
src=
"../../../assets/img/bg_z1@2x.png"
/>
</div>
<div
class=
"_oll_info"
>
<el-tooltip
class=
"item"
effect=
"dark"
:content=
"item.AirlineName"
placement=
"top-start"
popper-class=
"max-w250"
>
<p
class=
"_oll_tit"
>
{{
item
.
AirlineName
}}
</p>
</el-tooltip>
<span
class=
"_oll_adrr"
>
{{
item
.
FreightSpaceStr
}}
</span>
</div>
</el-col>
<el-col
:span=
"4"
class=
"vmiddle"
>
<div
class=
"FlightDivDetails"
>
<div
class=
"_flightList"
v-for=
"subItem in item.flightList"
>
<span
class=
"FlightNumber"
>
{{
subItem
.
Flight_number
}}
</span>
<span>
{{
subItem
.
FlightDate
}}
{{
subItem
.
Departure_time
}}
</span>
<span>
(
{{
subItem
.
DIATA
}}
)
{{
subItem
.
DepartureName
}}
</span>
<span
v-if=
"subItem.StopoverName"
>
-
</span>
<span
v-if=
"subItem.StopoverName"
>
(
{{
subItem
.
StopoverIATA
}}
)
{{
subItem
.
StopoverName
}}
</span>
<span
v-if=
"subItem.ArrivalCityName"
>
-
</span>
<span
v-if=
"subItem.ArrivalCityName"
>
(
{{
subItem
.
AIATA
}}
)
{{
subItem
.
ArrivalCityName
}}
</span>
</div>
</div>
</el-col>
<el-col
:span=
"1"
class=
"vmiddle"
>
<div
v-if=
"item.UnionList!=null&& item.UnionList.length>0"
class=
"_destination"
>
<el-popover
popper-class=
"_tripDetails"
width=
"100"
trigger=
"click"
>
<table
width=
"100%"
border=
"0"
cellspacing=
"0"
cellpadding=
"0"
>
<tr
class=
"_color_666"
>
<th>
{{
$t
(
'visa.v_lycity'
)
}}
</th>
</tr>
<tr
v-for=
"(unionItem,x) in item.UnionList"
>
<td>
{{
unionItem
.
CityName
}}
</td>
</tr>
</table>
<el-button
slot=
"reference"
class=
"hollowFixedBtn wangfan"
>
{{
$t
(
'salesModule.Union'
)
}}
</el-button>
</el-popover>
</div>
</el-col>
<el-col
:span=
"2"
class=
"vmiddle"
>
<div
class=
"TMM_CNY"
>
{{
$t
(
'hote.hotel_cost'
)
}}
:
<span
class=
"PingFangSC"
>
{{
item
.
CostPrice
}}
</span>
</div>
</el-col>
<el-col
:span=
"3"
class=
"vmiddle"
>
<div
class=
"_Seat"
>
<div
class=
"SeatList"
>
<ul
class=
"clearfix"
>
<li>
<span
class=
"iconfont icon-img_yizi"
></span>
</li>
<li>
<p
class=
"_num1"
>
{{
item
.
TicketNum
==
null
?
'0'
:
item
.
TicketNum
}}
</p>
<p
class=
"_wz"
>
{{
$t
(
'Airticket.Air_reservation'
)
}}
</p>
</li>
<li>
<p
class=
"_num2"
>
{{
item
.
SurplusNum
==
null
?
'0'
:
item
.
SurplusNum
}}
</p>
<p
class=
"_wz"
>
{{
$t
(
'Airticket.Air_yvwei'
)
}}
</p>
</li>
</ul>
</div>
</div>
</el-col>
<el-col
:span=
"4"
class=
"vmiddle"
>
<div
class=
"TKM_raduis"
>
<ul>
<li
:class=
"item.FirstDeposit?'_bg_gre':''"
>
<el-tooltip
effect=
"dark"
:content=
"item.FirstDeposit"
placement=
"top"
popper-class=
"max-w250"
v-if=
"item.FirstDeposit"
>
<span>
1
</span>
</el-tooltip>
<span
v-else
>
1
</span>
</li>
<li
:class=
"item.SecondDeposit?'_bg_gre':''"
>
<el-tooltip
effect=
"dark"
:content=
"item.SecondDeposit"
placement=
"top"
popper-class=
"max-w250"
v-if=
"item.SecondDeposit"
>
<span>
2
</span>
</el-tooltip>
<span
v-else
>
2
</span>
</li>
<li
:class=
"item.ThirdDeposit?'_bg_gre':''"
>
<el-tooltip
effect=
"dark"
:content=
"item.ThirdDeposit"
placement=
"top"
popper-class=
"max-w250"
v-if=
"item.ThirdDeposit"
>
<span>
3
</span>
</el-tooltip>
<span
v-else
>
3
</span>
</li>
<li
:class=
"item.FourthDeposit?'_bg_gre':''"
>
<el-tooltip
effect=
"dark"
:content=
"item.FourthDeposit"
placement=
"top"
popper-class=
"max-w250"
v-if=
"item.FourthDeposit"
>
<span>
4
</span>
</el-tooltip>
<span
v-else
>
4
</span>
</li>
<li
:class=
"item.FourthDeposit?'_bg_gre':''"
>
<el-tooltip
effect=
"dark"
:content=
"item.FinalPayment"
placement=
"top"
popper-class=
"max-w250"
v-if=
"item.FinalPayment"
>
<span>
{{
$t
(
'op.WEI'
)
}}
</span>
</el-tooltip>
<span
v-else
>
{{
$t
(
'op.WEI'
)
}}
</span>
</li>
</ul>
</div>
</el-col>
<el-col
:span=
"2"
class=
"vmiddle"
>
<div
class=
"_head"
>
<img
v-if=
"item.CreateUrl"
:src=
"item.CreateUrl"
:onerror=
"defaultImg"
/>
<img
v-else
src=
"../../../assets/img/default_head_img.jpg"
/>
<span>
{{
item
.
CreateName
}}
</span>
</div>
</el-col>
<el-col
:span=
"3"
class=
"vmiddle"
>
<div
class=
"_jztime"
>
<p
class=
"PingFangSC"
>
{{
$t
(
'Airticket.Air_flightDate'
)
}}
:
{{
item
.
FlightDate
}}
</p>
<p
class=
"PingFangSC"
>
{{
$t
(
'op.EndDate'
)
}}
:
{{
item
.
TicketDeadlineStr
}}
</p>
</div>
</el-col>
<el-col
:span=
"2"
class=
"vmiddle"
>
<div
class=
"_btn _ttm_page"
>
<span
v-if=
"item.SurplusNum>0"
>
<button
class=
"normalBtn TM_btm"
type=
"button"
@
click=
"isShowOrder=true,isShowNeed=false,bindAirticket.AirticketId=item.ID,bindAirticket.TotalNum=item.SurplusNum,GetPlaceHolder()"
>
{{
$t
(
'objFill.v101.lijicaigou'
)
}}
</button>
</span>
</div>
</el-col>
</el-row>
<el-row
:gutter=
"0"
>
<el-col
:span=
"8"
>
<div
class=
"TCID_cont PingFangSC"
>
{{
$t
(
'fnc.tuanqi'
)
}}
:
<span
v-show=
"item.TCIDList.length==0"
>
{{
$t
(
'pub.noMsg'
)
}}
</span>
<span
class=
"Ticket_TCID"
v-for=
"subItem in item.TCIDList"
>
{{
subItem
}}
</span>
</div>
</el-col>
<el-col
:span=
"16"
>
<div
class=
"TCID_cont"
>
PNR:
{{
item
.
PNR
}}
</div>
</el-col>
</el-row>
</li>
</ul>
<div
class=
"noData"
v-show=
"noData"
>
{{
$t
(
'system.content_noData'
)
}}
</div>
<el-pagination
background
@
current-change=
"handleCurrentChange"
:current-page
.
sync=
"Query.currentPage"
layout=
"total,prev, pager, next, jumper"
:page-size=
Query.pageSize
:total=
Query.total
>
</el-pagination>
<div
class=
"combottomDiv"
v-if=
"isShowNeed"
>
<div
class=
"combottomTitle"
>
{{
$t
(
'op.TicketNeedDAN'
)
}}
</div>
<el-form
label-width=
"100px"
>
<el-col
:span=
"5"
>
<el-form-item
:label=
"$t('Airticket.Air_requirent')"
>
<el-select
class=
"w150"
filterable
:placeholder=
"$t('pub.pleaseSel')"
v-model=
"addNeedMsg.NeedSubType"
>
<el-option
:label=
"$t('pub.unlimitedSel')"
:value=
"selectDefauleValue"
></el-option>
<el-option
v-for=
'item in TicketNeedTypeList'
:key=
"item.Id"
:label=
"item.Name"
:value=
"item.Id"
>
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col
:span=
"5"
>
<el-form-item
:label=
"$t('sm.chufadi')"
>
<el-select
class=
"w150"
filterable
:placeholder=
"$t('pub.pleaseSel')"
v-model=
"addNeedMsg.MainId"
>
<el-option
:label=
"$t('pub.unlimitedSel')"
:value=
"selectDefauleValue"
></el-option>
<el-option
v-for=
"item in CityList"
:label=
'item.Name'
:value=
'item.ID'
:key=
'item.ID'
>
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col
:span=
"5"
>
<el-form-item
:label=
"$t('system.query_dest')"
>
<el-select
class=
"w150"
filterable
:placeholder=
"$t('pub.pleaseSel')"
v-model=
"addNeedMsg.SubId"
>
<el-option
:label=
"$t('pub.unlimitedSel')"
:value=
"selectDefauleValue"
></el-option>
<el-option
v-for=
"item in CityList"
:label=
'item.Name'
:value=
'item.ID'
:key=
'item.ID'
>
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col
:span=
"5"
>
<el-form-item
:label=
"$t('hotel.hotel_StarDate')"
>
<el-date-picker
class=
"w150"
type=
"date"
value-format=
"yyyy-MM-dd"
:placeholder=
"$t('system.ph_flightTime')"
v-model=
"addNeedMsg.NeedDate"
>
</el-date-picker>
</el-form-item>
</el-col>
<el-col
:span=
"5"
>
<el-form-item
:label=
"$t('op.IsTransit')"
>
<el-switch
:active-value=
"AcceptTransferDefault"
:inactive-value=
"NotAcceptTransferDefault"
v-model=
"addNeedMsg.IsAcceptTransfer"
></el-switch>
</el-form-item>
</el-col>
<el-col
:span=
"5"
>
<el-form-item
:label=
"$t('admin.admin_personNumber')"
>
<el-input
v-model=
"addNeedMsg.UseNum"
@
keyup
.
native=
"checkInteger(addNeedMsg,'UseNum')"
type=
"text"
class=
"w150"
:placeholder=
"$t('rule.EnterPnum')"
></el-input>
</el-form-item>
</el-col>
<el-col
:span=
"5"
>
<button
type=
"button"
class=
"normalBtn"
style=
"margin:5px 0 0 55px;"
@
click=
"SetNeed()"
>
{{
$t
(
'op.Send'
)
}}
</button>
<button
type=
"button"
class=
"hollowFixedBtn"
@
click=
"isShowNeed=false"
>
{{
$t
(
'pub.cancelBtn'
)
}}
</button>
</el-col>
</el-form>
</div>
<div
class=
"combottomDiv"
style=
"height:150px;"
v-if=
"isShowOrder"
>
<div
class=
"combottomTitle"
>
{{
$t
(
'op.CaiGou'
)
}}
</div>
<el-col
:span=
"3"
>
<el-input
v-model=
"bindAirticket.PurchaseAmount"
@
keyup
.
native=
"checkInteger(bindAirticket,'PurchaseAmount')"
type=
"text"
class=
"w150"
:placeholder=
"UseNum_placeholder"
></el-input>
</el-col>
<el-col
:span=
"5"
>
<button
type=
"button"
class=
"normalBtn"
:class=
"
{'disClick':!isSubmit}"
@click="SetTicketPurchase()">
{{
$t
(
'pub.sureBtn'
)
}}
</button>
<button
type=
"button"
class=
"hollowFixedBtn"
@
click=
"isShowOrder=false,bindAirticket.PurchaseAmount=''"
>
{{
$t
(
'pub.cancelBtn'
)
}}
</button>
</el-col>
</div>
</div>
</div>
</div>
</
template
>
<
script
>
export
default
{
data
()
{
return
{
Query
:
{
//页码
pageIndex
:
1
,
//每页显示条数
pageSize
:
6
,
//总条数
total
:
0
,
//出发城市编号
Departure_city
:
0
,
//到达城市编号
Arrival_city
:
0
,
//是否往返
TicketType
:
0
,
//起飞时间
QNeedDateStart
:
""
,
//起飞结束日期
QNeedDateEnd
:
""
,
//航空公司编号
AirLineID
:
0
,
//航班号
Flight_number
:
""
,
//余位大于0
IsSurplusNumGreaterThan
:
false
,
currentPage
:
1
,
//起飞状态
FlyState
:
"0"
,
},
//下拉框默认值
selectDefauleValue
:
0
,
//防止重复提交
isSubmit
:
true
,
//默认图片
defaultImg
:
'this.src="'
+
require
(
"../../../assets/img/bg_z1@2x.png"
)
+
'"'
,
//是否显示加载层
loading
:
false
,
//显示需求单
isShowNeed
:
false
,
//显示立即采购输入框
isShowOrder
:
false
,
//是否有数据
noData
:
false
,
//数据列表
dataList
:
[],
//城市列表
CityList
:
[],
//机票类型列表
TicketTypeList
:
[],
//航空公司
AirLineList
:
[],
//需求类型
TicketNeedTypeList
:
[],
//接受中转
AcceptTransferDefault
:
1
,
//不接受中转
NotAcceptTransferDefault
:
0
,
//绑定机票参数
bindAirticket
:
{
UseNum
:
""
,
AirticketId
:
0
,
TotalNum
:
0
},
//绑定框提示
UseNum_placeholder
:
""
,
//需求单参数
addNeedMsg
:
{
//出发城市
MainId
:
0
,
//到达城市
SubId
:
0
,
//是否接受中转
IsAcceptTransfer
:
""
,
//需求类型
NeedType
:
4
,
//需求子类型(询票1,预定2,出票3 )
NeedSubType
:
0
,
//需求时间
NeedDate
:
""
,
//使用人数
UseNum
:
""
,
//描述
Describe
:
""
},
pickerBeginDateBefore
:
{
disabledDate
:
time
=>
{
let
endTime
=
new
Date
(
this
.
Query
.
QNeedDateEnd
);
return
endTime
.
getTime
()
<
time
.
getTime
();
}
},
pickerBeginDateAfter
:
{
disabledDate
:
time
=>
{
let
startTime
=
new
Date
(
this
.
Query
.
QNeedDateStart
);
return
startTime
.
getTime
()
>=
time
.
getTime
();
}
}
};
},
methods
:
{
getList
()
{
this
.
loading
=
true
;
this
.
apipost
(
"AirTicket_get_GetPageList"
,
this
.
Query
,
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
Query
.
total
=
res
.
data
.
data
.
count
;
this
.
noData
=
!
this
.
Query
.
total
>
0
;
this
.
dataList
=
res
.
data
.
data
.
pageData
;
}
else
{
this
.
Warning
(
res
.
data
.
message
);
}
this
.
loading
=
false
;
},
err
=>
{}
);
},
GetPlaceHolder
()
{
this
.
UseNum_placeholder
=
this
.
$t
(
'objFill.v101.zuiduoband'
)
+
this
.
bindAirticket
.
TotalNum
+
this
.
$t
(
'objFill.v101.myOrdersAllType.gejiwei'
);
},
//翻页功能按钮
handleCurrentChange
(
val
)
{
this
.
Query
.
pageIndex
=
val
;
this
.
getList
();
},
//查询初始化页码
resetPageIndex
()
{
this
.
Query
.
pageIndex
=
1
;
this
.
Query
.
currentPage
=
1
;
},
//初始化城市
initCity
()
{
this
.
apipost
(
"dict_post_Destination_GetCityList"
,
this
.
Query
,
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
CityList
=
res
.
data
.
data
;
}
},
err
=>
{}
);
},
//初始化机票类型
initTicketType
()
{
this
.
apipost
(
"AirTicket_Get_GetTicketTypeList"
,
this
.
Query
,
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
TicketTypeList
=
res
.
data
.
data
;
}
},
err
=>
{}
);
},
//初始化航空公司下拉
initAirline
()
{
this
.
apipost
(
"airline_post_GetList"
,
{},
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
AirLineList
=
res
.
data
.
data
;
}
},
err
=>
{}
);
},
//添加修改机票绑定
SetTicketPurchase
(
id
)
{
if
(
this
.
isSubmit
)
{
this
.
isSubmit
=
false
;
if
(
this
.
bindAirticket
.
PurchaseAmount
==
""
)
{
this
.
bindAirticket
.
PurchaseAmount
=
0
;
}
if
(
this
.
bindAirticket
.
PurchaseAmount
==
0
)
{
this
.
Warning
(
this
.
$t
(
'objFill.v101.qingsrycgdsl'
));
this
.
bindAirticket
.
PurchaseAmount
=
""
;
this
.
isSubmit
=
true
;
return
false
;
}
if
(
this
.
bindAirticket
.
PurchaseAmount
>
this
.
bindAirticket
.
TotalNum
)
{
this
.
Warning
(
this
.
$t
(
'objFill.v101.banddslbnczsys'
));
this
.
isSubmit
=
true
;
return
false
;
}
this
.
apipost
(
"TravelAirTicket_Post_SetPurchase"
,
this
.
bindAirticket
,
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
getList
();
this
.
Success
(
this
.
$t
(
'objFill.v101.caigoucgo'
));
this
.
bindAirticket
.
PurchaseAmount
=
""
;
this
.
isShowNeed
=
false
;
this
.
isShowOrder
=
false
;
this
.
isSubmit
=
true
;
}
else
{
this
.
Error
(
res
.
data
.
message
);
this
.
isSubmit
=
true
;
}
},
err
=>
{}
);
}
},
//获取需求类型
getNeedType
()
{
this
.
apipost
(
"AirticketNeed_get_GetNeedTypeList"
,
{},
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
TicketNeedTypeList
=
res
.
data
.
data
;
}
},
null
);
},
//提需求
SetNeed
()
{
var
that
=
this
;
let
startItem
=
{};
startItem
=
that
.
CityList
.
find
(
item
=>
{
return
item
.
ID
===
that
.
addNeedMsg
.
MainId
;
});
let
ArrivalCityItem
=
{};
ArrivalCityItem
=
that
.
CityList
.
find
(
item
=>
{
return
item
.
ID
===
that
.
addNeedMsg
.
SubId
;
});
let
needItem
=
{};
needItem
=
that
.
TicketNeedTypeList
.
find
(
item
=>
{
return
item
.
Id
===
that
.
addNeedMsg
.
TicketNeedType
;
});
var
Describe
=
""
;
if
(
needItem
!=
undefined
)
{
Describe
+=
needItem
.
Name
+
" "
;
}
if
(
startItem
!=
undefined
)
{
Describe
+=
"从"
+
startItem
.
Name
;
}
if
(
ArrivalCityItem
!=
undefined
)
{
Describe
+=
"到"
+
ArrivalCityItem
.
Name
+
"的机票"
;
}
if
(
this
.
IsAcceptTransfer
==
1
)
{
Describe
+=
",可接受中转"
;
}
else
{
Describe
+=
",不接受中转"
;
}
that
.
addNeedMsg
.
Describe
=
Describe
;
var
newMsg
=
{
//需求类型(4-机票)
NeedType
:
4
,
//主表资源编号
MainId
:
that
.
addNeedMsg
.
MainId
,
//子表编号
SubId
:
that
.
addNeedMsg
.
SubId
,
//需求时间
NeedDate
:
that
.
addNeedMsg
.
NeedDate
,
//需求子类型
NeedSubType
:
that
.
addNeedMsg
.
NeedSubType
,
//使用人数
UseNum
:
that
.
addNeedMsg
.
UseNum
,
//描述
Describe
:
Describe
};
this
.
apipost
(
"AirticketNeed_post_Set"
,
newMsg
,
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
getList
();
this
.
isShowNeed
=
false
;
this
.
isShowOrder
=
false
;
this
.
Success
(
this
.
$t
(
'ground.chulichenggong'
));
this
.
addNeedMsg
.
MainId
=
0
;
this
.
addNeedMsg
.
SubId
=
0
;
this
.
addNeedMsg
.
NeedDate
=
""
;
this
.
addNeedMsg
.
IsAcceptTransfer
=
0
;
}
else
{
this
.
Warning
(
res
.
data
.
message
);
}
},
err
=>
{}
);
}
},
mounted
()
{
this
.
initCity
();
this
.
getNeedType
();
this
.
initTicketType
();
this
.
initAirline
();
this
.
getList
();
}
};
</
script
>
src/components/orderCommon/order-form2.vue
View file @
86549e2c
...
...
@@ -1887,7 +1887,6 @@
}
//成人价格=成人人数*(成交单价-早鸟优惠)
let
chengren
=
(
Number
(
this
.
addMsg
.
ManNum
)
*
(
Number
(
this
.
addMsg
.
Unit_Price
)
-
DiscountPrice
)).
toFixed
(
2
);
console
.
log
(
"cr"
,
chengren
);
//儿童价格=儿童人数*(单价-早鸟优惠+儿童附加费)
let
ertong
=
Number
(
this
.
addMsg
.
ChirdNum
)
*
(
Number
(
this
.
addMsg
.
Unit_Price
)
-
DiscountPrice
+
Number
(
this
...
...
src/router/config.js
View file @
86549e2c
...
...
@@ -3806,6 +3806,14 @@ export default {
title
:
'团控票务'
},
},
{
//团控票务
path
:
'/ticketSpider'
,
name
:
'ticketSpider'
,
component
:
resolve
=>
require
([
'@/components/Ticketing/ticketSpider'
],
resolve
),
meta
:
{
title
:
'团控票务'
},
},
{
//团控票务 自主开团- 销售
path
:
'/TravelticketManager2'
,
name
:
'TravelticketManager2'
,
...
...
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