Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
A
Athena
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
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
华国豪
Athena
Commits
6f0fb34f
Commit
6f0fb34f
authored
Jan 13, 2020
by
zhengke
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
增加手机版
parent
5387b678
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
1210 additions
and
3 deletions
+1210
-3
App.vue
src/App.vue
+1
-1
swiper.min.css
src/assets/css/swiper.min.css
+15
-0
newTrip.vue
src/components/mall/newTrip.vue
+17
-0
tripMobile.vue
src/components/mall/tripMobile.vue
+1168
-0
router.js
src/router.js
+9
-2
No files found.
src/App.vue
View file @
6f0fb34f
...
...
@@ -101,7 +101,7 @@ export default {
<
style
>
@import
'./assets/global/font.css'
;
@import
'//at.alicdn.com/t/font_863923_
4bpjepv71zd
.css'
;
@import
'//at.alicdn.com/t/font_863923_
vbuuda0uxl8
.css'
;
@import
'./assets/global/global.css'
;
@import
'./assets/css/common.css'
;
body
,
html
{
...
...
src/assets/css/swiper.min.css
0 → 100644
View file @
6f0fb34f
/**
* Swiper 3.0.4
* Most modern mobile touch slider and framework with hardware accelerated transitions
*
* http://www.idangero.us/swiper/
*
* Copyright 2015, Vladimir Kharlampidi
* The iDangero.us
* http://www.idangero.us/
*
* Licensed under MIT
*
* Released on: March 6, 2015
*/
.swiper-slide
,
.swiper-wrapper
{
height
:
100%
;
position
:
relative
;
transform-style
:
preserve-3d
;
width
:
100%
}
.swiper-pagination
,
.swiper-wrapper
{
-webkit-transform
:
translate3d
(
0
,
0
,
0
)}
.swiper-container
{
margin
:
0
auto
;
position
:
relative
;
overflow
:
hidden
;
z-index
:
1
}
.swiper-container-vertical
>
.swiper-wrapper
{
-webkit-box-orient
:
vertical
;
-moz-box-orient
:
vertical
;
-ms-flex-direction
:
column
;
-webkit-flex-direction
:
column
;
flex-direction
:
column
}
.swiper-wrapper
{
z-index
:
1
;
display
:
-webkit-box
;
display
:
-moz-box
;
display
:
-ms-flexbox
;
display
:
-webkit-flex
;
display
:
flex
;
-webkit-transition-property
:
-webkit-transform
;
-moz-transition-property
:
-moz-transform
;
-o-transition-property
:
-o-transform
;
-ms-transition-property
:
-ms-transform
;
transition-property
:
transform
;
-moz-transform
:
translate3d
(
0
,
0
,
0
);
-o-transform
:
translate
(
0
,
0
);
-ms-transform
:
translate3d
(
0
,
0
,
0
);
transform
:
translate3d
(
0
,
0
,
0
);
-webkit-box-sizing
:
content-box
;
-moz-box-sizing
:
content-box
;
box-sizing
:
content-box
}
.swiper-slide
,
.swiper-wrapper
{
-ms-transform-style
:
preserve-3d
;
-moz-transform-style
:
preserve-3d
;
-webkit-transform-style
:
preserve-3d
}
.swiper-container-multirow
>
.swiper-wrapper
{
-webkit-box-lines
:
multiple
;
-moz-box-lines
:
multiple
;
-ms-fles-wrap
:
wrap
;
-webkit-flex-wrap
:
wrap
;
flex-wrap
:
wrap
}
.swiper-container-free-mode
>
.swiper-wrapper
{
-webkit-transition-timing-function
:
ease-out
;
-moz-transition-timing-function
:
ease-out
;
-ms-transition-timing-function
:
ease-out
;
-o-transition-timing-function
:
ease-out
;
transition-timing-function
:
ease-out
;
margin
:
0
auto
}
.swiper-slide
{
-webkit-flex-shrink
:
0
;
-ms-flex
:
0
0
auto
;
flex-shrink
:
0
}
.swiper-wp8-horizontal
{
-ms-touch-action
:
pan-y
;
touch-action
:
pan-y
}
.swiper-wp8-vertical
{
-ms-touch-action
:
pan-x
;
touch-action
:
pan-x
}
.swiper-button-next
,
.swiper-button-prev
{
position
:
absolute
;
top
:
50%
;
width
:
27px
;
height
:
44px
;
margin-top
:
-22px
;
z-index
:
10
;
cursor
:
pointer
;
-moz-background-size
:
27px
44px
;
-webkit-background-size
:
27px
44px
;
background-size
:
27px
44px
;
background-position
:
center
;
background-repeat
:
no-repeat
}
.swiper-button-next.swiper-button-disabled
,
.swiper-button-prev.swiper-button-disabled
{
opacity
:
.35
;
cursor
:
auto
}
.swiper-button-prev
,
.swiper-container-rtl
.swiper-button-next
{
background-image
:
url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M0%2C22L22%2C0l2.1%2C2.1L4.2%2C22l19.9%2C19.9L22%2C44L0%2C22L0%2C22L0%2C22z'%20fill%3D'%23007aff'%2F%3E%3C%2Fsvg%3E")
;
left
:
10px
;
right
:
auto
}
.swiper-button-prev.swiper-button-black
,
.swiper-container-rtl
.swiper-button-next.swiper-button-black
{
background-image
:
url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M0%2C22L22%2C0l2.1%2C2.1L4.2%2C22l19.9%2C19.9L22%2C44L0%2C22L0%2C22L0%2C22z'%20fill%3D'%23000000'%2F%3E%3C%2Fsvg%3E")
}
.swiper-button-prev.swiper-button-white
,
.swiper-container-rtl
.swiper-button-next.swiper-button-white
{
background-image
:
url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M0%2C22L22%2C0l2.1%2C2.1L4.2%2C22l19.9%2C19.9L22%2C44L0%2C22L0%2C22L0%2C22z'%20fill%3D'%23ffffff'%2F%3E%3C%2Fsvg%3E")
}
.swiper-button-next
,
.swiper-container-rtl
.swiper-button-prev
{
background-image
:
url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M27%2C22L27%2C22L5%2C44l-2.1-2.1L22.8%2C22L2.9%2C2.1L5%2C0L27%2C22L27%2C22z'%20fill%3D'%23007aff'%2F%3E%3C%2Fsvg%3E")
;
right
:
10px
;
left
:
auto
}
.swiper-button-next.swiper-button-black
,
.swiper-container-rtl
.swiper-button-prev.swiper-button-black
{
background-image
:
url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M27%2C22L27%2C22L5%2C44l-2.1-2.1L22.8%2C22L2.9%2C2.1L5%2C0L27%2C22L27%2C22z'%20fill%3D'%23000000'%2F%3E%3C%2Fsvg%3E")
}
.swiper-button-next.swiper-button-white
,
.swiper-container-rtl
.swiper-button-prev.swiper-button-white
{
background-image
:
url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M27%2C22L27%2C22L5%2C44l-2.1-2.1L22.8%2C22L2.9%2C2.1L5%2C0L27%2C22L27%2C22z'%20fill%3D'%23ffffff'%2F%3E%3C%2Fsvg%3E")
}
.swiper-pagination
{
position
:
absolute
;
text-align
:
center
;
-webkit-transition
:
300ms
;
-moz-transition
:
300ms
;
-o-transition
:
300ms
;
transition
:
300ms
;
-ms-transform
:
translate3d
(
0
,
0
,
0
);
-o-transform
:
translate3d
(
0
,
0
,
0
);
transform
:
translate3d
(
0
,
0
,
0
);
z-index
:
10
}
.swiper-pagination.swiper-pagination-hidden
{
opacity
:
0
}
.swiper-pagination-bullet
{
width
:
8px
;
height
:
8px
;
display
:
inline-block
;
border-radius
:
100%
;
background
:
#000
;
opacity
:
.2
}
.swiper-pagination-clickable
.swiper-pagination-bullet
{
cursor
:
pointer
}
.swiper-pagination-white
.swiper-pagination-bullet
{
background
:
#fff
}
.swiper-pagination-bullet-active
{
opacity
:
1
;
background
:
#007aff
}
.swiper-pagination-white
.swiper-pagination-bullet-active
{
background
:
#fff
}
.swiper-pagination-black
.swiper-pagination-bullet-active
{
background
:
#000
}
.swiper-container-vertical
>
.swiper-pagination
{
right
:
10px
;
top
:
50%
;
-webkit-transform
:
translate3d
(
0
,
-50%
,
0
);
-moz-transform
:
translate3d
(
0
,
-50%
,
0
);
-o-transform
:
translate
(
0
,
-50%
);
-ms-transform
:
translate3d
(
0
,
-50%
,
0
);
transform
:
translate3d
(
0
,
-50%
,
0
)}
.swiper-container-vertical
>
.swiper-pagination
.swiper-pagination-bullet
{
margin
:
5px
0
;
display
:
block
}
.swiper-container-horizontal
>
.swiper-pagination
{
bottom
:
10px
;
left
:
0
;
width
:
100%
}
.swiper-container-horizontal
>
.swiper-pagination
.swiper-pagination-bullet
{
margin
:
0
5px
}
.swiper-container-3d
{
-webkit-perspective
:
1200px
;
-moz-perspective
:
1200px
;
-o-perspective
:
1200px
;
perspective
:
1200px
}
.swiper-container-3d
.swiper-cube-shadow
,
.swiper-container-3d
.swiper-slide
,
.swiper-container-3d
.swiper-slide-shadow-bottom
,
.swiper-container-3d
.swiper-slide-shadow-left
,
.swiper-container-3d
.swiper-slide-shadow-right
,
.swiper-container-3d
.swiper-slide-shadow-top
,
.swiper-container-3d
.swiper-wrapper
{
-webkit-transform-style
:
preserve-3d
;
-moz-transform-style
:
preserve-3d
;
-ms-transform-style
:
preserve-3d
;
transform-style
:
preserve-3d
}
.swiper-container-3d
.swiper-slide-shadow-bottom
,
.swiper-container-3d
.swiper-slide-shadow-left
,
.swiper-container-3d
.swiper-slide-shadow-right
,
.swiper-container-3d
.swiper-slide-shadow-top
{
position
:
absolute
;
left
:
0
;
top
:
0
;
width
:
100%
;
height
:
100%
;
pointer-events
:
none
;
z-index
:
10
}
.swiper-container-3d
.swiper-slide-shadow-left
{
background-image
:
-webkit-gradient
(
linear
,
left
top
,
right
top
,
from
(
rgba
(
0
,
0
,
0
,
.5
)),
to
(
rgba
(
0
,
0
,
0
,
0
)));
background-image
:
-webkit-linear-gradient
(
right
,
rgba
(
0
,
0
,
0
,
.5
),
rgba
(
0
,
0
,
0
,
0
));
background-image
:
-moz-linear-gradient
(
right
,
rgba
(
0
,
0
,
0
,
.5
),
rgba
(
0
,
0
,
0
,
0
));
background-image
:
-o-linear-gradient
(
right
,
rgba
(
0
,
0
,
0
,
.5
),
rgba
(
0
,
0
,
0
,
0
));
background-image
:
linear-gradient
(
to
left
,
rgba
(
0
,
0
,
0
,
.5
),
rgba
(
0
,
0
,
0
,
0
))}
.swiper-container-3d
.swiper-slide-shadow-right
{
background-image
:
-webkit-gradient
(
linear
,
right
top
,
left
top
,
from
(
rgba
(
0
,
0
,
0
,
.5
)),
to
(
rgba
(
0
,
0
,
0
,
0
)));
background-image
:
-webkit-linear-gradient
(
left
,
rgba
(
0
,
0
,
0
,
.5
),
rgba
(
0
,
0
,
0
,
0
));
background-image
:
-moz-linear-gradient
(
left
,
rgba
(
0
,
0
,
0
,
.5
),
rgba
(
0
,
0
,
0
,
0
));
background-image
:
-o-linear-gradient
(
left
,
rgba
(
0
,
0
,
0
,
.5
),
rgba
(
0
,
0
,
0
,
0
));
background-image
:
linear-gradient
(
to
right
,
rgba
(
0
,
0
,
0
,
.5
),
rgba
(
0
,
0
,
0
,
0
))}
.swiper-container-3d
.swiper-slide-shadow-top
{
background-image
:
-webkit-gradient
(
linear
,
left
top
,
left
bottom
,
from
(
rgba
(
0
,
0
,
0
,
.5
)),
to
(
rgba
(
0
,
0
,
0
,
0
)));
background-image
:
-webkit-linear-gradient
(
bottom
,
rgba
(
0
,
0
,
0
,
.5
),
rgba
(
0
,
0
,
0
,
0
));
background-image
:
-moz-linear-gradient
(
bottom
,
rgba
(
0
,
0
,
0
,
.5
),
rgba
(
0
,
0
,
0
,
0
));
background-image
:
-o-linear-gradient
(
bottom
,
rgba
(
0
,
0
,
0
,
.5
),
rgba
(
0
,
0
,
0
,
0
));
background-image
:
linear-gradient
(
to
top
,
rgba
(
0
,
0
,
0
,
.5
),
rgba
(
0
,
0
,
0
,
0
))}
.swiper-container-3d
.swiper-slide-shadow-bottom
{
background-image
:
-webkit-gradient
(
linear
,
left
bottom
,
left
top
,
from
(
rgba
(
0
,
0
,
0
,
.5
)),
to
(
rgba
(
0
,
0
,
0
,
0
)));
background-image
:
-webkit-linear-gradient
(
top
,
rgba
(
0
,
0
,
0
,
.5
),
rgba
(
0
,
0
,
0
,
0
));
background-image
:
-moz-linear-gradient
(
top
,
rgba
(
0
,
0
,
0
,
.5
),
rgba
(
0
,
0
,
0
,
0
));
background-image
:
-o-linear-gradient
(
top
,
rgba
(
0
,
0
,
0
,
.5
),
rgba
(
0
,
0
,
0
,
0
));
background-image
:
linear-gradient
(
to
bottom
,
rgba
(
0
,
0
,
0
,
.5
),
rgba
(
0
,
0
,
0
,
0
))}
.swiper-container-coverflow
.swiper-wrapper
{
-ms-perspective
:
1200px
}
.swiper-container-fade.swiper-container-free-mode
.swiper-slide
{
-webkit-transition-timing-function
:
ease-out
;
-moz-transition-timing-function
:
ease-out
;
-ms-transition-timing-function
:
ease-out
;
-o-transition-timing-function
:
ease-out
;
transition-timing-function
:
ease-out
}
.swiper-container-fade
.swiper-slide
{
pointer-events
:
none
}
.swiper-container-fade
.swiper-slide-active
{
pointer-events
:
auto
}
.swiper-container-cube
{
overflow
:
visible
}
.swiper-container-cube
.swiper-slide
{
pointer-events
:
none
;
visibility
:
hidden
;
-webkit-transform-origin
:
0
0
;
-moz-transform-origin
:
0
0
;
-ms-transform-origin
:
0
0
;
transform-origin
:
0
0
;
-webkit-backface-visibility
:
hidden
;
-moz-backface-visibility
:
hidden
;
-ms-backface-visibility
:
hidden
;
backface-visibility
:
hidden
;
width
:
100%
;
height
:
100%
}
.swiper-container-cube.swiper-container-rtl
.swiper-slide
{
-webkit-transform-origin
:
100%
0
;
-moz-transform-origin
:
100%
0
;
-ms-transform-origin
:
100%
0
;
transform-origin
:
100%
0
}
.swiper-container-cube
.swiper-slide-active
,
.swiper-container-cube
.swiper-slide-next
,
.swiper-container-cube
.swiper-slide-next
+
.swiper-slide
,
.swiper-container-cube
.swiper-slide-prev
{
pointer-events
:
auto
;
visibility
:
visible
}
.swiper-container-cube
.swiper-cube-shadow
{
position
:
absolute
;
left
:
0
;
bottom
:
0
;
width
:
100%
;
height
:
100%
;
background
:
#000
;
opacity
:
.6
;
-webkit-filter
:
blur
(
50px
);
filter
:
blur
(
50px
)}
.swiper-container-cube.swiper-container-vertical
.swiper-cube-shadow
{
z-index
:
0
}
.swiper-scrollbar
{
border-radius
:
10px
;
position
:
relative
;
-ms-touch-action
:
none
;
background
:
rgba
(
0
,
0
,
0
,
.1
)}
.swiper-container-horizontal
>
.swiper-scrollbar
{
position
:
absolute
;
left
:
1%
;
bottom
:
3px
;
z-index
:
50
;
height
:
5px
;
width
:
98%
}
.swiper-container-vertical
>
.swiper-scrollbar
{
position
:
absolute
;
right
:
3px
;
top
:
1%
;
z-index
:
50
;
width
:
5px
;
height
:
98%
}
.swiper-scrollbar-drag
{
height
:
100%
;
width
:
100%
;
position
:
relative
;
background
:
rgba
(
0
,
0
,
0
,
.5
);
border-radius
:
10px
;
left
:
0
;
top
:
0
}
.swiper-scrollbar-cursor-drag
{
cursor
:
move
}
.swiper-lazy-preloader
{
width
:
42px
;
height
:
42px
;
position
:
absolute
;
left
:
50%
;
top
:
50%
;
margin-left
:
-21px
;
margin-top
:
-21px
;
z-index
:
10
;
-webkit-transform-origin
:
50%
;
-moz-transform-origin
:
50%
;
transform-origin
:
50%
;
-webkit-animation
:
swiper-preloader-spin
1s
step-end
infinite
;
-moz-animation
:
swiper-preloader-spin
1s
step-end
infinite
;
animation
:
swiper-preloader-spin
1s
step-end
infinite
}
.swiper-lazy-preloader
:after
{
display
:
block
;
content
:
""
;
width
:
100%
;
height
:
100%
;
background-image
:
url("data:image/svg+xml;charset=utf-8,%3Csvg%20viewBox%3D'0%200%20120%20120'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20xmlns%3Axlink%3D'http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink'%3E%3Cdefs%3E%3Cline%20id%3D'l'%20x1%3D'60'%20x2%3D'60'%20y1%3D'7'%20y2%3D'27'%20stroke%3D'%236c6c6c'%20stroke-width%3D'11'%20stroke-linecap%3D'round'%2F%3E%3C%2Fdefs%3E%3Cg%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(30%2060%2C60)
'%2F%3E%3Cuse%20xlink%3Ahref%3D'
%
23
l
'%20opacity%3D'
.27
'%20transform%3D'
rotate
(
60%2060%2
C60
)
'%2F%3E%3Cuse%20xlink%3Ahref%3D'
%
23
l
'%20opacity%3D'
.27
'%20transform%3D'
rotate
(
90%2060%2
C60
)
'%2F%3E%3Cuse%20xlink%3Ahref%3D'
%
23
l
'%20opacity%3D'
.27
'%20transform%3D'
rotate
(
120%2060%2
C60
)
'%2F%3E%3Cuse%20xlink%3Ahref%3D'
%
23
l
'%20opacity%3D'
.27
'%20transform%3D'
rotate
(
150%2060%2
C60
)
'%2F%3E%3Cuse%20xlink%3Ahref%3D'
%
23
l
'%20opacity%3D'
.37
'%20transform%3D'
rotate
(
180%2060%2
C60
)
'%2F%3E%3Cuse%20xlink%3Ahref%3D'
%
23
l
'%20opacity%3D'
.46
'%20transform%3D'
rotate
(
210%2060%2
C60
)
'%2F%3E%3Cuse%20xlink%3Ahref%3D'
%
23
l
'%20opacity%3D'
.56
'%20transform%3D'
rotate
(
240%2060%2
C60
)
'%2F%3E%3Cuse%20xlink%3Ahref%3D'
%
23
l
'%20opacity%3D'
.66
'%20transform%3D'
rotate
(
270%2060%2
C60
)
'%2F%3E%3Cuse%20xlink%3Ahref%3D'
%
23
l
'%20opacity%3D'
.75
'%20transform%3D'
rotate
(
300%2060%2
C60
)
'%2F%3E%3Cuse%20xlink%3Ahref%3D'
%
23
l
'%20opacity%3D'
.85
'%20transform%3D'
rotate
(
330%2060%2
C60
)
'%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E");background-position:50%;-webkit-background-size:100%;background-size:100%;background-repeat:no-repeat}.swiper-lazy-preloader-white:after{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg%20viewBox%3D'
0%200%20120%20120
'%20xmlns%3D'
http
%
3
A
%
2
F
%
2
Fwww
.
w3
.
org
%
2
F2000
%
2
Fsvg
'%20xmlns%3Axlink%3D'
http
%
3
A
%
2
F
%
2
Fwww
.
w3
.
org
%
2
F1999
%
2
Fxlink
'%3E%3Cdefs%3E%3Cline%20id%3D'
l
'%20x1%3D'
60
'%20x2%3D'
60
'%20y1%3D'
7
'%20y2%3D'
27
'%20stroke%3D'
%
23
fff
'%20stroke-width%3D'
11
'%20stroke-linecap%3D'
round
'%2F%3E%3C%2Fdefs%3E%3Cg%3E%3Cuse%20xlink%3Ahref%3D'
%
23
l
'%20opacity%3D'
.27
'%2F%3E%3Cuse%20xlink%3Ahref%3D'
%
23
l
'%20opacity%3D'
.27
'%20transform%3D'
rotate
(
30%2060%2
C60
)
'%2F%3E%3Cuse%20xlink%3Ahref%3D'
%
23
l
'%20opacity%3D'
.27
'%20transform%3D'
rotate
(
60%2060%2
C60
)
'%2F%3E%3Cuse%20xlink%3Ahref%3D'
%
23
l
'%20opacity%3D'
.27
'%20transform%3D'
rotate
(
90%2060%2
C60
)
'%2F%3E%3Cuse%20xlink%3Ahref%3D'
%
23
l
'%20opacity%3D'
.27
'%20transform%3D'
rotate
(
120%2060%2
C60
)
'%2F%3E%3Cuse%20xlink%3Ahref%3D'
%
23
l
'%20opacity%3D'
.27
'%20transform%3D'
rotate
(
150%2060%2
C60
)
'%2F%3E%3Cuse%20xlink%3Ahref%3D'
%
23
l
'%20opacity%3D'
.37
'%20transform%3D'
rotate
(
180%2060%2
C60
)
'%2F%3E%3Cuse%20xlink%3Ahref%3D'
%
23
l
'%20opacity%3D'
.46
'%20transform%3D'
rotate
(
210%2060%2
C60
)
'%2F%3E%3Cuse%20xlink%3Ahref%3D'
%
23
l
'%20opacity%3D'
.56
'%20transform%3D'
rotate
(
240%2060%2
C60
)
'%2F%3E%3Cuse%20xlink%3Ahref%3D'
%
23
l
'%20opacity%3D'
.66
'%20transform%3D'
rotate
(
270%2060%2
C60
)
'%2F%3E%3Cuse%20xlink%3Ahref%3D'
%
23
l
'%20opacity%3D'
.75
'%20transform%3D'
rotate
(
300%2060%2
C60
)
'%2F%3E%3Cuse%20xlink%3Ahref%3D'
%
23
l
'%20opacity%3D'
.85
'%20transform%3D'
rotate
(
330%2060%2
C60
)
'%
2
F
%
3
E
%
3
C
%
2
Fg
%
3
E
%
3
C
%
2
Fsvg
%
3
E
"
)}
@-webkit-keyframes
swiper-preloader-spin
{
0
%
{
-webkit-transform
:
rotate
(
0
)}
8
.33333333
%
{
-webkit-transform
:
rotate
(
30deg
)}
16
.66666667
%
{
-webkit-transform
:
rotate
(
60deg
)}
25
%
{
-webkit-transform
:
rotate
(
90deg
)}
33
.33333333
%
{
-webkit-transform
:
rotate
(
120deg
)}
41
.66666667
%
{
-webkit-transform
:
rotate
(
150deg
)}
50
%
{
-webkit-transform
:
rotate
(
180deg
)}
58
.33333333
%
{
-webkit-transform
:
rotate
(
210deg
)}
66
.66666667
%
{
-webkit-transform
:
rotate
(
240deg
)}
75
%
{
-webkit-transform
:
rotate
(
270deg
)}
83
.33333333
%
{
-webkit-transform
:
rotate
(
300deg
)}
91
.66666667
%
{
-webkit-transform
:
rotate
(
330deg
)}
100
%
{
-webkit-transform
:
rotate
(
360deg
)}}
@keyframes
swiper-preloader-spin
{
0
%
{
transform
:
rotate
(
0
)}
8
.33333333
%
{
transform
:
rotate
(
30deg
)}
16
.66666667
%
{
transform
:
rotate
(
60deg
)}
25
%
{
transform
:
rotate
(
90deg
)}
33
.33333333
%
{
transform
:
rotate
(
120deg
)}
41
.66666667
%
{
transform
:
rotate
(
150deg
)}
50
%
{
transform
:
rotate
(
180deg
)}
58
.33333333
%
{
transform
:
rotate
(
210deg
)}
66
.66666667
%
{
transform
:
rotate
(
240deg
)}
75
%
{
transform
:
rotate
(
270deg
)}
83
.33333333
%
{
transform
:
rotate
(
300deg
)}
91
.66666667
%
{
transform
:
rotate
(
330deg
)}
100
%
{
transform
:
rotate
(
360deg
)}}
\ No newline at end of file
src/components/mall/newTrip.vue
View file @
6f0fb34f
...
...
@@ -1303,6 +1303,23 @@
this
.
scrollobj
=
document
.
getElementsByClassName
(
'el-scrollbar__wrap'
)[
0
];
this
.
scrollobj
.
addEventListener
(
'scroll'
,
this
.
handleScroll
);
this
.
getTrip
();
let
userAgentInfo
=
navigator
.
userAgent
;
let
Agents
=
[
"Android"
,
"iPhone"
,
"SymbianOS"
,
"Windows Phone"
,
"iPad"
,
"iPod"
];
for
(
let
v
=
0
;
v
<
Agents
.
length
;
v
++
)
{
if
(
userAgentInfo
.
indexOf
(
Agents
[
v
])
>
0
)
{
this
.
$router
.
push
({
name
:
'tripMobile'
,
query
:
{
ID
:
decodeURIComponent
(
this
.
msg
.
ID
),
tcid
:
decodeURIComponent
(
this
.
msg
.
tcid
),
}
});
}
}
},
components
:
{
tripMap
...
...
src/components/mall/tripMobile.vue
0 → 100644
View file @
6f0fb34f
<
style
>
@import
url("../../assets/css/swiper.min.css")
;
.tripMobileContent
{
height
:
100%
;
position
:
relative
;
overflow
:
hidden
;
}
.tripMobileContent
.tripInnerContent
{
background-color
:
#00a4a8
;
padding
:
12px
;
overflow
:
hidden
;
height
:
100%
;
box-sizing
:
border-box
;
}
.tripMobileContent
.swiper-container
{
width
:
100%
;
height
:
100%
;
}
.tripMobileContent
.swiper-container-scrollbar
.swiper-slide
{
height
:
auto
;
}
.tripMobileContent
.tripInnerContent
.swiper-container
.swiper-slide
{
background-color
:
#fff
;
}
.tripMobileContent
.tripViewMap
{
height
:
300px
;
left
:
0
;
top
:
0
;
width
:
100%
;
overflow
:
hidden
;
}
.tripMobileContent
.tripInnerContent
.tripCityList
.tripDay
{
padding
:
10px
0
10px
65px
;
box-sizing
:
border-box
;
position
:
relative
;
border-bottom
:
1px
#dcdee0
solid
;
min-height
:
60px
;
}
.tripInnerContent
.tripCityList
.tripDay
.leftDay
{
position
:
absolute
;
left
:
0
;
width
:
65px
;
text-align
:
center
;
top
:
50%
;
-webkit-transform
:
translateY
(
-50%
);
-ms-transform
:
translateY
(
-50%
);
transform
:
translateY
(
-50%
);
-moz-transform
:
translateY
(
-50%
);
}
.tripMobileContent
.TripdayIndex
{
color
:
#00a4a8
;
font-size
:
20px
;
font-weight
:
700
;
}
.tripInnerContent
.tripCityList
.tripDay
.TripCitys
{
font-size
:
18px
;
line-height
:
24px
;
min-height
:
40px
;
width
:
100%
;
color
:
#455661
;
border-left
:
1px
#dcdee0
solid
;
padding
:
10px
0
10px
15px
;
-webkit-box-sizing
:
border-box
;
-moz-box-sizing
:
border-box
;
box-sizing
:
border-box
;
}
.tripMobileContent
.cityLists
{
display
:
inline-block
;
font-size
:
18px
;
line-height
:
24px
;
color
:
#455661
;
}
.tripMobileContent
.TripCitys
i
{
color
:
#00a4a8
;
margin
:
0
10px
;
font-size
:
18px
;
}
.tripMobileContent
.TripInner
{
margin
:
15px
;
color
:
#869096
;
font-size
:
14px
;
}
.tripMobileContent
.TripHeader
{
font-weight
:
700
;
font-size
:
26px
;
overflow
:
hidden
;
color
:
#00a4a8
;
}
.TripArticleCont
{
font-size
:
16px
;
line-height
:
160%
;
min-height
:
30px
;
}
.TripArticleCont
p
{
margin
:
16px
0
;
}
.tripMobileContent
.col-md-12
{
width
:
100%
;
}
.tripMobileContent
.arrangeSubHeader
{
position
:
relative
;
font-weight
:
500
;
font-size
:
16px
;
line-height
:
20px
;
margin
:
25px
0
15px
;
}
.arrangeSubHeader
.subTitle
{
display
:
inline-block
;
background
:
#fff
;
padding-right
:
10px
;
position
:
relative
;
z-index
:
2
;
color
:
#4f5a60
;
}
.arrangeSubHeader
:after
{
display
:
block
;
position
:
absolute
;
border-bottom
:
1px
#dbe0e4
solid
;
width
:
100%
;
z-index
:
0
;
bottom
:
1px
;
top
:
10px
;
content
:
" "
;
}
.arrangeSubContainer
{
border
:
1px
solid
#dbe0e4
;
border-radius
:
5px
;
margin
:
8px
0
;
min-height
:
40px
;
}
.dayIndex
{
color
:
#00a4a8
;
margin-right
:
10px
;
}
.arrangeSubContainer
.subHeader
{
background-color
:
#eff1f2
;
height
:
34px
;
font-size
:
14px
;
border-bottom
:
#dbe0e4
dotted
1px
;
padding
:
0
10px
;
line-height
:
34px
;
}
.arrangeSubContainer
.subContent
{
padding
:
5px
8px
;
}
.arrangeSubContainer
.flightName
{
font-size
:
14px
;
color
:
#4f5a60
;
margin
:
5px
0
;
font-weight
:
700
;
}
.TripfromTo
{
position
:
relative
;
overflow
:
hidden
;
height
:
70px
;
}
.TripFrom
{
float
:
left
;
width
:
50%
;
box-sizing
:
border-box
;
padding-right
:
50px
;
color
:
#4f5a60
;
}
.TfromName
{
font-size
:
14px
;
margin
:
5px
0
;
}
.TripMiddle
{
position
:
absolute
;
text-align
:
center
;
width
:
100%
;
top
:
-3px
;
}
.TripMiddle
i
{
font-size
:
24px
;
color
:
#4f5a60
;
}
.TripTo
{
float
:
left
;
width
:
50%
;
box-sizing
:
border-box
;
padding-left
:
50px
;
color
:
#4f5a60
;
}
.TripHotel
{
background-color
:
#fff
;
display
:
flex
;
height
:
34px
;
font-size
:
14px
;
border-bottom
:
#dbe0e4
dotted
1px
;
padding
:
0
10px
;
line-height
:
34px
;
}
.TripCity
{
color
:
#455661
;
font-size
:
14px
;
font-weight
:
700
;
margin-right
:
10px
;
overflow
:
hidden
;
white-space
:
nowrap
;
text-overflow
:
ellipsis
;
}
.stayHotel
{
position
:
relative
;
overflow
:
hidden
;
margin
:
5px
0
;
}
.hotelLeft
{
float
:
left
;
color
:
#00b2b4
;
font-size
:
20px
;
width
:
10%
;
box-sizing
:
border-box
;
padding-left
:
3px
;
}
.hotelRight
{
margin-top
:
4px
;
float
:
left
;
width
:
90%
;
box-sizing
:
border-box
;
}
.slideHeader
{
color
:
#00a4a8
;
font-weight
:
700
;
font-size
:
26px
;
overflow
:
hidden
;
font-family
:
"PingFangR"
;
}
.slideHeader
.dayNum
{
font-size
:
40px
;
font-weight
:
400
;
line-height
:
40px
;
position
:
absolute
;
left
:
0
;
top
:
0
;
}
.slideHeader
.dayNumRight
{
font-size
:
16px
;
font-weight
:
400
;
color
:
#4f5a61
;
margin-left
:
90px
;
}
.tripComInner
{
margin
:
15px
;
color
:
#869096
;
font-size
:
14px
;
}
.tripArticleCont
{
min-height
:
30px
;
margin-bottom
:
20px
;
font-size
:
16px
;
line-height
:
160%
;
}
.tripArticleCont
p
{
margin
:
16px
0
;
}
.tripSlideHeader
{
position
:
relative
;
color
:
#00a4a8
;
}
.tripSlideHeader
.tripSubTitle
{
display
:
inline-block
;
background
:
#fff
;
padding-right
:
10px
;
position
:
relative
;
z-index
:
2
;
}
.tripSlideHeader
:after
{
content
:
" "
;
display
:
block
;
position
:
absolute
;
border-bottom
:
1px
#00b2b4
solid
;
width
:
100%
;
top
:
10px
;
z-index
:
0
;
}
.tripMobileViewAgendaList
{
margin-top
:
30px
;
background
:
url(../../assets/img/newtrip/agendaBorder.png)
40px
top
repeat-y
;
background-size
:
2px
auto
;
}
.tripMobileViewAgendaList
.agendaBox
{
background
:
#fff
;
position
:
relative
;
margin-bottom
:
60px
;
}
.tripMobileViewAgendaList
.tripIndexNum
{
font-size
:
18px
;
line-height
:
40px
;
text-align
:
center
;
width
:
40px
;
border-radius
:
40px
;
position
:
absolute
;
top
:
-20px
;
left
:
20px
;
z-index
:
9
;
background
:
#00a4a8
;
color
:
#fff
;
}
.tripCoverWrap
{
text-align
:
right
;
height
:
150px
;
color
:
#fff
;
position
:
relative
;
background-size
:
cover
!important
;
}
.tripMobileViewAgendaList
.tripTxtCont
{
padding
:
10px
20px
;
box-shadow
:
rgba
(
0
,
0
,
0
,
0.1
)
0
1px
1px
0
;
border
:
1px
solid
#dcdedf
;
white-space
:
pre-wrap
;
border-top
:
0
;
}
.tripAgendaPoi
{
color
:
#00a4a8
;
font-size
:
22px
;
margin-top
:
10px
;
}
.tripComtitle
{
font-size
:
22px
;
line-height
:
24px
;
max-height
:
48px
;
overflow
:
hidden
;
font-weight
:
700
;
padding
:
0
12px
;
}
.tripDetailBox
{
display
:
block
;
color
:
#626262
;
font-size
:
14px
;
}
.tripAgendaPoi
.tour
{
font-size
:
22px
;
}
.Divtriangle
{
position
:
absolute
;
left
:
26px
;
bottom
:
-16px
;
width
:
0
;
height
:
0
;
border-left
:
15px
solid
transparent
;
border-right
:
15px
solid
transparent
;
border-top
:
15px
solid
#dcdedf
;
}
.Divtriangle
span
{
display
:
block
;
width
:
0
;
height
:
0
;
border-left
:
28px
solid
transparent
;
border-right
:
28px
solid
transparent
;
border-top
:
28px
solid
#fff
;
position
:
absolute
;
left
:
-28px
;
top
:
-29px
;
}
.tripAgendaTransitBox
{
overflow
:
hidden
;
margin
:
60px
0
;
}
.tripAgendaTransitBox
.transitIcon
{
float
:
left
;
margin
:
5px
0
0
60px
;
font-size
:
16px
;
}
.tripAgendaTransitBox
.transitIcon
i
{
font-size
:
20px
;
}
.tripAgendaTransitBox
.transitInfoTxt
{
line-height
:
34px
;
position
:
relative
;
top
:
3px
;
margin-left
:
10px
;
}
.tripMobileViewAgendaList
.hotelCur
{
background
:
#3d4756
;
color
:
#fff
;
}
.tripAgendaPoiHotel
{
color
:
#3d4756
;
font-size
:
22px
;
margin-top
:
10px
;
}
.tripAgendaPoiHotel
i
{
font-size
:
22px
;
}
.tripAgendaPoiHotel
.title
{
font-size
:
22px
;
line-height
:
24px
;
max-height
:
48px
;
overflow
:
hidden
;
font-weight
:
700
;
padding
:
0
12px
;
}
.tripMobileContent
.tripDetailBox
.detailSection
{
border-top
:
1px
#eee
solid
;
border-bottom
:
1px
#eee
solid
;
padding
:
10px
0
;
margin-top
:
20px
;
}
.tripMobileContent
.tripDetailBox
.item
{
margin
:
8px
0
;
}
.tripMobileContent
.tripDetailBox
.label
{
display
:
inline-block
;
width
:
22%
;
color
:
#959595
;
vertical-align
:
top
;
padding-right
:
15px
;
text-align
:
right
;
}
.tripMobileContent
.tripDetailBox
.text
{
display
:
-webkit-inline-box
;
width
:
72%
;
vertical-align
:
top
;
text-align
:
justify
;
text-justify
:
newspaper
;
word-break
:
break-all
;
}
.TripsubSection
{
margin
:
20px
0
;
}
.TripdetailSection
{
padding
:
10px
0
;
}
.tripMobileContent
.agendaBox
.TripshowMore
{
color
:
#00b2b4
;
margin
:
10px
auto
;
padding
:
4px
2px
;
border-radius
:
2px
;
border
:
1px
solid
#00b2b4
;
width
:
100px
;
text-align
:
center
;
font-size
:
12px
;
cursor
:
pointer
;
}
.swiperFixedBtn
{
position
:
fixed
;
bottom
:
-40px
;
right
:
-40px
;
width
:
120px
;
height
:
120px
;
z-index
:
199
;
border-radius
:
220px
0
0
;
background-color
:
#00a4a8
;
}
.TripctrlBtn
{
position
:
absolute
;
font-size
:
28px
;
color
:
#fff
;
right
:
26px
;
bottom
:
30px
;
text-align
:
center
;
line-height
:
85px
;
width
:
80px
;
height
:
80px
;
border-radius
:
220px
0
0
;
}
.tripMenuWrap
{
position
:
fixed
;
bottom
:
0
;
left
:
0
;
width
:
100%
;
height
:
100%
;
z-index
:
181
;
font-size
:
14px
;
text-align
:
center
;
}
.tripMenuWrap
.greyBg
{
width
:
100%
;
height
:
100%
;
cursor
:
pointer
;
background
:
rgba
(
0
,
0
,
0
,
0.5
);
}
.tripMenuWrap
.tripMenu
{
position
:
absolute
;
bottom
:
12px
;
left
:
12px
;
right
:
12px
;
padding
:
20px
20px
60px
;
background
:
#fff
;
border-radius
:
5px
;
overflow
:
auto
;
max-height
:
calc
(
100vh
-
40px
);
-webkit-box-sizing
:
border-box
;
-moz-box-sizing
:
border-box
;
box-sizing
:
border-box
;
}
.tripMenuWrap
.btnPageHeader
{
margin
:
10px
0
;
font-size
:
18px
;
}
.tripHalf
{
float
:
left
;
width
:
48%
;
margin-right
:
10px
;
-webkit-box-sizing
:
border-box
;
}
.tripHalf
:nth-child
(
2n
)
{
margin-right
:
0
;
}
.tripMenuWrap
.btnPage
{
border
:
1px
solid
#b6bdc1
;
border-radius
:
5px
;
height
:
50px
;
margin
:
5px
0
;
cursor
:
pointer
;
}
.TripmenuTitle
{
line-height
:
50px
;
margin-left
:
3px
;
}
.alterClear
{
display
:
table
;
content
:
" "
;
clear
:
both
;
}
.tripMenuWrap
.btnDayHeader
{
position
:
relative
;
text-align
:
center
;
line-height
:
20px
;
height
:
20px
;
margin
:
10px
0
;
}
.tripMenuWrap
.btnDayHeader
:before
{
display
:
block
;
position
:
absolute
;
width
:
100%
;
left
:
0
;
border-top
:
1px
#dbe0e3
solid
;
z-index
:
0
;
top
:
10px
;
content
:
" "
;
}
.tripMenuWrap
.btnDayHeader
span
{
display
:
inline-block
;
background
:
#fff
;
position
:
relative
;
z-index
:
2
;
padding
:
0
20px
;
}
.tripMenuWrap
.btnDayList
{
clear
:
both
;
overflow
:
hidden
;
}
.tripMenuWrap
.btnDay
{
border
:
1px
solid
#b6bdc1
;
border-radius
:
5px
;
height
:
50px
;
line-height
:
50px
;
min-width
:
50px
;
float
:
left
;
margin
:
5px
;
cursor
:
pointer
;
}
.tripCityList
.tripDay
.TripCitys
i
:last-child
{
display
:
none
;
}
.slideHeader
.dateEleSpace
{
height
:
16px
;
}
.slideHeader
.dayNumRight
i
:last-child
{
display
:
none
;
}
.tripMobileViewAgendaList
.agendaBox
.hideAgendaDetails
{
overflow
:
hidden
;
text-overflow
:
ellipsis
;
display
:
-webkit-box
;
-webkit-line-clamp
:
3
;
margin-bottom
:
20px
;
-webkit-box-orient
:
vertical
;
}
.swiper-container
{
width
:
100%
;
height
:
100%
;
}
.swiper-slide
{
overflow
:
auto
;
-webkit-overflow-scrolling
:
touch
;
}
</
style
>
<
template
>
<div
class=
"tripMobileContent"
v-loading=
"loading"
>
<div
class=
"tripInnerContent"
>
<div
class=
"swiper-container"
>
<div
class=
"swiper-wrapper"
>
<div
class=
"swiper-slide"
>
<div
class=
"tripViewMap"
>
<tripMap
:locationArray=
"travelLngLat"
:type=
"showType"
ref=
"tripMap"
></tripMap>
</div>
<div
class=
"tripCityList"
>
<div
class=
"tripDay"
v-for=
"(item,index) in dataList.dayList"
:key=
"index"
>
<div
class=
"leftDay"
>
<div
class=
"TripdayIndex"
>
D
{{
index
+
1
}}
</div>
</div>
<div
class=
"TripCitys"
>
<template
v-for=
"suItem in item.dayArray"
>
<template
v-if=
"suItem.type==1"
v-for=
"(childItem,childIndex) in suItem.childItem.subTraffic"
>
<template
v-if=
"childIndex==0"
>
<span
class=
"cityLists"
>
{{
childItem
.
startCityName
}}
</span>
<i
class=
"iconfont icon-daoda"
></i>
<span
class=
"cityLists"
>
{{
childItem
.
arrivalCityName
}}
</span>
<i
class=
"iconfont icon-daoda icon"
></i>
</
template
>
<
template
v-else
>
<span
class=
"cityLists"
>
{{
childItem
.
arrivalCityName
}}
</span>
<i
class=
"iconfont icon-daoda icon"
></i>
</
template
>
</template>
</template>
</div>
</div>
</div>
</div>
<div
class=
"swiper-slide"
>
<div
class=
"TripInner"
>
<div
class=
"TripHeader"
>
关于这次旅行
</div>
<div
class=
"TripArticleCont"
>
<p>
旅游并不一定是舟车劳顿的代名词
</p>
<p>
为了是挣脱都会丛林中污浊的空气
</p>
<p>
还是杂乱的交通
</p>
<p>
或者是拥挤的人群
</p>
<p>
寻求一丝自我的空间
</p>
<p>
您的梦想即将实现
</p>
<p>
就让我们为您实现一次精彩的旅行
</p>
</div>
</div>
</div>
<div
class=
"swiper-slide"
>
<div
class=
"TripInner"
>
<div
class=
"TripHeader"
>
行程安排
</div>
<div
class=
"col-md-12"
>
<div
class=
"arrangeSubHeader"
>
<span
class=
"subTitle"
>
交通方案
</span>
</div>
</div>
<div
class=
"col-md-12"
v-if=
"dataList.currentPriceInfo&&dataList.currentPriceInfo.priceFlight&&dataList.currentPriceInfo.priceFlight.length>0"
>
<
template
v-for=
"(item,index) in dataList.currentPriceInfo.priceFlight"
>
<div
class=
"arrangeSubContainer"
:key=
"index"
>
<div
class=
"subHeader"
>
<span
class=
"dayIndex"
>
{{
item
.
startDate
}}
</span>
</div>
<div
class=
"subContent"
>
<div
class=
"flightName transit"
>
{{
item
.
flightNumber
}}
</div>
<div
class=
"TripfromTo"
>
<div
class=
"TripFrom"
>
<div
class=
"TfromName"
>
{{
item
.
departureAirPortName
}}
</div>
<div
style=
"font-size:10px;"
>
出发时间
{{
item
.
departureTime
}}
</div>
</div>
<div
class=
"TripMiddle"
>
<i
class=
"iconfont icon-daoda"
></i>
</div>
<div
class=
"TripTo"
>
<div
class=
"TfromName"
>
{{
item
.
arrivalAirPortName
}}
</div>
<div
style=
"font-size:10px;"
>
到达时间
{{
item
.
arrivalTime
}}
</div>
</div>
</div>
</div>
</div>
</
template
>
</div>
<div
class=
"col-md-12"
>
<div
class=
"arrangeSubHeader"
>
<span
class=
"subTitle"
>
酒店安排
</span>
</div>
<
template
v-for=
"(item,index) in dataList.dayList"
>
<div
class=
"col-md-12"
>
<div
class=
"arrangeSubContainer"
>
<div
class=
"TripHotel"
>
<span
class=
"dayIndex"
>
D
{{
item
.
dayNum
}}
</span>
<div
class=
"TripCity"
>
<span>
<template
v-for=
"(subItem,subIndex) in getHotelArray(item.dayArray)"
v-if=
"subIndex==0"
>
{{
subItem
.
childItem
.
cityName
}}
</
template
>
</span>
</div>
</div>
<div
class=
"subContent"
>
<
template
v-for=
"(subItem,subIndex) in item.dayArray"
v-if=
"subItem.type==3"
>
<div
class=
"stayHotel"
>
<span
class=
"hotelLeft"
>
<i
class=
"iconfont icon-bed"
></i>
</span>
<span
class=
"hotelRight"
>
<template
v-if=
"subItem.childItem.newHotelName!=''"
>
{{
subItem
.
childItem
.
newHotelName
}}
</
template
>
<
template
v-else
>
{{
subItem
.
childItem
.
hotelName
}}
</
template
>
</span>
</div>
</template>
</div>
</div>
</div>
</template>
</div>
</div>
</div>
<!-- 行程开始 -->
<div
class=
"swiper-slide"
v-for=
"(item,index) in dataList.dayList"
:id=
"'dayList'+(index+1)"
:key=
"index"
>
<div
class=
"tripComInner"
>
<div
class=
"slideHeader"
style=
"position:relative;"
>
<div
class=
"dayNum"
>
D{{index+1}}
</div>
<div
class=
"dateEleSpace"
></div>
<div
class=
"dayNumRight"
>
<
template
v-for=
"suItem in item.dayArray"
>
<template
v-if=
"suItem.type==1"
v-for=
"(childItem,childIndex) in suItem.childItem.subTraffic"
>
<template
v-if=
"childIndex==0"
>
<span
class=
"city"
>
{{
childItem
.
startCityName
}}
</span>
<i
class=
"iconfont icon-daoda icon"
></i>
<span
class=
"city"
>
{{
childItem
.
arrivalCityName
}}
</span>
<i
class=
"iconfont icon-daoda icon"
></i>
</
template
>
<
template
v-else
>
<span
class=
"city"
>
{{
childItem
.
arrivalCityName
}}
</span>
<i
class=
"iconfont icon-daoda icon"
></i>
</
template
>
</template>
</template>
</div>
</div>
<div
class=
"tripArticleCont"
>
<p>
今日推荐:
</p>
<
template
v-for=
"(subItem,subIndex) in item.dayArray"
v-if=
"subItem.type==7"
>
<p
:key=
"subIndex"
>
{{
subItem
.
childItem
.
title
}}
</p>
</
template
>
</div>
<div
class=
"tripSection"
>
<div
class=
"tripSlideHeader"
>
<span
class=
"tripSubTitle"
>
D{{index+1}} 日程安排
</span>
</div>
<div
class=
"tripMobileViewAgendaList"
>
<
template
v-for=
"subItem in item.dayArray"
>
<template
v-if=
"subItem.type==2"
>
<div
class=
"agendaBox"
>
<div
class=
"tripIndexNum"
>
{{
index
+
1
}}
</div>
<div
class=
"tripCoverWrap"
:style=
"`background: url($
{subItem.childItem.imaArray[0].url}) center`">
</div>
<div
class=
"tripTxtCont"
>
<div
class=
"tripAgendaPoi"
>
<i
class=
"iconfont icon-jingdianjingguan tour"
></i>
<span
class=
"tripComtitle"
>
{{
subItem
.
childItem
.
couponsName
}}
</span>
</div>
<div
class=
"tripDetailBox"
>
<div
style=
"border-top:0;margin:20px 0;"
v-html=
'subItem.childItem.descriptionText'
></div>
</div>
<div
class=
"Divtriangle"
>
<span></span>
</div>
<div
class=
"detailSection"
style=
"margin-top:0;"
v-if=
"subItem.childItem.playTimeHour||subItem.childItem.playTimeMinutes"
>
<div
class=
"item"
>
<span
class=
"label"
>
建议游玩时间
</span>
<span
class=
"text"
>
约
<template
v-if=
"subItem.childItem.playTimeHour"
>
{{
subItem
.
childItem
.
playTimeHour
}}
小时
</
template
>
<
template
v-if=
"subItem.childItem.playTimeMinutes"
>
{{
subItem
.
childItem
.
playTimeMinutes
}}
分钟
</
template
>
</span>
</div>
</div>
</div>
</div>
<
template
v-if=
"subItem.childItem.trafficType==1"
>
<div
class=
"tripAgendaTransitBox"
>
<div
class=
"transitIcon"
>
<i
class=
"iconfont icon-feiji2"
></i>
飞机
</div>
</div>
</
template
>
<
template
v-if=
"subItem.childItem.trafficType==2"
>
<div
class=
"tripAgendaTransitBox"
>
<div
class=
"transitIcon"
>
<i
class=
"iconfont icon-icon-"
style=
"font-size:25px;"
></i>
专车
</div>
</div>
</
template
>
<
template
v-if=
"subItem.childItem.trafficType==3"
>
<div
class=
"tripAgendaTransitBox"
>
<div
class=
"btnTransit"
@
click=
"getSubWay(subItem.childItem.trafficImage)"
>
<i
class=
"iconfont icon-subway"
style=
"margin-right:10px;font-size:18px;"
></i>
查看交通详情
</div>
<div
class=
"transitIcon"
style=
"margin-left:0;"
>
<span>
地铁
</span>
</div>
</div>
</
template
>
<
template
v-if=
"subItem.childItem.trafficType==4"
>
<div
class=
"tripAgendaTransitBox"
>
<div
class=
"transitIcon"
>
<i
class=
"iconfont icon-walking"
></i>
{{
subItem
.
childItem
.
trafficContent
}}
</div>
</div>
</
template
>
</template>
<
template
v-if=
"subItem.type==3"
>
<div
class=
"agendaBox"
>
<div
class=
"tripIndexNum tos-icon hotelCur "
>
<i
class=
"iconfont icon-moono"
></i>
</div>
<div
class=
"tripCoverWrap"
v-if=
"subItem.childItem.imaArray.length>0"
:style=
"`background: url($
{subItem.childItem.imaArray[0].url}) center`">
</div>
<div
class=
"tripTxtCont"
>
<div
class=
"tripAgendaPoiHotel"
>
<i
class=
"iconfont icon-bed bed"
></i>
<span
class=
"title"
>
<template
v-if=
"subItem.childItem.newHotelName"
>
{{
subItem
.
childItem
.
newHotelName
}}
</
template
>
<
template
v-else
>
{{
subItem
.
childItem
.
hotelName
}}
</
template
>
</span>
</div>
<div
class=
"tripDetailBox"
>
<div
class=
"detailSection"
v-if=
"subItem.childItem.isShow"
>
<div
class=
"item"
>
<span
class=
"label"
>
酒店星级
</span>
<span
class=
"text"
>
<el-rate
v-model=
"subItem.childItem.star"
disabled
></el-rate>
</span>
</div>
<div
class=
"item"
v-if=
"getService(subItem.childItem.facilityServices)!=''"
>
<span
class=
"label"
>
设施服务
</span>
<span
class=
"text"
>
{{getService(subItem.childItem.facilityServices)}}
</span>
</div>
</div>
<div
class=
"TripsubSection"
:class=
"{'hideAgendaDetails':!subItem.childItem.isShow}"
v-if=
"subItem.childItem.hotelNewDescriptionText"
v-html=
"subItem.childItem.hotelNewDescriptionText"
></div>
<div
class=
"TripdetailSection"
v-if=
"subItem.childItem.isShow"
>
<div
class=
"item"
v-if=
"subItem.childItem.hotelAddress!=''"
>
<span
class=
"label"
>
地址
</span>
<span
class=
"text"
>
{{subItem.childItem.hotelAddress}}
</span>
</div>
<div
class=
"item"
v-if=
"subItem.childItem.url!=''"
>
<span
class=
"label"
>
网址
</span>
<span
class=
"text"
>
{{subItem.childItem.url}}
</span>
</div>
</div>
<div
class=
"TripshowMore"
@
click=
"getShowMore(subItem.childItem)"
>
{{subItem.childItem.isShow==true?'点我收起':'点我展开详情'}}
</div>
</div>
<div
class=
"Divtriangle"
>
<span></span>
</div>
</div>
</div>
</template>
</template>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div
class=
"tripMenuWrap"
v-if=
"showDialog"
>
<div
class=
"greyBg"
></div>
<div
class=
"tripMenu"
>
<div
class=
"btnPageHeader"
>
选择查看的页面
</div>
<div
style=
"padding:0 5px;width:100%"
class=
"alterClear"
>
<div
style=
"margin:0 -5px;"
>
<div
class=
"tripHalf"
>
<div
class=
"btnPage"
@
click=
"getSwiper(0)"
>
<i
class=
"iconfont icon-huozhuduanchaxunxianlu"
></i>
<span
class=
"TripmenuTitle"
>
行程线路
</span>
</div>
</div>
<div
class=
"tripHalf"
>
<div
class=
"btnPage"
@
click=
"getSwiper(1)"
>
<i
class=
"iconfont icon-message"
></i>
<span
class=
"TripmenuTitle"
>
关于这次旅行
</span>
</div>
</div>
<div
class=
"tripHalf"
>
<div
class=
"btnPage"
@
click=
"getSwiper(2)"
>
<i
class=
"iconfont icon-order_icon"
></i>
<span
class=
"TripmenuTitle"
>
行程安排
</span>
</div>
</div>
</div>
</div>
<div
class=
"btnDayHeader"
>
<span>
日程安排
</span>
</div>
<div
class=
"btnDayList"
>
<div
class=
"btnDay"
v-for=
"(item,index) in dataList.dayList"
@
click=
"goDaySwiper(index)"
:key=
"index"
>
D{{index+1}}
</div>
</div>
</div>
</div>
<div
class=
"swiperFixedBtn"
@
click=
"showMenu()"
>
<i
class=
"iconfont icon-more1 TripctrlBtn"
v-if=
"!showDialog"
></i>
<i
class=
"iconfont icon-cha TripctrlBtn"
v-else
></i>
</div>
</div>
</template>
<
script
>
import
Swiper
from
"swiper"
;
import
tripMap
from
'../global/tripMap'
export
default
{
data
()
{
return
{
showDialog
:
false
,
loading
:
true
,
//请求参数
msg
:
{
ID
:
0
,
tcid
:
0
},
dataList
:
{},
FlightList
:
[],
isShow
:
false
,
StartData
:
""
,
swiperV
:
''
,
showType
:
1
,
//显示类型(1-所有的,2-每天的)
travelLngLat
:
[],
};
},
created
()
{},
components
:
{
tripMap
},
computed
:
{},
mounted
()
{
this
.
msg
.
ID
=
this
.
$route
.
query
.
ID
;
this
.
msg
.
tcid
=
this
.
$route
.
query
.
tcid
;
this
.
getTrip
();
//加载滑动
},
methods
:
{
showMenu
()
{
this
.
showDialog
=
!
this
.
showDialog
;
},
//加载数据
getTrip
()
{
this
.
loading
=
true
;
this
.
apipost
(
"b2b_get_GetB2BTravelInfoV1"
,
this
.
msg
,
res
=>
{
this
.
loading
=
false
;
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
dataList
=
res
.
data
.
data
;
if
(
res
.
data
.
data
.
currentPriceInfo
&&
res
.
data
.
data
.
currentPriceInfo
.
priceFlight
)
{
this
.
FlightList
=
res
.
data
.
data
.
currentPriceInfo
.
priceFlight
;
}
if
(
res
.
data
.
data
.
currentPriceInfo
&&
res
.
data
.
data
.
currentPriceInfo
.
startDate
)
{
this
.
StartData
=
res
.
data
.
data
.
currentPriceInfo
.
startDate
;
}
this
.
isShow
=
true
;
this
.
getAllPoint
();
//装载景点酒店图片以供预览
this
.
dataList
.
dayList
.
forEach
(
x
=>
{
x
.
dayArray
.
forEach
(
y
=>
{
if
(
y
.
type
==
2
||
y
.
type
==
3
)
{
y
.
childItem
.
isShow
=
false
;
}
});
});
this
.
$nextTick
(()
=>
{
this
.
getScroll
();
})
}
else
{
this
.
Error
(
res
.
data
.
message
);
}
},
null
);
},
getScroll
()
{
this
.
swiperV
=
new
Swiper
(
'.swiper-container'
,
{
direction
:
'vertical'
,
initialSlide
:
0
,
noSwiping
:
true
});
var
startScroll
,
touchStart
,
touchCurrent
;
this
.
swiperV
.
slides
.
on
(
'touchstart'
,
function
(
e
)
{
startScroll
=
this
.
scrollTop
;
touchStart
=
e
.
targetTouches
[
0
].
pageY
;
},
true
);
this
.
swiperV
.
slides
.
on
(
'touchmove'
,
function
(
e
)
{
touchCurrent
=
e
.
targetTouches
[
0
].
pageY
;
var
touchesDiff
=
touchCurrent
-
touchStart
;
var
slide
=
this
;
var
onlyScrolling
=
(
slide
.
scrollHeight
>
slide
.
offsetHeight
)
&&
(
(
touchesDiff
<
0
&&
startScroll
===
0
)
||
(
touchesDiff
>
0
&&
startScroll
===
(
slide
.
scrollHeight
-
slide
.
offsetHeight
))
||
(
startScroll
>
0
&&
startScroll
<
(
slide
.
scrollHeight
-
slide
.
offsetHeight
))
);
if
(
onlyScrolling
)
{
e
.
stopPropagation
();
}
},
true
);
},
getHotelArray
(
hotelArray
)
{
var
newArray
=
[];
if
(
hotelArray
!=
null
&&
hotelArray
.
length
>
0
)
{
hotelArray
.
forEach
(
item
=>
{
if
(
item
.
type
==
3
)
{
newArray
.
push
(
item
);
}
});
}
return
newArray
;
},
//隐藏显示
getShowMore
(
item
)
{
item
.
isShow
=
!
item
.
isShow
;
this
.
$forceUpdate
();
},
//遍历设施服务
getService
(
item
)
{
let
Obj
=
JSON
.
parse
(
item
);
let
str
=
""
;
Obj
[
0
].
checked
.
forEach
(
ckItem
=>
{
Obj
[
0
].
list
.
forEach
(
x
=>
{
if
(
ckItem
==
x
.
ID
)
{
str
+=
x
.
Content
+
" "
;
}
});
});
return
str
;
},
//点击选中
getSwiper
(
index
)
{
var
index
=
index
;
// index为指定将要切换到的slide的索引
this
.
swiperV
.
slideTo
(
index
,
100
,
false
);
this
.
showDialog
=
false
;
},
goDaySwiper
(
index
)
{
var
index
=
index
+
3
;
// index为指定将要切换到的slide的索引
this
.
swiperV
.
slideTo
(
index
,
100
,
false
);
this
.
showDialog
=
false
;
},
//加载所有坐标点
getAllPoint
()
{
let
Arr
=
[];
if
(
this
.
dataList
&&
this
.
dataList
.
dayList
&&
this
.
dataList
.
dayList
.
length
>
0
)
{
this
.
dataList
.
dayList
.
forEach
(
x
=>
{
x
.
dayArray
.
forEach
(
y
=>
{
if
(
y
.
type
==
1
)
{
y
.
childItem
.
subTraffic
.
forEach
(
z
=>
{
let
obj1
=
{
lat
:
z
.
startCityPoint
[
1
],
lng
:
z
.
startCityPoint
[
0
],
name
:
z
.
startCityName
,
type
:
1
,
isFly
:
0
,
trafficType
:
0
,
}
let
obj2
=
{
lat
:
z
.
arrivalCityPoint
[
1
],
lng
:
z
.
arrivalCityPoint
[
0
],
name
:
z
.
arrivalCityName
,
type
:
1
,
isFly
:
0
,
trafficType
:
0
,
}
Arr
.
push
(
obj1
);
Arr
.
push
(
obj2
);
})
}
})
});
this
.
travelLngLat
=
Arr
;
this
.
showType
=
1
;
}
}
}
};
</
script
>
\ No newline at end of file
src/router.js
View file @
6f0fb34f
...
...
@@ -16,7 +16,7 @@ import xiazaiAPP from "./components/taskPage/xiazaiAPP";
import
Fire
from
"./components/taskPage/Fire"
;
import
Img5
from
"./components/taskPage/Img5"
;
import
Juanski
from
"./components/taskPage/Juanski"
;
import
tripMobile
from
"./components/mall/tripMobile"
Vue
.
use
(
Router
);
...
...
@@ -37,7 +37,14 @@ export default new Router({
title
:
'行程'
}
},
{
path
:
'/tripMobile'
,
name
:
'tripMobile'
,
component
:
tripMobile
,
meta
:
{
title
:
'手机版行程'
}
},
{
path
:
"/"
,
name
:
"index"
,
...
...
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