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
e40a9b46
Commit
e40a9b46
authored
May 16, 2019
by
华国豪
🙄
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
新版跟团游首页
parent
0f97a1be
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
854 additions
and
3 deletions
+854
-3
index.css
src/assets/css/groupTour/index.css
+14
-0
hot_bg.png
src/assets/img/groupTour/hot_bg.png
+0
-0
hot_img.png
src/assets/img/groupTour/hot_img.png
+0
-0
top_bg.png
src/assets/img/groupTour/top_bg.png
+0
-0
diving.vue
src/components/GroupTour/block/diving.vue
+146
-0
hot.vue
src/components/GroupTour/block/hot.vue
+89
-0
list.vue
src/components/GroupTour/block/list.vue
+446
-0
index.vue
src/components/GroupTour/index.vue
+147
-0
router.js
src/router.js
+10
-1
index.vue
src/views/index.vue
+2
-2
No files found.
src/assets/css/groupTour/index.css
0 → 100644
View file @
e40a9b46
.GroupTour
{
background
:
#F8F8F8
;
}
.GroupTour
._list
.w1180
{
width
:
1180px
;
margin
:
0
auto
;
}
.GroupTour
._list
>
p
.tit
{
font-size
:
24px
;
color
:
rgba
(
102
,
102
,
102
,
1
);
font-weight
:
400
;
text-align
:
center
;
margin
:
45px
auto
;
}
\ No newline at end of file
src/assets/img/groupTour/hot_bg.png
0 → 100644
View file @
e40a9b46
261 KB
src/assets/img/groupTour/hot_img.png
0 → 100644
View file @
e40a9b46
209 KB
src/assets/img/groupTour/top_bg.png
0 → 100644
View file @
e40a9b46
227 KB
src/components/GroupTour/block/diving.vue
0 → 100644
View file @
e40a9b46
<
style
>
.diving
{
margin
:
30px
0
;
}
.diving
>
p
{
font-size
:
24px
;
color
:
rgba
(
102
,
102
,
102
,
1
);
font-weight
:
400
;
text-align
:
center
;
margin
:
40px
0
20px
0
;
}
.diving
.item
{
position
:
relative
;
padding
:
8px
11px
;
height
:
198px
;
transition
:
all
linear
.5s
;
box-shadow
:
0
0px
7px
#eaeaea
;
margin-bottom
:
20px
;
cursor
:
pointer
;
background-color
:
rgba
(
245
,
245
,
245
,
1
);
overflow
:
hidden
;
}
.diving
.item
.label
{
position
:
absolute
;
left
:
11px
;
top
:
8px
;
z-index
:
3
;
font-size
:
12px
;
background
:
rgba
(
238
,
68
,
84
,
1
);
color
:
white
;
padding
:
2px
6px
;
transition
:
all
ease-out
.3s
;
}
.diving
.item
:hover
{
background-color
:
white
;
box-shadow
:
none
;
}
.diving
.item
:hover
.line
{
width
:
calc
(
100%
-
42px
);
height
:
calc
(
100%
-
42px
);
left
:
20px
;
top
:
20px
;
}
.diving
.item
:hover
.label
{
left
:
0
;
top
:
0
;
}
.diving
.item
.img
img
{
width
:
100%
;
height
:
198px
;
}
.diving
.item
.line
{
position
:
absolute
;
left
:
10px
;
top
:
8px
;
width
:
calc
(
100%
-
22px
);
height
:
calc
(
100%
-
16px
);
border
:
1px
solid
rgba
(
232
,
235
,
239
,
1
);
transition
:
all
ease-out
.3s
;
}
.diving
.item
.info
{
width
:
100%
;
position
:
absolute
;
bottom
:
0
;
left
:
0
;
padding
:
13px
0
;
background
:
rgba
(
255
,
255
,
255
,
.9
);
}
.diving
.item
.info
p
.tit
{
font-size
:
14px
;
max-width
:
240px
;
padding
:
0
20px
;
overflow
:
hidden
;
text-overflow
:
ellipsis
;
white-space
:
nowrap
;
}
.diving
.item
.info
.info_detail
{
margin-top
:
5px
;
max-width
:
240px
;
padding
:
0
20px
;
display
:
flex
;
align-items
:
center
;
justify-content
:
space-between
;
font-size
:
12px
;
}
.diving
.item
.info
.info_detail
.day
{
color
:
#777777
;
}
.diving
.item
.info
.info_detail
.money
.num
{
color
:
#EE4454
;
font-size
:
22px
;
}
.diving
.item
.info
.info_detail
.money
small
.num
{
font-size
:
12px
;
}
.diving
.item
.info
.info_detail
.money
.qi
{
color
:
#777777
;
}
</
style
>
<
template
>
<el-row
class=
"diving"
>
<p>
精品推荐-跳水特价
</p>
<el-row
:gutter=
"20"
>
<template
v-for=
"(item, index) in data"
>
<el-col
:span=
"6"
v-if=
"index
<
8
"
>
<div
class=
"item"
>
<div
class=
"label"
>
{{
item
.
lineName
.
substr
(
0
,
2
)
}}
</div>
<div
class=
"img"
>
<img
v-if=
'item.imgCover!=null&&item.imgCover.length'
:src=
'compressImg(JSON.parse(item.imgCover)[0].Url, "filt", 245, "")'
alt=
""
>
<img
class=
"notamin"
src=
"../../../assets/img/bg_c2@3x.png"
v-else
/>
</div>
<div
class=
"line"
></div>
<div
class=
"info"
>
<p
class=
"tit"
>
{{
item
.
title
}}
</p>
<div
class=
"info_detail"
>
<span
class=
"day"
>
{{
item
.
startDate
}}
仅余
{{
item
.
surplus
}}
席
</span>
<p
class=
"money"
><small
class=
"num"
>
¥
</small><span
class=
"num"
>
{{
isLogin
!==
1
?
item
.
b2CPrice
:
item
.
b2BPrice
}}
</span><span
class=
"qi"
>
起
</span></p>
</div>
</div>
</div>
</el-col>
</
template
>
</el-row>
</el-row>
</template>
<
script
>
export
default
{
props
:[
'data'
,
'isLogin'
],
data
()
{
return
{
}
},
methods
:
{
},
mounted
()
{
}
}
</
script
>
src/components/GroupTour/block/hot.vue
0 → 100644
View file @
e40a9b46
<
style
>
.hot
{
position
:
relative
;
height
:
466px
;
background
:
#ffffff
url(../../../assets/img/groupTour/hot_bg.png)
no-repeat
0
100%
/
100%
auto
;
}
.hot
.box
{
position
:
relative
;
width
:
1180px
;
margin
:
50px
auto
0
auto
;
height
:
360px
;
}
.hot
.box
img
{
width
:
595px
;
height
:
351px
;
padding-left
:
35px
;
position
:
relative
;
z-index
:
2
;
}
.hot
.box
>
div
{
width
:
464px
;
padding
:
51px
69px
68px
84px
;
background-color
:
#FFFFFF
;
position
:
absolute
;
right
:
0
;
bottom
:
0
;
}
.hot
.box
div
.tit
{
color
:
#444444
;
font-size
:
20px
;
}
.hot
.box
div
.s_tit
{
color
:
#999999
;
font-size
:
12px
;
}
.hot
.box
div
.info
{
margin-top
:
24px
;
color
:
#999999
;
font-size
:
14px
;
}
.hot
.box
div
.see_detai
span
{
display
:
inline-block
;
width
:
163px
;
height
:
41px
;
border
:
1px
solid
rgba
(
153
,
153
,
153
,
1
);
margin-top
:
32px
;
color
:
#999999
;
text-align
:
center
;
line-height
:
41px
;
}
</
style
>
<
template
>
<el-row
class=
"hot"
>
<div
class=
"box"
>
<img
src=
"../../../assets/img/groupTour/hot_img.png"
alt=
""
>
<div>
<p
class=
"tit"
:title=
"data[0].title"
>
{{
data
[
0
].
lineName
}}
-
{{
data
[
0
].
ltName
}}
</p>
<p
class=
"s_tit"
>
{{
'Japan Tour'
.
toUpperCase
()
}}
</p>
<p
class=
"info"
>
{{
data
[
0
].
title
}}
</p>
<div
class=
"see_detai"
>
<span
class=
"__cp"
@
click=
"goUrl(data[0].id, data[0])"
>
查看详情
</span>
</div>
</div>
</div>
</el-row>
</
template
>
<
script
>
export
default
{
props
:
[
'data'
],
data
()
{
return
{
}
},
methods
:
{
goUrl
(
id
,
obj
){
let
path
=
'detailTwo'
path
=
`
${
path
}
/
${
encodeURIComponent
(
id
)}
/
${
obj
.
tcid
}
`
;
this
.
$router
.
push
({
path
})
},
},
mounted
()
{
}
}
</
script
>
src/components/GroupTour/block/list.vue
0 → 100644
View file @
e40a9b46
This diff is collapsed.
Click to expand it.
src/components/GroupTour/index.vue
0 → 100644
View file @
e40a9b46
<
style
>
@import
"../../assets/css/groupTour/index.css"
;
</
style
>
<
template
>
<el-row
class=
"GroupTour"
>
<!-- 顶部图片 -->
<el-row
class=
"GroupTour_top_bg"
>
<img
src=
"../../assets/img/groupTour/top_bg.png"
alt=
""
>
</el-row>
<el-row
class=
"_list"
v-loading=
"loading"
>
<!-- 跳水特价 -->
<Vdiving
:data=
"tiaoshui"
:isLogin=
"isLogin"
class=
"w1180"
/>
<!-- 线路列表 -->
<p
class=
"tit w1180"
>
出境跟团游
</p>
<template
v-for=
"(item, index) in recoItems.line"
v-if=
"recoItems.line && recoItems.line.length > 0 && index
<
3
&&
(
item
.
lineTeam
&&
item
.
lineTeam
.
length
>
0)">
<Vlist
:dataList=
"item"
:index=
"index"
:isLogin=
"isLogin"
@
sonMethods=
"loadModuleDataNoLoop"
class=
"w1180"
/>
</
template
>
<!-- 热门 -->
<Vhot
:data=
"tehuis"
/>
<!-- 线路列表 -->
<
template
v-for=
"(item, index) in recoItems.line"
v-if=
"recoItems.line && recoItems.line.length > 0 && index > 2 && (item.lineTeam && item.lineTeam.length > 0)"
>
<Vlist
:dataList=
"item"
:index=
"index"
:isLogin=
"isLogin"
@
sonMethods=
"loadModuleDataNoLoop"
class=
"w1180"
/>
</
template
>
</el-row>
</el-row>
</template>
<
script
>
import
diving
from
'./block/diving'
import
list
from
'./block/list'
import
hot
from
'./block/hot'
import
moment
from
'moment'
export
default
{
components
:
{
Vlist
:
list
,
Vdiving
:
diving
,
Vhot
:
hot
,
},
data
()
{
return
{
VlistData
:
[],
VhotData
:
[],
site
:
0
,
companyId
:
-
1
,
recoItems
:
[],
tehuis
:
[],
tiaoshui
:
[],
recoItemList
:
{
line
:
[]
},
imgs
:
[],
isLogin
:
1
,
loadingIndex
:
-
1
,
loading
:
true
,
}
},
methods
:
{
loadModuleData
(
sno
){
// console.log(this.recoItems.line)
if
(
sno
<
this
.
recoItems
.
line
.
length
){
let
msg
=
{
pageIndex
:
1
,
pageSize
:
5
,
companyId
:
this
.
companyId
,
lineId
:
this
.
recoItems
.
line
[
sno
].
id
,
lineTeamId
:
0
}
this
.
apipost
(
'b2b_get_GetB2BHomeLineTravelPageList'
,
msg
,
r
=>
{
this
.
recoItems
.
line
[
sno
]
=
Object
.
assign
({},
this
.
recoItems
.
line
[
sno
],
{
pageData
:
r
.
data
.
data
.
pageData
})
// console.log(this.recoItems.line[sno].pageData)
this
.
loadModuleData
(
sno
+
1
)
},
null
)
}
else
{
// this.recoItemList = this.recoItems
this
.
loading
=
false
}
},
loadModuleDataNoLoop
(
tab
,
index
){
let
sno
=
tab
.
name
.
split
(
'_'
)[
1
],
ltId
=
tab
.
name
.
split
(
'_'
)[
0
]
console
.
log
(
tab
)
this
.
loadingIndex
=
sno
let
msg
=
{
pageIndex
:
1
,
pageSize
:
5
,
companyId
:
this
.
companyId
,
lineId
:
this
.
recoItems
.
line
[
sno
].
id
,
lineTeamId
:
ltId
}
this
.
apipost
(
'b2b_get_GetB2BHomeLineTravelPageList'
,
msg
,
r
=>
{
this
.
recoItems
.
line
[
sno
].
pageData
=
r
.
data
.
data
.
pageData
this
.
loadingIndex
=-
1
this
.
MsgBus
.
$emit
(
'reloadList'
,
index
)
},
null
)
},
loadRecoItems
(){
if
(
this
.
companyId
!=-
1
)
{
this
.
apipost
(
'b2b_get_GetHomeSearchItem'
,{
'companyId'
:
this
.
companyId
,
lineDirection
:
2
,},
r
=>
{
r
.
data
.
data
.
line
.
forEach
(
x
=>
{
x
.
chosenLineTeam
=
'0'
})
this
.
recoItems
=
r
.
data
.
data
this
.
activeName
=
r
.
data
.
data
.
recommend
[
0
].
id
.
toString
()
this
.
loadModuleData
(
0
)
},
null
)
}
},
loadTiaoshui
(){
if
(
this
.
companyId
!=-
1
){
let
msg
=
{
pageIndex
:
1
,
pageSize
:
12
,
companyId
:
this
.
companyId
,
recommendType
:
2
,
}
this
.
apipost
(
'b2b_get_GetB2BHomeRecommendPageList'
,
msg
,
r
=>
{
this
.
tiaoshui
=
r
.
data
.
data
.
pageData
this
.
tiaoshui
.
forEach
(
x
=>
{
x
.
dataStr
=
moment
(
x
.
startDate
).
format
(
'M-D'
)
})
},
null
)
}
},
loadTehuis
(){
if
(
this
.
companyId
!=-
1
){
let
msg
=
{
pageIndex
:
1
,
pageSize
:
1
,
companyId
:
this
.
companyId
,
recommendType
:
1
,
}
this
.
apipost
(
'b2b_get_GetB2BHomeRecommendPageList'
,
msg
,
r
=>
{
this
.
tehuis
=
r
.
data
.
data
.
pageData
this
.
tehuis
.
forEach
(
x
=>
{
x
.
dataStr
=
moment
(
x
.
startDate
).
format
(
'M-D'
)
})
},
null
)
}
},
},
mounted
()
{
this
.
companyId
=
localStorage
.
site
this
.
loadRecoItems
();
this
.
loadTehuis
();
this
.
loadTiaoshui
();
}
}
</
script
>
src/router.js
View file @
e40a9b46
...
...
@@ -84,11 +84,20 @@ export default new Router({
title
:
'团队详情-印象之旅~感动与世界同步'
}
},
// {
// path: "/heel",
// name: "heel",
// component: resolve =>
// require(["@/components/mall/heeltour"], resolve),
// meta: {
// title: "跟团游-印象之旅~感动与世界同步"
// }
// },
{
path
:
"/heel"
,
name
:
"heel"
,
component
:
resolve
=>
require
([
"@/components/
mall/heeltour
"
],
resolve
),
require
([
"@/components/
GroupTour/index
"
],
resolve
),
meta
:
{
title
:
"跟团游-印象之旅~感动与世界同步"
}
...
...
src/views/index.vue
View file @
e40a9b46
...
...
@@ -4,8 +4,8 @@
<
template
>
<div
class=
"home-box"
v-if=
"isPhone"
>
<
mallHead
msg=
""
@
forword=
'goUrl("2-1")'
@
siteCity=
"siteCity"
/
>
<
!--
<newHead/>
--
>
<
!--
<mallHead
msg=
""
@
forword=
'goUrl("2-1")'
@
siteCity=
"siteCity"
/>
--
>
<
newHead/
>
<div
:style=
'
{"min-height":minHeight+"px"}'>
<transition
name=
"slide"
>
<router-view
:changeCity=
'changeCity'
></router-view>
...
...
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