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
04d43921
Commit
04d43921
authored
Mar 09, 2023
by
吴春
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master' of
http://gitlab.oytour.com/viitto/million
parents
66fd2411
17f582c0
Show whitespace changes
Inline
Side-by-side
Showing
20 changed files
with
511 additions
and
679 deletions
+511
-679
orderPreview.vue
src/components/ScenicSpotTicket/orderPreview.vue
+129
-141
subscriber.vue
src/components/navs/subscriber.vue
+1
-2
HomeLayout.vue
src/layouts/HomeLayout.vue
+2
-2
orderForm.vue
src/pages/Pickuporder/orderForm.vue
+1
-1
details.vue
src/pages/ScenicSpotTicket/details.vue
+25
-21
orderForm.vue
src/pages/ScenicSpotTicket/orderForm.vue
+137
-433
detailsCar.vue
src/pages/detailsCar.vue
+0
-3
navs.vue
src/pages/usercenter/components/navs.vue
+14
-15
removeAccount.vue
src/pages/usercenter/components/removeAccount.vue
+4
-2
resetEmail.vue
src/pages/usercenter/components/resetEmail.vue
+4
-2
coupon.vue
src/pages/usercenter/coupon.vue
+15
-8
loginInfo.vue
src/pages/usercenter/loginInfo.vue
+6
-5
mobileUserCenter.vue
src/pages/usercenter/mobileUserCenter.vue
+136
-0
order.vue
src/pages/usercenter/order.vue
+2
-3
payInfo.vue
src/pages/usercenter/payInfo.vue
+0
-1
setAddress.vue
src/pages/usercenter/setAddress.vue
+17
-11
setInfo.vue
src/pages/usercenter/setInfo.vue
+2
-3
setUserInfo.vue
src/pages/usercenter/setUserInfo.vue
+0
-11
setUsersList.vue
src/pages/usercenter/setUsersList.vue
+10
-15
routes.js
src/router/routes.js
+6
-0
No files found.
src/components/ScenicSpotTicket/orderPreview.vue
View file @
04d43921
...
...
@@ -10,35 +10,47 @@
flat
/>
</div>
<template
v-if=
"p&&p.startDate"
>
<div
class=
"text-grey-6 f12 q-my-md"
>
選擇門票類型
</div>
<div
class=
"row wrap"
>
<div
v-for=
"(x,i) in dataList.TicketList"
:key=
"i"
>
<q-chip
size=
"14px"
clickable
@
click=
"handleSelect(x
)"
:text-color=
"selectedObj&&selectedObj.Id==x.I
d?'white':'dark'"
:color=
"selectedObj&&selectedObj.Id==x.I
d?'primary':'grey-3'"
square
>
{{
x
.
TicketName
}}
</q-chip>
<q-chip
v-if=
"x.originalB2CPrice>0"
size=
"14px"
clickable
@
click=
"handleSelect(x,1
)"
:text-color=
"x.checke
d?'white':'dark'"
:color=
"x.checke
d?'primary':'grey-3'"
square
>
{{
x
.
TicketName
}}
</q-chip>
</div>
</div>
<div
class=
"text-grey-6 f12 q-my-md"
>
選擇數量
</div>
<div
class=
"row items-end"
>
<div
class=
"col"
:class=
"
{'column':$q.platform.is.mobile}">
<div
v-if=
"selectedObj"
>
<span
class=
"text-subtitle2 text-weight-bold"
>
{{
selectedObj
.
TicketName
}}
</span>
<span
class=
"text-grey-6 f12 q-ml-sm"
></span>
(1人/票)
</span>
</
template
>
<div
class=
"text-grey-6 f12 q-my-md"
>
選擇取票方式
</div>
<div
class=
"row no-wrap"
>
<div
v-for=
"(x,i) in takeList"
:key=
"i"
>
<q-chip
size=
"14px"
clickable
@
click=
"handleSelect(x,2)"
:text-color=
"MailingStateObj&&MailingStateObj.Id==x.Id?'white':'dark'"
:color=
"MailingStateObj&&MailingStateObj.Id==x.Id?'primary':'grey-3'"
square
>
{{ x.Name }}
</q-chip>
</div>
</div>
<div
v-if=
"dataList.TicketList.map(x=>x.checked).indexOf(true)!=-1"
class=
"text-grey-6 f12 q-my-md"
>
選擇數量
</div>
<
template
v-for=
"(x,i) in dataList.TicketList"
>
<div
class=
"row items-end q-mb-md"
>
<div
v-if=
"x.checked"
:key=
"i"
class=
"col"
:class=
"
{'column':$q.platform.is.mobile}"
>
<div>
<span
class=
"text-subtitle2 text-weight-bold"
>
{{
x
.
TicketName
}}
</span>
<span
class=
"text-grey-6 f12 q-ml-sm"
></span></span>
</div>
<div
v-if=
"$q.platform.is.mobile"
>
<span
class=
"text-grey-7 product-price"
style=
"font-size: 13px"
>
CNY
{{
moneyFormat
(
p
.
originalB2CPrice
,
0
)
}}
/每票
CNY
{{
moneyFormat
(
x
.
originalB2CPrice
,
0
)
}}
/每张
</span>
</div>
</div>
<div
class=
"row items-en
d"
>
<div
class=
"row items-end"
v-if=
"x.checke
d"
>
<span
v-if=
"$q.platform.is.desktop"
class=
"text-grey-7 product-price"
style=
"font-size: 13px"
>
CNY
{{
moneyFormat
(
p
.
originalB2CPrice
,
0
)
}}
/每票
CNY
{{
moneyFormat
(
x
.
originalB2CPrice
,
0
)
}}
/每张
</span>
<q-input
style=
"width: 150px"
@
input=
"changePeople"
v-model=
"chosenObj
.Count"
v-model=
"x
.Count"
class=
"col"
:class=
"
{
'q-ml-sm q-px-none q-pl-none': $q.platform.is.desktop,
...
...
@@ -56,7 +68,7 @@
class=
"q-px-none"
flat
icon=
"remove"
@
click=
"addPeople(
'Count', -1)"
@
click=
"addPeople(x,
'Count', -1)"
/>
</
template
>
<
template
v-slot:append
>
...
...
@@ -66,14 +78,24 @@
class=
"q-px-none"
flat
icon=
"add"
@
click=
"addPeople(
'Count', 1)"
@
click=
"addPeople(x,
'Count', 1)"
/>
</
template
>
</q-input>
</div>
</div>
</template>
<div
v-if=
"MailingStateObj&&MailingStateObj.Id==1"
class=
"row items-end fz14 text-grey-6 f12 q-my-md q-pt-lg"
>
<span>
取票地址
</span>
<span
class=
"text-primary q-ml-lg"
>
{{dataList.SelffetchAddress}}
</span>
</div>
</div>
<div
class=
"q-mt-md q-pt-md"
style=
"border-top: 1px dashed #eee"
>
<div
class=
"row items-center fz12"
v-if=
"MailingStateObj&&MailingStateObj.Id==2&&p&&p.MailingMoney>0"
>
<span
class=
"text-subtitle2 text-grey-8 col"
>
邮寄费
</span>
<span
class=
"text-primary q-ml-lg"
>
{{p.MailingMoney}}
</span>
</div>
<div
class=
"row items-center"
>
<span
class=
"text-subtitle2 text-grey-6 col"
>
總金額
</span>
<span
class=
"text-h6 text-primary product-price"
>
CNY {{ moneyFormat(sumPrice,0) }}
</span>
...
...
@@ -87,12 +109,12 @@
</span>
<span
class=
"f12 text-negative"
:class=
"{'q-mr-lg':$q.platform.is.desktop}"
v-if=
"p.startDate&&
!selectedObj
"
>
{{`請選擇上面的門票類型`}}
v-if=
"p.startDate&&
(!selectedObj||!MailingStateObj)
"
>
{{`請選擇上面的門票類型
、取票方式
`}}
</span>
</span>
<q-btn
color=
"primary"
label=
"立即訂購"
unelevated
class=
"q-px-lg"
:disable=
"
sumPrice==0||!selected
Obj"
:disable=
"
!p.startDate||sumPrice==0||!selectedObj||!MailingState
Obj"
@
click=
"goOrderHandler"
/>
</div>
...
...
@@ -108,9 +130,15 @@ export default {
price
:
{
handler
(
n
,
o
)
{
this
.
p
=
n
;
if
(
n
&&
n
.
startDate
){
this
.
chosenObj
.
startDate
=
n
.
startDate
;
this
.
dataList
.
TicketList
.
forEach
(
x
=>
{
x
.
originalB2CPrice
=
0
this
.
p
.
PriceList
.
forEach
(
y
=>
{
if
(
x
.
Id
==
y
.
TicketId
){
x
.
originalB2CPrice
=
y
.
Price
}
})
x
.
Count
=
60
})
this
.
calcMoney
()
},
...
...
@@ -120,7 +148,6 @@ export default {
dataList
:
{
handler
(
n
,
o
)
{
this
.
dataList
=
n
;
},
deep
:
true
,
immediate
:
true
...
...
@@ -133,26 +160,30 @@ export default {
sumPrice
:
0
,
selectedObj
:
null
,
priceList
:
[],
takeList
:[
{
Name
:
'自行取票'
,
Id
:
1
},
{
Name
:
'邮寄票券'
,
Id
:
2
},
],
MailingStateObj
:
null
,
};
},
created
()
{
this
.
initModel
();
if
(
this
.
p
.
startDate
){
this
.
chosenObj
.
startDate
=
this
.
p
.
startDate
;
this
.
calcMoney
()
this
.
getCarPriceData2
()
}
},
methods
:
{
goOrderHandler
(){
let
order
=
{
CouponsId
:
this
.
configId
,
TicketId
:
this
.
selected
Obj
.
Id
,
MailingState
:
this
.
MailingState
Obj
.
Id
,
Month
:
this
.
Month
,
startDate
:
this
.
p
.
startDate
,
MailingMoney
:
this
.
p
.
MailingMoney
,
originalB2CPrice
:
this
.
p
.
originalB2CPrice
,
orderInfo
:
this
.
chosenObj
,
sumPrice
:
this
.
sumPrice
,
TicketList
:
this
.
dataList
.
TicketList
.
filter
(
x
=>
x
.
checked
)
}
let
key
=
this
.
$md5
(
JSON
.
stringify
(
order
))
let
pickuporderScenTickets
=
localStorage
.
getItem
(
'pickuporderScenTickets'
)
...
...
@@ -162,81 +193,28 @@ export default {
order
})
localStorage
.
setItem
(
"pickuporderScenTickets"
,
JSON
.
stringify
(
pickuporderScenTickets
))
this
.
CommonJump
(
'/PickuporderForm/'
+
key
,
{});
},
// 获取报价的详情
getCarPriceData2
()
{
this
.
priceList
=
[]
this
.
apipost
(
"b2c_get_GetTicketCouponsMonthPrice"
,
{
CouponsId
:
this
.
configId
,
TicketId
:
this
.
selectedObj
.
Id
,
Month
:
this
.
Month
,
this
.
CommonJump
(
'/ScenicSpotTicketOrderForm/'
+
key
,
{});
},
(
r
)
=>
{
if
(
r
.
data
.
resultCode
==
1
)
{
let
arr
=
[]
r
.
data
.
data
.
forEach
(
x
=>
{
if
(
x
.
Price
){
if
(
this
.
chosenObj
.
startDate
==
x
.
Date
){
this
.
p
.
originalB2CPrice
=
x
.
Price
}
let
dataObj
=
{
startDate
:
x
.
Date
,
originalB2CPrice
:
x
.
Price
,
remainNum
:
1
,
Count
:
1
,
isSupportChildren
:
1
,
safeMoney
:
0
,
}
if
(
date
.
formatDate
(
Date
.
now
(),
'YYYY-MM-DD'
)
!=
x
.
Date
&&
x
.
Date
>
date
.
formatDate
(
Date
.
now
(),
'YYYY-MM-DD'
)){
arr
.
push
(
dataObj
)
}
}
})
const
temp
=
JSON
.
parse
(
JSON
.
stringify
(
r
.
data
.
data
))
let
PriceArr
=
temp
.
filter
(
x
=>
{
return
x
.
Price
>
0
})
if
(
PriceArr
.
length
>
0
){
this
.
$emit
(
'getPriceList'
,
JSON
.
stringify
(
arr
),
this
.
selectedObj
.
Id
)
handleSelect
(
item
,
type
){
if
(
type
==
2
){
this
.
MailingStateObj
=
item
}
else
{
let
dataObj
=
{
startDate
:
''
,
originalB2CPrice
:
''
,
remainNum
:
0
,
Count
:
0
,
safeMoney
:
0
,
PeopleNum
:
1
}
this
.
priceList
.
push
(
dataObj
)
this
.
$emit
(
'getPriceList'
,
JSON
.
stringify
(
this
.
priceList
),
this
.
selectedObj
.
Id
)
this
.
p
.
originalB2CPrice
=
0
this
.
resetHandler
()
}
}
},
null
)
},
handleSelect
(
item
){
item
.
checked
=
!
item
.
checked
this
.
selectedObj
=
item
}
setTimeout
(()
=>
{
this
.
getCarPriceData2
()
this
.
calcMoney
()
},
100
)
},
initModel
()
{
this
.
sumPrice
=
0
this
.
chosenObj
=
{
startDate
:
""
,
Count
:
1
,
remark
:
""
,
};
},
resetHandler
(
type
)
{
if
(
type
){
resetHandler
()
{
this
.
selectedObj
=
null
}
this
.
MailingStateObj
=
null
this
.
dataList
.
TicketList
.
forEach
(
x
=>
{
x
.
checked
=
false
})
setTimeout
(()
=>
{
this
.
p
=
{};
this
.
initModel
()
...
...
@@ -244,18 +222,28 @@ export default {
this
.
$emit
(
"reset"
);
},
changePeople
(
val
)
{},
addPeople
(
m
,
i
,
isDf
=
false
)
{
this
.
chosenObj
[
m
]
=
parseInt
(
this
.
chosenObj
[
m
])
+
i
;
addPeople
(
item
,
m
,
i
,
isDf
=
false
)
{
let
chosenObj
=
item
chosenObj
[
m
]
=
parseInt
(
chosenObj
[
m
])
+
i
;
if
(
m
!=
'Count'
){
this
.
chosenObj
[
m
]
=
this
.
chosenObj
[
m
]
<
0
?
0
:
this
.
chosenObj
[
m
]
++
;
chosenObj
[
m
]
=
chosenObj
[
m
]
<
0
?
0
:
chosenObj
[
m
]
++
;
}
else
{
this
.
chosenObj
[
m
]
=
this
.
chosenObj
[
m
]
<
1
?
1
:
this
.
chosenObj
[
m
]
++
;
chosenObj
[
m
]
=
chosenObj
[
m
]
<
1
?
1
:
chosenObj
[
m
]
++
;
}
this
.
calcMoney
()
},
calcMoney
()
{
if
(
!
this
.
p
)
return
;
let
money
=
this
.
p
.
originalB2CPrice
*
this
.
chosenObj
.
Count
;
let
money
=
0
this
.
dataList
.
TicketList
.
forEach
(
x
=>
{
if
(
x
.
checked
){
money
+=
x
.
originalB2CPrice
*
x
.
Count
}
})
if
(
this
.
MailingStateObj
&&
this
.
MailingStateObj
.
Id
==
2
){
this
.
sumPrice
=
Number
(
money
)
+
Number
(
this
.
p
.
MailingMoney
)
return
}
this
.
sumPrice
=
money
;
},
},
...
...
src/components/navs/subscriber.vue
View file @
04d43921
...
...
@@ -46,7 +46,6 @@ border-radius: 28px;
top
:
5px
;
width
:
102px
;
height
:
46px
;
background
:
#EE4454
;
border-radius
:
23px
;
}
</
style
>
>
...
...
@@ -60,7 +59,7 @@ border-radius: 23px;
最高可省60%,只有订阅用户才能享受到隐藏优惠,点击“订阅”,即表示你同意我们的《訂閱條款》
</div>
<div
class=
"email-box"
:class=
"
{'mobile':$q.platform.is.mobile}">
<q-input
class=
"input"
:class=
"
{'mobile':$q.platform.is.mobile}" rounded outlined placeholder="請輸入您在使用的電子郵件">
</q-input><q-btn
class=
"btn"
label=
"提交"
></q-btn>
<q-input
class=
"input"
:class=
"
{'mobile':$q.platform.is.mobile}" rounded outlined placeholder="請輸入您在使用的電子郵件">
</q-input><q-btn
c
olor=
"primary"
c
lass=
"btn"
label=
"提交"
></q-btn>
</div>
</div>
</div>
...
...
src/layouts/HomeLayout.vue
View file @
04d43921
...
...
@@ -30,8 +30,8 @@
<hor-big-one
:base-data=
"baseinfo"
:dataList=
"dataList"
ref=
"webhead"
></hor-big-one>
<!--
<hor-big-two
v-if=
"headType==2"
:base-data=
"baseinfo"
ref=
"webhead"
></hor-big-two>
-->
<q-page-container>
<div
class=
"flex justify-between"
v-if=
"showUserInfo"
style=
"width: 1200px; margin: 0 auto
"
>
<navs></navs>
<div
class=
"flex justify-between"
v-if=
"showUserInfo"
:style=
"$q.platform.is.desktop ? 'width: 1200px; margin: 0 auto' : ''
"
>
<navs
v-if=
"$q.platform.is.desktop"
></navs>
<router-view
/>
</div>
<router-view
v-else
/>
...
...
src/pages/Pickuporder/orderForm.vue
View file @
04d43921
...
...
@@ -170,7 +170,7 @@
standout
v
-
model
=
"parameters.Mobile"
label
=
"電話"
:
rules
=
"[(val) => !!val
&& val.length == 11
|| '請輸正確電話']"
:
rules
=
"[(val) => !!val || '請輸正確電話']"
ref
=
"Mobile"
mask
=
"#"
reverse
-
fill
-
mask
...
...
src/pages/ScenicSpotTicket/details.vue
View file @
04d43921
...
...
@@ -29,7 +29,7 @@
class=
"col product-price text-subtitle1 text-weight-bold"
style=
"text-align: left"
>
<span
v-if=
"priceList
2&&priceList2.length"
>
{{
dataList
.
CurrencyCode
}}
{{
moneyFormat
(
priceList2
[
0
].
originalB2CPrice
,
0
)
}}
</span>
<span
v-if=
"priceList
&&priceList.length"
>
{{
dataList
.
CurrencyCode
}}
{{
moneyFormat
(
priceList
[
0
].
originalB2CPrice
,
0
)
}}
</span>
<span
class=
"q-ml-sm f12 text-grey-7"
>
起
</span>
</span>
<q-btn
...
...
@@ -174,9 +174,9 @@
$q.platform.is.mobile,
}"
>
<div
class=
"product-price text-h6"
v-if=
"priceList
2&&priceList2
.length>0"
>
<div
class=
"product-price text-h6"
v-if=
"priceList
&&priceList
.length>0"
>
<!-- CNY:
{{
dataList
.
}}
-->
{{
dataList
.
CurrencyCode
?
dataList
.
CurrencyCode
:
'CNY'
}}
:
{{
moneyFormat
(
priceList
2
[
0
].
originalB2CPrice
,
0
)
}}
{{
dataList
.
CurrencyCode
?
dataList
.
CurrencyCode
:
'CNY'
}}
:
{{
moneyFormat
(
priceList
[
0
].
originalB2CPrice
,
0
)
}}
<span
class=
"f12 text-grey-6"
>
起
</span>
</div>
<div
v-else
class=
"text-subtitle1 text-grey-6"
>
暫無報價
</div>
...
...
@@ -318,7 +318,7 @@
<span
class=
"product-price text-h6 q-mr-md"
>
{{
dataList
.
CurrencyCode
?
dataList
.
CurrencyCode
:
'CNY'
}}
{{
moneyFormat
(
priceList
2
[
0
].
originalB2CPrice
,
0
)
moneyFormat
(
priceList
[
0
].
originalB2CPrice
,
0
)
}}
</span
>
<q-btn
...
...
@@ -330,7 +330,7 @@
/>
</div>
<div
class=
"text-info q-mt-md text-right"
>
最早可預訂日期:
{{
priceList
2
[
0
].
startDate
}}
最早可預訂日期:
{{
priceList
[
0
].
startDate
}}
</div>
</div>
</div>
...
...
@@ -562,7 +562,6 @@ export default {
data
()
{
return
{
AddressObj
:
null
,
priceList2
:
[],
priceList
:
[],
selectedId
:
''
,
currentYM
:
{
year
:
2023
,
month
:
2
,
str
:
"2023-02"
}
,
// 当前年月
...
...
@@ -713,7 +712,6 @@ export default {
this
.
TripConfig
=
JSON
.
parse
(
window
.
localStorage
.
getItem
(
"baseifo"
));
}
window
.
addEventListener
(
"scroll"
,
this
.
menu
);
window
.
addEventListener
(
"scroll"
,
this
.
menu
);
this
.
getData
();
}
,
methods
:
{
...
...
@@ -722,6 +720,9 @@ export default {
if
(
!
this
.
showOrderPreview
){
this
.
changeTripShowHandler
()
}
this
.
dataList
.
TicketList
.
forEach
(
x
=>
{
x
.
checked
=
false
}
)
}
,
changeTripShowHandler
()
{
this
.
$nextTick
(()
=>
{
...
...
@@ -815,6 +816,7 @@ export default {
}
,
resetHandler
()
{
this
.
currentPrice
.
startDate
=
""
;
if
(
!
this
.
$q
.
platform
.
is
.
mobile
){
this
.
$refs
.
calendar
.
reset
();
}
...
...
@@ -841,14 +843,18 @@ export default {
{
CouponsId
:
this
.
msg
.
configId
}
,
(
r
)
=>
{
if
(
r
.
data
.
resultCode
==
1
)
{
let
addList
=
function
(
arr
)
{
arr
.
forEach
(
item
=>
{
item
.
checked
=
false
item
.
Count
=
1
}
);
}
;
addList
(
r
.
data
.
data
.
TicketList
);
this
.
dataList
=
r
.
data
.
data
;
this
.
selectedId
=
this
.
dataList
.
TicketList
.
find
(
x
=>
x
.
Id
)
this
.
dataList
.
imgCover
=
this
.
dataList
.
PicPathList
;
this
.
AddressObj
=
this
.
dataList
this
.
AddressObj
.
Address
=
`${this.dataList.CountryName
}
-${this.dataList.CityName
}
-${this.dataList.ProvinceName
}
-${this.dataList.Address
}
`
//
{
// Address:`$
{
this
.
dataList
.
CountryName
}
-
$
{
this
.
dataList
.
CityName
}
-
$
{
this
.
dataList
.
Address
}
`
//
}
this
.
isShow
=
true
;
if
(
this
.
dataList
.
videoStr
&&
this
.
dataList
.
videoStr
!=
""
)
{
this
.
options
.
loop
=
false
;
...
...
@@ -864,7 +870,7 @@ export default {
}
);
}
this
.
$nextTick
(()
=>
{
this.getCarPriceData
2
()
this
.
getCarPriceData
()
setTimeout
(()
=>
{
this
.
navs
.
forEach
((
x
)
=>
{
x
.
top
=
...
...
@@ -900,36 +906,34 @@ export default {
);
}
,
// 获取报价的详情
getCarPriceData
2
() {
getCarPriceData
()
{
this
.
priceList
=
[]
this
.
apipost
(
"b2c_get_GetTicketCouponsMonthPrice",
"b2c_get_GetTicketCouponsMonthPrice
All
"
,
{
CouponsId
:
this
.
msg
.
configId
,
TicketId: this.dataList.TicketList[1
].Id,
// TicketId: this.dataList.TicketList[0
].Id,
Month
:
this
.
currentYM
.
str
,
}
,
(
r
)
=>
{
if
(
r
.
data
.
resultCode
==
1
)
{
let
arr
=
[]
r
.
data
.
data
.
forEach
(
x
=>
{
if(x.Price){
x
.
PriceList
=
x
.
PriceList
.
sort
((
a
,
b
)
=>
{
return
a
.
Price
-
b
.
Price
}
)
let
dataObj
=
{
startDate
:
x
.
Date
,
originalB2CPrice: x.Price,
originalB2CPrice
:
x
.
Price
List
[
0
].
Price
,
remainNum
:
1
,
Count
:
1
,
safeMoney
:
0
,
PeopleNum: 1
MailingMoney
:
x
.
PriceList
[
0
].
MailingMoney
,
PriceList
:
x
.
PriceList
,
}
if
(
date
.
formatDate
(
Date
.
now
(),
'YYYY-MM-DD'
)
!=
x
.
Date
&&
x
.
Date
>
date
.
formatDate
(
Date
.
now
(),
'YYYY-MM-DD'
)){
arr
.
push
(
dataObj
)
}
}
}
)
this
.
priceList
=
JSON
.
parse
(
JSON
.
stringify
(
arr
))
this.priceList2 = JSON.parse(JSON.stringify(arr))
}
}
,
null
)
...
...
src/pages/ScenicSpotTicket/orderForm.vue
View file @
04d43921
...
...
@@ -91,7 +91,7 @@
/>
<q-img
v-else
:src=
"details?details.
Image
List[0]:'https://image.kkday.com/v2/image/get/s1.kkday.com/product_138437/20230217083232_t5rcO/jpg'"
:src=
"details?details.
PicPath
List[0]:'https://image.kkday.com/v2/image/get/s1.kkday.com/product_138437/20230217083232_t5rcO/jpg'"
class=
"rounded-borders"
spinner-color=
"grey-3"
style=
"width: 80px"
...
...
@@ -101,7 +101,7 @@
{{
details
.
Name
}}
</div>
<div
class=
"text-caption text-grey-6 ellipsis q-mt-sm"
>
{{
details
.
Description
}}
{{
details
.
Feature
}}
</div>
</div>
</div>
...
...
@@ -110,23 +110,25 @@
<q-icon
name=
"iconfont iconrili"
size=
"20px"
class=
"q-mr-sm"
/>
<span>
{{
OrderDate
.
startDate
}}
</span>
</div>
<div
class=
"text-grey-9 q-ml-md"
v-if=
"
chosenObj.Count > 0&&Car
Obj"
>
<q-icon
name=
"iconfont icon
jiaotong
"
size=
"20px"
class=
"q-mr-sm"
/>
<span
class=
"q-mr-sm"
>
{{
CarObj
.
CarName
}}
x
{{
chosenObj
.
Count
}}
辆
</span
<div
class=
"text-grey-9 q-ml-md"
v-if=
"
option
Obj"
>
<q-icon
name=
"iconfont icon
people
"
size=
"20px"
class=
"q-mr-sm"
/>
<span
class=
"q-mr-sm"
v-for=
"(x,i) in optionObj"
:key=
"i"
>
{{
x
.
TicketName
}}
x
{{
x
.
Count
}}
张
</span
>
<span
class=
"q-mr-sm"
>
(
{{
CarObj
.
PeopleNum
}}
人/辆)
</span
></span
>
<template
v-if=
"details.TravelHours>0"
>
<q-icon
name=
"iconfont icontime"
size=
"20px"
class=
"q-mr-xs q-ml-sm"
/>
<span
class=
"q-mr-sm"
>
{{
`包車時長:${details.TravelHours
}
h`
}}
行程時間 1 天
</span>
<
/template
>
</div>
</div>
<div
v-if=
"parameters.MailingState==1"
class=
"rounded-borders bg-blue-1 q-px-lg q-py-sm q-mt-sm"
>
自取地址:
{{
parameters
.
SelffetchAddress
}}
</div>
<q-separator
color=
"grey-2"
class=
"q-mt-md"
/>
<div
class=
"bg-grey-1 rounded-borders q-pa-md q-mt-md guest-item"
>
...
...
@@ -135,42 +137,31 @@
<div
:class=
"filedGuestWidth"
>
<q-input
standout
v
-
model
=
"parameters.
Sur
Name"
label
=
"本國姓"
placeholder
=
"例:張"
:
rules
=
"[(val) => !!val || '請輸本國姓']"
v-model=
"parameters.Name"
label=
"本國姓
名
"
placeholder=
"例:張
三
"
:rules=
"[(val) => !!val || '請輸本國姓
名
']"
ref=
"SurName"
/>
</div>
<div
:class=
"filedGuestWidth"
>
<q-input
standout
v
-
model
=
"parameters.Name"
label
=
"本國
名
"
placeholder
=
"例:
三
"
:
rules
=
"[(val) => !!val || '請輸本國
名
']"
v-model=
"parameters.
E
Name"
label=
"本國
姓名(英文)
"
placeholder=
"例:
zhangsan
"
:rules=
"[(val) => !!val || '請輸本國
姓名(英文)
']"
ref=
"Name"
/>
<
/div
>
<
div
:
class
=
"filedGuestWidth"
>
<
q
-
input
standout
v
-
model
=
"parameters.ContactWay"
label
=
"联络方式"
placeholder
=
"例:WeChat"
:
rules
=
"[(val) => !!val || '請輸联络方式']"
ref
=
"ContactWay"
mask=
"X"
reverse-fill-mask
>
<
/q-input
>
/>
</div>
<div
:class=
"filedGuestWidth"
>
<q-input
standout
v-model=
"parameters.Mobile"
label=
"電話"
:
rules
=
"[(val) => !!val
&& val.length == 11
|| '請輸正確電話']"
:rules=
"[(val) => !!val || '請輸正確電話']"
ref=
"Mobile"
mask=
"#"
reverse-fill-mask
...
...
@@ -195,234 +186,16 @@
</div>
</div>
</div>
<
template
v
-
if
=
"details.CarType!=3"
>
<
div
class
=
"text-subtitle1 text-weight-bolder q-my-md"
>
{{
details
.
CarType
==
1
?
'抵達'
:
'起飛'
}}
班机資料
<
/div
>
<
q
-
separator
color
=
"grey-2"
class
=
"q-mt-md"
/>
<
div
class
=
"bg-grey-1 rounded-borders q-pa-md q-mt-md guest-item"
>
<
div
class
=
"text-subtitle1 q-pb-md text-weight-bold"
><
/div
>
<
div
class
=
"row q-col-gutter-md"
>
<
div
:
class
=
"filedGuestWidth"
>
<
q
-
input
standout
v
-
model
=
"parameters.AirportTerminal"
label
=
"航廈"
placeholder
=
"例:航廈"
:
rules
=
"[(val) => !!val || '請輸航廈']"
ref
=
"AirportTerminal"
readonly
>
<
q
-
popup
-
proxy
:
offset
=
"[0, 10]"
ref
=
"qDateProxy7"
>
<
q
-
input
type
=
"textarea"
dense
standout
autofocus
v
-
model
=
"parameters.AirportTerminal"
placeholder
=
"請輸航廈"
/>
<
/q-popup-proxy
>
<
/q-input
>
<
/div
>
<
div
:
class
=
"filedGuestWidth"
>
<
q
-
input
standout
v
-
model
=
"parameters.AirLine"
label
=
"航空公司"
placeholder
=
""
:
rules
=
"[(val) => !!val || '請輸航空公司名稱']"
ref
=
"AirLine"
readonly
>
<
q
-
popup
-
proxy
:
offset
=
"[0, 10]"
ref
=
"qDateProxy8"
>
<
q
-
input
type
=
"textarea"
dense
standout
autofocus
v
-
model
=
"parameters.AirLine"
placeholder
=
"請輸航空公司名稱"
/>
<
/q-popup-proxy
>
<
/q-input
>
<
/div
>
<
div
:
class
=
"filedGuestWidth"
>
<
q
-
input
standout
v
-
model
=
"parameters.FlightNumber"
label
=
"航班編號"
placeholder
=
"例:CA123"
:
rules
=
"[(val) => !!val || '請輸航班編號']"
ref
=
"FlightNumber"
mask
=
"X"
reverse
-
fill
-
mask
/>
<
/div
>
<
div
:
class
=
"filedGuestWidth"
>
<
q
-
input
class
=
"q-pb-md"
standout
:
value
=
"!flightTime?'':parameters.FlightTime"
:
label
=
"`航班${details.CarType==1?'抵達':'起飛'
}
時間`"
:
rules
=
"[(val) => !!val || `請选航班${details.CarType==1?'抵達':'起飛'
}
時間`]"
ref
=
"FlightTime"
>
<
template
v
-
slot
:
append
>
<
q
-
icon
name
=
"event"
class
=
"cursor-pointer"
><
/q-icon
>
<
/template
>
<
q
-
popup
-
proxy
:
offset
=
"[0, 0]"
ref
=
"qDateProxy1"
>
<
div
class
=
"row"
>
<!--
<
q
-
date
mask
=
"YYYY-MM-DD HH:mm"
:
title
=
"$t('search_date_begin')"
subtitle
=
"選擇"
v
-
model
=
"parameters.FlightTime"
:
options
=
"optionsFn"
/>
<
div
class
=
"q-px-sm"
><
/div> --
>
<
q
-
time
format24h
v
-
model
=
"flightTime"
mask
=
"HH:mm"
@
input
=
"getTime(1)"
/>
<
/div
>
<
/q-popup-proxy
>
<
/q-input
>
<
/div
>
<
/div
>
<
/div
>
<
/template
>
<
div
class
=
"text-subtitle1 text-weight-bolder q-my-md"
>
{{
details
.
CarType
==
1
?
'接机'
:
details
.
CarType
==
2
?
'送机'
:
'包车'
}}
資料
<
/div
>
<
q
-
separator
color
=
"grey-2"
class
=
"q-mt-md"
/>
<
div
class
=
"bg-grey-1 rounded-borders q-pa-md q-mt-md guest-item"
>
<
div
class
=
"text-subtitle1 q-pb-md text-weight-bold"
><
/div
>
<
div
class
=
"row q-col-gutter-md"
>
<
div
:
class
=
"filedGuestWidth"
>
<
q
-
input
standout
v
-
model
=
"!getBusTime?'':parameters.OrderDate"
label
=
"接駁日期"
:
rules
=
"[(val) => !!val || '請选接駁日期']"
ref
=
"OrderDate"
>
<
template
v
-
slot
:
append
>
<
q
-
icon
name
=
"event"
class
=
"cursor-pointer"
><
/q-icon
>
<
/template
>
<
q
-
popup
-
proxy
:
offset
=
"[0, 0]"
ref
=
"qDateProxy2"
>
<
div
class
=
"row"
>
<!--
<
q
-
date
mask
=
"YYYY-MM-DD"
:
title
=
"$t('search_date_begin')"
subtitle
=
"選擇"
v
-
model
=
"getBusTimeDate"
:
options
=
"optionsFn"
@
input
=
"getTime(3)"
/>
<
div
class
=
"q-px-sm"
><
/div> --
>
<
q
-
time
format24h
v
-
model
=
"getBusTime"
mask
=
"HH:mm"
@
input
=
"getTime(2)"
/>
<
/div
>
<
/q-popup-proxy
>
<
/q-input
>
<
/div
>
<
div
:
class
=
"filedGuestWidth"
v
-
if
=
"details.CarType!=1"
>
<
q
-
input
standout
v
-
model
=
"parameters.GetonAddress"
label
=
"上車地點"
placeholder
=
""
:
rules
=
"[(val) => !!val || '請輸上車地點供司機參考']"
ref
=
"GetonAddress"
readonly
>
<
template
v
-
slot
:
append
>
<!--
<
q
-
icon
name
=
"iconfont iconaddress"
size
=
"20px"
class
=
"q-mr-sm"
@
click
=
"getAddress(1)"
/>
-->
<
/template
>
<
q
-
popup
-
proxy
:
offset
=
"[0, 10]"
ref
=
"qDateProxy5"
>
<
q
-
input
type
=
"textarea"
dense
standout
autofocus
v
-
model
=
"parameters.GetonAddress"
placeholder
=
"請輸上車地點供司機參考"
/>
<
/q-popup-proxy
>
<
/q-input
>
<
/div
>
<
div
:
class
=
"filedGuestWidth"
v
-
if
=
"details.CarType!=2"
>
<
q
-
input
standout
v
-
model
=
"parameters.GetoffAddress"
label
=
"下車地點"
placeholder
=
""
:
rules
=
"[(val) => !!val || '請輸下車地點供司機參考']"
ref
=
"GetoffAddress"
readonly
>
<
template
v
-
slot
:
append
>
<!--
<
q
-
icon
name
=
"iconfont iconaddress"
size
=
"20px"
class
=
"q-mr-sm"
@
click
=
"getAddress(2)"
/>
-->
<
/template
>
<
q
-
popup
-
proxy
:
offset
=
"[0, 10]"
ref
=
"qDateProxy6"
>
<
q
-
input
type
=
"textarea"
dense
standout
autofocus
v
-
model
=
"parameters.GetoffAddress"
placeholder
=
"請輸下車地點供司機參考"
/>
<
/q-popup-proxy
>
<
/q-input
>
<
/div
>
<
/div
>
<
/div
>
<
div
class
=
"text-subtitle1 text-weight-bolder q-my-md"
>
乘客資料
<
/div
>
<
q
-
separator
color
=
"grey-2"
class
=
"q-mt-md"
/>
<
div
class
=
"bg-grey-1 rounded-borders q-pa-md q-mt-md guest-item"
>
<
div
class
=
"text-subtitle1 q-pb-md text-weight-bold"
>
乘客数量
<
/div
>
<
div
class
=
"row q-col-gutter-md"
>
<
div
:
class
=
"filedGuestWidth"
>
<
q
-
input
standout
v
-
model
=
"parameters.ManNum"
label
=
"成人數(18-99岁)"
@
input
=
"getNum"
:
rules
=
"[(val) => !!val || '請輸成人數']"
ref
=
"ManNum"
mask
=
"#"
reverse
-
fill
-
mask
/>
<
/div
>
<
div
:
class
=
"filedGuestWidth"
>
<
q
-
input
standout
v
-
model
=
"parameters.ChildNum"
label
=
"兒童數(3-17岁)"
@
input
=
"getNum"
mask
=
"#"
reverse
-
fill
-
mask
/>
<
/div
>
<
div
:
class
=
"filedGuestWidth"
>
<
q
-
input
standout
v
-
model
=
"parameters.BabyNum"
label
=
"嬰幼兒數(0-2岁)"
@
input
=
"getNum"
mask
=
"#"
reverse
-
fill
-
mask
/>
<
/div
>
<
/div
>
<
template
v
-
if
=
"details.CarType!=3"
>
<
div
class
=
"text-subtitle1 q-py-md text-weight-bold"
>
行李数量
<
/div
>
<
div
class
=
"row q-col-gutter-md"
>
<
div
:
class
=
"filedGuestWidth"
>
<
q
-
input
standout
v
-
model
=
"parameters.HandLuggageNum"
label
=
"手提行李"
mask
=
"#"
reverse
-
fill
-
mask
/>
<
/div
>
<
div
:
class
=
"filedGuestWidth"
>
<
q
-
input
standout
v
-
model
=
"parameters.RegisteredLuggageNum"
label
=
"托运行李"
mask
=
"#"
reverse
-
fill
-
mask
/>
<
/div
>
<
/div
>
<
/template
>
<
/div
>
<div
class=
"text-subtitle1 q-my-md text-weight-bold"
>
特殊需求備註:
</div>
<q-input
standout
v-model=
"parameters.Remark"
input-style=
"height:170px;"
type=
"textarea"
placeholder=
"此欄位僅限資料備註。不在商品規範內的個人需求,不保證提供"
maxlength=
"200"
counter
/>
</q-card>
</q-form>
<coupon
v-if=
"sumPrice>0"
:product-type=
"productType"
:current-price=
"sumPrice"
@
change=
"changeDiscountHandler"
></coupon>
</div>
<div
class=
"relative-position"
v-if=
"details"
...
...
@@ -464,7 +237,7 @@
/>
<q-img
v-else
:
src
=
"details?details.
Image
List[0]:'https://image.kkday.com/v2/image/get/s1.kkday.com/product_138437/20230217083232_t5rcO/jpg'"
:src=
"details?details.
PicPath
List[0]:'https://image.kkday.com/v2/image/get/s1.kkday.com/product_138437/20230217083232_t5rcO/jpg'"
class=
"rounded-borders"
spinner-color=
"grey-3"
style=
"width: 80px"
...
...
@@ -474,51 +247,49 @@
{{details.Name}}
</div>
<div
class=
"text-caption text-grey-6 ellipsis q-mt-sm"
>
{{
details
.
Description
}}
{{details.
Feature
}}
</div>
</div>
</div>
<div
class=
"q-mt-md text-grey-6"
>
<
div
class
=
"row q-pb-xs no-wrap"
v
-
if
=
"AirportObj&&AirportObj.Name"
>
<
div
style
=
"width: 80px"
>
{{
details
.
CarType
==
1
?
'接'
:
'送'
}}
機機場:
<
/div
>
<
div
class
=
"q-ml-md ellipsis-2-lines"
>
{{
AirportObj
.
Name
}}
<
/div
>
<
/div
>
<
div
class
=
"row q-pb-xs no-wrap"
v
-
if
=
"AirportObj&&AirportObj.Name"
>
<
div
style
=
"width: 80px"
>
{{
details
.
CarType
==
1
?
'抵達'
:
'起飛'
}}
時間:
<
/div
>
<
div
class
=
"q-ml-md ellipsis-2-lines"
>
{{
parameters
.
FlightTime
}}
<
/div
>
<
/div
>
<
div
class
=
"row q-pb-xs no-wrap"
v
-
if
=
"parameters.GetonAddress"
>
<
div
style
=
"width: 80px"
>
上車點:
<
/div
>
<
div
class
=
"q-ml-md ellipsis-2-lines"
>
{{
parameters
.
GetonAddress
}}
<
/div
>
<
/div
>
<
div
class
=
"row q-pb-xs no-wrap"
v
-
if
=
"parameters.GetoffAddress"
>
<
div
style
=
"width: 80px"
>
下車點:
<
/div
>
<
div
class
=
"q-ml-md ellipsis-2-lines"
>
{{
parameters
.
GetoffAddress
}}
<
/div
>
<
/div
>
<div
class=
"row"
>
<div
style=
"width: 80px"
>
<!--
出發日期:
-->
接駁日期:
<
/div
>
门票日期:
</div>
<div
class=
"q-ml-md"
>
{{
parameters
.
Order
Date
}}
{{parameters.
Use
Date}}
</div>
</div>
</div>
<q-separator
color=
"grey-2"
class=
"q-my-md"
/>
<div
class=
"text-grey-9"
>
<
div
class
=
"row q-mb-sm"
v
-
if
=
"chosenObj.Count>0&&CarObj"
>
<
div
class
=
"col"
>
{{
CarObj
.
CarName
}}
x
{{
chosenObj
.
Count
}}
<
/div
>
<
div
>
{{
details
.
CurrencyCode
}}
{{
moneyFormat
(
OrderDate
.
originalB2CPrice
,
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-subtitle2 text-weight-bolder text-primary"
>
{{
details
.
CurrencyCode
}}
{{
moneyFormat
(
OrderDate
.
sumPrice
,
2
)
}}
<
/div
>
<
/div> --
>
<
template
v-if=
"optionObj"
>
<div
class=
"row q-mb-sm"
v-for=
"(x,i) in optionObj"
:key=
"i"
>
<template
v-if=
"x.checked"
>
<div
class=
"col"
>
{{
x
.
TicketName
}}
x
{{
x
.
Count
}}
</div>
<div>
{{
moneyFormat
(
x
.
originalB2CPrice
,
2
)
}}
</div>
</
template
>
</div>
</template>
<div
class=
"row q-mb-sm"
v-if=
"parameters.MailingState==2&¶meters.MailingMoney>0"
>
<div
class=
"col text-grey-6"
>
邮寄费
</div>
<div
class=
"text-red"
>
{{ moneyFormat(parameters.MailingMoney,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=
"row q-mb-sm items-center"
>
<div
class=
"col"
>
優惠金額
</div>
<div
class=
"text-subtitle2 text-weight-bolder text-teal"
v-if=
"parameters.DiscountsMoney > 0"
>
CNY - {{ moneyFormat(parameters.DiscountsMoney, 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"
>
{{
details
.
CurrencyCode
}}
{{
moneyFormat
(
OrderDate
.
sumPrice
,
2
)
}}
<
/div
>
<div
class=
"text-h6 text-weight-bolder text-primary product-price"
>
CNY {{ moneyFormat(parameters.Money, 2) }}
</div>
</div>
</div>
<div
class=
"text-right q-mt-md"
v-if=
"step!=3"
>
...
...
@@ -531,18 +302,6 @@
</div>
</div>
</div>
<
q
-
dialog
v
-
model
=
"isShowDialog"
>
<
q
-
card
class
=
"q-pa-lg"
:
style
=
"{'width':$q.platform.is.desktop?'100%':'500px'
}
"
>
<
div
class
=
"text-h6Detail"
>
<
span
>
乘客
{{
onoffbus
==
1
?
'上'
:
'下'
}}
車範圍
<
/span
>
<
i
class
=
"iconfont iconbaseline-close-px"
@
click
=
"isShowDialog=false"
><
/i
>
<
/div
>
<
q
-
separator
/>
<
div
style
=
"max-height: 600px;padding:20px 0"
class
=
"scroll"
>
<
componentsMap
:
AddressObj
=
"onCarObj"
/>
<
/div
>
<
/q-card
>
<
/q-dialog
>
<div
v-if=
"!orderKey || orderKey == ''"
class=
"text-center q-my-xl"
>
<none-data
iconType=
"order"
...
...
@@ -560,6 +319,7 @@
import
{
date
}
from
'quasar'
import
{
json
}
from
"body-parser"
;
import
coupon
from
'src/components/common/coupon.vue'
import
ProductTypeEnum
from
"src/utils/producttypeenum"
;
import
componentsMap
from
"src/components/car/Map.vue"
;
export
default
{
components
:{
...
...
@@ -570,14 +330,12 @@
},
data
()
{
return
{
CouponIds
:
[],
productType
:
4
,
sumPrice
:
0
,
//总金额
order
:
null
,
//订单信息
orderKey
:
""
,
isShowDialog
:
false
,
AddressObj
:
null
,
onCarObj
:
null
,
//上车范围
unCarObj
:
null
,
//下车范围
CarObj
:
null
,
//车型
AirportObj
:
null
,
//机场
optionObj
:
null
,
//类型
details
:
null
,
//产品详情
options
:
{
//音频控件
currentPage
:
0
,
...
...
@@ -597,44 +355,30 @@
areaCode
:
""
,
Mailbox
:
""
,
},
chosenObj
:
{
}
,
countrys
:
[],
areaCodes
:
[],
loading
:
false
,
parameters
:
{
OrderId
:
0
,
OrderType
:
0
,
OrderDate
:
''
,
//预定日期
Unit_Price
:
''
,
//单价
Num
:
''
,
//数量
Money
:
0.0
,
Sex
:
1
,
//1男2女
SurName
:
''
,
//姓
Name
:
''
,
//名
DiscountsMoney
:
0
,
//优惠金额
CouponAllotIds
:
''
,
Remark
:
''
,
AirportId
:
''
,
AirportTerminal
:
''
,
//航厦
AirLine
:
''
,
//航空公司名称
FlightNumber
:
''
,
//航班号
FlightTime
:
''
,
//航班时间
GetonAddress
:
''
,
//上车点
GetoffAddress
:
''
,
//下车点
ManNum
:
null
,
//成人数
ChildNum
:
null
,
//儿童数
BabyNum
:
null
,
//婴儿数
HandLuggageNum
:
null
,
//手提行李数量
RegisteredLuggageNum
:
null
,
//托运行李数量
ContactWay
:
''
,
//联络方式 WeChat
Mobile
:
''
,
//电话
ProductId
:
''
,
CarId
:
''
,
//产品类型ID
MailingState
:
''
,
//邮寄状态 1自取 2邮寄
MailingAddress
:
''
,
//MailingState =2 填写邮寄
MailingMoney
:
null
,
SelffetchAddress
:
''
,
//自取地址
UseDate
:
''
,
//门票日期
Name
:
''
,
EName
:
''
,
Sex
:
1
,
//1男2女
Birthday
:
''
,
Mobile
:
''
,
CouponsId
:
''
,
//景点id
DetailList
:[],
OrderSource
:
1
,
//类型 0 来源B2B 1 来源B2C
},
flightTime
:
null
,
//航班起飞抵达时间
getBusTime
:
null
,
//预约车时间
getBusTimeDate
:
null
,
//预约日期
TotalPeople
:
0
,
//总人数
onoffbus
:
1
,
//1 上车 2下车
};
},
computed
:
{
...
...
@@ -654,32 +398,42 @@
created
()
{},
mounted
()
{
if
(
this
.
checkParamsHandler
()){
this
.
get
Car
Data
()
this
.
getData
()
}
this
.
initGuestHandler
();
this
.
getUserInfoHandler
()
},
methods
:
{
changeDiscountHandler
(
coupon
)
{
if
(
coupon
)
{
this
.
parameters
.
DiscountsMoney
=
coupon
.
discountMoney
;
this
.
CouponIds
=
[
coupon
.
couponId
];
this
.
parameters
.
CouponAllotIds
=
this
.
CouponIds
.
join
(
","
)
}
else
{
this
.
parameters
.
DiscountsMoney
=
0
;
this
.
CouponIds
=
[];
this
.
parameters
.
CouponAllotIds
=
''
}
this
.
parameters
.
Money
=
this
.
sumPrice
-
this
.
parameters
.
DiscountsMoney
this
.
$forceUpdate
();
},
// 获取商品详情
get
Car
Data
()
{
getData
()
{
this
.
$q
.
loading
.
show
();
this
.
apipost
(
"b2c_get_Get
CarSingleProduct
Detail"
,
{
ProductId
:
this
.
parameters
.
Product
Id
}
,
"b2c_get_Get
TicketCoupons
Detail"
,
{
CouponsId
:
this
.
parameters
.
Coupons
Id
},
(
r
)
=>
{
if
(
r
.
data
.
resultCode
==
1
)
{
this
.
details
=
r
.
data
.
data
;
this
.
CarObj
=
this
.
details
.
CarTypeList
.
find
((
x
)
=>
this
.
OrderDate
.
CarId
==
x
.
Id
);
this
.
onCarObj
=
this
.
details
.
PlaceList
.
find
((
x
)
=>
this
.
OrderDate
.
onCarId
==
x
.
Id
)
//上车范围
this
.
unCarObj
=
this
.
details
.
PlaceList
.
find
((
x
)
=>
this
.
OrderDate
.
unCarId
==
x
.
Id
)
//下车范围
if
(
this
.
details
.
CarType
!=
3
){
this
.
AirportObj
=
this
.
details
.
AirportList
.
find
((
x
)
=>
this
.
OrderDate
.
AirportId
==
x
.
Id
);
this
.
parameters
.
AirportId
=
this
.
OrderDate
.
AirportId
this
.
parameters
.
FlightTime
=
this
.
OrderDate
.
startDate
if
(
this
.
parameters
.
MailingState
==
1
){
this
.
parameters
.
SelffetchAddress
=
this
.
details
.
SelffetchAddress
this
.
parameters
.
MailingMoney
=
null
}
else
{
this
.
parameters
.
MailingMoney
=
this
.
OrderDate
.
MailingMoney
this
.
parameters
.
SelffetchAddress
=
''
}
this
.
parameters
.
CarId
=
this
.
OrderDate
.
CarId
this
.
parameters
.
OrderType
=
this
.
details
.
CarType
}
else
{
this
.
$q
.
notify
({
type
:
"negative"
,
...
...
@@ -704,13 +458,26 @@
if
(
this
.
order
)
{
this
.
orderKey
=
key
;
this
.
OrderDate
=
this
.
order
.
order
this
.
chosenObj
=
this
.
OrderDate
.
orderInfo
;
this
.
parameters
.
ProductId
=
this
.
order
.
order
.
Id
this
.
parameters
.
Order
Date
=
this
.
OrderDate
.
startDate
this
.
parameters
.
CouponsId
=
this
.
order
.
order
.
CouponsId
this
.
parameters
.
MailingState
=
this
.
OrderDate
.
MailingState
this
.
parameters
.
Use
Date
=
this
.
OrderDate
.
startDate
this
.
getBusTimeDate
=
this
.
OrderDate
.
startDate
this
.
parameters
.
Unit_Price
=
this
.
OrderDate
.
originalB2CPrice
this
.
parameters
.
Num
=
this
.
chosenObj
.
Count
this
.
parameters
.
Money
=
this
.
OrderDate
.
sumPrice
this
.
optionObj
=
this
.
OrderDate
.
TicketList
this
.
parameters
.
DetailList
=
[]
this
.
optionObj
.
forEach
(
x
=>
{
if
(
x
.
checked
){
let
y
=
{
TicketName
:
x
.
TicketName
,
Unit_Price
:
x
.
originalB2CPrice
,
Num
:
x
.
Count
,
Money
:
x
.
originalB2CPrice
*
x
.
Count
,
TicketId
:
x
.
Id
}
this
.
parameters
.
DetailList
.
push
(
y
)
}
})
this
.
sumPrice
=
this
.
OrderDate
.
sumPrice
}
}
}
...
...
@@ -729,25 +496,8 @@
this
.
$refs
.
SurName
.
validate
()
this
.
$refs
.
Name
.
validate
()
this
.
$refs
.
ContactWay
.
validate
()
this
.
$refs
.
Mobile
.
validate
()
this
.
$refs
.
OrderDate
.
validate
()
this
.
$refs
.
ManNum
.
validate
()
if
(
this
.
details
.
CarType
!=
3
){
this
.
$refs
.
AirportTerminal
.
validate
()
this
.
$refs
.
AirLine
.
validate
()
this
.
$refs
.
FlightNumber
.
validate
()
this
.
$refs
.
FlightTime
.
validate
()
if
(
this
.
details
.
CarType
!=
1
){
this
.
$refs
.
GetonAddress
.
validate
()
}
else
{
this
.
$refs
.
GetoffAddress
.
validate
()
}
}
else
{
this
.
$refs
.
GetonAddress
.
validate
()
this
.
$refs
.
GetoffAddress
.
validate
()
}
console
.
log
(
this
.
parameters
,
'----'
)
let
flag
=
true
flag
=
await
this
.
formValidateHandler
(
'baseUserInfo'
)
if
(
!
flag
){
...
...
@@ -765,10 +515,9 @@
SetCarOrder
(){
this
.
loading
=
true
this
.
apipost
(
"
CarSingle_post_SetTYCar
Order"
,
"
ticket_post_SetTicket
Order"
,
this
.
parameters
,
(
r
)
=>
{
// this.$refs.myform.resetValidation()
if
(
r
.
data
.
resultCode
==
1
)
{
this
.
step
=
2
let
ErpOrderId
=
r
.
data
.
data
.
Id
...
...
@@ -780,29 +529,20 @@
})
},
AddOrderInfo
(
ErpOrderId
){
let
GoodsType
=
null
//13接机 14送机 12包车
if
(
this
.
parameters
.
OrderType
==
1
){
GoodsType
=
13
}
else
if
(
this
.
parameters
.
OrderType
==
2
){
GoodsType
=
14
}
else
if
(
this
.
parameters
.
OrderType
==
3
){
GoodsType
=
12
}
this
.
apipost
(
"AddOrderInfo_post"
,
{
SurName
:
this
.
parameters
.
Sur
Name
,
Name
:
this
.
parameters
.
Name
,
SurName
:
this
.
parameters
.
Name
,
Name
:
''
,
ContactNumber
:
this
.
parameters
.
Mobile
,
// 联系电话
Mailbox
:
this
.
userInfo
.
Mailbox
,
//邮箱
GoodsId
:
this
.
parameters
.
Product
Id
,
//商品id
GoodsId
:
this
.
parameters
.
Coupons
Id
,
//商品id
GoodsName
:
this
.
details
.
Name
,
//商品名称
GoodsPic
:
this
.
details
.
Image
List
[
0
],
//商品图片
GoodsType
:
GoodsType
,
//商品类型(见枚举) 12包车 13 接机 14送机
OrderMake
:
this
.
parameters
.
Order
Date
,
//订单摘要(例如出行时间)
GoodsPic
:
this
.
details
.
PicPath
List
[
0
],
//商品图片
GoodsType
:
this
.
productType
,
OrderMake
:
this
.
parameters
.
Use
Date
,
//订单摘要(例如出行时间)
TotalPrice
:
this
.
parameters
.
Money
,
//总价格
PreferentialPrice
:
0
,
// 优惠总金额
PreferentialPrice
:
this
.
parameters
.
DiscountsMoney
,
// 优惠总金额
ErpOrderId
:
ErpOrderId
,
//erp订单id
Country
:
this
.
userInfo
.
Country
,
//国家id
PlatformTax
:
0
,
//平台税金默认0
...
...
@@ -821,37 +561,14 @@
})
},
goPayHandler
(
pay
){
let
key
=
this
.
$md5
(
JSON
.
stringify
(
pay
))
let
pays
=
localStorage
.
getItem
(
'pays'
)
pays
=
pays
?
JSON
.
parse
(
pays
):[]
pays
.
push
({
key
,
pay
}
)
localStorage
.
setItem
(
"pays"
,
JSON
.
stringify
(
pays
))
let
pickuporderScenTickets
=
localStorage
.
getItem
(
'pickuporderScenTickets'
)
pickuporderScenTickets
=
pickuporderScenTickets
?
JSON
.
parse
(
pickuporderScenTickets
):[]
let
i
=
pickuporderScenTickets
.
findIndex
(
x
=>
x
.
key
==
this
.
orderKey
)
if
(
i
>=
0
){
pickuporderScenTickets
.
splice
(
i
,
1
)
localStorage
.
setItem
(
"pickuporderScenTickets"
,
JSON
.
stringify
(
pickuporderScenTickets
))
}
this
.
CommonJump
(
'/pay/'
+
key
,
{
}
);
}
,
// 航班起飞抵达时间
getTime
(
type
){
// 1航班时间 2预约时间
this
.
onoffbus
=
type
if
(
type
==
1
){
this
.
parameters
.
FlightTime
=
this
.
OrderDate
.
startDate
+
' '
+
this
.
flightTime
this
.
$refs
.
qDateProxy1
.
hide
()
}
else
if
(
type
==
2
){
this
.
parameters
.
OrderDate
=
this
.
OrderDate
.
startDate
+
' '
+
this
.
getBusTime
this
.
$refs
.
qDateProxy2
.
hide
()
}
else
if
(
type
==
3
){
this
.
parameters
.
OrderDate
=
this
.
OrderDate
.
startDate
+
' '
+
this
.
getBusTime
let
pickuporderScenTickets
=
localStorage
.
getItem
(
"pickuporderScenTickets"
);
pickuporderScenTickets
=
pickuporderScenTickets
?
JSON
.
parse
(
pickuporderScenTickets
)
:
[];
let
i
=
pickuporderScenTickets
.
findIndex
((
x
)
=>
x
.
key
==
this
.
orderKey
);
if
(
i
>=
0
)
{
pickuporderScenTickets
.
splice
(
i
,
1
);
localStorage
.
setItem
(
"pickuporderScenTickets"
,
JSON
.
stringify
(
pickuporderScenTickets
));
}
this
.
CommonJump
(
"/pay/"
+
pay
.
OrderNo
,
{});
},
optionsFn
(
cd
)
{
return
(
...
...
@@ -859,19 +576,6 @@
date
.
formatDate
(
date
.
addToDate
(
new
Date
(),
{
days
:
0
}),
"YYYY/MM/DD"
)
);
},
// 地图上选址
getAddress
(
type
){
if
(
type
==
1
){
this
.
AddressObj
=
this
.
onCarObj
}
else
{
this
.
AddressObj
=
this
.
unCarObj
}
this
.
isShowDialog
=
true
}
,
// 计算人数
getNum
(){
this
.
TotalPeople
=
this
.
parameters
.
ManNum
+
this
.
parameters
.
ChildNum
+
this
.
parameters
.
BabyNum
}
,
// 音频
slideHandler
(
e
)
{
this
.
options
.
currentPage
=
e
.
currentPage
;
...
...
src/pages/detailsCar.vue
View file @
04d43921
...
...
@@ -773,10 +773,7 @@ export default {
this
.
TripConfig
=
JSON
.
parse
(
window
.
localStorage
.
getItem
(
"baseifo"
));
}
window
.
addEventListener
(
"scroll"
,
this
.
menu
);
// this.getData();
window
.
addEventListener
(
"scroll"
,
this
.
menu
);
this
.
getCarData
();
// this.getCarPriceData();
},
methods
:
{
changeShowOrderPreviewHandler
(){
...
...
src/pages/usercenter/components/navs.vue
View file @
04d43921
...
...
@@ -17,7 +17,6 @@
}
.select
{
height
:
41px
;
background
:
#F43849
;
border-radius
:
8px
;
color
:
#ffffff
;
}
...
...
@@ -36,7 +35,7 @@ color: #ffffff;
@
click=
"navigateTo(item.key)"
v-for=
"item in menuList"
:key=
"item.key"
:class=
"
{'select': selectKey === item.key}"
:class=
"
{'select
bg-primary
': selectKey === item.key}"
>
<div
class=
"flex items-center"
>
<i
class=
"iconfont"
:class=
"item.icon"
></i>
...
...
@@ -52,7 +51,7 @@ color: #ffffff;
@
click=
"navigateTo(item.key)"
v-for=
"item in menuList2"
:key=
"item.key"
:class=
"
{'select': selectKey === item.key}"
:class=
"
{'select
bg-primary
': selectKey === item.key}"
>
<div
class=
"flex items-center"
>
<i
class=
"iconfont"
:class=
"item.icon"
></i>
...
...
@@ -82,18 +81,18 @@ export default {
label
:
"訂單"
,
number
:
""
,
},
{
icon
:
"iconmessage"
,
key
:
""
,
label
:
"我的评价"
,
number
:
""
,
},
{
icon
:
"iconmoney-credit-card"
,
key
:
"/payInfo"
,
label
:
"支付管理"
,
number
:
""
,
},
//
{
//
icon: "iconmessage",
//
key: "",
//
label: "我的评价",
//
number: "",
//
},
//
{
//
icon: "iconmoney-credit-card",
//
key: "/payInfo",
//
label: "支付管理",
//
number: "",
//
},
],
menuList2
:
[
{
...
...
src/pages/usercenter/components/removeAccount.vue
View file @
04d43921
<
style
>
.login-box
{
.login-box
-pc
{
width
:
436px
;
}
.login-box
{
padding
:
30px
40px
;
background-clip
:
padding-box
;
background
:
#ffffff
;
...
...
@@ -70,7 +72,7 @@
</
style
>
<
template
>
<div
class=
"login"
>
<div
class=
"login-box"
>
<div
class=
"login-box"
:class=
"$q.platform.is.desktop ? 'login-box-pc' : ''"
>
<div
class=
"f34 bold"
>
注销账户
</div>
<div
class=
"login_row"
>
<div
class=
"form-group"
>
...
...
src/pages/usercenter/components/resetEmail.vue
View file @
04d43921
<
style
>
.login-box
{
.login-box
-pc
{
width
:
436px
;
}
.login-box
{
padding
:
30px
40px
;
background-clip
:
padding-box
;
background
:
#ffffff
;
...
...
@@ -70,7 +72,7 @@
</
style
>
<
template
>
<div
class=
"login"
>
<div
class=
"login-box"
>
<div
class=
"login-box"
:class=
"$q.platform.is.desktop ? 'login-box-pc' : ''"
>
<div
class=
"f34 bold"
>
修改邮箱
</div>
<div
class=
"login_row"
>
<div
class=
"form-group"
>
...
...
src/pages/usercenter/coupon.vue
View file @
04d43921
<
style
lang=
"scss"
scoped
>
.form-item
{
max-width
:
320px
;
height
:
40px
;
margin
:
10px
;
}
.content
{
...
...
@@ -50,16 +49,19 @@
color
:
#195954
;
}
}
.card-pc
{
width
:
201px
;
}
.card
{
margin
:
10px
;
width
:
201px
;
height
:
310px
;
background
:
#f9f9f9
;
border-radius
:
8px
;
}
.nav-item
{
width
:
100px
;
margin
:
0
10px
;
width
:
33%
;
max-width
:
100px
;
// margin: 0 10px;
text-align
:
center
;
}
.border-bottom
{
...
...
@@ -86,10 +88,15 @@
.circle
{
width
:
24px
;
height
:
10px
;
left
:
88px
;
border-radius
:
0
0
14px
14px
;
background
:
#f9f9f9
;
}
.circle-pc
{
left
:
88px
;
}
.circle-mobile
{
left
:
calc
(
50%
-
12px
)
}
// .circle:after {
// content: '.';
// display: block;
...
...
@@ -99,7 +106,7 @@
// }
</
style
>
<
template
>
<div
class=
"
content q-ma-lg bg-white
"
>
<div
class=
"
bg-white"
:class=
"$q.platform.is.desktop ? 'q-ma-lg content': 'full-width'
"
>
<div
class=
"q-ma-lg"
>
<div
class=
"tips flex"
>
<div
...
...
@@ -113,12 +120,12 @@
</div>
</div>
<div
class=
"flex flex-wrap"
>
<div
class=
"card"
v-for=
"item in couponList"
:key=
"item.id"
>
<div
class=
"card"
v-for=
"item in couponList"
:key=
"item.id"
:class=
"$q.platform.is.desktop ? 'card-pc': 'full-width'"
>
<div
class=
"bg-blue relative"
:class=
"[colorMap[item.couponsUseScope],
{'bg-grey': CouponTimeStatus !== 1}]">
<div
v-if=
"item.IsEnd"
class=
"absolute deadline"
>
<div
class=
"text f12"
>
即將過期
</div>
</div>
<div
class=
"absolute circle"
></div>
<div
class=
"absolute circle"
:class=
"$q.platform.is.desktop ? 'circle-pc': 'circle-mobile'"
></div>
<div
class=
"white text-center f16 q-pt-lg"
>
CYN
</div>
<div
class=
"white text-center f26"
>
{{
item
.
denomination
}}
</div>
<div
class=
"white text-center"
>
...
...
src/pages/usercenter/loginInfo.vue
View file @
04d43921
<
style
lang=
"scss"
scoped
>
.form-item
{
max-width
:
320px
;
height
:
40px
;
margin
:
10px
;
}
.content
{
...
...
@@ -22,8 +21,10 @@
margin-top
:
20px
;
margin-bottom
:
10px
;
}
.card
{
.card
-pc
{
width
:
434px
;
}
.card
{
height
:
75px
;
background
:
#ffffff
;
border
:
1px
solid
#eeeeee
;
...
...
@@ -45,10 +46,10 @@
}
</
style
>
<
template
>
<div
class=
"
content q-ma-lg bg-white
"
>
<div
class=
"
bg-white"
:class=
"$q.platform.is.desktop ? 'q-ma-lg content': 'full-width'
"
>
<div
class=
"q-ma-lg"
>
<div
class=
"tips"
>
登陸方式管理
</div>
<div
class=
"card"
>
<div
class=
"card"
:class=
"
{'card-pc': $q.platform.is.desktop}"
>
<div
class=
"flex justify-between"
>
<div>
<span
class=
"f18 bold"
>
郵箱
</span
...
...
@@ -61,7 +62,7 @@
</div>
</div>
</div>
<div
class=
"card flex justify-between"
>
<div
class=
"card flex justify-between"
:class=
"
{'card-pc': $q.platform.is.desktop}"
>
<div
class=
"flex justify-between"
>
<div
class=
"img-box"
>
<img
class=
"img"
src=
"../../assets/img/wechat.png"
/>
...
...
src/pages/usercenter/mobileUserCenter.vue
0 → 100644
View file @
04d43921
<
style
lang=
"scss"
scoped
>
.avatar
{
width
:
94px
;
height
:
94px
;
background
:
#ffffff
;
border
:
2px
solid
#f0efef
;
border-radius
:
50%
;
margin
:
0
auto
;
display
:
block
;
}
.nav-item
{
margin
:
10px
28px
;
padding
:
10px
;
}
.select
{
height
:
41px
;
border-radius
:
8px
;
color
:
#ffffff
;
}
</
style
>
<
template
>
<div
class=
"user-nav-box"
>
<div
class=
"flex justify-between"
>
<span
class=
"f42"
>
个人中心
</span>
<div>
<img
/>
<img
/></div>
</div>
<div
class=
"q-mt-lg"
>
<div
class=
"bg-white q-mt-xl q-pb-lg"
>
<div
class=
"nav-item flex justify-between items-center cursor-pointer"
@
click=
"navigateTo(item.key)"
v-for=
"item in menuList"
:key=
"item.key"
:class=
"
{'select bg-primary': selectKey === item.key}"
>
<div
class=
"flex items-center"
>
<i
class=
"iconfont"
:class=
"item.icon"
></i>
<span
class=
"q-ml-lg"
>
{{
item
.
label
}}
</span>
</div>
<!--
<span
class=
"text-primary"
>
{{
item
.
label
}}
</span>
-->
</div>
</div>
</div>
<div
class=
"bg-white q-mt-lg q-py-lg"
>
<div
class=
"nav-item flex justify-between items-center cursor-pointer"
@
click=
"navigateTo(item.key)"
v-for=
"item in menuList2"
:key=
"item.key"
:class=
"
{'select bg-primary': selectKey === item.key}"
>
<div
class=
"flex items-center"
>
<i
class=
"iconfont"
:class=
"item.icon"
></i>
<span
class=
"q-ml-lg"
>
{{
item
.
label
}}
</span>
</div>
<!--
<span
class=
"text-primary"
>
{{
item
.
label
}}
</span>
-->
</div>
</div>
</div>
</
template
>
<
script
>
export
default
{
data
()
{
return
{
selectKey
:
''
,
LoginUser
:
{},
menuList
:
[
{
icon
:
"iconqianbao"
,
key
:
"/coupon"
,
label
:
"可用優惠券"
,
number
:
""
,
},
{
icon
:
"iconorder"
,
key
:
"/order"
,
label
:
"訂單"
,
number
:
""
,
},
// {
// icon: "iconmessage",
// key: "",
// label: "我的评价",
// number: "",
// },
// {
// icon: "iconmoney-credit-card",
// key: "/payInfo",
// label: "支付管理",
// number: "",
// },
],
menuList2
:
[
{
icon
:
"iconpeople1"
,
key
:
"/setUsersList"
,
label
:
"出行人信息管理"
,
number
:
""
,
},
{
icon
:
"iconemail"
,
key
:
"/setAddress"
,
label
:
"管理邮寄地址"
,
number
:
""
,
},
{
icon
:
"iconcomputer"
,
key
:
"/loginInfo"
,
label
:
"登录方式管理"
,
number
:
""
,
},
{
icon
:
"iconset"
,
key
:
"/setInfo"
,
label
:
"账户设置"
,
number
:
""
,
},
],
};
},
mounted
()
{
this
.
selectKey
=
this
.
$route
.
path
if
(
localStorage
.
b2bUser
)
{
this
.
LoginUser
=
JSON
.
parse
(
window
.
localStorage
.
getItem
(
"b2bUser"
));
}
},
methods
:
{
navigateTo
(
route
)
{
this
.
selectKey
=
route
this
.
CommonJump
(
route
,
{});
},
},
};
</
script
>
\ No newline at end of file
src/pages/usercenter/order.vue
View file @
04d43921
<
style
lang=
"scss"
scoped
>
.form-item
{
max-width
:
320px
;
height
:
40px
;
margin
:
10px
;
}
.content
{
...
...
@@ -178,7 +177,7 @@ export default {
orderList
:
[],
current
:
1
,
pageCount
:
0
,
orderStatus
:
""
,
orderStatus
:
0
,
};
},
mounted
()
{
...
...
@@ -193,7 +192,7 @@ export default {
},
changeOrderType
(
item
)
{
if
(
this
.
orderStatus
===
item
.
ID
)
{
this
.
orderStatus
=
""
;
this
.
orderStatus
=
0
;
}
else
{
this
.
orderStatus
=
item
.
ID
;
}
...
...
src/pages/usercenter/payInfo.vue
View file @
04d43921
<
style
lang=
"scss"
scoped
>
.form-item
{
max-width
:
320px
;
height
:
40px
;
margin
:
10px
;
}
.content
{
...
...
src/pages/usercenter/setAddress.vue
View file @
04d43921
<
style
lang=
"scss"
scoped
>
.form-item
{
max-width
:
320px
;
height
:
40px
;
margin
:
10px
;
}
.content
{
...
...
@@ -9,11 +8,10 @@
}
.tips
{
width
:
100%
;
height
:
42px
;
background
:
#f5f5f5
;
border-radius
:
8px
;
padding
:
0
35px
;
line-height
:
4
2px
;
padding
:
19px
35px
;
line-height
:
2
2px
;
}
::v-deep
.q-field__control
{
height
:
40px
;
...
...
@@ -24,18 +22,25 @@
::v-deep
.q-field__marginal
{
height
:
40px
;
}
::v-deep
.q-field--auto-height
.q-field__native
{
min-height
:
40px
;
}
.title
{
margin-top
:
20px
;
margin-bottom
:
10px
;
margin-left
:
10px
;
}
.card
{
margin-top
:
20px
;
width
:
413px
;
height
:
170px
;
background
:
#ffffff
;
border
:
1px
solid
#eeeeee
;
border-radius
:
8px
;
}
.card-pc
{
width
:
413px
;
}
.img-box
{
width
:
50px
;
height
:
50px
;
...
...
@@ -65,13 +70,13 @@
}
</
style
>
<
template
>
<div
class=
"
content q-ma-lg bg-white
"
>
<div
class=
"
bg-white"
:class=
"$q.platform.is.desktop ? 'q-ma-lg content': 'full-width'
"
>
<div
class=
"q-ma-lg"
>
<div
class=
"tips"
>
收貨地址
<span>
您已创建
{{
count
}}
个收货地址,最多可创建 10个
</span>
</div>
<div
class=
"flex flex-wrap justify-between"
>
<div
class=
"card"
v-for=
"item in pageData"
:key=
"item.Id"
>
<div
class=
"card"
:class=
"$q.platform.is.desktop ? 'card-pc': 'full-width'"
v-for=
"item in pageData"
:key=
"item.Id"
>
<div
class=
"flex justify-between label"
>
<div>
{{
item
.
Name
...
...
@@ -94,6 +99,7 @@
</div>
<!--
<div
class=
"card flex flex-center"
@
click=
"showDialog"
><span></span>
添加郵寄地址
</div>
-->
<q-btn
v-if=
"count
<
10
"
:class=
"$q.platform.is.desktop ? 'card-pc': 'full-width'"
class=
"card flex flex-center"
color=
"blue"
unelevated
...
...
@@ -107,7 +113,7 @@
<div
class=
"f22 bold"
>
{{
form
.
Id
?
'编辑'
:
'添加'
}}
邮寄地址
</div>
<form
@
submit
.
prevent
.
stop=
"submit"
class=
"q-gutter-md"
>
<div>
<div
class=
"row
"
>
<div
:class=
"$q.platform.is.desktop ? 'row': 'culmuns'
"
>
<div
class=
"col"
>
<div
class=
"title"
>
全名
</div>
<q-input
...
...
@@ -120,7 +126,7 @@
></q-input>
</div>
</div>
<div
class=
"row
"
>
<div
:class=
"$q.platform.is.desktop ? 'row': 'culmuns'
"
>
<div
class=
"col"
>
<div
class=
"title"
>
選擇手機區號
</div>
<q-select
...
...
@@ -151,7 +157,7 @@
</div>
</div>
<div
class=
"row
"
>
<div
:class=
"$q.platform.is.desktop ? 'row': 'culmuns'
"
>
<div
class=
"col"
>
<div
class=
"title"
>
國家/地區
</div>
<q-select
...
...
@@ -181,7 +187,7 @@
></q-input>
</div>
</div>
<div
class=
"row
"
>
<div
:class=
"$q.platform.is.desktop ? 'row': 'culmuns'
"
>
<div
class=
"col"
>
<div
class=
"title"
>
詳細地址
</div>
<q-input
...
...
src/pages/usercenter/setInfo.vue
View file @
04d43921
<
style
lang=
"scss"
scoped
>
.form-item
{
max-width
:
320px
;
height
:
40px
;
margin
:
10px
;
}
.form-group
{
...
...
@@ -14,7 +13,7 @@
.form-group
i
{
position
:
absolute
;
right
:
12px
;
bottom
:
0
;
top
:
0
;
z-index
:
2
;
width
:
40px
;
height
:
40px
;
...
...
@@ -44,7 +43,7 @@
}
</
style
>
<
template
>
<div
class=
"content
q-ma-lg bg-white
"
>
<div
class=
"content
bg-white"
:class=
"
{'q-ma-lg': $q.platform.is.desktop}
">
<div
class=
"q-ma-lg"
>
<div
class=
"tips"
>
密碼管理
</div>
<div>
...
...
src/pages/usercenter/setUserInfo.vue
View file @
04d43921
<
style
lang=
"scss"
scoped
>
.form-item
{
max-width
:
320px
;
height
:
40px
;
margin
:
10px
;
}
.content
{
...
...
@@ -48,7 +47,6 @@
class=
"form-item"
v-model=
"form.Surname"
outlined
placeholder=
"姓"
ref=
"Surname"
:rules=
"[(val) => !!val || '请输入姓氏']"
></q-input>
...
...
@@ -58,7 +56,6 @@
<q-input
ref=
"Name"
class=
"form-item"
placeholder=
"名"
v-model=
"form.Name"
outlined
:rules=
"[(val) => !!val || '请输入名字']"
...
...
@@ -72,7 +69,6 @@
class=
"form-item"
v-model=
"form.EnName"
outlined
placeholder=
"姓氏(需與旅遊證件一致)"
ref=
"EnName"
:rules=
"[(val) => !!val || '请输入姓氏(需與旅遊證件一致)']"
></q-input>
...
...
@@ -82,7 +78,6 @@
<q-input
ref=
"EnSurname"
class=
"form-item"
placeholder=
"名字(需與旅遊證件一致)"
v-model=
"form.EnSurname"
outlined
:rules=
"[(val) => !!val || '请输入名字(需與旅遊證件一致)']"
...
...
@@ -103,7 +98,6 @@
class=
"form-item"
v-model=
"form.Country"
:options=
"countList"
placeholder=
"请选择居住國家/地區"
:rules=
"[(val) => Boolean(val) || '请选择居住國家/地區']"
/>
</div>
...
...
@@ -120,7 +114,6 @@
option-label=
"Name"
v-model=
"form.Appellation"
:options=
"AppellationList"
placeholder=
"请选择稱謂"
:rules=
"[(val) => Boolean(val) || '请选择稱謂']"
/>
</div>
...
...
@@ -140,7 +133,6 @@
class=
"form-item"
v-model=
"form.PhoneCountry"
:options=
"phoneCountList"
placeholder=
"请选择國家/地區代碼"
:rules=
"[(val) => Boolean(val) || '请选择國家/地區代碼']"
/>
</div>
...
...
@@ -149,7 +141,6 @@
<q-input
ref=
"Moblie"
class=
"form-item"
placeholder=
"電話(首次需驗證)"
v-model=
"form.Moblie"
outlined
:rules=
"[(val) => !!val || '请输入電話(首次需驗證)']"
...
...
@@ -162,7 +153,6 @@
<q-input
ref=
"BirthDate"
class=
"form-item"
placeholder=
"出生日期"
v-model=
"form.BirthDate"
outlined
mask=
"date"
...
...
@@ -188,7 +178,6 @@
<q-input
ref=
"Mailbox"
class=
"form-item"
placeholder=
"電子郵件(接收订单确认邮件)"
v-model=
"form.Mailbox"
outlined
:rules=
"[(val) => !!val || '请输入電子郵件(接收订单确认邮件)']"
...
...
src/pages/usercenter/setUsersList.vue
View file @
04d43921
<
style
lang=
"scss"
scoped
>
.form-item
{
max-width
:
320px
;
height
:
40px
;
margin
:
10px
;
}
.content
{
...
...
@@ -43,6 +42,7 @@
.title
{
margin-top
:
20px
;
margin-bottom
:
10px
;
margin-left
:
10px
;
}
.phone
{
margin-left
:
100px
;
...
...
@@ -82,13 +82,13 @@
}
</
style
>
<
template
>
<div
class=
"content q-ma-lg bg-white
"
>
<div
class=
"bg-white"
:class=
"$q.platform.is.desktop ? 'q-ma-lg content': 'full-width'
"
>
<div>
<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
class=
"phone"
>
手機號:
{{
item
.
Mobile
}}
</span>
<span
v-if=
"$q.platform.is.desktop"
class=
"phone"
>
手機號:
{{
item
.
Mobile
}}
</span>
</div>
<span>
<span
class=
"user-edit"
@
click=
"editUser(item)"
>
编辑
</span>
...
...
@@ -98,14 +98,15 @@
</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"
:class=
"
{ 'border-b': index
<
item
.
CardList
.
length
-
1
}"
v-for=
"(el, index) in item.CardList"
:key=
"index"
>
<div
class=
"row
"
>
<div
:class=
"$q.platform.is.desktop ? 'row': 'culmuns'
"
>
<div
class=
"col-6"
>
{{
el
.
TypeName
}}
</div>
<div
class=
"col-6"
>
{{
el
.
CardNo
}}
</div>
<div
class=
"col-6"
:class=
"$q.platform.is.mobile ? 'q-mt-xs': ''"
>
{{
el
.
CardNo
}}
</div>
</div>
</div>
</div>
...
...
@@ -142,14 +143,13 @@
<div
class=
"f22 bold"
>
{{
form
.
Id
?
"编辑"
:
"新增"
}}
出行人信息
</div>
<form
@
submit
.
prevent
.
stop=
"submit"
class=
"q-gutter-md"
>
<div>
<div
class=
"row
"
>
<div
:class=
"$q.platform.is.desktop ? 'row': 'culmuns'
"
>
<div
class=
"col"
>
<div
class=
"title"
>
姓
</div>
<q-input
class=
"form-item"
v-model=
"form.SurName"
outlined
placeholder=
"姓"
ref=
"SurName"
:rules=
"[(val) => !!val || '请输入姓氏']"
></q-input>
...
...
@@ -159,21 +159,19 @@
<q-input
ref=
"Name"
class=
"form-item"
placeholder=
"名"
v-model=
"form.Name"
outlined
:rules=
"[(val) => !!val || '请输入名字']"
></q-input>
</div>
</div>
<div
class=
"row
"
>
<div
:class=
"$q.platform.is.desktop ? 'row': 'culmuns'
"
>
<div
class=
"col"
>
<div
class=
"title"
>
姓氏(需與旅遊證件一致)
</div>
<q-input
class=
"form-item"
v-model=
"form.EnName"
outlined
placeholder=
"姓氏(需與旅遊證件一致)"
ref=
"EnName"
:rules=
"[(val) => !!val || '请输入姓氏(需與旅遊證件一致)']"
></q-input>
...
...
@@ -183,7 +181,6 @@
<q-input
ref=
"EnSurName"
class=
"form-item"
placeholder=
"名字(需與旅遊證件一致)"
v-model=
"form.EnSurName"
outlined
:rules=
"[(val) => !!val || '请输入名字(需與旅遊證件一致)']"
...
...
@@ -191,7 +188,7 @@
</div>
</div>
<div
class=
"row
"
>
<div
:class=
"$q.platform.is.desktop ? 'row': 'culmuns'
"
>
<div
class=
"col"
>
<div
class=
"title"
>
國家/地區代碼
</div>
<q-select
...
...
@@ -205,7 +202,6 @@
class=
"form-item"
v-model=
"form.AreaCode"
:options=
"phoneCountList"
placeholder=
"请选择國家/地區代碼"
:rules=
"[(val) => Boolean(val) || '请选择國家/地區代碼']"
/>
</div>
...
...
@@ -214,7 +210,6 @@
<q-input
ref=
"Mobile"
class=
"form-item"
placeholder=
"手機號"
v-model=
"form.Mobile"
outlined
:rules=
"[(val) => !!val || '请输入手機號']"
...
...
@@ -233,7 +228,7 @@
<img
style=
"width: 15px"
src=
"../../assets/img/delete.png"
/>
</div>
</div>
<div
class=
"row
"
>
<div
:class=
"$q.platform.is.desktop ? 'row': 'culmuns'
"
>
<div
class=
"col"
>
<div
class=
"title"
>
证件类型
</div>
<q-select
...
...
src/router/routes.js
View file @
04d43921
...
...
@@ -175,6 +175,12 @@ const routes = [{
]
},
{
path
:
'/userCenter'
,
//移动端个人中心
meta
:
{
isUserCenter
:
true
,
needLogin
:
true
},
component
:
()
=>
import
(
'pages/usercenter/mobileUserCenter.vue'
)
},
{
path
:
'/login'
,
component
:
()
=>
...
...
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