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
47fb0f10
Commit
47fb0f10
authored
Mar 13, 2019
by
王悦
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master' of
http://gitlab.oytour.com/luochao/superman
parents
551845be
8291c39b
Show whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
1519 additions
and
2288 deletions
+1519
-2288
HotelProductManage2.vue
src/components/Hotel/HotelProductManage2.vue
+1329
-1105
BulkAirTicketOrders.vue
src/components/SalesModule/BulkAirTicketOrders.vue
+5
-1008
ShoppingReimbursement.vue
src/components/ShoppingStore/ShoppingReimbursement.vue
+19
-8
IndividualTicketOrder.vue
src/components/Ticketing/IndividualTicketOrder.vue
+7
-12
IndividualTicketOrderDetails.vue
src/components/Ticketing/IndividualTicketOrderDetails.vue
+9
-11
individualTicket.vue
src/components/Ticketing/individualTicket.vue
+4
-4
dmcTotalTable.vue
src/components/dmc/manager/dmcTotalTable.vue
+7
-3
teamRevenueExpenditure.vue
src/components/dmc/manager/teamRevenueExpenditure.vue
+72
-3
TravelFeature.vue
...nts/newTravelmanager/TravelGroupControl/TravelFeature.vue
+40
-88
TravelManager2.vue
...ts/newTravelmanager/TravelGroupControl/TravelManager2.vue
+22
-46
TravelPrice.vue
...nents/newTravelmanager/TravelGroupControl/TravelPrice.vue
+5
-0
No files found.
src/components/Hotel/HotelProductManage2.vue
View file @
47fb0f10
...
...
@@ -42,7 +42,8 @@
</div>
<div
class=
"calendarItem_day"
>
<div
v-for=
"(item2, index2) in item.days"
:key=
"index2"
:class=
"item2.month===item.date?'nowMonth':'otherMonth'"
>
<div
:class=
"stockColor(item, item2)"
:style=
"item2.month===item.date&&msg2.DateList.indexOf(item2.day)!==-1?'border-color: green':''"
@
click=
"calendarDayOn(item, item2)"
>
{{
item2
.
date
.
getDate
()
}}
</div>
<div
:class=
"stockColor(item, item2)"
:style=
"item2.month===item.date&&msg2.DateList.indexOf(item2.day)!==-1?'border-color: green':''"
@
click=
"calendarDayOn(item, item2)"
>
{{
item2
.
date
.
getDate
()
}}
</div>
</div>
</div>
</div>
...
...
@@ -55,11 +56,9 @@
<div
class=
"hotelProductManage2_edit2_header"
>
<div>
报价管理
</div>
<div>
<input
type=
"button"
value=
"批量删除"
@
click=
"delete2Reset()"
class=
"hollowbtn"
/>
<input
type=
"button"
value=
"重置"
@
click=
"edit2Reset()"
class=
"hollowFixedBtn"
/>
<input
type=
"button"
value=
"保存"
@
click=
"edit2Save()"
class=
"normalBtn"
/>
<!--
<div
@
click=
"edit2Reset()"
>
重置
</div>
<div
@
click=
"edit2Save()"
>
保存
</div>
-->
<input
type=
"button"
value=
"批量删除"
@
click=
"delete2Reset()"
class=
"hollowbtn"
/>
<input
type=
"button"
value=
"重置"
@
click=
"edit2Reset()"
class=
"hollowFixedBtn"
/>
<input
type=
"button"
value=
"保存"
@
click=
"edit2Save()"
class=
"normalBtn"
/>
</div>
</div>
<el-form
:model=
"msg2"
:rules=
"rules2"
:inline=
"true"
label-width=
"130px"
ref=
"hotelProductForm2"
class=
"hotelProductManage2_edit2_form"
>
...
...
@@ -81,7 +80,8 @@
</el-col>
<el-col
:span=
"24"
class=
"HotelProductEdit_date"
>
<el-form-item
label=
"已选日期"
prop=
"DateList"
>
<el-tag
v-for=
"(item, key) in msg2.DateList"
:key=
"key"
type=
"info"
style=
"margin: 0 5px 0 0;"
closable
@
close=
"calendarDayOff(item)"
>
{{
item
}}
</el-tag>
<el-tag
v-for=
"(item, key) in msg2.DateList"
:key=
"key"
type=
"info"
style=
"margin: 0 5px 0 0;"
closable
@
close=
"calendarDayOff(item)"
>
{{
item
}}
</el-tag>
</el-form-item>
</el-col>
</el-row>
...
...
@@ -91,6 +91,11 @@
<el-input-number
v-model=
"msg2.CostPrice"
:precision=
"2"
:min=
"0"
></el-input-number>
</el-form-item>
</el-col>
<el-col
:span=
"6"
>
<el-form-item
label=
"散客价"
>
<el-input-number
v-model=
"msg2.SanKePrice"
:precision=
"2"
:min=
"0"
></el-input-number>
</el-form-item>
</el-col>
<el-col
:span=
"6"
>
<el-form-item
label=
"大床间成本价"
prop=
"BidroomPrice"
>
<el-input-number
v-model=
"msg2.BidroomPrice"
:precision=
"2"
:min=
"0"
></el-input-number>
...
...
@@ -256,7 +261,8 @@
</div>
<div
v-show=
"msg.DayType==='4'"
>
<el-form-item
label=
"自定义"
prop=
"StartDate"
>
<el-date-picker
v-model=
"msg.StartDate"
type=
"date"
placeholder=
"选择开始时间"
format=
"yyyy-MM-dd"
value-format=
"yyyy-MM-dd"
></el-date-picker>
<el-date-picker
v-model=
"msg.StartDate"
type=
"date"
placeholder=
"选择开始时间"
format=
"yyyy-MM-dd"
value-format=
"yyyy-MM-dd"
></el-date-picker>
</el-form-item>
<em>
-
</em>
<el-form-item
label=
""
prop=
"EndDate"
>
...
...
@@ -271,6 +277,11 @@
<el-input-number
v-model=
"msg.CostPrice"
:precision=
"2"
:min=
"0"
></el-input-number>
</el-form-item>
</el-col>
<el-col
:span=
"6"
>
<el-form-item
label=
"散客价"
>
<el-input-number
v-model=
"msg.SanKePrice"
:precision=
"2"
:min=
"0"
></el-input-number>
</el-form-item>
</el-col>
<el-col
:span=
"6"
>
<el-form-item
label=
"大床间成本价"
prop=
"BidroomPrice"
>
<el-input-number
v-model=
"msg.BidroomPrice"
:precision=
"2"
:min=
"0"
></el-input-number>
...
...
@@ -365,7 +376,7 @@
components
:
{
HotelProductCalendar
},
data
()
{
data
()
{
var
emptyJudge
=
(
rule
,
value
,
callback
)
=>
{
let
regPos
=
/^
\d
+
(\.\d
+
)?
$/
;
if
(
!
regPos
.
test
(
value
))
{
...
...
@@ -468,7 +479,8 @@
Year
:
''
,
Month
:
''
,
Week
:
''
,
DateList
:
[]
DateList
:
[],
SanKePrice
:
0
,
//散客价
},
msg2
:
{
Hotel
:
'0'
,
...
...
@@ -495,48 +507,197 @@
Year
:
''
,
Month
:
''
,
Week
:
''
,
DateList
:
[]
DateList
:
[],
SanKePrice
:
0
,
//散客价
},
rules
:
{
InventoryType
:
{
validator
:
emptyJudge
,
message
:
'请选择库存类型'
,
trigger
:
'blur'
},
DayType
:
{
validator
:
emptyJudge
,
message
:
'请选择日期选择方式'
,
trigger
:
'blur'
},
Year
:
{
validator
:
dateJudge
,
message
:
'请选择年'
,
trigger
:
'blur'
},
Month
:
{
validator
:
dateJudge
,
message
:
'请选择月'
,
trigger
:
'blur'
},
Week
:
{
validator
:
dateJudge
,
message
:
'请选择周'
,
trigger
:
'blur'
},
StartDate
:
{
validator
:
dateJudge
,
message
:
'请选择开始时间'
,
trigger
:
'blur'
},
EndDate
:
{
validator
:
dateJudge
,
message
:
'请选择结束时间'
,
trigger
:
'blur'
},
Inventory
:
{
validator
:
emptyJudge
,
message
:
'请输入库存'
,
trigger
:
'blur'
},
CostPrice
:
{
validator
:
emptyJudge
,
message
:
'请输入标准间成本价'
,
trigger
:
'blur'
},
BidroomPrice
:
{
validator
:
emptyJudge
,
message
:
'请输入大床间成本价:'
,
trigger
:
'blur'
},
SingleroomPrice
:
{
validator
:
emptyJudge
,
message
:
'请输入单人间成本价'
,
trigger
:
'blur'
},
ChildNotBedPrice
:
{
validator
:
emptyJudge
,
message
:
'请输入小孩不占床成本价'
,
trigger
:
'blur'
},
AddBedPrice
:
{
validator
:
emptyJudge
,
message
:
'请输入加床成本价'
,
trigger
:
'blur'
},
DriverRoomPrice
:
{
validator
:
emptyJudge
,
message
:
'请输入司机房成本价'
,
trigger
:
'blur'
},
GuideRoomPrice
:
{
validator
:
emptyJudge
,
message
:
'请输入导游房成本价'
,
trigger
:
'blur'
},
CurrencyId
:
{
validator
:
emptyJudge
,
message
:
'请选择成本币种'
,
trigger
:
'blur'
},
CurrentRate
:
{
validator
:
emptyJudge
,
message
:
'请输入汇率'
,
trigger
:
'blur'
},
WeekendAddPrice
:
{
validator
:
emptyJudge
,
message
:
'请输入周末加价'
,
trigger
:
'blur'
},
InteriorAddPrice
:
{
validator
:
emptyJudge
,
message
:
'请输入内部加价'
,
trigger
:
'blur'
},
B2BPrice
:
{
validator
:
emptyJudge
,
message
:
'请输入B2B加价'
,
trigger
:
'blur'
},
B2CPrice
:
{
validator
:
emptyJudge
,
message
:
'请输入B2C加价'
,
trigger
:
'blur'
},
InventoryType
:
{
validator
:
emptyJudge
,
message
:
'请选择库存类型'
,
trigger
:
'blur'
},
DayType
:
{
validator
:
emptyJudge
,
message
:
'请选择日期选择方式'
,
trigger
:
'blur'
},
Year
:
{
validator
:
dateJudge
,
message
:
'请选择年'
,
trigger
:
'blur'
},
Month
:
{
validator
:
dateJudge
,
message
:
'请选择月'
,
trigger
:
'blur'
},
Week
:
{
validator
:
dateJudge
,
message
:
'请选择周'
,
trigger
:
'blur'
},
StartDate
:
{
validator
:
dateJudge
,
message
:
'请选择开始时间'
,
trigger
:
'blur'
},
EndDate
:
{
validator
:
dateJudge
,
message
:
'请选择结束时间'
,
trigger
:
'blur'
},
Inventory
:
{
validator
:
emptyJudge
,
message
:
'请输入库存'
,
trigger
:
'blur'
},
CostPrice
:
{
validator
:
emptyJudge
,
message
:
'请输入标准间成本价'
,
trigger
:
'blur'
},
BidroomPrice
:
{
validator
:
emptyJudge
,
message
:
'请输入大床间成本价:'
,
trigger
:
'blur'
},
SingleroomPrice
:
{
validator
:
emptyJudge
,
message
:
'请输入单人间成本价'
,
trigger
:
'blur'
},
ChildNotBedPrice
:
{
validator
:
emptyJudge
,
message
:
'请输入小孩不占床成本价'
,
trigger
:
'blur'
},
AddBedPrice
:
{
validator
:
emptyJudge
,
message
:
'请输入加床成本价'
,
trigger
:
'blur'
},
DriverRoomPrice
:
{
validator
:
emptyJudge
,
message
:
'请输入司机房成本价'
,
trigger
:
'blur'
},
GuideRoomPrice
:
{
validator
:
emptyJudge
,
message
:
'请输入导游房成本价'
,
trigger
:
'blur'
},
CurrencyId
:
{
validator
:
emptyJudge
,
message
:
'请选择成本币种'
,
trigger
:
'blur'
},
CurrentRate
:
{
validator
:
emptyJudge
,
message
:
'请输入汇率'
,
trigger
:
'blur'
},
WeekendAddPrice
:
{
validator
:
emptyJudge
,
message
:
'请输入周末加价'
,
trigger
:
'blur'
},
InteriorAddPrice
:
{
validator
:
emptyJudge
,
message
:
'请输入内部加价'
,
trigger
:
'blur'
},
B2BPrice
:
{
validator
:
emptyJudge
,
message
:
'请输入B2B加价'
,
trigger
:
'blur'
},
B2CPrice
:
{
validator
:
emptyJudge
,
message
:
'请输入B2C加价'
,
trigger
:
'blur'
},
},
rules2
:
{
InventoryType
:
{
validator
:
emptyJudge
,
message
:
'请选择库存类型'
,
trigger
:
'blur'
},
DateList
:
{
validator
:
arrJudge
,
message
:
'请选择日期'
,
trigger
:
'blur'
},
Inventory
:
{
validator
:
emptyJudge
,
message
:
'请输入库存'
,
trigger
:
'blur'
},
CostPrice
:
{
validator
:
emptyJudge
,
message
:
'请输入标准间成本价'
,
trigger
:
'blur'
},
BidroomPrice
:
{
validator
:
emptyJudge
,
message
:
'请输入大床间成本价:'
,
trigger
:
'blur'
},
SingleroomPrice
:
{
validator
:
emptyJudge
,
message
:
'请输入单人间成本价'
,
trigger
:
'blur'
},
ChildNotBedPrice
:
{
validator
:
emptyJudge
,
message
:
'请输入小孩不占床成本价'
,
trigger
:
'blur'
},
AddBedPrice
:
{
validator
:
emptyJudge
,
message
:
'请输入加床成本价'
,
trigger
:
'blur'
},
DriverRoomPrice
:
{
validator
:
emptyJudge
,
message
:
'请输入司机房成本价'
,
trigger
:
'blur'
},
GuideRoomPrice
:
{
validator
:
emptyJudge
,
message
:
'请输入导游房成本价'
,
trigger
:
'blur'
},
CurrencyId
:
{
validator
:
emptyJudge
,
message
:
'请选择成本币种'
,
trigger
:
'blur'
},
CurrentRate
:
{
validator
:
emptyJudge
,
message
:
'请输入汇率'
,
trigger
:
'blur'
},
WeekendAddPrice
:
{
validator
:
emptyJudge
,
message
:
'请输入周末加价'
,
trigger
:
'blur'
},
InteriorAddPrice
:
{
validator
:
emptyJudge
,
message
:
'请输入内部加价'
,
trigger
:
'blur'
},
B2BPrice
:
{
validator
:
emptyJudge
,
message
:
'请输入B2B加价'
,
trigger
:
'blur'
},
B2CPrice
:
{
validator
:
emptyJudge
,
message
:
'请输入B2C加价'
,
trigger
:
'blur'
},
InventoryType
:
{
validator
:
emptyJudge
,
message
:
'请选择库存类型'
,
trigger
:
'blur'
},
DateList
:
{
validator
:
arrJudge
,
message
:
'请选择日期'
,
trigger
:
'blur'
},
Inventory
:
{
validator
:
emptyJudge
,
message
:
'请输入库存'
,
trigger
:
'blur'
},
CostPrice
:
{
validator
:
emptyJudge
,
message
:
'请输入标准间成本价'
,
trigger
:
'blur'
},
BidroomPrice
:
{
validator
:
emptyJudge
,
message
:
'请输入大床间成本价:'
,
trigger
:
'blur'
},
SingleroomPrice
:
{
validator
:
emptyJudge
,
message
:
'请输入单人间成本价'
,
trigger
:
'blur'
},
ChildNotBedPrice
:
{
validator
:
emptyJudge
,
message
:
'请输入小孩不占床成本价'
,
trigger
:
'blur'
},
AddBedPrice
:
{
validator
:
emptyJudge
,
message
:
'请输入加床成本价'
,
trigger
:
'blur'
},
DriverRoomPrice
:
{
validator
:
emptyJudge
,
message
:
'请输入司机房成本价'
,
trigger
:
'blur'
},
GuideRoomPrice
:
{
validator
:
emptyJudge
,
message
:
'请输入导游房成本价'
,
trigger
:
'blur'
},
CurrencyId
:
{
validator
:
emptyJudge
,
message
:
'请选择成本币种'
,
trigger
:
'blur'
},
CurrentRate
:
{
validator
:
emptyJudge
,
message
:
'请输入汇率'
,
trigger
:
'blur'
},
WeekendAddPrice
:
{
validator
:
emptyJudge
,
message
:
'请输入周末加价'
,
trigger
:
'blur'
},
InteriorAddPrice
:
{
validator
:
emptyJudge
,
message
:
'请输入内部加价'
,
trigger
:
'blur'
},
B2BPrice
:
{
validator
:
emptyJudge
,
message
:
'请输入B2B加价'
,
trigger
:
'blur'
},
B2CPrice
:
{
validator
:
emptyJudge
,
message
:
'请输入B2C加价'
,
trigger
:
'blur'
},
},
allCurrencyList
:
[],
SupplierList
:
[]
...
...
@@ -575,11 +736,11 @@
this
.
msg2
.
DateList
.
splice
(
dayIndex
,
1
)
},
getData
:
function
(
date
,
key
)
{
this
.
apipost
(
'hotelreport_get_GetHotelPriceMonthStatistics'
,
{
this
.
apipost
(
'hotelreport_get_GetHotelPriceMonthStatistics'
,
{
HotelId
:
this
.
hotelId
,
Year
:
date
.
split
(
'-'
)[
0
],
Month
:
date
.
split
(
'-'
)[
1
]
},
res
=>
{
},
res
=>
{
if
(
res
.
data
.
resultCode
===
1
)
{
let
json
=
res
.
data
.
data
this
.
hotelInfo
.
HotelName
=
json
.
HotelName
...
...
@@ -636,7 +797,15 @@
this
.
calendar
.
show
=
true
},
goUrlA
:
function
()
{
this
.
$router
.
push
({
name
:
'HotelProductEdit'
,
query
:
{
type
:
'1'
,
HotelId
:
this
.
hotelId
,
blank
:
'y'
,
tab
:
'报价管理'
}
});
this
.
$router
.
push
({
name
:
'HotelProductEdit'
,
query
:
{
type
:
'1'
,
HotelId
:
this
.
hotelId
,
blank
:
'y'
,
tab
:
'报价管理'
}
});
},
// 获取详情
getDetail
:
function
(
date
)
{
...
...
@@ -645,8 +814,8 @@
Time
:
date
},
res
=>
{
if
(
res
.
data
.
resultCode
===
1
)
{
let
data
=
res
.
data
.
data
this
.
msg
.
Supplier
=
data
.
Supplier
===
0
?
'0'
:
data
.
Supplier
let
data
=
res
.
data
.
data
;
this
.
msg
.
Supplier
=
data
.
Supplier
===
0
?
'0'
:
data
.
Supplier
this
.
msg
.
Inventory
=
data
.
Inventory
this
.
msg
.
B2BPrice
=
data
.
B2BPrice
this
.
msg
.
B2CPrice
=
data
.
B2CPrice
...
...
@@ -664,7 +833,8 @@
this
.
msg
.
DriverRoomPrice
=
data
.
DriverRoomPrice
this
.
msg
.
WeekendAddPrice
=
data
.
WeekendAddPrice
this
.
msg
.
InteriorAddPrice
=
data
.
InteriorAddPrice
this
.
msg
.
GuideRoomPrice
=
data
.
GuideRoomPrice
this
.
msg
.
GuideRoomPrice
=
data
.
GuideRoomPrice
;
this
.
msg
.
SanKePrice
=
data
.
SanKePrice
;
}
else
{
this
.
$message
.
error
(
res
.
data
.
message
)
}
...
...
@@ -680,13 +850,13 @@
},
//获取所有币种
getAllCurrency
()
{
this
.
apipost
(
"financeinfo_post_GetList"
,{},
res
=>
{
this
.
apipost
(
"financeinfo_post_GetList"
,
{},
res
=>
{
if
(
res
.
data
.
resultCode
===
1
)
{
this
.
allCurrencyList
=
res
.
data
.
data
;
}
else
{
this
.
$message
.
error
(
'币种获取失败'
)
}
},
err
=>
{});
},
err
=>
{});
},
// 币种切换
currencyChange
:
function
(
val
)
{
...
...
@@ -708,19 +878,21 @@
},
// 获取供应商
initSupplier
()
{
this
.
apipost
(
"supplier_post_GetAllList"
,{
Type
:
1
},
res
=>
{
this
.
apipost
(
"supplier_post_GetAllList"
,
{
Type
:
1
},
res
=>
{
if
(
res
.
data
.
resultCode
===
1
)
{
this
.
SupplierList
=
res
.
data
.
data
;
}
else
{
this
.
$message
.
error
(
'供应商获取失败'
)
}
},
err
=>
{});
},
err
=>
{});
},
// 打开编辑窗口
goEdit
:
function
(
type
,
date
)
{
let
nowDate
=
new
Date
().
Format
(
'yyyy-MM-dd'
)
this
.
msg
.
StartDate
=
date
===
undefined
?
nowDate
:
date
this
.
msg
.
EndDate
=
date
===
undefined
?
nowDate
:
date
this
.
msg
.
StartDate
=
date
===
undefined
?
nowDate
:
date
this
.
msg
.
EndDate
=
date
===
undefined
?
nowDate
:
date
if
(
type
===
'2'
&&
date
)
{
this
.
getDetail
(
date
)
}
...
...
@@ -755,21 +927,21 @@
this
.
$refs
[
'hotelProductForm2'
].
resetFields
()
},
//批量删除
delete2Reset
:
function
()
{
delete2Reset
:
function
()
{
this
.
$confirm
(
'是否删除?'
,
'提示'
,
{
confirmButtonText
:
'确定'
,
cancelButtonText
:
'取消'
,
type
:
'warning'
}).
then
(()
=>
{
this
.
apipost
(
'dict_post_HotelOffer_RemoveNewHotelPrice'
,
this
.
msg2
,
res
=>
{
this
.
apipost
(
'dict_post_HotelOffer_RemoveNewHotelPrice'
,
this
.
msg2
,
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
$message
.
success
(
res
.
data
.
message
)
this
.
getMonths
()
this
.
$refs
[
'hotelProductForm2'
].
resetFields
()
}
else
{
}
else
{
this
.
$message
.
error
(
res
.
data
.
message
)
}
},
err
=>
{})
},
err
=>
{})
}).
catch
(()
=>
{
this
.
$message
({
type
:
'info'
,
...
...
@@ -797,9 +969,9 @@
},
},
created
:
function
()
{
this
.
hotelId
=
this
.
$route
.
query
.
id
===
undefined
?
'0'
:
this
.
$route
.
query
.
id
this
.
msg
.
Hotel
=
this
.
$route
.
query
.
id
===
undefined
?
'0'
:
this
.
$route
.
query
.
id
this
.
msg2
.
Hotel
=
this
.
$route
.
query
.
id
===
undefined
?
'0'
:
this
.
$route
.
query
.
id
this
.
hotelId
=
this
.
$route
.
query
.
id
===
undefined
?
'0'
:
this
.
$route
.
query
.
id
this
.
msg
.
Hotel
=
this
.
$route
.
query
.
id
===
undefined
?
'0'
:
this
.
$route
.
query
.
id
this
.
msg2
.
Hotel
=
this
.
$route
.
query
.
id
===
undefined
?
'0'
:
this
.
$route
.
query
.
id
this
.
condition
.
month
=
new
Date
().
Format
(
'yyyy-MM'
)
let
nowDate
=
new
Date
().
Format
(
'yyyy-MM-dd'
)
this
.
msg
.
DayType
=
'4'
...
...
@@ -812,20 +984,23 @@
this
.
initSupplier
()
}
}
</
script
>
<
style
>
.hotelProductManage2
{
.hotelProductManage2
{
padding
:
20px
0
;
}
.hotelProductManage2
>
.hotelProductManage2_btnList
{
.hotelProductManage2
>
.hotelProductManage2_btnList
{
position
:
fixed
;
top
:
36px
;
right
:
20px
;
text-align
:
right
;
margin
:
20px
0
0
0
;
}
.hotelProductManage2_btnList
>
.btn_check
{
.hotelProductManage2_btnList
>
.btn_check
{
display
:
inline-block
;
margin
:
0
0
0
10px
;
padding
:
0
15px
;
...
...
@@ -838,31 +1013,38 @@
border-radius
:
15px
;
cursor
:
pointer
;
}
.hotelProductManage2_condition
{
.hotelProductManage2_condition
{
padding
:
0
0
0
0
;
text-align
:
right
;
}
.hotelProductManage2_condition
>
div
{
.hotelProductManage2_condition
>
div
{
display
:
inline-block
;
text-align
:
left
;
}
.hotelProductManage2_condition
>
div
>
em
{
.hotelProductManage2_condition
>
div
>
em
{
margin
:
0
5px
0
0
;
font-size
:
14px
;
color
:
#666666
;
}
.hotelProductManage2_tableBox
{
.hotelProductManage2_tableBox
{
padding
:
20px
0
;
}
.hotelProductManage2_table
{
width
:
100%
;
color
:
#333
;
border-bottom
:
1px
solid
#cccccc
;
border-right
:
1px
solid
#cccccc
;
}
.hotelProductManage2_table
tr
{
background
:
#fff
;
}
.hotelProductManage2_table
tr
th
{
background
:
#e6e6e6
;
height
:
40px
;
...
...
@@ -871,6 +1053,7 @@
border-top
:
1px
solid
#cccccc
;
border-left
:
1px
solid
#cccccc
;
}
.hotelProductManage2_table
tr
td
{
height
:
40px
;
font-size
:
12px
;
...
...
@@ -878,14 +1061,16 @@
border-top
:
1px
solid
#cccccc
;
border-left
:
1px
solid
#cccccc
;
}
.hotelProductManage2_calendar
{
.hotelProductManage2_calendar
{
position
:
relative
;
padding
:
20px
0
;
width
:
100%
;
border-top
:
1px
solid
#E5E5E5
;
border-bottom
:
1px
solid
#E5E5E5
;
}
.hotelProductManage2_calendarBox
{
.hotelProductManage2_calendarBox
{
position
:
absolute
;
z-index
:
2
;
left
:
0px
;
...
...
@@ -893,7 +1078,8 @@
padding
:
20px
0
;
width
:
100%
;
}
.hotelProductManage2_calendarItem
{
.hotelProductManage2_calendarItem
{
display
:
inline-block
;
margin
:
0
5px
;
width
:
24%
;
...
...
@@ -902,10 +1088,12 @@
border-radius
:
4px
;
font-size
:
0px
;
}
.hotelProductManage2_calendarItem
:hover
{
.hotelProductManage2_calendarItem
:hover
{
box-shadow
:
0px
0px
5px
5px
#E5E5E5
;
}
.hotelProductManage2_calendarItem
>
.calendarItem_month
{
.hotelProductManage2_calendarItem
>
.calendarItem_month
{
width
:
100%
;
height
:
30px
;
line-height
:
30px
;
...
...
@@ -913,14 +1101,16 @@
font-size
:
14px
;
cursor
:
pointer
;
}
.hotelProductManage2_calendarItem
>
.calendarItem_week
{
.hotelProductManage2_calendarItem
>
.calendarItem_week
{
display
:
flex
;
justify-content
:
space-around
;
padding
:
10px
0
;
width
:
100%
;
height
:
36px
;
}
.hotelProductManage2_calendarItem
>
.calendarItem_week
>
div
{
.hotelProductManage2_calendarItem
>
.calendarItem_week
>
div
{
display
:
inline-block
;
width
:
14.2%
;
height
:
16px
;
...
...
@@ -929,17 +1119,20 @@
font-size
:
14px
;
color
:
#999999
;
}
.hotelProductManage2_calendarItem
>
.calendarItem_day
{
.hotelProductManage2_calendarItem
>
.calendarItem_day
{
display
:
flex
;
justify-content
:
space-around
;
flex-wrap
:
wrap
;
}
.hotelProductManage2_calendarItem
>
.calendarItem_day
>
div
{
.hotelProductManage2_calendarItem
>
.calendarItem_day
>
div
{
display
:
inline-block
;
padding
:
5px
0
;
width
:
14.2%
;
}
.hotelProductManage2_calendarItem
>
.calendarItem_day
>
div
>
div
{
.hotelProductManage2_calendarItem
>
.calendarItem_day
>
div
>
div
{
margin
:
auto
;
width
:
30px
;
height
:
30px
;
...
...
@@ -949,27 +1142,34 @@
border
:
2px
solid
transparent
;
border-radius
:
50%
;
}
.hotelProductManage2_calendarItem
>
.calendarItem_day
>
.nowMonth
>
div
{
.hotelProductManage2_calendarItem
>
.calendarItem_day
>
.nowMonth
>
div
{
color
:
#000000
;
cursor
:
pointer
;
}
.hotelProductManage2_calendarItem
>
.calendarItem_day
>
.otherMonth
>
div
{
.hotelProductManage2_calendarItem
>
.calendarItem_day
>
.otherMonth
>
div
{
color
:
gainsboro
;
}
.hotelProductManage2_calendarItem
>
.calendarItem_day
>
div
>
.hasStock_1
{
.hotelProductManage2_calendarItem
>
.calendarItem_day
>
div
>
.hasStock_1
{
background-color
:
#ff6363
;
}
.hotelProductManage2_calendarItem
>
.calendarItem_day
>
div
>
.hasStock_2
{
.hotelProductManage2_calendarItem
>
.calendarItem_day
>
div
>
.hasStock_2
{
background-color
:
#ff99cc
;
}
.hotelProductManage2_calendarItem
>
.calendarItem_day
>
div
>
.hasStock_3
{
.hotelProductManage2_calendarItem
>
.calendarItem_day
>
div
>
.hasStock_3
{
background-color
:
#bcd6ee
;
}
.hotelProductManage2_calendarItem
>
.calendarItem_day
>
div
>
.hasStock_4
{
.hotelProductManage2_calendarItem
>
.calendarItem_day
>
div
>
.hasStock_4
{
background-color
:
#DDDDDD
;
}
/* 页面编辑 */
.hotelProductManage2_edit2
{
.hotelProductManage2_edit2
{
margin
:
20px
0
0
0
;
padding
:
10px
10px
0
;
width
:
100%
;
...
...
@@ -978,12 +1178,14 @@
background-color
:
#FFFFFF
;
overflow
:
auto
;
}
.hotelProductManage2_edit2
>
.hotelProductManage2_edit2_header
{
.hotelProductManage2_edit2
>
.hotelProductManage2_edit2_header
{
position
:
relative
;
width
:
100%
;
height
:
30px
;
}
.hotelProductManage2_edit2_header
>
div
:nth-child
(
1
)
{
.hotelProductManage2_edit2_header
>
div
:nth-child
(
1
)
{
display
:
inline-block
;
padding
:
0
20px
;
width
:
200px
;
...
...
@@ -992,13 +1194,15 @@
font-size
:
16px
;
border-left
:
3px
solid
#E95252
;
}
.hotelProductManage2_edit2_header
>
div
:nth-child
(
2
)
{
.hotelProductManage2_edit2_header
>
div
:nth-child
(
2
)
{
position
:
absolute
;
top
:
0px
;
right
:
0px
;
height
:
30px
;
}
.hotelProductManage2_edit2_header
>
div
:nth-child
(
2
)>
div
:nth-child
(
1
)
{
.hotelProductManage2_edit2_header
>
div
:nth-child
(
2
)>
div
:nth-child
(
1
)
{
display
:
inline-block
;
margin
:
0
5px
;
padding
:
0
15px
;
...
...
@@ -1012,7 +1216,8 @@
vertical-align
:
top
;
cursor
:
pointer
;
}
.hotelProductManage2_edit2_header
>
div
:nth-child
(
2
)>
div
:nth-child
(
2
)
{
.hotelProductManage2_edit2_header
>
div
:nth-child
(
2
)>
div
:nth-child
(
2
)
{
display
:
inline-block
;
padding
:
0
15px
;
height
:
30px
;
...
...
@@ -1025,27 +1230,34 @@
vertical-align
:
top
;
cursor
:
pointer
;
}
.hotelProductManage2_edit2
>
.hotelProductManage2_edit2_form
{
.hotelProductManage2_edit2
>
.hotelProductManage2_edit2_form
{
padding
:
10px
0
;
}
.hotelProductManage2_edit2_form
.el-input
{
.hotelProductManage2_edit2_form
.el-input
{
width
:
160px
;
}
.hotelProductManage2_edit2_form
.el-input-number
{
.hotelProductManage2_edit2_form
.el-input-number
{
width
:
160px
;
}
.hotelProductManage2_edit2_form
.el-input__inner
{
.hotelProductManage2_edit2_form
.el-input__inner
{
width
:
160px
;
}
.hotelProductManage2_edit2_form
.el-textarea__inner
{
.hotelProductManage2_edit2_form
.el-textarea__inner
{
resize
:
none
;
}
.hotelProductManage2_edit2_form
.HotelProductEdit_date
.el-form-item__content
{
.hotelProductManage2_edit2_form
.HotelProductEdit_date
.el-form-item__content
{
width
:
1000px
;
min-height
:
9px
;
}
/* 弹出编辑 */
.hotelProductManage2_edit
{
.hotelProductManage2_edit
{
position
:
fixed
;
z-index
:
50
;
bottom
:
0
;
...
...
@@ -1057,12 +1269,14 @@
background-color
:
#FFFFFF
;
overflow
:
auto
;
}
.hotelProductManage2_edit
>
.hotelProductManage2_edit_header
{
.hotelProductManage2_edit
>
.hotelProductManage2_edit_header
{
position
:
relative
;
width
:
100%
;
height
:
30px
;
}
.hotelProductManage2_edit_header
>
div
:nth-child
(
1
)
{
.hotelProductManage2_edit_header
>
div
:nth-child
(
1
)
{
display
:
inline-block
;
padding
:
0
20px
;
width
:
200px
;
...
...
@@ -1071,13 +1285,15 @@
font-size
:
16px
;
border-left
:
3px
solid
#E95252
;
}
.hotelProductManage2_edit_header
>
div
:nth-child
(
2
)
{
.hotelProductManage2_edit_header
>
div
:nth-child
(
2
)
{
position
:
absolute
;
top
:
0px
;
right
:
0px
;
height
:
30px
;
}
.hotelProductManage2_edit_header
>
div
:nth-child
(
2
)>
div
:nth-child
(
1
)
{
.hotelProductManage2_edit_header
>
div
:nth-child
(
2
)>
div
:nth-child
(
1
)
{
display
:
inline-block
;
margin
:
0
5px
;
padding
:
0
15px
;
...
...
@@ -1091,7 +1307,8 @@
vertical-align
:
top
;
cursor
:
pointer
;
}
.hotelProductManage2_edit_header
>
div
:nth-child
(
2
)>
div
:nth-child
(
2
)
{
.hotelProductManage2_edit_header
>
div
:nth-child
(
2
)>
div
:nth-child
(
2
)
{
display
:
inline-block
;
padding
:
0
15px
;
height
:
30px
;
...
...
@@ -1104,25 +1321,32 @@
vertical-align
:
top
;
cursor
:
pointer
;
}
.hotelProductManage2_edit
>
.hotelProductManage2_edit_form
{
.hotelProductManage2_edit
>
.hotelProductManage2_edit_form
{
padding
:
10px
0
;
}
.hotelProductManage2_edit_form
.el-input
{
.hotelProductManage2_edit_form
.el-input
{
width
:
180px
;
}
.hotelProductManage2_edit_form
.el-input__inner
{
.hotelProductManage2_edit_form
.el-input__inner
{
width
:
180px
;
}
.hotelProductManage2_edit_form
.el-textarea__inner
{
.hotelProductManage2_edit_form
.el-textarea__inner
{
resize
:
none
;
}
.hotelProductManage2_edit_form
.HotelProductEdit_date
>
div
{
.hotelProductManage2_edit_form
.HotelProductEdit_date
>
div
{
display
:
inline-block
;
vertical-align
:
middle
;
}
.hotelProductManage2_edit_form
.HotelProductEdit_date
>
div
>
em
{
.hotelProductManage2_edit_form
.HotelProductEdit_date
>
div
>
em
{
display
:
inline-block
;
margin
:
7px
10px
0
0
;
padding
:
0
0
0
0
;
}
</
style
>
src/components/SalesModule/BulkAirTicketOrders.vue
View file @
47fb0f10
<
<<<<<<
HEAD
<
template
>
<div
class=
"flexOne"
style=
"min-width: 1200px;"
>
...
...
@@ -47,1004 +46,8 @@
<table
class=
"groupTourOrderSearchTable"
border=
"0"
cellspacing=
"0"
cellpadding=
"0"
v-loading=
'loading'
>
<tr
class=
"title_tr"
>
<th>
单号
</th>
<th>
机票编码
</th>
<th
width=
"70"
>
客户信息
</th>
<th>
客人数量
</th>
<th>
单价
</th>
<th>
成交单价
</th>
<th>
应收总额
</th>
<th>
实收
</th>
<th>
退款
</th>
<th>
平台税金
</th>
<!-- <th width="80">平台在途</th> -->
<!-- <th width="80">待收金额</th> -->
<th>
状态
</th>
<th
width=
"150"
>
操作
</th>
</tr>
<tr>
<td
v-show=
"dataList.length==0"
colspan=
"16"
align=
"center"
>
暂无数据
</td>
</tr>
<tbody
v-for=
"(item,index) in dataList"
:key=
"index"
>
<tr>
<td>
{{item.Id}}
</td>
<td
class=
"guest_num"
@
click=
"goUrl('散客机票','individualTicket',item.AirTicketId)"
>
{{item.AirTicketId}}
</td>
<!-- 机票编码 -->
<td><p
class=
"fz12 over_ellipsis"
style=
"width: 120px;"
>
{{item.ContactName}}
</p>
<!-- <p class="fz12">123456</p> -->
</td>
<td
class=
"guest_num"
>
{{item.GuestNum}}/{{item.SeatNum}}/{{item.FreightSpace}}
</td>
<td
class=
"fz12"
>
{{item.TC_Price}}
</td>
<td
class=
"fz12"
>
{{item.Unit_Price}}
</td>
<td
style=
"color:#E95252"
>
{{item.PreferPrice}}
</td>
<td
style=
"color:#E95252"
>
{{item.Income}}
</td>
<td>
{{item.Refund}}
</td>
<td>
{{item.PlatformTax}}
</td>
<td>
<p
v-if=
"item.RefundStatus!=1"
>
<span
v-if=
"item.RefundStatus==2"
>
退款中
</span>
<span
v-if=
"item.RefundStatus==3"
>
已退款
</span>
</p>
<p
v-else
>
<span
v-if=
"item.Status==1"
>
正常
</span>
<span
v-if=
"item.Status==2"
>
取消
</span>
<span
v-if=
"item.Status==3"
>
待付款
</span>
</p>
</td>
<td>
<p
v-if=
"item.RefundStatus==2 && item.Status==1 && item.RefundFinanceList.length==0"
>
<el-tooltip
class=
"item"
effect=
"dark"
content=
"退款"
placement=
"top-end"
>
<el-button
@
click=
"RefundPay(item)"
type=
"danger"
icon=
"el-icon-star-off"
circle
></el-button>
</el-tooltip>
</p>
</td>
</tr>
<tr
style=
"height:20px"
>
<td
colspan=
"15"
class=
"RL_Order"
style=
"height:20px"
>
<span
class=
"RL-remarkTitle"
>
名单:
</span>
<span
class=
"RL-redType RL-remarkCon"
v-if=
"item.GuestList.length>0"
>
<el-popover
placement=
"right"
width=
"1000"
trigger=
"click"
>
<el-table
:data=
"item.GuestList"
>
<el-table-column
property=
"Id"
label=
"排号"
></el-table-column>
<el-table-column
property=
"Name"
label=
"姓名"
></el-table-column>
<el-table-column
property=
"Sex"
label=
"性别"
>
<
template
slot-scope=
"scope"
>
<span
v-if=
"scope.row.Sex=='1'"
>
男
</span>
<span
v-if=
"scope.row.Sex=='2'"
>
女
</span>
</
template
>
</el-table-column>
<el-table-column
property=
"Birthday"
label=
"生日"
></el-table-column>
<el-table-column
property=
"PassportNo"
label=
"护照号码"
></el-table-column>
<el-table-column
property=
"NationalityName"
label=
"国籍"
></el-table-column>
<el-table-column
width=
"120"
property=
"MobilePhone"
label=
"手机号码"
></el-table-column>
<el-table-column
property=
"AgeType"
label=
"年龄类型"
>
<
template
slot-scope=
"scope"
>
<span
v-if=
"scope.row.AgeType=='1'"
>
成人
</span>
<span
v-if=
"scope.row.AgeType=='2'"
>
孩子
</span>
<span
v-if=
"scope.row.AgeType=='3'"
>
婴儿
</span>
<span
v-if=
"scope.row.AgeType=='4'"
>
老人
</span>
</
template
>
</el-table-column>
</el-table>
<span
slot=
"reference"
>
<span
style=
"cursor:pointer"
v-for=
"(childItem) in item.GuestList"
:key=
"childItem.Name"
>
{{childItem.Name}}
</span>
</span>
</el-popover>
</span>
<span
class=
"RL-redType RL-remarkCon"
v-else
>
<span>
暂无名单
</span>
</span>
</td>
</tr>
<tr>
<td
colspan=
"5"
class=
"groupTourOrder_remarks"
style=
"height: 40px;"
>
<div>
<div>
<span>
备注:
</span>
<p>
{{item.Remarks}}
</p>
</div>
</div>
</td>
<td
colspan=
"7"
class=
"groupTourOrder_tickets"
style=
"height: 40px;"
>
<div>
<div>
收款单据:
</div>
<div>
<span
style=
"cursor: default;"
>
<span
class=
"tickets_green"
v-for=
"(fina,fin) in item.FinanceList"
:key=
"fin"
>
<span
@
click=
"goUrl('财务单据','FinancialDocumentsDetail',fina.FrID)"
v-if=
"fina.ColorState===1"
class=
"groupTourOrder_tickets_blue"
>
{{fina.FrID}}
</span>
<span
@
click=
"goUrl('财务单据','FinancialDocumentsDetail',fina.FrID)"
v-else-if=
"fina.ColorState===2"
class=
"groupTourOrder_tickets_green"
>
{{fina.FrID}}
</span>
<span
@
click=
"goUrl('财务单据','FinancialDocumentsDetail',fina.FrID)"
v-else-if=
"fina.ColorState===3"
class=
"groupTourOrder_tickets_red"
>
{{fina.FrID}}
</span>
<span
@
click=
"goUrl('财务单据','FinancialDocumentsDetail',fina.FrID)"
v-else-if=
"fina.ColorState===4"
class=
"groupTourOrder_tickets_black"
>
{{fina.FrID}}
</span>
</span>
<span
v-if=
"item.FinanceList.length==0"
>
暂无数据
</span>
</span>
</div>
</div>
<div>
<div>
付款单据:
</div>
<div>
<span
style=
"cursor: default;"
>
<span
class=
"tickets_green"
v-for=
"(fina,fin) in item.RefundFinanceList"
:key=
"fin"
>
<span
@
click=
"goUrl('财务单据','FinancialDocumentsDetail',fina.FrID)"
v-if=
"fina.ColorState===1"
class=
"groupTourOrder_tickets_blue"
>
{{fina.FrID}}
</span>
<span
@
click=
"goUrl('财务单据','FinancialDocumentsDetail',fina.FrID)"
v-else-if=
"fina.ColorState===2"
class=
"groupTourOrder_tickets_green"
>
{{fina.FrID}}
</span>
<span
@
click=
"goUrl('财务单据','FinancialDocumentsDetail',fina.FrID)"
v-else-if=
"fina.ColorState===3"
class=
"groupTourOrder_tickets_red"
>
{{fina.FrID}}
</span>
<span
@
click=
"goUrl('财务单据','FinancialDocumentsDetail',fina.FrID)"
v-else-if=
"fina.ColorState===4"
class=
"groupTourOrder_tickets_black"
>
{{fina.FrID}}
</span>
<!-- <span @click="goUrl('财务单据','FinancialDocumentsDetail',fina.FrID)">{{fina.FrID}}</span> -->
</span>
<span
v-if=
"item.RefundFinanceList.length==0"
>
暂无数据
</span>
</span>
</div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<el-pagination
background
@
current-change=
"handleCurrentChange"
:current-page
.
sync=
"currentPage"
layout=
"total,prev, pager, next, jumper"
:page-size=
"msg.pageSize"
:total=
"total"
></el-pagination>
</div>
</template>
<
script
>
import
payURL
from
"../commonPage/payURL.vue"
;
import
moment
from
"moment"
;
export
default
{
data
()
{
return
{
msg
:
{
pageIndex
:
1
,
pageSize
:
10
,
AirTicketId
:
0
,
AirOrderId
:
0
,
Status
:
0
,
StartTime
:
moment
().
format
(
"YYYY-MM-DD"
),
EndTime
:
""
},
status
:
[
{
title
:
"全部"
,
num
:
0
},
{
title
:
"待付款"
,
num
:
3
},
{
title
:
"正常"
,
num
:
1
},
{
title
:
"取消"
,
num
:
2
}
],
dataList
:
[],
loading
:
false
,
total
:
0
,
currentPage
:
1
,
showID
:
-
1
};
},
components
:
{},
created
()
{},
methods
:
{
// 退款操作
RefundPay
(
item
)
{
let
orderObj
=
{
OrderID
:
item
.
Id
,
//订单号
OrderSource
:
12
,
//12
Obj
:
{},
SourceID
:
item
.
AirTicketId
,
//机票id
TCIDList
:
[]
};
this
.
$router
.
push
({
name
:
"ChoiceAddFinancialDocuments"
,
query
:
{
Type
:
2
,
companyID
:
item
.
RB_Branch_Id
,
//公司id
path
:
""
,
blank
:
"y"
,
orderObj
:
JSON
.
stringify
(
orderObj
)
}
});
},
goUrl
:
function
(
name
,
path
,
id
)
{
this
.
$router
.
push
({
name
:
path
,
query
:
{
id
:
id
,
blank
:
"y"
,
tab
:
name
}
});
},
handleCurrentChange
(
val
)
{
this
.
msg
.
pageIndex
=
val
;
this
.
getList
();
},
resetPageIndex
()
{
this
.
msg
.
pageIndex
=
1
;
this
.
currentPage
=
1
;
},
getList
()
{
this
.
loading
=
true
;
this
.
apipost
(
"ticket_get_GetAirTicketForMyList"
,
this
.
msg
,
res
=>
{
this
.
loading
=
false
;
if
(
res
.
data
.
resultCode
==
1
)
{
// console.log(res);
this
.
total
=
res
.
data
.
data
.
count
;
this
.
dataList
=
res
.
data
.
data
.
pageData
;
}
else
{
this
.
$message
.
error
(
res
.
data
.
message
);
}
},
err
=>
{}
);
},
// 结束日期不能大于开始日期
dataDui
()
{
if
(
this
.
msg
.
StartTime
>
this
.
msg
.
EndTime
&&
this
.
msg
.
EndTime
!==
""
)
{
this
.
$message
.
error
(
"结束日期不能大于开始日期"
);
this
.
msg
.
CEndDate
=
""
;
}
}
},
mounted
()
{
this
.
getList
();
}
};
</
script
>
<
style
scoped
>
@import
"../../assets/css/newTravelManager.css"
;
.guest_num
:hover
{
font-weight
:
bold
;
}
.guest_num
{
text-decoration
:
underline
;
cursor
:
pointer
;
color
:
rgb
(
26
,
168
,
107
);
}
.tickets_green
{
color
:
#008000
;
text-decoration
:
underline
;
margin-right
:
6px
;
}
.title_tr
th
{
/* width: 9%; */
}
.color_red_order
{
color
:
#e95252
!important
;
}
.groupTourOrderSearch
{
width
:
100%
;
min-height
:
auto
;
padding
:
0
0
20px
0
;
}
.groupTourOrderSearch
li
{
float
:
left
;
font-size
:
12px
;
color
:
#666
;
margin
:
20px
0
0px
0
;
}
.groupTourOrderSearch
li
>
span
{
display
:
inline-block
;
}
.groupTourOrderSearch
li
span
>
em
{
display
:
inline-block
;
min-width
:
60px
;
text-align
:
right
;
font-style
:
normal
;
margin
:
0
12px
0
0
;
}
.groupTourOrderSearch
li
:last-child
{
position
:
fixed
;
z-index
:
10
;
top
:
36px
;
right
:
20px
;
}
.groupTourOrderSearch
ul
{
overflow
:
hidden
;
}
.groupTourOrderSearchTable
{
width
:
100%
;
min-width
:
1500px
;
font-size
:
14px
;
color
:
#333
;
border-bottom
:
1px
solid
#cccccc
;
border-right
:
1px
solid
#cccccc
;
/* border-collapse: collapse; */
}
.groupTourOrderSearchTable
tr
th
{
background
:
#e6e6e6
;
height
:
30px
;
font-size
:
12px
;
text-align
:
left
;
text-indent
:
15px
;
border-top
:
1px
solid
#cccccc
;
border-left
:
1px
solid
#cccccc
;
}
.groupTourOrderSearchTable
tr
{
background
:
#fff
;
text-align
:
left
;
}
.groupTourOrderSearchTable
tr
td
{
padding
:
8px
;
border-top
:
1px
solid
#cccccc
;
border-left
:
1px
solid
#cccccc
;
}
.groupTourOrderSearchTable
tr
td
p
{
line-height
:
20px
;
}
.groupTourOrderSearchTable
.dowloadSpan
:hover
{
text-decoration
:
underline
;
cursor
:
pointer
;
}
.groupTourOrderSearchTable
span
.personNo
{
text-decoration
:
underline
;
cursor
:
pointer
;
}
.groupTourOrderSearchTable
span
.personNo
:hover
{
font-weight
:
bold
;
color
:
#e95252
;
}
.personNolayer
p
{
height
:
28px
;
line-height
:
28px
;
padding-left
:
15px
;
}
.personNolayer
p
>
span
{
font-size
:
12px
;
color
:
#333
;
margin-right
:
15px
;
}
.personNolayer
table
{
padding
:
10px
0
0
20px
;
width
:
100%
;
background-color
:
#ededed
;
border-collapse
:
collapse
;
border
:
1px
solid
#d2d2d2
;
font-size
:
12px
;
}
.personNolayer
table
th
{
background-color
:
#ededed
;
height
:
34px
;
text-indent
:
15px
;
}
.personNolayer
table
td
{
background-color
:
#ffffff
;
padding
:
9px
15px
;
color
:
#333333
;
border
:
1px
solid
#d2d2d2
;
}
.personNolayer
table
._color_666
{
color
:
#666666
;
}
.personNolayer
table
tr
._color_666
th
{
padding
:
9px
15px
;
}
.groupSuperSearchLayer
{
}
.groupSuperSearchLayer
>
p
{
padding
:
20px
0
;
font-size
:
14px
;
color
:
#333
;
font-weight
:
bold
;
}
.groupSuperSearchLayerTable
{
font-size
:
12px
;
color
:
#666
;
}
.groupSuperSearchLayerTable
tr
{
height
:
50px
;
}
.groupSuperSearchLayerTable
td
{
padding-right
:
15px
;
}
.groupTourOrderIcon
button
{
width
:
30px
;
height
:
30px
;
border-radius
:
4px
;
}
.groupTourOrderIcon
.el-button--primary
{
padding
:
5px
;
margin
:
0
;
font-size
:
14px
!important
;
}
.groupTourOrderIcon
.el-button
+
.el-button
{
margin-left
:
0
!important
;
}
.productQuerybottomLayer
{
overflow
:
auto
;
position
:
fixed
;
min-height
:
300px
;
z-index
:
50
;
bottom
:
0
;
left
:
0
;
border-top
:
3px
solid
#38425d
;
background-color
:
#ffffff
;
padding
:
10px
10px
0
;
width
:
100%
;
}
.productQuerybottomLayer
.el-form-item__label
{
font-size
:
12px
!important
;
}
.productQuerybottomLayer
>
p
{
border-left
:
3px
solid
#e95252
;
text-indent
:
15px
;
height
:
16px
;
font-family
:
"PingFangSc-Fine"
;
font-size
:
16px
;
margin-bottom
:
20px
;
line-height
:
14px
;
color
:
#000
;
}
.productQuerybottomLayer
.el-input-number
{
width
:
auto
!important
;
}
.groupTourOrder_count_green
{
color
:
#1bc594
;
}
.groupTourOrder_count_blue
{
color
:
#4d7afd
;
}
.groupTourOrder_count_yellow
{
color
:
#ff9c00
;
}
.groupTourOrder_count_gray
{
color
:
#999999
;
}
.groupTourOrder_count
{
margin
:
0
0
20px
0
;
width
:
100%
;
height
:
auto
;
}
.groupTourOrder_count_col
{
height
:
80px
;
}
.groupTourOrder_count_item
{
font-weight
:
400
;
padding
:
10px
;
height
:
100%
;
border
:
1px
solid
#e6e6e6
;
background-color
:
#ffffff
;
color
:
#333333
;
}
.groupTourOrder_count_item
>
div
>
i
{
font-size
:
12px
;
vertical-align
:
bottom
;
}
.groupTourOrder_count_item
>
div
>
span
:nth-child
(
2
)
{
font-size
:
14px
;
vertical-align
:
bottom
;
}
.groupTourOrder_count_item
>
div
>
span
:nth-child
(
3
)
{
font-weight
:
bold
;
font-size
:
16px
;
vertical-align
:
bottom
;
}
.groupTourOrder_count_item
>
p
{
font-size
:
12px
;
line-height
:
18px
;
}
.groupTourOrder_count_item
>
p
>
span
{
margin
:
0
5px
0
0
;
white-space
:
nowrap
;
}
.groupTourOrder_more
{
margin
:
0
-12px
;
}
.groupTourOrder_more
>
div
{
width
:
100%
;
height
:
30px
;
line-height
:
30px
;
text-align
:
center
;
font-size
:
12px
;
color
:
#333333
;
background-color
:
#ffffff
;
cursor
:
pointer
;
}
.groupTourOrder_more
>
div
:hover
{
color
:
#297bef
;
background-color
:
#dcebff
;
}
.groupTourOrder_remarks
{
font-size
:
0px
;
}
.groupTourOrder_remarks
>
div
{
}
.groupTourOrder_remarks
>
div
>
div
:nth-child
(
1
)
{
float
:
left
;
display
:
flex
;
align-items
:
flex-start
;
}
.groupTourOrder_remarks
>
div
>
div
:nth-child
(
1
)
>
span
{
line-height
:
20px
;
font-size
:
12px
;
color
:
#e95252
;
white-space
:
nowrap
;
}
.groupTourOrder_remarks
>
div
>
div
:nth-child
(
1
)
>
p
{
line-height
:
20px
;
font-size
:
12px
;
color
:
#e95252
;
}
.groupTourOrder_remarks
>
div
>
div
:nth-child
(
2
)
{
float
:
right
;
text-align
:
right
;
font-size
:
12px
;
color
:
#e95252
;
}
.groupTourOrder_remarks
>
div
>
div
:nth-child
(
2
)
>
i
{
font-size
:
10px
;
cursor
:
pointer
;
}
.groupTourOrder_remarks
>
div
::after
{
display
:
block
;
clear
:
both
;
content
:
""
;
visibility
:
hidden
;
height
:
0
;
}
.groupTourOrder_remarks_btn
{
padding
:
0px
;
width
:
12px
;
height
:
12px
;
border
:
none
;
background-color
:
transparent
;
}
.groupTourOrder_remarks_btn
>
i
{
color
:
#e95252
;
font-size
:
12px
;
}
.groupTourOrder_remarks_popover
>
div
{
display
:
inline-block
;
font-size
:
14px
;
color
:
#000000
;
}
.groupTourOrder_remarks_popover
>
div
::before
{
content
:
""
;
display
:
inline-block
;
margin
:
0
5px
0
0
;
width
:
2px
;
height
:
12px
;
background-color
:
#e95252
;
}
.groupTourOrder_remarks_popover
>
span
{
display
:
block
;
margin
:
0
0
0
0
;
width
:
100%
;
text-align
:
center
;
font-size
:
12px
;
color
:
#000000
;
}
.groupTourOrder_remarks_popover
>
p
{
margin
:
5px
0
0
0
;
padding
:
3px
;
width
:
100%
;
max-height
:
300px
;
overflow-y
:
auto
;
font-size
:
12px
;
color
:
#000000
;
}
.groupTourOrder_remarks_popover
>
p
:nth-child
(
even
)
{
background-color
:
#e6e6e6
;
}
.groupTourOrder_remarks_popover
>
p
>
span
:nth-child
(
1
)
{
float
:
left
;
}
.groupTourOrder_remarks_popover
>
p
>
span
:nth-child
(
2
)
{
margin
:
0
10px
0
0
;
float
:
right
;
}
.groupTourOrder_remarks_popover
>
p
::after
{
display
:
block
;
clear
:
both
;
content
:
""
;
visibility
:
hidden
;
height
:
0
;
}
.groupTourOrder_tickets
>
div
{
display
:
table
;
}
.groupTourOrder_tickets
>
div
>
div
{
display
:
table-cell
;
cursor
:
pointer
;
}
.groupTourOrder_tickets
>
div
>
div
:nth-child
(
1
)
{
width
:
80px
;
}
.groupTourOrder_tickets
>
div
>
div
>
span
{
display
:
inline-block
;
margin
:
0
10px
0
0
;
}
.groupTourOrder_tickets_red
{
color
:
#ff0000
;
text-decoration
:
underline
;
}
.groupTourOrder_tickets_blue
{
color
:
#0000ff
;
text-decoration
:
underline
;
}
.groupTourOrder_tickets_green
{
color
:
#008000
;
text-decoration
:
underline
;
}
.groupTourOrder_tickets_black
{
color
:
#000000
;
text-decoration
:
underline
;
}
.groupTourOrderByTuan_ico
{
margin
:
0
10px
0
0
;
}
.groupTourOrderByTuan_ico
>
i
{
display
:
inline-block
;
margin
:
0
2px
0
0
;
width
:
8px
;
height
:
8px
;
border-radius
:
2px
;
vertical-align
:
middle
;
}
.groupTourOrderByTuan_ico
>
span
{
vertical-align
:
middle
;
}
/* 出团通知书打印选择 */
.travelControlTripLayer
{
position
:
fixed
;
z-index
:
99
;
width
:
100%
;
height
:
100%
;
background
:
rgba
(
0
,
0
,
0
,
0.3
);
left
:
0
;
top
:
0
;
}
.travelControlTripLayerCont
{
position
:
absolute
;
left
:
50%
;
margin-left
:
-300px
;
background
:
#fff
;
top
:
50%
;
margin-top
:
-180px
;
width
:
600px
;
}
.travelControlTripLayerCont
>
div
{
padding
:
0
30px
;
}
.travelControlTripLayerCont
>
div
label
{
cursor
:
pointer
;
vertical-align
:
middle
;
}
.travelControlTripLayerCont
>
div
label
input
{
vertical-align
:
middle
;
}
.travelControlTripBtn
{
color
:
#fff
;
width
:
90px
;
height
:
30px
;
background
:
#e95252
;
border
:
1px
solid
#e95252
;
cursor
:
pointer
;
border-radius
:
15px
;
margin-left
:
10px
;
}
.travelControlTripLayer
input
[
type
=
"checkbox"
]
+
label
::before
{
content
:
"\A0"
;
display
:
inline-block
;
width
:
15px
;
height
:
15px
;
margin-right
:
5px
;
border-radius
:
4px
;
background-color
:
white
;
text-indent
:
0.15em
;
line-height
:
15px
;
color
:
white
;
border
:
1px
solid
#e95252
;
}
.travelControlTripLayer
input
[
type
=
"checkbox"
]
:checked
+
label
::before
{
content
:
"\2713"
;
background-color
:
#e95252
;
}
.travelControlTripLayer
input
[
type
=
"checkbox"
]
{
position
:
absolute
;
clip
:
rect
(
0
,
0
,
0
,
0
);
}
.travelControlTripLayer
input
[
type
=
"checkbox"
]
:focus
+
label
::before
{
box-shadow
:
none
;
}
.travelControlTripLayer
input
[
type
=
"checkbox"
]
:disabled
+
label
::before
{
background-color
:
gray
;
box-shadow
:
none
;
color
:
#555
;
}
.groupTourOrder_transfer
{
position
:
fixed
;
z-index
:
50
;
bottom
:
0
;
left
:
50px
;
padding
:
10px
10px
;
width
:
100%
;
min-width
:
1366px
;
min-height
:
200px
;
border-top
:
3px
solid
#38425d
;
background-color
:
#ffffff
;
overflow-y
:
auto
;
}
.groupTourOrder_transfer
>
.transfer_header
{
position
:
relative
;
width
:
100%
;
height
:
30px
;
}
.groupTourOrder_transfer
>
.transfer_header
>
div
:nth-child
(
1
)
{
display
:
inline-block
;
padding
:
0
10px
;
width
:
200px
;
height
:
30px
;
line-height
:
30px
;
border-left
:
3px
solid
#e95252
;
text-indent
:
10px
;
font-size
:
16px
;
color
:
#000000
;
}
.groupTourOrder_transfer
>
.transfer_header
>
div
:nth-child
(
2
)
{
position
:
absolute
;
top
:
0px
;
right
:
80px
;
height
:
30px
;
}
.groupTourOrder_transfer
>
.transfer_header
>
div
:nth-child
(
2
)
>
div
:nth-child
(
1
)
{
display
:
inline-block
;
padding
:
0
15px
;
height
:
30px
;
line-height
:
28px
;
font-size
:
14px
;
color
:
#e95252
;
border
:
1px
solid
#e95252
;
background
:
#fff
;
border-radius
:
15px
;
cursor
:
pointer
;
vertical-align
:
top
;
}
.groupTourOrder_transfer
>
.transfer_header
>
div
:nth-child
(
2
)
>
div
:nth-child
(
2
)
{
display
:
inline-block
;
margin
:
0
0
0
10px
;
padding
:
0
15px
;
height
:
30px
;
line-height
:
28px
;
font-size
:
14px
;
color
:
#fff
;
border
:
1px
solid
#e95252
;
background
:
#e95252
;
border-radius
:
15px
;
cursor
:
pointer
;
vertical-align
:
top
;
}
.groupTourOrder_transfer
>
.transfer_info
{
padding
:
20px
0
;
width
:
100%
;
font-size
:
0px
;
border-bottom
:
1px
dashed
#999999
;
}
.groupTourOrder_transfer
>
.transfer_info
>
div
{
display
:
inline-block
;
padding
:
0
10px
;
width
:
25%
;
height
:
30px
;
vertical-align
:
top
;
}
.groupTourOrder_transfer
>
.transfer_info
>
div
>
em
{
display
:
inline-block
;
padding
:
0
10px
;
width
:
35%
;
height
:
30px
;
line-height
:
30px
;
text-align
:
right
;
font-size
:
16px
;
vertical-align
:
top
;
}
.groupTourOrder_transfer
>
.transfer_info
>
div
>
span
{
display
:
inline-block
;
padding
:
0
10px
;
width
:
65%
;
height
:
30px
;
line-height
:
30px
;
text-align
:
left
;
font-size
:
16px
;
border-radius
:
3px
;
background-color
:
#e5e5e5
;
vertical-align
:
top
;
}
.groupTourOrder_transfer
>
.transfer_input
{
padding
:
20px
0
;
width
:
100%
;
font-size
:
0px
;
}
.groupTourOrder_transfer
>
.transfer_input
>
div
{
display
:
inline-block
;
padding
:
0
10px
;
width
:
25%
;
height
:
30px
;
vertical-align
:
top
;
}
.groupTourOrder_transfer
>
.transfer_input
>
div
>
em
{
display
:
inline-block
;
padding
:
0
10px
;
width
:
35%
;
height
:
30px
;
line-height
:
30px
;
text-align
:
right
;
font-size
:
16px
;
vertical-align
:
top
;
}
.groupTourOrder_transfer
>
.transfer_input
>
div
>
.el-input
{
display
:
inline-block
;
width
:
65%
;
height
:
30px
;
line-height
:
30px
;
text-align
:
left
;
font-size
:
14px
;
vertical-align
:
top
;
}
</
style
>
=======
<
template
>
<div
class=
"flexOne"
style=
"min-width: 1200px;"
>
<div
class=
"groupTourOrderSearch"
>
<ul>
<li>
<span>
<em>
机票编码
</em><el-input
v-model=
'msg.AirTicketId'
class=
'w150'
></el-input>
</span>
</li>
<li>
<span>
<em>
订单号
</em><el-input
v-model=
'msg.AirOrderId'
class=
'w150'
></el-input>
</span>
</li>
<li>
<span>
<em>
状态
</em>
<el-select
v-model=
"msg.Status"
placeholder=
"请选择"
>
<el-option
v-for=
"item in status"
:key=
"item.num"
:label=
"item.title"
:value=
"item.num"
>
</el-option>
</el-select>
</span>
</li>
<li>
<span><em>
日期
</em>
<el-date-picker
v-model=
'msg.StartTime'
@
change=
"dataDui()"
class=
'w150'
value-format=
"yyyy-MM-dd"
type=
"date"
></el-date-picker>
-
<el-date-picker
v-model=
'msg.EndTime'
@
change=
"dataDui()"
class=
'w150'
value-format=
"yyyy-MM-dd"
type=
"date"
></el-date-picker>
</span>
</li>
<li>
<input
type=
"button"
class=
"hollowFixedBtn"
value=
"查询"
@
click=
"getList();resetPageIndex()"
/>
</li>
</ul>
</div>
<!-- 表格 -->
<div
style=
"width: 100%; height: auto;min-height:500px;overflow-x: auto;"
class=
"ownScrollbarStyle"
>
<table
class=
"groupTourOrderSearchTable"
border=
"0"
cellspacing=
"0"
cellpadding=
"0"
v-loading=
'loading'
>
<tr
class=
"title_tr"
>
<th>
单号
</th>
<th>
机票编码
</th>
<th
width=
"70"
>
客户信息
</th>
<th>
机票编码
</th>
<th>
客人数量
</th>
<th>
单价
</th>
<th>
成交单价
</th>
...
...
@@ -1052,8 +55,6 @@ export default {
<th>
实收
</th>
<th>
退款
</th>
<th>
平台税金
</th>
<!--
<th
width=
"80"
>
平台在途
</th>
-->
<!--
<th
width=
"80"
>
待收金额
</th>
-->
<th>
状态
</th>
<th
width=
"150"
>
操作
</th>
</tr>
...
...
@@ -1062,13 +63,10 @@ export default {
</tr>
<tbody
v-for=
"(item,index) in dataList"
:key=
"index"
>
<tr>
<td>
{{
item
.
Id
}}
</td>
<td>
{{
item
.
Id
}}
</td>
<!-- 机票编码 -->
<td><p
class=
"fz12 over_ellipsis"
style=
"width: 120px;"
>
{{
item
.
ContactName
}}
</p>
<!--
<p
class=
"fz12"
>
123456
</p>
-->
</td>
<td>
{{
item
.
GuestNum
}}
/
{{
item
.
SeatNum
}}
/
{{
item
.
FreightSpace
}}
</td>
<td>
{{
item
.
Id
}}
<br/>
{{
item
.
EnterName
}}
<br/>
{{
item
.
CreateDate
}}
</td>
<td><p
class=
"fz12 over_ellipsis"
style=
"width: 120px;"
>
{{
item
.
CustomerName
}}
<br/>
{{
item
.
CustomerMobile
}}
</p></td>
<td><span
@
click=
"goUrl('散客机票','individualTicket',item.AirTicketId)"
class=
"guest_num"
>
{{
item
.
AirTicketId
}}
</span></td>
<td>
{{
item
.
GuestNum
}}
/
{{
item
.
SeatNum
}}{{
item
.
FreightSpace
}}
</td>
<td
class=
"fz12"
>
{{
item
.
TC_Price
}}
</td>
<td
class=
"fz12"
>
{{
item
.
Unit_Price
}}
</td>
<td
style=
"color:#E95252"
>
{{
item
.
PreferPrice
}}
</td>
...
...
@@ -1982,4 +980,3 @@ export default {
vertical-align
:
top
;
}
</
style
>
>>>>>>> d10b1456a7e7e80cc593228d4dd3ba70873b316a
src/components/ShoppingStore/ShoppingReimbursement.vue
View file @
47fb0f10
...
...
@@ -2,9 +2,20 @@
<div>
<div
class=
"query-box"
style=
"border-bottom: none;"
>
<ul>
<li><span><em>
系列
</em>
<li>
<span>
<em>
所属线路
</em>
<el-select
class=
"w150"
v-model=
"msg.LineId"
filterable
:placeholder=
"$t('pub.pleaseSel')"
@
change=
"getLineTeamList(msg.LineId)"
>
<el-option
:label=
"$t('pub.unlimitedSel')"
:value=
"0"
></el-option>
<el-option
v-for=
"item in LineList"
:label=
"item.LineName"
:value=
"item.LineID"
:key=
"item.LineID"
></el-option>
</el-select>
</span>
</li>
<li>
<span>
<em>
系列
</em>
<el-select
v-model=
"msg.LineteamId"
filterable
:placeholder=
"$t('pub.pleaseSel')"
>
<el-option
label=
"不限"
value=
'-1
'
></el-option>
<el-option
label=
"不限"
:value=
'0
'
></el-option>
<el-option
v-for=
"item in LineTeamList"
:label=
'item.LtName'
:value=
'item.LtID'
:key=
'item.LtID'
>
</el-option>
</el-select>
...
...
@@ -193,8 +204,8 @@
pageSize
:
8
,
//购物店
SelectType
:
7
,
LineId
:
14
,
LineteamId
:
"-1"
,
LineId
:
0
,
LineteamId
:
0
,
StartDate
:
''
,
EndDate
:
''
,
currentPage
:
1
,
...
...
@@ -232,12 +243,12 @@
this
.
LineTeamList
=
[];
this
.
apipost
(
"team_post_GetList"
,
{
lineID
:
14
,
lineID
:
lineId
,
isTOOP
:
1
},
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
msg
.
LineteamId
=
"-1"
;
this
.
msg
.
LineteamId
=
0
;
this
.
LineTeamList
=
res
.
data
.
data
;
}
}
...
...
@@ -362,8 +373,8 @@
myDate
.
getDate
();
this
.
msg
.
StartDate
=
nowDate
;
//this.msg.StartDate = '2019-01-01';
this
.
getLine
Team
List
();
this
.
getList
()
this
.
getLineList
();
this
.
getList
()
;
},
}
...
...
src/components/Ticketing/IndividualTicketOrder.vue
View file @
47fb0f10
...
...
@@ -57,7 +57,7 @@
</li>
<li>
<span><em>
日期
</em>
<span><em>
报名
日期
</em>
<el-date-picker
v-model=
'msg.StartTime'
@
change=
"dataDui()"
class=
'w150'
value-format=
"yyyy-MM-dd"
type=
"date"
></el-date-picker>
-
...
...
@@ -75,8 +75,8 @@
<table
class=
"groupTourOrderSearchTable"
border=
"0"
cellspacing=
"0"
cellpadding=
"0"
v-loading=
'loading'
>
<tr
class=
"title_tr"
>
<th>
单号
</th>
<th>
机票编码
</th>
<th>
客户信息
</th>
<th>
机票编码
</th>
<th>
客人数量
</th>
<th>
单价
</th>
<th>
成交单价
</th>
...
...
@@ -93,16 +93,11 @@
</tr>
<tbody
v-for=
"(item,index) in dataList"
:key=
"index"
>
<tr>
<td>
{{
item
.
Id
}}
</td>
<td>
<span
@
click=
"goUrl('散客机票','individualTicket',item.AirTicketId)"
class=
"guest_num"
>
{{
item
.
AirTicketId
}}
</span>
</td>
<!-- 机票编码 -->
<td><p
class=
"fz12 over_ellipsis"
style=
"width: 120px;"
>
{{
item
.
ContactName
}}
</p>
<!--
<p
class=
"fz12"
>
123456
</p>
-->
</td>
<td>
{{
item
.
Id
}}
<br/>
{{
item
.
EnterName
}}
<br/>
{{
item
.
CreateDate
}}
</td>
<td><p
class=
"fz12 over_ellipsis"
style=
"width: 120px;"
>
{{
item
.
CustomerName
}}
<br/>
{{
item
.
CustomerMobile
}}
</p></td>
<td><span
@
click=
"goUrl('散客机票','individualTicket',item.AirTicketId)"
class=
"guest_num"
>
{{
item
.
AirTicketId
}}
</span></td>
<td>
<span
class=
"guest_num"
>
{{
item
.
GuestNum
}}
/
{{
item
.
SeatNum
}}
/
{{
item
.
FreightSpace
}}
</span>
<span
class=
"guest_num"
>
{{
item
.
GuestNum
}}
/
{{
item
.
SeatNum
}}{{
item
.
FreightSpace
}}
</span>
</td>
<td
class=
"fz12"
>
{{
item
.
TC_Price
}}
</td>
<td
class=
"fz12"
>
{{
item
.
Unit_Price
}}
</td>
...
...
@@ -236,7 +231,7 @@ export default {
StartTime
:
moment
().
format
(
"YYYY-MM-DD"
),
EndTime
:
""
},
status
:
[{
title
:
"
全部
"
,
num
:
0
},{
title
:
"待付款"
,
num
:
3
},{
title
:
"正常"
,
num
:
1
},
{
title
:
"取消"
,
num
:
2
}],
status
:
[{
title
:
"
不限
"
,
num
:
0
},{
title
:
"待付款"
,
num
:
3
},{
title
:
"正常"
,
num
:
1
},
{
title
:
"取消"
,
num
:
2
}],
dataList
:[],
loading
:
false
,
total
:
0
,
...
...
src/components/Ticketing/IndividualTicketOrderDetails.vue
View file @
47fb0f10
...
...
@@ -25,6 +25,7 @@
<tr
class=
"title_tr"
>
<th>
单号
</th>
<th>
客户信息
</th>
<!--
<th>
联系人
</th>
-->
<th>
客人数量
</th>
<th>
单价
</th>
<th>
成交单价
</th>
...
...
@@ -41,11 +42,10 @@
</tr>
<tbody
v-for=
"item in dataList"
:key=
"item.ContactName"
>
<tr>
<td>
{{
item
.
AirProductId
}}
</td>
<td><p
class=
"fz12 over_ellipsis"
style=
"width: 120px;"
>
{{
item
.
ContactName
}}
</p>
<!--
<p
class=
"fz12"
>
123456
</p>
-->
</td>
<td>
{{
item
.
GuestNum
}}
</td>
<td>
{{
item
.
Id
}}
<br/>
{{
item
.
EnterName
}}
<br/>
{{
item
.
CreateDate
}}
</td>
<td><p
class=
"fz12 over_ellipsis"
style=
"width: 120px;"
>
{{
item
.
CustomerName
}}
<br/>
{{
item
.
CustomerMobile
}}
</p></td>
<!--
<td><p
class=
"fz12 over_ellipsis"
style=
"width: 120px;"
>
{{
item
.
ContactName
}}
<br/>
{{
item
.
ContactMobile
}}
</p></td>
-->
<td>
{{
item
.
GuestNum
}}
/
{{
item
.
SeatNum
}}{{
item
.
FreightSpace
}}
</td>
<td
class=
"fz12"
>
{{
item
.
TC_Price
}}
</td>
<td
class=
"fz12"
>
{{
item
.
Unit_Price
}}
</td>
<td
style=
"color:#FF9C00"
>
{{
item
.
PreferPrice
}}
</td>
...
...
@@ -160,11 +160,9 @@
<!-- 取消订单列表 -->
<tbody
v-show=
"toggle_status"
v-for=
"(item,index) in CancelList"
:key=
"index"
>
<tr>
<td>
{{item.AirProductId}}
</td>
<td><p
class=
"fz12 over_ellipsis"
style=
"width: 120px;"
>
{{item.ContactName}}
</p>
<!-- <p class="fz12">123456</p> -->
</td>
<td>
{{item.GuestNum}}
</td>
<td>
{{item.Id}}
<br/>
{{item.EnterName}}
<br/>
{{item.CreateDate}}
</td>
<td><p
class=
"fz12 over_ellipsis"
style=
"width: 120px;"
>
{{item.CustomerName}}
<br/>
{{item.CustomerMobile}}
</p></td>
<td>
{{item.GuestNum}}/{{item.SeatNum}}{{item.FreightSpace}}
</td>
<td
class=
"fz12"
>
{{item.TC_Price}}
</td>
<td
class=
"fz12"
>
{{item.Unit_Price}}
</td>
<td
style=
"color:#FF9C00"
>
{{item.PreferPrice}}
</td>
...
...
@@ -180,7 +178,7 @@
<td
colspan=
"15"
class=
"RL_Order"
style=
"height:20px"
>
<span
class=
"RL-remarkTitle"
>
名单:
</span>
<span
class=
"RL-redType RL-remarkCon"
v-if=
"item.GuestList.length>0"
>
<
span
v-for=
"(childItem) in item.GuestList"
:key=
"childItem.Name"
>
{{childItem.Name}}
</span
>
<
!-- <span v-for="(childItem) in item.GuestList" :key="childItem.Name">{{childItem.Name}} </span> --
>
<el-popover
placement=
"right"
width=
"1000"
...
...
src/components/Ticketing/individualTicket.vue
View file @
47fb0f10
...
...
@@ -315,7 +315,7 @@
<li>
<span>
<em>
航班号
</em>
<el-input
v-model=
"msg.Flight_number"
placeholder=
"
机票编
号"
></el-input>
<el-input
v-model=
"msg.Flight_number"
placeholder=
"
航班
号"
></el-input>
</span>
</li>
...
...
@@ -380,7 +380,7 @@
</ul>
<div
class=
"_ol_info"
>
<ul
class=
"_ol_list"
v-loading=
"loading"
>
<li
v-for=
"(item,index) in dataList"
:data-id=
"item.
ID
"
>
<li
v-for=
"(item,index) in dataList"
:data-id=
"item.
AirTickerId
"
>
<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>
...
...
@@ -388,7 +388,7 @@
<el-col
:span=
"2"
>
<span
class=
"_lian_style"
v-if=
"item.IsSetUnion==1"
>
联
</span>
<div
class=
"_oll_img_box"
>
<span
class=
"TICK_Code PingFangSC"
>
编号:
{{
item
.
ID
}}
</span>
<span
class=
"TICK_Code PingFangSC"
>
编号:
{{
item
.
AirTickerId
}}
</span>
<img
v-if=
"!item.AirlineUrl"
class=
"_oll_img"
:src=
"defaultImg"
>
<img
v-else
class=
"_oll_img"
:src=
"item.AirlineUrl"
:onerror=
"defaultImg"
>
</div>
...
...
@@ -472,7 +472,7 @@
</div>
</el-col>
<el-col
:span=
"2"
class=
"vmiddle"
>
<el-button
type=
"primary"
size=
"mini"
@
click=
"goUrl('/IndividualTicketOrderDetails',item)"
>
查看
详情
</el-button>
<el-button
type=
"primary"
size=
"mini"
@
click=
"goUrl('/IndividualTicketOrderDetails',item)"
>
查看
订单
</el-button>
</el-col>
</el-row>
...
...
src/components/dmc/manager/dmcTotalTable.vue
View file @
47fb0f10
...
...
@@ -2,7 +2,9 @@
<div>
<div
class=
"query-box"
style=
"border-bottom: none;"
>
<ul>
<li><span><em>
线路
</em>
<li>
<span>
<em>
线路
</em>
<el-select
v-model=
"msg.LineId"
filterable
:placeholder=
"$t('pub.pleaseSel')"
class=
"w150"
@
change=
"getLineTeamList()"
>
<el-option
label=
"不限"
:value=
'0'
></el-option>
<el-option
v-for=
"item in LineList"
:label=
'item.LineName'
:value=
'item.LineID'
:key=
'item.LineID'
>
...
...
@@ -10,7 +12,9 @@
</el-select>
</span>
</li>
<li><span><em>
系列
</em>
<li>
<span>
<em>
系列
</em>
<el-select
v-model=
"msg.LineteamId"
filterable
:placeholder=
"$t('pub.pleaseSel')"
class=
"w150"
>
<el-option
label=
"不限"
value=
'-1'
></el-option>
<el-option
v-for=
"item in LineTeamList"
:label=
'item.LtName'
:value=
'item.LtID'
:key=
'item.LtID'
>
...
...
@@ -39,7 +43,7 @@
<li>
<span>
<em>
地接团号
</em>
<el-input
v-model=
'msg.CombinationNum'
class=
"w150"
></el-input>
<el-input
v-model=
'msg.CombinationNum'
></el-input>
</span>
</li>
<li>
...
...
src/components/dmc/manager/teamRevenueExpenditure.vue
View file @
47fb0f10
...
...
@@ -23,6 +23,7 @@
<th
width=
"150"
>
餐厅
</th>
<th
width=
"150"
>
门票
</th>
<th
width=
"150"
>
车资
</th>
<th
width=
"150"
>
其它
</th>
<th
width=
"150"
>
总计
</th>
</tr>
<tr
v-for=
"item in msgList"
>
...
...
@@ -31,7 +32,8 @@
<td>
{{
moneyFormat
(
eatPay
)
}}
</td>
<td>
{{
moneyFormat
(
ticketPay
)
}}
</td>
<td>
{{
moneyFormat
(
busPay
)
}}
</td>
<td>
{{
moneyFormat
(
hotelPay
+
eatPay
+
ticketPay
+
busPay
)
}}
</td>
<td>
{{
moneyFormat
(
otherPay
)
}}
</td>
<td>
{{
moneyFormat
(
hotelPay
+
eatPay
+
ticketPay
+
busPay
+
otherPay
)
}}
</td>
</tr>
</table>
<p
class=
"teamRevenueExpenditureTitle"
>
...
...
@@ -266,6 +268,64 @@
<td
colspan=
"9"
class=
"color666"
>
没有找到你需要的财务数据
</td>
</tr>
</table>
<p
class=
"teamRevenueExpenditureTitle"
>
其它
<span
class=
"fr"
style=
"margin-top: -8px;"
>
<input
type=
"button"
class=
"normalBtn"
value=
"新增付款"
@
click=
"goUrl(14,2)"
/><input
type=
"button"
class=
"normalBtn"
value=
"新增收款"
@
click=
"goUrl(14,1)"
/>
</span>
</p>
<table
border=
"0"
cellspacing=
"1"
cellpadding=
"0"
class=
"teamRevenueExpenditureTable"
>
<tr>
<th
width=
"100"
>
序号
</th>
<th
width=
"10%"
>
单号
</th>
<th
width=
"10%"
>
费用说明
</th>
<th
width=
"10%"
>
日期
</th>
<th
width=
"20%"
>
备注
</th>
<th
width=
"10%"
>
应付/应付金额
</th>
<th
width=
"10%"
>
业务员
</th>
<th>
付款凭证
</th>
<th
width=
"10%"
>
状态
</th>
</tr>
<tr
v-for=
"(item,index) in otherList"
>
<td>
{{index+1}}
</td>
<td><a
style=
"color:blue;cursor:pointer"
@
click=
"goFinaceURL(item.FrID)"
>
{{item.FrID}}
</a></td>
<td>
<span
class=
"padding10"
v-for=
"i in item.CostTypeList"
>
{{i}}
</span>
</td>
<td>
{{item.CreateDate}}
</td>
<td><div
v-for=
"childItem in item.TradeWayList"
>
支付方式:{{childItem.Alias}}
<span
class=
"TB_Rate"
>
币种:{{childItem.CurrencyName}}
</span>
<span
class=
"Team_Coins"
>
{{childItem.OriginalMoney}}*{{childItem.Rate}}
</span>
<span
class=
"TB_Rate"
>
汇率:{{childItem.Rate}}
</span>
</div></td>
<td>
<span>
¥{{item.Type === 2 ? '-' : ''}}{{moneyFormat(item.Money)}}
</span>
</td>
<td>
{{item.EmName}}
</td>
<td>
<
template
v-for=
"(son,sIndex) in item.VorcherInos"
>
<template
v-if=
"son.Type==1||son.Type==2"
>
<i
class=
"iconfont icon-excel"
@
click=
"showUpLoadFile(son)"
></i>
</
template
>
<
template
v-if=
"son.Type==3"
>
<img
class=
"vorcherInosImg"
@
click=
"showImg(item.VorcherInos)"
:src=
"son.Content"
alt=
""
>
</
template
>
</template>
</td>
<td>
{{item.StatusStr}}
</td>
</tr>
<tr
v-if=
'otherList.length!=0'
>
<td>
成本总价
</td>
<td
style=
"text-align:left;padding-left:5px;"
colspan=
"8"
>
¥{{getTotalMoney(otherList)}}
</td>
</tr>
<tr
v-if=
'otherList.length==0'
>
<td
colspan=
"9"
class=
"color666"
>
没有找到你需要的财务数据
</td>
</tr>
</table>
<div
v-if=
'picIsShow'
class=
"viewBigPicLayer"
@
click=
"picIsShow=false,picObj=[]"
>
<el-carousel
height=
"600px"
:interval=
"5000"
trigger=
"click"
>
<el-carousel-item
v-for=
"(item,index) in picObj"
:key=
"index"
>
...
...
@@ -287,10 +347,12 @@
eatList
:
[],
ticketList
:
[],
busList
:
[],
otherList
:
[],
hotelPay
:
0
,
eatPay
:
0
,
ticketPay
:
0
,
busPay
:
0
,
otherPay
:
0
,
}
},
methods
:
{
...
...
@@ -347,6 +409,9 @@
case
5
:
this
.
busPay
=
money
break
;
case
14
:
this
.
otherPay
=
money
break
;
default
:
break
;
}
...
...
@@ -417,12 +482,15 @@
case
5
:
this
.
busList
=
res
.
data
.
data
break
;
case
14
:
this
.
otherList
=
res
.
data
.
data
break
;
default
:
break
;
}
}
else
{
this
.
$message
.
e
rror
(
res
.
data
.
message
)
this
.
E
rror
(
res
.
data
.
message
)
}
},
err
=>
{})
}
...
...
@@ -432,6 +500,7 @@
this
.
getList
(
2
)
this
.
getList
(
3
)
this
.
getList
(
5
)
this
.
getList
(
14
)
this
.
getTuanMsg
()
}
}
...
...
src/components/newTravelmanager/TravelGroupControl/TravelFeature.vue
View file @
47fb0f10
...
...
@@ -342,7 +342,7 @@
type
:
contentType
});
},
getHtml
:
function
(
postData
,
SaveType
,
postType
)
{
getHtml
:
function
(
postData
,
SaveType
)
{
var
FeatureData
=
{
B2BRemark
:
postData
.
B2BRemark
,
ConfigId
:
postData
.
ConfigId
,
...
...
@@ -369,7 +369,6 @@
}
else
{
flagWangYue
=
true
;
}
if
(
this
.
$refs
.
newFeature
!=
undefined
)
{
var
obj
=
''
;
try
{
...
...
@@ -389,55 +388,9 @@
setTimeout
(()
=>
{
try
{
FeatureData
.
FeatureHtml
=
document
.
getElementById
(
"newFeatureBox"
).
innerHTML
;
}
catch
(
err
)
{}
if
(
postType
==
1
)
{
this
.
apipost
(
"travel_post_SetFeature"
,
FeatureData
,
res
=>
{
try
{
this
.
$refs
.
newFeature
.
setReadOnly
(
false
)
}
catch
(
ex
)
{}
try
{
this
.
$refs
.
newFeature2
.
canEditChange
(
true
)
}
catch
(
ex
)
{}
//解锁表单重复提交
this
.
$emit
(
"unlockFormCommit"
,
true
);
if
(
res
.
data
.
resultCode
==
1
)
{
//保存按钮跳转当当前页码
if
(
SaveType
==
1
)
{
let
path
=
flagWangYue
?
'TravelManager3'
:
'TravelManager2'
;
this
.
Success
(
"保存成功"
);
if
(
flagWangYue
||
this
.
isNewConfig
)
{
this
.
$router
.
push
({
path
:
path
,
query
:
{
flag
:
flagWangYue
,
configId
:
FeatureData
.
ConfigId
,
openState
:
1
}
catch
(
err
)
{
}
});
if
(
localStorage
.
openMode
===
"0"
)
{
this
.
loadConfigInfo
();
}
}
else
{
this
.
loadConfigInfo
();
}
}
//提交按钮和另存模板跳转团控列表
else
if
(
SaveType
==
2
||
SaveType
==
3
)
{
this
.
$router
.
push
({
path
:
"TravelControlList"
,
query
:
{
cache
:
true
}
});
}
}
this
.
MsgBus
.
$emit
(
'saveTravel'
,
false
);
this
.
FeatureData
.
IsSave
=
false
;
},
err
=>
{}
)
}
else
{
this
.
ApiPost2
(
"TripSetFeature"
,
FeatureData
,
res
=>
{
this
.
apipost
(
"travel_post_SetFeature"
,
FeatureData
,
res
=>
{
try
{
this
.
$refs
.
newFeature
.
setReadOnly
(
false
)
}
catch
(
ex
)
{}
...
...
@@ -482,7 +435,6 @@
},
err
=>
{}
)
}
},
2000
)
},
//切换tab事件
...
...
src/components/newTravelmanager/TravelGroupControl/TravelManager2.vue
View file @
47fb0f10
...
...
@@ -371,8 +371,6 @@
}
else
{
basicData
.
TeamType
=
0
;
}
var
postType
=
1
;
if
(
postType
==
1
)
{
this
.
apipost
(
"travel_post_SetTravelConfigInfo"
,
basicData
,
...
...
@@ -380,7 +378,7 @@
if
(
res
.
data
.
resultCode
==
1
)
{
//配置编号
TripFeature
.
ConfigId
=
res
.
data
.
data
;
this
.
$refs
.
TravelFeature
.
getHtml
(
TripFeature
,
SaveType
,
post
Type
);
this
.
$refs
.
TravelFeature
.
getHtml
(
TripFeature
,
Save
Type
);
}
else
if
(
res
.
data
.
resultCode
==
10009
)
{
this
.
FeatureData
.
IsSave
=
false
;
//表单重复提交
...
...
@@ -395,28 +393,6 @@
},
err
=>
{}
);
}
else
{
this
.
ApiPost2
(
"TripSetTravelConfigInfo"
,
basicData
,
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
//配置编号
TripFeature
.
ConfigId
=
res
.
data
.
data
;
this
.
$refs
.
TravelFeature
.
getHtml
(
TripFeature
,
SaveType
,
postType
);
}
else
if
(
res
.
data
.
resultCode
==
10009
)
{
this
.
FeatureData
.
IsSave
=
false
;
//表单重复提交
this
.
isSubmit
=
true
;
}
else
{
this
.
FeatureData
.
IsSave
=
false
;
this
.
Error
(
res
.
data
.
message
);
this
.
isSubmit
=
true
;
this
.
submitText
=
"提交"
;
this
.
$refs
.
TravelFeature
.
del_show
=
true
;
}
});
}
},
//初始化团的幻灯片
initFileList
()
{
...
...
src/components/newTravelmanager/TravelGroupControl/TravelPrice.vue
View file @
47fb0f10
...
...
@@ -356,6 +356,9 @@
<el-checkbox
v-model=
"priceData.IsSupportChildren"
:true-label=
"CheckedVaule"
:false-label=
"UnCheckedVaule"
>
支持儿童出游
</el-checkbox>
<el-checkbox
v-model=
"priceData.IsBookTeam"
style=
"display:none"
:true-label=
"CheckedVaule"
:false-label=
"UnCheckedVaule"
>
订团
</el-checkbox>
</div>
<el-form-item
prop=
"B2BMemberPrice"
>
<el-input
placeholder=
"请输入"
class=
"w190 ComSeat"
v-model=
"priceData.B2BMemberPrice"
...
...
@@ -885,6 +888,8 @@
AirportService
:
""
,
//机场服务
//可销售机票数量
CanSellTicketNum
:
2
,
//是否订团,0-不订,1需要订
IsBookTeam
:
0
};
}
// if (this.modifyTcid > 0) {
...
...
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