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
ce68ca22
Commit
ce68ca22
authored
Nov 28, 2024
by
黄奎
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
临时提交
parent
c997b6dc
Show whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
713 additions
and
724 deletions
+713
-724
utils.js
src/boot/utils.js
+262
-266
hor-big-one.vue
src/components/navs/hor-big-one.vue
+50
-46
kkday.vue
src/components/searchProductdata/kkday.vue
+30
-19
search-top.vue
src/components/search_sf/search-top.vue
+113
-186
kkday.vue
src/components/searchdata/kkday.vue
+1
-0
Search.vue
src/pages/Search.vue
+126
-101
SearchProduct.vue
src/pages/SearchProduct.vue
+131
-106
No files found.
src/boot/utils.js
View file @
ce68ca22
import
Vue
from
'vue'
import
Vue
from
'vue'
import
axios
from
'axios'
import
axios
from
'axios'
import
md5
from
'js-md5'
import
md5
from
'js-md5'
// import {eventBus} from './eventBus'
import
VueCoreVideoPlayer
from
'vue-core-video-players'
import
VueCoreVideoPlayer
from
'vue-core-video-players'
import
'viewerjs/dist/viewer.css'
import
'viewerjs/dist/viewer.css'
import
user
from
'./user'
import
user
from
'./user'
import
message
from
'./message'
import
message
from
'./message'
import
product
from
'./product'
import
product
from
'./product'
import
VueViewer
from
'v-viewer'
import
VueViewer
from
'v-viewer'
// import VueCoreVideoPlayer from 'vue-core-video-player'
Vue
.
prototype
.
$EventBus
=
new
Vue
()
Vue
.
prototype
.
$EventBus
=
new
Vue
()
Vue
.
use
(
VueCoreVideoPlayer
)
Vue
.
use
(
VueCoreVideoPlayer
)
Vue
.
use
(
VueViewer
)
Vue
.
use
(
VueViewer
)
Vue
.
prototype
.
$md5
=
md5
;
Vue
.
prototype
.
$md5
=
md5
;
Vue
.
prototype
.
$message
=
message
Vue
.
prototype
.
$message
=
message
Vue
.
prototype
.
$product
=
product
Vue
.
prototype
.
$product
=
product
//域名管理对象
//域名管理对象
Vue
.
prototype
.
domainManager
=
function
()
{
Vue
.
prototype
.
domainManager
=
function
()
{
let
domainUrl
=
''
;
let
domainUrl
=
'http://192.168.5.214'
;
domainUrl
=
"http://192.168.2.214:8082"
;
domainUrl
=
"http://192.168.5.46:8501"
;
domainUrl
=
"http://127.0.0.1"
;
var
domainNameUrl
=
window
.
location
.
hostname
;
let
domainNameUrl
=
this
.
GetDomain
();
if
(
domainNameUrl
.
indexOf
(
'oytour'
)
!==
-
1
)
{
domainNameUrl
=
"http://tmb2b.oytour.com/"
domainUrl
=
'http://reborn.oytour.com'
if
(
domainNameUrl
.
indexOf
(
'testerp.oytour'
)
!==
-
1
)
{
domainUrl
=
"http://testapi.oytour.com"
;
}
else
if
(
domainNameUrl
.
indexOf
(
'oytour'
)
!==
-
1
)
{
// domainUrl = "http://reborn.oytour.com";
domainUrl
=
'http://192.168.10.226:8015'
//'http://192.168.10.226:8015' ''http://192.168.10.9:8083' '
}
}
var
obj
=
{
var
obj
=
{
//主地址
DomainUrl
:
domainUrl
,
//ERP接口地址
DomainUrl
:
domainUrl
,
PostUrl
:
domainUrl
+
"/api/common/post"
,
//常用提交数据URL
//常用提交数据URL
PostUrl
:
domainUrl
+
"/api/common/post"
,
javaUrl
:
'http://efficient.oytour.com'
javaUrl
:
'http://efficient.oytour.com'
};
};
return
obj
;
return
obj
;
}
}
//获取当前域名
//获取当前域名
Vue
.
prototype
.
GetDomain
=
function
()
{
Vue
.
prototype
.
GetDomain
=
function
()
{
var
domainNameUrl
=
window
.
location
.
hostname
;
var
domainNameUrl
=
window
.
location
.
hostname
;
domainNameUrl
=
"www.oytour.com"
;
domainNameUrl
=
"www.oytour.com"
;
return
domainNameUrl
;
return
domainNameUrl
;
}
}
Vue
.
prototype
.
groupBy
=
function
(
array
,
f
)
{
Vue
.
prototype
.
groupBy
=
function
(
array
,
f
)
{
const
groups
=
{};
const
groups
=
{};
array
.
forEach
((
item
)
=>
{
array
.
forEach
((
item
)
=>
{
const
group
=
JSON
.
stringify
(
f
(
item
));
const
group
=
JSON
.
stringify
(
f
(
item
));
...
@@ -58,7 +50,8 @@ Vue.prototype.groupBy = function(array, f) {
...
@@ -58,7 +50,8 @@ Vue.prototype.groupBy = function(array, f) {
};
};
});
});
}
}
Vue
.
prototype
.
moneyFormat
=
function
(
num
,
decimal
=
2
,
split
=
','
)
{
Vue
.
prototype
.
moneyFormat
=
function
(
num
,
decimal
=
2
,
split
=
','
)
{
function
thousandFormat
(
num
)
{
function
thousandFormat
(
num
)
{
const
len
=
num
.
length
const
len
=
num
.
length
return
len
<=
3
?
num
:
thousandFormat
(
num
.
substr
(
0
,
len
-
3
))
+
split
+
num
.
substr
(
len
-
3
,
3
)
return
len
<=
3
?
num
:
thousandFormat
(
num
.
substr
(
0
,
len
-
3
))
+
split
+
num
.
substr
(
len
-
3
,
3
)
...
@@ -82,9 +75,9 @@ Vue.prototype.moneyFormat = function(num, decimal = 2, split = ',') {
...
@@ -82,9 +75,9 @@ Vue.prototype.moneyFormat = function(num, decimal = 2, split = ',') {
}
else
{
}
else
{
return
'--'
return
'--'
}
}
}
}
//HTTP提交数据
//HTTP提交数据
Vue
.
prototype
.
apipost
=
function
(
cmd
,
msg
,
successCall
,
faildCall
)
{
Vue
.
prototype
.
apipost
=
function
(
cmd
,
msg
,
successCall
,
faildCall
)
{
if
(
msg
==
null
||
msg
==
""
)
{
if
(
msg
==
null
||
msg
==
""
)
{
msg
=
{}
msg
=
{}
}
}
...
@@ -122,10 +115,12 @@ Vue.prototype.apipost = function(cmd, msg, successCall, faildCall) {
...
@@ -122,10 +115,12 @@ Vue.prototype.apipost = function(cmd, msg, successCall, faildCall) {
}
}
})
})
.
then
(
res
=>
{
.
then
(
res
=>
{
if
(
res
.
data
.
resultCode
===
10000
)
{
if
(
res
.
data
.
resultCode
===
10000
)
{
this
.
$router
.
replace
({
this
.
$router
.
replace
({
path
:
'/login'
,
path
:
'/login'
,
query
:
{
path
:
path
}
query
:
{
path
:
path
}
});
});
return
return
}
}
...
@@ -134,7 +129,7 @@ Vue.prototype.apipost = function(cmd, msg, successCall, faildCall) {
...
@@ -134,7 +129,7 @@ Vue.prototype.apipost = function(cmd, msg, successCall, faildCall) {
},
faildCall
)
},
faildCall
)
}
}
Vue
.
prototype
.
apiJavaPost
=
function
(
cmd
,
msg
,
successCall
,
faildCall
)
{
Vue
.
prototype
.
apiJavaPost
=
function
(
cmd
,
msg
,
successCall
,
faildCall
)
{
if
(
msg
==
null
||
msg
==
""
)
{
if
(
msg
==
null
||
msg
==
""
)
{
msg
=
{}
msg
=
{}
}
}
...
@@ -146,7 +141,7 @@ Vue.prototype.apiJavaPost = function(cmd, msg, successCall, faildCall) {
...
@@ -146,7 +141,7 @@ Vue.prototype.apiJavaPost = function(cmd, msg, successCall, faildCall) {
var
GroupId
=
0
;
var
GroupId
=
0
;
if
(
this
.
getLocalStorage
()
!=
null
)
{
if
(
this
.
getLocalStorage
()
!=
null
)
{
token
=
this
.
getLocalStorage
().
token
;
token
=
this
.
getLocalStorage
().
token
;
key
=
''
//this.getLocalStorage().secretKey
;
key
=
''
;
}
}
if
(
localStorage
.
groupinfo
&&
localStorage
.
groupinfo
!=
'undefined'
)
{
if
(
localStorage
.
groupinfo
&&
localStorage
.
groupinfo
!=
'undefined'
)
{
var
groupJson
=
JSON
.
parse
(
localStorage
.
groupinfo
);
var
groupJson
=
JSON
.
parse
(
localStorage
.
groupinfo
);
...
@@ -175,7 +170,7 @@ Vue.prototype.apiJavaPost = function(cmd, msg, successCall, faildCall) {
...
@@ -175,7 +170,7 @@ Vue.prototype.apiJavaPost = function(cmd, msg, successCall, faildCall) {
//获取缓存
//获取缓存
Vue
.
prototype
.
getLocalStorage
=
function
()
{
Vue
.
prototype
.
getLocalStorage
=
function
()
{
try
{
try
{
var
localStorageData
=
window
.
localStorage
[
"b2bUser"
];
var
localStorageData
=
window
.
localStorage
[
"b2bUser"
];
if
(
localStorageData
!==
undefined
&&
localStorageData
!=
'undefined'
)
{
if
(
localStorageData
!==
undefined
&&
localStorageData
!=
'undefined'
)
{
...
@@ -190,7 +185,7 @@ Vue.prototype.apiJavaPost = function(cmd, msg, successCall, faildCall) {
...
@@ -190,7 +185,7 @@ Vue.prototype.apiJavaPost = function(cmd, msg, successCall, faildCall) {
}
}
//向外跳转
//向外跳转
Vue
.
prototype
.
OpenNewUrl
=
function
(
URL
)
{
Vue
.
prototype
.
OpenNewUrl
=
function
(
URL
)
{
if
(
URL
&&
URL
!=
''
)
{
if
(
URL
&&
URL
!=
''
)
{
if
(
URL
.
indexOf
(
"https"
)
!=
-
1
)
{
if
(
URL
.
indexOf
(
"https"
)
!=
-
1
)
{
var
str
=
'http://'
+
URL
.
substring
(
8
);
var
str
=
'http://'
+
URL
.
substring
(
8
);
...
@@ -205,8 +200,8 @@ Vue.prototype.OpenNewUrl = function(URL) {
...
@@ -205,8 +200,8 @@ Vue.prototype.OpenNewUrl = function(URL) {
}
}
//公用跳转
//公用跳转
Vue
.
prototype
.
CommonJump
=
function
(
path
,
obj
,
type
=
'push'
)
{
Vue
.
prototype
.
CommonJump
=
function
(
path
,
obj
,
type
=
'push'
)
{
let
p
=
typeof
(
path
)
==
'string'
?
path
:
this
.
$product
.
genernalUrl
(
path
)
let
p
=
typeof
(
path
)
==
'string'
?
path
:
this
.
$product
.
genernalUrl
(
path
)
if
(
type
===
'blank'
)
{
// 新窗口打开
if
(
type
===
'blank'
)
{
// 新窗口打开
let
routeUrl
=
this
.
$router
.
resolve
({
let
routeUrl
=
this
.
$router
.
resolve
({
path
:
p
,
path
:
p
,
...
@@ -225,8 +220,9 @@ Vue.prototype.CommonJump = function(path, obj, type = 'push') {
...
@@ -225,8 +220,9 @@ Vue.prototype.CommonJump = function(path, obj, type = 'push') {
});
});
}
}
}
}
Vue
.
prototype
.
$user
=
user
Vue
.
prototype
.
$user
=
user
Vue
.
prototype
.
createCalendar
=
function
(
dateStr
)
{
Vue
.
prototype
.
createCalendar
=
function
(
dateStr
)
{
var
days
=
[];
var
days
=
[];
var
date
;
var
date
;
if
(
dateStr
)
{
if
(
dateStr
)
{
...
@@ -279,9 +275,9 @@ Vue.prototype.createCalendar = function(dateStr) {
...
@@ -279,9 +275,9 @@ Vue.prototype.createCalendar = function(dateStr) {
CurrentYear
:
currentYear
,
CurrentYear
:
currentYear
,
CurrentWeek
:
currentWeek
CurrentWeek
:
currentWeek
};
};
}
}
//格式化日期
//格式化日期
Vue
.
prototype
.
formatDate
=
function
(
year
,
month
,
day
)
{
Vue
.
prototype
.
formatDate
=
function
(
year
,
month
,
day
)
{
var
y
=
year
;
var
y
=
year
;
var
m
=
month
;
var
m
=
month
;
if
(
m
<
10
)
m
=
"0"
+
m
;
if
(
m
<
10
)
m
=
"0"
+
m
;
...
@@ -291,7 +287,7 @@ Vue.prototype.formatDate = function(year, month, day) {
...
@@ -291,7 +287,7 @@ Vue.prototype.formatDate = function(year, month, day) {
}
}
//格式化日期二
//格式化日期二
Vue
.
prototype
.
formatDate2
=
function
(
dateStr
)
{
Vue
.
prototype
.
formatDate2
=
function
(
dateStr
)
{
var
date
=
new
Date
(
dateStr
);
var
date
=
new
Date
(
dateStr
);
return
{
return
{
CYear
:
date
.
getFullYear
(),
CYear
:
date
.
getFullYear
(),
...
@@ -301,7 +297,7 @@ Vue.prototype.formatDate2 = function(dateStr) {
...
@@ -301,7 +297,7 @@ Vue.prototype.formatDate2 = function(dateStr) {
}
}
//添加月份
//添加月份
Vue
.
prototype
.
AddMonth
=
function
(
dateStr
,
month
)
{
Vue
.
prototype
.
AddMonth
=
function
(
dateStr
,
month
)
{
var
v
=
new
Date
(
dateStr
);
var
v
=
new
Date
(
dateStr
);
if
(
v
)
{
if
(
v
)
{
var
t
=
new
Date
(
v
.
getFullYear
(),
v
.
getMonth
(),
v
.
getDate
(),
v
.
getHours
(),
v
.
getMinutes
(),
v
.
getSeconds
(),
v
.
getMilliseconds
());
var
t
=
new
Date
(
v
.
getFullYear
(),
v
.
getMonth
(),
v
.
getDate
(),
v
.
getHours
(),
v
.
getMinutes
(),
v
.
getSeconds
(),
v
.
getMilliseconds
());
...
@@ -314,10 +310,10 @@ Vue.prototype.AddMonth = function(dateStr, month) {
...
@@ -314,10 +310,10 @@ Vue.prototype.AddMonth = function(dateStr, month) {
}
}
//获取URL中参数
//获取URL中参数
Vue
.
prototype
.
getUrlKey
=
function
(
name
,
url
)
{
Vue
.
prototype
.
getUrlKey
=
function
(
name
,
url
)
{
return
decodeURIComponent
((
new
RegExp
(
'[?|&]'
+
name
+
'='
+
'([^&;]+?)(&|#|;|$)'
).
exec
(
url
)
||
[,
""
])[
1
].
replace
(
/
\+
/g
,
'%20'
))
||
null
return
decodeURIComponent
((
new
RegExp
(
'[?|&]'
+
name
+
'='
+
'([^&;]+?)(&|#|;|$)'
).
exec
(
url
)
||
[,
""
])[
1
].
replace
(
/
\+
/g
,
'%20'
))
||
null
}
}
Vue
.
prototype
.
GetHtml
=
function
(
str
)
{
Vue
.
prototype
.
GetHtml
=
function
(
str
)
{
if
(
str
&&
str
!=
""
)
{
if
(
str
&&
str
!=
""
)
{
return
str
.
replace
(
/</g
,
'<'
).
replace
(
/>/g
,
'>'
)
return
str
.
replace
(
/</g
,
'<'
).
replace
(
/>/g
,
'>'
)
.
replace
(
/&/g
,
'&'
).
replace
(
/"/g
,
'"'
).
replace
(
/'/g
,
"'"
);
.
replace
(
/&/g
,
'&'
).
replace
(
/"/g
,
'"'
).
replace
(
/'/g
,
"'"
);
...
...
src/components/navs/hor-big-one.vue
View file @
ce68ca22
...
@@ -158,7 +158,7 @@
...
@@ -158,7 +158,7 @@
.category-btn
{
.category-btn
{
width
:
100px
;
width
:
100px
;
}
}
.mobile-logo
{
.mobile-logo
{
max-height
:
35px
;
max-height
:
35px
;
max-width
:
120px
;
max-width
:
120px
;
object-fit
:
contain
;
object-fit
:
contain
;
...
@@ -178,8 +178,9 @@
...
@@ -178,8 +178,9 @@
class=
"zk_toolbar flex justify-between"
class=
"zk_toolbar flex justify-between"
:class=
"
{ 'q-px-none': $q.platform.is.desktop }"
:class=
"
{ 'q-px-none': $q.platform.is.desktop }"
>
>
<div
class=
"flex"
><div
class=
"f24"
v-if=
"$q.platform.is.mobile && isHome"
@
click=
"handleShowDialog"
>
<div
class=
"flex"
>
<i
class=
"iconfont iconmore1"
style=
"font-size: 24px;"
></i>
<div
class=
"f24"
v-if=
"$q.platform.is.mobile && isHome"
@
click=
"handleShowDialog"
>
<i
class=
"iconfont iconmore1"
style=
"font-size: 24px"
></i>
</div>
</div>
<img
<img
:src=
"baseData.logo"
:src=
"baseData.logo"
...
@@ -189,12 +190,13 @@
...
@@ -189,12 +190,13 @@
filter: drop-shadow(0px 0px var(--q-color-primary));
filter: drop-shadow(0px 0px var(--q-color-primary));
"
"
class=
"q-mr-lg q-ml-sm"
class=
"q-mr-lg q-ml-sm"
:class=
"
{'mobile-logo':$q.platform.is.mobile
}"
:class=
"
{ 'mobile-logo': $q.platform.is.mobile
}"
@click="CommonJump('/index', {})"
@click="CommonJump('/index', {})"
/>
</div>
/>
<!--
<div
style=
"transform:scale(0.6,0.6)"
>
-->
</div>
<!--HK 2024-11-22 去掉 搜索接口有调整-->
<searchSf2
v-if=
"!isHome"
:plugData=
"plugData"
></searchSf2>
<searchSf2
v-if=
"!isHome"
:plugData=
"plugData"
></searchSf2>
<!--
</div>
-->
<!-- pc -->
<!-- pc -->
<div
v-if=
"$q.platform.is.desktop"
>
<div
v-if=
"$q.platform.is.desktop"
>
<q-btn
label=
"繁體中文"
flat
>
<q-btn
label=
"繁體中文"
flat
>
...
@@ -215,11 +217,7 @@
...
@@ -215,11 +217,7 @@
unelevated
unelevated
>
>
<template
v-slot:label
>
<template
v-slot:label
>
<img
<img
class=
"avatar"
v-if=
"LoginUser.photo"
:src=
"LoginUser.photo"
/>
class=
"avatar"
v-if=
"LoginUser.photo"
:src=
"LoginUser.photo"
/>
<img
class=
"avatar"
v-else
src=
"../../assets/img/avatar.png"
/>
<img
class=
"avatar"
v-else
src=
"../../assets/img/avatar.png"
/>
<!--
<span>
{{
LoginUser
.
name
||
LoginUser
.
mailbox
}}
</span>
-->
<!--
<span>
{{
LoginUser
.
name
||
LoginUser
.
mailbox
}}
</span>
-->
...
@@ -229,7 +227,7 @@
...
@@ -229,7 +227,7 @@
<q-list
class=
"text-grey-8"
dense
>
<q-list
class=
"text-grey-8"
dense
>
<q-item
clickable
v-close-popup
to=
"/setUserInfo"
>
<q-item
clickable
v-close-popup
to=
"/setUserInfo"
>
<q-item-section
avatar
>
<q-item-section
avatar
>
<q-avatar
icon=
"iconfont iconpeople1"
/>
<q-avatar
icon=
"iconfont iconpeople1"
/>
</q-item-section>
</q-item-section>
<q-item-section>
<q-item-section>
<q-item-label>
個人信息
</q-item-label>
<q-item-label>
個人信息
</q-item-label>
...
@@ -237,7 +235,7 @@
...
@@ -237,7 +235,7 @@
</q-item>
</q-item>
<q-item
clickable
v-close-popup
to=
"/coupon"
>
<q-item
clickable
v-close-popup
to=
"/coupon"
>
<q-item-section
avatar
>
<q-item-section
avatar
>
<q-avatar
icon=
"iconfont iconqianbao"
/>
<q-avatar
icon=
"iconfont iconqianbao"
/>
</q-item-section>
</q-item-section>
<q-item-section>
<q-item-section>
<q-item-label>
優惠券
</q-item-label>
<q-item-label>
優惠券
</q-item-label>
...
@@ -245,7 +243,7 @@
...
@@ -245,7 +243,7 @@
</q-item>
</q-item>
<q-item
clickable
v-close-popup
to=
"/order"
>
<q-item
clickable
v-close-popup
to=
"/order"
>
<q-item-section
avatar
>
<q-item-section
avatar
>
<q-avatar
icon=
"iconfont iconorder"
/>
<q-avatar
icon=
"iconfont iconorder"
/>
</q-item-section>
</q-item-section>
<q-item-section>
<q-item-section>
<q-item-label>
訂單
</q-item-label>
<q-item-label>
訂單
</q-item-label>
...
@@ -254,7 +252,7 @@
...
@@ -254,7 +252,7 @@
<q-separator
inset
class=
"q-mx-lg"
/>
<q-separator
inset
class=
"q-mx-lg"
/>
<q-item
clickable
v-close-popup
to=
"/setUsersList"
>
<q-item
clickable
v-close-popup
to=
"/setUsersList"
>
<q-item-section
avatar
>
<q-item-section
avatar
>
<q-avatar
icon=
"iconfont iconpeople"
/>
<q-avatar
icon=
"iconfont iconpeople"
/>
</q-item-section>
</q-item-section>
<q-item-section>
<q-item-section>
<q-item-label>
出行人信息管理
</q-item-label>
<q-item-label>
出行人信息管理
</q-item-label>
...
@@ -262,7 +260,7 @@
...
@@ -262,7 +260,7 @@
</q-item>
</q-item>
<q-item
clickable
v-close-popup
to=
"/setAddress"
>
<q-item
clickable
v-close-popup
to=
"/setAddress"
>
<q-item-section
avatar
>
<q-item-section
avatar
>
<q-avatar
icon=
"iconfont iconemail"
/>
<q-avatar
icon=
"iconfont iconemail"
/>
</q-item-section>
</q-item-section>
<q-item-section>
<q-item-section>
<q-item-label>
管理邮寄地址
</q-item-label>
<q-item-label>
管理邮寄地址
</q-item-label>
...
@@ -270,7 +268,7 @@
...
@@ -270,7 +268,7 @@
</q-item>
</q-item>
<q-item
clickable
v-close-popup
to=
"/setInfo"
>
<q-item
clickable
v-close-popup
to=
"/setInfo"
>
<q-item-section
avatar
>
<q-item-section
avatar
>
<q-avatar
icon=
"iconfont iconset"
/>
<q-avatar
icon=
"iconfont iconset"
/>
</q-item-section>
</q-item-section>
<q-item-section>
<q-item-section>
<q-item-label>
賬戶設置
</q-item-label>
<q-item-label>
賬戶設置
</q-item-label>
...
@@ -278,7 +276,7 @@
...
@@ -278,7 +276,7 @@
</q-item>
</q-item>
<q-item
clickable
v-close-popup
@
click=
"loginOut"
>
<q-item
clickable
v-close-popup
@
click=
"loginOut"
>
<q-item-section
avatar
>
<q-item-section
avatar
>
<q-avatar
icon=
"iconfont iconlog-in"
/>
<q-avatar
icon=
"iconfont iconlog-in"
/>
</q-item-section>
</q-item-section>
<q-item-section>
<q-item-section>
<q-item-label>
登出
</q-item-label>
<q-item-label>
登出
</q-item-label>
...
@@ -337,8 +335,15 @@
...
@@ -337,8 +335,15 @@
:baseData=
"baseData"
:baseData=
"baseData"
:dataList=
"dataList"
:dataList=
"dataList"
></city-category>
></city-category>
<popup
@
mousemove
.
prevent
id=
"city-category"
v-model=
"showDialog"
mode=
"bottom"
@
close=
"handleDialogClose"
>
<popup
<city-category-mobile
@
close=
"showDialog = false"
@
mousemove
.
prevent
id=
"city-category"
v-model=
"showDialog"
mode=
"bottom"
@
close=
"handleDialogClose"
>
<city-category-mobile
@
close=
"showDialog = false"
:baseData=
"baseData"
:baseData=
"baseData"
:dataList=
"dataList"
:dataList=
"dataList"
></city-category-mobile
></city-category-mobile
...
@@ -350,9 +355,9 @@
...
@@ -350,9 +355,9 @@
import
popup
from
"../props/index"
;
import
popup
from
"../props/index"
;
import
CityCategoryMobile
from
"./city-category-mobile.vue"
;
import
CityCategoryMobile
from
"./city-category-mobile.vue"
;
import
cityCategory
from
"./city-category.vue"
;
import
cityCategory
from
"./city-category.vue"
;
import
searchSf2
from
'../search_sf/search-top.vue'
import
searchSf2
from
"../search_sf/search-top.vue"
;
export
default
{
export
default
{
components
:
{
cityCategory
,
CityCategoryMobile
,
popup
,
searchSf2
},
components
:
{
cityCategory
,
CityCategoryMobile
,
popup
,
searchSf2
},
props
:
{
props
:
{
baseData
:
{
baseData
:
{
type
:
Object
,
type
:
Object
,
...
@@ -369,7 +374,7 @@ export default {
...
@@ -369,7 +374,7 @@ export default {
},
},
data
()
{
data
()
{
return
{
return
{
plugData
:
{
details
:
[],
Title
:
''
},
plugData
:
{
details
:
[],
Title
:
""
},
showDialog
:
false
,
showDialog
:
false
,
searchDate
:
""
,
searchDate
:
""
,
searchEndDate
:
""
,
searchEndDate
:
""
,
...
@@ -401,7 +406,7 @@ export default {
...
@@ -401,7 +406,7 @@ export default {
},
},
$route
:
{
$route
:
{
handler
:
function
(
val
,
oldVal
)
{
handler
:
function
(
val
,
oldVal
)
{
console
.
log
(
'val'
,
val
,
oldVal
)
console
.
log
(
"val"
,
val
,
oldVal
);
this
.
isHome
=
val
.
path
===
"/"
||
val
.
path
===
"/index"
;
this
.
isHome
=
val
.
path
===
"/"
||
val
.
path
===
"/index"
;
// this.isSearch = val.path === "/search";
// this.isSearch = val.path === "/search";
},
},
...
@@ -448,19 +453,18 @@ export default {
...
@@ -448,19 +453,18 @@ export default {
// this.getCategoryList();
// this.getCategoryList();
},
},
methods
:
{
methods
:
{
handler
(
event
)
{
event
.
preventDefault
();},
handler
(
event
)
{
event
.
preventDefault
();
},
handleShowDialog
()
{
handleShowDialog
()
{
this
.
showDialog
=
true
;
this
.
showDialog
=
true
;
this
.
scrollTop
=
document
.
querySelector
(
'body'
).
scrollTop
;
this
.
scrollTop
=
document
.
querySelector
(
"body"
).
scrollTop
;
document
.
querySelector
(
document
.
querySelector
(
"body"
).
style
=
`position: fixed; top: -
${
this
.
scrollTop
}
px`
;
"body"
).
style
=
`position: fixed; top: -
${
this
.
scrollTop
}
px`
;
},
},
handleDialogClose
()
{
handleDialogClose
()
{
document
.
querySelector
(
document
.
querySelector
(
"body"
).
style
=
""
;
"body"
},
).
style
=
''
;},
avatarClick
()
{
avatarClick
()
{
if
(
this
.
LoginUser
.
token
)
{
if
(
this
.
LoginUser
.
token
)
{
this
.
CommonJump
(
"/userCenter"
);
this
.
CommonJump
(
"/userCenter"
);
...
...
src/components/searchProductdata/kkday.vue
View file @
ce68ca22
...
@@ -40,7 +40,7 @@
...
@@ -40,7 +40,7 @@
standout
standout
placeholder=
"蒐索關鍵字"
placeholder=
"蒐索關鍵字"
class=
"q-ma-md"
class=
"q-ma-md"
@
blur=
"
changeAddrSearchHandler
"
@
blur=
"
handleSearchKey
"
/>
/>
<!--
<q-tree
<!--
<q-tree
ref=
"area"
ref=
"area"
...
@@ -505,8 +505,6 @@ export default {
...
@@ -505,8 +505,6 @@ export default {
}
,
}
,
created() {
created() {
this.msg = this.qMsg;
this.msg = this.qMsg;
// this.msg.teamType = [];
//this.initAreaList();
this.initGoods();
this.initGoods();
this.msg.priceRange = {
this.msg.priceRange = {
min: 1,
min: 1,
...
@@ -524,11 +522,11 @@ export default {
...
@@ -524,11 +522,11 @@ export default {
mounted() {
mounted() {
let LineIdList = [];
let LineIdList = [];
if (this.msg.LineIds && this.msg.LineIds.length > 0) {
if (this.msg.LineIds && this.msg.LineIds.length > 0) {
LineIdList = this.msg.LineIds.split("
;
");
LineIdList = this.msg.LineIds.split("
,
");
}
}
let SeriesIdList = [];
let SeriesIdList = [];
if (this.msg.SeriesIds && this.msg.SeriesIds.length > 0) {
if (this.msg.SeriesIds && this.msg.SeriesIds.length > 0) {
SeriesIdList = this.msg.SeriesIds.split("
;
");
SeriesIdList = this.msg.SeriesIds.split("
,
");
}
}
if (
if (
(LineIdList && LineIdList.length > 0) ||
(LineIdList && LineIdList.length > 0) ||
...
@@ -536,7 +534,12 @@ export default {
...
@@ -536,7 +534,12 @@ export default {
) {
) {
let arr = [];
let arr = [];
this.goodsType.forEach((x) => {
this.goodsType.forEach((x) => {
let lineIdIndex = LineIdList.findIndex((yId) => x.Id.slice(2) == yId);
var tempLineId = 0;
var tempLineIdArray = x.Id.split("
|
");
if (tempLineIdArray && tempLineIdArray.length == 2) {
tempLineId = tempLineIdArray[0];
}
let lineIdIndex = LineIdList.findIndex((yId) => tempLineId == yId);
if (lineIdIndex != -1) {
if (lineIdIndex != -1) {
arr.push(x.Id);
arr.push(x.Id);
}
}
...
@@ -544,8 +547,12 @@ export default {
...
@@ -544,8 +547,12 @@ export default {
if (lineIdIndex != -1) {
if (lineIdIndex != -1) {
arr.push(y.Id);
arr.push(y.Id);
}
else {
}
else {
let seriesIdIndex = SeriesIdList.findIndex((yId) => y.Id.slice(2) == yId);
var tempLtId = 0;
var tempLtIdArray = y.Id.split("
|
");
if (tempLtIdArray && tempLtIdArray.length == 2) {
tempLtId = tempLtIdArray[0];
}
let seriesIdIndex = SeriesIdList.findIndex((yId) => tempLtId == yId);
if (seriesIdIndex != -1) {
if (seriesIdIndex != -1) {
arr.push(y.Id);
arr.push(y.Id);
}
}
...
@@ -556,15 +563,11 @@ export default {
...
@@ -556,15 +563,11 @@ export default {
}
}
}
,
}
,
methods: {
methods: {
handleSelected(target) {
console.log("
handleSelected
", target);
}
,
handleTicked(target) {
handleTicked(target) {
this.msg.pageIndex = 1;
this.msg.pageIndex = 1;
this.ticked = target;
this.ticked = target;
this.goSearchHandler();
this.goSearchHandler();
}
,
}
,
handleSearchKey(target) {
handleSearchKey(target) {
this.msg.pageIndex = 1;
this.msg.pageIndex = 1;
this.goSearchHandler();
this.goSearchHandler();
...
@@ -635,11 +638,11 @@ export default {
...
@@ -635,11 +638,11 @@ export default {
let arr = [];
let arr = [];
let LineIdList = [];
let LineIdList = [];
if (this.msg.LineIds && this.msg.LineIds.length > 0) {
if (this.msg.LineIds && this.msg.LineIds.length > 0) {
LineIdList = this.msg.LineIds.split("
;
");
LineIdList = this.msg.LineIds.split("
,
");
}
}
let SeriesIdList = [];
let SeriesIdList = [];
if (this.msg.SeriesIds && this.msg.SeriesIds.length > 0) {
if (this.msg.SeriesIds && this.msg.SeriesIds.length > 0) {
SeriesIdList = this.msg.SeriesIds.split("
;
");
SeriesIdList = this.msg.SeriesIds.split("
,
");
}
}
this.apipost(
this.apipost(
"
b2c_get_GetB2CQueryCondition
",
"
b2c_get_GetB2CQueryCondition
",
...
@@ -652,7 +655,13 @@ export default {
...
@@ -652,7 +655,13 @@ export default {
x.explsed = false;
x.explsed = false;
x.isShow = true;
x.isShow = true;
x.children = x.SubList;
x.children = x.SubList;
let lineIdIndex = LineIdList.findIndex((yId) => x.Id.slice(2) == yId);
var tempLineId = 0;
var tempLineIdArray = x.Id.split("
|
");
if (tempLineIdArray && tempLineIdArray.length == 2) {
tempLineId = tempLineIdArray[0];
}
let lineIdIndex = LineIdList.findIndex((yId) => tempLineId == yId);
x.children.forEach((y) => {
x.children.forEach((y) => {
y.checked = false;
y.checked = false;
y.explsed = false;
y.explsed = false;
...
@@ -661,9 +670,12 @@ export default {
...
@@ -661,9 +670,12 @@ export default {
arr.push(y.Id);
arr.push(y.Id);
this.ticked.push(y.Id);
this.ticked.push(y.Id);
}
else {
}
else {
let seriesIdIndex = SeriesIdList.findIndex(
var tempLtId = 0;
(yId) => y.Id.slice(2) == yId
var tempLtIdArray = y.Id.split("
|
");
);
if (tempLtIdArray && tempLtIdArray.length == 2) {
tempLtId = tempLtIdArray[0];
}
let seriesIdIndex = SeriesIdList.findIndex((yId) => tempLtId == yId);
if (seriesIdIndex != -1) {
if (seriesIdIndex != -1) {
arr.push(y.Id);
arr.push(y.Id);
this.ticked.push(y.Id);
this.ticked.push(y.Id);
...
@@ -758,7 +770,6 @@ export default {
...
@@ -758,7 +770,6 @@ export default {
this.msg,
this.msg,
(res) => {
(res) => {
this.$q.loading.hide();
this.$q.loading.hide();
console.log("
b2c_get_GetB2C2024TravelProductPage
", res);
if (res.data.resultCode == 1) {
if (res.data.resultCode == 1) {
this.PageCount = res.data.data.pageCount;
this.PageCount = res.data.data.pageCount;
this.TotalCount = res.data.data.count;
this.TotalCount = res.data.data.count;
...
...
src/components/search_sf/search-top.vue
View file @
ce68ca22
...
@@ -79,16 +79,32 @@
...
@@ -79,16 +79,32 @@
elevated
elevated
transition-hide=
"scale"
transition-hide=
"scale"
class=
"showbox column"
class=
"showbox column"
>
>
<div
class=
"q-px-sm q-pt-sm"
v-if=
"historys.length
>
0"
>
<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=
"row"
>
<div
class=
"col overflow-hidden"
style=
"height:36px"
>
<div
class=
"col overflow-hidden"
style=
"height: 36px"
>
<template
v-for=
"(x,i) in historys"
>
<template
v-for=
"(x, i) in historys"
>
<q-chip
v-if=
"x"
style=
"background:#f6f7f9;"
@
click=
"goSearchHandler(x)"
clickable
text-color=
"dark"
class=
"cursor-pointer"
:label=
"x"
:key=
"i"
/></
template
>
<q-chip
v-if=
"x"
style=
"background: #f6f7f9"
@
click=
"goSearchHandler(x)"
clickable
text-color=
"dark"
class=
"cursor-pointer"
:label=
"x"
:key=
"i"
/></
template
>
</div>
</div>
<q-btn
text-color=
"grey-6"
icon=
"delete"
class=
"q-py-none"
dense
size=
"sm"
flat
@
click=
"clearHistorys"
>
<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>
</q-btn>
</div>
</div>
...
@@ -96,58 +112,34 @@
...
@@ -96,58 +112,34 @@
<div
class=
"text-weight-bold q-pa-sm"
>
熱門目的地
</div>
<div
class=
"text-weight-bold q-pa-sm"
>
熱門目的地
</div>
<q-separator
/>
<q-separator
/>
<div
class=
"flex flex-wrap"
>
<div
class=
"flex flex-wrap"
>
<div
class=
"hot-tag"
@
click=
"handleHotTagClick(item)"
:class=
"{'hot-tag-select': setectHotTag === item.Id}"
:key=
"item.Id"
v-for=
"item in hotList"
>
{{item.Name}}
</div>
<div
class=
"hot-tag"
@
click=
"handleHotTagClick(item)"
:class=
"{ 'hot-tag-select': setectHotTag === item.Id }"
:key=
"item.Id"
v-for=
"item in hotList"
>
{{ item.Name }}
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div
class=
"
bg-white q-px-md"
v-if=
"$q.screen.xs"
@
click=
"showPopupHandler"
>
<div
class=
"bg-white q-px-md"
v-if=
"$q.screen.xs"
@
click=
"showPopupHandler"
>
<i
class=
"iconfont iconchazhao"
></i>
<i
class=
"iconfont iconchazhao"
></i>
<!-- <q-icon name="search" /> -->
<!-- <q-input
filled
v-model="searchKey"
class="bg-grey-1 q-mx-md"
:label="$t('search')"
readonly="readonly"
@click="showPopupHandler"
>
<template v-slot:append>
<q-icon name="search" />
</template>
</q-input> -->
</div>
</div>
</div>
</div>
</div>
</div>
<popup
<popup
v-model=
"showPopup"
mode=
"top"
:safeAreaInsetBottom=
"true"
border-radius=
"5"
>
v-model=
"showPopup"
mode=
"top"
:safeAreaInsetBottom=
"true"
border-radius=
"5"
>
<div
class=
"chosen-box"
>
<div
class=
"chosen-box"
>
<div
class=
"title"
>
搜尋行程
</div>
<div
class=
"title"
>
搜尋行程
</div>
<div
class=
"chosen-tab"
>
<div
class=
"chosen-tab"
>
<q-tabs
<q-tabs
v-model=
"tab"
align=
"justify"
narrow-indicator
class=
"q-mb-md"
>
v-model=
"tab"
align=
"justify"
narrow-indicator
class=
"q-mb-md"
>
<q-tab
class=
"text-purple"
name=
"dest"
label=
"目的地"
/>
<q-tab
class=
"text-purple"
name=
"dest"
label=
"目的地"
/>
<q-tab
class=
"text-teal"
name=
"kw"
label=
"關鍵字"
/>
<q-tab
class=
"text-teal"
name=
"kw"
label=
"關鍵字"
/>
</q-tabs>
</q-tabs>
<div
v-show=
"tab == 'dest'"
>
<div
v-show=
"tab == 'dest'"
>
<q-card
flat
class=
"rounded-borders q-py-md"
>
<q-card
flat
class=
"rounded-borders q-py-md"
>
<div
class=
"text-subtitle1 text-weight-bold q-mx-md"
>
篩選目的地
</div>
<div
class=
"text-subtitle1 text-weight-bold q-mx-md"
>
篩選目的地
</div>
<!-- <q-input
v-model="searchAdd.name"
type="text"
standout
placeholder="搜尋目的地、景點、行程觀光或酒店名稱..."
class="q-ma-md"
@input="changeAddrSearchHandler"
/> -->
<q-tree
<q-tree
ref=
"area"
ref=
"area"
:nodes=
"areaList"
:nodes=
"areaList"
...
@@ -163,46 +155,6 @@
...
@@ -163,46 +155,6 @@
no-results-label=
" "
no-results-label=
" "
/>
/>
</q-card>
</q-card>
<!-- <div class="q-mb-md">
<q-select
filled
v-model="chosenResult.fl"
:options="areas"
option-label="Name"
option-value="Name"
label="請選擇地區"
/>
</div>
<div class="q-mb-md" v-if="chosenResult.fl.SubList">
<q-select
filled
v-model="chosenResult.sl"
:options="chosenResult.fl.SubList"
option-label="Name"
option-value="Name"
label="請選擇地區"
/>
</div>
<div class="q-mb-md" v-if="chosenResult.sl.SubList">
<q-select
filled
v-model="chosenResult.tl"
:options="chosenResult.sl.SubList"
option-label="Name"
option-value="Name"
label="請選擇地區"
/>
</div>
<div class="q-mb-md" v-if="chosenResult.tl.SubList">
<q-select
filled
v-model="chosenResult.ful"
:options="chosenResult.tl.SubList"
option-label="Name"
option-value="Name"
label="請選擇地區"
/>
</div> -->
</div>
</div>
<div
v-show=
"tab == 'kw'"
class=
"q-mb-md"
>
<div
v-show=
"tab == 'kw'"
class=
"q-mb-md"
>
<q-input
<q-input
...
@@ -290,7 +242,7 @@ export default {
...
@@ -290,7 +242,7 @@ export default {
return
{
return
{
areaTicked
:
[],
areaTicked
:
[],
areaList
:
[],
areaList
:
[],
setectHotTag
:
''
,
setectHotTag
:
""
,
hotList
:
[],
hotList
:
[],
slide
:
0
,
slide
:
0
,
searchKey
:
""
,
searchKey
:
""
,
...
@@ -315,7 +267,7 @@ export default {
...
@@ -315,7 +267,7 @@ export default {
crtAreaIndex
:
0
,
crtAreaIndex
:
0
,
showPopup
:
false
,
showPopup
:
false
,
tab
:
"dest"
,
tab
:
"dest"
,
historys
:[],
historys
:
[],
chosenResult
:
{
chosenResult
:
{
fl
:
""
,
fl
:
""
,
sl
:
""
,
sl
:
""
,
...
@@ -325,16 +277,16 @@ export default {
...
@@ -325,16 +277,16 @@ export default {
RB_Group_Id
:
0
,
RB_Group_Id
:
0
,
};
};
},
},
created
()
{
created
()
{},
},
mounted
()
{
mounted
()
{
console
.
log
(
"getRoutePath"
,
this
.
getRoutePath
());
this
.
isSearch
=
this
.
$router
.
history
.
current
.
path
===
"/search"
;
this
.
isSearch
=
this
.
$router
.
history
.
current
.
path
===
"/search"
;
this
.
initAreaList
()
this
.
initAreaList
()
;
var
jObj
=
JSON
.
parse
(
window
.
localStorage
.
getItem
(
'baseifo'
));
var
jObj
=
JSON
.
parse
(
window
.
localStorage
.
getItem
(
"baseifo"
));
const
hotList
=
this
.
getHotList
(
jObj
.
AreaList
)
const
hotList
=
this
.
getHotList
(
jObj
.
AreaList
)
;
console
.
log
(
'hotList mounted'
,
jObj
,
hotList
)
this
.
hotList
=
hotList
this
.
hotList
=
hotList
;
this
.
getHistory
()
this
.
getHistory
()
;
var
newStartDate
=
new
Date
();
var
newStartDate
=
new
Date
();
var
newStartDateStr
=
this
.
formatDate
(
var
newStartDateStr
=
this
.
formatDate
(
newStartDate
.
getFullYear
(),
newStartDate
.
getFullYear
(),
...
@@ -366,32 +318,27 @@ export default {
...
@@ -366,32 +318,27 @@ export default {
},
},
computed
:
{},
computed
:
{},
methods
:
{
methods
:
{
handleAreaTicked
(
target
)
{
getRoutePath
()
{
console
.
log
(
"this.areaTicked"
,
target
,
this
.
areaTicked
)
let
crPath
=
this
.
$router
.
currentRoute
.
path
;
// if(!this.areaTicked.length) {
console
.
log
(
"crPath"
,
crPath
);
// this.areaTicked = target
return
crPath
;
// } else if(this.areaTicked[0] === target[0]) {
// this.areaTicked = target[1] ? [target[1]] : []
// } else {
// this.areaTicked = target
// }
this
.
areaTicked
=
target
},
},
handleArea
Select
ed
(
target
)
{
handleArea
Tick
ed
(
target
)
{
// console.log("this.handleAreaSelected", target)
;
this
.
areaTicked
=
target
;
},
},
handleAreaSelected
(
target
)
{},
initAreaList
()
{
initAreaList
()
{
let
jObj
=
JSON
.
parse
(
window
.
localStorage
.
getItem
(
"baseifo"
));
let
jObj
=
JSON
.
parse
(
window
.
localStorage
.
getItem
(
"baseifo"
));
let
arr
=
[];
let
arr
=
[];
jObj
.
AreaList
.
forEach
((
x
)
=>
{
jObj
.
AreaList
.
forEach
((
x
)
=>
{
x
.
selectable
=
false
x
.
selectable
=
false
;
x
.
children
=
x
.
SubList
;
x
.
children
=
x
.
SubList
;
x
.
children
.
forEach
((
y
)
=>
{
x
.
children
.
forEach
((
y
)
=>
{
y
.
checked
=
false
;
y
.
checked
=
false
;
y
.
explsed
=
false
;
y
.
explsed
=
false
;
y
.
isShow
=
true
;
y
.
isShow
=
true
;
if
(
y
.
SubList
)
{
if
(
y
.
SubList
)
{
y
.
selectable
=
false
y
.
selectable
=
false
;
y
.
children
=
y
.
SubList
;
y
.
children
=
y
.
SubList
;
y
.
children
.
forEach
((
z
)
=>
{
y
.
children
.
forEach
((
z
)
=>
{
z
.
checked
=
false
;
z
.
checked
=
false
;
...
@@ -406,7 +353,7 @@ export default {
...
@@ -406,7 +353,7 @@ export default {
},
},
getHotList
(
arr
)
{
getHotList
(
arr
)
{
let
hotArr
=
[];
let
hotArr
=
[];
arr
.
forEach
(
item
=>
{
arr
.
forEach
(
(
item
)
=>
{
if
(
item
.
SubList
&&
item
.
SubList
.
length
)
{
if
(
item
.
SubList
&&
item
.
SubList
.
length
)
{
hotArr
=
hotArr
.
concat
(
this
.
getHotList
(
item
.
SubList
));
hotArr
=
hotArr
.
concat
(
this
.
getHotList
(
item
.
SubList
));
}
else
{
}
else
{
...
@@ -417,31 +364,12 @@ export default {
...
@@ -417,31 +364,12 @@ export default {
});
});
return
hotArr
;
return
hotArr
;
},
},
handleHotTagClick
(
item
)
{
this
.
setectHotTag
=
item
.
Id
// let val = item.Name
// if(val!='' && typeof val == 'string'){
// this.searchKey=val
// }
// this.historys=Array.from(new Set([this.searchKey].concat(this.historys)))
// localStorage['recent_search'] = JSON.stringify(this.historys)
this
.
CommonJump
(
"/search"
,
{
qsearchKey
:
this
.
searchKey
,
qsearchDate
:
this
.
searchDate
,
qsearchEndDate
:
this
.
searchEndDate
,
areaId
:
item
.
Id
});
if
(
this
.
isSearch
)
{
window
.
location
.
reload
()
}
},
//获取地区数据
//获取地区数据
getAera
()
{
getAera
()
{
let
aMsg
=
{
RB_Group_Id
:
this
.
RB_Group_Id
};
this
.
apipost
(
this
.
apipost
(
"ws_get_GetSearchArea"
,
"ws_get_GetSearchArea"
,
{
aMsg
,
RB_Group_Id
:
this
.
RB_Group_Id
,
},
(
res
)
=>
{
(
res
)
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
if
(
res
.
data
.
resultCode
==
1
)
{
if
(
res
.
data
.
data
)
{
if
(
res
.
data
.
data
)
{
...
@@ -452,8 +380,8 @@ export default {
...
@@ -452,8 +380,8 @@ export default {
(
err
)
=>
{}
(
err
)
=>
{}
);
);
},
},
getHistory
(){
getHistory
()
{
this
.
historys
=
JSON
.
parse
(
localStorage
[
'recent_search'
]??
'[]'
)
this
.
historys
=
JSON
.
parse
(
localStorage
[
"recent_search"
]
??
"[]"
);
},
},
showPopupHandler
()
{
showPopupHandler
()
{
this
.
showPopup
=
true
;
this
.
showPopup
=
true
;
...
@@ -494,51 +422,51 @@ export default {
...
@@ -494,51 +422,51 @@ export default {
this
.
searchKey
=
name
;
this
.
searchKey
=
name
;
this
.
showSplitPannel
=
false
;
this
.
showSplitPannel
=
false
;
},
},
handleHotTagClick
(
item
)
{
this
.
setectHotTag
=
item
.
Id
;
this
.
CommonJump
(
"/search"
,
{
qsearchKey
:
this
.
searchKey
,
qsearchDate
:
this
.
searchDate
,
qsearchEndDate
:
this
.
searchEndDate
,
areaId
:
item
.
Id
,
});
if
(
this
.
isSearch
)
{
window
.
location
.
reload
();
}
},
//跳转到搜索页面
//跳转到搜索页面
goSearchHandler
(
val
=
''
)
{
goSearchHandler
(
val
=
""
)
{
console
.
log
(
'跳转到搜索页面'
,
val
)
if
(
val
!=
""
&&
typeof
val
==
"string"
)
{
if
(
val
!=
''
&&
typeof
val
==
'string'
){
this
.
searchKey
=
val
;
this
.
searchKey
=
val
this
.
historys
=
Array
.
from
(
new
Set
([
this
.
searchKey
].
concat
(
this
.
historys
)));
this
.
historys
=
Array
.
from
(
new
Set
([
this
.
searchKey
].
concat
(
this
.
historys
)))
localStorage
[
"recent_search"
]
=
JSON
.
stringify
(
this
.
historys
);
localStorage
[
'recent_search'
]
=
JSON
.
stringify
(
this
.
historys
)
}
}
this
.
CommonJump
(
"/search"
,
{
this
.
CommonJump
(
"/search"
,
{
qsearchKey
:
this
.
searchKey
,
qsearchKey
:
this
.
searchKey
,
areaIds
:
this
.
areaTicked
.
join
(
','
),
areaIds
:
this
.
areaTicked
.
join
(
","
),
qsearchDate
:
this
.
searchDate
,
qsearchDate
:
this
.
searchDate
,
qsearchEndDate
:
this
.
searchEndDate
,
qsearchEndDate
:
this
.
searchEndDate
,
});
});
this
.
showSplitPannel
=
false
this
.
showSplitPannel
=
false
;
if
(
this
.
isSearch
)
{
if
(
this
.
isSearch
)
{
window
.
location
.
reload
()
window
.
location
.
reload
()
;
}
}
},
},
clearHistorys
(){
clearHistorys
()
{
this
.
historys
=
[]
this
.
historys
=
[];
localStorage
[
'recent_search'
]
=
JSON
.
stringify
(
this
.
historys
)
localStorage
[
"recent_search"
]
=
JSON
.
stringify
(
this
.
historys
);
}
}
,
},
},
};
};
</
script
>
</
script
>
<
style
>
<
style
>
.banner-style9
{
.banner-style9
{
/* margin-top: 0px; */
/* position: relative; */
/* overflow: hidden; */
border-radius
:
5px
;
border-radius
:
5px
;
}
}
.banner-style9
.search-content
{
.banner-style9
.search-content
{
/* position: absolute; */
/* top: 0;
left: 0;
right: 0;
bottom: 0; */
z-index
:
2
;
z-index
:
2
;
/* transform: translate(-50%, -50%); */
/* margin-top: 40px; */
background
:
rgb
(
0
,
0
,
0
,
0.1
);
background
:
rgb
(
0
,
0
,
0
,
0.1
);
}
}
...
@@ -668,20 +596,19 @@ export default {
...
@@ -668,20 +596,19 @@ export default {
<
style
scoped
>
<
style
scoped
>
.hot-tag
{
.hot-tag
{
width
:
141px
;
width
:
141px
;
height
:
34px
;
height
:
34px
;
line-height
:
34px
;
line-height
:
34px
;
padding-left
:
8px
;
padding-left
:
8px
;
border-radius
:
8px
;
border-radius
:
8px
;
margin
:
12px
0
12px
12px
;
margin
:
12px
0
12px
12px
;
cursor
:
pointer
;
cursor
:
pointer
;
}
}
.hot-tag-select
{
.hot-tag-select
{
background
:
#EE
4454
;
background
:
#ee
4454
;
color
:
#fff
;
color
:
#fff
;
}
}
</
style
>
</
style
>
<
style
lang=
"scss"
scoped
>
<
style
lang=
"scss"
scoped
>
::v-deep
.q-field__control
{
::v-deep
.q-field__control
{
height
:
40px
;
height
:
40px
;
}
}
...
@@ -698,6 +625,6 @@ color: #fff;
...
@@ -698,6 +625,6 @@ color: #fff;
height
:
40px
;
height
:
40px
;
}
}
::v-deep
.q-field__label
{
::v-deep
.q-field__label
{
top
:
13px
top
:
13px
;
}
}
</
style
>
</
style
>
src/components/searchdata/kkday.vue
View file @
ce68ca22
...
@@ -676,6 +676,7 @@ export default {
...
@@ -676,6 +676,7 @@ export default {
let arr = [];
let arr = [];
let jObj = JSON.parse(window.localStorage.getItem("
baseifo
"));
let jObj = JSON.parse(window.localStorage.getItem("
baseifo
"));
jObj.CategoryList.forEach((x) => {
jObj.CategoryList.forEach((x) => {
x.checked = false;
x.checked = false;
x.explsed = false;
x.explsed = false;
x.isShow = true;
x.isShow = true;
...
...
src/pages/Search.vue
View file @
ce68ca22
...
@@ -684,7 +684,7 @@
...
@@ -684,7 +684,7 @@
}
}
</
style
>
</
style
>
<
template
>
<
template
>
<div
class=
"SearchMain"
:class=
"
{
'desktop-page':$q.platform.is.desktop
}">
<div
class=
"SearchMain"
:class=
"
{
'desktop-page': $q.platform.is.desktop
}">
<div
class=
"SearchTop"
>
<div
class=
"SearchTop"
>
<div
class=
"q-my-md"
v-if=
"qMsg.searchKey"
>
<div
class=
"q-my-md"
v-if=
"qMsg.searchKey"
>
<q-breadcrumbs>
<q-breadcrumbs>
...
@@ -699,25 +699,26 @@
...
@@ -699,25 +699,26 @@
</div>
</div>
<div
class=
"text-h6 text-left"
v-if=
"qMsg.searchKey"
>
<div
class=
"text-h6 text-left"
v-if=
"qMsg.searchKey"
>
搜尋結果 “
搜尋結果 “
<span
class=
"text-primary"
>
{{
qMsg
.
searchKey
}}
</span>
”
<span
class=
"text-primary"
>
{{
qMsg
.
searchKey
}}
</span
>
”
</div>
</div>
<!-- 电脑端 -->
<!-- 电脑端 -->
<div
class=
"row SearchContent q-mt-md"
v-if=
"!$q.screen.xs && 1
==
0"
>
<div
class=
"row SearchContent q-mt-md"
v-if=
"!$q.screen.xs && 1
==
0"
>
<div
class=
"search-filter-inner"
>
<div
class=
"search-filter-inner"
>
<div
<div
class=
"search-item"
class=
"search-item"
style=
"width:
200px;cursor:pointer;
"
style=
"width:
200px; cursor: pointer
"
@
click=
"
isShowDialog=true,
goSearchHandler"
@
click=
"
(isShowDialog = true),
goSearchHandler"
>
>
<i
class=
"iconfont iconchazhao"
></i>
<i
class=
"iconfont iconchazhao"
></i>
{{
qMsg
.
searchKey
}}
{{
qMsg
.
searchKey
}}
</div>
</div>
<div
class=
"search-item"
@
click=
"
isShowDialog=true,
goSearchHandler"
>
<div
class=
"search-item"
@
click=
"
(isShowDialog = true),
goSearchHandler"
>
<i
class=
"iconfont iconrili"
></i>
<i
class=
"iconfont iconrili"
></i>
{{
qMsg
.
startDate
}}
~
{{
qMsg
.
endDate
}}
{{
qMsg
.
startDate
}}
~
{{
qMsg
.
endDate
}}
</div>
</div>
<div
class=
"search-item"
style=
"margin-left:
20px;
"
>
<div
class=
"search-item"
style=
"margin-left:
20px
"
>
<q-select
<q-select
filled
filled
v-model=
"sortNum"
v-model=
"sortNum"
...
@@ -727,28 +728,36 @@
...
@@ -727,28 +728,36 @@
map-options
map-options
/>
/>
</div>
</div>
<div
class=
"search-item"
style=
"margin-left:20px;"
>
<div
class=
"search-item"
style=
"margin-left: 20px"
>
<span
style=
"display:inline-block;cursor:pointer;"
@
click=
"fullHeight = true"
>
更多篩選條件
</span>
<span
style=
"display: inline-block; cursor: pointer"
@
click=
"fullHeight = true"
>
更多篩選條件
</span
>
</div>
</div>
</div>
</div>
<div
<div
v-show=
"showSplitPannel"
v-show=
"showSplitPannel"
id=
"sb"
id=
"sb"
style=
"z-index:999"
style=
"z-index:
999"
transition-show=
"fade"
transition-show=
"fade"
elevated
elevated
transition-hide=
"scale"
transition-hide=
"scale"
class=
"showbox row"
class=
"showbox row"
>
>
<div
style=
"width:180px;"
>
<div
style=
"width: 180px"
>
<q-scroll-area
:thumb-style=
"thumbStyle"
:bar-style=
"barStyle"
style=
"height: 100%;"
>
<q-scroll-area
:thumb-style=
"thumbStyle"
:bar-style=
"barStyle"
style=
"height: 100%"
>
<q-list>
<q-list>
<q-item
<q-item
v-for=
"(x, i) in areas"
v-for=
"(x, i) in areas"
:key=
"i"
:key=
"i"
clickable
clickable
v-ripple
v-ripple
:active=
"crtAreaIndex
==
i"
:active=
"crtAreaIndex
==
i"
@
click=
"clkAreaHandler(i)"
@
click=
"clkAreaHandler(i)"
active-class=
"my-menu-link"
active-class=
"my-menu-link"
>
>
...
@@ -761,24 +770,44 @@
...
@@ -761,24 +770,44 @@
</div>
</div>
<q-separator
vertical
/>
<q-separator
vertical
/>
<div
class=
"col q-pa-md"
>
<div
class=
"col q-pa-md"
>
<q-scroll-area
:thumb-style=
"thumbStyle"
:bar-style=
"barStyle"
style=
"height: 100%;"
>
<q-scroll-area
:thumb-style=
"thumbStyle"
:bar-style=
"barStyle"
style=
"height: 100%"
>
<template
<template
v-if=
"areas[crtAreaIndex]&&areas[crtAreaIndex].SubList&&areas[crtAreaIndex].SubList.length>0"
v-if=
"
areas[crtAreaIndex] &&
areas[crtAreaIndex].SubList &&
areas[crtAreaIndex].SubList.length > 0
"
>
<div
class=
"area-box"
v-for=
"(x, i) in areas[crtAreaIndex].SubList"
:key=
"i"
>
>
<div
class=
"area-box"
v-for=
"(x, i) in areas[crtAreaIndex].SubList"
:key=
"i"
>
<div
class=
"q-mb-md"
>
<div
class=
"q-mb-md"
>
<div
class=
"h3"
@
click=
"chosenAreaHandler(x.Name)"
>
{{
x
.
Name
}}
</div>
<div
class=
"h3"
@
click=
"chosenAreaHandler(x.Name)"
>
{{
x
.
Name
}}
</div>
</div>
</div>
<template
v-if=
"x&&x.SubList && x.SubList.length>0"
>
<template
v-if=
"x && x.SubList && x.SubList.length > 0"
>
<div
class=
"q-mb-sm row to-end"
v-for=
"(y, yi) in x.SubList"
:key=
"yi"
>
<div
<div
class=
"h4"
@
click=
"chosenAreaHandler(y.Name)"
>
{{
y
.
Name
}}
</div>
class=
"q-mb-sm row to-end"
<template
v-if=
"y&&y.SubList&&y.SubList.length>0"
>
v-for=
"(y, yi) in x.SubList"
:key=
"yi"
>
<div
class=
"h4"
@
click=
"chosenAreaHandler(y.Name)"
>
{{
y
.
Name
}}
</div>
<template
v-if=
"y && y.SubList && y.SubList.length > 0"
>
<div
<div
class=
"h5"
class=
"h5"
@
click=
"chosenAreaHandler(z.Name)"
@
click=
"chosenAreaHandler(z.Name)"
v-for=
"(z, zi) in y.SubList"
v-for=
"(z, zi) in y.SubList"
:key=
"zi"
:key=
"zi"
>
{{
z
.
Name
}}
</div>
>
{{
z
.
Name
}}
</div>
</
template
>
</
template
>
</div>
</div>
</template>
</template>
...
@@ -817,11 +846,11 @@
...
@@ -817,11 +846,11 @@
</div>
</div>
</div> -->
</div> -->
<
template
v-if=
"ShowType
==
0"
>
<
template
v-if=
"ShowType
==
0"
>
<!--豆腐格-->
<!--豆腐格-->
<searchBlock
:DataList=
"DataList"
:qMsg=
"qMsg"
></searchBlock>
<searchBlock
:DataList=
"DataList"
:qMsg=
"qMsg"
></searchBlock>
</
template
>
</
template
>
<
template
v-else-if=
"ShowType
==
1"
>
<
template
v-else-if=
"ShowType
==
1"
>
<div
class=
"wl-section-block search-content"
>
<div
class=
"wl-section-block search-content"
>
<div
class=
"search-filter-aside"
>
<div
class=
"search-filter-aside"
>
<div
class=
"search-header"
>
<div
class=
"search-header"
>
...
@@ -834,12 +863,12 @@
...
@@ -834,12 +863,12 @@
價格
價格
<span
class=
"clear-filter"
@
click=
"clearPrice()"
>
清除篩選
</span>
<span
class=
"clear-filter"
@
click=
"clearPrice()"
>
清除篩選
</span>
</div>
</div>
<div
style=
"width:
100%;height:57px;display:
none"
></div>
<div
style=
"width:
100%; height: 57px; display:
none"
></div>
<div
class=
"range-text"
>
<div
class=
"range-text"
>
<div
class=
"min"
>
<div
class=
"min"
>
<q-input
<q-input
class=
"full_price"
class=
"full_price"
style=
"width:80%"
style=
"width:
80%"
placeholder=
"最低价"
placeholder=
"最低价"
v-model=
"qMsg.minPrice"
v-model=
"qMsg.minPrice"
@
input=
"changeData"
@
input=
"changeData"
...
@@ -850,7 +879,7 @@
...
@@ -850,7 +879,7 @@
<div
class=
"max"
>
<div
class=
"max"
>
<q-input
<q-input
class=
"full_price"
class=
"full_price"
style=
"width:80%"
style=
"width:
80%"
placeholder=
"最高价"
placeholder=
"最高价"
v-model=
"qMsg.maxPrice"
v-model=
"qMsg.maxPrice"
@
input=
"changeData"
@
input=
"changeData"
...
@@ -868,7 +897,7 @@
...
@@ -868,7 +897,7 @@
<q-checkbox
<q-checkbox
right-label
right-label
v-model=
"dayNum"
v-model=
"dayNum"
v-for=
"(item,index) in dayArray"
v-for=
"(item,
index) in dayArray"
:label=
"item.text"
:label=
"item.text"
:key=
"index"
:key=
"index"
:val=
"item.id"
:val=
"item.id"
...
@@ -896,7 +925,7 @@
...
@@ -896,7 +925,7 @@
<div
class=
"q-gutter-sm"
>
<div
class=
"q-gutter-sm"
>
<q-checkbox
<q-checkbox
v-model=
"WeekDay"
v-model=
"WeekDay"
v-for=
"(item,index) in weekList"
v-for=
"(item,
index) in weekList"
:val=
"item.value"
:val=
"item.value"
:label=
"item.label"
:label=
"item.label"
:key=
"index"
:key=
"index"
...
@@ -914,7 +943,7 @@
...
@@ -914,7 +943,7 @@
<
template
v-else
>
<
template
v-else
>
<kkday
:qMsg=
"qMsg"
@
change=
"handlerSearchChange"
></kkday>
<kkday
:qMsg=
"qMsg"
@
change=
"handlerSearchChange"
></kkday>
</
template
>
</
template
>
<div
v-if=
"DataList.length
==0 && ShowType!=
2"
class=
"blank-block"
>
<div
v-if=
"DataList.length
== 0 && ShowType !=
2"
class=
"blank-block"
>
<i
class=
"iconfont iconchazhao"
></i>
<i
class=
"iconfont iconchazhao"
></i>
<p>
請嘗試其他關鍵字或篩選條件
</p>
<p>
請嘗試其他關鍵字或篩選條件
</p>
</div>
</div>
...
@@ -923,11 +952,11 @@
...
@@ -923,11 +952,11 @@
<q-dialog
v-model=
"fullHeight"
full-height
>
<q-dialog
v-model=
"fullHeight"
full-height
>
<q-card
class=
"column full-height"
style=
"width: 500px"
>
<q-card
class=
"column full-height"
style=
"width: 500px"
>
<div
class=
"moreTiaojiao"
>
更多篩選條件
</div>
<div
class=
"moreTiaojiao"
>
更多篩選條件
</div>
<div
class=
"full_listDiv"
style=
"padding-bottom:20px"
>
<div
class=
"full_listDiv"
style=
"padding-bottom:
20px"
>
<span>
價格:
</span>
<span>
價格:
</span>
<q-input
<q-input
class=
"full_price"
class=
"full_price"
style=
"width:
30%;height:45px;
"
style=
"width:
30%; height: 45px
"
v-model=
"qMsg.minPrice"
v-model=
"qMsg.minPrice"
@
input=
"changeData"
@
input=
"changeData"
filled
filled
...
@@ -935,7 +964,7 @@
...
@@ -935,7 +964,7 @@
/>
/>
<q-input
<q-input
class=
"full_price"
class=
"full_price"
style=
"width:
30%;height:45px;
"
style=
"width:
30%; height: 45px
"
v-model=
"qMsg.maxPrice"
v-model=
"qMsg.maxPrice"
@
input=
"changeData"
@
input=
"changeData"
filled
filled
...
@@ -948,7 +977,7 @@
...
@@ -948,7 +977,7 @@
<q-checkbox
<q-checkbox
right-label
right-label
v-model=
"dayNum"
v-model=
"dayNum"
v-for=
"(item,index) in dayArray"
v-for=
"(item,
index) in dayArray"
:label=
"item.text"
:label=
"item.text"
:key=
"index"
:key=
"index"
:val=
"item.id"
:val=
"item.id"
...
@@ -962,7 +991,7 @@
...
@@ -962,7 +991,7 @@
<div
class=
"q-gutter-sm"
>
<div
class=
"q-gutter-sm"
>
<q-checkbox
<q-checkbox
v-model=
"WeekDay"
v-model=
"WeekDay"
v-for=
"(item,index) in weekList"
v-for=
"(item,
index) in weekList"
:val=
"item.value"
:val=
"item.value"
:label=
"item.label"
:label=
"item.label"
:key=
"index"
:key=
"index"
...
@@ -972,10 +1001,10 @@
...
@@ -972,10 +1001,10 @@
</div>
</div>
</div>
</div>
<div
class=
"full_btndiv"
>
<div
class=
"full_btndiv"
>
<q-btn
color=
"white"
style=
"width:49%"
text-color=
"black"
label=
"清除"
/>
<q-btn
color=
"white"
style=
"width:
49%"
text-color=
"black"
label=
"清除"
/>
<q-btn
<q-btn
color=
"primary"
color=
"primary"
style=
"width:49%"
style=
"width:
49%"
label=
"套用"
label=
"套用"
v-close-popup
v-close-popup
@
click=
"goSearchHandler"
@
click=
"goSearchHandler"
...
@@ -989,18 +1018,18 @@
...
@@ -989,18 +1018,18 @@
<q-card-section>
<q-card-section>
<div
class=
"text-h6"
>
<div
class=
"text-h6"
>
搜尋行程
搜尋行程
<i
class=
"iconfont iconbaseline-close-px"
@
click=
"isShowDialog
=
false"
></i>
<i
class=
"iconfont iconbaseline-close-px"
@
click=
"isShowDialog
=
false"
></i>
</div>
</div>
</q-card-section>
</q-card-section>
<q-separator
/>
<q-separator
/>
<div
style=
"max-height: 550px;
padding:
20px 30px 30px 30px"
class=
"scroll"
>
<div
style=
"max-height: 550px;
padding:
20px 30px 30px 30px"
class=
"scroll"
>
<div
class=
"chosen-box"
>
<div
class=
"chosen-box"
>
<div
class=
"chosen-tab"
>
<div
class=
"chosen-tab"
>
<q-tabs
v-model=
"tab"
align=
"justify"
narrow-indicator
class=
"q-mb-md"
>
<q-tabs
v-model=
"tab"
align=
"justify"
narrow-indicator
class=
"q-mb-md"
>
<q-tab
class=
"text-purple"
name=
"dest"
label=
"目的地"
/>
<q-tab
class=
"text-purple"
name=
"dest"
label=
"目的地"
/>
<q-tab
class=
"text-teal"
name=
"kw"
label=
"關鍵字"
/>
<q-tab
class=
"text-teal"
name=
"kw"
label=
"關鍵字"
/>
</q-tabs>
</q-tabs>
<div
v-show=
"tab
==
'dest'"
>
<div
v-show=
"tab
==
'dest'"
>
<div
class=
"q-mb-md"
>
<div
class=
"q-mb-md"
>
<q-select
<q-select
filled
filled
...
@@ -1043,7 +1072,7 @@
...
@@ -1043,7 +1072,7 @@
/>
/>
</div>
</div>
</div>
</div>
<div
v-show=
"tab
==
'kw'"
class=
"q-mb-md"
>
<div
v-show=
"tab
==
'kw'"
class=
"q-mb-md"
>
<q-input
<q-input
filled
filled
id=
"search_key"
id=
"search_key"
...
@@ -1057,7 +1086,7 @@
...
@@ -1057,7 +1086,7 @@
<q-input
<q-input
filled
filled
v-model=
"qMsg.startDate"
v-model=
"qMsg.startDate"
style=
"width:99%"
style=
"width:
99%"
:label=
"$t('search_date_begin')"
:label=
"$t('search_date_begin')"
mask=
"date"
mask=
"date"
class=
"bg-grey-1"
class=
"bg-grey-1"
...
@@ -1105,10 +1134,10 @@
...
@@ -1105,10 +1134,10 @@
<q-btn
<q-btn
color=
"primary"
color=
"primary"
unelevated
unelevated
style=
"width:
100%;height:50px;margin-top:20px;
"
style=
"width:
100%; height: 50px; margin-top: 20px
"
filled
filled
label=
"搜尋"
label=
"搜尋"
@
click=
"
isShowDialog=false,
goSearchHandler()"
@
click=
"
(isShowDialog = false),
goSearchHandler()"
/>
/>
</div>
</div>
</div>
</div>
...
@@ -1126,7 +1155,7 @@
...
@@ -1126,7 +1155,7 @@
<q-tab
class=
"text-purple"
name=
"dest"
label=
"目的地"
/>
<q-tab
class=
"text-purple"
name=
"dest"
label=
"目的地"
/>
<q-tab
class=
"text-teal"
name=
"kw"
label=
"關鍵字"
/>
<q-tab
class=
"text-teal"
name=
"kw"
label=
"關鍵字"
/>
</q-tabs>
</q-tabs>
<div
v-show=
"tab
==
'dest'"
>
<div
v-show=
"tab
==
'dest'"
>
<div
class=
"q-mb-md"
>
<div
class=
"q-mb-md"
>
<q-select
<q-select
filled
filled
...
@@ -1169,7 +1198,7 @@
...
@@ -1169,7 +1198,7 @@
/>
/>
</div>
</div>
</div>
</div>
<div
v-show=
"tab
==
'kw'"
class=
"q-mb-md"
>
<div
v-show=
"tab
==
'kw'"
class=
"q-mb-md"
>
<q-input
<q-input
filled
filled
id=
"search_key"
id=
"search_key"
...
@@ -1230,10 +1259,10 @@
...
@@ -1230,10 +1259,10 @@
<q-btn
<q-btn
color=
"primary"
color=
"primary"
unelevated
unelevated
style=
"width:100%"
style=
"width:
100%"
filled
filled
label=
"搜尋"
label=
"搜尋"
@
click=
"
showPopup=false,
goSearchHandler()"
@
click=
"
(showPopup = false),
goSearchHandler()"
/>
/>
</div>
</div>
</div>
</div>
...
@@ -1251,7 +1280,7 @@ export default {
...
@@ -1251,7 +1280,7 @@ export default {
popup
,
popup
,
searchBlock
,
searchBlock
,
searchList
,
searchList
,
kkday
kkday
,
},
},
data
()
{
data
()
{
return
{
return
{
...
@@ -1266,56 +1295,56 @@ export default {
...
@@ -1266,56 +1295,56 @@ export default {
id
:
1
,
id
:
1
,
min
:
1
,
min
:
1
,
max
:
1
,
max
:
1
,
text
:
"1天"
text
:
"1天"
,
},
},
{
{
id
:
2
,
id
:
2
,
min
:
2
,
min
:
2
,
max
:
2
,
max
:
2
,
text
:
"2天"
text
:
"2天"
,
},
},
{
{
id
:
3
,
id
:
3
,
min
:
3
,
min
:
3
,
max
:
3
,
max
:
3
,
text
:
"3天"
text
:
"3天"
,
},
},
{
{
id
:
4
,
id
:
4
,
min
:
4
,
min
:
4
,
max
:
4
,
max
:
4
,
text
:
"4天"
text
:
"4天"
,
},
},
{
{
id
:
5
,
id
:
5
,
min
:
5
,
min
:
5
,
max
:
5
,
max
:
5
,
text
:
"5天"
text
:
"5天"
,
},
},
{
{
id
:
6
,
id
:
6
,
min
:
6
,
min
:
6
,
max
:
6
,
max
:
6
,
text
:
"6天"
text
:
"6天"
,
},
},
{
{
id
:
7
,
id
:
7
,
min
:
7
,
min
:
7
,
max
:
8
,
max
:
8
,
text
:
"7-8天"
text
:
"7-8天"
,
},
},
{
{
id
:
8
,
id
:
8
,
min
:
9
,
min
:
9
,
max
:
10
,
max
:
10
,
text
:
"9-10天"
text
:
"9-10天"
,
},
},
{
{
id
:
9
,
id
:
9
,
min
:
10
,
min
:
10
,
max
:
null
,
max
:
null
,
text
:
"10天以上"
text
:
"10天以上"
,
}
}
,
],
],
flight
:
[
"长荣"
],
flight
:
[
"长荣"
],
...
@@ -1327,7 +1356,7 @@ export default {
...
@@ -1327,7 +1356,7 @@ export default {
borderRadius
:
"5px"
,
borderRadius
:
"5px"
,
backgroundColor
:
"#027be3"
,
backgroundColor
:
"#027be3"
,
width
:
"5px"
,
width
:
"5px"
,
opacity
:
0.75
opacity
:
0.75
,
},
},
//地区样式
//地区样式
barStyle
:
{
barStyle
:
{
...
@@ -1335,7 +1364,7 @@ export default {
...
@@ -1335,7 +1364,7 @@ export default {
borderRadius
:
"9px"
,
borderRadius
:
"9px"
,
backgroundColor
:
"#027be3"
,
backgroundColor
:
"#027be3"
,
width
:
"9px"
,
width
:
"9px"
,
opacity
:
0.2
opacity
:
0.2
,
},
},
//地区数据
//地区数据
areas
:
[],
areas
:
[],
...
@@ -1343,62 +1372,62 @@ export default {
...
@@ -1343,62 +1372,62 @@ export default {
sortArray
:
[
sortArray
:
[
{
{
label
:
"依推薦程度"
,
label
:
"依推薦程度"
,
value
:
1
value
:
1
,
},
},
{
{
label
:
"低價優先"
,
label
:
"低價優先"
,
value
:
2
value
:
2
,
},
},
{
{
label
:
"高價優先"
,
label
:
"高價優先"
,
value
:
3
value
:
3
,
},
},
{
{
label
:
"最快出發日"
,
label
:
"最快出發日"
,
value
:
4
value
:
4
,
},
},
{
{
label
:
"最晚出發日"
,
label
:
"最晚出發日"
,
value
:
5
value
:
5
,
},
},
{
{
label
:
"天數少到多"
,
label
:
"天數少到多"
,
value
:
6
value
:
6
,
},
},
{
{
label
:
"天數多到少"
,
label
:
"天數多到少"
,
value
:
7
value
:
7
,
}
}
,
],
],
weekList
:
[
weekList
:
[
{
{
label
:
"星期日"
,
label
:
"星期日"
,
value
:
0
value
:
0
,
},
},
{
{
label
:
"星期一"
,
label
:
"星期一"
,
value
:
1
value
:
1
,
},
},
{
{
label
:
"星期二"
,
label
:
"星期二"
,
value
:
2
value
:
2
,
},
},
{
{
label
:
"星期三"
,
label
:
"星期三"
,
value
:
3
value
:
3
,
},
},
{
{
label
:
"星期四"
,
label
:
"星期四"
,
value
:
4
value
:
4
,
},
},
{
{
label
:
"星期五"
,
label
:
"星期五"
,
value
:
5
value
:
5
,
},
},
{
{
label
:
"星期六"
,
label
:
"星期六"
,
value
:
6
value
:
6
,
}
}
,
],
],
showPopup
:
false
,
showPopup
:
false
,
tab
:
"dest"
,
tab
:
"dest"
,
...
@@ -1406,7 +1435,7 @@ export default {
...
@@ -1406,7 +1435,7 @@ export default {
fl
:
""
,
fl
:
""
,
sl
:
""
,
sl
:
""
,
tl
:
""
,
tl
:
""
,
ful
:
""
ful
:
""
,
},
},
//查询参数
//查询参数
qMsg
:
{
qMsg
:
{
...
@@ -1434,11 +1463,11 @@ export default {
...
@@ -1434,11 +1463,11 @@ export default {
dayNumList
:
[],
// 天数
dayNumList
:
[],
// 天数
webSiteCategoryIds
:
""
,
// 分类Id
webSiteCategoryIds
:
""
,
// 分类Id
placeIds
:
""
,
// 目的地城市Id
placeIds
:
""
,
// 目的地城市Id
orderBy
:
0
// 排序 0默认 1价格升序 2价格降序
orderBy
:
0
,
// 排序 0默认 1价格升序 2价格降序
},
},
ShowType
:
0
,
//显示样式(0-豆腐格,1-列表)
ShowType
:
0
,
//显示样式(0-豆腐格,1-列表)
//行程列表
//行程列表
DataList
:
[]
DataList
:
[]
,
};
};
},
},
created
()
{},
created
()
{},
...
@@ -1466,7 +1495,7 @@ export default {
...
@@ -1466,7 +1495,7 @@ export default {
var
qsearchDate
=
this
.
getUrlKey
(
"qsearchDate"
,
window
.
location
.
href
);
var
qsearchDate
=
this
.
getUrlKey
(
"qsearchDate"
,
window
.
location
.
href
);
var
qsearchEndDate
=
this
.
getUrlKey
(
"qsearchEndDate"
,
window
.
location
.
href
);
var
qsearchEndDate
=
this
.
getUrlKey
(
"qsearchEndDate"
,
window
.
location
.
href
);
var
areaId
=
this
.
getUrlKey
(
"areaId"
,
window
.
location
.
href
);
var
areaId
=
this
.
getUrlKey
(
"areaId"
,
window
.
location
.
href
);
var
areaIds
=
this
.
getUrlKey
(
"areaIds"
,
window
.
location
.
href
)
var
areaIds
=
this
.
getUrlKey
(
"areaIds"
,
window
.
location
.
href
);
var
categoryId
=
this
.
getUrlKey
(
"categoryId"
,
window
.
location
.
href
);
var
categoryId
=
this
.
getUrlKey
(
"categoryId"
,
window
.
location
.
href
);
if
(
qsearchKey
)
{
if
(
qsearchKey
)
{
this
.
qMsg
.
searchKey
=
qsearchKey
;
this
.
qMsg
.
searchKey
=
qsearchKey
;
...
@@ -1481,7 +1510,7 @@ export default {
...
@@ -1481,7 +1510,7 @@ export default {
this
.
qMsg
.
areaId
=
Number
(
areaId
);
this
.
qMsg
.
areaId
=
Number
(
areaId
);
}
}
if
(
areaIds
)
{
if
(
areaIds
)
{
this
.
qMsg
.
areaIds
=
areaIds
.
split
(
','
).
map
(
item
=>
Number
(
item
));
this
.
qMsg
.
areaIds
=
areaIds
.
split
(
","
).
map
((
item
)
=>
Number
(
item
));
}
}
if
(
categoryId
)
{
if
(
categoryId
)
{
this
.
qMsg
.
categoryId
=
Number
(
categoryId
);
this
.
qMsg
.
categoryId
=
Number
(
categoryId
);
...
@@ -1522,7 +1551,7 @@ export default {
...
@@ -1522,7 +1551,7 @@ export default {
dayNumList
:
[],
// 天数
dayNumList
:
[],
// 天数
webSiteCategoryIds
:
""
,
// 分类Id
webSiteCategoryIds
:
""
,
// 分类Id
placeIds
:
""
,
// 目的地城市Id
placeIds
:
""
,
// 目的地城市Id
orderBy
:
0
// 排序 0默认 1价格升序 2价格降序
orderBy
:
0
,
// 排序 0默认 1价格升序 2价格降序
};
};
this
.
qMsg
=
msg
;
this
.
qMsg
=
msg
;
this
.
goSearchHandler
();
this
.
goSearchHandler
();
...
@@ -1548,14 +1577,14 @@ export default {
...
@@ -1548,14 +1577,14 @@ export default {
this
.
apipost
(
this
.
apipost
(
"ws_get_GetSearchArea"
,
"ws_get_GetSearchArea"
,
{},
{},
res
=>
{
(
res
)
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
if
(
res
.
data
.
resultCode
==
1
)
{
if
(
res
.
data
.
data
)
{
if
(
res
.
data
.
data
)
{
this
.
areas
=
res
.
data
.
data
.
AreaList
;
this
.
areas
=
res
.
data
.
data
.
AreaList
;
}
}
}
}
},
},
err
=>
{}
(
err
)
=>
{}
);
);
},
},
searchFocusHandler
()
{
searchFocusHandler
()
{
...
@@ -1622,11 +1651,7 @@ export default {
...
@@ -1622,11 +1651,7 @@ export default {
companyId
=
groupinfo
.
siteList
[
0
].
companyId
;
companyId
=
groupinfo
.
siteList
[
0
].
companyId
;
}
}
this
.
SearchResult
=
this
.
SearchResult
=
this
.
qMsg
.
startDate
+
this
.
qMsg
.
startDate
+
"-"
+
this
.
qMsg
.
endDate
+
" "
+
this
.
qMsg
.
searchKey
;
"-"
+
this
.
qMsg
.
endDate
+
" "
+
this
.
qMsg
.
searchKey
;
let
msg
=
{
let
msg
=
{
pageIndex
:
this
.
qMsg
.
pageIndex
,
pageIndex
:
this
.
qMsg
.
pageIndex
,
pageSize
:
this
.
qMsg
.
pageSize
,
pageSize
:
this
.
qMsg
.
pageSize
,
...
@@ -1647,7 +1672,7 @@ export default {
...
@@ -1647,7 +1672,7 @@ export default {
orderBySales
:
0
,
orderBySales
:
0
,
startCityId
:
this
.
qMsg
.
startCityId
,
startCityId
:
this
.
qMsg
.
startCityId
,
weekDayList
:
this
.
WeekDay
,
weekDayList
:
this
.
WeekDay
,
dayNumList
:
this
.
dayNum
dayNumList
:
this
.
dayNum
,
};
};
if
(
localStorage
.
b2bUser
)
{
if
(
localStorage
.
b2bUser
)
{
var
b2bUser
=
JSON
.
parse
(
window
.
localStorage
.
getItem
(
"b2bUser"
));
var
b2bUser
=
JSON
.
parse
(
window
.
localStorage
.
getItem
(
"b2bUser"
));
...
@@ -1658,14 +1683,14 @@ export default {
...
@@ -1658,14 +1683,14 @@ export default {
this
.
apipost
(
this
.
apipost
(
"b2c_get_GetB2CMergeProductPageList"
,
"b2c_get_GetB2CMergeProductPageList"
,
msg
,
msg
,
res
=>
{
(
res
)
=>
{
this
.
$q
.
loading
.
hide
();
this
.
$q
.
loading
.
hide
();
if
(
res
.
data
.
resultCode
==
1
)
{
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
qMsg
.
PageCount
=
res
.
data
.
data
.
pageCount
;
this
.
qMsg
.
PageCount
=
res
.
data
.
data
.
pageCount
;
this
.
qMsg
.
TotalCount
=
res
.
data
.
data
.
count
;
this
.
qMsg
.
TotalCount
=
res
.
data
.
data
.
count
;
var
tempArray
=
res
.
data
.
data
.
pageData
;
var
tempArray
=
res
.
data
.
data
.
pageData
;
if
(
tempArray
&&
tempArray
.
length
>
0
)
{
if
(
tempArray
&&
tempArray
.
length
>
0
)
{
tempArray
.
forEach
(
item
=>
{
tempArray
.
forEach
(
(
item
)
=>
{
if
(
item
.
imgCover
&&
item
.
imgCover
!=
""
)
{
if
(
item
.
imgCover
&&
item
.
imgCover
!=
""
)
{
try
{
try
{
var
imgArray
=
JSON
.
parse
(
item
.
imgCover
);
var
imgArray
=
JSON
.
parse
(
item
.
imgCover
);
...
@@ -1681,9 +1706,9 @@ export default {
...
@@ -1681,9 +1706,9 @@ export default {
}
}
}
}
},
},
err
=>
{}
(
err
)
=>
{}
);
);
}
}
,
}
}
,
};
};
</
script
>
</
script
>
src/pages/SearchProduct.vue
View file @
ce68ca22
...
@@ -684,7 +684,7 @@
...
@@ -684,7 +684,7 @@
}
}
</
style
>
</
style
>
<
template
>
<
template
>
<div
class=
"SearchMain"
:class=
"
{
'desktop-page':$q.platform.is.desktop
}">
<div
class=
"SearchMain"
:class=
"
{
'desktop-page': $q.platform.is.desktop
}">
<div
class=
"SearchTop"
>
<div
class=
"SearchTop"
>
<div
class=
"q-my-md"
v-if=
"qMsg.searchKey"
>
<div
class=
"q-my-md"
v-if=
"qMsg.searchKey"
>
<q-breadcrumbs>
<q-breadcrumbs>
...
@@ -699,25 +699,26 @@
...
@@ -699,25 +699,26 @@
</div>
</div>
<div
class=
"text-h6 text-left"
v-if=
"qMsg.searchKey"
>
<div
class=
"text-h6 text-left"
v-if=
"qMsg.searchKey"
>
搜尋結果 “
搜尋結果 “
<span
class=
"text-primary"
>
{{
qMsg
.
searchKey
}}
</span>
”
<span
class=
"text-primary"
>
{{
qMsg
.
searchKey
}}
</span
>
”
</div>
</div>
<!-- 电脑端 -->
<!-- 电脑端 -->
<div
class=
"row SearchContent q-mt-md"
v-if=
"!$q.screen.xs && 1
==
0"
>
<div
class=
"row SearchContent q-mt-md"
v-if=
"!$q.screen.xs && 1
==
0"
>
<div
class=
"search-filter-inner"
>
<div
class=
"search-filter-inner"
>
<div
<div
class=
"search-item"
class=
"search-item"
style=
"width:
200px;cursor:pointer;
"
style=
"width:
200px; cursor: pointer
"
@
click=
"
isShowDialog=true,
goSearchHandler"
@
click=
"
(isShowDialog = true),
goSearchHandler"
>
>
<i
class=
"iconfont iconchazhao"
></i>
<i
class=
"iconfont iconchazhao"
></i>
{{
qMsg
.
searchKey
}}
{{
qMsg
.
searchKey
}}
</div>
</div>
<div
class=
"search-item"
@
click=
"
isShowDialog=true,
goSearchHandler"
>
<div
class=
"search-item"
@
click=
"
(isShowDialog = true),
goSearchHandler"
>
<i
class=
"iconfont iconrili"
></i>
<i
class=
"iconfont iconrili"
></i>
{{
qMsg
.
startDate
}}
~
{{
qMsg
.
endDate
}}
{{
qMsg
.
startDate
}}
~
{{
qMsg
.
endDate
}}
</div>
</div>
<div
class=
"search-item"
style=
"margin-left:
20px;
"
>
<div
class=
"search-item"
style=
"margin-left:
20px
"
>
<q-select
<q-select
filled
filled
v-model=
"sortNum"
v-model=
"sortNum"
...
@@ -727,28 +728,36 @@
...
@@ -727,28 +728,36 @@
map-options
map-options
/>
/>
</div>
</div>
<div
class=
"search-item"
style=
"margin-left:20px;"
>
<div
class=
"search-item"
style=
"margin-left: 20px"
>
<span
style=
"display:inline-block;cursor:pointer;"
@
click=
"fullHeight = true"
>
更多篩選條件
</span>
<span
style=
"display: inline-block; cursor: pointer"
@
click=
"fullHeight = true"
>
更多篩選條件
</span
>
</div>
</div>
</div>
</div>
<div
<div
v-show=
"showSplitPannel"
v-show=
"showSplitPannel"
id=
"sb"
id=
"sb"
style=
"z-index:999"
style=
"z-index:
999"
transition-show=
"fade"
transition-show=
"fade"
elevated
elevated
transition-hide=
"scale"
transition-hide=
"scale"
class=
"showbox row"
class=
"showbox row"
>
>
<div
style=
"width:180px;"
>
<div
style=
"width: 180px"
>
<q-scroll-area
:thumb-style=
"thumbStyle"
:bar-style=
"barStyle"
style=
"height: 100%;"
>
<q-scroll-area
:thumb-style=
"thumbStyle"
:bar-style=
"barStyle"
style=
"height: 100%"
>
<q-list>
<q-list>
<q-item
<q-item
v-for=
"(x, i) in areas"
v-for=
"(x, i) in areas"
:key=
"i"
:key=
"i"
clickable
clickable
v-ripple
v-ripple
:active=
"crtAreaIndex
==
i"
:active=
"crtAreaIndex
==
i"
@
click=
"clkAreaHandler(i)"
@
click=
"clkAreaHandler(i)"
active-class=
"my-menu-link"
active-class=
"my-menu-link"
>
>
...
@@ -761,24 +770,44 @@
...
@@ -761,24 +770,44 @@
</div>
</div>
<q-separator
vertical
/>
<q-separator
vertical
/>
<div
class=
"col q-pa-md"
>
<div
class=
"col q-pa-md"
>
<q-scroll-area
:thumb-style=
"thumbStyle"
:bar-style=
"barStyle"
style=
"height: 100%;"
>
<q-scroll-area
:thumb-style=
"thumbStyle"
:bar-style=
"barStyle"
style=
"height: 100%"
>
<template
<template
v-if=
"areas[crtAreaIndex]&&areas[crtAreaIndex].SubList&&areas[crtAreaIndex].SubList.length>0"
v-if=
"
areas[crtAreaIndex] &&
areas[crtAreaIndex].SubList &&
areas[crtAreaIndex].SubList.length > 0
"
>
<div
class=
"area-box"
v-for=
"(x, i) in areas[crtAreaIndex].SubList"
:key=
"i"
>
>
<div
class=
"area-box"
v-for=
"(x, i) in areas[crtAreaIndex].SubList"
:key=
"i"
>
<div
class=
"q-mb-md"
>
<div
class=
"q-mb-md"
>
<div
class=
"h3"
@
click=
"chosenAreaHandler(x.Name)"
>
{{
x
.
Name
}}
</div>
<div
class=
"h3"
@
click=
"chosenAreaHandler(x.Name)"
>
{{
x
.
Name
}}
</div>
</div>
</div>
<template
v-if=
"x&&x.SubList && x.SubList.length>0"
>
<template
v-if=
"x && x.SubList && x.SubList.length > 0"
>
<div
class=
"q-mb-sm row to-end"
v-for=
"(y, yi) in x.SubList"
:key=
"yi"
>
<div
<div
class=
"h4"
@
click=
"chosenAreaHandler(y.Name)"
>
{{
y
.
Name
}}
</div>
class=
"q-mb-sm row to-end"
<template
v-if=
"y&&y.SubList&&y.SubList.length>0"
>
v-for=
"(y, yi) in x.SubList"
:key=
"yi"
>
<div
class=
"h4"
@
click=
"chosenAreaHandler(y.Name)"
>
{{
y
.
Name
}}
</div>
<template
v-if=
"y && y.SubList && y.SubList.length > 0"
>
<div
<div
class=
"h5"
class=
"h5"
@
click=
"chosenAreaHandler(z.Name)"
@
click=
"chosenAreaHandler(z.Name)"
v-for=
"(z, zi) in y.SubList"
v-for=
"(z, zi) in y.SubList"
:key=
"zi"
:key=
"zi"
>
{{
z
.
Name
}}
</div>
>
{{
z
.
Name
}}
</div>
</
template
>
</
template
>
</div>
</div>
</template>
</template>
...
@@ -789,11 +818,11 @@
...
@@ -789,11 +818,11 @@
</div>
</div>
</div>
</div>
</div>
</div>
<
template
v-if=
"ShowType
==
0"
>
<
template
v-if=
"ShowType
==
0"
>
<!--豆腐格-->
<!--豆腐格-->
<searchBlock
:DataList=
"DataList"
:qMsg=
"qMsg"
></searchBlock>
<searchBlock
:DataList=
"DataList"
:qMsg=
"qMsg"
></searchBlock>
</
template
>
</
template
>
<
template
v-else-if=
"ShowType
==
1"
>
<
template
v-else-if=
"ShowType
==
1"
>
<div
class=
"wl-section-block search-content"
>
<div
class=
"wl-section-block search-content"
>
<div
class=
"search-filter-aside"
>
<div
class=
"search-filter-aside"
>
<div
class=
"search-header"
>
<div
class=
"search-header"
>
...
@@ -806,12 +835,12 @@
...
@@ -806,12 +835,12 @@
價格
價格
<span
class=
"clear-filter"
@
click=
"clearPrice()"
>
清除篩選
</span>
<span
class=
"clear-filter"
@
click=
"clearPrice()"
>
清除篩選
</span>
</div>
</div>
<div
style=
"width:
100%;height:57px;display:
none"
></div>
<div
style=
"width:
100%; height: 57px; display:
none"
></div>
<div
class=
"range-text"
>
<div
class=
"range-text"
>
<div
class=
"min"
>
<div
class=
"min"
>
<q-input
<q-input
class=
"full_price"
class=
"full_price"
style=
"width:80%"
style=
"width:
80%"
placeholder=
"最低价"
placeholder=
"最低价"
v-model=
"qMsg.minPrice"
v-model=
"qMsg.minPrice"
@
input=
"changeData"
@
input=
"changeData"
...
@@ -822,7 +851,7 @@
...
@@ -822,7 +851,7 @@
<div
class=
"max"
>
<div
class=
"max"
>
<q-input
<q-input
class=
"full_price"
class=
"full_price"
style=
"width:80%"
style=
"width:
80%"
placeholder=
"最高价"
placeholder=
"最高价"
v-model=
"qMsg.maxPrice"
v-model=
"qMsg.maxPrice"
@
input=
"changeData"
@
input=
"changeData"
...
@@ -840,7 +869,7 @@
...
@@ -840,7 +869,7 @@
<q-checkbox
<q-checkbox
right-label
right-label
v-model=
"dayNum"
v-model=
"dayNum"
v-for=
"(item,index) in dayArray"
v-for=
"(item,
index) in dayArray"
:label=
"item.text"
:label=
"item.text"
:key=
"index"
:key=
"index"
:val=
"item.id"
:val=
"item.id"
...
@@ -868,7 +897,7 @@
...
@@ -868,7 +897,7 @@
<div
class=
"q-gutter-sm"
>
<div
class=
"q-gutter-sm"
>
<q-checkbox
<q-checkbox
v-model=
"WeekDay"
v-model=
"WeekDay"
v-for=
"(item,index) in weekList"
v-for=
"(item,
index) in weekList"
:val=
"item.value"
:val=
"item.value"
:label=
"item.label"
:label=
"item.label"
:key=
"index"
:key=
"index"
...
@@ -886,7 +915,7 @@
...
@@ -886,7 +915,7 @@
<
template
v-else
>
<
template
v-else
>
<kkday
:qMsg=
"qMsg"
@
change=
"handlerSearchChange"
></kkday>
<kkday
:qMsg=
"qMsg"
@
change=
"handlerSearchChange"
></kkday>
</
template
>
</
template
>
<div
v-if=
"DataList.length
==0 && ShowType!=
2"
class=
"blank-block"
>
<div
v-if=
"DataList.length
== 0 && ShowType !=
2"
class=
"blank-block"
>
<i
class=
"iconfont iconchazhao"
></i>
<i
class=
"iconfont iconchazhao"
></i>
<p>
請嘗試其他關鍵字或篩選條件
</p>
<p>
請嘗試其他關鍵字或篩選條件
</p>
</div>
</div>
...
@@ -895,11 +924,11 @@
...
@@ -895,11 +924,11 @@
<q-dialog
v-model=
"fullHeight"
full-height
>
<q-dialog
v-model=
"fullHeight"
full-height
>
<q-card
class=
"column full-height"
style=
"width: 500px"
>
<q-card
class=
"column full-height"
style=
"width: 500px"
>
<div
class=
"moreTiaojiao"
>
更多篩選條件
</div>
<div
class=
"moreTiaojiao"
>
更多篩選條件
</div>
<div
class=
"full_listDiv"
style=
"padding-bottom:20px"
>
<div
class=
"full_listDiv"
style=
"padding-bottom:
20px"
>
<span>
價格:
</span>
<span>
價格:
</span>
<q-input
<q-input
class=
"full_price"
class=
"full_price"
style=
"width:
30%;height:45px;
"
style=
"width:
30%; height: 45px
"
v-model=
"qMsg.minPrice"
v-model=
"qMsg.minPrice"
@
input=
"changeData"
@
input=
"changeData"
filled
filled
...
@@ -907,7 +936,7 @@
...
@@ -907,7 +936,7 @@
/>
/>
<q-input
<q-input
class=
"full_price"
class=
"full_price"
style=
"width:
30%;height:45px;
"
style=
"width:
30%; height: 45px
"
v-model=
"qMsg.maxPrice"
v-model=
"qMsg.maxPrice"
@
input=
"changeData"
@
input=
"changeData"
filled
filled
...
@@ -920,7 +949,7 @@
...
@@ -920,7 +949,7 @@
<q-checkbox
<q-checkbox
right-label
right-label
v-model=
"dayNum"
v-model=
"dayNum"
v-for=
"(item,index) in dayArray"
v-for=
"(item,
index) in dayArray"
:label=
"item.text"
:label=
"item.text"
:key=
"index"
:key=
"index"
:val=
"item.id"
:val=
"item.id"
...
@@ -934,7 +963,7 @@
...
@@ -934,7 +963,7 @@
<div
class=
"q-gutter-sm"
>
<div
class=
"q-gutter-sm"
>
<q-checkbox
<q-checkbox
v-model=
"WeekDay"
v-model=
"WeekDay"
v-for=
"(item,index) in weekList"
v-for=
"(item,
index) in weekList"
:val=
"item.value"
:val=
"item.value"
:label=
"item.label"
:label=
"item.label"
:key=
"index"
:key=
"index"
...
@@ -944,10 +973,10 @@
...
@@ -944,10 +973,10 @@
</div>
</div>
</div>
</div>
<div
class=
"full_btndiv"
>
<div
class=
"full_btndiv"
>
<q-btn
color=
"white"
style=
"width:49%"
text-color=
"black"
label=
"清除"
/>
<q-btn
color=
"white"
style=
"width:
49%"
text-color=
"black"
label=
"清除"
/>
<q-btn
<q-btn
color=
"primary"
color=
"primary"
style=
"width:49%"
style=
"width:
49%"
label=
"套用"
label=
"套用"
v-close-popup
v-close-popup
@
click=
"goSearchHandler"
@
click=
"goSearchHandler"
...
@@ -960,19 +989,19 @@
...
@@ -960,19 +989,19 @@
<q-card>
<q-card>
<q-card-section>
<q-card-section>
<div
class=
"text-h6"
>
<div
class=
"text-h6"
>
搜尋行程
搜尋行程
11
<i
class=
"iconfont iconbaseline-close-px"
@
click=
"isShowDialog
=
false"
></i>
<i
class=
"iconfont iconbaseline-close-px"
@
click=
"isShowDialog
=
false"
></i>
</div>
</div>
</q-card-section>
</q-card-section>
<q-separator
/>
<q-separator
/>
<div
style=
"max-height: 550px;
padding:
20px 30px 30px 30px"
class=
"scroll"
>
<div
style=
"max-height: 550px;
padding:
20px 30px 30px 30px"
class=
"scroll"
>
<div
class=
"chosen-box"
>
<div
class=
"chosen-box"
>
<div
class=
"chosen-tab"
>
<div
class=
"chosen-tab"
>
<q-tabs
v-model=
"tab"
align=
"justify"
narrow-indicator
class=
"q-mb-md"
>
<q-tabs
v-model=
"tab"
align=
"justify"
narrow-indicator
class=
"q-mb-md"
>
<q-tab
class=
"text-purple"
name=
"dest"
label=
"目的地"
/>
<q-tab
class=
"text-purple"
name=
"dest"
label=
"目的地"
/>
<q-tab
class=
"text-teal"
name=
"kw"
label=
"關鍵字"
/>
<q-tab
class=
"text-teal"
name=
"kw"
label=
"關鍵字"
/>
</q-tabs>
</q-tabs>
<div
v-show=
"tab
==
'dest'"
>
<div
v-show=
"tab
==
'dest'"
>
<div
class=
"q-mb-md"
>
<div
class=
"q-mb-md"
>
<q-select
<q-select
filled
filled
...
@@ -1015,7 +1044,7 @@
...
@@ -1015,7 +1044,7 @@
/>
/>
</div>
</div>
</div>
</div>
<div
v-show=
"tab
==
'kw'"
class=
"q-mb-md"
>
<div
v-show=
"tab
==
'kw'"
class=
"q-mb-md"
>
<q-input
<q-input
filled
filled
id=
"search_key"
id=
"search_key"
...
@@ -1029,7 +1058,7 @@
...
@@ -1029,7 +1058,7 @@
<q-input
<q-input
filled
filled
v-model=
"qMsg.startDate"
v-model=
"qMsg.startDate"
style=
"width:99%"
style=
"width:
99%"
:label=
"$t('search_date_begin')"
:label=
"$t('search_date_begin')"
mask=
"date"
mask=
"date"
class=
"bg-grey-1"
class=
"bg-grey-1"
...
@@ -1077,10 +1106,10 @@
...
@@ -1077,10 +1106,10 @@
<q-btn
<q-btn
color=
"primary"
color=
"primary"
unelevated
unelevated
style=
"width:
100%;height:50px;margin-top:20px;
"
style=
"width:
100%; height: 50px; margin-top: 20px
"
filled
filled
label=
"搜尋"
label=
"搜尋"
@
click=
"
isShowDialog=false,
goSearchHandler()"
@
click=
"
(isShowDialog = false),
goSearchHandler()"
/>
/>
</div>
</div>
</div>
</div>
...
@@ -1098,7 +1127,7 @@
...
@@ -1098,7 +1127,7 @@
<q-tab
class=
"text-purple"
name=
"dest"
label=
"目的地"
/>
<q-tab
class=
"text-purple"
name=
"dest"
label=
"目的地"
/>
<q-tab
class=
"text-teal"
name=
"kw"
label=
"關鍵字"
/>
<q-tab
class=
"text-teal"
name=
"kw"
label=
"關鍵字"
/>
</q-tabs>
</q-tabs>
<div
v-show=
"tab
==
'dest'"
>
<div
v-show=
"tab
==
'dest'"
>
<div
class=
"q-mb-md"
>
<div
class=
"q-mb-md"
>
<q-select
<q-select
filled
filled
...
@@ -1141,7 +1170,7 @@
...
@@ -1141,7 +1170,7 @@
/>
/>
</div>
</div>
</div>
</div>
<div
v-show=
"tab
==
'kw'"
class=
"q-mb-md"
>
<div
v-show=
"tab
==
'kw'"
class=
"q-mb-md"
>
<q-input
<q-input
filled
filled
id=
"search_key"
id=
"search_key"
...
@@ -1202,10 +1231,10 @@
...
@@ -1202,10 +1231,10 @@
<q-btn
<q-btn
color=
"primary"
color=
"primary"
unelevated
unelevated
style=
"width:100%"
style=
"width:
100%"
filled
filled
label=
"搜尋"
label=
"搜尋"
@
click=
"
showPopup=false,
goSearchHandler()"
@
click=
"
(showPopup = false),
goSearchHandler()"
/>
/>
</div>
</div>
</div>
</div>
...
@@ -1223,7 +1252,7 @@ export default {
...
@@ -1223,7 +1252,7 @@ export default {
popup
,
popup
,
searchBlock
,
searchBlock
,
searchList
,
searchList
,
kkday
kkday
,
},
},
data
()
{
data
()
{
return
{
return
{
...
@@ -1238,56 +1267,56 @@ export default {
...
@@ -1238,56 +1267,56 @@ export default {
id
:
1
,
id
:
1
,
min
:
1
,
min
:
1
,
max
:
1
,
max
:
1
,
text
:
"1天"
text
:
"1天"
,
},
},
{
{
id
:
2
,
id
:
2
,
min
:
2
,
min
:
2
,
max
:
2
,
max
:
2
,
text
:
"2天"
text
:
"2天"
,
},
},
{
{
id
:
3
,
id
:
3
,
min
:
3
,
min
:
3
,
max
:
3
,
max
:
3
,
text
:
"3天"
text
:
"3天"
,
},
},
{
{
id
:
4
,
id
:
4
,
min
:
4
,
min
:
4
,
max
:
4
,
max
:
4
,
text
:
"4天"
text
:
"4天"
,
},
},
{
{
id
:
5
,
id
:
5
,
min
:
5
,
min
:
5
,
max
:
5
,
max
:
5
,
text
:
"5天"
text
:
"5天"
,
},
},
{
{
id
:
6
,
id
:
6
,
min
:
6
,
min
:
6
,
max
:
6
,
max
:
6
,
text
:
"6天"
text
:
"6天"
,
},
},
{
{
id
:
7
,
id
:
7
,
min
:
7
,
min
:
7
,
max
:
8
,
max
:
8
,
text
:
"7-8天"
text
:
"7-8天"
,
},
},
{
{
id
:
8
,
id
:
8
,
min
:
9
,
min
:
9
,
max
:
10
,
max
:
10
,
text
:
"9-10天"
text
:
"9-10天"
,
},
},
{
{
id
:
9
,
id
:
9
,
min
:
10
,
min
:
10
,
max
:
null
,
max
:
null
,
text
:
"10天以上"
text
:
"10天以上"
,
}
}
,
],
],
flight
:
[
"长荣"
],
flight
:
[
"长荣"
],
...
@@ -1299,7 +1328,7 @@ export default {
...
@@ -1299,7 +1328,7 @@ export default {
borderRadius
:
"5px"
,
borderRadius
:
"5px"
,
backgroundColor
:
"#027be3"
,
backgroundColor
:
"#027be3"
,
width
:
"5px"
,
width
:
"5px"
,
opacity
:
0.75
opacity
:
0.75
,
},
},
//地区样式
//地区样式
barStyle
:
{
barStyle
:
{
...
@@ -1307,7 +1336,7 @@ export default {
...
@@ -1307,7 +1336,7 @@ export default {
borderRadius
:
"9px"
,
borderRadius
:
"9px"
,
backgroundColor
:
"#027be3"
,
backgroundColor
:
"#027be3"
,
width
:
"9px"
,
width
:
"9px"
,
opacity
:
0.2
opacity
:
0.2
,
},
},
//地区数据
//地区数据
areas
:
[],
areas
:
[],
...
@@ -1315,62 +1344,62 @@ export default {
...
@@ -1315,62 +1344,62 @@ export default {
sortArray
:
[
sortArray
:
[
{
{
label
:
"依推薦程度"
,
label
:
"依推薦程度"
,
value
:
1
value
:
1
,
},
},
{
{
label
:
"低價優先"
,
label
:
"低價優先"
,
value
:
2
value
:
2
,
},
},
{
{
label
:
"高價優先"
,
label
:
"高價優先"
,
value
:
3
value
:
3
,
},
},
{
{
label
:
"最快出發日"
,
label
:
"最快出發日"
,
value
:
4
value
:
4
,
},
},
{
{
label
:
"最晚出發日"
,
label
:
"最晚出發日"
,
value
:
5
value
:
5
,
},
},
{
{
label
:
"天數少到多"
,
label
:
"天數少到多"
,
value
:
6
value
:
6
,
},
},
{
{
label
:
"天數多到少"
,
label
:
"天數多到少"
,
value
:
7
value
:
7
,
}
}
,
],
],
weekList
:
[
weekList
:
[
{
{
label
:
"星期日"
,
label
:
"星期日"
,
value
:
0
value
:
0
,
},
},
{
{
label
:
"星期一"
,
label
:
"星期一"
,
value
:
1
value
:
1
,
},
},
{
{
label
:
"星期二"
,
label
:
"星期二"
,
value
:
2
value
:
2
,
},
},
{
{
label
:
"星期三"
,
label
:
"星期三"
,
value
:
3
value
:
3
,
},
},
{
{
label
:
"星期四"
,
label
:
"星期四"
,
value
:
4
value
:
4
,
},
},
{
{
label
:
"星期五"
,
label
:
"星期五"
,
value
:
5
value
:
5
,
},
},
{
{
label
:
"星期六"
,
label
:
"星期六"
,
value
:
6
value
:
6
,
}
}
,
],
],
showPopup
:
false
,
showPopup
:
false
,
tab
:
"dest"
,
tab
:
"dest"
,
...
@@ -1378,7 +1407,7 @@ export default {
...
@@ -1378,7 +1407,7 @@ export default {
fl
:
""
,
fl
:
""
,
sl
:
""
,
sl
:
""
,
tl
:
""
,
tl
:
""
,
ful
:
""
ful
:
""
,
},
},
//查询参数
//查询参数
qMsg
:
{
qMsg
:
{
...
@@ -1399,8 +1428,8 @@ export default {
...
@@ -1399,8 +1428,8 @@ export default {
// pageIndex: 1,
// pageIndex: 1,
// pageSize: 10,
// pageSize: 10,
// priceOrderByField: 4,
// priceOrderByField: 4,
SeriesIds
:
""
,
SeriesIds
:
""
,
LineIds
:
""
,
LineIds
:
""
,
searchKey
:
""
,
// 搜索词
searchKey
:
""
,
// 搜索词
// startCityId: 0,
// startCityId: 0,
// PageCount: 0,
// PageCount: 0,
...
@@ -1408,11 +1437,11 @@ export default {
...
@@ -1408,11 +1437,11 @@ export default {
dayNumList
:
[],
// 天数
dayNumList
:
[],
// 天数
webSiteCategoryIds
:
""
,
// 分类Id
webSiteCategoryIds
:
""
,
// 分类Id
placeIds
:
""
,
// 目的地城市Id
placeIds
:
""
,
// 目的地城市Id
orderBy
:
0
// 排序 0默认 1价格升序 2价格降序
orderBy
:
0
,
// 排序 0默认 1价格升序 2价格降序
},
},
ShowType
:
0
,
//显示样式(0-豆腐格,1-列表)
ShowType
:
0
,
//显示样式(0-豆腐格,1-列表)
//行程列表
//行程列表
DataList
:
[]
DataList
:
[]
,
};
};
},
},
created
()
{},
created
()
{},
...
@@ -1440,7 +1469,7 @@ export default {
...
@@ -1440,7 +1469,7 @@ export default {
var
qsearchDate
=
this
.
getUrlKey
(
"qsearchDate"
,
window
.
location
.
href
);
var
qsearchDate
=
this
.
getUrlKey
(
"qsearchDate"
,
window
.
location
.
href
);
var
qsearchEndDate
=
this
.
getUrlKey
(
"qsearchEndDate"
,
window
.
location
.
href
);
var
qsearchEndDate
=
this
.
getUrlKey
(
"qsearchEndDate"
,
window
.
location
.
href
);
var
areaId
=
this
.
getUrlKey
(
"areaId"
,
window
.
location
.
href
);
var
areaId
=
this
.
getUrlKey
(
"areaId"
,
window
.
location
.
href
);
var
areaIds
=
this
.
getUrlKey
(
"areaIds"
,
window
.
location
.
href
)
var
areaIds
=
this
.
getUrlKey
(
"areaIds"
,
window
.
location
.
href
);
var
categoryId
=
this
.
getUrlKey
(
"categoryId"
,
window
.
location
.
href
);
var
categoryId
=
this
.
getUrlKey
(
"categoryId"
,
window
.
location
.
href
);
var
seriesIds
=
this
.
getUrlKey
(
"SeriesIds"
,
window
.
location
.
href
);
var
seriesIds
=
this
.
getUrlKey
(
"SeriesIds"
,
window
.
location
.
href
);
var
lineIds
=
this
.
getUrlKey
(
"LineIds"
,
window
.
location
.
href
);
var
lineIds
=
this
.
getUrlKey
(
"LineIds"
,
window
.
location
.
href
);
...
@@ -1457,7 +1486,7 @@ export default {
...
@@ -1457,7 +1486,7 @@ export default {
this
.
qMsg
.
areaId
=
Number
(
areaId
);
this
.
qMsg
.
areaId
=
Number
(
areaId
);
}
}
if
(
areaIds
)
{
if
(
areaIds
)
{
this
.
qMsg
.
areaIds
=
areaIds
.
split
(
','
).
map
(
item
=>
Number
(
item
));
this
.
qMsg
.
areaIds
=
areaIds
.
split
(
","
).
map
((
item
)
=>
Number
(
item
));
}
}
if
(
categoryId
)
{
if
(
categoryId
)
{
this
.
qMsg
.
categoryId
=
Number
(
categoryId
);
this
.
qMsg
.
categoryId
=
Number
(
categoryId
);
...
@@ -1497,8 +1526,8 @@ export default {
...
@@ -1497,8 +1526,8 @@ export default {
// pageSize: 10,
// pageSize: 10,
// priceOrderByField: 4,
// priceOrderByField: 4,
searchKey
:
""
,
// 搜索词
searchKey
:
""
,
// 搜索词
SeriesIds
:
""
,
SeriesIds
:
""
,
LineIds
:
""
,
LineIds
:
""
,
// startCityId: 0,
// startCityId: 0,
// PageCount: 0,
// PageCount: 0,
// TotalCount: 0,
// TotalCount: 0,
...
@@ -1506,7 +1535,7 @@ export default {
...
@@ -1506,7 +1535,7 @@ export default {
webSiteCategoryIds
:
""
,
// 分类Id
webSiteCategoryIds
:
""
,
// 分类Id
placeIds
:
""
,
// 目的地城市Id
placeIds
:
""
,
// 目的地城市Id
orderBy
:
0
// 排序 0默认 1价格升序 2价格降序
orderBy
:
0
,
// 排序 0默认 1价格升序 2价格降序
};
};
this
.
qMsg
=
msg
;
this
.
qMsg
=
msg
;
this
.
goSearchHandler
();
this
.
goSearchHandler
();
...
@@ -1532,14 +1561,14 @@ export default {
...
@@ -1532,14 +1561,14 @@ export default {
this
.
apipost
(
this
.
apipost
(
"ws_get_GetSearchArea"
,
"ws_get_GetSearchArea"
,
{},
{},
res
=>
{
(
res
)
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
if
(
res
.
data
.
resultCode
==
1
)
{
if
(
res
.
data
.
data
)
{
if
(
res
.
data
.
data
)
{
this
.
areas
=
res
.
data
.
data
.
AreaList
;
this
.
areas
=
res
.
data
.
data
.
AreaList
;
}
}
}
}
},
},
err
=>
{}
(
err
)
=>
{}
);
);
},
},
searchFocusHandler
()
{
searchFocusHandler
()
{
...
@@ -1606,11 +1635,7 @@ export default {
...
@@ -1606,11 +1635,7 @@ export default {
companyId
=
groupinfo
.
siteList
[
0
].
companyId
;
companyId
=
groupinfo
.
siteList
[
0
].
companyId
;
}
}
this
.
SearchResult
=
this
.
SearchResult
=
this
.
qMsg
.
startDate
+
this
.
qMsg
.
startDate
+
"-"
+
this
.
qMsg
.
endDate
+
" "
+
this
.
qMsg
.
searchKey
;
"-"
+
this
.
qMsg
.
endDate
+
" "
+
this
.
qMsg
.
searchKey
;
let
msg
=
{
let
msg
=
{
pageIndex
:
this
.
qMsg
.
pageIndex
,
pageIndex
:
this
.
qMsg
.
pageIndex
,
pageSize
:
this
.
qMsg
.
pageSize
,
pageSize
:
this
.
qMsg
.
pageSize
,
...
@@ -1632,8 +1657,8 @@ export default {
...
@@ -1632,8 +1657,8 @@ export default {
startCityId
:
this
.
qMsg
.
startCityId
,
startCityId
:
this
.
qMsg
.
startCityId
,
weekDayList
:
this
.
WeekDay
,
weekDayList
:
this
.
WeekDay
,
dayNumList
:
this
.
dayNum
,
dayNumList
:
this
.
dayNum
,
SeriesIds
:
this
.
qMsg
.
SeriesIds
,
SeriesIds
:
this
.
qMsg
.
SeriesIds
,
LineIds
:
this
.
qMsg
.
LineIds
,
LineIds
:
this
.
qMsg
.
LineIds
,
};
};
if
(
localStorage
.
b2bUser
)
{
if
(
localStorage
.
b2bUser
)
{
var
b2bUser
=
JSON
.
parse
(
window
.
localStorage
.
getItem
(
"b2bUser"
));
var
b2bUser
=
JSON
.
parse
(
window
.
localStorage
.
getItem
(
"b2bUser"
));
...
@@ -1644,7 +1669,7 @@ export default {
...
@@ -1644,7 +1669,7 @@ export default {
this
.
apipost
(
this
.
apipost
(
"b2c_get_GetB2C2024TravelProductPage"
,
"b2c_get_GetB2C2024TravelProductPage"
,
msg
,
msg
,
res
=>
{
(
res
)
=>
{
this
.
$q
.
loading
.
hide
();
this
.
$q
.
loading
.
hide
();
if
(
res
.
data
.
resultCode
==
1
)
{
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
qMsg
.
PageCount
=
res
.
data
.
data
.
pageCount
;
this
.
qMsg
.
PageCount
=
res
.
data
.
data
.
pageCount
;
...
@@ -1655,9 +1680,9 @@ export default {
...
@@ -1655,9 +1680,9 @@ export default {
}
}
}
}
},
},
err
=>
{}
(
err
)
=>
{}
);
);
}
}
,
}
}
,
};
};
</
script
>
</
script
>
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