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
00a84cdc
Commit
00a84cdc
authored
Mar 17, 2023
by
吴春
Browse files
Options
Browse Files
Download
Plain Diff
解决冲突
parents
8571f9e4
ab3f04b9
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
46 changed files
with
1493 additions
and
639 deletions
+1493
-639
car.png
src/assets/img/home/car.png
+0
-0
guanguang.png
src/assets/img/home/guanguang.png
+0
-0
hotel.png
src/assets/img/home/hotel.png
+0
-0
jindian.png
src/assets/img/home/jindian.png
+0
-0
product.js
src/boot/product.js
+2
-2
utils.js
src/boot/utils.js
+2
-2
base-switch.vue
src/components/base-switch.vue
+1
-0
orderPreview.vue
src/components/car/orderPreview.vue
+23
-20
style1.vue
src/components/goods/style1.vue
+6
-1
style2.vue
src/components/goods/style2.vue
+6
-9
photo.vue
src/components/label_other/photo.vue
+5
-2
diy-img-five.vue
src/components/label_picture/diy-img-five.vue
+20
-5
diy-img-four.vue
src/components/label_picture/diy-img-four.vue
+15
-9
diy-img-one.vue
src/components/label_picture/diy-img-one.vue
+219
-136
diy-img-two.vue
src/components/label_picture/diy-img-two.vue
+9
-19
city-category.vue
src/components/navs/city-category.vue
+11
-5
hor-big-one.vue
src/components/navs/hor-big-one.vue
+10
-1
search-top.vue
src/components/search_sf/search-top.vue
+704
-0
search_sf2.vue
src/components/search_sf/search_sf2.vue
+2
-1
kkday.vue
src/components/searchdata/kkday.vue
+152
-11
calendar.vue
src/components/trip/calendar.vue
+4
-4
About.vue
src/pages/About.vue
+5
-2
Index.vue
src/pages/Index.vue
+1
-1
orderForm.vue
src/pages/Pickuporder/orderForm.vue
+7
-7
details.vue
src/pages/ScenicSpotTicket/details.vue
+77
-74
orderForm.vue
src/pages/ScenicSpotTicket/orderForm.vue
+9
-7
Search.vue
src/pages/Search.vue
+4
-0
detailHotal.vue
src/pages/detailHotal.vue
+8
-164
detailsCar.vue
src/pages/detailsCar.vue
+32
-33
detailsNew.vue
src/pages/detailsNew.vue
+30
-16
orderForm.vue
src/pages/hotel/orderForm.vue
+14
-8
selectRoom.vue
src/pages/hotel/selectRoom.vue
+1
-1
login.vue
src/pages/login.vue
+10
-1
coupon.vue
src/pages/usercenter/coupon.vue
+8
-4
loginInfo.vue
src/pages/usercenter/loginInfo.vue
+1
-1
mobileUserCenter.vue
src/pages/usercenter/mobileUserCenter.vue
+1
-1
carPriceDetail.vue
src/pages/usercenter/order/carPriceDetail.vue
+1
-1
hotelMap.vue
src/pages/usercenter/order/hotelMap.vue
+7
-1
hotelPriceDetail.vue
src/pages/usercenter/order/hotelPriceDetail.vue
+23
-26
orderDetail.vue
src/pages/usercenter/order/orderDetail.vue
+16
-12
ticketMap.vue
src/pages/usercenter/order/ticketMap.vue
+3
-23
setAddress.vue
src/pages/usercenter/setAddress.vue
+11
-5
setInfo.vue
src/pages/usercenter/setInfo.vue
+5
-1
setUserInfo.vue
src/pages/usercenter/setUserInfo.vue
+7
-1
setUsersList.vue
src/pages/usercenter/setUsersList.vue
+19
-20
producttypeenum.js
src/utils/producttypeenum.js
+2
-2
No files found.
src/assets/img/home/car.png
0 → 100644
View file @
00a84cdc
553 Bytes
src/assets/img/home/guanguang.png
0 → 100644
View file @
00a84cdc
1.54 KB
src/assets/img/home/hotel.png
0 → 100644
View file @
00a84cdc
423 Bytes
src/assets/img/home/jindian.png
0 → 100644
View file @
00a84cdc
1.33 KB
src/boot/product.js
View file @
00a84cdc
...
...
@@ -12,13 +12,13 @@ const product = {
// 接送机,包车
url
=
"/detailCar/"
+
configId
}
else
if
(
t
===
3
)
{
url
=
"/detailHotal/"
+
configId
url
=
"/detailHotal/"
+
configId
+
'/'
+
productInfo
.
b2CPrice
}
else
if
(
t
===
2
)
{
url
=
"/detailsScenicSpotTicket/"
+
configId
}
else
if
(
t
===
1
)
{
url
=
"/detail/"
+
encodeURIComponent
(
productInfo
.
id
?
productInfo
.
id
:
productInfo
.
ID
)
+
"/"
+
0
+
"/"
+
configId
}
else
if
(
t
===
5
)
{
url
=
"/detailHotal/"
+
configId
+
'/'
+
productInfo
.
b2CPrice
url
=
"/detailHotal/"
+
configId
+
'/'
+
productInfo
.
b2CPrice
}
}
else
{
throw
new
Error
(
"參數不合法"
);
...
...
src/boot/utils.js
View file @
00a84cdc
...
...
@@ -26,7 +26,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
'
//'http://192.168.10.206:8015' ''http://192.168.10.11:8083' '
//domainUrl = 'http://192.168.10.206:8015
' //'http://192.168.10.206:8015' ''http://192.168.10.11:8083' '
}
var
obj
=
{
//主地址
...
...
@@ -41,7 +41,7 @@ Vue.prototype.domainManager = function() {
//获取当前域名
Vue
.
prototype
.
GetDomain
=
function
()
{
var
domainNameUrl
=
window
.
location
.
hostname
;
domainNameUrl
=
"
t
.oytour.com"
;
domainNameUrl
=
"
www
.oytour.com"
;
return
domainNameUrl
;
}
Vue
.
prototype
.
groupBy
=
function
(
array
,
f
)
{
...
...
src/components/base-switch.vue
View file @
00a84cdc
...
...
@@ -55,6 +55,7 @@ export default {
},
watch
:
{
value
:
function
()
{
console
.
log
(
'switch change'
,
this
.
value
)
this
.
inputSelect
=
this
.
value
}
},
...
...
src/components/car/orderPreview.vue
View file @
00a84cdc
...
...
@@ -20,7 +20,7 @@
</div>
</div>
</
template
>
<div
class=
"row no-wrap"
>
<
!-- <
div class="row no-wrap">
<div v-if="dataList.CarType!=1" :class="{'col':dataList.PlaceList.length>2}">
<div class="text-grey-6 f12 q-my-md">選擇上車範圍</div>
<div class="row wrap">
...
...
@@ -41,7 +41,7 @@
</div>
</div>
</div>
</div>
</div>
-->
<
template
v-if=
"TicketIds&&TicketIds.length>0"
>
<div
class=
"text-grey-6 f12 q-my-md"
>
選擇車類型
</div>
...
...
@@ -123,17 +123,14 @@
<span
class=
"f12 text-negative"
:class=
"{'q-mr-lg':$q.platform.is.desktop}"
v-if=
"(p.startDate&&!selectedCarObj)
||(p.startDate&&dataList.CarType==1&&(!selectedAirportObj||!unCarObj))
||(p.startDate&&dataList.CarType==2&&(!selectedAirportObj||!onCarObj))
||(p.startDate&&dataList.CarType==3&&(!onCarObj||!unCarObj))"
>
{{`請選擇上面的${dataList.CarType==3?'車類型、上車下車點':dataList.CarType==1?'機場、車類型、下車點':'機場、車類型、上車點'}`}}
||(p.startDate&&dataList.CarType==1&&!selectedAirportObj)
||(p.startDate&&dataList.CarType==2&&!selectedAirportObj)"
>
{{`請選擇上面的${dataList.CarType==3?'車類型':dataList.CarType==1?'機場、車類型':'機場、車類型'}`}}
</span>
</span>
<q-btn
color=
"primary"
label=
"立即訂購"
unelevated
class=
"q-px-lg"
:disable=
"sumPrice==0||!selectedCarObj
||(dataList.CarType!=3&&!selectedAirportObj)
||(dataList.CarType==1&&!unCarObj)||(dataList.CarType==2&&!onCarObj)
||(dataList.CarType==3&&(!onCarObj||!unCarObj))"
||(dataList.CarType!=3&&!selectedAirportObj)"
@
click=
"goOrderHandler"
/>
</div>
...
...
@@ -152,9 +149,9 @@ export default {
if
(
n
&&
n
.
startDate
){
this
.
chosenObj
.
startDate
=
n
.
startDate
;
let
arr
=
this
.
dataAll
.
filter
(
x
=>
x
.
Date
==
this
.
chosenObj
.
startDate
)
if
(
arr
.
length
>
0
){
this
.
TicketIds
=
arr
[
0
].
Price
.
map
(
x
=>
{
return
x
.
TicketId
})
// this.selectedCar = this.dataList.CarTypeList[0].Id
// this.selectedCarObj = this.dataList.CarTypeList[0]
}
}
this
.
calcMoney
()
...
...
@@ -170,6 +167,14 @@ export default {
deep
:
true
,
immediate
:
true
},
Month
:{
handler
(
n
,
o
)
{
this
.
selectedCarObj
=
this
.
dataList
.
CarTypeList
[
0
]
// this.getCarPriceData2()
},
deep
:
true
,
immediate
:
true
}
},
data
()
{
return
{
...
...
@@ -189,7 +194,7 @@ export default {
if
(
this
.
p
.
startDate
){
this
.
chosenObj
.
startDate
=
this
.
p
.
startDate
;
this
.
calcMoney
()
this
.
getCarPriceData2
()
//
this.getCarPriceData2()
}
this
.
getCarPriceData
()
},
...
...
@@ -312,13 +317,11 @@ export default {
remark
:
""
,
};
},
resetHandler
(
type
)
{
if
(
type
&&
type
!=
1
){
resetHandler
()
{
this
.
selectedCarObj
=
null
this
.
selectedAirportObj
=
null
this
.
onCarObj
=
null
this
.
unCarObj
=
null
}
setTimeout
(()
=>
{
this
.
p
=
{};
this
.
initModel
()
...
...
src/components/goods/style1.vue
View file @
00a84cdc
<
template
>
<div
class=
"rounded-borders overflow-hidden q-pb-md"
:style=
"
{'width':width,'background-color':bgColor}" v-if="product">
<q-img
:src=
"product.ImgCover"
spinner-color=
"white"
:ratio=
"16/9"
fit=
"cover"
>
<q-img
:src=
"product.ImgCover
==''?'http://www.oytour.com':product.ImgCover
"
spinner-color=
"white"
:ratio=
"16/9"
fit=
"cover"
>
<div
class=
"absolute-top text-shadow"
style=
"background: linear-gradient(rgba(0, 0, 0, 0.5),rgba(0, 0, 0, 0));"
>
{{
formatEnum
(
product
.
ProductType
)
}}
</div>
<template
v-slot:error
>
<div
class=
"absolute-full flex flex-center bg-grey-3 text-white"
>
暫無圖片
</div>
</
template
>
</q-img>
<div
class=
"ellipsis-2-lines text-body1 q-ma-md cursor-pointer"
style=
"height: 74px;"
@
click=
"CommonJump(product,{},'blank')"
>
{{ product.Title }}
</div>
<div
class=
"text-subtitle2 text-weight-bolder text-dark q-mx-md"
>
...
...
src/components/goods/style2.vue
View file @
00a84cdc
<
template
>
<!--
<div
class=
"rounded-borders overflow-hidden q-pb-md"
:style=
"
{'width':width,'background-color':bgColor}" v-if="product">
<q-img
:src=
"product.ImgCover"
spinner-color=
"white"
:ratio=
"16/9"
fit=
"cover"
/>
<div
class=
"ellipsis-2-lines text-body1 q-ma-md cursor-pointer"
>
{{
product
.
Title
}}{{
product
.
Title
}}{{
product
.
Title
}}{{
product
.
Title
}}{{
product
.
Title
}}
</div>
<div
class=
"text-subtitle2 text-weight-bolder text-dark q-mx-md"
>
<span>
CNY
{{
moneyFormat
(
product
.
B2CPrice
,
2
)
}}
</span>
<span
class=
"f12 q-ml-sm"
>
起
</span>
</div>
</div>
-->
<div
class=
"rounded-borders overflow-hidden"
v-if=
"product"
>
<div
class=
"row"
:style=
"
{'background-color':bgColor}" >
<q-img
:src=
"product.ImgCover"
spinner-color=
"dark"
:ratio=
"4/3"
fit=
"cover"
class=
" col-5"
>
<q-img
:src=
"product.ImgCover
==''?'http://www.oytour.com':product.ImgCover
"
spinner-color=
"dark"
:ratio=
"4/3"
fit=
"cover"
class=
" col-5"
>
<div
class=
"absolute-top text-shadow"
style=
"background: linear-gradient(rgba(0, 0, 0, 0.5),rgba(0, 0, 0, 0));"
>
{{
formatEnum
(
product
.
ProductType
)
}}
</div>
<template
v-slot:error
>
<div
class=
"absolute-full flex flex-center bg-grey-3 text-white"
>
暫無圖片
</div>
</
template
>
</q-img>
<div
class=
"q-px-md col"
>
<div
class=
"ellipsis-2-lines text-body1 q-ma-md cursor-pointer"
style=
"height:50px;"
@
click=
"CommonJump(product,{},'blank')"
>
{{ product.Title }}
</div>
...
...
src/components/label_other/photo.vue
View file @
00a84cdc
<
template
>
<section
class=
"photo1 section-block"
>
<div
class=
"photo"
v-if=
"plugData.ImageUrl"
>
<img
:src=
"plugData.ImageUrl"
:alt=
"plugData.Title"
/>
<div
class=
"photo mobile-only rounded-borders"
v-if=
"plugData.ImageUrl"
style=
"overflow:hidden;margin-bottom: 0px;"
>
<img
:src=
"plugData.ImageUrl"
:alt=
"plugData.Title"
style=
"height:20vh;width:auto;"
/>
</div>
<div
class=
"photo desktop-only"
v-if=
"plugData.ImageUrl"
>
<img
:src=
"plugData.ImageUrl"
:alt=
"plugData.Title"
/>
</div>
</section>
</
template
>
...
...
src/components/label_picture/diy-img-five.vue
View file @
00a84cdc
...
...
@@ -39,7 +39,7 @@
:key=
"index"
class=
"relative-position"
style=
" min-width: 200px;"
:class=
"
{ 'col':
current != index
&&
$q.platform.is.desktop, 'col-4': current == index
&&
$q.platform.is.desktop
}"
:class=
"
{ 'col':
((current != index
&&
$q.platform.is.desktop) || realCount!=5), 'col-4': current == index
&&
$q.platform.is.desktop
&&
realCount==5
}"
@mouseenter="hoverHandler(index)"
>
<q-img
...
...
@@ -55,10 +55,10 @@
{{
item
.
TripTitle
.
split
(
'|'
)[
0
]
}}
</a>
<div
class=
"q-mt-sm row items-center no-wrap overflow-hidden"
v-if=
"current==index && plugData.Title.indexOf('|tag')!=-1"
>
<q-chip
outline
color=
"grey-2"
class=
"f12 cursor-pointer"
text-color=
"grey-2"
>
觀光行程
</q-chip>
<q-chip
outline
color=
"grey-2"
class=
"f12 cursor-pointer"
text-color=
"grey-2"
>
熱門票券
</q-chip>
<q-chip
style=
"background:rgba(255,255,255,.3)"
cl
ass=
"f12 cursor-pointer"
text-color=
"grey-2"
>
更多在地體驗
</q-chip>
<div
class=
"q-mt-sm row items-center no-wrap overflow-hidden"
v-if=
"current==index && plugData.Title.indexOf('|tag')!=-1
&& realCount==5
"
>
<q-chip
outline
color=
"grey-2"
class=
"f12 cursor-pointer"
text-color=
"grey-2"
clickable
@
click=
"goProductListHandler(0,item.TripTitle.split('|')[1])"
>
觀光行程
</q-chip>
<q-chip
outline
color=
"grey-2"
class=
"f12 cursor-pointer"
text-color=
"grey-2"
clickable
@
click=
"goProductListHandler(1,item.TripTitle.split('|')[1])"
>
熱門票券
</q-chip>
<q-chip
style=
"background:rgba(255,255,255,.3)"
cl
ickable
class=
"f12 cursor-pointer"
text-color=
"grey-2"
@
click=
"CommonJump(`/city/$
{item.TripTitle.split('|')[1]}`,{},'blank')"
>更多在地體驗
</q-chip>
</div>
</div>
</div>
...
...
@@ -70,14 +70,20 @@
</template>
<
script
>
import
{
date
}
from
'quasar'
//圖片 - 6x1
export
default
{
props
:
[
"plugData"
],
data
()
{
return
{
current
:
0
,
realCount
:
0
};
},
created
()
{
//console.log(this.plugData.Details,this.plugData.Details.filter(x=> x.ImageUrl!=''))
this
.
realCount
=
this
.
plugData
.
Details
.
filter
(
x
=>
x
.
ImageUrl
!=
''
).
length
},
methods
:
{
hoverHandler
(
i
)
{
this
.
current
=
i
;
...
...
@@ -89,6 +95,15 @@ export default {
arr
=
strs
[
1
].
split
(
','
)
}
return
arr
},
goProductListHandler
(
t
,
id
){
let
CategoryName
=
t
==
0
?
'观光行程'
:
'景点门票'
this
.
CommonJump
(
'/search'
,{
areaId
:
id
,
qsearchDate
:
date
.
formatDate
(
new
Date
(),
'YYYY-MM-DD'
),
qsearchEndDate
:
date
.
formatDate
(
date
.
addToDate
(
new
Date
(),{
month
:
2
}),
'YYYY-MM-DD'
),
CategoryName
})
}
},
};
...
...
src/components/label_picture/diy-img-four.vue
View file @
00a84cdc
...
...
@@ -2,24 +2,31 @@
<!--圖片 - 4x4-->
<div
class=
"q-mt-md"
>
<section
class=
"pr1 section-block"
>
<div
class=
"mobile-only"
>
<h2
class=
"block-title"
>
{{
plugData
.
Title
}}
</h2>
<p
class=
"title-teaser"
>
{{
plugData
.
SubTitle
}}
</p>
</div>
<div
class=
"pr-banner-block"
>
<ul
class=
"pr-banner-list"
>
<li
v-for=
"(item,index) in plugData.Details"
:key=
"index"
>
<a
@
click=
"OpenNewUrl(item.LinkUrl
)"
:title=
"item.TripTitle"
<li
v-for=
"(item,index) in plugData.Details"
:key=
"index"
class=
"relative-position"
>
<a
@
click=
"OpenNewUrl(item.LinkUrl
+'/0')"
class=
"rounded-borders"
:title=
"item.TripTitle"
:style=
"
{backgroundImage:`url('${(item.TripImageUrl
&&
item.TripImageUrl!=''?item.TripImageUrl:item.ImageUrl)}')`}">
</a>
<div
class=
"absolute absolute-bottom-left absolute-bottom-right rounded-borders q-pa-md text-shadow text-subtitle2 text-white"
style=
" background: linear-gradient(rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.5))"
>
{{
item
.
TripTitle
}}
</div>
</li>
</ul>
</div>
<div
class=
"pr-text-block"
>
<div
class=
"pr-text-block
light-shadow rounded-borders desktop-only
"
>
<h2
class=
"block-title"
>
{{
plugData
.
Title
}}
</h2>
<p
class=
"title-teaser"
>
{{
plugData
.
SubTitle
}}
</p>
<ul
class=
"pr-text-list"
>
<li
v-for=
"(item,index) in plugData.Details"
:key=
"index"
>
<a
@
click=
"OpenNewUrl(item.LinkUrl)"
>
<h3
class=
"
pd-title
"
>
{{
item
.
TripTitle
}}
</h3>
<div
class=
"price"
>
<small
class=
"
unit"
>
NT$
</small>
{{
item
.
Price
}}
<s
mall
class=
"unit"
>
元起
</small
>
<a
@
click=
"OpenNewUrl(item.LinkUrl
+'/0'
)"
>
<h3
class=
"
text-subtitle2
"
>
{{
item
.
TripTitle
}}
</h3>
<div
class=
"price
text-dark
"
>
<small
class=
"
text-subtitle2 q-mr-sm"
>
CNY
</small>
<s
pan
class=
"text-subtitle2 text-weight-bolder text-dark"
>
{{
moneyFormat
(
item
.
Price
,
2
)
}}
</span
>
</div>
</a>
</li>
...
...
@@ -162,7 +169,6 @@
color
:
#00afff
;
font-size
:
20px
;
font-weight
:
700
;
font-family
:
"oswald"
;
}
.pr1
.pr-text-block
.pr-text-list
.price
.unit
{
...
...
src/components/label_picture/diy-img-one.vue
View file @
00a84cdc
...
...
@@ -2,66 +2,150 @@
<!--圖片 - 3x1-->
<div>
<section
class=
"tour2 section-block"
>
<h2
class=
"block-title"
>
{{
plugData
.
Title
}}
</h2>
<p
class=
"title-teaser"
>
{{
plugData
.
SubTitle
}}
</p>
<ul
class=
"pd-list"
>
<li
class=
"pd-box"
v-for=
"(item,index) in plugData.Details"
:key=
"index"
v-if=
"item.TripImageUrl||item.ImageUrl"
>
<a
@
click=
"OpenNewUrl(item.LinkUrl)"
:title=
"item.TripTitle"
class=
"pd-link"
>
<div
class=
"pd-img"
:style=
"
{backgroundImage:`url('${(item.TripImageUrl
&&
item.TripImageUrl!=''?item.TripImageUrl:item.ImageUrl)}')`}">
<h2
class=
"block-title"
>
{{
plugData
.
Title
.
split
(
'|'
)[
0
]
}}
</h2>
<p
class=
"title-teaser"
>
{{
plugData
.
SubTitle
}}
</p>
<ul
class=
"pd-list"
v-if=
"showType == 1"
>
<li
class=
"pd-box"
v-for=
"(item, index) in plugData.Details"
:key=
"index"
v-if=
"item.TripImageUrl || item.ImageUrl"
>
<a
@
click=
"OpenNewUrl(item.LinkUrl)"
:title=
"item.TripTitle"
class=
"pd-link"
>
<div
class=
"pd-img"
:style=
"
{
backgroundImage: `url('${
item.TripImageUrl
&&
item.TripImageUrl != ''
? item.TripImageUrl
: item.ImageUrl
}')`,
}"
>
<div
class=
"pd-price"
>
<div
class=
"price"
>
{{
item
.
DayNum
}}
<small
class=
"unit"
>
天
</small>
{{
item
.
Price
}}
{{
item
.
DayNum
}}
<small
class=
"unit"
>
天
</small>
{{
item
.
Price
}}
<small
class=
"unit"
>
元起
</small>
</div>
</div>
</div>
<div
class=
"pd-content"
>
<h3
class=
"pd-title"
>
{{
item
.
TripTitle
}}
{{
item
.
TripTitle
}}
</h3>
</div>
</a>
</li>
</ul>
<div
class=
"q-col-gutter-md q-mt-md"
:class=
"
{ row: $q.platform.is.desktop, '': $q.platform.is.mobile }"
v-else-if="showType == 2"
>
<template
v-for=
"(item, index) in plugData.Details"
>
<div
class=
"relative-position"
:key=
"index"
:class=
"
{ 'col-4 column': $q.platform.is.desktop }"
v-if="item.ImageUrl"
>
<div
class=
"absolute-top-left q-pa-sm"
style=
"background: linear-gradient(rgba(0, 0, 0, 0.5),rgba(0, 0, 0, 0));top: 16px;left: 16px;right: 0;border-radius: 12px;z-index: 1;"
>
<div
class=
"text-grey-1"
style=
"text-shadow: 2px 2px 5px rgba(0, 0, 0, 0.5)"
>
<q-icon
name=
"iconfont iconhongqi"
size=
"16px"
/>
<span
class=
"q-ml-sm"
>
{{
item
.
DayNum
}}
天行程
</span>
</div>
</div>
<q-img
:src=
"item.ImageUrl"
:ratio=
"16 / 9"
spinner-color=
"primary"
spinner-size=
"20px"
style=
"border-radius: 12px"
/>
<div
class=
"col"
>
<div
class=
"q-mt-md text-subtitle1 text-dark ellipsis-2-lines cursor-pointer"
@
click=
"OpenNewUrl(item.LinkUrl+'/0')"
>
<!-- -->
{{
item
.
TripTitle
}}
</div>
<div
class=
"row items-center q-col-gutter-sm q-mt-sm"
>
<q-chip
style=
"background: rgba(193, 0, 21, 0.1)"
size=
"sm"
class=
"f12 rounded-borders text-negative"
label=
"急速確認"
/>
</div>
</div>
<div
class=
"q-mt-sm"
>
<div
class=
"text-subtitle2 text-weight-bolder text-dark"
>
<span>
CNY
{{
item
.
Price
}}
</span>
<span
class=
"text-grey-8 f12 q-ml-sm"
>
起
</span>
</div>
</div>
</div>
</
template
>
</div>
</section>
</div>
</template>
<
script
>
export
default
{
props
:
[
"plugData"
]
export
default
{
props
:
[
"plugData"
],
data
()
{
return
{
showType
:
1
,
};
},
mounted
()
{
if
(
this
.
plugData
)
{
let
t
=
this
.
plugData
.
Title
.
split
(
"|"
);
this
.
showType
=
t
.
length
>
1
?
parseInt
(
t
[
1
])
:
1
;
}
},
};
</
script
>
<
style
>
.tour2
{}
.tour2
{
}
.tour2
.block-title
{
.tour2
.block-title
{
font-size
:
22px
;
font-weight
:
600
;
padding
:
0
;
margin
:
0
;
line-height
:
unset
;
}
}
.tour2
.title-teaser
{
.tour2
.title-teaser
{
margin-bottom
:
10px
;
font-size
:
16px
;
color
:
#999
;
}
}
.tour2
.pd-list
{
.tour2
.pd-list
{
display
:
flex
;
flex-flow
:
row
wrap
;
padding
:
0
;
margin
:
0
;
}
}
.tour2
.pd-list
.pd-box
{
.tour2
.pd-list
.pd-box
{
padding
:
0
;
margin
:
0
;
margin-right
:
20px
;
...
...
@@ -79,19 +163,19 @@
list-style
:
none
;
border-radius
:
4px
;
overflow
:
hidden
;
}
}
.tour2
.pd-list
.pd-box
:last-child
{
.tour2
.pd-list
.pd-box
:last-child
{
margin-right
:
0px
;
}
}
a
{
a
{
cursor
:
pointer
;
text-decoration
:
none
;
color
:
var
(
--q-color-primary
);
}
}
.tour2
.pd-box
.pd-img
{
.tour2
.pd-box
.pd-img
{
position
:
relative
;
width
:
100%
;
padding-bottom
:
66.237%
;
...
...
@@ -100,9 +184,9 @@
-o-background-size
:
cover
;
background-size
:
cover
;
background-position
:
center
;
}
}
.tour2
.pd-box
.pd-img
.pd-price
{
.tour2
.pd-box
.pd-img
.pd-price
{
position
:
absolute
;
right
:
0
;
bottom
:
0
;
...
...
@@ -110,9 +194,9 @@
width
:
100%
;
border-bottom
:
4px
solid
var
(
--q-color-primary
);
text-align
:
right
;
}
}
.tour2
.pd-box
.pd-img
.pd-price
.price
{
.tour2
.pd-box
.pd-img
.pd-price
.price
{
display
:
inline-block
;
padding
:
4px
12px
0
;
color
:
#fff
;
...
...
@@ -125,25 +209,25 @@
-moz-background-clip
:
padding
;
border-radius
:
5px
0
0
;
background-clip
:
padding-box
;
}
}
.tour2
.pd-box
.pd-img
.pd-price
.price
small
{
.tour2
.pd-box
.pd-img
.pd-price
.price
small
{
padding
:
0
4px
;
font-size
:
14px
;
}
}
.tour2
.pd-box
.pd-content
{
.tour2
.pd-box
.pd-content
{
padding
:
15px
15px
20px
;
}
}
.tour2
.pd-box
.pd-title
{
.tour2
.pd-box
.pd-title
{
font-size
:
15px
;
line-height
:
1.5
;
font-weight
:
400
;
color
:
#333
;
}
}
@media
only
screen
and
(
max-width
:
1200px
)
{
@media
only
screen
and
(
max-width
:
1200px
)
{
.tour2
.pd-list
.pd-box
{
flex-basis
:
calc
(
50%
-
10px
)
!important
;
}
...
...
@@ -151,20 +235,19 @@
.tour2
.pd-list
.pd-box
:nth-child
(
even
)
{
margin-right
:
0
!important
;
}
}
}
@media
only
screen
and
(
min-width
:
768px
)
{
@media
only
screen
and
(
min-width
:
768px
)
{
.pd-box
:hover
{
transform
:
translate
(
0
,
-4px
)
!important
;
box-shadow
:
0
4px
25px
0
rgba
(
0
,
0
,
0
,
0.2
),
0
0
0
0
rgba
(
0
,
0
,
0
,
0.1
)
!important
;
}
}
}
@media
only
screen
and
(
max-width
:
425px
)
{
@media
only
screen
and
(
max-width
:
425px
)
{
.tour2
.pd-list
.pd-box
{
flex-basis
:
100%
!important
;
margin-right
:
0
!important
;
}
}
}
</
style
>
src/components/label_picture/diy-img-two.vue
View file @
00a84cdc
...
...
@@ -2,7 +2,7 @@
<!--圖片 - 4x1-->
<div
:class=
"
{'q-mt-md':plugData.Title.split('|')[0]=='','q-mt-xl':plugData.Title.split('|')[0]!=''}">
<section
class=
"tour1 section-block"
v-if=
"plugData"
>
<h2
class=
"block-title"
>
{{
plugData
.
Title
.
split
(
"|"
)[
0
]
}}
</h2>
<h2
class=
"block-title"
style=
"line-height: normal !important;"
>
{{
plugData
.
Title
.
split
(
"|"
)[
0
]
}}
</h2>
<p
class=
"title-teaser"
>
{{
plugData
.
SubTitle
}}
</p>
<ul
class=
"pd-list"
v-if=
"showType == 1"
>
<li
...
...
@@ -12,7 +12,7 @@
v-if=
"item.TripImageUrl"
>
<a
@
click=
"OpenNewUrl(item
.LinkUrl
)"
@
click=
"OpenNewUrl(item)"
:title=
"item.TripTitle"
class=
"pd-link"
>
...
...
@@ -40,27 +40,17 @@
</a>
</li>
</ul>
<div
class=
"
row q-col-gutter-md"
style=
"item
"
v-else-if=
"showType == 2"
>
<div
class=
"
q-col-gutter-md q-mt-md"
:class=
"
{'row':$q.platform.is.desktop,'':$q.platform.is.mobile}
" v-else-if="showType == 2">
<template
v-for=
"(item, index) in plugData.Details"
>
<div
class=
"
col-3 relative-position column
"
class=
"
relative-position
"
:key=
"index"
:class=
"
{'col-3 column':$q.platform.is.desktop}"
v-if="item.TripImageUrl"
>
<div
class=
"absolute-top-left q-pa-sm"
style=
"
background: linear-gradient(
to bottom,
rgba(0, 0, 0, 0.5),
rgba(0, 0, 0, 0)
);
top: 16px;
left: 16px;
right: 0;
border-radius: 12px;
z-index: 1;
"
style=
"background: linear-gradient(rgba(0, 0, 0, 0.5),rgba(0, 0, 0, 0));top: 16px;left: 16px;right: 0;border-radius: 12px;z-index: 1;"
>
<div
class=
"text-grey-4"
...
...
@@ -78,7 +68,7 @@
style=
"border-radius: 12px"
/>
<div
class=
"col"
>
<div
class=
"q-mt-md text-subtitle1 text-dark ellipsis-2-lines cursor-pointer"
@
click=
"OpenNewUrl(item
.LinkUrl
)"
>
<div
class=
"q-mt-md text-subtitle1 text-dark ellipsis-2-lines cursor-pointer"
@
click=
"OpenNewUrl(item)"
>
<!-- -->
{{
item
.
TripTitle
}}
</div>
...
...
@@ -127,8 +117,8 @@ export default {
}
},
methods
:
{
OpenNewUrl
(
url
){
window
.
location
.
href
=
url
OpenNewUrl
(
item
){
this
.
CommonJump
(
'/detail/home/0/'
+
item
.
TripId
,{},
'blank'
)
}
},
};
...
...
src/components/navs/city-category.vue
View file @
00a84cdc
...
...
@@ -103,6 +103,9 @@
.address-btn
{
margin
:
0
10px
0
44px
;
}
.address-btn
:hover
{
background
:
#F5F5F5
;
}
.all-type
{
margin-left
:
10px
;
}
...
...
@@ -130,11 +133,11 @@
font-weight
:
400
;
}
.category-l2
:hover
{
background
:
#ee4454
;
background
:
var
(
--q-color-primary
)
;
color
:
#fff
;
}
.category-l2-select
{
background
:
#ee4454
;
background
:
var
(
--q-color-primary
)
;
color
:
#fff
;
}
.category-l3
{
...
...
@@ -159,6 +162,10 @@
.category-btn
{
width
:
100px
;
}
.category-icon
{
width
:
16px
;
height
:
16px
;
}
</
style
>
<
template
>
<div>
...
...
@@ -283,6 +290,7 @@
:key=
"i"
v-for=
"(x, i) in dataList.CategoryList"
>
<img
class=
"category-icon"
:src=
"require(`../../assets/img/home/$
{['guanguang','jindian','hotel','car'][i]}.png`)"/>
{{
x
.
CategoryName
}}
</div>
</div>
...
...
@@ -471,9 +479,7 @@ export default {
}
},
handleSelectArea
(
item
)
{
this
.
CommonJump
(
"/city/"
+
item
.
Id
,
{
id
:
item
.
Id
,
});
this
.
CommonJump
(
"/city/"
+
item
.
Id
);
},
handleCategoryChage
(
item
)
{
this
.
CommonJump
(
"/search"
,
{
...
...
src/components/navs/hor-big-one.vue
View file @
00a84cdc
...
...
@@ -187,6 +187,9 @@
class=
"q-mr-lg q-ml-sm"
@
click=
"CommonJump('/index',
{})"
/>
</div>
<!--
<div
style=
"transform:scale(0.6,0.6)"
>
-->
<searchSf2
v-if=
"!isHome"
:plugData=
"plugData"
></searchSf2>
<!--
</div>
-->
<!-- pc -->
<div
v-if=
"$q.platform.is.desktop"
>
<q-btn
label=
"繁體中文"
flat
>
...
...
@@ -342,8 +345,9 @@
import
popup
from
"../props/index"
;
import
CityCategoryMobile
from
"./city-category-mobile.vue"
;
import
cityCategory
from
"./city-category.vue"
;
import
searchSf2
from
'../search_sf/search-top.vue'
export
default
{
components
:
{
cityCategory
,
CityCategoryMobile
,
popup
},
components
:
{
cityCategory
,
CityCategoryMobile
,
popup
,
searchSf2
},
props
:
{
baseData
:
{
type
:
Object
,
...
...
@@ -360,6 +364,7 @@ export default {
},
data
()
{
return
{
plugData
:
{
details
:
[],
Title
:
''
},
showDialog
:
false
,
searchDate
:
""
,
searchEndDate
:
""
,
...
...
@@ -375,6 +380,7 @@ export default {
selectedArea
:
[],
selectedAreaId
:
""
,
isHome
:
false
,
isSearch
:
true
,
};
},
watch
:
{
...
...
@@ -390,7 +396,9 @@ export default {
},
$route
:
{
handler
:
function
(
val
,
oldVal
)
{
console
.
log
(
'val'
,
val
,
oldVal
)
this
.
isHome
=
val
.
path
===
"/"
||
val
.
path
===
"/index"
;
// this.isSearch = val.path === "/search";
},
// 深度观察监听
deep
:
true
,
...
...
@@ -408,6 +416,7 @@ export default {
this
.
isHome
=
this
.
$router
.
history
.
current
.
path
===
"/"
||
this
.
$router
.
history
.
current
.
path
===
"/index"
;
// this.isSearch = this.$router.history.current.path === "/search";
console
.
log
(
'JSON.parse(window.localStorage.getItem("b2bUser"))'
,
JSON
.
parse
(
window
.
localStorage
.
getItem
(
"b2bUser"
))
...
...
src/components/search_sf/search-top.vue
0 → 100644
View file @
00a84cdc
This diff is collapsed.
Click to expand it.
src/components/search_sf/search_sf2.vue
View file @
00a84cdc
...
...
@@ -170,7 +170,8 @@
<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"
/>
<
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
>
</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>
...
...
src/components/searchdata/kkday.vue
View file @
00a84cdc
<
template
>
<div
class=
"items-start
q-mt-lg
travel-list"
:class=
"$q.platform.is.desktop ? 'row' : 'colmuns'"
class=
"items-start travel-list"
:class=
"$q.platform.is.desktop ? 'row
q-mt-lg
' : 'colmuns'"
>
<div
class=
"col-3"
:class=
"$q.platform.is.desktop ? 'q-mr-lg' : 'q-ma-md'"
>
<!-- 移动端 -->
<div
v-if=
"$q.platform.is.mobile"
>
<div
class=
"flex"
>
<div
@
click=
"showAddress = true"
class=
"nav-item"
>
目的地
<i
class=
"iconfont iconarrowdown text-grey-6"
style=
"margin-top: 3px; margin-left:4px"
></i></div>
<div
@
click=
"showCategory = true"
class=
"nav-item"
>
商品類別
<i
class=
"iconfont iconarrowdown text-grey-6"
style=
"margin-top: 3px; margin-left:4px"
></i></div>
<div
@
click=
"showDate = true"
class=
"nav-item"
>
旅程時間
<i
class=
"iconfont iconarrowdown text-grey-6"
style=
"margin-top: 3px; margin-left:4px"
></i></div>
<div
@
click=
"showPrice = true"
class=
"nav-item"
>
價錢/时间
<i
class=
"iconfont iconarrowdown text-grey-6"
style=
"margin-top: 3px; margin-left:4px"
></i></div>
</div>
<popup
mode=
"top"
v-model=
"showAddress"
>
<q-card
flat
class=
"rounded-borders q-py-md"
>
<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
ref=
"area"
:nodes=
"areaList"
no-connectors
node-key=
"Id"
label-key=
"Name"
tick-strategy=
"leaf"
@
update:ticked=
"handleAreaTicked"
:ticked=
"areaTicked"
text-color=
"#666"
no-nodes-label=
" "
no-results-label=
" "
/>
</q-card>
</popup>
<popup
mode=
"top"
v-model=
"showCategory"
>
<q-card
flat
class=
"rounded-borders q-py-md q-mt-lg"
>
<div
class=
"text-subtitle1 text-weight-bold q-mx-md"
>
所有商品類別
</div>
<q-tree
ref=
"category"
:nodes=
"goodsType"
no-connectors
node-key=
"Id"
label-key=
"CategoryName"
tick-strategy=
"leaf"
@
update:ticked=
"handleTicked"
:ticked=
"ticked"
/>
</q-card></popup>
<popup
mode=
"top"
v-model=
"showDate"
>
<q-card
flat
class=
"rounded-borders q-mt-lg overflow-hidden"
>
<div
class=
"q-my-sm q-mx-lg f20 bold"
>
旅程時間
</div>
<div
class=
"addr-list q-px-md q-py-sm row items-center"
v-for=
"(y, yi) in dayArray"
:key=
"yi"
>
<q-checkbox
v-model=
"y.checked"
size=
"xs"
@
input=
"changeTripDayHandler"
/>
<span
class=
"col text-grey-8 text-subtitle2 text-regular q-mt-xs"
style=
"font-weight: 400"
>
{{
y
.
text
}}
</span>
</div>
</q-card>
</popup>
<popup
mode=
"top"
v-model=
"showPrice"
>
<q-card
flat
class=
"rounded-borders q-pa-md q-mt-lg"
>
<div
class=
"text-subtitle1 text-weight-bold"
>
價錢篩選(CNY)
</div>
<div
class=
"q-mt-md text-grey-6 text-subtitle2 text-regular"
>
{{
msg
.
priceRange
.
min
}}
-
{{
msg
.
priceRange
.
max
}}
</div>
<q-range
v-model=
"msg.priceRange"
:min=
"priceModel.min"
:max=
"priceModel.max"
:step=
"1"
@
change=
"testHandler"
color=
"primary"
class=
"q-mt-md"
/>
</q-card><q-card
flat
class=
"rounded-borders q-mt-lg row no-padding q-mb-lg"
>
<div
class=
"q-px-md q-py-sm "
style=
"border-right: 1px solid #eee; border-radius: 0 !important"
>
<q-icon
name=
"iconfont iconigw-l-date-trade"
size=
"24px"
/>
</div>
<div
class=
"row items-center justify-center col"
>
<span
class=
"text-grey-8"
>
{{
msg
.
startDate
?
`${msg.startDate
}
- ${msg.endDate
}
`
:
"篩選出發日期"
}}
<
/span
>
<
q
-
popup
-
proxy
:
offset
=
"[0, 0]"
ref
=
"qDateProxy"
>
<
div
>
<
q
-
date
v
-
model
=
"dateRange"
:
options
=
"optionsFn"
range
@
range
-
end
=
"dateRangeHandler"
mask
=
"YYYY-MM-DD"
><
/q-date
>
<
/div
>
<
/q-popup-proxy
>
<
/div
>
<
/q-card></
popup
>
<
/div
>
<
div
v
-
else
class
=
"col-3"
:
class
=
"$q.platform.is.desktop ? 'q-mr-lg' : 'q-ma-md'"
>
<
q
-
card
flat
class
=
"rounded-borders q-py-md"
>
<
div
class
=
"text-subtitle1 text-weight-bold q-mx-md"
>
篩選目的地
<
/div
>
<
q
-
input
...
...
@@ -271,11 +388,17 @@
</template>
<script>
import popup from "
..
/
props
/
index
";
import { date
}
from "
quasar
";
export default {
props: ["
qMsg
"],
components: {popup
}
,
data() {
return {
showAddress: false,
showCategory: false,
showDate: false,
showPrice: false,
areaTicked: [],
ticked: [],
selected: [],
...
...
@@ -388,6 +511,9 @@ export default {
this.goSearchHandler();
}
,
mounted() {
console.log('kkday', this.msg)
this.areaTicked = this.msg.areaId ? [this.msg.areaId] : (this.msg.areaIds ? this.msg.areaIds : []);
this.msg.placeIds = this.getChoseAddressCity().join("
,
");
var CategoryName = this.getUrlKey("
CategoryName
", window.location.href);
if (CategoryName) {
let list = this.goodsType.find(
...
...
@@ -419,6 +545,7 @@ export default {
this.areaTicked = target;
console.log("
this
.
areaTicked
", target);
this.msg.placeIds = this.getChoseAddressCity().join("
,
");
console.log('handleAreaTicked', this.areaTicked, this.msg.placeIds)
this.goSearchHandler();
}
,
initAreaList() {
...
...
@@ -454,7 +581,7 @@ export default {
if (this.msg.areaId) {
this.$nextTick(() => {
this.$refs.area.setTicked([...new Set(arr)], true);
this.$refs.area
?
.setTicked([...new Set(arr)], true);
}
);
}
}
,
...
...
@@ -578,7 +705,7 @@ export default {
this.goodsTypeJSON = JSON.stringify(this.goodsType);
if (this.msg.categoryId) {
this.$nextTick(() => {
this.$refs.category.setTicked([...new Set(arr)], true);
this.$refs.category
?
.setTicked([...new Set(arr)], true);
}
);
}
}
,
...
...
@@ -772,11 +899,11 @@ export default {
this.goodsType = category.children;
// this.ticked = categoryInfo;
console.log("
this
.
areaListJSONTMP
", this.areaListJSONTMP, this.areaList);
this.priceModel = { min: priceInfo.minPrice, max: priceInfo.maxPrice
}
;
this.msg.priceRange = {
min: priceInfo.minPrice,
max: priceInfo.maxPrice,
}
;
//
this.priceModel = { min: priceInfo.minPrice, max: priceInfo.maxPrice
}
;
//
this.msg.priceRange = {
//
min: priceInfo.minPrice,
//
max: priceInfo.maxPrice,
//
}
;
let arr = [];
dayInfo.forEach((item) => {
if (item < 6) {
...
...
@@ -811,9 +938,23 @@ export default {
background: #f1416c1a;
}
</style>
<style scoped>
<style lang="
scss
" scoped>
::v-deep .q-menu {
width: 100% !important;
}
.price-stuff {
font-size: 12px;
margin-left: 4px;
}
.nav-item {
width: 25%;
height: 40px;
line-height: 40px;
text-align: center;
background: #fff;
font-weight: bold;
}
.nav-item:hover {
background: #f5f5f5;
}
</style>
src/components/trip/calendar.vue
View file @
00a84cdc
...
...
@@ -122,10 +122,10 @@ export default {
},
methods
:
{
init
()
{
this
.
createChosenDateHandler
();
let
startDate
=
this
.
prices
.
length
>
0
&&
this
.
prices
[
0
].
startDate
?
this
.
prices
[
0
].
startDate
:
''
let
firstMonth
=
date
.
formatDate
(
new
Date
(
this
.
prices
[
0
].
startDate
),
new
Date
(
startDate
),
"YYYY/MM"
);
console
.
log
(
firstMonth
)
...
...
@@ -150,6 +150,8 @@ export default {
},
changeShowMonthHandler
(
i
)
{
this
.
currentMonth
+=
i
;
let
value
=
this
.
months
[
this
.
currentMonth
].
value
this
.
$emit
(
'getQuotationData'
,
value
)
this
.
changeMonthHandler
();
},
changeMonthHandler
()
{
...
...
@@ -178,8 +180,6 @@ export default {
value
:
""
,
});
}
let
value
=
this
.
months
[
this
.
currentMonth
].
value
this
.
$emit
(
'getQuotationData'
,
value
)
},
chosenDateHandler
(
item
)
{
if
(
item
.
price
&&
item
.
price
.
remainNum
>
0
)
{
...
...
src/pages/About.vue
View file @
00a84cdc
<
style
lang=
"scss"
scoped
>
/
deep
/
.scroll
{
overflow
:
inherit
;
}
.banner
{
width
:
100%
;
}
...
...
@@ -70,7 +73,7 @@
.circle
{
width
:
32px
;
height
:
32px
;
background
:
$primary
;
background
:
var
(
--
q-color-primary
)
;
border-radius
:
50%
;
text-align
:
center
;
color
:
#fff
;
...
...
@@ -227,7 +230,7 @@ margin-right: 70px;
control-type=
"regular"
padding
arrows
height=
"1
00
px"
height=
"1
15
px"
flat
class=
"bg-transparent rounded-borders q-mt-md"
>
...
...
src/pages/Index.vue
View file @
00a84cdc
...
...
@@ -266,7 +266,7 @@
></travelList>
</div>
</
template
>
<end-page
v-if=
"isPic"
></end-page>
<end-page
v-if=
"isPic"
class=
"desktop-only"
></end-page>
</q-page>
</template>
...
...
src/pages/Pickuporder/orderForm.vue
View file @
00a84cdc
...
...
@@ -521,13 +521,6 @@
style
=
"border: none; border-top: 1px dashed #eee !important"
class
=
"bg-transparent q-mb-sm"
/>
<
div
class
=
"row q-mb-sm items-center"
>
<
div
class
=
"col"
>
總金額
<
/div
>
<
div
class
=
"text-subtitle2 text-weight-bolder text-primary"
>
CNY
{{
moneyFormat
(
sumPrice
,
2
)
}}
<
/div
>
<
/div
>
<
hr
style
=
"border:none;border-top:1px dashed #EEE !important;"
class
=
"bg-transparent q-mb-sm"
/>
<
div
class
=
"row q-mb-sm items-center"
>
<
div
class
=
"col"
>
優惠金額
<
/div
>
<
div
...
...
@@ -539,6 +532,13 @@
<
div
class
=
"text-grey-5"
v
-
else
>
暫無優惠
<
/div
>
<
/div
>
<
hr
style
=
"border:none;border-top:1px dashed #EEE !important;"
class
=
"bg-transparent q-mb-sm"
/>
<
div
class
=
"row q-mb-sm items-center"
>
<
div
class
=
"col"
>
總金額
<
/div
>
<
div
class
=
"text-subtitle2 text-weight-bolder text-primary"
>
CNY
{{
moneyFormat
(
sumPrice
,
2
)
}}
<
/div
>
<
/div
>
<
hr
style
=
"border:none;border-top:1px dashed #EEE !important;"
class
=
"bg-transparent q-mb-sm"
/>
<
div
class
=
"row q-mb-sm items-center"
v
-
if
=
"chosenObj.Count>0"
>
<
div
class
=
"col"
>
支付金額
<
/div
>
<
div
class
=
"text-h6 text-weight-bolder text-primary product-price"
>
CNY
{{
moneyFormat
(
parameters
.
Money
,
2
)
}}
<
/div
>
...
...
src/pages/ScenicSpotTicket/details.vue
View file @
00a84cdc
This diff is collapsed.
Click to expand it.
src/pages/ScenicSpotTicket/orderForm.vue
View file @
00a84cdc
...
...
@@ -286,13 +286,8 @@
style=
"border: none; border-top: 1px dashed #eee !important"
class=
"bg-transparent q-mb-sm"
/>
<div
class=
"row q-mb-sm items-center"
>
<div
class=
"col"
>
總金額
</div>
<div
class=
"text-subtitle2 text-weight-bolder text-primary"
>
CNY {{ moneyFormat(sumPrice, 2) }}
</div>
</div>
<hr
style=
"border:none;border-top:1px dashed #EEE !important;"
class=
"bg-transparent q-mb-sm"
/>
<div
class=
"row q-mb-sm items-center"
v-if=
"parameters.MailingState==2&¶meters.MailingMoney>0"
>
<div
class=
"col"
>
邮寄费
</div>
<div
...
...
@@ -311,6 +306,13 @@
</div>
<div
class=
"text-grey-5"
v-else
>
暫無優惠
</div>
</div>
<hr
style=
"border:none;border-top:1px dashed #EEE !important;"
class=
"bg-transparent q-mb-sm"
/>
<div
class=
"row q-mb-sm items-center"
>
<div
class=
"col"
>
總金額
</div>
<div
class=
"text-subtitle2 text-weight-bolder text-primary"
>
CNY {{ moneyFormat(sumPrice, 2) }}
</div>
</div>
<div
class=
"row q-mb-sm items-center"
>
<div
class=
"col"
>
支付金額
</div>
<div
class=
"text-h6 text-weight-bolder text-primary product-price"
>
...
...
src/pages/Search.vue
View file @
00a84cdc
...
...
@@ -1456,6 +1456,7 @@ export default {
var
qsearchDate
=
this
.
getUrlKey
(
"qsearchDate"
,
window
.
location
.
href
);
var
qsearchEndDate
=
this
.
getUrlKey
(
"qsearchEndDate"
,
window
.
location
.
href
);
var
areaId
=
this
.
getUrlKey
(
"areaId"
,
window
.
location
.
href
);
var
areaIds
=
this
.
getUrlKey
(
"areaIds"
,
window
.
location
.
href
)
var
categoryId
=
this
.
getUrlKey
(
"categoryId"
,
window
.
location
.
href
);
if
(
qsearchKey
)
{
this
.
qMsg
.
searchKey
=
qsearchKey
;
...
...
@@ -1469,6 +1470,9 @@ export default {
if
(
areaId
)
{
this
.
qMsg
.
areaId
=
Number
(
areaId
);
}
if
(
areaIds
)
{
this
.
qMsg
.
areaIds
=
areaIds
.
split
(
','
).
map
(
item
=>
Number
(
item
));
}
if
(
categoryId
)
{
this
.
qMsg
.
categoryId
=
Number
(
categoryId
);
}
...
...
src/pages/detailHotal.vue
View file @
00a84cdc
This diff is collapsed.
Click to expand it.
src/pages/detailsCar.vue
View file @
00a84cdc
...
...
@@ -58,20 +58,14 @@
class=
"cursor-pointer"
@
click=
"CommonJump('/index',
{})"
/>
<q-breadcrumbs-el
label=
"日本"
class=
"cursor-pointer"
/>
<q-breadcrumbs-el>
<span
v-for=
"(x, i) in citys"
:key=
"i"
>
<span
class=
"cursor-pointer"
>
{{
x
}}
</span>
<span
v-if=
"i + 1 != citys.length"
class=
"q-mr-sm"
>
,
</span>
</span>
</q-breadcrumbs-el>
<q-breadcrumbs-el
:label=
"dataList.CityList2[0].CountryName"
class=
"cursor-pointer"
/>
<q-breadcrumbs-el
v-if=
"$q.platform.is.desktop"
:label=
"dataList.
titl
e"
:label=
"dataList.
Nam
e"
class=
"text-grey-6 ellipsis"
/>
</q-breadcrumbs>
<div
class=
"text-grey-6 f12"
>
Product No. #
{{
dataList
.
i
d
}}
</div>
<div
class=
"text-grey-6 f12"
>
Product No. #
{{
dataList
.
I
d
}}
</div>
</div>
<div
style=
"padding-bottom: calc((100% - 0px) / 3); position: relative"
>
<div
...
...
@@ -120,7 +114,6 @@
<div
class=
"q-py-lg"
:class=
"
{ row: $q.platform.is.desktop, column: $q.platform.is.mobile }"
style="border-bottom: 1px solid #eee"
>
<div
class=
"col q-mr-lg"
>
<div
class=
"text-h6 ellipsis-2-lines"
>
{{
dataList
.
Name
}}
</div>
...
...
@@ -155,7 +148,7 @@
class=
"transparent q-mr-xl no-padding"
square
icon=
"iconfont iconcancel"
label=
"3天前可免費取消
"
:label=
"`$
{dataList.FreeCancelDay}天前可免费取消`
"
/>
</div>
</div>
...
...
@@ -173,31 +166,17 @@
<span
class=
"f12 text-grey-6"
>
起
</span>
</div>
<div
v-else
class=
"text-subtitle1 text-grey-6"
>
暫無報價
</div>
<!-- :disable="priceList.length>0?false:true" -->
<q-btn
color=
"primary"
label=
"選擇方案"
unelevated
:disable=
"priceList.length>0?false:true"
@
click=
"goScrollHandler(priceListHeight)"
:class=
"
{ 'q-mt-md full-width': $q.platform.is.desktop }"
/>
</div>
</div>
<div
class=
"q-mt-lg"
v-if=
"dataList.productRecommend"
>
<div
class=
"q-mt-sm"
v-for=
"(x, i) in dataList.productRecommend.split('\n')"
:key=
"i"
>
<q-icon
name=
"iconfont iconhongqi"
color=
"primary"
size=
"16px"
class=
"q-mr-md"
/>
{{
x
}}
</div>
</div>
</div>
<div
class=
"bg-white"
...
...
@@ -233,7 +212,7 @@
</div>
<div
v-if=
"dataList"
class=
"q-pa-lg bg-grey-3
q-mt-lg
text-grey-9"
class=
"q-pa-lg bg-grey-3 text-grey-9"
ref=
"pricelist"
>
<div
...
...
@@ -260,6 +239,7 @@
class=
"bg-white q-pa-md"
:priceList=
"priceList"
@
change=
"changeChosenDateHandler"
@
getQuotationData=
"getCarPriceData2"
ref=
"calendar"
></calendar>
</q-popup-proxy>
...
...
@@ -271,6 +251,7 @@
:price=
"currentPrice"
@
reset=
"resetHandler"
@
getPriceList=
"getPriceList"
ref=
"orderPreview"
></order-preview>
</div>
...
...
@@ -278,9 +259,9 @@
<div
class=
"text-h6 q-pt-lg"
v-if=
"$q.platform.is.mobile"
>
所選方案詳情
</div>
<!-- v-if="priceList && priceList.length > 0" -->
<div
class=
"bg-white rounded-borders q-mt-md"
v-if=
"priceList && priceList.length > 0"
>
<div
class=
"q-pa-md row"
>
<div
class=
"col"
>
...
...
@@ -309,12 +290,13 @@
</div>
<div
class=
""
v-if=
"$q.platform.is.desktop"
>
<div
class=
"row items-center"
>
<span
class=
"product-price text-h6 q-mr-md"
<span
v-if=
"priceList.length>0&&priceList[0].originalB2CPrice > 0"
class=
"product-price text-h6 q-mr-md"
>
CNY
{{
moneyFormat
(
priceList
[
0
].
originalB2CPrice
,
0
)
}}
</span
>
<span
v-else
class=
"col"
></span>
<q-btn
color=
"primary"
outline
...
...
@@ -323,7 +305,7 @@
class=
"q-px-lg"
/>
</div>
<div
class=
"text-info q-mt-md text-right"
>
<div
class=
"text-info q-mt-md text-right"
v-if=
"priceList.length>0"
>
最早可預訂日期:
{{
priceList
[
0
].
startDate
}}
</div>
</div>
...
...
@@ -356,6 +338,7 @@
<calendar
:priceList=
"priceList"
@
change=
"changeChosenDateHandler"
@
getQuotationData=
"getCarPriceData2"
ref=
"calendar"
></calendar>
</div>
...
...
@@ -367,6 +350,7 @@
:price=
"currentPrice"
@
reset=
"resetHandler"
@
getPriceList=
"getPriceList"
ref=
"orderPreview"
></order-preview>
</div>
</div>
...
...
@@ -980,7 +964,12 @@ export default {
);
},
// 获取车的详情
getCarPriceData2
()
{
getCarPriceData2
(
time
)
{
// 日历翻页更新报价
if
(
time
){
this
.
currentYM
.
str
=
time
this
.
$refs
.
orderPreview
.
resetHandler
()
}
this
.
priceList
=
[]
this
.
apipost
(
"b2c_get_GetCarSingleProductMonthPrice"
,
...
...
@@ -1005,9 +994,19 @@ export default {
if
(
date
.
formatDate
(
Date
.
now
(),
'YYYY-MM-DD'
)
!=
x
.
Date
){
arr
.
push
(
dataObj
)
}
}
})
if
(
arr
.
length
==
0
){
let
dataObj
=
{
startDate
:
this
.
currentYM
.
str
,
originalB2CPrice
:
''
,
remainNum
:
0
,
Count
:
0
,
isSupportChildren
:
0
,
safeMoney
:
0
,
}
arr
.
push
(
dataObj
)
}
this
.
priceList
=
JSON
.
parse
(
JSON
.
stringify
(
arr
))
}
...
...
src/pages/detailsNew.vue
View file @
00a84cdc
...
...
@@ -146,12 +146,14 @@
<span
>
{{
dataList
.
aimPlaceName
}}
<template
v-if=
"citys.length>0"
>
<span
class=
"q-mx-sm"
>
途徑:
</span>
<span
v-for=
"(x, i) in citys"
:key=
"i"
>
<span
class=
"cursor-pointer"
>
{{
x
}}
</span>
<span
v-if=
"i + 1 != citys.length"
class=
"q-mr-sm"
>
,
</span>
</span>
</
template
>
</span>
</div>
<div
class=
"q-mt-md row"
>
...
...
@@ -580,7 +582,7 @@
'q-mx-md': $q.screen.width < 1220 && $q.platform.is.mobile,
}"
></div>
<div
<
!-- <
div
class="text-h5 text-weight-bold text-left q-mt-xl"
ref="cancelTips"
:class="{
...
...
@@ -588,8 +590,17 @@
}"
>
取消政策
</div> -->
<div
class=
"q-mt-lg f12 text-grey-6"
>
<q-icon
name=
"iconfont icontishi"
class=
"q-mr-sm"
/>
<span
>
注意:由于站内商品来自全球各地,订单取消时间将依该供应商所在时区判定。供应商需
2-5
个工作天进行取消流程,依照您购买的商品取消政策收取手续费,并于取消流程完成后14
个工作天内退款。
</span
>
</div>
<div
<
!-- <
div
class="q-mt-lg trip-text q-mb-xl"
:class="{
'q-mx-md': $q.screen.width < 1220 && $q.platform.is.mobile,
...
...
@@ -615,7 +626,7 @@
个工作天内退款。</span
>
</div>
</div>
</div>
-->
</div>
<
template
v-if=
"$q.platform.is.desktop"
>
...
...
@@ -703,9 +714,9 @@ export default {
loop
:
true
,
},
warnBuy
:
[
"未满 2 岁幼儿
不占位可免费参加(不含座位,餐点,门票,床位),请先于下订时在「备注栏」告知。
"
,
"未满 2 岁幼儿
我們將按照嬰兒價格執行。請下單是注意區分
"
,
"如需要單人房,請購買單房"
,
"不占床2-11(包含)岁幼童可购买儿童价,如需占床請購買
成人價
"
,
"不占床2-11(包含)岁幼童可购买儿童价,如需占床請購買
佔床產品
"
,
"12歲以上皆視同成人售價"
,
],
showOrderPreview
:
false
,
...
...
@@ -751,12 +762,12 @@ export default {
isActive
:
false
,
display
:
"溫馨提示"
,
},
{
val
:
"cancelTips"
,
top
:
0
,
isActive
:
false
,
display
:
"取消政策"
,
},
//
{
//
val: "cancelTips",
//
top: 0,
//
isActive: false,
//
display: "取消政策",
//
},
],
priceListHeight
:
0
,
stickyHeight
:
0
,
...
...
@@ -1227,6 +1238,9 @@ export default {
.line-feature
*
{
line-height
:
normal
!important
;
}
.line-feature
.draggable
{
position
:
absolute
;
}
.slider-item
{
transform
:
scale
(
1
);
transition-timing-function
:
ease
;
...
...
src/pages/hotel/orderForm.vue
View file @
00a84cdc
...
...
@@ -269,7 +269,7 @@
placeholder=
""
mask=
"#"
reverse-fill-mask
:disable=
"!numberOfChildren?true:false"
/>
<!-- :rules="[(val) => !!val || '請輸儿童數']" -->
</div>
...
...
@@ -713,10 +713,11 @@ export default {
return
this
.
orderKey
!=
""
;
},
async
submit
()
{
let
roomGroupLen
=
this
.
msg
.
searchroomGroup
.
length
;
//判断选择的人数与入住人数
let
Count1
=
0
let
roomGroup
=
JSON
.
parse
(
JSON
.
stringify
(
this
.
parameters
.
roomGroup
))
let
roomGroup
=
this
.
parameters
.
roomGroup
roomGroup
.
forEach
(
x
=>
{
Count1
+=
Number
(
x
.
roomMaleCount
)
+
Number
(
x
.
roomFemaleCount
)
+
Number
(
x
.
roomChildCount
)
})
...
...
@@ -727,6 +728,15 @@ export default {
this
.
$message
.
error
(
'入住人數與總入住數不匹配'
);
return
;
}
for
(
let
i
=
0
;
i
<
roomGroup
.
length
;
i
++
)
{
roomGroup
[
i
].
roomMaleCount
=
roomGroup
[
i
].
roomMaleCount
?
roomGroup
[
i
].
roomMaleCount
:
0
roomGroup
[
i
].
roomFemaleCount
=
roomGroup
[
i
].
roomFemaleCount
?
roomGroup
[
i
].
roomFemaleCount
:
0
roomGroup
[
i
].
roomChildCount
=
roomGroup
[
i
].
roomChildCount
?
roomGroup
[
i
].
roomChildCount
:
0
if
(
!
roomGroup
[
i
].
roomMaleCount
&&!
roomGroup
[
i
].
roomMaleCount
){
this
.
$message
.
error
(
'一個房間至少入住一人'
);
return
;
}
}
this
.
parameters
.
CustomerId
=
this
.
userInfo
.
Id
;
this
.
parameters
.
EmployeeIdStr
=
this
.
userInfo
.
Surname
+
this
.
userInfo
.
Name
this
.
$refs
.
mail
.
validate
()
...
...
@@ -736,12 +746,8 @@ export default {
this
.
$refs
.
guestAddress
.
validate
()
this
.
$refs
.
checkInTime
.
validate
()
this
.
parameters
.
guestEmail
=
this
.
userInfo
.
Mailbox
for
(
let
i
=
0
;
i
<
this
.
parameters
.
roomGroup
.
length
;
i
++
)
{
if
(
!
this
.
parameters
.
roomGroup
[
i
].
roomMaleCount
&&!
this
.
parameters
.
roomGroup
[
i
].
roomMaleCount
){
this
.
$message
.
error
(
'一個房間至少入住一人'
);
return
;
}
}
let
flag
=
true
...
...
src/pages/hotel/selectRoom.vue
View file @
00a84cdc
<
style
lang=
"scss"
scoped
>
.select-day
{
background
:
$primary
;
background
:
var
(
--
q-color-primary
)
;
color
:
#fff
!
important
;
border-radius
:
8px
;
}
...
...
src/pages/login.vue
View file @
00a84cdc
...
...
@@ -327,7 +327,16 @@ export default {
if
(
res
.
data
.
resultCode
==
1
)
{
const
{
type
,
unoinid
}
=
res
.
data
.
data
;
if
(
type
===
1
)
{
window
.
localStorage
.
setItem
(
"b2bUser"
,
JSON
.
stringify
(
res
.
data
.
data
)
);
if
(
this
.
path
)
{
this
.
CommonJump
(
this
.
path
,
{});
}
else
{
this
.
CommonJump
(
"/index"
,
{});
}
}
else
{
this
.
isLogin
=
false
;
// 绑定邮箱
...
...
src/pages/usercenter/coupon.vue
View file @
00a84cdc
...
...
@@ -68,7 +68,7 @@
width
:
20px
;
height
:
4px
;
border-radius
:
2px
;
background-color
:
$primary
;
background-color
:
var
(
--
q-color-primary
)
;
margin
:
-8px
auto
0
auto
;
}
.img
{
...
...
@@ -158,8 +158,12 @@
</div>
</div>
</div>
<div
v-if=
"!couponList.length "
>
<none-data></none-data>
<div
v-if=
"!couponList.length "
class=
"text-center q-my-xl"
>
<none-data
iconType=
"order"
title=
"沒有找到您的優惠券信息哦"
subtitle=
""
></none-data>
</div>
</div>
<div
v-show=
"pageCount"
class=
"mt flex justify-end"
>
...
...
@@ -176,7 +180,7 @@
</div>
</
template
>
<
script
>
import
noneData
from
'
../../components
/noneData.vue'
import
noneData
from
'
src/components/common
/noneData.vue'
export
default
{
components
:
{
noneData
...
...
src/pages/usercenter/loginInfo.vue
View file @
00a84cdc
...
...
@@ -147,7 +147,7 @@ export default {
changeWechat
()
{
const
{
AppID
,
State
,
OpenRedirectUri
}
=
this
.
openInfo
;
let
redirect_uri
=
OpenRedirectUri
;
const
url
=
`https://open.weixin.qq.com/connect/qrconnect?appid=
${
AppID
}
&redirect_uri=
${
redirect_uri
}
/loginInfo&response_type=code&scope=snsapi_login&state=
${
State
}
&wechat_redirect=
${
redirect_uri
}
`
;
const
url
=
`https://open.weixin.qq.com/connect/qrconnect?appid=
${
AppID
}
&redirect_uri=
${
redirect_uri
}
/
#/
loginInfo&response_type=code&scope=snsapi_login&state=
${
State
}
&wechat_redirect=
${
redirect_uri
}
`
;
window
.
location
.
href
=
url
;
},
changeEmail
()
{
...
...
src/pages/usercenter/mobileUserCenter.vue
View file @
00a84cdc
...
...
@@ -68,7 +68,7 @@ margin: 10px 13px 0 13px;
line-height
:
14px
;
border-radius
:
50%
;
color
:
#fff
;
background-color
:
$primary
;
background-color
:
var
(
--
q-color-primary
)
;
}
</
style
>
<
template
>
...
...
src/pages/usercenter/order/carPriceDetail.vue
View file @
00a84cdc
...
...
@@ -126,7 +126,7 @@ export default {
this
.
$q
.
loading
.
show
();
this
.
apipost
(
"CarSingle_post_Get
TYMy
CarOrderInfo"
,
"CarSingle_post_Get
Admin
CarOrderInfo"
,
{
OrderId
:
this
.
orderInfo
.
ErpOrderId
},
(
r
)
=>
{
if
(
r
.
data
.
resultCode
==
1
)
{
...
...
src/pages/usercenter/order/hotelMap.vue
View file @
00a84cdc
...
...
@@ -31,7 +31,9 @@
<
/div></
div
>
<
/template
>
<
script
>
import
componentsMap
from
'src/components/car/Map.vue'
;
export
default
{
components
:
{
componentsMap
}
,
props
:
{
orderInfo
:
{
type
:
Object
,
...
...
@@ -52,8 +54,11 @@ export default {
this
.
$q
.
loading
.
show
();
this
.
apipost
(
"dmc_post_Get_GetJAPAN_HotelDetail"
,
{
ProductId
:
this
.
orderInfo
.
GoodsId
}
,
{
groupBookingFlg
:
"0"
,
hotelImageSize
:
5
,
photoGalleryGetFlg
:
1
,
hotelId
:
this
.
orderInfo
.
GoodsId
}
,
(
res
)
=>
{
console
.
log
(
'this.travelLngLat'
,
res
)
this
.
$q
.
loading
.
hide
();
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
hotelDetails
=
res
.
data
.
data
.
hotelDetails
;
...
...
@@ -64,6 +69,7 @@ export default {
Lng
:
this
.
hotelSummary
.
longitudeW
,
Address
:
this
.
hotelSummary
.
hotelName
}
);
console
.
log
(
'this.travelLngLat'
,
this
.
travelLngLat
)
}
else
{
this
.
$message
.
error
(
res
.
data
.
message
);
}
...
...
src/pages/usercenter/order/hotelPriceDetail.vue
View file @
00a84cdc
...
...
@@ -4,28 +4,27 @@
<
template
>
<div>
<div
class=
"row q-mb-sm items-center"
>
<div
class=
"
col
"
>
總金額
</div>
<div
class=
"text-subtitle2 text-weight-bolder
text-primary
"
>
<div
class=
"
q-mr-lg
"
>
總金額
</div>
<div
class=
"text-subtitle2 text-weight-bolder "
>
CNY
{{
moneyFormat
(
sumPrice
,
2
)
}}
</div>
</div>
<hr
style=
"border:none;border-top:1px dashed #EEE !important;"
class=
"bg-transparent q-mb-sm"
/>
<div
class=
"row q-mb-sm items-center"
v-if=
"DiscountsMoney > 0"
>
<div
class=
"col"
>
優惠金額
</div>
<div
class=
"row q-mb-sm items-center"
>
<div
class=
"q-mr-lg"
>
優惠金額
</div>
<div
class=
"text-subtitle2 text-weight-bolder text-teal"
v-if=
"Discount
s
Money > 0"
v-if=
"DiscountMoney > 0"
>
CNY -
{{
moneyFormat
(
Discount
s
Money
,
2
)
}}
CNY -
{{
moneyFormat
(
DiscountMoney
,
2
)
}}
</div>
<div
class=
"text-grey-5"
v-else
>
暫無優惠
</div>
</div>
<div
class=
"row q-mb-sm items-center"
>
<div
class=
"col"
>
支付金額
</div>
<div
class=
"text-h6 text-weight-bolder text-primary product-price"
>
CNY
{{
moneyFormat
(
Money
,
2
)
}}
</div>
<!--
<div
class=
"row q-mb-sm items-center"
>
<div
class=
"q-mr-lg"
>
支付金額
</div>
<div
class=
"text-h6 text-weight-bolder product-price"
>
CNY
{{
moneyFormat
(
TotalPrice
,
2
)
}}
</div>
</div>
-->
</div>
</
template
>
<
script
>
...
...
@@ -40,13 +39,12 @@ export default {
return
{
details
:
null
,
sumPrice
:
0
,
//总金额
Discount
s
Money
:
0
,
//优惠金额
Money
:
0
,
// 支付金額
DiscountMoney
:
0
,
//优惠金额
TotalPrice
:
0
,
// 支付金額
}
},
mounted
()
{
this
.
getGroupData
()
this
.
getCarOrder
()
},
methods
:
{
// 获取团的详情
...
...
@@ -54,23 +52,22 @@ export default {
// this.$q.loading.show();
this
.
apipost
(
"dmc_post_GetThirdHotelOrder"
,
{
ProductId
:
this
.
orderInfo
.
Goods
Id
},
{
OrderID
:
this
.
orderInfo
.
ErpOrder
Id
},
(
r
)
=>
{
if
(
r
.
data
.
resultCode
==
1
)
{
this
.
dataList
=
r
.
data
.
data
;
const
{
Discount
sMoney
,
MailingState
,
Money
}
=
r
.
data
.
data
;
console
.
log
(
'getTicket Data'
,
r
.
data
.
data
,
DiscountsMoney
,
MailingState
,
Money
)
const
{
Discount
Money
,
TotalPrice
}
=
r
.
data
.
data
;
console
.
log
(
'getTicket Data'
,
r
.
data
.
data
)
// sumPrice: 0,//总金额
// Discount
s
Money: 0,//优惠金额
//
Money
: 0, // 支付金額
// DiscountMoney: 0,//优惠金额
//
TotalPrice
: 0, // 支付金額
// MailingState: '',//邮寄状态 1自取 2邮寄
this
.
Money
=
Money
;
this
.
DiscountsMoney
=
DiscountsMoney
this
.
MailingState
=
MailingState
;
this
.
sumPrice
=
Money
+
DiscountsMoney
this
.
TotalPrice
=
TotalPrice
;
this
.
DiscountMoney
=
DiscountMoney
this
.
sumPrice
=
TotalPrice
+
DiscountMoney
// this.sumPrice = this.moneyFormat(this.sumPrice, 2)
// this.
Money = this.moneyFormat(this.Money
, 2)
// this.Discount
sMoney = this.moneyFormat(this.Discounts
Money, 2)
// this.
TotalPrice = this.moneyFormat(this.TotalPrice
, 2)
// this.Discount
Money = this.moneyFormat(this.Discount
Money, 2)
}
else
{
this
.
$q
.
notify
({
type
:
"negative"
,
...
...
src/pages/usercenter/order/orderDetail.vue
View file @
00a84cdc
...
...
@@ -12,7 +12,7 @@
</div>
<div
class=
""
>
<div
class=
"f12 text-grey-6"
>
訂單編號:#
{{
detail
.
OrderNo
}}
</div>
<div
class=
"f12 text-grey-6 q-mt-md"
>
下單日期:
{{
detail
.
Create
Time
}}
</div>
<div
class=
"f12 text-grey-6 q-mt-md"
>
下單日期:
{{
detail
.
SelectStart
Time
}}
</div>
</div>
</div>
<q-separator
color=
"grey-2"
class=
"q-my-md"
/>
...
...
@@ -29,7 +29,7 @@
<span
class=
"q-ml-sm text-weight-bolder"
>
{{
moneyFormat
(
detail
.
TotalPrice
,
2
)
}}
</span>
</div>
<div
class=
"row items-center"
>
<q-btn
color=
"primary"
flat
dense
class=
"q-mr-md q-px-md"
>
<q-btn
color=
"primary"
flat
dense
class=
"q-mr-md q-px-md"
@
click=
"navigateToWechat"
>
<i
class=
"iconfont iconmessage1"
></i>
联系客服
</q-btn>
<q-btn
color=
"primary"
dense
flat
class=
"q-mr-md q-px-md"
@
click=
"showCode = true"
>
<i
class=
"iconfont iconiconfontscan"
></i>
扫码咨询
</q-btn>
...
...
@@ -37,12 +37,12 @@
<q-btn
color=
"primary"
unelevated
dense
label=
"前往付款"
@
click=
"goPayOrder"
class=
"q-px-md"
/>
-->
<div
class=
"text-right"
v-if=
"detail.OrderStatus==1"
>
<q-btn
color=
"primary"
dense
outline
class=
"q-px-sm"
label=
"取消訂單"
@
click=
"cancalOrder(
item.o
rderNo)"
/>
<q-btn
color=
"primary"
dense
unelevated
class=
"q-px-sm q-ml-sm"
label=
"立即支付"
@
click=
"CommonJump('/pay/'+
item.o
rderNo,
{},'blank')" />
<q-btn
color=
"primary"
dense
outline
class=
"q-px-sm"
label=
"取消訂單"
@
click=
"cancalOrder(
detail.O
rderNo)"
/>
<q-btn
color=
"primary"
dense
unelevated
class=
"q-px-sm q-ml-sm"
label=
"立即支付"
@
click=
"CommonJump('/pay/'+
detail.O
rderNo,
{},'blank')" />
</div>
<div
class=
"text-right"
v-else
>
<
!--
<
div
class=
"text-right"
v-else
>
<q-btn
color=
"dark"
dense
flat
class=
"q-px-sm"
@
click=
"CommonJump('/orderinfo/'+orderNo,
{},'blank')" label="查看訂單" />
</div>
</div>
-->
</div>
</div>
</q-card>
...
...
@@ -90,13 +90,13 @@
<div
class=
"q-mt-sm text-body1"
>
{{
detail
.
Mailbox
}}
</div>
</div>
</div>
<div>
<
!--
<
div>
<q-separator
color=
"grey-2"
class=
"q-my-md"
/>
<div
class=
"text-subtitle1 text-weight-bolder"
>
用戶備註
</div>
<div
class=
"rounded-borders bg-orange-1 col q-mt-md q-pa-md text-orange"
>
凍死了防控就是大陸飛科技阿斯蒂芬盧卡斯經費達拉斯
</div>
{{
detail
.
Remarks
}}
</div>
</div>
-->
</q-card>
<q-card
class=
"rounded-borders q-pa-md q-mt-md"
flat
v-if=
"![1,2,3].includes(detail.GoodsType)"
>
<div
v-if=
"detail.OrderNo"
>
...
...
@@ -120,6 +120,7 @@
</
template
>
<
script
>
import
noneData
from
'src/components/common/noneData.vue'
import
componentsMap
from
"../../../components/car/Map.vue"
;
import
carPriceDetail
from
'./carPriceDetail.vue'
import
groupPriceDetail
from
'./groupPriceDetail.vue'
...
...
@@ -130,7 +131,7 @@ import groupMap from './groupMap.vue'
import
hotelMap
from
'./hotelMap.vue'
import
ticketMap
from
'./ticketMap.vue'
export
default
{
components
:
{
componentsMap
,
carPriceDetail
,
groupPriceDetail
,
hotelPriceDetail
,
ticketPriceDetail
,
carMap
,
groupMap
,
hotelMap
,
ticketMap
},
components
:
{
noneData
,
componentsMap
,
carPriceDetail
,
groupPriceDetail
,
hotelPriceDetail
,
ticketPriceDetail
,
carMap
,
groupMap
,
hotelMap
,
ticketMap
},
// GoodsType: this.productType,//商品类型(见枚举) 12包车 13 接机 14送机
data
()
{
return
{
...
...
@@ -167,7 +168,7 @@ methods: {
this
.
apipost
(
'GetCancelOrder_post'
,{
OrderNo
:
this
.
orderNo
},
r
=>
{
if
(
r
.
data
.
resultCode
==
1
){
this
.
$message
.
success
(
'訂單取消成功'
)
this
.
getOrderList
()
window
.
location
.
reload
()
}
else
{
this
.
$message
.
error
(
'訂單取消失敗,請重新嘗試'
)
}
...
...
@@ -194,7 +195,7 @@ methods: {
this
.
iconColor
=
[
""
,
"blue"
,
"blue"
,
"green"
,
"grey"
][
this
.
detail
.
OrderStatus
]
console
.
log
(
'get detail'
,
this
.
orderIcon
,
this
.
iconColor
)
this
.
orderNo
=
orderNo
this
.
orderInfo
=
r
.
data
.
data
this
.
orderInfo
=
r
es
.
data
.
data
this
.
loading
=
false
}
else
{
// this.$notify(res.data.message);
...
...
@@ -209,6 +210,9 @@ methods: {
null
);
},
navigateToWechat
()
{
window
.
open
(
'https://work.weixin.qq.com/kfid/kfcaec7130ac124872a'
,
'_blank'
)
}
}
}
</
script
>
...
...
src/pages/usercenter/order/ticketMap.vue
View file @
00a84cdc
...
...
@@ -31,7 +31,9 @@
<
/div></
div
>
<
/template
>
<
script
>
import
componentsMap
from
"src/components/car/Map.vue"
;
export
default
{
components
:
{
componentsMap
}
,
props
:
{
orderInfo
:
{
type
:
Object
,
...
...
@@ -60,7 +62,7 @@ export default {
this
.
$q
.
loading
.
show
();
this
.
apipost
(
"b2c_get_GetTicketCouponsDetail"
,
{
CouponsId
:
this
.
msg
.
config
Id
}
,
{
CouponsId
:
this
.
orderInfo
.
Goods
Id
}
,
(
r
)
=>
{
if
(
r
.
data
.
resultCode
==
1
)
{
let
addList
=
function
(
arr
)
{
...
...
@@ -89,28 +91,6 @@ export default {
}
,
1000
);
}
);
}
this
.
$nextTick
(()
=>
{
this
.
getCarPriceData
()
setTimeout
(()
=>
{
this
.
navs
.
forEach
((
x
)
=>
{
x
.
top
=
this
.
$refs
[
x
.
val
].
getBoundingClientRect
().
top
+
this
.
currentHeight
-
60
;
}
);
this
.
priceListHeight
=
this
.
$refs
.
pricelist
.
getBoundingClientRect
().
top
+
this
.
currentHeight
-
60
;
}
,
1000
);
try
{
document
.
querySelector
(
"#scrollId .q-page-container"
)
.
addEventListener
(
"scroll"
,
this
.
handleScrollDay
);
}
catch
(
error
)
{
// console.log(document.querySelector('#scrollId .q-page-container'))
// console.log('异常信息', error)
}
}
);
}
else
{
this
.
$q
.
notify
({
...
...
src/pages/usercenter/setAddress.vue
View file @
00a84cdc
...
...
@@ -26,7 +26,6 @@
min-height
:
40px
;
}
.title
{
margin-top
:
20px
;
margin-bottom
:
10px
;
margin-left
:
10px
;
}
...
...
@@ -113,7 +112,7 @@
<div
class=
"f22 bold"
>
{{
form
.
Id
?
'编辑'
:
'添加'
}}
邮寄地址
</div>
<form
@
submit
.
prevent
.
stop=
"submit"
class=
"q-gutter-md"
>
<div>
<div
:class=
"$q.platform.is.desktop ? 'row': 'culmuns'"
>
<div
class=
"q-mt-xl"
:class=
"$q.platform.is.desktop ? 'row': 'culmuns'"
>
<div
class=
"col"
>
<div
class=
"title"
>
全名
</div>
<q-input
...
...
@@ -171,6 +170,7 @@
v-model=
"form.Mobile"
outlined
:rules=
"[(val) => !!val || '请输入手機號碼']"
mask=
"#"
reverse-fill-mask
>
<template
v-slot:prepend
>
<div
class=
"text-subtitle2"
>
...
...
@@ -186,7 +186,7 @@
placeholder=
"城市"
v-model=
"form.CityName"
outlined
:rules=
"[(val) => !!val || '请输入
電話(首次需驗證)
']"
:rules=
"[(val) => !!val || '请输入
城市
']"
></q-input>
</div>
</div>
...
...
@@ -205,6 +205,7 @@
<div
class=
"col"
>
<div
class=
"title"
>
郵政編碼
</div>
<q-input
mask=
"#"
reverse-fill-mask
ref=
"PostalCode"
class=
"form-item"
placeholder=
"郵政編碼"
...
...
@@ -214,8 +215,8 @@
></q-input>
</div>
</div>
<div
class=
"flex items-center q-m
y-sm
"
>
<BaseSwitch
v-model
=
"form.IsDefault"
></BaseSwitch
<div
class=
"flex items-center q-m
b-lg
"
>
<BaseSwitch
ref=
"switch"
v-model=
"form.IsDefault"
:value
=
"form.IsDefault"
></BaseSwitch
><span
class=
"q-ml-sm"
>
保存為默認地址
</span></div>
<div>
<q-btn
color=
"primary"
type=
"submit"
unelevated
label=
"保存"
/>
...
...
@@ -353,6 +354,11 @@ export default {
this
.
form
=
{...
item
};
this
.
form
.
AreaCode
=
Number
(
this
.
form
.
AreaCode
)
this
.
form
.
IsDefault
=
this
.
form
.
IsDefault
===
1
this
.
$nextTick
(()
=>
{
this
.
$refs
.
switch
.
inputSelect
=
this
.
form
.
IsDefault
})
console
.
log
(
'this.form.IsDefault'
,
this
.
form
.
IsDefault
)
this
.
isShowDialog
=
true
;
},
deleteUser
(
item
)
{
...
...
src/pages/usercenter/setInfo.vue
View file @
00a84cdc
...
...
@@ -148,7 +148,7 @@
<q-btn
color=
"primary"
class=
"q-mt-sm"
@
click=
"removeAccount"
>
删除您的帐户及个人数据
</q-btn>
</div>
</div>
<q-dialog
content-style=
"width: 900px"
v-model=
"showRemove"
>
<q-dialog
v-model=
"showRemove"
>
<removeAccount></removeAccount>
</q-dialog>
</div>
...
...
@@ -272,6 +272,10 @@ export default {
this
.
form
,
(
res
)
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
form
=
{
OldPassword
:
""
,
NewPassword
:
""
,
}
// this.$notify(res.data.message);
this
.
$q
.
notify
({
type
:
"positive"
,
...
...
src/pages/usercenter/setUserInfo.vue
View file @
00a84cdc
...
...
@@ -217,7 +217,7 @@ export default {
Appellation
:
""
,
EnName
:
""
,
EnSurname
:
""
,
Country
:
""
,
Country
:
undefined
,
Moblie
:
""
,
},
model
:
""
,
...
...
@@ -297,6 +297,12 @@ export default {
(
res
)
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
form
=
res
.
data
.
data
;
if
(
!
this
.
form
.
Country
)
{
this
.
form
.
Country
=
undefined
}
if
(
!
this
.
form
.
Appellation
)
{
this
.
form
.
Appellation
=
undefined
}
if
(
this
.
phoneCountList
.
length
)
{
this
.
changeCountry
(
this
.
form
.
Country
);
}
...
...
src/pages/usercenter/setUsersList.vue
View file @
00a84cdc
...
...
@@ -7,7 +7,7 @@
width
:
900px
;
}
.title
{
margin
:
20px
10px
10px
10px
;
margin
:
0
10px
10px
10px
;
}
.card
{
margin
:
10px
;
...
...
@@ -39,10 +39,8 @@
::v-deep
.q-field__marginal
{
height
:
40px
;
}
.title
{
margin-top
:
20px
;
margin-bottom
:
10px
;
margin-left
:
10px
;
::v-deep
.q-field--auto-height
.q-field__native
{
min-height
:
40px
;
}
.phone
{
margin-left
:
100px
;
...
...
@@ -71,12 +69,13 @@
width
:
20px
;
height
:
4px
;
border-radius
:
2px
;
background-color
:
$primary
;
background-color
:
var
(
--
q-color-primary
)
;
margin
:
-8px
auto
0
auto
;
}
.card-info
{
height
:
20px
;
padding
:
0
4px
;
margin
:
0
0
20px
0
;
background
:
#dddddd
;
border-radius
:
8px
;
}
...
...
@@ -87,8 +86,8 @@
<div
class=
"card"
v-for=
"item in pageData"
:key=
"item.id"
>
<div
class=
"flex card-title justify-between"
>
<div
class=
"flex"
>
<span>
{{
item
.
Name
}}
</span>
<span
v-if=
"$q.platform.is.desktop"
class=
"phone"
>
手機號:
{{
item
.
Mobile
}}
</span>
<span>
{{
item
.
SurName
}}
{{
item
.
Name
}}
</span>
<span
v-if=
"$q.platform.is.desktop"
class=
"phone"
>
手機號:
+
{{
item
.
AreaCode
}}
{{
item
.
Mobile
}}
</span>
</div>
<span>
<span
class=
"user-edit"
@
click=
"editUser(item)"
>
编辑
</span>
...
...
@@ -97,16 +96,16 @@
>
</span>
</div>
<div
class=
"q-pa-sm"
>
<span
class=
"q-ml-sm"
v-if=
"$q.platform.is.mobile"
>
手機號:
{{
item
.
Mobile
}}
</span>
<div
class=
"q-pa-sm full-width"
<div
class=
"q-pa-sm q-ml-sm"
>
<span
v-if=
"$q.platform.is.mobile"
>
手機號:
{{
item
.
Mobile
}}
</span>
<div
:class=
"$q.platform.is.desktop ? 'row': 'culmuns'"
>
<div
class=
"col-6 q-py-sm"
:class=
"
{ 'border-b': index
<
item
.
CardList
.
length
-
1
}"
v-for=
"(el, index) in item.CardList"
:key=
"index"
>
<div
:class=
"$q.platform.is.desktop ? 'row': 'culmuns'"
>
<div
class=
"col-6"
>
{{
el
.
TypeName
}}
</div>
<div
class=
"col-6"
:class=
"$q.platform.is.mobile ? 'q-mt-xs': ''"
>
{{
el
.
CardNo
}}
</div>
<div>
{{
el
.
TypeName
}}
:
{{
el
.
CardNo
}}
</div>
</div>
</div>
</div>
...
...
@@ -144,7 +143,7 @@
<form
@
submit
.
prevent
.
stop=
"submit"
class=
"q-gutter-md"
>
<div>
<div
:class=
"$q.platform.is.desktop ? 'row': 'culmuns'"
>
<div
class=
"col"
>
<div
class=
"col
q-mt-md
"
>
<div
class=
"title"
>
姓
</div>
<q-input
class=
"form-item"
...
...
@@ -167,23 +166,23 @@
</div>
<div
:class=
"$q.platform.is.desktop ? 'row': 'culmuns'"
>
<div
class=
"col"
>
<div
class=
"title"
>
姓氏(
需與旅遊證件一致
)
</div>
<div
class=
"title"
>
姓氏(
请输入英文字母
)
</div>
<q-input
class=
"form-item"
v-model=
"form.EnName"
outlined
ref=
"EnName"
:rules=
"[(val) => !!val || '请输入姓氏(
需與旅遊證件一致
)']"
:rules=
"[(val) => !!val || '请输入姓氏(
请输入英文字母
)']"
></q-input>
</div>
<div
class=
"col"
>
<div
class=
"title"
>
名字(
需與旅遊證件一致
)
</div>
<div
class=
"title"
>
名字(
请输入英文字母
)
</div>
<q-input
ref=
"EnSurName"
class=
"form-item"
v-model=
"form.EnSurName"
outlined
:rules=
"[(val) => !!val || '请输入名字(
需與旅遊證件一致
)']"
:rules=
"[(val) => !!val || '请输入名字(
请输入英文字母
)']"
></q-input>
</div>
</div>
...
...
src/utils/producttypeenum.js
View file @
00a84cdc
...
...
@@ -7,14 +7,14 @@ const ProductTypeEnum = Object.freeze({
*/
ONE_DAY
:
{
value
:
1
,
desc
:
'
一日游
产品'
desc
:
'
當地遊
产品'
},
/**
* 多日游
*/
TEAM_TRIP
:
{
value
:
2
,
desc
:
'
多日游
产品'
desc
:
'
出境遊
产品'
},
/**
* 小包团
...
...
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