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
1c65620a
Commit
1c65620a
authored
Aug 25, 2025
by
黄奎
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
11
parent
00eb1e81
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
412 additions
and
368 deletions
+412
-368
Details.vue
src/components/busManagement/BookAcar/components/Details.vue
+412
-368
No files found.
src/components/busManagement/BookAcar/components/Details.vue
View file @
1c65620a
...
@@ -7,16 +7,14 @@
...
@@ -7,16 +7,14 @@
<div
class=
"hotelDetails-infor"
>
<div
class=
"hotelDetails-infor"
>
<div>
<div>
<i
class=
"el-icon-location"
></i>
<i
class=
"el-icon-location"
></i>
<p
v-if=
"t.CityList2&&t.CityList2.length>0&&t.CityList2[0]"
><span>
{{
t
.
CityList2
[
0
].
CountryName
}}{{
t
.
CityList2
[
0
].
CityName
}}
</span></p>
<p
v-if=
"t.CityList2&&t.CityList2.length>0&&t.CityList2[0]"
>
<span>
{{
t
.
CityList2
[
0
].
CountryName
}}{{
t
.
CityList2
[
0
].
CityName
}}
</span></p>
</div>
</div>
</div>
</div>
<div
class=
"hotelDetails-ImgMap"
>
<div
class=
"hotelDetails-ImgMap"
>
<div
class=
"hotelDetails-Img"
>
<div
class=
"hotelDetails-Img"
>
<div
style=
"position: relative;"
>
<div
style=
"position: relative;"
>
<el-image
<el-image
v-if=
"images.length>0"
style=
"width: 100%; height: 100%"
:src=
"images[0]"
v-if=
"images.length>0"
style=
"width: 100%; height: 100%"
:src=
"images[0]"
:preview-src-list=
"images"
fit=
"cover"
>
:preview-src-list=
"images"
fit=
"cover"
>
<div
slot=
"placeholder"
class=
"image-slot"
>
<div
slot=
"placeholder"
class=
"image-slot"
>
{{
$t
(
'objFill.jiazazhong'
)
}}
<span
class=
"dot"
>
...
</span>
{{
$t
(
'objFill.jiazazhong'
)
}}
<span
class=
"dot"
>
...
</span>
...
@@ -28,10 +26,7 @@
...
@@ -28,10 +26,7 @@
</div>
</div>
<div
v-if=
"images.length>1"
>
<div
v-if=
"images.length>1"
>
<div
class=
"Img-right-box"
:style=
"
{'height':images.length==2?'100%':'50%'}">
<div
class=
"Img-right-box"
:style=
"
{'height':images.length==2?'100%':'50%'}">
<el-image
<el-image
style=
"width: 100%; height: 100%"
:src=
"images[1]"
:preview-src-list=
"images"
fit=
"cover"
>
style=
"width: 100%; height: 100%"
:src=
"images[1]"
:preview-src-list=
"images"
fit=
"cover"
>
<div
slot=
"placeholder"
class=
"image-slot"
>
<div
slot=
"placeholder"
class=
"image-slot"
>
{{
$t
(
'objFill.jiazazhong'
)
}}
<span
class=
"dot"
>
...
</span>
{{
$t
(
'objFill.jiazazhong'
)
}}
<span
class=
"dot"
>
...
</span>
</div>
</div>
...
@@ -45,10 +40,8 @@
...
@@ -45,10 +40,8 @@
<span
class=
"fz20 text-weight-bold"
>
+
</span>
<span
class=
"fz20 text-weight-bold"
>
+
</span>
<span
class=
"text-h5 text-weight-bold"
>
{{
images
.
length
-
3
}}
</span>
<span
class=
"text-h5 text-weight-bold"
>
{{
images
.
length
-
3
}}
</span>
</div>
</div>
<el-image
<el-image
style=
"width: 100%; height: 100%"
:src=
"images[2]"
:preview-src-list=
"images"
ref=
"images"
style=
"width: 100%; height: 100%"
fit=
"cover"
>
:src=
"images[2]"
:preview-src-list=
"images"
ref=
"images"
fit=
"cover"
>
<div
slot=
"placeholder"
class=
"image-slot"
>
<div
slot=
"placeholder"
class=
"image-slot"
>
{{
$t
(
'objFill.jiazazhong'
)
}}
<span
class=
"dot"
>
...
</span>
{{
$t
(
'objFill.jiazazhong'
)
}}
<span
class=
"dot"
>
...
</span>
</div>
</div>
...
@@ -69,13 +62,17 @@
...
@@ -69,13 +62,17 @@
<div>
{{
t
.
Description
}}
</div>
<div>
{{
t
.
Description
}}
</div>
</div>
</div>
<div
class=
"hotelDetails-service"
>
<div
class=
"hotelDetails-service"
>
<div
class=
"service"
><span
class=
"width120"
>
{{
$t
(
'objFill.chanpinjiesao'
)
}}
</span><div>
{{
t
.
Introduce
?
t
.
Introduce
:
'-'
}}
</div></div>
<div
class=
"service"
><span
class=
"width120"
>
{{
$t
(
'objFill.chanpinjiesao'
)
}}
</span>
<div
class=
"service"
v-if=
"t.TravelHours"
><span
class=
"width120"
>
{{
$t
(
'objFill.baocheshichang'
)
}}
</span><div>
{{
t
.
TravelHours
?
t
.
TravelHours
:
'-'
}}
</div></div>
<div>
{{
t
.
Introduce
?
t
.
Introduce
:
'-'
}}
</div>
</div>
<div
class=
"service"
v-if=
"t.TravelHours"
><span
class=
"width120"
>
{{
$t
(
'objFill.baocheshichang'
)
}}
</span>
<div>
{{
t
.
TravelHours
?
t
.
TravelHours
:
'-'
}}
</div>
</div>
<div
class=
"service"
><span
class=
"width120"
>
{{
$t
(
'objFill.feiyongbaohan'
)
}}
</span>
<div
class=
"service"
><span
class=
"width120"
>
{{
$t
(
'objFill.feiyongbaohan'
)
}}
</span>
<div>
<div>
<template
v-if=
"t.PriceIncludeList"
>
<template
v-if=
"t.PriceIncludeList"
>
<el-tag
v-for=
"s in t.PriceIncludeList"
:key=
"s"
size=
"mini"
<el-tag
v-for=
"s in t.PriceIncludeList"
:key=
"s"
size=
"mini"
style=
"margin-right: 10px;text-align: center;"
>
{{
s
}}
</el-tag>
style=
"margin-right: 10px;text-align: center;"
>
{{
s
}}
</el-tag>
</
template
>
</
template
>
<
template
v-else
>
-
</
template
>
<
template
v-else
>
-
</
template
>
</div>
</div>
...
@@ -84,13 +81,17 @@
...
@@ -84,13 +81,17 @@
<div>
<div>
<
template
v-if=
"t.PriceNotIncludeList"
>
<
template
v-if=
"t.PriceNotIncludeList"
>
<el-tag
v-for=
"s in t.PriceNotIncludeList"
:key=
"s"
size=
"mini"
<el-tag
v-for=
"s in t.PriceNotIncludeList"
:key=
"s"
size=
"mini"
style=
"margin-right: 10px;text-align: center;"
>
{{
s
}}
</el-tag>
style=
"margin-right: 10px;text-align: center;"
>
{{
s
}}
</el-tag>
</
template
>
</
template
>
<
template
v-else
>
-
</
template
>
<
template
v-else
>
-
</
template
>
</div>
</div>
</div>
</div>
<div
class=
"service"
><span
class=
"width120"
>
{{$t('objFill.ruheshiyong')}}
</span><div>
{{t.HowUse?t.HowUse:'-'}}
</div></div>
<div
class=
"service"
><span
class=
"width120"
>
{{$t('objFill.ruheshiyong')}}
</span>
<div
class=
"service"
><span
class=
"width120"
>
{{$t('objFill.quxiaozhengce')}}
</span><div>
{{t.CancelPolicy?t.CancelPolicy:'-'}}
</div></div>
<div>
{{t.HowUse?t.HowUse:'-'}}
</div>
</div>
<div
class=
"service"
><span
class=
"width120"
>
{{$t('objFill.quxiaozhengce')}}
</span>
<div>
{{t.CancelPolicy?t.CancelPolicy:'-'}}
</div>
</div>
</div>
</div>
<div
class=
"hotelDetails-prompt prompt"
>
<div
class=
"hotelDetails-prompt prompt"
>
<p>
{{$t('objFill.yudinxuzhi')}}
</p>
<p>
{{$t('objFill.yudinxuzhi')}}
</p>
...
@@ -99,12 +100,14 @@
...
@@ -99,12 +100,14 @@
</div>
</div>
</div>
</div>
</template>
</template>
<
script
>
<
script
>
import
Map
from
"../../../public/echoMap.vue"
;
import
Map
from
"../../../public/echoMap.vue"
;
export
default
{
export
default
{
props
:
[
'detailsObj'
],
props
:
[
'detailsObj'
],
components
:
{
Map
},
components
:
{
Map
},
data
()
{
data
()
{
return
{
return
{
map
:
null
,
map
:
null
,
...
@@ -112,9 +115,9 @@
...
@@ -112,9 +115,9 @@
t
:
{},
t
:
{},
images
:
[],
images
:
[],
center
:
null
,
center
:
null
,
ObjMap
:
{
ObjMap
:
{
lng
:
''
,
lng
:
''
,
lat
:
''
,
lat
:
''
,
Range
:
''
,
Range
:
''
,
Address
:
''
Address
:
''
}
}
...
@@ -128,15 +131,14 @@
...
@@ -128,15 +131,14 @@
deep
:
true
deep
:
true
},
},
},
},
created
()
{
created
()
{},
},
mounted
()
{
mounted
()
{
if
(
this
.
detailsObj
)
{
if
(
this
.
detailsObj
)
{
this
.
getInfo
()
this
.
getInfo
()
}
}
},
},
methods
:
{
methods
:
{
getInfo
()
{
getInfo
()
{
let
msg
=
{
let
msg
=
{
ProductId
:
this
.
detailsObj
.
Id
,
ProductId
:
this
.
detailsObj
.
Id
,
};
};
...
@@ -147,9 +149,9 @@
...
@@ -147,9 +149,9 @@
this
.
t
=
res
.
data
.
data
this
.
t
=
res
.
data
.
data
this
.
images
=
this
.
t
.
ImageList
this
.
images
=
this
.
t
.
ImageList
this
.
ObjMap
=
{
this
.
ObjMap
=
{
lng
:
this
.
t
.
PlaceList
[
0
].
Lng
,
lng
:
this
.
t
.
PlaceList
[
0
].
Lng
,
lat
:
this
.
t
.
PlaceList
[
0
].
Lat
,
lat
:
this
.
t
.
PlaceList
[
0
].
Lat
,
Range
:
Number
(
this
.
t
.
PlaceList
[
0
].
Range
),
Range
:
Number
(
this
.
t
.
PlaceList
[
0
].
Range
),
Address
:
this
.
t
.
PlaceList
[
0
].
Address
Address
:
this
.
t
.
PlaceList
[
0
].
Address
}
}
// this.initMap(this.t.PlaceList[0].Lng,this.t.PlaceList[0].Lat,this.t.Name)
// this.initMap(this.t.PlaceList[0].Lng,this.t.PlaceList[0].Lat,this.t.Name)
...
@@ -157,20 +159,23 @@
...
@@ -157,20 +159,23 @@
err
=>
{}
err
=>
{}
);
);
},
},
initMap
(
lng
,
lat
,
name
)
{
initMap
(
lng
,
lat
,
name
)
{
if
(
this
.
map
)
{
if
(
this
.
map
)
{
this
.
map
.
clearOverlays
()
this
.
map
.
clearOverlays
()
}
}
var
that
=
this
;
var
that
=
this
;
this
.
map
=
new
BMap
.
Map
(
`mapContainer_
${
this
.
detailsObj
.
Id
}
`
,
{
enableMapClick
:
false
,
this
.
map
=
new
BMap
.
Map
(
`mapContainer_
${
this
.
detailsObj
.
Id
}
`
,
{
enableMapClick
:
false
,
minZoom
:
3
,
minZoom
:
3
,
maxZoom
:
50
,
maxZoom
:
50
,
})
//新建地图实例,enableMapClick:false :禁用地图默认点击弹框
})
//新建地图实例,enableMapClick:false :禁用地图默认点击弹框
var
point
=
new
BMap
.
Point
(
lng
,
lat
);
var
point
=
new
BMap
.
Point
(
lng
,
lat
);
this
.
map
.
centerAndZoom
(
new
BMap
.
Point
(
lng
,
lat
),
15
)
this
.
map
.
centerAndZoom
(
new
BMap
.
Point
(
lng
,
lat
),
15
)
this
.
map
.
enableScrollWheelZoom
(
false
)
this
.
map
.
enableScrollWheelZoom
(
false
)
var
marker
=
new
BMap
.
Marker
(
point
);
//标记点
var
marker
=
new
BMap
.
Marker
(
point
);
//标记点
var
label
=
new
BMap
.
Label
(
name
,{
offset
:
new
BMap
.
Size
(
0
,
28
)});
//标签
var
label
=
new
BMap
.
Label
(
name
,
{
offset
:
new
BMap
.
Size
(
0
,
28
)
});
//标签
label
.
setStyle
({
label
.
setStyle
({
color
:
"#FFF"
,
color
:
"#FFF"
,
fontSize
:
"10px"
,
fontSize
:
"10px"
,
...
@@ -186,173 +191,206 @@
...
@@ -186,173 +191,206 @@
marker
.
setLabel
(
label
)
marker
.
setLabel
(
label
)
this
.
map
.
addOverlay
(
marker
);
this
.
map
.
addOverlay
(
marker
);
},
},
showImageHandler
()
{
showImageHandler
()
{
this
.
$refs
.
images
.
showViewer
=
true
this
.
$refs
.
images
.
showViewer
=
true
},
},
}
}
};
};
</
script
>
</
script
>
<
style
scoped
>
<
style
scoped
>
.image-slot
{
.image-slot
{
height
:
100%
;
height
:
100%
;
display
:
flex
;
display
:
flex
;
justify-content
:
center
;
justify-content
:
center
;
align-items
:
center
;
align-items
:
center
;
}
}
.hotelDetails-header
{
.hotelDetails-header
{
display
:
flex
;
display
:
flex
;
align-items
:
center
;
align-items
:
center
;
}
}
.hotelDetails-header
span
{
.hotelDetails-header
span
{
font-size
:
18px
;
font-size
:
18px
;
font-weight
:
bold
;
font-weight
:
bold
;
margin-right
:
10px
;
margin-right
:
10px
;
color
:
black
;
color
:
black
;
}
}
.hotelDetails-content
{
}
.hotelDetails-content
{}
.hotelDetails-infor
{
.hotelDetails-infor
{
padding
:
20px
0
;
padding
:
20px
0
;
}
}
.hotelDetails-infor
div
{
.hotelDetails-infor
div
{
display
:
flex
;
display
:
flex
;
align-items
:
center
;
align-items
:
center
;
}
}
.hotelDetails-infor
>
div
:first-child
{
.hotelDetails-infor
>
div
:first-child
{
margin-bottom
:
5px
;
margin-bottom
:
5px
;
}
}
.hotelDetails-infor
div
i
{
.hotelDetails-infor
div
i
{
color
:
#BDBDBD
;
color
:
#BDBDBD
;
margin-right
:
5px
;
margin-right
:
5px
;
}
}
.hotelDetails-infor
div
p
{
.hotelDetails-infor
div
p
{
margin-right
:
10px
;
margin-right
:
10px
;
}
}
.hotelDetails-infor
div
p
span
{
.hotelDetails-infor
div
p
span
{
font-size
:
13px
;
font-size
:
13px
;
color
:
black
;
color
:
black
;
}
}
.hotelDetails-infor
div
p
span
:nth-child
(
2
),
.hotelDetails-infor
div
p
a
{
.hotelDetails-infor
div
p
span
:nth-child
(
2
),
.hotelDetails-infor
div
p
a
{
color
:
#2196F3
;
color
:
#2196F3
;
margin-left
:
5px
;
margin-left
:
5px
;
}
}
.hotelDetails-infor
div
p
a
{
.hotelDetails-infor
div
p
a
{
cursor
:
pointer
;
cursor
:
pointer
;
text-decoration
:
underline
text-decoration
:
underline
}
}
.hotelDetails-ImgMap
{
.hotelDetails-ImgMap
{
height
:
300px
;
height
:
300px
;
display
:
flex
;
display
:
flex
;
justify-content
:
space-between
;
justify-content
:
space-between
;
}
}
.hotelDetails-Img
{
.hotelDetails-Img
{
width
:
60%
;
width
:
60%
;
}
}
.hotelDetails-Map
{
.hotelDetails-Map
{
flex
:
1
;
flex
:
1
;
flex-shrink
:
0
;
flex-shrink
:
0
;
}
}
.hotelDetails-Map
{
.hotelDetails-Map
{
margin-left
:
10px
;
margin-left
:
10px
;
}
}
.hotelDetails-Img
{
.hotelDetails-Img
{
display
:
flex
;
display
:
flex
;
/* overflow: hidden; */
/* overflow: hidden; */
}
}
.hotelDetails-Img
>
div
:first-child
{
.hotelDetails-Img
>
div
:first-child
{
flex-grow
:
1
;
flex-grow
:
1
;
}
}
.hotelDetails-Img
>
div
:nth-child
(
2
)
{
.hotelDetails-Img
>
div
:nth-child
(
2
)
{
width
:
50%
;
width
:
50%
;
margin-left
:
10px
;
margin-left
:
10px
;
display
:
flex
;
display
:
flex
;
flex-direction
:
column
;
flex-direction
:
column
;
}
}
.Img-right-box
:nth-child
(
2
)
{
.Img-right-box
:nth-child
(
2
)
{
margin-top
:
8px
;
margin-top
:
8px
;
}
}
.Img-right-box
{
.Img-right-box
{
height
:
50%
;
height
:
50%
;
position
:
relative
;
position
:
relative
;
overflow
:
hidden
;
overflow
:
hidden
;
}
}
.Img-right-num
{
.Img-right-num
{
position
:
absolute
;
position
:
absolute
;
top
:
0
;
top
:
0
;
left
:
0
;
left
:
0
;
right
:
0
;
right
:
0
;
bottom
:
0
;
bottom
:
0
;
background
:
rgba
(
23
,
23
,
23
,
.5
);
background
:
rgba
(
23
,
23
,
23
,
.5
);
z-index
:
2
;
z-index
:
2
;
display
:
flex
;
display
:
flex
;
align-items
:
center
;
align-items
:
center
;
justify-content
:
center
;
justify-content
:
center
;
cursor
:
pointer
;
cursor
:
pointer
;
}
}
.Img-right-num
span
{
.Img-right-num
span
{
color
:
#ffffff
;
color
:
#ffffff
;
font-size
:
23px
;
font-size
:
23px
;
font-weight
:
bold
;
font-weight
:
bold
;
}
}
.Img-right-num
span
:first-child
{
.Img-right-num
span
:first-child
{
font-size
:
20px
;
font-size
:
20px
;
font-weight
:
bold
;
font-weight
:
bold
;
margin-right
:
10px
;
margin-right
:
10px
;
}
}
.hotelDetails-prompt
{
.hotelDetails-prompt
{
margin
:
20px
0
;
margin
:
20px
0
;
border-radius
:
3px
;
border-radius
:
3px
;
background
:
#E1F5FE
;
background
:
#E1F5FE
;
padding
:
10px
;
padding
:
10px
;
}
}
.hotelDetails-prompt
p
{
.hotelDetails-prompt
p
{
font-weight
:
500
;
font-weight
:
500
;
font-size
:
13px
;
font-size
:
13px
;
padding
:
0
0
10px
0
;
padding
:
0
0
10px
0
;
}
}
.hotelDetails-prompt
div
{
.hotelDetails-prompt
div
{
color
:
#5E5E5E
;
color
:
#5E5E5E
;
font-size
:
12px
;
font-size
:
12px
;
line-height
:
25px
;
line-height
:
25px
;
}
}
.hotelDetails-prompt.prompt
{
.hotelDetails-prompt.prompt
{
background
:
#FFF3E0
;
background
:
#FFF3E0
;
border
:
1px
dashed
#FFA500
;
border
:
1px
dashed
#FFA500
;
}
}
.hotelDetails-service
{
.hotelDetails-service
{
padding
:
0
15px
;
padding
:
0
15px
;
}
}
.service
{
.service
{
display
:
flex
;
display
:
flex
;
justify-content
:
space-between
;
justify-content
:
space-between
;
padding
:
10px
0
;
padding
:
10px
0
;
}
}
.service
span
.width120
{
.service
span
.width120
{
color
:
#A8ABBC
;
color
:
#A8ABBC
;
font-size
:
12px
;
font-size
:
12px
;
width
:
120px
;
width
:
120px
;
flex-shrink
:
0
;
flex-shrink
:
0
;
}
}
.service
div
{
.service
div
{
flex-grow
:
1
;
flex-grow
:
1
;
display
:
flex
;
display
:
flex
;
flex-direction
:
row
;
flex-direction
:
row
;
flex-wrap
:
wrap
;
flex-wrap
:
wrap
;
color
:
black
;
color
:
black
;
}
}
.service
div
p
{
.service
div
p
{
margin-right
:
15px
;
margin-right
:
15px
;
}
}
.service
div
li
{
.service
div
li
{
list-style-type
:
disc
;
list-style-type
:
disc
;
list-style-position
:
outside
;
list-style-position
:
outside
;
white-space
:
nowrap
;
white-space
:
nowrap
;
margin-right
:
15px
;
margin-right
:
15px
;
}
}
.Img-absolute
{
.Img-absolute
{
position
:
absolute
;
position
:
absolute
;
padding
:
5px
;
padding
:
5px
;
bottom
:
unset
;
bottom
:
unset
;
...
@@ -363,20 +401,26 @@
...
@@ -363,20 +401,26 @@
font-size
:
12px
;
font-size
:
12px
;
background
:
#ffffff
;
background
:
#ffffff
;
}
}
.Img-absolute-box
{
.Img-absolute-box
{
display
:
flex
;
display
:
flex
;
flex-direction
:
row
;
flex-direction
:
row
;
align-items
:
center
;
align-items
:
center
;
overflow
:
hidden
;
overflow
:
hidden
;
}
}
.Img-absolute-box
div
:first-child
{
padding
:
0
4px
;
font-size
:
12px
;
background
:
black
;
color
:
white
;
}
.Img-absolute-box
div
:last-child
{
padding
:
0
4px
;
font-size
:
12px
;
background
:
#f0bd86
;
color
:
black
;
}
.Img-absolute-box
div
:first-child
{
padding
:
0
4px
;
font-size
:
12px
;
background
:
black
;
color
:
white
;
}
</
style
>
.Img-absolute-box
div
:last-child
{
padding
:
0
4px
;
font-size
:
12px
;
background
:
#f0bd86
;
color
:
black
;
}
</
style
>
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