Skip to content
Toggle navigation
Toggle navigation
This project
Loading...
Sign in
jijin
/
dance-pc
Go to a project
Toggle navigation
Toggle navigation pinning
Projects
Groups
Snippets
Help
Project
Activity
Repository
Pipelines
Graphs
Issues
0
Merge Requests
0
Wiki
Network
Create a new issue
Builds
Commits
Issue Boards
Files
Commits
Network
Compare
Branches
Tags
caa89a71
authored
2025-06-05 15:57:14 +0800
by
zhangmeng
Browse Files
Options
Browse Files
Tag
Download
Email Patches
Plain Diff
车辆
1 parent
08fc48dc
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
664 additions
and
201 deletions
src/apiPc/booking.js
src/routerPc/en.js
src/viewsPc/booking/car.vue
src/viewsPc/booking/carList.vue
src/viewsPc/booking/carOrder.vue
src/apiPc/booking.js
View file @
caa89a7
...
...
@@ -648,9 +648,9 @@ export function getTicketOrderInfo(params) {
})
}
export
function
get
GateListByLasId
(
params
)
{
export
function
get
VehicleByCheckIn
(
params
)
{
// activityId,category,checkIn
return
request
({
url
:
`/ota/
scenicConfig/getGateListByLasId
`
,
url
:
`/ota/
activityVehicle/getVehicleByCheckIn
`
,
method
:
'get'
,
params
})
...
...
@@ -670,3 +670,22 @@ export function checkPurchasedCustomers(data) {
data
})
}
// 接机
export
function
getVehicleMap
(
params
)
{
// activityId
return
request
({
url
:
`/ota/activityVehicle/getVehicleMap`
,
method
:
'get'
,
params
})
}
export
function
getVehicleMa1p
(
params
)
{
// activityId
return
request
({
url
:
`/ota/activityVehicle/getVehicleMap`
,
method
:
'get'
,
params
})
}
...
...
src/routerPc/en.js
View file @
caa89a7
...
...
@@ -404,6 +404,18 @@ export const constantRoutes = [
meta
:
{
title
:
'Hotel Reservation'
}
},
{
path
:
'car/:cptId'
,
component
:
()
=>
import
(
'@/viewsPc/booking/car'
),
name
:
'car'
,
meta
:
{
title
:
'Vehicle Reservation'
}
},
{
path
:
'carList/:cptId'
,
component
:
()
=>
import
(
'@/viewsPc/booking/carList'
),
name
:
'carList'
,
meta
:
{
title
:
'carList'
}
},
{
path
:
'car/:cptId/:id'
,
component
:
()
=>
import
(
'@/viewsPc/booking/carOrder'
),
name
:
'carOrder'
,
...
...
@@ -416,12 +428,6 @@ export const constantRoutes = [
meta
:
{
title
:
'Hotel Reservation'
}
},
{
path
:
'car/:cptId'
,
component
:
()
=>
import
(
'@/viewsPc/booking/car'
),
name
:
'car'
,
meta
:
{
title
:
'Vehicle Reservation'
}
},
{
path
:
'dinner/:cptId'
,
component
:
()
=>
import
(
'@/viewsPc/booking/dinner'
),
name
:
'dinner'
,
...
...
src/viewsPc/booking/car.vue
View file @
caa89a7
...
...
@@ -4,64 +4,178 @@
<img
v-if=
"language==0"
src=
"@/assets/booking/cl_text_c.png"
>
<img
v-else
src=
"@/assets/booking/cl_text_e.png"
>
</div>
<br>
<br>
<br>
<div
class=
"box"
>
<div
class=
"searchBar"
>
<el-input
v-model=
"query.name"
:placeholder=
"language==0?'请输入关键字搜索':'Search'"
class=
"no-border"
>
</el-input>
<el-button
class=
"btn-lineG"
icon=
"search"
size=
"large"
type=
"primary"
@
click=
"getList"
>
{{
language
==
0
?
'搜索'
:
'Search'
}}
</el-button>
</div>
</div>
<div
v-loading=
"loading"
class=
"box"
>
<div
v-for=
"(h,index) in list"
:key=
"index"
class=
"routeItem"
>
<el-row
:gutter=
"20"
align=
"middle"
class=
"w100"
>
<el-col
:lg=
"2"
:sm=
"6"
>
<div
class=
"index"
>
{{
language
==
0
?
'路线'
:
'Route'
}}{{
index
+
1
}}
<el-row
:gutter=
"180"
>
<el-col
:span=
"12"
>
<el-card>
<h2
class=
"text-center gradient-text"
>
{{
language
==
0
?
'接机'
:
"airport pickup"
}}
</h2>
<div
v-if=
"language==0"
>
<el-form
ref=
"formRef1"
:model=
"form1"
:rules=
"rules"
class=
"form"
label-width=
"100px"
size=
"large"
>
<el-form-item
:label=
"language==0?'出发地':'place of departure'"
prop=
"checkIn"
>
<el-select
v-model=
"form1.checkIn"
:placeholder=
"language==0?'请选择':'please select'"
@
change=
"changeSelectIn"
>
<el-option
v-for=
"val in cardData.in"
:key=
"val"
:label=
"val"
:value=
"val"
/>
</el-select>
</el-form-item>
<br>
<br>
<el-form-item
:label=
"language==0?'到达地':'place of destination'"
prop=
"checkOut"
>
<el-select
v-model=
"form1.checkOut"
:placeholder=
"language==0?'请选择':'please select'"
>
<el-option
v-for=
"val in daoOptionIn"
:key=
"val.id"
:label=
"val.checkOut"
:value=
"val.id"
/>
</el-select>
</el-form-item>
</el-form>
</div>
</el-col>
<el-col
:lg=
"6"
>
<p
class=
"esp text-center"
>
{{
h
.
checkIn
}}
</p>
</el-col>
<el-col
:lg=
"4"
:sm=
"6"
class=
"text-center"
>
<img
class=
"mauto w40px"
src=
"@/assets/booking/wf.png"
/>
</el-col>
<el-col
:lg=
"6"
>
<p
class=
"esp text-center"
>
{{
h
.
checkOut
}}
</p>
</el-col>
<el-col
:lg=
"3"
:sm=
"12"
>
<div
v-if=
"language==0"
class=
"price"
>
¥
<span>
{{
h
.
upPrice
}}
</span>
<div
v-else
>
<el-form
ref=
"formRef1"
:model=
"form1"
:rules=
"rules"
class=
"formEn"
label-width=
"155px"
size=
"large"
>
<el-form-item
label=
"place of departure"
prop=
"checkIn"
>
<el-select
v-model=
"form1.checkIn"
placeholder=
"please select"
@
change=
"changeSelectIn"
>
<el-option
v-for=
"val in cardData.in"
:key=
"val"
:label=
"val"
:value=
"val"
/>
</el-select>
</el-form-item>
<br>
<br>
<el-form-item
label=
"place of destination"
prop=
"checkOut"
>
<el-select
v-model=
"form1.checkOut"
placeholder=
"please select"
>
<el-option
v-for=
"val in daoOptionIn"
:key=
"val.id"
:label=
"val.checkOut"
:value=
"val.id"
/>
</el-select>
</el-form-item>
</el-form>
</div>
<div
v-else
class=
"price"
>
€
<span>
{{
h
.
upPriceEn
}}
</span>
<br>
<br>
<div
class=
"text-center "
>
<el-button
class=
"btn-lineG w50 "
round
size=
"large"
type=
"primary"
@
click=
"handleSubmit(0)"
>
{{
language
==
0
?
'我要接机'
:
"next step"
}}
</el-button>
</div>
</el-col>
<el-col
:lg=
"3"
:sm=
"12"
>
<el-button
class=
"btn-lineG w100"
round
type=
"primary"
@
click=
"goOrder(h)"
>
{{
language
==
0
?
'我要预订'
:
'Select'
}}
</el-button>
</el-col>
</el-row>
</div>
<el-empty
v-show=
"!loading&&list.length==0"
:image=
"`/img/order_no.png`"
:image-size=
"228"
description=
""
/>
<div
style=
"height: 50px"
></div>
<br>
<br>
</el-card>
</el-col>
<el-col
:span=
"12"
>
<el-card>
<h2
class=
"text-center gradient-text"
>
{{
language
==
0
?
'送机'
:
'airport drop-off service'
}}
</h2>
<div
v-if=
"language==0"
>
<el-form
ref=
"formRef2"
:model=
"form2"
:rules=
"rules"
class=
"form"
label-width=
"100px"
size=
"large"
>
<el-form-item
:label=
"language==0?'出发地':'place of departure'"
prop=
"checkIn"
>
<el-select
v-model=
"form2.checkIn"
:placeholder=
"language==0?'请选择':'please select'"
@
change=
"changeSelectOut"
>
<el-option
v-for=
"val in cardData.out"
:key=
"val"
:label=
"val"
:value=
"val"
/>
</el-select>
</el-form-item>
<br>
<br>
<el-form-item
:label=
"language==0?'到达地':'place of destination'"
prop=
"checkOut"
>
<el-select
v-model=
"form2.checkOut"
:placeholder=
"language==0?'请选择':'please select'"
>
<el-option
v-for=
"val in daoOptionOut"
:key=
"val.id"
:label=
"val.checkOut"
:value=
"val.id"
/>
</el-select>
</el-form-item>
</el-form>
</div>
<div
v-else
>
<el-form
ref=
"formRef2"
:model=
"form2"
:rules=
"rules"
class=
"formEn"
label-width=
"155px"
size=
"large"
>
<el-form-item
label=
"place of departure"
prop=
"checkIn"
>
<el-select
v-model=
"form2.checkIn"
placeholder=
"please select"
@
change=
"changeSelectOut"
>
<el-option
v-for=
"val in cardData.out"
:key=
"val"
:label=
"val"
:value=
"val"
/>
</el-select>
</el-form-item>
<br>
<br>
<el-form-item
label=
"place of destination"
prop=
"checkOut"
>
<el-select
v-model=
"form2.checkOut"
placeholder=
"please select"
>
<el-option
v-for=
"val in daoOptionOut"
:key=
"val.id"
:label=
"val.checkOut"
:value=
"val.id"
/>
</el-select>
</el-form-item>
</el-form>
</div>
<br>
<br>
<div
class=
"text-center"
>
<el-button
class=
"btn-lineG w50"
round
size=
"large"
type=
"primary"
@
click=
"handleSubmit(1)"
>
{{
language
==
0
?
'我要送机'
:
'next step'
}}
</el-button>
</div>
<br>
<br>
</el-card>
</el-col>
</el-row>
</div>
<!--
<div
v-loading=
"loading"
class=
"box"
>
-->
<!--
<div
v-for=
"(h,index) in list"
:key=
"index"
class=
"routeItem"
>
-->
<!--
<el-row
:gutter=
"20"
align=
"middle"
class=
"w100"
>
-->
<!--
<el-col
:lg=
"2"
:sm=
"6"
>
-->
<!--
<div
class=
"index"
>
{{
language
==
0
?
'路线'
:
'Route'
}}{{
index
+
1
}}
-->
<!--
</div>
-->
<!--
</el-col>
-->
<!--
<el-col
:lg=
"6"
>
-->
<!--
<p
class=
"esp text-center"
>
{{
h
.
checkIn
}}
</p>
-->
<!--
</el-col>
-->
<!--
<el-col
:lg=
"4"
:sm=
"6"
class=
"text-center"
>
-->
<!--
<img
class=
"mauto w40px"
src=
"@/assets/booking/wf.png"
>
-->
<!--
</el-col>
-->
<!--
<el-col
:lg=
"6"
>
-->
<!--
<p
class=
"esp text-center"
>
{{
h
.
checkOut
}}
</p>
-->
<!--
</el-col>
-->
<!--
<el-col
:lg=
"3"
:sm=
"12"
>
-->
<!--
<div
v-if=
"language==0"
class=
"price"
>
-->
<!-- ¥-->
<!--
<span>
{{
h
.
upPrice
}}
</span>
-->
<!--
</div>
-->
<!--
<div
v-else
class=
"price"
>
-->
<!-- €-->
<!--
<span>
{{
h
.
upPriceEn
}}
</span>
-->
<!--
</div>
-->
<!-- -->
<!--
</el-col>
-->
<!--
<el-col
:lg=
"3"
:sm=
"12"
>
-->
<!--
<el-button
class=
"btn-lineG w100"
round
type=
"primary"
@
click=
"goOrder(h)"
>
-->
<!--
{{
language
==
0
?
'我要预订'
:
'Select'
}}
-->
<!--
</el-button>
-->
<!--
</el-col>
-->
<!--
</el-row>
-->
<!--
</div>
-->
<!-- -->
<!--
<el-empty
v-show=
"!loading&&list.length==0"
:image=
"`/img/order_no.png`"
:image-size=
"228"
description=
""
/>
-->
<!--
<div
style=
"height: 50px"
/>
-->
<!--
</div>
-->
</div>
</
template
>
<
script
setup
>
import
{
onMounted
}
from
"@vue/runtime-core"
import
*
as
booking
from
"@/apiPc/booking"
import
{
useRouter
,
useRoute
}
from
"vue-router"
;
import
{
useStorage
}
from
"@vueuse/core/index"
;
import
useUserStore
from
"@/store/modules/user"
;
import
{
getCurrentInstance
,
onMounted
,
ref
}
from
'@vue/runtime-core'
import
*
as
booking
from
'@/apiPc/booking'
import
{
useRouter
,
useRoute
}
from
'vue-router'
import
{
useStorage
}
from
'@vueuse/core/index'
import
useUserStore
from
'@/store/modules/user'
import
{
getVehicleByCheckIn
}
from
'@/apiPc/booking'
const
{
proxy
}
=
getCurrentInstance
()
const
user
=
useUserStore
().
user
const
router
=
useRouter
()
const
route
=
useRoute
()
...
...
@@ -69,14 +183,29 @@ const language = useStorage('language', 0)
const
query
=
ref
({
name
:
''
})
const
activeName
=
ref
(
0
)
const
cptId
=
ref
(
''
)
const
list
=
ref
([])
const
loading
=
ref
(
false
)
const
form1
=
ref
({})
const
form2
=
ref
({})
const
rules
=
ref
({
checkIn
:
[
{
required
:
true
,
message
:
`
${
language
.
value
==
0
?
'请选择'
:
'please select'
}
`
,
trigger
:
'blur'
}
],
checkOut
:
[
{
required
:
true
,
message
:
`
${
language
.
value
==
0
?
'请选择'
:
'please select'
}
`
,
trigger
:
'blur'
}
]
})
const
cardData
=
ref
({})
const
daoOptionIn
=
ref
([])
const
daoOptionOut
=
ref
([])
onMounted
(()
=>
{
query
.
value
.
activityId
=
route
.
params
.
cptId
// if (language.value==0)
getList
()
// getList()
getVehicleMap
()
})
function
getList
()
{
...
...
@@ -90,6 +219,70 @@ function getList() {
})
}
async
function
getVehicleMap
()
{
const
res
=
await
booking
.
getVehicleMap
({
activityId
:
route
.
params
.
cptId
})
cardData
.
value
=
res
.
data
}
async
function
changeSelectIn
()
{
const
res
=
await
booking
.
getVehicleByCheckIn
({
activityId
:
route
.
params
.
cptId
,
checkIn
:
form1
.
value
.
checkIn
,
category
:
'0'
})
form1
.
value
.
checkOut
=
''
daoOptionIn
.
value
=
res
.
data
}
async
function
changeSelectOut
()
{
const
res
=
await
booking
.
getVehicleByCheckIn
({
activityId
:
route
.
params
.
cptId
,
checkIn
:
form1
.
value
.
checkIn
,
category
:
'1'
})
form2
.
value
.
checkOut
=
''
daoOptionOut
.
value
=
res
.
data
}
async
function
handleSubmit
(
v
)
{
let
checkOut
=
{}
let
obj
=
{}
if
(
v
==
0
)
{
await
proxy
.
$refs
[
'formRef1'
].
validate
()
checkOut
=
daoOptionIn
.
value
.
find
(
v
=>
v
.
id
==
form1
.
value
.
checkOut
)
||
{}
obj
=
{
activityId
:
route
.
params
.
cptId
,
checkIn
:
form1
.
value
.
checkIn
,
checkOut
:
checkOut
.
checkOut
,
category
:
v
}
}
else
{
await
proxy
.
$refs
[
'formRef2'
].
validate
()
checkOut
=
daoOptionOut
.
value
.
find
(
v
=>
v
.
id
==
form2
.
value
.
checkOut
)
||
{}
obj
=
{
activityId
:
route
.
params
.
cptId
,
checkIn
:
form2
.
value
.
checkIn
,
checkOut
:
checkOut
.
checkOut
,
category
:
v
}
// await getVehicleByCheckIn({
// activityId: route.params.cptId,
// checkIn: form2.value.checkIn,
// checkOut: checkOut.checkOut,
// category: v
// })
}
await
router
.
push
({
name
:
'carList'
,
params
:
{
id
:
route
.
params
.
cptId
},
query
:
obj
})
}
function
goOrder
(
item
,
car
)
{
if
(
!
user
)
{
useUserStore
().
setReLogin
()
...
...
@@ -98,7 +291,7 @@ function goOrder(item, car) {
router
.
push
({
name
:
'carOrder'
,
params
:
{
id
:
item
.
id
,
id
:
item
.
id
},
query
:
{
item
:
encodeURIComponent
(
JSON
.
stringify
(
item
))
...
...
@@ -112,25 +305,25 @@ function goOrder(item, car) {
.hotel
{
margin-bottom
:
20px
;
cursor
:
pointer
;
.index
{
display
:
flex
;
font-weight
:
500
;
padding-left
:
20px
;
font-size
:
18px
;
align-items
:
center
;
img
{
margin-left
:
15px
;
}
}
p
{
font-weight
:
500
;
font-size
:
24px
;
color
:
#000000
;
}
&
:hover
.el-card
{
box-shadow
:
0
0
10px
#aaa
;
}
...
...
@@ -172,7 +365,7 @@ function goOrder(item, car) {
display
:
flex
;
align-items
:
center
;
justify-content
:
center
;
img
{
display
:
block
;
margin
:
-30px
auto
0
;
...
...
@@ -180,131 +373,43 @@ function goOrder(item, car) {
}
}
.searchBar
{
position
:
relative
;
top
:
-30px
;
background
:
#FFFFFF
;
display
:
flex
;
padding
:
20px
;
border-radius
:
10px
;
}
.no-border
{
border
:
none
;
background
:
#F5F7F9
;
:deep(.el-input__wrapper)
{
border
:
none
;
box-shadow
:
none
;
background
:
#F5F7F9
;
}
}
.starBox
{
img
{
display
:
inline-block
;
margin-right
:
4px
}
}
.tagbox
{
margin
:
15px
0
;
a
{
color
:
#AFB5B9
;
font-size
:
12px
;
}
span
{
border-radius
:
13px
;
font-size
:
12px
;
padding
:
4px
10px
;
margin-right
:
10px
;
font-weight
:
400
;
}
span
:nth-child
(
4n
)
{
background
:
rgba
(
50
,
177
,
108
,
0.2
);
color
:
rgba
(
50
,
177
,
108
,
1
);
}
span
:nth-child
(
4n
+
1
)
{
background
:
rgba
(
243
,
152
,
0
,
0.2
);
color
:
rgba
(
243
,
152
,
0
,
1
);
}
span
:nth-child
(
4n
+
2
)
{
background
:
rgba
(
0
,
160
,
233
,
0.2
);
color
:
rgba
(
0
,
160
,
233
,
1
);
}
span
:nth-child
(
4n
+
3
)
{
background
:
rgba
(
247
,
64
,
166
,
0.2
);
color
:
rgba
(
247
,
64
,
166
,
1
);
}
.gradient-text
{
font-family
:
FZJunHeiS-B-GB
;
font-weight
:
600
;
font-size
:
24px
;
background
:
linear-gradient
(
0deg
,
#8226FC
0%
,
#483BEB
100%
);
-webkit-background-clip
:
text
;
-webkit-text-fill-color
:
transparent
;
}
.name.flex
{
align-items
:
center
;
}
.name
.tagbox
{
margin
:
0
0
0
15px
;
}
.room
{
background
:
#FAFBFD
;
margin
:
20px
0
0
;
padding
:
20px
;
border
:
1px
solid
#E5E5E5
;
.name
{
font-size
:
20px
;
margin
:
0
0
10px
;
}
.roomImg
{
aspect-ratio
:
16
/
9
;
border-radius
:
10px
;
overflow
:
hidden
;
img
{
width
:
100%
;
object-fit
:
cover
;
object-position
:
center
;
height
:
100%
;
.form
{
padding-right
:
50px
;
:deep(.el-form-item)
{
label
{
font-size
:
20px
;
height
:
60px
;
line-height
:
60px
;
}
}
.bg-lineg
{
margin
:
auto
;
border-radius
:
10px
;
text-align
:
center
;
padding
:
7px
2px
2px
;
font-size
:
24px
;
width
:
66px
;
cursor
:
pointer
;
div
{
background
:
#fff
;
font-size
:
13px
;
border-radius
:
20px
;
padding
:
0
10px
;
color
:
#453DEA
;
font-weight
:
500
;
.el-select--large
.el-select__wrapper
{
min-height
:
60px
;
}
}
}
.routeItem
{
background
:
#fff
;
border-radius
:
10px
;
margin
:
0
0
20px
;
padding
:
10px
20px
;
box-shadow
:
0
0
6px
#eee
;
.price
{
color
:
#FF8124
;
font-size
:
24px
;
span
{
font-size
:
36px
;
font-family
:
"DIN Alternate"
.formEn
{
padding-right
:
50px
;
:deep(.el-form-item)
{
label
{
font-size
:
14px
;
height
:
60px
;
line-height
:
60px
;
}
.el-select--large
.el-select__wrapper
{
min-height
:
60px
;
}
}
}
...
...
src/viewsPc/booking/carList.vue
0 → 100644
View file @
caa89a7
<
template
>
<div>
<div
class=
"banner"
>
<img
v-if=
"language==0"
src=
"@/assets/booking/cl_text_c.png"
>
<img
v-else
src=
"@/assets/booking/cl_text_e.png"
>
</div>
<div
class=
"box"
>
<div
class=
"searchBar"
>
<el-input
v-model=
"query.name"
:placeholder=
"language==0?'请输入关键字搜索':'Search'"
class=
"no-border"
/>
<el-button
class=
"btn-lineG"
icon=
"search"
size=
"large"
type=
"primary"
@
click=
"getList"
>
{{
language
==
0
?
'搜索'
:
'Search'
}}
</el-button>
</div>
</div>
<div
v-loading=
"loading"
class=
"box"
>
<div
v-for=
"(h,index) in list"
:key=
"index"
class=
"routeItem"
>
<el-row
:gutter=
"20"
align=
"middle"
class=
"w100"
>
<el-col
:lg=
"2"
:sm=
"6"
>
<div
class=
"index"
>
{{
language
==
0
?
'路线'
:
'Route'
}}{{
index
+
1
}}
</div>
</el-col>
<el-col
:lg=
"6"
>
<p
class=
"esp text-center"
>
{{
h
.
checkIn
}}
</p>
</el-col>
<el-col
:lg=
"4"
:sm=
"6"
class=
"text-center"
>
<img
class=
"mauto w40px"
src=
"@/assets/booking/wf.png"
>
</el-col>
<el-col
:lg=
"6"
>
<p
class=
"esp text-center"
>
{{
h
.
checkOut
}}
</p>
</el-col>
<el-col
:lg=
"3"
:sm=
"12"
>
<div
v-if=
"language==0"
class=
"price"
>
¥
<span>
{{
h
.
upPrice
}}
</span>
</div>
<div
v-else
class=
"price"
>
€
<span>
{{
h
.
upPriceEn
}}
</span>
</div>
</el-col>
<el-col
:lg=
"3"
:sm=
"12"
>
<el-button
class=
"btn-lineG w100"
round
type=
"primary"
@
click=
"goOrder(h)"
>
{{
language
==
0
?
'我要预订'
:
'Select'
}}
</el-button>
</el-col>
</el-row>
</div>
<el-empty
v-show=
"!loading&&list.length==0"
:image=
"`/img/order_no.png`"
:image-size=
"228"
description=
""
/>
<div
style=
"height: 50px"
/>
</div>
</div>
</
template
>
<
script
setup
>
import
{
onMounted
,
ref
}
from
'@vue/runtime-core'
import
*
as
booking
from
'@/apiPc/booking'
import
{
useRouter
,
useRoute
}
from
'vue-router'
import
{
useStorage
}
from
'@vueuse/core/index'
import
useUserStore
from
'@/store/modules/user'
const
user
=
useUserStore
().
user
const
router
=
useRouter
()
const
route
=
useRoute
()
const
language
=
useStorage
(
'language'
,
0
)
const
query
=
ref
({})
const
activeName
=
ref
(
0
)
const
cptId
=
ref
(
''
)
const
list
=
ref
([])
const
loading
=
ref
(
false
)
onMounted
(()
=>
{
query
.
value
.
activityId
=
route
.
query
.
activityId
query
.
value
.
checkIn
=
route
.
query
.
checkIn
query
.
value
.
checkOut
=
route
.
query
.
checkOut
query
.
value
.
category
=
route
.
query
.
category
// if (language.value==0)
// getList()
getVehicleByCheckIn
()
})
function
getList
()
{
// if (language.value!=0)return
loading
.
value
=
true
booking
.
getActivityCarList
(
query
.
value
).
then
(
res
=>
{
list
.
value
=
res
.
rows
loading
.
value
=
false
}).
catch
(
e
=>
{
loading
.
value
=
false
})
}
async
function
getVehicleByCheckIn
()
{
loading
.
value
=
true
const
res
=
await
booking
.
getVehicleByCheckIn
(
query
.
value
)
list
.
value
=
res
.
rows
loading
.
value
=
false
}
function
goOrder
(
item
,
car
)
{
if
(
!
user
)
{
useUserStore
().
setReLogin
()
return
}
router
.
push
({
name
:
'carOrder'
,
params
:
{
id
:
item
.
id
},
query
:
{
item
:
encodeURIComponent
(
JSON
.
stringify
(
item
))
}
})
}
</
script
>
<
style
lang=
"scss"
scoped
>
.hotel
{
margin-bottom
:
20px
;
cursor
:
pointer
;
.index
{
display
:
flex
;
font-weight
:
500
;
padding-left
:
20px
;
font-size
:
18px
;
align-items
:
center
;
img
{
margin-left
:
15px
;
}
}
p
{
font-weight
:
500
;
font-size
:
24px
;
color
:
#000000
;
}
&
:hover
.el-card
{
box-shadow
:
0
0
10px
#aaa
;
}
}
.hotel
:nth-child
(
7n
)
.index
{
color
:
#009E96
;
}
.hotel
:nth-child
(
7n
+
1
)
.index
{
color
:
#FF8124
;
}
.hotel
:nth-child
(
7n
+
2
)
.index
{
color
:
#E4007F
;
}
.hotel
:nth-child
(
7n
+
3
)
.index
{
color
:
#0068B7
;
}
.hotel
:nth-child
(
7n
+
4
)
.index
{
color
:
#32B16C
;
}
.hotel
:nth-child
(
7n
+
5
)
.index
{
color
:
#920783
;
}
.hotel
:nth-child
(
7n
+
6
)
.index
{
color
:
#00B7EE
;
}
.banner
{
height
:
140px
;
background-size
:
cover
;
text-align
:
center
;
background
:
url("@/assets/booking/cl_bg.png")
center
;
display
:
flex
;
align-items
:
center
;
justify-content
:
center
;
img
{
display
:
block
;
margin
:
-30px
auto
0
;
width
:
auto
;
}
}
.searchBar
{
position
:
relative
;
top
:
-30px
;
background
:
#FFFFFF
;
display
:
flex
;
padding
:
20px
;
border-radius
:
10px
;
}
.no-border
{
border
:
none
;
background
:
#F5F7F9
;
:deep(.el-input__wrapper)
{
border
:
none
;
box-shadow
:
none
;
background
:
#F5F7F9
;
}
}
.starBox
{
img
{
display
:
inline-block
;
margin-right
:
4px
}
}
.tagbox
{
margin
:
15px
0
;
a
{
color
:
#AFB5B9
;
font-size
:
12px
;
}
span
{
border-radius
:
13px
;
font-size
:
12px
;
padding
:
4px
10px
;
margin-right
:
10px
;
font-weight
:
400
;
}
span
:nth-child
(
4n
)
{
background
:
rgba
(
50
,
177
,
108
,
0.2
);
color
:
rgba
(
50
,
177
,
108
,
1
);
}
span
:nth-child
(
4n
+
1
)
{
background
:
rgba
(
243
,
152
,
0
,
0.2
);
color
:
rgba
(
243
,
152
,
0
,
1
);
}
span
:nth-child
(
4n
+
2
)
{
background
:
rgba
(
0
,
160
,
233
,
0.2
);
color
:
rgba
(
0
,
160
,
233
,
1
);
}
span
:nth-child
(
4n
+
3
)
{
background
:
rgba
(
247
,
64
,
166
,
0.2
);
color
:
rgba
(
247
,
64
,
166
,
1
);
}
}
.name.flex
{
align-items
:
center
;
}
.name
.tagbox
{
margin
:
0
0
0
15px
;
}
.room
{
background
:
#FAFBFD
;
margin
:
20px
0
0
;
padding
:
20px
;
border
:
1px
solid
#E5E5E5
;
.name
{
font-size
:
20px
;
margin
:
0
0
10px
;
}
.roomImg
{
aspect-ratio
:
16
/
9
;
border-radius
:
10px
;
overflow
:
hidden
;
img
{
width
:
100%
;
object-fit
:
cover
;
object-position
:
center
;
height
:
100%
;
}
}
.bg-lineg
{
margin
:
auto
;
border-radius
:
10px
;
text-align
:
center
;
padding
:
7px
2px
2px
;
font-size
:
24px
;
width
:
66px
;
cursor
:
pointer
;
div
{
background
:
#fff
;
font-size
:
13px
;
border-radius
:
20px
;
padding
:
0
10px
;
color
:
#453DEA
;
font-weight
:
500
;
}
}
}
.routeItem
{
background
:
#fff
;
border-radius
:
10px
;
margin
:
0
0
20px
;
padding
:
10px
20px
;
box-shadow
:
0
0
6px
#eee
;
.price
{
color
:
#FF8124
;
font-size
:
24px
;
span
{
font-size
:
36px
;
font-family
:
"DIN Alternate"
}
}
}
</
style
>
src/viewsPc/booking/carOrder.vue
View file @
caa89a7
...
...
@@ -17,7 +17,7 @@
<h3
class=
"esp"
>
{{ item.checkOut }}
</h3>
</div>
</div>
<div
class=
"leftboderTT"
>
{{ language == 0 ? '预约信息' : 'Reservation information' }}
</div>
<div
class=
"border-rr mt20 pd20"
>
<el-form
ref=
"formRef"
:label-width=
"language == 0 ?'120':'200'"
:model=
"form"
:rules=
"rules"
>
...
...
@@ -60,21 +60,25 @@
<div
class=
"leftboderTT"
>
{{ language == 0 ? '订单明细' : 'Order details' }}
</div>
<div
class=
"border-rr mt20 pd20 ccitemBox"
>
<label>
{{ language == 0 ? '单价' : 'Price' }}
<span
class=
"fr"
>
{{ language == 0 ? '¥' : '€' }}{{ language == 0 ? item.upPrice: item.upPriceEn }}
</span>
<span
class=
"fr"
>
{{ language == 0 ? '¥' : '€' }}{{
language == 0 ? item.upPrice : item.upPriceEn
}}
</span>
</label>
<div
class=
"ccitem"
>
<span>
{{ form.pickUpBo.count }} *{{ language == 0 ? '¥' : '€' }}{{ language == 0 ? item.upPrice: item.upPriceEn }}
</span>
<span>
{{ form.pickUpBo.count }} *{{
language == 0 ? '¥' : '€'
}}{{ language == 0 ? item.upPrice : item.upPriceEn }}
</span>
</div>
<label>
{{ language == 0 ? '共计' : 'Total' }}
<span
class=
"fr bigMoney"
>
{{ language == 0 ? '¥' : '€' }}{{ money }}
</span></label>
</div>
</el-col>
</el-row>
</el-card>
<el-card
class=
"mt30"
>
<el-row
align=
"middle"
justify=
"space-between"
>
<el-col
:span=
"12"
>
...
...
@@ -86,7 +90,7 @@
</el-col>
<el-col
:span=
"12"
class=
"text-right"
>
<el-button
:
loading=
"payLoading"
:disabled=
"money<=0
"
class=
"btn-lineG w200px"
round
type=
"primary"
:
disabled=
"money<=0"
:loading=
"payLoading
"
class=
"btn-lineG w200px"
round
type=
"primary"
@
click=
"submit"
>
{{ language == 0 ? '确认付款' : 'Pay' }}
...
...
@@ -129,6 +133,7 @@ const lform = ref({})
onMounted
(()
=>
{
item
.
value
=
JSON
.
parse
(
decodeURIComponent
(
route
.
query
.
item
))
console
.
log
(
item
.
value
)
money
.
value
=
0
changecarNum
()
initDays
()
...
...
@@ -234,13 +239,13 @@ function pushFrom() {
.ccitemBox
{
overflow
:
auto
;
label
{
margin
:
10px
0
;
display
:
block
;
font-weight
:
600
;
min-height
:
30px
;
span
{
color
:
#FF8124
;
font-family
:
DIN
Alternate
;
...
...
@@ -255,12 +260,12 @@ function pushFrom() {
font-size
:
15px
;
color
:
#666
;
margin
:
5px
0
10px
;
label
{
font-size
:
16px
;
color
:
#000
;
}
span
{
font-size
:
13px
;
}
...
...
@@ -278,12 +283,12 @@ function pushFrom() {
.tagbox
{
margin
:
15px
0
;
a
{
color
:
#AFB5B9
;
font-size
:
12px
;
}
span
{
border-radius
:
13px
;
font-size
:
12px
;
...
...
@@ -291,22 +296,22 @@ function pushFrom() {
margin-right
:
10px
;
font-weight
:
400
;
}
span
:nth-child
(
4n
)
{
background
:
rgba
(
50
,
177
,
108
,
0.2
);
color
:
rgba
(
50
,
177
,
108
,
1
);
}
span
:nth-child
(
4n
+
1
)
{
background
:
rgba
(
243
,
152
,
0
,
0.2
);
color
:
rgba
(
243
,
152
,
0
,
1
);
}
span
:nth-child
(
4n
+
2
)
{
background
:
rgba
(
0
,
160
,
233
,
0.2
);
color
:
rgba
(
0
,
160
,
233
,
1
);
}
span
:nth-child
(
4n
+
3
)
{
background
:
rgba
(
247
,
64
,
166
,
0.2
);
color
:
rgba
(
247
,
64
,
166
,
1
);
...
...
Write
Preview
Styling with
Markdown
is supported
Attach a file
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 post a comment