Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
M
million
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
viitto
million
Commits
fb797202
Commit
fb797202
authored
Feb 15, 2023
by
youjie
Browse files
Options
Browse Files
Download
Plain Diff
no message
parents
1a5d4838
597cccad
Show whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
1012 additions
and
232 deletions
+1012
-232
subscriber-bg.png
src/assets/subscriber-bg.png
+0
-0
utils.js
src/boot/utils.js
+1
-1
hor-big-one.vue
src/components/navs/hor-big-one.vue
+372
-108
hor-btm-old.vue
src/components/navs/hor-btm-old.vue
+481
-0
hor-btm.vue
src/components/navs/hor-btm.vue
+58
-105
subscriber.vue
src/components/navs/subscriber.vue
+80
-0
search_sf2.vue
src/components/search_sf/search_sf2.vue
+7
-4
HomeLayout.vue
src/layouts/HomeLayout.vue
+5
-1
yarn.lock
yarn.lock
+8
-13
No files found.
src/assets/subscriber-bg.png
0 → 100644
View file @
fb797202
2.63 MB
src/boot/utils.js
View file @
fb797202
...
...
@@ -19,7 +19,7 @@ Vue.prototype.domainManager = function () {
domainUrl
=
"http://testapi.oytour.com"
;
}
else
if
(
domainNameUrl
.
indexOf
(
'oytour'
)
!==
-
1
)
{
domainUrl
=
"http://reborn.oytour.com"
;
domainUrl
=
'http://192.168.10.
206:8015
'
domainUrl
=
'http://192.168.10.
11:8083
'
}
var
obj
=
{
//主地址
...
...
src/components/navs/hor-big-one.vue
View file @
fb797202
...
...
@@ -3,24 +3,139 @@
margin-right
:
12px
;
}
</
style
>
<
style
scoped
>
.flex
{
display
:
flex
;
}
.justify-between
{
justify-content
:
space-between
;
}
.item-center
{
align-items
:
center
;
}
.justify-center
{
justify-content
:
center
;
}
.padding-top
{
padding-top
:
10px
;
}
.flex-center
{
justify-content
:
center
;
align-items
:
center
;
}
.flex-wrap
{
flex-wrap
:
wrap
;
}
.header-box
{
max-width
:
1200px
;
margin
:
0
auto
;
}
.address-box
{
width
:
815px
;
height
:
426px
;
}
.menu-box
{
width
:
174px
;
height
:
426px
;
overflow
:
auto
;
}
.menu-item
{
width
:
139px
;
margin
:
15px
auto
;
height
:
49px
;
border-radius
:
4px
;
padding
:
8px
16px
;
cursor
:
pointer
;
}
.hot
{
line-height
:
33px
;
}
.select
{
color
:
#fff
;
background-color
:
#ee4454
;
}
.menu-title
{
font-weight
:
bold
;
}
.menu-tag-box
span
{
margin-right
:
20px
;
}
.menu-tag-box
:last-child
{
margin-right
:
0
;
}
.city-box
{
padding
:
14px
18px
;
width
:
641px
;
}
.city
{
width
:
129px
;
height
:
69px
;
background
:
#ee4454
;
border-radius
:
10px
;
margin
:
11px
;
display
:
inline-block
;
position
:
relative
;
cursor
:
pointer
;
}
.city-img
{
width
:
129px
;
height
:
69px
;
position
:
absolute
;
top
:
0
;
left
:
0
;
}
.city-name-box
{
z-index
:
10
;
position
:
absolute
;
top
:
0
;
left
:
0
;
right
:
0
;
bottom
:
0
;
}
.city-name
{
text-align
:
center
;
height
:
22px
;
background
:
rgba
(
0
,
0
,
0
,
0.2
);
color
:
#fff
;
padding
:
0
5px
;
border-radius
:
10px
;
}
.address-btn
{
margin
:
0
10px
0
44px
;
}
.all-type
{
margin-left
:
10px
;
}
.all-menu
{
width
:
820px
;
padding
:
10px
;
}
.category-item
{
width
:
200px
;
padding
:
10px
;
}
.font-16
{
font-size
:
16px
;
}
</
style
>
<
template
>
<q-header
reveal
:style=
"
{ background: baseData.nav.bg, color: baseData.nav.color }"
class="bg-white"
height-hint="
9
8"
height-hint="
10
8"
to="/index"
style="border-bottom:1px solid #eee;"
>
<q-toolbar
style=
"height:
6
0px; max-width: 1200px; margin: 0 auto"
class=
"zk_toolbar"
style=
"height:
5
0px; max-width: 1200px; margin: 0 auto"
class=
"zk_toolbar
flex justify-between
"
:class=
"
{ 'q-px-none': $q.platform.is.desktop }"
>
<img
:src=
"baseData.logo"
style=
"
height:
4
5px;
height:
3
5px;
cursor: pointer;
margin-right: 100px;
filter: drop-shadow(0px 0px var(--q-color-primary));
...
...
@@ -28,7 +143,7 @@
class=
"q-mr-lg q-ml-sm"
@
click=
"CommonJump('/index',
{})"
/>
<q-tabs
<
!--
<
q-tabs
align=
"center"
style=
"margin: 0 auto"
shrink
...
...
@@ -93,7 +208,19 @@
</
template
>
</q-tabs>
</q-menu>
</q-btn>
-->
<div>
<q-btn
label=
"繁體中文"
flat
>
<q-menu>
<q-list>
<q-item
clickable
v-close-popup
>
<q-item-section>
繁體中文
</q-item-section>
</q-item>
</q-list>
</q-menu>
</q-btn>
<q-btn
label=
"帮助中心"
flat
></q-btn>
<q-btn
label=
"注册"
flat
></q-btn>
<
template
v-if=
"LoginUser.accountId > 0"
>
<q-btn-dropdown
style=
"color: #444; font-weight: bold"
...
...
@@ -107,11 +234,7 @@
<q-list>
<q-item
clickable
v-close-popup
to=
"/account"
>
<q-item-section
avatar
>
<q-avatar
icon=
"folder"
color=
"primary"
text-color=
"white"
/>
<q-avatar
icon=
"folder"
text-color=
"#474747"
/>
</q-item-section>
<q-item-section>
<q-item-label>
帳號設定
</q-item-label>
...
...
@@ -119,11 +242,7 @@
</q-item>
<q-item
clickable
v-close-popup
to=
"/orderlist"
>
<q-item-section
avatar
>
<q-avatar
icon=
"assignment"
color=
"secondary"
text-color=
"white"
/>
<q-avatar
icon=
"assignment"
text-color=
"#474747"
/>
</q-item-section>
<q-item-section>
<q-item-label>
我的訂單
</q-item-label>
...
...
@@ -131,36 +250,27 @@
</q-item>
<q-item
clickable
v-close-popup
to=
"/demandlist"
>
<q-item-section
avatar
>
<q-avatar
icon=
"assignment"
color=
"secondary"
text-color=
"white"
/>
<q-avatar
icon=
"assignment"
text-color=
"#474747"
/>
</q-item-section>
<q-item-section>
<q-item-label>
我的需求單
</q-item-label>
</q-item-section>
</q-item>
<q-separator
inset
class=
"q-mx-lg"
/>
<div
class=
"flex flex-center padding-top"
>
<q-btn
label=
"登出"
@
click=
"loginOut"
flat
v-close-popup
/>
</div>
</q-list>
</div>
<q-separator
vertical
inset
class=
"q-mx-lg"
/>
<!--
<q-separator
vertical
inset
class=
"q-mx-lg"
/>
<div
class=
"column items-center"
>
<q-avatar
size=
"72px"
>
<img
v-if=
"LoginUser.photo"
:src=
"LoginUser.photo"
/>
<img
v-else
src=
"../../statics/img/default_head_img.jpg"
/>
</q-avatar>
<div
class=
"text-subtitle1 q-mt-md q-mb-xs"
>
{{
LoginUser
.
name
}}
</div>
<q-btn
color=
"primary"
label=
"登出"
@
click=
"loginOut"
push
size=
"sm"
v-close-popup
/>
</div>
<div
class=
"text-subtitle1 q-mt-md q-mb-xs"
>
{{
LoginUser
.
name
}}
</div>
<q-btn
color=
"primary"
label=
"登出"
@
click=
"loginOut"
push
size=
"sm"
v-close-popup
/>
</div>
-->
</div>
</q-btn-dropdown>
</
template
>
...
...
@@ -181,7 +291,104 @@
to=
"/login"
/>
</
template
>
</div>
</q-toolbar>
<div
class=
"header-box flex"
>
<q-tabs
align=
"center"
shrink
>
<q-btn
flat
class=
"address-btn"
>
<span
slot=
"default"
class=
"flex item-center"
>
<i
class=
"iconfont icondingweixiao q-icon notranslate"
style=
"font-size: 14px; margin-right: 8px"
></i>
選擇目的地
</span>
<q-menu>
<div
class=
"address-box flex"
>
<div
class=
"menu-box"
>
<div
v-for=
"item in areas"
:key=
"item.Id"
class=
"menu-item"
@
click=
"changeAreas(item)"
:class=
"{'select': true}"
>
<div
v-if=
"!item.tag"
class=
"hot"
>
{{item.Name}}
</div>
<div
v-else
>
<div
class=
"menu-title"
>
{{item.Name}}
</div>
<div
class=
"menu-tag-box"
>
<span>
加德滿都
</span>
<span>
加德滿都
</span>
</div>
</div>
</div>
</div>
<div
class=
"city-box"
>
<div
v-for=
"item in selectedArea"
:key=
"item"
>
<div
class=
"city"
>
<img
class=
"city-img"
v-if=
"item.ImageList.length"
:src=
"item.ImageList[0]"
/>
<div
class=
"city-name-box flex flex-center"
><div
class=
"city-name"
>
{{item.Name}}
</div></div>
</div>
<
template
v-if=
"item.SubList"
>
<div
class=
"city"
v-for=
"item2 in item.SubList"
:key=
"item2.Id"
>
<div>
<img
class=
"city-img"
v-if=
"item2.ImageList.length"
:src=
"item2.ImageList[0]"
/>
<div
class=
"city-name-box flex flex-center"
><div
class=
"city-name"
>
{{
item
.
Name
}}
</div></div>
</div>
</div>
</
template
>
</div>
</div>
</div>
</q-menu>
</q-btn>
<q-separator
style=
"height: 16px;margin: auto 0"
vertical
/>
<q-btn
class=
"all-type"
flat
label=
"全部分類"
>
<q-menu>
<div
class=
"all-menu"
>
<div
class=
"flex"
>
<div
class=
"category-item font-16"
:key=
"i"
v-for=
"(x, i) in baseData.nav.navs"
>
{{x.NavTitle}}
</div>
</div>
<q-separator
/>
<div
class=
"flex"
>
<div
class=
"category-item"
:key=
"i"
v-for=
"(x, i) in baseData.nav.navs"
>
<q-list>
<q-item
:key=
"item.Id"
v-for=
"item in x.SubList"
clickable
v-close-popup
>
<q-item-section>
{{item.NavTitle}}
</q-item-section>
<q-menu
v-if=
"item.SubList.length"
>
<q-list>
<q-item
:key=
"item2.Id"
v-for=
"item2 in item.SubList"
clickable
v-close-popup
>
<q-item-section>
{{item2.NavTitle}}
</q-item-section>
</q-item>
</q-list>
</q-menu>
</q-item>
</q-list>
</div>
</div></div>
</q-menu>
</q-btn>
<
template
v-for=
"(x, i) in baseData.nav.navs"
>
<q-btn
:key=
"i"
:label=
"x.NavTitle"
flat
:content-style=
"
{ hover: '#ff0000' }">
<q-menu
:key=
"i"
>
<q-list>
<q-item
:key=
"item.Id"
v-for=
"item in x.SubList"
clickable
v-close-popup
>
<q-item-section
v-if=
"!item.SubList.length"
>
{{
item
.
NavTitle
}}
</q-item-section>
<q-menu
v-else
>
<q-list>
<q-item
:key=
"item2.Id"
v-for=
"item2 in item.SubList"
clickable
v-close-popup
>
<q-item-section>
{{
item2
.
NavTitle
}}
</q-item-section>
</q-item>
</q-list>
</q-menu>
</q-item>
</q-list>
</q-menu>
</q-btn>
</
template
>
</q-tabs>
</div>
</q-header>
</template>
...
...
@@ -190,61 +397,71 @@ export default {
props
:
{
baseData
:
{
type
:
Object
,
default
:
{}
,
default
:
{}
},
title
:
{
type
:
String
,
default
:
""
,
}
,
default
:
""
}
},
data
()
{
return
{
categoryList
:
[],
subTitle
:
""
,
LoginUser
:
{},
navs
:
[],
navsStyle
:
1
navsStyle
:
1
,
areas
:
[],
selectedArea
:
[]
};
},
watch
:
{
title
:
function
(
val
,
oldval
)
{
title
:
function
(
val
,
oldval
)
{
this
.
subTitle
=
val
;
},
baseData
:
{
handler
(
n
,
o
)
{
this
.
initNavs
();
},
deep
:
true
,
// this.initNavs();
this
.
initAreas
();
},
deep
:
true
}
},
meta
()
{
return
{
title
:
this
.
subTitle
!=
""
?
`
${
this
.
subTitle
}
-
${
this
.
baseData
.
name
}
`
:
this
.
baseData
.
name
,
:
this
.
baseData
.
name
};
},
mounted
()
{
if
(
localStorage
.
b2bUser
)
{
this
.
LoginUser
=
JSON
.
parse
(
window
.
localStorage
.
getItem
(
"b2bUser"
));
}
this
.
initNavs
();
// this.initAreas()
// this.initNavs();
this
.
getCategoryList
();
},
methods
:
{
changeAreas
(
item
)
{
this
.
selectedArea
=
item
.
SubList
;
this
.
selectedAreaId
=
item
.
Id
;
},
initNavs
()
{
this
.
navs
=
[];
if
(
this
.
baseData
.
nav
.
navs
)
{
this
.
baseData
.
nav
.
navs
.
forEach
(
(
x
)
=>
{
this
.
baseData
.
nav
.
navs
.
forEach
(
x
=>
{
if
(
x
.
title
.
indexOf
(
"^"
)
!=
-
1
)
{
console
.
log
(
"in...."
);
let
t
=
x
.
title
.
split
(
"^"
);
let
c
=
t
[
1
].
split
(
","
);
x
.
childs
=
[];
c
.
forEach
(
(
y
)
=>
{
c
.
forEach
(
y
=>
{
let
yt
=
y
.
split
(
"&"
);
x
.
childs
.
push
({
title
:
yt
[
0
],
url
:
x
.
url
+
"&"
+
yt
[
1
]
,
url
:
x
.
url
+
"&"
+
yt
[
1
]
});
});
x
.
title
=
t
[
0
];
...
...
@@ -253,14 +470,61 @@ export default {
});
}
this
.
navsStyle
=
this
.
navs
.
findIndex
((
x
)
=>
x
.
childs
)
!=
-
1
?
2
:
1
;
this
.
navsStyle
=
this
.
navs
.
findIndex
(
x
=>
x
.
childs
)
!=
-
1
?
2
:
1
;
},
initAreas
()
{
this
.
areas
=
[];
let
hotArr
=
this
.
getHotList
(
this
.
baseData
.
AreaList
);
this
.
areas
.
push
({
Name
:
"热门目的地"
,
SubList
:
hotArr
});
this
.
areas
=
this
.
areas
.
concat
(
this
.
baseData
.
AreaList
);
console
.
log
(
"this.hotArr"
,
hotArr
,
this
.
baseData
.
AreaList
,
this
.
areas
);
},
getHotList
(
arr
)
{
let
hotArr
=
[];
arr
.
forEach
(
item
=>
{
if
(
item
.
SubList
&&
item
.
SubList
.
length
)
{
hotArr
=
hotArr
.
concat
(
this
.
getHotList
(
item
.
SubList
));
}
else
{
if
(
item
.
IsHot
===
1
)
{
hotArr
.
push
(
item
);
}
}
});
return
hotArr
;
},
loginOut
()
{
localStorage
.
removeItem
(
"b2bUser"
);
this
.
LoginUser
=
{};
this
.
CommonJump
(
"/index"
,
{});
},
getCategoryList
()
{
let
locationName
=
this
.
GetDomain
();
var
msg
=
{
RB_Group_Id
:
this
.
RB_Group_Id
,
B2BDomain
:
locationName
};
this
.
apipost
(
"ws_post_GetHomeCategoryTreeList"
,
msg
,
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
if
(
res
.
data
.
data
)
{
this
.
categoryList
=
res
.
data
.
data
;
}
}
this
.
$nextTick
(()
=>
{
this
.
isPic
=
document
.
URL
.
indexOf
(
"localhost"
)
!=
-
1
||
document
.
URL
.
indexOf
(
"t.oytour.com"
)
!=
-
1
;
});
},
err
=>
{}
);
}
}
};
</
script
>
...
...
@@ -282,12 +546,12 @@ export default {
height
:
2px
;
background
:
var
(
--q-color-primary
);
}
.nav-items
:hover
.secondMenu
{
.nav-items
:hover
.secondMenu
{
display
:
block
;
}
.secondMenu
{
display
:
none
;
padding-top
:
5px
;
padding-top
:
5px
;
position
:
absolute
;
top
:
60px
;
left
:
0px
;
...
...
src/components/navs/hor-btm-old.vue
0 → 100644
View file @
fb797202
<
style
>
.hor_BtmContent
{
display
:
inline-block
;
width
:
100%
;
background
:
#fff
;
}
.hor_BtmContent
.footer-top
{
padding
:
0
40px
18px
;
background-color
:
#313131
;
}
.hor_BtmContent
.footer-link
{
display
:
inline-block
;
width
:
100%
;
height
:
44px
;
background-color
:
#292929
;
text-align
:
left
;
font-weight
:
700
;
}
.hor_BtmContent
.hor_footuu
li
:first-child
{
color
:
#fff
;
margin-left
:
24px
;
}
.hor_BtmContent
.hor_footuu
{
margin
:
0
;
padding
:
0
;
}
.hor_BtmContent
.hor_footuu
li
{
list-style-type
:
none
;
display
:
inline-block
;
margin-left
:
30px
;
font-size
:
15px
;
color
:
#76ccff
;
line-height
:
44px
;
position
:
relative
;
cursor
:
pointer
;
}
.hor_BtmContent
.hor_footuu
li
a
{
color
:
#76ccff
;
}
.hor_BtmContent
.hor_BtmContent
ul
{
margin
:
0
;
padding
:
0
;
}
.hor_BtmContent
.other_li
:before
{
position
:
absolute
;
top
:
10px
;
left
:
-16px
;
content
:
''
;
width
:
1px
;
height
:
25px
;
background-color
:
rgba
(
58
,
58
,
58
,
.8
);
}
.hor_BtmContent
.foot_content
{
display
:
flex
;
justify-content
:
space-around
;
width
:
100%
;
text-align
:
left
;
}
.hor_BtmContent
.footer-box
{
width
:
100%
;
padding
:
20px
;
font-size
:
14px
;
text-align
:
left
;
}
.hor_BtmContent
.footer-box
.footer_title1
{
font-size
:
15px
;
color
:
#fff
;
margin-bottom
:
15px
;
font-weight
:
400
;
letter-spacing
:
1px
;
}
.hor_BtmContent
.footer_table
{
border-collapse
:
separate
;
border-spacing
:
0
;
margin-bottom
:
10px
;
}
.hor_BtmContent
.footer_table
td
{
color
:
#b1b1b1
;
text-align
:
left
;
vertical-align
:
middle
;
font-size
:
14px
;
}
.hor_BtmContent
.footer_tbtitle
{
min-width
:
100px
;
color
:
#9bdaff
!important
;
}
.hor_BtmContent
.footer-box
>*
{
display
:
block
;
margin-bottom
:
10px
;
}
.hor_BtmContent
.social-link
a
{
display
:
inline-block
;
text-decoration
:
none
;
width
:
50px
;
height
:
50px
;
border-radius
:
50%
;
color
:
#fff
;
line-height
:
55px
;
text-align
:
center
;
margin
:
15px
0
0
20px
;
-webkit-box-shadow
:
0
3px
12px
rgba
(
39
,
39
,
39
,
.95
);
-moz-box-shadow
:
0
3px
12px
rgba
(
39
,
39
,
39
,
.95
);
box-shadow
:
0
3px
12px
rgba
(
39
,
39
,
39
,
.95
);
}
.hor_BtmContent
.social-link
a
:first-child
{
margin-left
:
0
;
}
.social-link
a
i
{
font-size
:
30px
;
}
.hor_BtmContent
.foot_line
{
background-color
:
#1bb71f
}
.hor_BtmContent
.foot_fb
{
background-color
:
#334f8d
;
}
.hor_BtmContent
.foot_mail
{
background-color
:
#00a6ff
;
}
.hor_BtmContent
.footer_logo_block
{
display
:
block
;
margin-top
:
5px
;
}
.hor_BtmContent
.footer_fb_group
{
display
:
block
;
width
:
300px
;
height
:
130px
;
background-color
:
#2b2b2b
;
}
.footer_fb_group
a
img
{
height
:
100%
;
min-height
:
initial
;
width
:
auto
;
}
.hor_BtmContent
.footer_qrcode
a
{
display
:
inline-block
;
width
:
100px
;
height
:
100px
;
}
.hor_BtmContent
.footer_qrcode
a
span
{
color
:
#fff
;
letter-spacing
:
2px
;
}
.hor_BtmContent
.branch-company
{
display
:
flex
;
flex-wrap
:
wrap
;
width
:
100%
;
margin-bottom
:
20px
;
background-color
:
#2d2d2d
;
}
.hor_BtmContent
.footer-bottom
{
width
:
100%
;
padding
:
30px
;
text-align
:
center
;
}
.hor_BtmContent
.sponsor
{
display
:
inline-block
;
}
.hor_BtmContent
.sponsor
>
a
{
float
:
left
;
width
:
40px
;
text-decoration
:
none
;
margin-right
:
10px
;
}
.hor_BtmContent
.sponsor
>
a
img
{
width
:
100%
;
}
.hor_BtmContent
.copyright
{
display
:
inline-block
;
width
:
100%
;
font-size
:
13px
;
margin
:
20px
0
;
color
:
#757575
;
}
.hor_BtmContent
.branch-company
.footer-box
{
width
:
33%
;
}
.hor_BtmContent
.footer-watermark
{
position
:
fixed
;
top
:
110px
;
z-index
:
999
;
width
:
auto
;
}
.hor_BtmContent
.footer_Left
{
left
:
10px
;
}
.hor_BtmContent
.footer_Right
{
right
:
10px
;
}
.footer-watermark
>
div
{
width
:
auto
;
width
:
140px
;
height
:
140px
;
margin-bottom
:
10px
;
}
.footer-watermark
>
div
img
{
width
:
100%
;
height
:
100%
;
}
@media
only
screen
and
(
max-width
:
930px
)
{
.hor_BtmContent
.footer-top
{
padding
:
0
15px
;
}
.hor_BtmContent
.footer-link
{
height
:
auto
;
}
.hor_BtmContent
.hor_footuu
li
:first-child
{
margin-left
:
24px
;
}
.hor_BtmContent
.hor_footuu
li
{
font-size
:
13px
;
margin-left
:
28px
;
}
.hor_BtmContent
.foot_content
{
flex-wrap
:
wrap
;
justify-content
:
flex-start
;
}
.hor_BtmContent
.footer-box
{
width
:
50%
!important
;
}
}
@media
only
screen
and
(
max-width
:
520px
)
{
.hor_BtmContent
.footer-box
{
width
:
100%
!important
;
}
}
</
style
>
<
template
>
<div
class=
"hor_BtmContent"
>
<template
v-if=
"dataList&&dataList.Config"
>
<div
class=
"footer-top"
>
<div
class=
"footer-link"
>
<ul
class=
"hor_footuu"
>
<li><a
@
click=
"CommonJump('/index',
{})">
{{
dataList
.
Config
.
Name
}}
</a></li>
<li
class=
"other_li"
v-for=
"(item,index) in dataList.FooterList"
:key=
"index"
>
<a
@
click=
"CommonJump(item.url,
{})">
{{
item
.
title
}}
</a>
</li>
</ul>
</div>
<div
class=
"foot_content"
>
<div
class=
"footer-box"
>
<div
class=
"footer_title1"
>
聯絡資訊
</div>
<table
class=
"footer_table"
>
<tbody>
<tr>
<td
class=
"footer_tbtitle"
>
地址
</td>
<td>
{{
dataList
.
Config
.
Address
}}
</td>
</tr>
<tr>
<td
class=
"footer_tbtitle"
>
電話
</td>
<td>
{{
dataList
.
Config
.
Tel
}}
</td>
</tr>
<tr>
<td
class=
"footer_tbtitle"
>
傳真
</td>
<td>
{{
dataList
.
Config
.
Fax
}}
</td>
</tr>
<tr>
<td
class=
"footer_tbtitle"
>
服務時間
</td>
<td>
{{
dataList
.
Config
.
ServiceTime
}}
</td>
</tr>
</tbody>
</table>
<div
class=
"social-link"
>
<a
class=
"foot_line"
@
click=
"OpenNewUrl(dataList.Config.LineUrl)"
>
<i
class=
"iconfont iconline"
></i>
</a>
<a
class=
"foot_fb"
@
click=
"OpenNewUrl(dataList.Config.FaceBookUrl)"
>
<i
class=
"iconfont iconzan"
style=
"position:relative;top:-2px;"
></i>
</a>
<a
class=
"foot_mail"
@
click=
"OpenNewUrl(dataList.Config.ServiceMail)"
>
<i
class=
"iconfont iconemail"
></i>
</a>
</div>
</div>
<div
class=
"footer-box"
>
<div
class=
"footer_title1"
>
公司資訊
</div>
<table
class=
"footer_table"
>
<tbody>
<tr>
<td
class=
"footer_tbtitle"
>
{{
dataList
.
Config
.
TypeStr
}}
</td>
<td>
{{
dataList
.
Config
.
JiaoGuanCode
}}
</td>
</tr>
<tr>
<td
class=
"footer_tbtitle"
>
品保協會會員
</td>
<td>
{{
dataList
.
Config
.
PingBaoCode
}}
</td>
</tr>
<tr>
<td
class=
"footer_tbtitle"
>
統一編號
</td>
<td>
{{
dataList
.
Config
.
UnifyCode
}}
</td>
</tr>
<tr>
<td
class=
"footer_tbtitle"
>
代表人
</td>
<td>
{{
dataList
.
Config
.
Behalf
}}
</td>
</tr>
</tbody>
</table>
</div>
<div
class=
"footer-box"
>
<div
class=
"footer_logo_block"
>
<img
style=
"width:120px;height:auto;"
:src=
"dataList.Config.WhiteLogo"
/>
</div>
<div
class=
"footer_fb_group"
>
<a
:href=
"dataList.Config.FaceBookUrl"
>
<div
class=
"fb-page"
:data-href=
"dataList.Config.FaceBookUrl"
data-tabs=
"timeline"
data-width=
"340"
data-height=
"130"
data-small-header=
"false"
data-adapt-container-width=
"false"
data-hide-cover=
"false"
data-show-facepile=
"false"
>
<blockquote
:cite=
"dataList.Config.FaceBookUrl"
class=
"fb-xfbml-parse-ignore"
><a
:href=
"dataList.Config.FaceBookUrl"
>
{{
dataList
.
Config
.
Name
}}
</a></blockquote>
</div>
</a>
</div>
</div>
</div>
<div
class=
"branch-company"
>
<div
class=
"footer-box"
>
<template
v-if=
"dataList.BranchList&&dataList.BranchList.length>0"
>
<div
class=
"footer_title1"
>
{{
dataList
.
BranchList
[
0
].
Name
}}
</div>
<table
class=
"footer_table"
>
<tbody>
<tr>
<td
class=
"footer_tbtitle"
>
地址
</td>
<td>
{{
dataList
.
BranchList
[
0
].
Address
}}
</td>
</tr>
<tr>
<td
class=
"footer_tbtitle"
>
電話
</td>
<td>
{{
dataList
.
BranchList
[
0
].
Tel
}}
</td>
</tr>
<tr>
<td
class=
"footer_tbtitle"
>
傳真
</td>
<td>
{{
dataList
.
BranchList
[
0
].
Fax
}}
</td>
</tr>
</tbody>
</table>
</
template
>
</div>
</div>
</div>
<div
class=
"footer-bottom"
>
<div
class=
"sponsor"
>
<a
@
click=
"OpenNewUrl(item.url)"
target=
"_blank"
v-for=
"(item,index) in dataList.BottomList"
:key=
"index"
>
<img
:src=
"item.icon"
/>
</a>
</div>
<div
class=
"copyright"
>
© {{year}} {{dataList.Config.Name}}. All rights reserved.
</div>
</div>
<div
class=
"footer-watermark footer_Left"
>
<
template
v-if=
"dataList&&dataList.AdLeftList"
>
<div
v-for=
"(item,index) in getAdLeftList"
:key=
"index"
>
<a
@
click=
"OpenNewUrl(item.AdLink)"
>
<img
style=
"width:100%"
:src=
"item.AdImg"
/>
</a>
</div>
</
template
>
</div>
<div
class=
"footer-watermark footer_Right"
>
<
template
v-if=
"dataList&&dataList.AdRightList"
>
<div
v-for=
"(item,index) in getAdRightList"
:key=
"index"
>
<a
@
click=
"OpenNewUrl(item.AdLink)"
>
<img
style=
"width:100%"
:src=
"item.AdImg"
/>
</a>
</div>
</
template
>
</div>
</template>
</div>
</template>
<
script
>
export
default
{
props
:
[
"dataList"
],
data
()
{
return
{
year
:
''
};
},
created
()
{},
mounted
()
{
//获取当前年
var
myDate
=
new
Date
();
this
.
year
=
myDate
.
getFullYear
();
},
computed
:
{
getAdLeftList
()
{
var
tempArray
=
[];
var
showId
=
this
.
getShowId
();
if
(
this
.
dataList
&&
this
.
dataList
.
AdLeftList
)
{
this
.
dataList
.
AdLeftList
.
forEach
(
item
=>
{
if
(
item
.
ShowPage
.
indexOf
(
showId
)
>
-
1
)
{
tempArray
.
push
(
item
);
}
});
}
return
tempArray
;
},
getAdRightList
()
{
var
tempArray
=
[];
var
showId
=
this
.
getShowId
();
if
(
this
.
dataList
&&
this
.
dataList
.
AdRightList
)
{
this
.
dataList
.
AdRightList
.
forEach
(
item
=>
{
if
(
item
.
ShowPage
.
indexOf
(
showId
)
>
-
1
)
{
tempArray
.
push
(
item
);
}
});
}
return
tempArray
;
}
},
methods
:
{
getShowId
()
{
let
locationName
=
this
.
GetDomain
();
var
routeStr
=
this
.
$route
.
path
.
toLowerCase
();
var
showId
=
0
;
switch
(
routeStr
)
{
case
"/index"
:
showId
=
1
;
break
;
case
'/search'
:
showId
=
2
;
break
;
case
'/trip'
:
showId
=
3
;
break
;
case
'/self'
:
showId
=
4
;
break
;
}
return
showId
;
}
},
};
</
script
>
src/components/navs/hor-btm.vue
View file @
fb797202
...
...
@@ -7,7 +7,7 @@
.hor_BtmContent
.footer-top
{
padding
:
0
40px
18px
;
background
-color
:
#313131
;
background
:
#2B2B2B
;
}
.hor_BtmContent
.footer-link
{
...
...
@@ -61,16 +61,9 @@
.hor_BtmContent
.foot_content
{
display
:
flex
;
justify-content
:
space-around
;
width
:
100%
;
text-align
:
left
;
}
.hor_BtmContent
.footer-box
{
width
:
100%
;
padding
:
20px
;
font-size
:
14px
;
text-align
:
left
;
justify-content
:
space-between
;
max-width
:
1200px
;
margin
:
0
auto
;
}
.hor_BtmContent
.footer-box
.footer_title1
{
...
...
@@ -254,11 +247,6 @@
margin-left
:
28px
;
}
.hor_BtmContent
.foot_content
{
flex-wrap
:
wrap
;
justify-content
:
flex-start
;
}
.hor_BtmContent
.footer-box
{
width
:
50%
!important
;
}
...
...
@@ -270,79 +258,40 @@
}
}
</
style
>
<
style
scoped
>
.logo
{
width
:
40px
;
height
:
34px
;
margin
:
10px
16px
6px
0
;
}
.nav-title1
{
height
:
12px
;
font-size
:
14px
;
font-family
:
Microsoft
JhengHei
;
font-weight
:
bold
;
color
:
#FFFFFF
;
line-height
:
26px
;
padding
:
60px
0
25px
0
;
cursor
:
pointer
;
}
.nav-title2
{
font-size
:
12px
;
font-family
:
Microsoft
JhengHei
;
font-weight
:
400
;
color
:
#7A7A7A
;
line-height
:
26px
;
cursor
:
pointer
;
}
.margin-x
{
margin
:
0
10px
0
10px
;
}
</
style
>
<
template
>
<div
class=
"hor_BtmContent"
>
<template
v-if=
"dataList&&dataList.Config"
>
<div
class=
"footer-top"
>
<div
class=
"footer-link"
>
<ul
class=
"hor_footuu"
>
<li><a
@
click=
"CommonJump('/index',
{})">
{{
dataList
.
Config
.
Name
}}
</a></li>
<li
class=
"other_li"
v-for=
"(item,index) in dataList.FooterList"
:key=
"index"
>
<a
@
click=
"CommonJump(item.url,
{})">
{{
item
.
title
}}
</a>
</li>
</ul>
</div>
<div
class=
"foot_content"
>
<div
class=
"footer-box"
>
<div
class=
"footer_title1"
>
聯絡資訊
</div>
<table
class=
"footer_table"
>
<tbody>
<tr>
<td
class=
"footer_tbtitle"
>
地址
</td>
<td>
{{
dataList
.
Config
.
Address
}}
</td>
</tr>
<tr>
<td
class=
"footer_tbtitle"
>
電話
</td>
<td>
{{
dataList
.
Config
.
Tel
}}
</td>
</tr>
<tr>
<td
class=
"footer_tbtitle"
>
傳真
</td>
<td>
{{
dataList
.
Config
.
Fax
}}
</td>
</tr>
<tr>
<td
class=
"footer_tbtitle"
>
服務時間
</td>
<td>
{{
dataList
.
Config
.
ServiceTime
}}
</td>
</tr>
</tbody>
</table>
<div
class=
"social-link"
>
<a
class=
"foot_line"
@
click=
"OpenNewUrl(dataList.Config.LineUrl)"
>
<i
class=
"iconfont iconline"
></i>
</a>
<a
class=
"foot_fb"
@
click=
"OpenNewUrl(dataList.Config.FaceBookUrl)"
>
<i
class=
"iconfont iconzan"
style=
"position:relative;top:-2px;"
></i>
</a>
<a
class=
"foot_mail"
@
click=
"OpenNewUrl(dataList.Config.ServiceMail)"
>
<i
class=
"iconfont iconemail"
></i>
</a>
</div>
</div>
<div
class=
"footer-box"
>
<div
class=
"footer_title1"
>
公司資訊
</div>
<table
class=
"footer_table"
>
<tbody>
<tr>
<td
class=
"footer_tbtitle"
>
{{
dataList
.
Config
.
TypeStr
}}
</td>
<td>
{{
dataList
.
Config
.
JiaoGuanCode
}}
</td>
</tr>
<tr>
<td
class=
"footer_tbtitle"
>
品保協會會員
</td>
<td>
{{
dataList
.
Config
.
PingBaoCode
}}
</td>
</tr>
<tr>
<td
class=
"footer_tbtitle"
>
統一編號
</td>
<td>
{{
dataList
.
Config
.
UnifyCode
}}
</td>
</tr>
<tr>
<td
class=
"footer_tbtitle"
>
代表人
</td>
<td>
{{
dataList
.
Config
.
Behalf
}}
</td>
</tr>
</tbody>
</table>
</div>
<div
class=
"footer-box"
>
<div
class=
"footer_logo_block"
>
<img
style=
"width:120px;height:auto;"
:src=
"dataList.Config.WhiteLogo"
/>
...
...
@@ -358,28 +307,25 @@
</a>
</div>
</div>
<!-- 中间导航 -->
<div
class=
"flex"
>
<div
class=
"margin-x"
v-for=
"item in dataList.FooterList"
:key=
"item.Id"
>
<div
class=
"nav-title1"
>
{{
item
.
NavTitle
}}
</div>
<div
v-if=
"item.SubList"
>
<div
class=
"nav-title2"
v-for=
"item2 in item.SubList"
:key=
"item2.Id"
@
click=
"navigateTo(item2)"
>
{{
item2
.
NavTitle
}}
</div>
</div>
</div>
</div>
<!-- 右侧导航 -->
<div
class=
"flex"
>
<div
class=
"margin-x"
v-for=
"item in dataList.BottomList"
:key=
"item.Id"
>
<div
class=
"nav-title1"
>
{{
item
.
NavTitle
}}
</div>
<div
v-if=
"item.SubList"
>
<div
@
click=
"navigateTo(item2)"
v-for=
"item2 in item.SubList"
:key=
"item2.Id"
>
<img
class=
"logo"
:src=
"item2.Icon"
>
</div>
</div>
</div>
<div
class=
"branch-company"
>
<div
class=
"footer-box"
>
<template
v-if=
"dataList.BranchList&&dataList.BranchList.length>0"
>
<div
class=
"footer_title1"
>
{{
dataList
.
BranchList
[
0
].
Name
}}
</div>
<table
class=
"footer_table"
>
<tbody>
<tr>
<td
class=
"footer_tbtitle"
>
地址
</td>
<td>
{{
dataList
.
BranchList
[
0
].
Address
}}
</td>
</tr>
<tr>
<td
class=
"footer_tbtitle"
>
電話
</td>
<td>
{{
dataList
.
BranchList
[
0
].
Tel
}}
</td>
</tr>
<tr>
<td
class=
"footer_tbtitle"
>
傳真
</td>
<td>
{{
dataList
.
BranchList
[
0
].
Fax
}}
</td>
</tr>
</tbody>
</table>
</
template
>
</div>
</div>
</div>
...
...
@@ -455,6 +401,13 @@
}
},
methods
:
{
navigateTo
(
urlInfo
)
{
if
(
urlInfo
.
IsNewOpen
===
1
)
{
window
.
open
(
urlInfo
.
NavUrl
)
}
else
{
window
.
location
.
href
=
urlINfo
.
NavUrl
}
},
getShowId
()
{
let
locationName
=
this
.
GetDomain
();
var
routeStr
=
this
.
$route
.
path
.
toLowerCase
();
...
...
src/components/navs/subscriber.vue
0 → 100644
View file @
fb797202
<
style
scoped
>
.fill
{
background-image
:
url('../../assets/subscriber-bg.png')
;
height
:
301px
;
}
.box
{
max-width
:
1200px
;
margin
:
0
auto
;
}
.title
{
font-size
:
20px
;
font-family
:
Microsoft
JhengHei
;
font-weight
:
bold
;
color
:
#FFFFFF
;
line-height
:
26px
;
text-align
:
center
;
padding-top
:
80px
;
}
.desc
{
font-size
:
12px
;
font-family
:
Microsoft
JhengHei
;
font-weight
:
400
;
color
:
#FFFFFF
;
margin
:
10px
0
20px
0
;
text-align
:
center
;}
.email-box
{
width
:
630px
;
height
:
56px
;
margin
:
0
auto
;
position
:
relative
;
}
.input
{
width
:
630px
;
height
:
56px
;
background-color
:
#fff
;
border-radius
:
28px
;
}
.btn
{
position
:
absolute
;
right
:
5px
;
top
:
5px
;
width
:
102px
;
height
:
46px
;
background
:
#EE4454
;
border-radius
:
23px
;
}
</
style
>
>
<
template
>
<div
class=
"fill"
>
<div
class=
"box"
>
<div
class=
"title"
>
輸入電子郵箱接收訂閱信息
</div>
<div
class=
"desc"
>
最高可省60%,只有订阅用户才能享受到隐藏优惠,点击“订阅”,即表示你同意我们的《訂閱條款》
</div>
<div
class=
"email-box"
>
<q-input
class=
"input"
rounded
outlined
placeholder=
"請輸入您在使用的電子郵件"
></q-input><q-btn
class=
"btn"
label=
"提交"
></q-btn>
</div>
</div>
</div>
</
template
>
<
script
>
export
default
{
// props: ["dataList"],
data
()
{
return
{
year
:
''
};
},
created
()
{},
mounted
()
{
//获取当前年
var
myDate
=
new
Date
();
this
.
year
=
myDate
.
getFullYear
();
},
methods
:
{
},
};
</
script
>
src/components/search_sf/search_sf2.vue
View file @
fb797202
...
...
@@ -166,19 +166,22 @@
>
<div
class=
"q-px-sm q-pt-sm"
v-if=
"historys.length>0"
>
<div
class=
"q-mb-sm text-weight-bold"
>
搜尋紀錄
</div>
<div
class=
"q-mb-sm text-weight-bold"
>
歷史搜索
</div>
<div
class=
"row"
>
<div
class=
"col overflow-hidden"
style=
"height:36px"
>
<q-chip
style=
"background:#f6f7f9;"
@
click=
"goSearchHandler(x)"
clickable
text-color=
"dark"
class=
"cursor-pointer"
:label=
"x"
v-for=
"(x,i) in historys"
:key=
"i"
/>
</div>
<q-btn
text-color=
"grey-6"
icon=
"delete"
class=
"q-py-none"
dense
size=
"sm"
flat
@
click=
"clearHistorys"
>
<q-tooltip
class=
"bg-dark"
co
>
清空
搜尋紀錄
</q-tooltip>
<q-tooltip
class=
"bg-dark"
co
>
清空
歷史
</q-tooltip>
</q-btn>
</div>
</div>
<div
class=
"text-weight-bold q-pa-sm"
>
熱門目的地
</div>
<q-separator
/>
<div
class=
"col full-width row"
>
<div>
<div
:key=
"item"
v-for=
"item in 12"
>
熱門地址
</div>
</div>
<!-- <div class="col full-width row">
<div style="width: 180px">
<q-scroll-area
:thumb-style="thumbStyle"
...
...
@@ -258,7 +261,7 @@
</template>
</q-scroll-area>
</div>
</div>
</div>
-->
</div>
</div>
<div
v-if=
"$q.screen.xs"
>
...
...
src/layouts/HomeLayout.vue
View file @
fb797202
...
...
@@ -36,6 +36,7 @@
<i
class=
"iconfont iconarrow-top"
></i>
</div>
<q-footer
elevated
class=
"bg-grey-8 text-white"
style=
"position: unset;"
>
<subscriber></subscriber>
<horBtm
:dataList=
"dataList"
></horBtm>
</q-footer>
</q-layout>
...
...
@@ -45,11 +46,13 @@
import
horBigOne
from
"../components/navs/hor-big-one"
;
import
horBigTwo
from
"../components/navs/hor-big-tow"
;
import
horBtm
from
"../components/navs/hor-btm"
;
import
subscriber
from
"../components/navs/subscriber"
;
export
default
{
components
:
{
horBigOne
,
horBigTwo
,
horBtm
horBtm
,
subscriber
},
data
()
{
return
{
...
...
@@ -176,6 +179,7 @@
this
.
baseinfo
.
nav
.
navs
=
this
.
dataList
.
HeaderList
;
this
.
baseinfo
.
nav
.
bg
=
this
.
dataList
.
Config
.
BgColor
;
this
.
baseinfo
.
AreaList
=
this
.
dataList
.
AreaList
}
}
},
...
...
yarn.lock
View file @
fb797202
...
...
@@ -1236,10 +1236,10 @@
babel-plugin-dynamic-import-node "^2.3.0"
babel-plugin-module-resolver "^4.0.0"
"@quasar/extras@^1.
15.1
0":
version "1.
15.10
"
resolved "https://registry.
yarnpkg.com/@quasar/extras/-/extras-1.15.10.tgz#515298377249765f9ca0027f6843f6a8e61efcd8
"
integrity sha512-
6w8e+wPNfcWhzW43tlnJPHOrcNwAgaaNJ3zBz8k+BMqpenA3fHZhFhxCYEVRZVqPFE2IK/8nRiPBp4t9xlW5tA
==
"@quasar/extras@^1.
0.
0":
version "1.
8.2
"
resolved "https://registry.
npmmirror.com/@quasar/extras/-/extras-1.8.2.tgz
"
integrity sha512-
y3A4OO4DGDxuFyh/X4k5fS17TTxhpPauZv8Qr/0bso+RTk5f+3X4lLAcP7aaiqcBLOV8HsUKpGzNArMleClYgg
==
"@quasar/fastclick@1.1.4":
version "1.1.4"
...
...
@@ -2114,11 +2114,6 @@ babel-plugin-transform-object-rest-spread@^6.26.0:
babel-plugin-syntax-object-rest-spread "^6.8.0"
babel-runtime "^6.26.0"
babel-plugin-transform-remove-console@^6.9.4:
version "6.9.4"
resolved "https://registry.yarnpkg.com/babel-plugin-transform-remove-console/-/babel-plugin-transform-remove-console-6.9.4.tgz#b980360c067384e24b357a588d807d3c83527780"
integrity sha512-88blrUrMX3SPiGkT1GnvVY8E/7A+k6oj3MNvUtTIxJflFzXTw1bHkuJ/y039ouhFMp2prRn5cQGzokViYi1dsg==
babel-runtime@^6.26.0:
version "6.26.0"
resolved "https://registry.npmmirror.com/babel-runtime/-/babel-runtime-6.26.0.tgz"
...
...
@@ -7627,10 +7622,10 @@ qs@~6.5.2:
resolved "https://registry.npmmirror.com/qs/-/qs-6.5.3.tgz"
integrity sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==
quasar@^1.
22.5
:
version "1.
2
2.5"
resolved "https://registry.
yarnpkg.com/quasar/-/quasar-1.22.5.tgz#7c33a02a5541b62b057f1d805b64cbcb59243152
"
integrity sha512-
cb/Q1Nvx1Lo3i2Gq+7j6kN/DJzZrTPG6JJKus3WJ0YpqsiovoWchnbDrGkTyL8nCnj2Im4SAX50DF0Vbd6pK3w
==
quasar@^1.
0.0
:
version "1.
1
2.5"
resolved "https://registry.
npmmirror.com/quasar/-/quasar-1.12.5.tgz
"
integrity sha512-
pZUE0v98Zo0n7jepF77GZq8wuM7AQlZhjhiofzAX7ROePxbAD/bdvfmm2KJhVqOKW0ipMAvmihB7rt5dm03lMA
==
query-string@^4.1.0:
version "4.3.4"
...
...
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