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
48c0abf6
Commit
48c0abf6
authored
Jan 12, 2023
by
youjie
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
no message
parent
073611ae
Show whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
534 additions
and
763 deletions
+534
-763
OrderPreview.vue
src/components/scenicSpot/Singleticket/OrderPreview.vue
+5
-5
SingleticketList.vue
src/components/scenicSpot/Singleticket/SingleticketList.vue
+1
-1
SingleticketOrderList.vue
...ponents/scenicSpot/Singleticket/SingleticketOrderList.vue
+33
-416
OrderDetails.vue
...nents/scenicSpot/Singleticket/components/OrderDetails.vue
+3
-1
OrderList.vue
src/components/scenicSpot/reservation/OrderList.vue
+432
-269
ReservationOrder.vue
src/components/scenicSpot/reservation/ReservationOrder.vue
+60
-71
No files found.
src/components/scenicSpot/Singleticket/OrderPreview.vue
View file @
48c0abf6
...
...
@@ -428,6 +428,7 @@
<
script
>
import
TicketCard
from
'./components/OrderDetails.vue'
export
default
{
components
:
{
TicketCard
},
data
()
{
return
{
isCheck
:
true
,
...
...
@@ -454,7 +455,7 @@
detailsObj
:
{},
beforeCheck
:
{
disabledDate
:
time
=>
{
let
endTime
=
new
Date
(
this
.
getBeforeDate
(
-
1
,
new
Date
().
Format
(
"yyyy-MM-dd"
)));
let
endTime
=
new
Date
(
this
.
getBeforeDate
(
0
,
new
Date
().
Format
(
"yyyy-MM-dd"
)));
return
time
&&
endTime
.
getTime
()
>=
time
.
getTime
();
}
},
...
...
@@ -559,19 +560,17 @@
}
},
getInfo
(
value
){
console
.
log
(
value
,
'----'
)
let
time
if
(
this
.
OpenTime
!=
this
.
msg
.
UseDate
){
time
=
this
.
msg
.
UseDate
}
else
{
time
=
this
.
OpenTime
}
console
.
log
(
time
,
'----222'
)
if
(
time
){
this
.
apipost
(
"ticket_post_GetTicketCouponsInfo"
,
{
CouponsId
:
this
.
CouponsId
,
CouponsId
:
this
.
msg
.
CouponsId
,
OpenTime
:
time
,
},
res
=>
{
...
...
@@ -631,12 +630,13 @@
},
mounted
()
{
this
.
getInfo
()
},
created
()
{
this
.
msg
.
CouponsId
=
this
.
$route
.
query
.
id
this
.
OpenTime
=
this
.
$route
.
query
.
OpenTime
this
.
msg
.
UseDate
=
this
.
$route
.
query
.
OpenTime
this
.
getInfo
()
}
};
...
...
src/components/scenicSpot/Singleticket/SingleticketList.vue
View file @
48c0abf6
...
...
@@ -222,7 +222,7 @@
</el-image>
</div>
<div
class=
"card-centent"
>
<h6
@
click=
"showCardHandler(x)"
>
{{
x
.
Name
}}
}
</h6>
<h6
@
click=
"showCardHandler(x)"
>
{{
x
.
Name
}}
</h6>
<p>
地址: 日本
{{
x
.
ProvinceName
}}
{{
x
.
CityName
}}
{{
x
.
Address
}}
</p>
<div
class=
"card-text"
>
<b>
共
{{
x
.
TicketPriceList
.
length
}}
种票型
</b>
...
...
src/components/scenicSpot/Singleticket/SingleticketOrderList.vue
View file @
48c0abf6
<
style
>
.domesticScenic
.clearfix
:after
{
content
:
"\0020"
;
display
:
block
;
height
:
0
;
clear
:
both
;
}
.domesticScenic
.hotelResource
{
width
:
100%
;
min-height
:
500px
;
margin-top
:
20px
;
}
.domesticScenic
.resourceList
{
width
:
215px
;
background-color
:
#fff
;
border
:
1px
dashed
#ededed
;
border-radius
:
4px
;
margin
:
0
20px
20px
0
;
font-size
:
12px
;
color
:
#333333
;
float
:
left
;
}
</
style
>
.domesticScenic
.resourceList
:hover
{
box-shadow
:
0px
0px
20px
rgba
(
191
,
191
,
191
,
1
);
transition
:
all
linear
0.5s
;
}
.domesticScenic
.reTopInfo
{
width
:
100%
;
height
:
123px
;
position
:
relative
;
}
.domesticScenic
.reTopInfo
img
{
position
:
absolute
;
width
:
100%
;
height
:
100%
;
top
:
0
;
border-top-left-radius
:
4px
;
border-top-right-radius
:
4px
;
}
.domesticScenic
.resTypeList
{
position
:
absolute
;
top
:
10px
;
left
:
10px
;
}
.domesticScenic
.resTypeList
span
{
display
:
inline-block
;
padding
:
1px
5px
;
border-radius
:
10px
;
color
:
#fff
;
margin-right
:
10px
;
}
.domesticScenic
.L1
{
background-color
:
#e95252
;
}
.domesticScenic
.L2
{
background-color
:
#47bf8c
;
}
.domesticScenic
.L3
{
background-color
:
#2aaef2
;
}
.domesticScenic
.L4
{
background-color
:
#9cf
;
}
.domesticScenic
.L5
{
background-color
:
#00c6ff
;
margin-top
:
5px
;
}
.domesticScenic
.starSu
{
position
:
absolute
;
bottom
:
8px
;
right
:
10px
;
display
:
flex
;
}
.domesticScenic
.starSu
.star
{
margin-left
:
5px
;
}
.domesticScenic
.sushe
{
background-color
:
#ffc800
;
display
:
inline-block
;
padding
:
1px
5px
;
border-radius
:
10px
;
color
:
#fff
;
}
.domesticScenic
.hotelTitle
{
margin
:
20px
16px
0
16px
;
font-size
:
14px
;
color
:
#333333
;
height
:
20px
;
overflow
:
hidden
;
text-overflow
:
ellipsis
;
white-space
:
nowrap
;
}
.domesticScenic
.brandList
i
{
position
:
relative
;
top
:
2px
;
}
.domesticScenic
.brand
{
float
:
left
;
width
:
49%
;
overflow
:
hidden
;
text-overflow
:
ellipsis
;
white-space
:
nowrap
;
text-align
:
center
;
}
.domesticScenic
.dayNum
{
float
:
right
;
text-align
:
center
;
width
:
50%
;
}
.domesticScenic
.dieline
{
color
:
#2aaef2
;
font-size
:
14px
;
top
:
1px
!important
;
}
.domesticScenic
.AddressInner
{
float
:
right
;
width
:
160px
;
height
:
18px
;
overflow
:
hidden
;
text-overflow
:
ellipsis
;
display
:
-webkit-box
;
-webkit-line-clamp
:
1
;
-webkit-box-orient
:
vertical
;
}
.domesticScenic
.btnList
{
padding
:
10px
0
20px
0
;
text-align
:
center
;
}
.domesticScenic
.hotelBtn
{
width
:
60px
;
height
:
28px
;
background
:
#f76f6f
;
border-radius
:
14px
;
color
:
#fff
;
cursor
:
pointer
;
}
.domesticScenic
.w150
.el-input
{
width
:
150px
!important
;
}
.domesticScenic
.SupportCount
{
color
:
#4bca81
;
font-size
:
18px
;
font-weight
:
bold
;
margin
:
0
5px
5px
0
;
display
:
inline-block
;
}
.domesticScenic
.dayNumber
{
color
:
#2aaef2
;
font-size
:
18px
;
font-weight
:
bold
;
margin
:
0
5px
5px
5px
;
display
:
inline-block
;
}
.domesticScenic
.line
{
float
:
left
;
width
:
1px
;
height
:
35px
;
background-color
:
#ededed
;
margin-top
:
6px
;
}
.domesticScenic
.foodList
{
display
:
inline-block
;
padding
:
1px
5px
;
background-color
:
#ff9c00
;
color
:
#fff
;
margin-right
:
6px
;
border-radius
:
2px
;
}
.domesticScenic
.foodList
:last-child
{
margin-right
:
0
;
}
.domesticScenic
.delScien
{
position
:
absolute
;
right
:
10px
;
top
:
10px
;
display
:
none
;
}
.domesticScenic
.delScien
:hover
{
color
:
#f76f6f
;
cursor
:
pointer
;
}
.domesticScenic
.resourceList
:hover
.delScien
{
display
:
block
;
}
.domesticScenic
.comCursorUrl
{
cursor
:
pointer
;
}
/* 景区列表 */
</
style
>
<
template
>
<div
class=
"flexOne domesticScenic"
>
<div
class=
"query-box"
>
<ul>
<li>
<span>
<em>
{{
$t
(
'system.quety_area'
)
}}
</em>
<el-select
v-model=
"msg.QProvince"
filterable
@
change=
"getProvinceList(msg.Province,2)"
:placeholder=
"$t('hotel.hotel_province')"
>
<el-option
:key=
"0"
:value=
"0"
label=
"请选择"
></el-option>
<el-option
v-for=
"item in provinceList"
:key=
"item.ID"
:label=
"item.Name"
:value=
"item.ID"
></el-option>
</el-select>
<el-select
v-model=
"msg.City"
filterable
:placeholder=
"$t('hotel.hotel_city')"
>
<el-option
:key=
"0"
:value=
"0"
label=
"请选择"
></el-option>
<el-option
v-for=
"item in cityList"
:key=
"item.ID"
:label=
"item.Name"
:value=
"item.ID"
></el-option>
</el-select>
</span>
</li>
<li>
<span
class=
"hotel_name"
>
<em>
{{
$t
(
'scen.sc_resName'
)
}}
</em>
<el-input
maxlength=
"50"
@
keyup
.
native
.
enter=
"resetPageIndex(),selectResource()"
v-model=
"msg.Name"
>
</el-input>
</span>
</li>
<li>
<span>
<em>
{{
$t
(
'system.quety_area'
)
}}
</em>
<el-select
v-model=
"msg.QProvince"
class=
"w150"
clearable
filterable
@
change=
"getProvinceList(msg.QProvince,2)"
:placeholder=
"$t('hotel.hotel_province')"
>
<el-option
v-for=
"item in provinceList"
:key=
"item.ID"
:label=
"item.Name"
:value=
"item.ID"
></el-option>
</el-select>
<el-select
v-model=
"msg.QCity"
class=
"w150"
clearable
filterable
@
change=
"getProvinceList(msg.QCity,3)"
:placeholder=
"$t('hotel.hotel_city')"
>
<el-option
v-for=
"item in cityList"
:key=
"item.ID"
:label=
"item.Name"
:value=
"item.ID"
></el-option>
</el-select>
<!--
<el-select
v-model=
"msg.QDistrict"
class=
"w150"
clearable
filterable
:placeholder=
"$t('hotel.hotel_area')"
>
<el-option
v-for=
"item in district"
:key=
"item.ID"
:label=
"item.Name"
:value=
"item.ID"
></el-option>
</el-select>
-->
</span>
</li>
<li>
<span>
<em>
{{
$t
(
'hotel.hotel_status'
)
}}
</em>
<el-select
v-model=
"msg.Status"
class=
"w210"
:placeholder=
"$t('pub.unlimitedSel')"
>
<el-option
:label=
"$t('pub.unlimitedSel')"
value=
"-1"
></el-option>
<el-option
v-for=
"item in status"
:key=
"item.value"
:label=
"item.label"
:value=
"item.value"
></el-option>
</el-select>
</span>
</li>
<li
style=
"display:none;"
>
<span>
<em>
{{
$t
(
'ground.menpiaozhongl'
)
}}
</em>
<el-select
v-model=
"msg.IsFree"
class=
'multiple_input w210'
:placeholder=
"$t('pub.pleaseSel')"
>
<el-option
v-for=
"item in IsFreeList"
:key=
"item.value"
:label=
"item.label"
:value=
"item.value"
>
</el-option>
</el-select>
</span>
</li>
<li>
<span><em>
{{
$t
(
'visa.v_czuser'
)
}}
</em></span>
<el-select
class=
"w150"
v-model=
"msg.UpdateBy"
filterable
:placeholder=
"$t('pub.pleaseSel')"
>
<el-option
:label=
"$t('pub.unlimitedSel')"
:value=
"0"
>
</el-option>
<el-option
v-for=
"item in EmployeeList"
:label=
"item.EmName"
:value=
"item.EmployeeId"
:key=
"item.EmployeeId"
></el-option>
</el-select>
</li>
<li>
<button
class=
"hollowFixedBtn"
type=
"button"
@
click=
"resetPageIndex(),selectResource()"
>
{{
$t
(
'pub.searchBtn'
)
}}
</button>
<button
class=
"normalBtn"
type=
"button"
@
click=
"$router.push('domesticScenicSpotInfoManage')"
>
{{
$t
(
'pub.addBtn'
)
}}
</button>
<!--
<button
class=
"hollowFixedBtn"
type=
"button"
@
click=
"DownLoadFile()"
>
{{
$t
(
'adm.adm_download'
)
}}
</button>
-->
</li>
</ul>
</div>
<el-table
:data=
"tableData"
tooltip-effect=
"dark"
style=
"width: 100%;min-height:450px;"
v-loading=
"loading"
>
<!--
<el-table-column
prop=
"Name"
label=
"景点名称"
>
<template
slot-scope=
"scope"
>
<div
style=
"display:flex;align-items:center;"
>
<
template
>
<div>
<img
v-if=
"!scope.row.PicPath"
src=
"../../assets/img/bg_c3@3x.png"
style=
"width:60px;height:45px;"
>
<img
v-else
:src=
"scope.row.PicPath"
style=
"width:60px;height:45px;"
/>
</div>
<div
style=
"margin-left:5px;"
>
{{
scope
.
row
.
Name
}}
</div>
</div>
</
template
>
</el-table-column>
-->
</el-table>
<el-pagination
background
@
current-change=
"handleCurrentChange"
:current-page
.
sync=
"msg.currentPage"
:page-size=
"msg.pageSize"
layout=
"total,prev, pager, next, jumper"
:total=
"msg.total"
></el-pagination>
<ReservationOrder
:pagesTitle=
"pagesTitle"
></ReservationOrder>
</div>
</template>
<
script
>
</
template
>
<
script
>
import
ReservationOrder
from
'../reservation/ReservationOrder.vue'
;
export
default
{
components
:
{
ReservationOrder
},
data
()
{
return
{
countryList
:
""
,
provinceList
:
""
,
cityList
:
""
,
district
:
""
,
Ids
:
[],
tableData
:
[],
noData
:
false
,
deleteID
:
""
,
status
:
[{
value
:
"0"
,
label
:
this
.
$t
(
'pub.normalSel'
)
},
{
value
:
"1"
,
label
:
this
.
$t
(
'system.table_delete'
)
}
],
IsFreeList
:
[{
value
:
"-1"
,
label
:
this
.
$t
(
'pub.unlimitedSel'
)
},
{
value
:
"0"
,
label
:
this
.
$t
(
'advmanager.v_free'
)
},
{
value
:
"1"
,
label
:
this
.
$t
(
'ground.youjia'
)
}
],
loading
:
true
,
EmployeeList
:
[],
defaultImg
:
'this.src="'
+
require
(
"../../../assets/img/bg_z1@2x.png"
)
+
'"'
,
msg
:
{
pageIndex
:
1
,
pageSize
:
14
,
Name
:
""
,
IsFree
:
"-1"
,
QCountry
:
""
,
QProvince
:
""
,
QCity
:
""
,
QDistrict
:
""
,
Status
:
"0"
,
total
:
0
,
currentPage
:
1
,
ID
:
0
,
UpdateBy
:
0
,
},
provinceList
:[],
cityList
:[]
pagesTitle
:
'销售'
,
};
},
methods
:
{
getProvinceList
(
ID
,
type
)
{
//根据省份获取城市
let
msg
=
{
Id
:
ID
};
if
(
type
==
1
)
{
this
.
msg
.
QProvince
=
0
;
this
.
msg
.
QCity
=
0
;
this
.
provinceList
=
[];
this
.
cityList
=
[];
}
else
if
(
type
==
2
)
{
this
.
msg
.
City
=
0
;
this
.
cityList
=
[];
}
this
.
apipost
(
"dict_post_Destination_GetChildList"
,
msg
,
res
=>
{
if
(
type
==
1
)
{
this
.
provinceList
=
res
.
data
.
data
;
}
else
if
(
type
==
2
)
{
this
.
cityList
=
res
.
data
.
data
;
}
},
err
=>
{}
);
},
},
mounted
()
{
},
created
()
{
if
(
this
.
$route
.
query
)
{
}
}
};
</
script
>
</
script
>
<
style
>
</
style
>
src/components/scenicSpot/Singleticket/components/OrderDetails.vue
View file @
48c0abf6
...
...
@@ -126,7 +126,9 @@
watch
:
{
ticket
:
{
handler
:
function
(
val
,
oldVal
)
{
this
.
t
=
JSON
.
parse
(
JSON
.
stringify
(
this
.
ticket
))
this
.
images
=
this
.
t
.
PicPathList
this
.
initMap
(
this
.
t
.
Lng
,
this
.
t
.
Lat
,
this
.
t
.
Name
)
},
deep
:
true
},
...
...
src/components/scenicSpot/reservation/OrderList.vue
View file @
48c0abf6
...
...
@@ -61,6 +61,7 @@
.cff9800
{
color
:
#ff9800
;
}
.cF1416C
{
color
:
#f1416c
;
}
...
...
@@ -186,6 +187,9 @@
.bj
{
background
:
#ffffff
;
}
.bjFFF3E0
{
background
:
#FFF3E0
;
}
.radius5
{
border-radius
:
5px
;
}
...
...
@@ -306,6 +310,73 @@
.shezhifrom
:hover
.shebox
{
display
:
block
;
}
.flexOne-form-bj
h3
{
font-size
:
18px
;
color
:
black
;
padding
:
0
0
20px
0
;
font-weight
:
400
;
}
.flexOne-type
{
display
:
flex
;
align-items
:
center
;
padding
:
0
0
20px
0
;
}
.flexOne-type
b
{
font-size
:
13px
;
width
:
100px
;
flex-shrink
:
0
;
}
.flexOne-type
div
{
display
:
flex
;
}
.flexOne-description
{
padding
:
15px
15px
;
border-radius
:
5px
;
background
:
#E1F5FE
;
margin-bottom
:
20px
;
}
.flexOne-description
b
{
font-size
:
14px
;
}
.flexOne-description
p
{
font-size
:
12px
;
color
:
#4C5759
;
padding
:
10px
0
0
0
;
}
.flexOne-infor-box
b
{
font-size
:
13px
;
}
.infor-list
{
display
:
flex
;
flex-direction
:
column
;
}
.list-title
{
padding
:
20px
0
;
border-bottom
:
1px
dashed
#eeeeee
;
color
:
#7E8299
;
font-size
:
13px
;
}
.list-title
,
.list-centent
{
display
:
flex
;
flex-wrap
:
wrap
;
margin-top
:
20px
;
}
.infor-list
li
{
width
:
25%
;
}
.list-centent
li
{
width
:
33.33%
;
}
.list-centent.active
li
{
width
:
25%
;
}
/
deep
/
.el-table
tr
td
:first-child
{
border-bottom
:
0
;
}
/
deep
/
.el-table
tr
td
{
border-bottom
:
1px
solid
#EBEEF5
;
}
</
style
>
<
template
>
...
...
@@ -319,9 +390,10 @@
<div>
<div
class=
"orderType cf fz12"
:class=
"
{ active: item.
OrderTyp
e == 1 }"
:class=
"
{ active: item.
MailingStat
e == 1 }"
>
{{
item
.
OrderType
==
1
?
"散拼订房"
:
"团队订房"
}}
<template
v-if=
"item.MailingState==1"
>
自行取件
</
template
>
<
template
v-if=
"item.MailingState>1"
>
邮寄票券
</
template
>
</div>
</div>
<div
class=
"c9e fz12"
>
...
...
@@ -339,10 +411,7 @@
</div>
</div>
<div
class=
"c9e fz12"
>
<span
v-if=
"item.OrderType == 1"
>
联系人信息:
{{
item
.
ContactName
}}
/
{{
item
.
ContactNumber
}}
</span
>
<span
v-else
>
组团号:
{{
item
.
TCNum
}}
</span>
<span>
客人信息:{{ item.Name }}({{ item.EName }})/{{ item.Mobile }}
</span>
</div>
<div
class=
"row c9e fz12"
>
<span>
销售:
</span>
...
...
@@ -384,72 +453,24 @@
<div
class=
"mb"
>
<el-table
:data=
"item.DetailList"
style=
"width:100%"
border
>
<el-table-column
label=
"
入住日期
"
label=
"
景区名称(日期)
"
min-width=
"100"
style=
"background:#EAEAEA"
>
<template
slot-scope=
"scope"
>
{{
scope
.
row
.
Date
}}
</
template
>
</el-table-column>
<el-table-column
label=
"酒店名称"
style=
"background:#EAEAEA"
>
<
template
slot-scope=
"scope"
>
{{
scope
.
row
.
HotelName
}}
</
template
>
</el-table-column>
<el-table-column
min-width=
"240"
>
<
template
slot=
"header"
slot-scope=
"scope"
>
<span>
入驻信息
</span>
<el-tooltip
class=
"item"
effect=
"dark"
content=
"按照入住人数*房型单价=房型总价小计(不含稅)"
placement=
"bottom"
>
<i
class=
"el-icon-question c059FF6 cursor-pointer"
></i>
</el-tooltip>
</
template
>
<
template
slot-scope=
"scope"
>
<div
class=
"RoomList"
>
<div
class=
"fz12 c9e"
v-for=
"(x, i) in scope.row.RoomList"
>
<span
class=
"mr"
>
{{
x
.
RoomTypeName
}}
:
{{
x
.
Number
}}
人间
</span
>
<span
class=
"ml mr"
>
人数:
{{
x
.
PeopleNumber
}}
人
</span>
<span
class=
"ml mr"
>
单价:
{{
x
.
Unit_Price
}}
</span>
<span
class=
"ml"
>
小计:
{{
x
.
Money
}}
{{
scope
.
row
.
CurrencyName
}}
</span
>
</div>
</div>
</
template
>
</el-table-column>
<el-table-column
label=
"订房号"
min-width=
"100"
>
<
template
slot-scope=
"scope"
>
<span
v-if=
"!scope.row.ReserveRoomNo"
class=
"radius5 bgFAEAED cF1416C px5 fz12"
>
未确认
</span
>
<template
v-else
>
<span
class=
"radius5 bgE8F5E9 c20C997 px5 fz12"
>
{{
scope
.
row
.
ReserveRoomNo
}}
</span>
<
template
slot-scope=
"scope"
v-if=
"scope.$index==0"
:row=
"item.DetailList.length"
>
<template>
<div>
{{
item
.
CouponsName
}}
<span
style=
"color: gray;"
>
{{
item
.
UseDate
}}
</span></div>
</
template
>
</template>
</el-table-column>
<el-table-column
label=
"城市税"
min-width=
"60
"
>
<el-table-column
label=
"票券名称"
style=
"background:#EAEAEA
"
>
<
template
slot-scope=
"scope"
>
{{
scope
.
row
.
Tax
>
0
?
scope
.
row
.
Tax
.
toFixed
(
2
)
:
"-"
}}
{{
scope
.
row
.
TicketName
}}
</
template
>
</el-table-column>
<el-table-column
label=
"入汤税"
min-width=
"60"
style=
"background:#EAEAEA"
>
<el-table-column
label=
"数量"
style=
"background:#EAEAEA"
>
<
template
slot-scope=
"scope"
>
{{
scope
.
row
.
Tax2
>
0
?
scope
.
row
.
Tax2
.
toFixed
(
2
)
:
"-"
}}
{{
scope
.
row
.
Num
}}
</
template
>
</el-table-column>
<el-table-column
...
...
@@ -458,25 +479,7 @@
style=
"background:#EAEAEA"
>
<
template
slot-scope=
"scope"
>
{{
scope
.
row
.
HotelMoeny
.
toFixed
(
2
)
}}
</
template
>
</el-table-column>
<el-table-column
label=
"付款方式"
min-width=
"80"
style=
"background:#EAEAEA"
>
<
template
slot-scope=
"scope"
>
{{
scope
.
row
.
CustomerPayType
==
1
?
"到店自付"
:
"出发前付款"
}}
</
template
>
</el-table-column>
<el-table-column
label=
"手配費"
min-width=
"80"
style=
"background:#EAEAEA"
>
<
template
slot-scope=
"scope"
>
{{
item
.
HandFittingFee
?
item
.
HandFittingFee
:
"-"
}}
{{
scope
.
row
.
Money
.
toFixed
(
2
)
}}
</
template
>
</el-table-column>
<
template
v-slot:append
v-if=
"item.Remark"
>
...
...
@@ -484,7 +487,7 @@
</
template
>
</el-table>
</div>
<el-table
:data=
"item.list"
style=
"width:100%"
border
v-if=
"item.OrderStatus!=3"
>
<
!-- <
el-table :data="item.list" style="width:100%" border v-if="item.OrderStatus!=3">
<el-table-column label="实收" min-width="100">
<template slot-scope="scope">
<span>{{ scope.row.Income ? scope.row.Income : "-" }}</span>
...
...
@@ -507,70 +510,30 @@
<span>{{ scope.row.Refund ? scope.row.Refund : "-" }}</span>
</template>
</el-table-column>
<el-table-column
label=
"手配费应收"
min-width=
"100"
>
<
template
slot-scope=
"scope"
>
<span>
{{
scope
.
row
.
HandFittingIncome
?
scope
.
row
.
HandFittingIncome
:
"-"
}}
</span>
</el-table> -->
<div
class=
"row justify-sb mt mb20"
>
<div
class=
"column px15 bjFFF3E0 radius5 flex-g pa relative"
>
<div
class=
"fz12 row justify-sb"
>
<span>
{{item.MailingState>1?'收货地址:':'自取地址:'}}
</span>
<div
:class=
"{'cF1416C':item.MailingState==2,'c02C854':item.MailingState==3}"
>
<
template
v-if=
"item.MailingState==2"
>
等待配送
</
template
>
</el-table-column>
<el-table-column
label=
"手配费平台税金"
min-width=
"100"
>
<
template
slot-scope=
"scope"
>
<span>
{{
scope
.
row
.
HandFittingTax
?
scope
.
row
.
HandFittingTax
:
"-"
}}
</span>
<
template
v-if=
"item.MailingState==3"
>
已配送
</
template
>
</el-table-column>
</el-table>
<div
class=
"row justify-sb mt mb20"
v-if=
"item.OrderStatus!=3"
>
<div
class=
"row pt20"
style=
"margin-right: 10px;"
v-if=
"item.GuestFileList.length > 0||((item.CustomerPayType==1 || item.CustomerPayType==3)&&pagesTitle)"
>
<!-- <i class="el-icon-warning cF57A98 fz15 mr"></i> -->
<div
class=
"column"
>
<!-- <div class="wrap fz12 c9e" v-if="x.CustomerPayType == 2 || x.CustomerPayType == 3">
出发前收款酒店,请您于
<span class="cff9800">{{item.PaymentDate}}</span>
前支付定金,并且于
<span class="cF1416C">{{item.FinalPaymentDate}}</span>
日前支付尾款
</div> -->
<
template
v-if=
"item.GuestFileList.length > 0"
>
<div
class=
"wrap fz12 c9e"
>
旅客名单
</div>
<div
class=
"row fz12 see-rec mt"
>
<div
class=
"text-accent q-mr-md c"
>
{{
item
.
GuestFileList
[
0
].
split
(
"/"
).
at
(
-
1
)
}}
</div>
<div
class=
"cursor-pointer ml mr rec cf"
>
<a
class=
"cf"
style=
"text-decoration:none"
:href=
"item.GuestFileList[0]"
>
下载
</a
>
</div>
<!--
<div
class=
"cursor-pointer see c04C8C8"
>
查看支付方式
</div>
<div
class=
"cursor-pointer ml rec cf"
>
提交付费凭证
</div>
-->
</div>
<div
class=
"row wrap orderNo fz12 py c9e"
>
<
template
v-if=
"item.MailingState==2||item.MailingState==3"
>
{{
item
.
MailingAddress
}}
</
template
>
<
template
v-if=
"(item.CustomerPayType==1 || item.CustomerPayType==3)&&pagesTitle"
>
<div
class=
"fz12 mt c9e"
>
到店自付酒店,需要您于
<span
class=
"cff9800"
>
{{
item
.
UploadGuestDate
}}
</span>
</div>
<div
class=
"row fz12 see-rec mt"
>
<el-upload
ref=
"my-upload"
:http-request=
"uploadFileBtn"
v-loading=
"loading"
:multiple=
"true"
:show-file-list=
"false"
action=
""
>
<div
:class=
"
{'cursor-pointer seeLK c059FF6':!loading,
'cursor-pointer see c04C8C8':loading}"
@click="uploadOrderId=item.OrderId">上车旅客名单
</div>
</el-upload>
</div>
<
template
v-else
>
{{
item
.
SelffetchAddress
?
item
.
SelffetchAddress
:
'等待客服确认后,才能看到自取地址,我们将会第一时间通过邮件告知您'
}}
</
template
>
</div>
</div>
<div
class=
"column px15 bgf5 radius5 flex-g pa relative"
>
<div
class=
"column px15 bgf5 radius5
ml
flex-g pa relative"
>
<div
class=
"fz12"
>
收款单据
</div>
<div
class=
"row wrap orderNo fz12 py c3FC4FF"
>
<span
...
...
@@ -648,75 +611,19 @@
></i>
</el-tooltip>
</div>
<div
class=
"column px15 bgf5 radius5 ml flex-g pa relative"
>
<div
class=
"fz12"
>
手配费单据
</div>
<div
class=
"row wrap orderNo fz12 py c3FC4FF"
>
<span
class=
"cursor-pointer radius5 bgD9F3FF mr px5"
v-for=
"(x, i) in item.HandFittingFinanceList"
@
click=
"openDetails(x)"
>
{{ x.FrID }}
</span
>
<span
v-if=
"item.HandFittingFinanceList.length == 0"
class=
"c9e fz12"
>
暂无手配费单据
</span>
</div>
<el-tooltip
v-if=
"item.OrderStatus == 2&&pagesTitle!='销售'"
class=
"item"
effect=
"dark"
content=
"制单"
placement=
"top"
>
<i
class=
"absolute right20 bottom20 el-icon-circle-plus cursor-pointer c059FF6"
@
click=
"makeAdocument(item, index, 1, 'Hand')"
></i>
</el-tooltip>
</div>
<div
class=
"column justify-c px15 bgf5 radius5 ml flex-g pa20"
>
<div
class=
"row-c justify-sb
borderD
pb5"
>
<div
class=
"row-c justify-sb pb5"
>
<span
class=
"fz12 c9e"
>
订单总金额
</span>
<div
class=
"ml"
>
<span
class=
"fz12 ml"
>
<!-- ¥ -->
円
</span>
<span
class=
"fz15 fbold"
>
{{ item.Money.toFixed(2) }}
</span>
<!-- <span class="fz15">{{ item.CurrencyName }}</span> -->
</div>
</div>
<div
class=
"row-c justify-sb borderD py5"
v-if=
"(item.CustomerPayType == 1 || item.CustomerPayType == 3)&&pagesTitle!='销售'"
>
<span
class=
"fz12 c9e"
>
到店自付
</span>
<div
class=
"ml"
>
<span
class=
"fz10 ml"
>
<!-- ¥ -->
円
</span>
<span
class=
"fz14"
>
{{ item.SelfPayMoney.toFixed(2) }}
</span>
<!-- <span class="fz14">{{ item.CurrencyName }}</span> -->
</div>
</div>
<div
class=
"row-c justify-sb py5"
v-if=
"item.CustomerPayType == 2 || item.CustomerPayType == 3"
>
<span
class=
"fz12 c9e"
>
出发前付款
</span>
<div
class=
"ml"
>
<span
class=
"fz10 ml"
>
<!-- ¥ -->
円
</span>
<span
class=
"fz14"
>
{{ item.BeforeMoney.toFixed(2) }}
</span>
<!-- <span class="fz14">{{ item.CurrencyName }}</span> -->
</div>
</div>
</div>
<div
v-if=
"item.OrderStatus >
3 || item.OrderStatus < 3
"
v-if=
"item.OrderStatus >
0 && item.OrderStatus < 4
"
class=
"column justify-c px15 bgE8F5E9 radius5 ml fz12 orderop pa20 flex-s"
>
<div
...
...
@@ -724,8 +631,7 @@
item.OrderStatus == 1 &&
item.IncomeList.length == 0 &&
item.RefundList.length == 0 &&
item.CostList.length == 0 &&
item.HandFittingFinanceList.length == 0
item.CostList.length == 0
"
class=
"row-c cursor-pointer radius5 cancel py5"
@
click=
"clickRightButtom(item, 0)"
...
...
@@ -742,40 +648,44 @@
<span
class=
"c20C997"
>
确认订单
</span>
</div>
<div
v-if=
"item.OrderStatus == 2&&item.MailingState == 2&&pagesTitle!='销售'"
class=
"row-c cursor-pointer radius5 cancel py5"
@
click=
"clickRightButtom(item, 2)"
>
<i
v-loading=
"loading1"
></i>
<span
class=
"cF1416C"
>
邮寄
</span>
</div>
<div
v-if=
"item.OrderStatus == 2&&item.MailingState == 1&&pagesTitle!='销售'"
class=
"row-c cursor-pointer radius5 cancel py5"
@
click=
"clickRightButtom(item, 3)"
>
<i
v-loading=
"loading1"
></i>
<span
class=
"cF1416C"
>
设置自提地址
</span>
</div>
<!-- <div
v-if="item.OrderStatus == 2 || item.OrderStatus == 4"
class="row-c cursor-pointer radius5 change py5"
@click="goRoomDetails(item, '订房详情')"
>
<span class="c059FF6">明细/编辑</span>
</div>
</div>
-->
<div
v-if=
"item.OrderStatus == 1&&pagesTitle=='销售'"
class=
"row-c cursor-pointer radius5 change py5"
@
click=
"goRoomDetails(item, '
酒店
预定变更')"
@
click=
"goRoomDetails(item, '
门票
预定变更')"
>
<span
class=
"c059FF6"
>
订单变更
</span>
</div>
<div
v-if=
"item.OrderStatus
== 2
"
v-if=
"item.OrderStatus
> 1
"
class=
"row-c cursor-pointer radius5 change1 py5"
@
click=
"clickRightButtom(item,
2
)"
@
click=
"clickRightButtom(item,
4
)"
>
<i
v-loading=
"loading2"
></i>
<span
class=
"c20C997"
>
收损
</span>
</div>
</div>
<!-- <div v-if="item.OrderStatus==2" class="column-jac px15 bgE8F5E9 radius5 ml fz12 pa20 flex-s c20C997">
<div class="mb5">已支付</div>
<div>
<span class="fbold fz14">{{item.Income}}</span>
<span>{{item.CurrencyName}}</span>
</div>
<div v-if="item.OrderStatus==2" class="orderop">
<div class="row-c cursor-pointer radius5 change mt mb" @click="goRoomDetails(item,'订房详情')">
<span class="c059FF6">明细/编辑</span>
</div>
</div>
</div> -->
</div>
<div
class=
"mt mb20 bgf5 pa15 row-c"
v-if=
"item.CancelRemark"
>
<div
style=
"font-size:16px;font-weight:bold;font-family: pingfangR;"
>
取消理由:
</div>
...
...
@@ -788,7 +698,7 @@
<el-dialog
custom-class=
"w400"
title=
"修改收损金额
"
:title=
"typeState==3?'设置自提地址':'设置收损金额'
"
:visible
.
sync=
"outerVisible"
>
<div
...
...
@@ -797,7 +707,19 @@
>
<el-form
label-width=
"80px"
:model=
"msg"
:rules=
"rules"
ref=
"msg"
>
<el-row
:gutter=
"20"
>
<el-col
:span=
"20"
>
<!-- <el-col :span="20">
<el-form-item label="订单状态" prop="State">
<el-select v-model="msg.State" class="w110 HworkInput">
<el-option v-for="item in OrderStatusType" :key="item.ID" :label="item.Name" :value="item.ID"></el-option>
</el-select>
</el-form-item>
</el-col> -->
<el-col
:span=
"20"
v-if=
"typeState==3"
>
<el-form-item
label=
"自提地址"
prop=
"SelffetchAddress"
>
<el-input
class=
"w200"
v-model=
"msg.SelffetchAddress"
></el-input>
</el-form-item>
</el-col>
<el-col
:span=
"20"
v-if=
"typeState==4"
>
<el-form-item
label=
"收损金额"
prop=
"LossMoney"
>
<el-input-number
class=
"w200"
...
...
@@ -859,6 +781,93 @@
</el-row>
</div>
</el-dialog>
<!-- 变更订单 -->
<el-dialog
custom-class=
"w800"
title=
"变更订单"
:visible
.
sync=
"ChangeOrderDialog"
>
<div
style=
"padding-bottom:20px"
>
<div
class=
"flexOne-form-bj"
>
<h3>
取票方式
</h3>
<div
class=
"flexOne-type"
>
<b>
取票方式:
</b>
<div>
<el-radio
v-model=
"msgParameter.MailingState"
label=
"1"
>
自行取票
</el-radio>
<el-radio
v-model=
"msgParameter.MailingState"
label=
"2"
>
邮寄票券
</el-radio>
</div>
</div>
<div
class=
"flexOne-description"
>
<b>
自行取票说明
</b>
<p>
自行前往指定位置取票,當您完成付款後我們將通過郵件通知您取票的門票訊息
</p>
</div>
<div
class=
"flexOne-infor-box"
>
<b>
客人讯息 邮寄讯息
</b>
<el-form
label-width=
"80px"
:model=
"msgParameter"
:rules=
"rules2"
ref=
"msgParameter"
>
<div
class=
"infor-list"
>
<!-- <div class="list-title">
<li>中文姓名</li>
<li>英文姓名</li>
<li>性别</li>
<li>联络电话</li>
<li>收件地址</li>
</div> -->
</span>
<div
class=
"list-centent"
:class=
"{'active':msg.MailingState==1}"
>
<li>
<el-form-item
label=
"中文名"
prop=
"Name"
>
<el-input
v-model=
"msgParameter.Name"
placeholder=
"请输入名称"
/>
</el-form-item>
</li>
<li>
<el-form-item
label=
"英文名"
prop=
"EName"
>
<el-input
v-model=
"msgParameter.EName"
placeholder=
"请输入英文名"
/>
</el-form-item>
</li>
<li>
<el-form-item
label=
"电话"
prop=
"Mobile"
>
<el-input
type=
"Number"
v-model=
"msgParameter.Mobile"
placeholder=
"请输入电话"
/>
</el-form-item>
</li>
<li
v-if=
"msgParameter.MailingState==2"
>
<el-form-item
label=
"地址"
prop=
"MailingAddress"
>
<el-input
style=
"border-radius: 3px;"
v-model=
"msgParameter.MailingAddress"
placeholder=
"请输入邮寄地址"
/>
</el-form-item>
</li>
<li
class=
"bottom"
>
<el-form-item
label=
"性别"
prop=
"Sex"
>
<el-radio
v-model=
"msgParameter.Sex"
label=
"1"
>
男
</el-radio>
<el-radio
v-model=
"msgParameter.Sex"
label=
"2"
>
女
</el-radio>
</el-form-item>
</li>
</div>
</div>
</el-form>
<div
style=
"margin-top: 20px;"
>
<el-input
style=
"width: 100%;"
type=
"textarea"
:autosize=
"{ minRows: 2, maxRows: 4}"
v-model=
"msgParameter.Remark"
placeholder=
"订单备注"
/>
</div>
</div>
</div>
<el-row
:gutter=
"20"
style=
"margin-top: 20px;"
>
<el-col
:span=
"24"
style=
"text-align: right;"
>
<input
type=
"button"
class=
"normalBtn"
value=
"取消"
@
click=
"ChangeOrderDialog=false"
/>
<input
type=
"button"
class=
"hollowFixedBtn"
value=
"确定"
@
click=
"submit2"
/>
</el-col>
</el-row>
</div>
</el-dialog>
<!-- <div class="shezhi column">
<el-input v-model="msg.LossMoney":placeholder="$t('pub.pleaseImport')"></el-input>
<div>
...
...
@@ -876,6 +885,7 @@
loading0
:
false
,
loading1
:
false
,
loading2
:
false
,
loading3
:
false
,
BillMakingMsg
:
{
// PeroidsId: null,
// Type: null,
...
...
@@ -887,10 +897,66 @@
userInfo
:
{},
msg
:
{
OrderId
:
""
,
LossMoney
:
0
LossMoney
:
0
,
State
:
''
,
//状态 1确认 2已邮寄 3设置自提 4收损
SelffetchAddress
:
''
},
msgParameter
:
{
IsUpdateMailing
:
1
,
OrderId
:
0
,
Money
:
0.0
,
Remark
:
''
,
MailingState
:
'1'
,
//邮寄状态 1自取 2邮寄
MailingAddress
:
''
,
//MailingState =2 填写邮寄
UseDate
:
''
,
//门票日期
Name
:
''
,
EName
:
''
,
Sex
:
'1'
,
//1男2女
Birthday
:
''
,
Mobile
:
''
,
CouponsId
:
''
,
//景点id
DetailList
:[],
},
rules2
:{
Name
:
[{
required
:
true
,
message
:
'请输入中文名'
,
trigger
:
'blur'
}],
EName
:
[{
required
:
true
,
message
:
'请输入英文名'
,
trigger
:
'blur'
}],
Mobile
:
[
{
required
:
true
,
message
:
"请输入联系电话"
,
trigger
:
"blur"
},
{
pattern
:
this
.
$commonUtils
.
Regex
.
el_ISphone
,
message
:
"请输入正确的电话"
}
],
MailingAddress
:
[{
required
:
true
,
message
:
'请输入邮寄地址'
,
trigger
:
'blur'
}],
},
outerVisible
:
false
,
rules
:
{
State
:
[
{
required
:
true
,
message
:
"请选择订单状态"
,
trigger
:
"change"
}
],
SelffetchAddress
:
[
{
required
:
true
,
message
:
"请输入自提地址"
,
trigger
:
"blur"
}
],
LossMoney
:
[
{
required
:
true
,
...
...
@@ -905,7 +971,17 @@
uploadOrderId
:
0
,
loading
:
false
,
fileList
:[],
GuestFile
:
''
GuestFile
:
''
,
ChangeOrderDialog
:
false
,
types
:
[],
OrderStatusType
:[
{
Name
:
this
.
$t
(
'OrderList.orderStatus.apply'
),
ID
:
'1'
},
{
Name
:
this
.
$t
(
'OrderList.orderStatus.check'
),
ID
:
'2'
},
{
Name
:
this
.
$t
(
'OrderList.orderStatus.cancel'
),
ID
:
'3'
},
{
Name
:
this
.
$t
(
'OrderList.orderStatus.sun'
),
ID
:
'4'
},
],
items
:
null
,
typeState
:
''
};
},
watch
:
{
...
...
@@ -919,6 +995,66 @@
}
},
methods
:
{
submit2
(){
if
(
this
.
loading3
)
return
this
.
$refs
[
'msgParameter'
].
validate
((
valid
)
=>
{
if
(
valid
)
{
this
.
setFormMsg2
()
}
else
{
return
false
;
}
});
},
setFormMsg2
(){
if
(
this
.
msgParameter
.
MailingState
==
'1'
){
this
.
msgParameter
.
MailingAddress
=
''
}
this
.
msgParameter
.
DetailList
=
[]
this
.
types
.
forEach
(
x
=>
{
let
y
=
{
TicketType
:
x
.
TicketCouponsType
,
TicketName
:
x
.
TicketName
,
Unit_Price
:
x
.
B2BPrice
,
Num
:
x
.
num
,
Money
:
x
.
B2BPrice
*
x
.
num
,
TicketId
:
x
.
TicketID
}
this
.
msgParameter
.
DetailList
.
push
(
y
)
})
let
m
=
{
IsUpdateMailing
:
1
,
OrderId
:
this
.
msgParameter
.
OrderId
,
CouponsId
:
this
.
msgParameter
.
CouponsId
,
Money
:
this
.
msgParameter
.
Money
,
UseDate
:
this
.
msgParameter
.
UseDate
,
Birthday
:
this
.
msgParameter
.
Birthday
,
DetailList
:
this
.
msgParameter
.
DetailList
,
MailingState
:
this
.
msgParameter
.
MailingState
,
//邮寄状态 1自取 2邮寄
MailingAddress
:
this
.
msgParameter
.
MailingAddress
,
//MailingState =2 填写邮寄
Name
:
this
.
msgParameter
.
Name
,
EName
:
this
.
msgParameter
.
EName
,
Sex
:
this
.
msgParameter
.
Sex
,
//1男2女
Mobile
:
this
.
msgParameter
.
Mobile
,
Remark
:
this
.
msgParameter
.
Remark
,
}
this
.
loading3
=
true
this
.
apipost
(
"ticket_post_SetSaleTicketOrder"
,
m
,
res
=>
{
this
.
loading3
=
false
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
Success
(
'变更成功'
);
this
.
$emit
(
'success'
)
this
.
ChangeOrderDialog
=
false
}
else
{
this
.
Error
(
'下单失败'
)
}
},
err
=>
{
this
.
loading3
=
false
this
.
Error
(
err
.
message
)
});
},
uploadFileBtn
(
file
){
let
ft
=
file
.
file
.
name
.
substring
(
file
.
file
.
name
.
lastIndexOf
(
'.'
)
+
1
,
file
.
file
.
name
.
length
).
toUpperCase
();
let
typeOk
=
false
;
...
...
@@ -975,7 +1111,7 @@
if
(
name
==
"Hand"
)
{
this
.
BillMakingMsg
.
OtherType
=
62
;
}
else
{
this
.
BillMakingMsg
.
OtherType
=
6
1
;
this
.
BillMakingMsg
.
OtherType
=
6
6
;
}
let
text
=
""
;
let
query
=
{};
...
...
@@ -1013,40 +1149,42 @@
tab
:
title
}
});
}
else
{
//变更酒店预定
path
=
"singleProductModifyHotelOrder"
;
this
.
$router
.
push
({
name
:
path
,
query
:
{
id
:
obj
.
OrderId
,
pagesTitle
:
this
.
pagesTitle
,
blank
:
"y"
,
tab
:
title
}
});
}
else
{
//变更门票预定
this
.
msgParameter
=
JSON
.
parse
(
JSON
.
stringify
(
obj
))
this
.
msgParameter
.
MailingState
=
JSON
.
stringify
(
this
.
msgParameter
.
MailingState
)
this
.
msgParameter
.
Sex
=
JSON
.
stringify
(
this
.
msgParameter
.
Sex
)
this
.
types
=
JSON
.
parse
(
JSON
.
stringify
(
obj
.
DetailList
))
this
.
ChangeOrderDialog
=
true
}
},
clickRightButtom
(
item
,
type
)
{
// 0取消订单 1确认订单
// 0取消订单 1确认订单 2已邮寄 3设置自提地址 4收损
this
.
msg
.
OrderId
=
item
.
OrderId
;
this
.
items
=
item
this
.
typeState
=
type
if
(
type
==
0
)
{
if
(
!
this
.
loading0
)
{
this
.
cancelOrderId
=
item
.
OrderId
// 地接 销售 OP
if
(
this
.
pagesTitle
!=
'销售'
){
// 销售 OP
this
.
cancelOrderDialog
=
true
;
}
else
{
this
.
cancelOrder
()
}
}
}
else
if
(
type
==
1
)
{
if
(
!
this
.
loading1
)
{
this
.
confirmFun
(
item
);
this
.
confirmFun
(
item
,
type
);
}
}
else
if
(
type
==
2
)
{
if
(
!
this
.
loading1
)
{
this
.
confirmFun
(
item
,
type
);
}
}
else
if
(
type
==
3
)
{
if
(
!
this
.
loading1
)
{
this
.
outerVisible
=
true
;
// this.confirmFun(item, type);
}
}
else
if
(
type
==
4
)
{
if
(
!
this
.
loading2
)
{
this
.
outerVisible
=
true
;
this
.
msg
.
OrderId
=
item
.
OrderId
;
//
this.msg.OrderId = item.OrderId;
this
.
msg
.
LossMoney
=
item
.
LossMoney
?
item
.
LossMoney
:
0
;
}
}
...
...
@@ -1061,8 +1199,10 @@
type
:
'warning'
}).
then
(()
=>
{
this
.
loading0
=
true
this
.
apipost
(
"dict_post_CancelSaleCustomerOrder"
,
{
OrderId
:
this
.
cancelOrderId
this
.
apipost
(
"ticket_post_CancelSaleTicketOrder"
,
{
OrderId
:
this
.
cancelOrderId
,
IsOPCancel
:
this
.
pagesTitle
!=
'销售'
?
1
:
0
,
Remark
:
this
.
cancelRemark
},
res
=>
{
this
.
loading0
=
false
...
...
@@ -1102,10 +1242,11 @@
if
(
this
.
loading0
)
return
;
this
.
loading0
=
true
this
.
apipost
(
"
dict_post_CancelAdminCustomer
Order"
,
"
ticket_post_CancelSaleTicket
Order"
,
{
OrderId
:
this
.
cancelOrderId
,
CancelRemark
:
this
.
cancelRemark
IsOPCancel
:
this
.
pagesTitle
!=
'销售'
?
1
:
0
,
Remark
:
this
.
cancelRemark
},
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
...
...
@@ -1127,7 +1268,14 @@
},
saveUpdate
()
{
this
.
$confirm
(
"是否确认设置收损?"
,
"提示"
,
{
let
text
if
(
this
.
typeState
==
3
){
text
=
'是否确认设置自取地址?'
}
if
(
this
.
typeState
==
4
){
text
=
'是否确认设置收损?'
}
this
.
$confirm
(
text
,
"提示"
,
{
confirmButtonText
:
"确定"
,
cancelButtonText
:
"取消"
,
type
:
"warning"
...
...
@@ -1135,8 +1283,13 @@
.
then
(()
=>
{
this
.
loading2
=
true
;
this
.
apipost
(
"dict_post_SetCustomerOrderLoss"
,
this
.
msg
,
"ticket_post_SetSaleTicketOrderState"
,
{
OrderId
:
this
.
msg
.
OrderId
,
State
:
this
.
typeState
,
SelffetchAddress
:
this
.
typeState
==
3
?
this
.
msg
.
SelffetchAddress
:
''
,
LossMoney
:
this
.
typeState
==
4
?
this
.
msg
.
LossMoney
:
''
,
},
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
Success
(
res
.
data
.
message
);
...
...
@@ -1154,8 +1307,15 @@
})
.
catch
(()
=>
{});
},
confirmFun
(
item
)
{
this
.
$confirm
(
"是否确认订单?"
,
"提示"
,
{
confirmFun
(
item
,
type
)
{
let
text
if
(
type
==
1
){
text
=
'是否确认订单?'
}
if
(
type
==
2
){
text
=
'是否确认邮寄?'
}
this
.
$confirm
(
text
,
"提示"
,
{
confirmButtonText
:
"确定"
,
cancelButtonText
:
"取消"
,
type
:
"warning"
...
...
@@ -1163,9 +1323,12 @@
.
then
(()
=>
{
this
.
loading1
=
true
;
this
.
apipost
(
"
dict_post_ConfirmAdminCustomerOrder
"
,
"
ticket_post_SetSaleTicketOrderState
"
,
{
OrderId
:
item
.
OrderId
OrderId
:
item
.
OrderId
,
State
:
type
,
SelffetchAddress
:
type
==
3
?
this
.
msg
.
SelffetchAddress
:
''
,
LossMoney
:
type
==
4
?
this
.
msg
.
LossMoney
:
''
,
},
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
...
...
src/components/scenicSpot/reservation/ReservationOrder.vue
View file @
48c0abf6
...
...
@@ -43,25 +43,39 @@
</li>
<li>
<span><em>
{{
$t
(
'OrderList.search.orderNum'
)
}}
</em>
<el-input
type=
"Number"
v-model=
"msg.OrderNo"
:placeholder=
"$t('OrderList.search.orderNum')"
class=
"w200"
/>
<el-input
clearable
type=
"Number"
v-model=
"msg.OrderNo"
:placeholder=
"$t('OrderList.search.orderNum')"
class=
"w200"
/>
</span>
</li>
<li>
<span><em>
订单ID
</em>
<el-input
type=
"Number"
v-model=
"msg.OrderId"
placeholder=
"订单ID"
class=
"w200"
/>
<el-input
clearable
type=
"Number"
v-model=
"msg.OrderId"
placeholder=
"订单ID"
class=
"w200"
/>
</span>
</li>
<li>
<span><em>
客人名称
</em>
<el-input
clearable
v-model=
"msg.Name"
placeholder=
"客人名称"
class=
"w200"
/>
</span>
</li>
<li>
<span><em>
景区名称
</em>
<el-input
clearable
v-model=
"msg.CouponsName"
placeholder=
"景区名称"
class=
"w200"
/>
</span>
</li>
<li>
<span><em>
电话
</em>
<el-input
clearable
v-model=
"msg.ContactNumber"
placeholder=
"电话"
class=
"w200"
/>
</span>
</li>
<!--
<li>
<span>
<em>
{{
$t
(
'hotel.hotel'
)
}}
</em>
<!-- multiple_input w300 multiple collapse-tags-->
<el-select
v-model=
"msg.HotelId"
:placeholder=
"$t('pub.pleaseSel')"
style=
"height: 34px;"
filterable
>
<el-option
:key=
"0"
:value=
"0"
:label=
"$t('OrderList.search.allHotel')"
></el-option>
<el-option
v-for=
"item in HotelList"
:key=
"item.ID"
:label=
"item.Name"
:value=
"item.ID"
></el-option>
</el-select>
</span>
</li>
</li>
-->
<li>
<span>
<em>
{{
$t
(
'OrderList.search.daterange'
)
}}
</em>
...
...
@@ -76,32 +90,31 @@
</el-date-picker>
</span>
</li>
<!--
<li>
<span><em>
{{
$t
(
'OrderList.search.orderId'
)
}}
</em>
<el-input
type=
"Number"
v-model=
"msg.orderId"
:placeholder=
"$t('OrderList.search.orderId')"
class=
"w200"
/>
</span>
</li>
-->
<li>
<span>
<em>
{{
$t
(
'OrderList.search.roomType'
)
}}
</em>
<el-select
v-model=
"msg.RoomType"
:placeholder=
"$t('OrderList.rooms.roomType')"
class=
"w110 HworkInput"
>
<el-option
:key=
"0"
:value=
"0"
:label=
"$t('OrderList.rooms.default')"
></el-option>
<el-option
v-for=
"item in roomType"
:key=
"item.ID"
:label=
"item.Name"
:value=
"item.ID"
></el-option>
</el-select>
<em>
门票时间
</em>
<el-date-picker
style=
"height: 34px;"
value-format=
"yyyy-MM-dd"
v-model=
"DatelistUse"
type=
"daterange"
:range-separator=
"$t('OrderList.zhi')"
:start-placeholder=
"$t('OrderList.star')"
:end-placeholder=
"$t('OrderList.end')"
@
change=
"getDates"
>
</el-date-picker>
</span>
</li>
<
!--
<
li>
<li>
<span>
<em>
{{
$t
(
'OrderList.search.orderType'
)
}}
</em>
<el-select
v-model=
"msg.
orderType"
:placeholder=
"$t('OrderList.search.orderType')
"
class=
"w110 HworkInput"
>
<el-option
:key=
"
0"
:value=
"0"
:label=
"$t('OrderList.orderType.default')
"
></el-option>
<el-option
v-for=
"item in
order
Type"
:key=
"item.ID"
:label=
"item.Name"
:value=
"item.ID"
></el-option>
<em>
取券方式
</em>
<el-select
v-model=
"msg.
MailingState"
placeholder=
"取券方式
"
class=
"w110 HworkInput"
>
<el-option
:key=
"
-1"
:value=
"-1"
label=
"所有类型
"
></el-option>
<el-option
v-for=
"item in
MailingState
Type"
:key=
"item.ID"
:label=
"item.Name"
:value=
"item.ID"
></el-option>
</el-select>
</span>
</li>
-->
</li>
<li>
<input
type=
"button"
class=
"normalBtn"
:value=
"$t('pub.searchBtn')"
@
click=
"msg.pageIndex=1,currentPage=1,GetList()"
/>
<!--
<input
type=
"button"
class=
"normalBtn"
:value=
"$t('adm.adm_download')"
@
click=
"DownLoadHotelWork()"
/>
-->
</li>
</ul>
</div>
...
...
@@ -132,15 +145,17 @@
msg
:{
pageIndex
:
1
,
pageSize
:
5
,
HotelId
:
0
,
RoomType
:
0
,
Name
:
''
,
StartTime
:
''
,
//new Date().Format("yyyy-MM-dd")
EndTime
:
''
,
//this.setEdate()
UseSTime
:
''
,
UseETime
:
''
,
OrderStatus
:
0
,
OrderNo
:
''
,
OrderId
:
''
// RoomType: 0,
// orderType: 0
OrderId
:
''
,
MailingState
:
-
1
,
CouponsName
:
''
,
//景区名称
ContactNumber
:
''
,
//电话
},
total
:
0
,
currentPage
:
1
,
...
...
@@ -150,18 +165,16 @@
{
Name
:
this
.
$t
(
'OrderList.orderStatus.cancel'
),
ID
:
'3'
},
{
Name
:
this
.
$t
(
'OrderList.orderStatus.sun'
),
ID
:
'4'
},
],
roomType
:[
{
Name
:
this
.
$t
(
'OrderList.rooms.normal'
),
ID
:
'1'
},
{
Name
:
this
.
$t
(
'OrderList.rooms.big'
),
ID
:
'2'
},
{
Name
:
this
.
$t
(
'OrderList.rooms.sing'
),
ID
:
'3'
},
{
Name
:
this
.
$t
(
'OrderList.rooms.three'
),
ID
:
'4'
},
{
Name
:
this
.
$t
(
'OrderList.rooms.driver'
),
ID
:
'5'
},
MailingStateType
:[
{
Name
:
'自行取票'
,
ID
:
'1'
},
{
Name
:
'邮寄票券'
,
ID
:
'2'
},
],
orderType
:[
{
Name
:
this
.
$t
(
'OrderList.orderType.tour'
),
ID
:
'1'
},
{
Name
:
this
.
$t
(
'OrderList.orderType.guest'
),
ID
:
'2'
},
],
Datelist
:
''
Datelist
:
''
,
DatelistUse
:
''
,
};
},
watch
:
{
...
...
@@ -170,6 +183,14 @@
}
},
methods
:
{
getDatesUse
(){
console
.
log
(
this
.
Datelist
)
if
(
this
.
DatelistUse
[
0
]){
this
.
msg
.
UseSTime
=
this
.
DatelistUse
[
0
]
}
if
(
this
.
DatelistUse
[
1
]){
this
.
msg
.
UseETime
=
this
.
DatelistUse
[
1
]
}
},
getDates
(){
console
.
log
(
this
.
Datelist
)
if
(
this
.
Datelist
[
0
]){
...
...
@@ -224,58 +245,26 @@
},
//获取酒店订单列表
GetList
()
{
// if(this.msg.StartTime==''){
// this.msg.StartTime = this.getyMDOne()
// }
// if(this.msg.EndTime==''){
// this.msg.EndTime = this.getyMDTwo()
// }
this
.
loading
=
true
let
url
// 销售 OP
if
(
this
.
pagesTitle
==
'销售'
){
url
=
"
dict_post_GetMySaleCustomer
OrderPageList"
url
=
"
ticket_post_GetMySaleTicket
OrderPageList"
}
else
{
url
=
"
dict_post_GetAdminCustomer
OrderPageList"
url
=
"
ticket_post_GetAdminTicket
OrderPageList"
}
this
.
apipost
(
url
,
this
.
msg
,
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
let
data
=
res
.
data
.
data
.
pageData
let
addList
=
function
(
arr
){
arr
.
forEach
(
x
=>
{
x
.
list
=
[]
// x.Tax = 0
// x.Tax2 = 0
})
}
addList
(
data
)
data
.
forEach
(
item
=>
{
item
.
DetailList
.
forEach
(
x
=>
{
x
.
Number
=
0
x
.
PeopleNumber
=
0
x
.
RoomList
.
forEach
(
r
=>
{
x
.
Number
+=
r
.
Number
x
.
PeopleNumber
+=
r
.
PeopleNumber
})
x
.
Tax
=
x
.
TaxesPrice
*
x
.
Number
x
.
Tax2
=
x
.
PriceInTangTax
*
x
.
PeopleNumber
x
.
Money
=
x
.
HotelMoeny
+
x
.
TaxesPrice
data
.
forEach
((
x
)
=>
{
x
.
Money
=
0
x
.
DetailList
.
forEach
((
y
)
=>
{
x
.
Money
+=
y
.
Money
})
})
this
.
OrderList
=
data
;
this
.
OrderList
.
forEach
(
item
=>
{
let
datas
=
{
Income
:
item
.
Income
,
CostMoney
:
item
.
CostMoney
,
PlatformTax
:
item
.
PlatformTax
,
Refund
:
item
.
Refund
,
HandFittingIncome
:
item
.
HandFittingIncome
,
HandFittingTax
:
item
.
HandFittingTax
}
item
.
list
.
push
(
datas
)
})
this
.
total
=
res
.
data
.
data
.
count
;
}
else
{
this
.
Error
(
res
.
data
.
message
);
...
...
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