Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
J
jz_Travel
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
zhengke
jz_Travel
Commits
6e29e93c
Commit
6e29e93c
authored
Mar 04, 2025
by
罗超
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'B2C' of
http://gitlab.oytour.com/zk123/jz_travel
into B2C
parents
acb83a1c
33ea8d04
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
1210 additions
and
966 deletions
+1210
-966
airCity.vue
pages/airTicket/airCity.vue
+97
-92
airIndex.vue
pages/airTicket/airIndex.vue
+115
-108
flightDetail.vue
pages/airTicket/flightDetail.vue
+348
-310
ticketList.vue
pages/airTicket/ticketList/ticketList.vue
+320
-287
details.vue
pages/coupon/details/details.vue
+5
-5
index.vue
pages/jiuzhai/components/sign/index.vue
+67
-50
jz_LineDetail.vue
pages/jiuzhai/jz_LineDetail.vue
+34
-13
jz_Reserve.vue
pages/jiuzhai/jz_Reserve.vue
+135
-70
visaDetail.vue
pages/visa/visaDetail.vue
+67
-23
visaList.vue
pages/visa/visaList.vue
+8
-1
visa_Reserve.vue
pages/visa/visa_Reserve.vue
+14
-7
No files found.
pages/airTicket/airCity.vue
View file @
6e29e93c
...
@@ -12,11 +12,11 @@
...
@@ -12,11 +12,11 @@
<view
@
click=
"()=>dateVisible=true"
class=
"q-mt-sm row items-center"
style=
"font-size: 24rpx;color:#000000BB"
>
<view
@
click=
"()=>dateVisible=true"
class=
"q-mt-sm row items-center"
style=
"font-size: 24rpx;color:#000000BB"
>
<text>
{{
dateRangeValue
.
formatStartDate
}}
</text>
<text>
{{
dateRangeValue
.
formatStartDate
}}
</text>
<u-icon
class=
"q-ml-sm"
name=
'arrow_down'
custom-prefix=
"tffont"
color=
"#00000066"
size=
"32"
></u-icon>
<u-icon
class=
"q-ml-sm"
name=
'arrow_down'
custom-prefix=
"tffont"
color=
"#00000066"
size=
"32"
></u-icon>
</view>
</view>
<chosen-city
@
closed=
"resetCityVisible=false"
@
change=
"setNewCitiesHandle"
:value=
"chosenResult"
v-if=
"resetCityVisible"
></chosen-city>
<chosen-city
@
closed=
"resetCityVisible=false"
@
change=
"setNewCitiesHandle"
:value=
"chosenResult"
v-if=
"resetCityVisible"
></chosen-city>
<u-popup
mode=
"bottom"
border-radius=
"20"
:popup=
"false"
v-model=
"dateVisible"
:maskCloseAble=
"true"
length=
"auto"
:safeAreaInsetBottom=
"true"
@
close=
"()=>dateVisible=false"
:z-index=
"9999"
>
<u-popup
mode=
"bottom"
border-radius=
"20"
:popup=
"false"
v-model=
"dateVisible"
:maskCloseAble=
"true"
length=
"auto"
:safeAreaInsetBottom=
"true"
@
close=
"()=>dateVisible=false"
:z-index=
"9999"
>
<date-range
:value=
"dateRangeValue"
@
change=
'setDateHandler'
></date-range>
<date-range
:value=
"dateRangeValue"
@
change=
'setDateHandler'
></date-range>
</u-popup>
</u-popup>
</view>
</view>
<scroll-view
scroll-y=
"true"
style=
"width: 100%;height: 1px;"
class=
"col"
>
<scroll-view
scroll-y=
"true"
style=
"width: 100%;height: 1px;"
class=
"col"
>
<view
class=
"air-low-rank"
>
<view
class=
"air-low-rank"
>
...
@@ -36,27 +36,32 @@
...
@@ -36,27 +36,32 @@
<view
class=
"city-list-item col"
>
<view
class=
"city-list-item col"
>
<view
@
click=
"goListHandle('',x)"
style=
"margin-bottom: 30rpx;"
class=
" row items-center"
>
<view
@
click=
"goListHandle('',x)"
style=
"margin-bottom: 30rpx;"
class=
" row items-center"
>
<view
class=
"bold col"
>
{{
x
.
DepartureName
}}
-
{{
x
.
ArrivalCityName
}}
</view>
<view
class=
"bold col"
>
{{
x
.
DepartureName
}}
-
{{
x
.
ArrivalCityName
}}
</view>
<view
class=
"row items-center"
>
<view
class=
"row items-center"
>
<view
style=
"font-size: 22rpx;"
>
更多日期
</view>
<view
style=
"font-size: 22rpx;"
>
更多日期
</view>
<u-icon
name=
'arrow_right'
custom-prefix=
"tffont"
color=
"#00000066"
size=
"28"
></u-icon>
<u-icon
name=
'arrow_right'
custom-prefix=
"tffont"
color=
"#00000066"
size=
"28"
></u-icon>
</view>
</view>
</view>
</view>
<view
@
click=
"goListHandle(f.FlightDate,x)"
class=
"flights row items-center"
v-for=
"(f,fi) in x.TicketProductList"
>
<view
@
click=
"goListHandle(f.FlightDate,x)"
class=
"flights row items-center"
v-for=
"(f,fi) in x.TicketProductList"
>
<image
style=
"width: 30rpx;"
:src=
"`https://static.tripcdn.com/packages/flight/airline-logo/latest/airline/48/$
{f.AlCode}.png`" mode="widthFix">
</image>
<image
style=
"width: 30rpx;"
:src=
"`https://static.tripcdn.com/packages/flight/airline-logo/latest/airline/48/$
{f.AlCode}.png`" mode="widthFix">
</image>
<view
style=
"font-size: 22rpx;width:50rpx;margin:0 4px"
>
<view
style=
"font-size: 22rpx;width:50rpx;margin:0 4px"
>
{{
f
.
DayCount
}}
天
{{
f
.
DayCount
}}
天
</view>
</view>
<view
style=
"font-size: 22rpx;"
>
<view
style=
"font-size: 22rpx;"
>
{{
f
.
FlightDateString
}}
去
{{
f
.
FlightDateString
}}
去
</view>
</view>
<view
class=
"q-ml-sm col"
style=
"font-size: 22rpx;"
>
<view
class=
"q-ml-sm col"
style=
"font-size: 22rpx;"
>
{{
f
.
ReturnDateString
}}
回
{{
f
.
ReturnDateString
}}
回
</view>
</view>
<text
style=
"color:#FF3166;font-size: 22rpx;"
>
¥
</text>
<text
style=
"color:#FF3166;font-size: 22rpx;"
>
¥
</text>
<view
style=
"font-weight: bold;font-size: 24rpx;color:#FF3166"
>
<view
style=
"font-weight: bold;font-size: 24rpx;color:#FF3166"
>
{{
f
.
B2BPrice
}}
<!-- #ifdef MP-DI -->
</view>
{{
f
.
B2CPrice
}}
<u-icon
name=
'arrow_right'
custom-prefix=
"tffont"
color=
"#00000066"
size=
"28"
></u-icon>
<!-- #endif-->
<!-- #ifdef MP-AG -->
{{
f
.
B2BPrice
}}
<!-- #endif -->
</view>
<u-icon
name=
'arrow_right'
custom-prefix=
"tffont"
color=
"#00000066"
size=
"28"
></u-icon>
</view>
</view>
</view>
</view>
...
@@ -68,10 +73,10 @@
...
@@ -68,10 +73,10 @@
</view>
</view>
</
template
>
</
template
>
<
script
>
<
script
>
import
ChosenCity
from
'./components/address/ChosenCity.vue'
import
ChosenCity
from
'./components/address/ChosenCity.vue'
import
DateRange
from
'./components/time/DateRange.vue'
import
DateRange
from
'./components/time/DateRange.vue'
export
default
{
export
default
{
components
:{
ChosenCity
,
DateRange
},
components
:{
ChosenCity
,
DateRange
},
data
()
{
data
()
{
return
{
return
{
...
@@ -91,8 +96,8 @@
...
@@ -91,8 +96,8 @@
type
:
0
,
type
:
0
,
ID
:
0
,
ID
:
0
,
Name
:
'全部'
Name
:
'全部'
},
},
resetCityVisible
:
false
,
resetCityVisible
:
false
,
dateVisible
:
false
,
dateVisible
:
false
,
lowData
:
[],
lowData
:
[],
chosenResult
:
[{
chosenResult
:
[{
...
@@ -135,7 +140,7 @@
...
@@ -135,7 +140,7 @@
mounted
()
{
mounted
()
{
},
},
methods
:
{
methods
:
{
resolveParameterHanle
()
{
resolveParameterHanle
()
{
this
.
resetParameterHandle
()
this
.
resetParameterHandle
()
...
@@ -143,7 +148,7 @@
...
@@ -143,7 +148,7 @@
this
.
parementers
.
ArriveCityId
=
this
.
chosenResult
[
1
].
ID
this
.
parementers
.
ArriveCityId
=
this
.
chosenResult
[
1
].
ID
if
(
this
.
dateRangeValue
.
type
==
1
)
{
if
(
this
.
dateRangeValue
.
type
==
1
)
{
this
.
parementers
.
StartDate
=
this
.
dateRangeValue
.
startDate
this
.
parementers
.
StartDate
=
this
.
dateRangeValue
.
startDate
this
.
parementers
.
EndDate
=
this
.
dateRangeValue
.
startDate
this
.
parementers
.
EndDate
=
this
.
dateRangeValue
.
startDate
}
else
{
}
else
{
const
d
=
this
.
resolveDateByFuzzyHandle
(
this
.
dateRangeValue
.
fuzzy
.
fuzzyType
)
const
d
=
this
.
resolveDateByFuzzyHandle
(
this
.
dateRangeValue
.
fuzzy
.
fuzzyType
)
...
@@ -203,7 +208,7 @@
...
@@ -203,7 +208,7 @@
this
.
loadingLow
=
true
this
.
loadingLow
=
true
this
.
apipost
(
'AirTicket_get_GetTopTicketProduct'
,
this
.
parementers
,
(
r
)
=>
{
this
.
apipost
(
'AirTicket_get_GetTopTicketProduct'
,
this
.
parementers
,
(
r
)
=>
{
if
(
r
.
resultCode
==
1
)
{
if
(
r
.
resultCode
==
1
)
{
this
.
lowData
=
this
.
formatLowData
(
r
.
data
)
this
.
lowData
=
this
.
formatLowData
(
r
.
data
)
console
.
log
(
this
.
lowData
)
console
.
log
(
this
.
lowData
)
}
}
this
.
loadingLow
=
false
this
.
loadingLow
=
false
...
@@ -215,44 +220,44 @@
...
@@ -215,44 +220,44 @@
d
.
forEach
((
x
)
=>
{
d
.
forEach
((
x
)
=>
{
x
.
TicketProductList
.
sort
((
a
,
b
)
=>
{
x
.
TicketProductList
.
sort
((
a
,
b
)
=>
{
return
new
Date
(
a
.
FlightDate
)
-
new
Date
(
b
.
FlightDate
);
return
new
Date
(
a
.
FlightDate
)
-
new
Date
(
b
.
FlightDate
);
})
})
const
newTicket
=
x
.
TicketProductList
.
splice
(
0
,
2
)
const
newTicket
=
x
.
TicketProductList
.
splice
(
0
,
2
)
newTicket
.
forEach
((
x
)
=>
{
newTicket
.
forEach
((
x
)
=>
{
const
q
=
x
.
FlightList
.
findLastIndex
((
f
)
=>
f
.
FlightType
==
3
)
const
q
=
x
.
FlightList
.
findLastIndex
((
f
)
=>
f
.
FlightType
==
3
)
x
.
ReturnDate
=
x
.
FlightList
[
q
].
FlightDate
x
.
ReturnDate
=
x
.
FlightList
[
q
].
FlightDate
x
.
DayCount
=
Math
.
abs
((
new
Date
(
x
.
ReturnDate
).
getTime
()
-
new
Date
(
x
.
FlightDate
).
getTime
())
/
(
24
*
60
*
60
*
1000
))
x
.
DayCount
=
Math
.
abs
((
new
Date
(
x
.
ReturnDate
).
getTime
()
-
new
Date
(
x
.
FlightDate
).
getTime
())
/
(
24
*
60
*
60
*
1000
))
x
.
ReturnDateString
=
this
.
formatDateString
(
x
.
ReturnDate
)
x
.
ReturnDateString
=
this
.
formatDateString
(
x
.
ReturnDate
)
x
.
FlightDateString
=
this
.
formatDateString
(
x
.
FlightDate
)
x
.
FlightDateString
=
this
.
formatDateString
(
x
.
FlightDate
)
})
})
x
.
TicketProductList
=
newTicket
x
.
TicketProductList
=
newTicket
});
});
return
d
return
d
},
},
formatDateString
(
d
){
formatDateString
(
d
){
const
date
=
new
Date
(
d
)
const
date
=
new
Date
(
d
)
const
weeks
=
[
'日'
,
'一'
,
'二'
,
'三'
,
'四'
,
'五'
,
'六'
]
const
weeks
=
[
'日'
,
'一'
,
'二'
,
'三'
,
'四'
,
'五'
,
'六'
]
return
`
${
String
(
date
.
getMonth
()
+
1
).
padStart
(
2
,
'0'
)}
.
${
String
(
date
.
getDate
()).
padStart
(
2
,
'0'
)}
周
${
weeks
[
date
.
getDay
()]}
`
//周${weeks[date.getDay()]}
return
`
${
String
(
date
.
getMonth
()
+
1
).
padStart
(
2
,
'0'
)}
.
${
String
(
date
.
getDate
()).
padStart
(
2
,
'0'
)}
周
${
weeks
[
date
.
getDay
()]}
`
//周${weeks[date.getDay()]}
},
},
setNewCitiesHandle
(
val
){
setNewCitiesHandle
(
val
){
this
.
chosenResult
=
val
this
.
chosenResult
=
val
uni
.
setStorageSync
(
'scf'
,{
uni
.
setStorageSync
(
'scf'
,{
cities
:
this
.
chosenResult
,
cities
:
this
.
chosenResult
,
dateRange
:
this
.
dateRangeValue
dateRange
:
this
.
dateRangeValue
})
})
this
.
getTopLowTicketHandle
()
this
.
getTopLowTicketHandle
()
this
.
resetCityVisible
=
false
this
.
resetCityVisible
=
false
},
},
setDateHandler
(
val
){
setDateHandler
(
val
){
this
.
dateRangeValue
=
val
this
.
dateRangeValue
=
val
this
.
dateVisible
=
false
this
.
dateVisible
=
false
uni
.
setStorageSync
(
'scf'
,{
uni
.
setStorageSync
(
'scf'
,{
cities
:
this
.
chosenResult
,
cities
:
this
.
chosenResult
,
dateRange
:
this
.
dateRangeValue
dateRange
:
this
.
dateRangeValue
})
})
this
.
getTopLowTicketHandle
()
this
.
getTopLowTicketHandle
()
},
},
goListHandle
(
val
,
x
){
goListHandle
(
val
,
x
){
const
newCityInfo
=
[{
const
newCityInfo
=
[{
type
:
0
,
type
:
0
,
ID
:
x
.
DepartureCity
,
ID
:
x
.
DepartureCity
,
...
@@ -263,18 +268,18 @@
...
@@ -263,18 +268,18 @@
ID
:
x
.
ArrivalCityId
,
ID
:
x
.
ArrivalCityId
,
Name
:
x
.
ArrivalCityName
Name
:
x
.
ArrivalCityName
}
}
]
]
uni
.
setStorageSync
(
'scf'
,{
uni
.
setStorageSync
(
'scf'
,{
cities
:
newCityInfo
,
cities
:
newCityInfo
,
dateRange
:
this
.
dateRangeValue
dateRange
:
this
.
dateRangeValue
})
})
let
url
=
'/pages/airTicket/ticketList/ticketList'
let
url
=
'/pages/airTicket/ticketList/ticketList'
if
(
val
!=
''
){
if
(
val
!=
''
){
url
+=
`?dv=
${
encodeURIComponent
(
val
)}
`
url
+=
`?dv=
${
encodeURIComponent
(
val
)}
`
}
}
uni
.
navigateTo
({
uni
.
navigateTo
({
url
url
})
})
}
}
}
}
}
}
...
@@ -290,8 +295,8 @@
...
@@ -290,8 +295,8 @@
.search-box
{
.search-box
{
height
:
200
rpx
;
height
:
200
rpx
;
width
:
100%
;
width
:
100%
;
box-shadow
:
0
0
26
rpx
#f1f1f1
;
box-shadow
:
0
0
26
rpx
#f1f1f1
;
background-image
:
url('https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638750707031350012.jpg')
;
background-image
:
url('https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638750707031350012.jpg')
;
background-size
:
100%
auto
;
background-size
:
100%
auto
;
}
}
...
@@ -301,22 +306,22 @@
...
@@ -301,22 +306,22 @@
color
:
#080A09
;
color
:
#080A09
;
}
}
.air-low-rank
{
.air-low-rank
{
padding
:
40
rpx
;
padding
:
40
rpx
;
}
}
.air-low-rank
.city-list-item
{
.air-low-rank
.city-list-item
{
margin-left
:
18
rpx
;
margin-left
:
18
rpx
;
}
.air-low-rank
.city-list-item
.bold
{
font-weight
:
bold
;
font-size
:
32
rpx
!important
;
color
:
#080A09
;
}
}
.air-low-rank
.city-list-item
.flights
{
.air-low-rank
.city-list-item
.bold
{
background
:
#f1f1f1
;
font-weight
:
bold
;
border-radius
:
8
rpx
;
font-size
:
32
rpx
!important
;
padding
:
10
rpx
;
color
:
#080A09
;
margin-top
:
10
rpx
;
}
.air-low-rank
.city-list-item
.flights
{
background
:
#f1f1f1
;
border-radius
:
8
rpx
;
padding
:
10
rpx
;
margin-top
:
10
rpx
;
}
}
.air-low-rank
.city-list-item
.info-text
{
.air-low-rank
.city-list-item
.info-text
{
font-size
:
24
rpx
;
font-size
:
24
rpx
;
...
...
pages/airTicket/airIndex.vue
View file @
6e29e93c
...
@@ -85,7 +85,14 @@
...
@@ -85,7 +85,14 @@
<view
class=
"col"
>
<view
class=
"col"
>
<text
style=
"font-size: 22rpx;color: #A4A4A4;font-weight: 400;"
>
仅需:
</text>
<text
style=
"font-size: 22rpx;color: #A4A4A4;font-weight: 400;"
>
仅需:
</text>
<text
style=
"color:#FF3166;font-size: 22rpx;"
>
¥
</text>
<text
style=
"color:#FF3166;font-size: 22rpx;"
>
¥
</text>
<text
style=
"font-size: 32rpx;font-weight: bold;color:#FF3166;"
>
{{
x
.
Flight
.
B2BPrice
}}
</text>
<text
style=
"font-size: 32rpx;font-weight: bold;color:#FF3166;"
>
<!-- #ifdef MP-DI-->
{{
x
.
Flight
.
B2CPrice
}}
<!-- #endif-->
<!-- #ifdef MP-AG-->
{{
x
.
Flight
.
B2BPrice
}}
<!-- #endif -->
</text>
</view>
</view>
<view
class=
"more-date"
@
click=
"openFlightHandle(x,1)"
>
更多日期
</view>
<view
class=
"more-date"
@
click=
"openFlightHandle(x,1)"
>
更多日期
</view>
</view>
</view>
...
@@ -96,25 +103,25 @@
...
@@ -96,25 +103,25 @@
</view>
</view>
</view>
</view>
</view>
</view>
</scroll-view>
</scroll-view>
</
template
>
</
template
>
<
script
>
<
script
>
import
CityList
from
'./components/address/CityList.vue'
;
import
CityList
from
'./components/address/CityList.vue'
;
import
DateRange
from
'./components/time/DateRange.vue'
;
import
DateRange
from
'./components/time/DateRange.vue'
;
export
default
{
export
default
{
data
()
{
data
()
{
return
{
return
{
leftPos
:
0
,
leftPos
:
0
,
rightPos
:
0
,
rightPos
:
0
,
leftStyle
:{
leftStyle
:{
transform
:
`translateX(0px)`
,
transform
:
`translateX(0px)`
,
transition
:
'transform 0.5s ease'
,
transition
:
'transform 0.5s ease'
,
},
},
rightStyle
:{
rightStyle
:{
transform
:
`translateX(0px)`
,
transform
:
`translateX(0px)`
,
transition
:
'transform 0.5s ease'
,
transition
:
'transform 0.5s ease'
,
},
},
scrollTop
:
0
,
scrollTop
:
0
,
containerWidth
:
0
,
containerWidth
:
0
,
...
@@ -159,8 +166,8 @@
...
@@ -159,8 +166,8 @@
Name
:
'全部低价城市'
Name
:
'全部低价城市'
}
}
],
],
barHeight
:
0
barHeight
:
0
}
}
},
},
components
:{
CityList
,
DateRange
},
components
:{
CityList
,
DateRange
},
created
()
{
created
()
{
...
@@ -177,7 +184,7 @@
...
@@ -177,7 +184,7 @@
that
.
barHeight
=
r
.
statusBarHeight
that
.
barHeight
=
r
.
statusBarHeight
},
},
});
});
},
},
methods
:
{
methods
:
{
searchFlightHandle
(){
searchFlightHandle
(){
uni
.
setStorageSync
(
'scf'
,{
uni
.
setStorageSync
(
'scf'
,{
...
@@ -285,24 +292,24 @@
...
@@ -285,24 +292,24 @@
})
})
.
exec
();
.
exec
();
});
});
},
},
async
swapLocations
()
{
async
swapLocations
()
{
this
.
leftWidth
=
await
this
.
getDomWidthAsync
(
'.left-name'
)
this
.
leftWidth
=
await
this
.
getDomWidthAsync
(
'.left-name'
)
this
.
rightWidth
=
await
this
.
getDomWidthAsync
(
'.right-name'
)
this
.
rightWidth
=
await
this
.
getDomWidthAsync
(
'.right-name'
)
this
.
leftPos
=
this
.
leftPos
===
0
?
(
this
.
containerWidth
-
this
.
leftWidth
)
:
0
;
this
.
leftPos
=
this
.
leftPos
===
0
?
(
this
.
containerWidth
-
this
.
leftWidth
)
:
0
;
this
.
rightPos
=
this
.
rightPos
===
0
?
-
(
this
.
containerWidth
-
this
.
rightWidth
)
:
0
;
this
.
rightPos
=
this
.
rightPos
===
0
?
-
(
this
.
containerWidth
-
this
.
rightWidth
)
:
0
;
this
.
chosenResult
[
0
].
type
=
this
.
leftPos
===
0
?
0
:
1
this
.
chosenResult
[
0
].
type
=
this
.
leftPos
===
0
?
0
:
1
this
.
chosenResult
[
1
].
type
=
this
.
rightPos
===
0
?
1
:
0
this
.
chosenResult
[
1
].
type
=
this
.
rightPos
===
0
?
1
:
0
this
.
rotateNum
+=
180
this
.
rotateNum
+=
180
this
.
leftStyle
=
{
this
.
leftStyle
=
{
transform
:
`translateX(
${
this
.
leftPos
}
px)`
,
transform
:
`translateX(
${
this
.
leftPos
}
px)`
,
transition
:
'transform 0.5s ease'
,
transition
:
'transform 0.5s ease'
,
}
this
.
rightStyle
=
{
transform
:
`translateX(
${
this
.
rightPos
}
px)`
,
transition
:
'transform 0.5s ease'
,
}
}
this
.
rightStyle
=
{
},
transform
:
`translateX(
${
this
.
rightPos
}
px)`
,
transition
:
'transform 0.5s ease'
,
}
},
popupClose
(){
popupClose
(){
this
.
citiesVisible
=
false
this
.
citiesVisible
=
false
this
.
dateVisible
=
false
this
.
dateVisible
=
false
...
@@ -338,12 +345,12 @@
...
@@ -338,12 +345,12 @@
url
:
'/pages/index/index'
url
:
'/pages/index/index'
})
})
}
}
}
}
}
}
</
script
>
</
script
>
<
style
>
<
style
>
@import
url("../../asset/css/flex.css")
;
@import
url("../../asset/css/flex.css")
;
.nav-box
{
.nav-box
{
height
:
44px
;
/* 这里的44px是示例高度,可根据实际设计调整 */
height
:
44px
;
/* 这里的44px是示例高度,可根据实际设计调整 */
line-height
:
44px
;
line-height
:
44px
;
...
@@ -375,17 +382,17 @@
...
@@ -375,17 +382,17 @@
}
}
.nav-box
.home-btn
:active
{
.nav-box
.home-btn
:active
{
background-color
:
#ccc
;
background-color
:
#ccc
;
}
}
.air-home
{
.air-home
{
background-color
:
#F3F1EF
;
background-color
:
#F3F1EF
;
min-height
:
100vh
;
min-height
:
100vh
;
background-image
:
url('https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/uploads/versions/flight.png')
;
background-image
:
url('https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/uploads/versions/flight.png')
;
background-repeat
:
no-repeat
;
background-repeat
:
no-repeat
;
background-size
:
100%
auto
;
background-size
:
100%
auto
;
padding
:
0
30
rpx
;
padding
:
0
30
rpx
;
padding-top
:
257
rpx
;
padding-top
:
257
rpx
;
padding-bottom
:
36
rpx
;
padding-bottom
:
36
rpx
;
}
}
.air-low-rank
{
.air-low-rank
{
margin-top
:
36
rpx
;
margin-top
:
36
rpx
;
border-radius
:
16
rpx
;
border-radius
:
16
rpx
;
...
@@ -448,66 +455,66 @@
...
@@ -448,66 +455,66 @@
color
:
#000000
DD
;
color
:
#000000
DD
;
font-size
:
22
rpx
;
font-size
:
22
rpx
;
font-weight
:
400
;
font-weight
:
400
;
}
}
.air-home-header
{
.air-home-header
{
border-radius
:
18
rpx
;
border-radius
:
18
rpx
;
background-color
:
#FFF
;
background-color
:
#FFF
;
}
}
.air-home-header
.title-box
{
.air-home-header
.title-box
{
height
:
79
rpx
;
height
:
79
rpx
;
background
:
#FAF0DB
;
background
:
#FAF0DB
;
position
:
relative
;
position
:
relative
;
border-top-right-radius
:
18
rpx
;
border-top-right-radius
:
18
rpx
;
}
}
.air-home-header
.title-box
.active-item
{
.air-home-header
.title-box
.active-item
{
background-color
:
#fff
;
background-color
:
#fff
;
position
:
absolute
;
position
:
absolute
;
padding-top
:
30
rpx
;
padding-top
:
30
rpx
;
border-top-right-radius
:
18
rpx
;
border-top-right-radius
:
18
rpx
;
border-top-left-radius
:
18
rpx
;
border-top-left-radius
:
18
rpx
;
top
:
-10
rpx
;
top
:
-10
rpx
;
width
:
310
rpx
;
width
:
310
rpx
;
bottom
:
0
;
bottom
:
0
;
left
:
0
;
left
:
0
;
text-align
:
center
;
text-align
:
center
;
font-weight
:
bold
;
font-weight
:
bold
;
font-size
:
32
rpx
;
font-size
:
32
rpx
;
color
:
#B99846
;
color
:
#B99846
;
}
}
.air-home-header
.title-box
.active-item
.right
{
.air-home-header
.title-box
.active-item
.right
{
width
:
75
rpx
;
width
:
75
rpx
;
height
:
89
rpx
;
height
:
89
rpx
;
position
:
absolute
;
position
:
absolute
;
background-image
:
url('https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638745412034709773.png')
;
background-image
:
url('https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638745412034709773.png')
;
background-size
:
100%
100%
;
background-size
:
100%
100%
;
right
:
-62
rpx
;
right
:
-62
rpx
;
top
:
0
;
top
:
0
;
}
}
.air-home
.air-home-header
.air-tools
{
.air-home
.air-home-header
.air-tools
{
padding
:
36
rpx
;
padding
:
36
rpx
;
}
}
.air-tools
.cities-name
{
.air-tools
.cities-name
{
font-weight
:
bold
;
font-weight
:
bold
;
font-size
:
32
rpx
;
font-size
:
32
rpx
;
color
:
#080A09
;
color
:
#080A09
;
}
}
.air-tools
.normal-label
{
.air-tools
.normal-label
{
font-size
:
24
rpx
;
font-size
:
24
rpx
;
color
:
#9999A6
;
color
:
#9999A6
;
}
}
.air-tools
.exchange
{
.air-tools
.exchange
{
background-image
:
url('https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Test/Upload/Goods/1696990221000_663.png')
;
background-image
:
url('https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Test/Upload/Goods/1696990221000_663.png')
;
background-repeat
:
no-repeat
;
background-repeat
:
no-repeat
;
background-position
:
center
center
;
background-position
:
center
center
;
background-size
:
38
rpx
auto
;
background-size
:
38
rpx
auto
;
/* 这里设置背景图片的宽度和高度 */
/* 这里设置背景图片的宽度和高度 */
height
:
30px
;
height
:
30px
;
}
}
</
style
>
</
style
>
\ No newline at end of file
pages/airTicket/flightDetail.vue
View file @
6e29e93c
This diff is collapsed.
Click to expand it.
pages/airTicket/ticketList/ticketList.vue
View file @
6e29e93c
This diff is collapsed.
Click to expand it.
pages/coupon/details/details.vue
View file @
6e29e93c
...
@@ -54,8 +54,8 @@
...
@@ -54,8 +54,8 @@
<view
class=
"cdTiaojianBRText"
v-if=
"g.remark&&g.remark!=''"
>
备注:{{ g.remark }}
</view>
<view
class=
"cdTiaojianBRText"
v-if=
"g.remark&&g.remark!=''"
>
备注:{{ g.remark }}
</view>
</view>
</view>
</view>
</view>
<view
class=
"cdTiaojianButtom"
v-if=
"type==1"
@
click=
"gouseUrl(
g
)"
>
立即使用
</view>
<view
class=
"cdTiaojianButtom"
v-if=
"type==1"
@
click=
"gouseUrl()"
>
立即使用
</view>
<view
class=
"cdTiaojianButtom"
v-else
@
click=
"g.couponReceiveCount==0?receive(
g.couponReceiveCount):gouseUrl(g
)"
>
{{ g.couponReceiveCount==0?'立即领取':'立即使用' }}
</view>
<view
class=
"cdTiaojianButtom"
v-else
@
click=
"g.couponReceiveCount==0?receive(
):gouseUrl(
)"
>
{{ g.couponReceiveCount==0?'立即领取':'立即使用' }}
</view>
</view>
</view>
</view>
</view>
...
@@ -108,9 +108,9 @@
...
@@ -108,9 +108,9 @@
return
num
return
num
},
},
receive
(
id
){
receive
(){
this
.
apipost
(
"b2c_post_CustomerGrantCoupon"
,
{
this
.
apipost
(
"b2c_post_CustomerGrantCoupon"
,
{
Id
:
id
Id
:
this
.
g
.
id
},
(
res
)
=>
{
},
(
res
)
=>
{
if
(
res
.
resultCode
==
1
)
{
if
(
res
.
resultCode
==
1
)
{
uni
.
showToast
({
uni
.
showToast
({
...
@@ -129,7 +129,7 @@
...
@@ -129,7 +129,7 @@
},
},
gouseUrl
(
g
)
{
gouseUrl
()
{
uni
.
redirectTo
({
uni
.
redirectTo
({
url
:
'/pages/index/index'
url
:
'/pages/index/index'
});
});
...
...
pages/jiuzhai/components/sign/index.vue
View file @
6e29e93c
...
@@ -305,58 +305,75 @@
...
@@ -305,58 +305,75 @@
for
(
let
i
=
0
;
i
<
this
.
count
;
i
++
)
{
for
(
let
i
=
0
;
i
<
this
.
count
;
i
++
)
{
var
days
=
[];
var
days
=
[];
var
week
=
0
;
var
week
=
0
;
for
(
var
j
=
0
;
j
<
new
Date
(
year
,
month
+
1
,
0
).
getDate
();
j
++
)
{
// #ifdef MP-DI
let
isexsit
=
false
;
for
(
var
j
=
0
;
j
<
new
Date
(
year
,
month
+
1
,
0
).
getDate
();
j
++
)
{
const
m
=
month
+
1
>
9
?
month
+
1
:
"0"
+
(
month
+
1
);
let
isexsit
=
false
;
const
d
=
j
+
1
>
9
?
j
+
1
:
"0"
+
(
j
+
1
);
const
m
=
month
+
1
>
9
?
month
+
1
:
"0"
+
(
month
+
1
);
const
ds
=
`
${
year
}
-
${
m
}
-
${
d
}
`
const
d
=
j
+
1
>
9
?
j
+
1
:
"0"
+
(
j
+
1
);
const
price
=
this
.
priceList
.
find
(
p
=>
p
.
startDate
==
ds
)
const
ds
=
`
${
year
}
-
${
m
}
-
${
d
}
`
if
(
price
)
{
const
price
=
this
.
priceList
.
find
(
p
=>
p
.
startDate
==
ds
)
isexsit
=
true
if
(
price
)
{
if
(
price
.
remainNum
>
0
){
isexsit
=
true
let
priceNum
=
0
if
(
price
.
remainNum
>
0
){
// #ifdef MP-DI
days
.
push
(
price
.
b2CPrice
)
priceNum
=
price
.
b2CPrice
}
/// #endif
else
if
(
price
.
isSubstitution
==
1
)
// #ifdef MP-AG
days
.
push
(
-
2
)
priceNum
=
price
.
b2BPrice
else
/// #endif
days
.
push
(
-
1
)
days
.
push
(
priceNum
)
}
else
{
days
.
push
(
0
);
}
}
else
if
(
price
.
isSubstitution
==
1
)
days
.
push
(
-
2
)
else
days
.
push
(
-
1
)
}
else
{
days
.
push
(
0
);
}
}
console
.
log
(
this
.
priceList
.
length
,
new
Date
(
year
,
month
+
1
,
0
).
getDate
(),
price
)
// #endif
// for (var k = 0; k
<
this
.
priceList
.
length
;
k
++
)
{
// #ifdef MP-AG
// const x = this.priceList[k];
for
(
var
j
=
0
;
j
<
new
Date
(
year
,
month
+
1
,
0
).
getDate
();
j
++
)
{
// console.log(x)
let
isexsit
=
false
;
// }
const
m
=
month
+
1
>
9
?
month
+
1
:
"0"
+
(
month
+
1
);
// this.priceList.forEach((x) => {
const
d
=
j
+
1
>
9
?
j
+
1
:
"0"
+
(
j
+
1
);
// let m = month + 1 > 9 ? month + 1 : "0" + (month + 1);
const
ds
=
`
${
year
}
-
${
m
}
-
${
d
}
`
// let d = j + 1 > 9 ? j + 1 : "0" + (j + 1);
const
price
=
this
.
priceList
.
find
(
p
=>
p
.
startDate
==
ds
)
// //console.log(x.startDate+'-----'+`${year}-${m}-${d}`)
if
(
price
)
{
// if (x.startDate == `${year}-${m}-${d}`) {
isexsit
=
true
// isexsit = true;
if
(
price
.
remainNum
>
0
){
// if (x.remainNum > 0) {
days
.
push
(
price
.
b2BPrice
)
// let priceNum = 0
}
// // #ifdef MP-DI
else
if
(
price
.
isSubstitution
==
1
)
// priceNum = x.b2CPrice
days
.
push
(
-
2
)
// // #endif
else
// // #ifdef MP-AG
days
.
push
(
-
1
)
// priceNum = x.b2BPrice
}
else
{
// // #endif
days
.
push
(
0
);
// days.push(priceNum);
}
// //days.push(x.b2CPrice);
console
.
log
(
this
.
priceList
.
length
,
new
Date
(
year
,
month
+
1
,
0
).
getDate
(),
price
)
// } else {
// for (var k = 0; k
<
this
.
priceList
.
length
;
k
++
)
{
// days.push(-1);
// const x = this.priceList[k];
// }
// console.log(x)
// }
// }
// });
// this.priceList.forEach((x) => {
}
// let m = month + 1 > 9 ? month + 1 : "0" + (month + 1);
// let d = j + 1 > 9 ? j + 1 : "0" + (j + 1);
// //console.log(x.startDate+'-----'+`${year}-${m}-${d}`)
// if (x.startDate == `${year}-${m}-${d}`) {
// isexsit = true;
// if (x.remainNum > 0) {
// let priceNum = 0
// // #ifdef MP-DI
// priceNum = x.b2CPrice
// // #endif
// // #ifdef MP-AG
// priceNum = x.b2BPrice
// // #endif
// days.push(priceNum);
// //days.push(x.b2CPrice);
// } else {
// days.push(-1);
// }
// }
// });
}
// #endif
data
.
push
(
days
);
data
.
push
(
days
);
if
(
month
==
11
)
{
if
(
month
==
11
)
{
year
+=
1
;
year
+=
1
;
...
...
pages/jiuzhai/jz_LineDetail.vue
View file @
6e29e93c
...
@@ -1086,7 +1086,7 @@
...
@@ -1086,7 +1086,7 @@
<
/view
>
<
/view
>
<
view
class
=
"line-flex"
style
=
"padding: 30rpx; background: #fff"
<
view
class
=
"line-flex"
style
=
"padding: 30rpx; background: #fff"
v
-
if
=
"createBy==0&&SaleList&&SaleList.length>1"
@
click
=
"showSalePreviwe=true"
>
v
-
if
=
"createBy==0&&SaleList&&SaleList.length>1"
@
click
=
"showSalePreviwe=true"
>
<
text
style
=
"font-size: 28rpx; color: #111; font-weight: 500"
>
销售
<
/text
>
<
text
style
=
"font-size: 28rpx; color: #111; font-weight: 500"
>
服务人员
<
/text
>
<
text
style
=
"
<
text
style
=
"
font-size: 22rpx;
font-size: 22rpx;
color: #999;
color: #999;
...
@@ -1206,7 +1206,7 @@
...
@@ -1206,7 +1206,7 @@
<
u
-
popup
v
-
model
=
"showSalePreviwe"
mode
=
"bottom"
border
-
radius
=
"50"
length
=
"60%"
:
safe
-
area
-
inset
-
bottom
=
"true"
>
<
u
-
popup
v
-
model
=
"showSalePreviwe"
mode
=
"bottom"
border
-
radius
=
"50"
length
=
"60%"
:
safe
-
area
-
inset
-
bottom
=
"true"
>
<
view
>
<
view
>
<
view
style
=
"font-size: 17px;text-align: center;padding: 20px 0;"
>
<
view
style
=
"font-size: 17px;text-align: center;padding: 20px 0;"
>
选择
销售
选择
服务人员
<
/view
>
<
/view
>
<
scroll
-
view
scroll
-
x
=
"true"
style
=
"width: 100%;height: 43vh;"
>
<
scroll
-
view
scroll
-
x
=
"true"
style
=
"width: 100%;height: 43vh;"
>
<
view
class
=
"SaleBox"
>
<
view
class
=
"SaleBox"
>
...
@@ -1426,7 +1426,12 @@
...
@@ -1426,7 +1426,12 @@
}
)
}
)
}
}
this
.
customer
=
uni
.
getStorageSync
(
"b2b_user"
);
this
.
customer
=
uni
.
getStorageSync
(
"b2b_user"
);
this
.
delMsg
.
customerId
=
this
.
customer
.
customerId
// #ifdef MP-DI
this
.
delMsg
.
directCustomerId
=
this
.
customer
.
customerId
// #endif
// #ifdef MP-AG
this
.
delMsg
.
customerId
=
this
.
customer
.
customerId
// #endif
if
(
!
option
.
scene
)
{
if
(
!
option
.
scene
)
{
if
(
option
.
lineId
)
{
if
(
option
.
lineId
)
{
this
.
delMsg
.
lineId
=
option
.
lineId
;
this
.
delMsg
.
lineId
=
option
.
lineId
;
...
@@ -1554,7 +1559,13 @@
...
@@ -1554,7 +1559,13 @@
this
.
couponList
.
forEach
(
x
=>
{
this
.
couponList
.
forEach
(
x
=>
{
if
(
x
.
couponsType
==
1
&&
x
.
denomination
>
this
.
maxCouponDiscount
)
this
.
maxCouponDiscount
=
x
.
denomination
if
(
x
.
couponsType
==
1
&&
x
.
denomination
>
this
.
maxCouponDiscount
)
this
.
maxCouponDiscount
=
x
.
denomination
if
(
x
.
couponsType
==
2
){
if
(
x
.
couponsType
==
2
){
const
disMoney
=
this
.
currentPrice
.
b2BPrice
*
(
1
-
x
.
denomination
)
let
disMoney
=
0
// #ifdef MP-DI
disMoney
=
this
.
currentPrice
.
b2CPrice
*
(
1
-
x
.
denomination
)
// #endif
// #ifdef MP-AG
disMoney
=
this
.
currentPrice
.
b2BPrice
*
(
1
-
x
.
denomination
)
// #endif
this
.
maxCouponDiscount
=
this
.
maxCouponDiscount
<
disMoney
?
disMoney
:
this
.
maxCouponDiscount
this
.
maxCouponDiscount
=
this
.
maxCouponDiscount
<
disMoney
?
disMoney
:
this
.
maxCouponDiscount
}
}
}
)
}
)
...
@@ -2023,14 +2034,16 @@
...
@@ -2023,14 +2034,16 @@
this.is_show_auth = 1;
this.is_show_auth = 1;
return;
return;
}
}
if (this.SaleList&&this.SaleList.length>1&&this.SaleId==0&&this.createBy==0) {
// #ifdef MP-AG
uni.showToast({
if (this.SaleList&&this.SaleList.length>1&&this.SaleId==0&&this.createBy==0) {
title: "请选择销售",
uni.showToast({
icon: "none",
title: "请选择服务人员",
}
);
icon: "none",
this.showSalePreviwe = true;
}
);
return;
this.showSalePreviwe = true;
}
return;
}
// #endif
let myObj = {
}
;
let myObj = {
}
;
myObj.startCityName = this.dataList.startCityName;
myObj.startCityName = this.dataList.startCityName;
myObj.startDate = this.currentPrice.startDate;
myObj.startDate = this.currentPrice.startDate;
...
@@ -2057,7 +2070,15 @@
...
@@ -2057,7 +2070,15 @@
yeCount: this.yeCount, //婴儿
yeCount: this.yeCount, //婴儿
etbCount: this.etbCount, //儿童不占床
etbCount: this.etbCount, //儿童不占床
}
;
}
;
let createBy = this.createBy>0?this.createBy:this.SaleId
let createBy = 0
// #ifdef MP-DI
createBy = this.createBy>0?this.createBy:this.customer.pid
// #endif
// #ifdef MP-AG
if(this.createBy>0||this.SaleId) createBy = this.createBy>0?this.createBy:this.SaleId
// #endif
let tParams = "&tcid=" +
let tParams = "&tcid=" +
this.delMsg.tcid +
this.delMsg.tcid +
"&cityId=" +
"&cityId=" +
...
...
pages/jiuzhai/jz_Reserve.vue
View file @
6e29e93c
...
@@ -343,34 +343,40 @@
...
@@ -343,34 +343,40 @@
<view
style=
"flex: 1"
>
<view
style=
"flex: 1"
>
<text
style=
"margin-right: 30rpx"
>
成人
</text>
<text
style=
"margin-right: 30rpx"
>
成人
</text>
</view>
</view>
<view
style=
"text-align: right"
>
{{
orderMsg
.
ManNum
}}
人 × ¥
{{
$utils
.
getretailer
()?
currentPriceInfo
.
b2BPrice
:
currentPriceInfo
.
b2CPrice
<view
style=
"text-align: right"
>
{{
orderMsg
.
ManNum
}}
人 × ¥
}}
</view>
<!-- #ifdef MP-DI -->
{{
currentPriceInfo
.
b2CPrice
}}
<!-- #endif -->
<!-- #ifdef MP-AG -->
{{
currentPriceInfo
.
b2BPrice
}}
<!-- #endif -->
</view>
</view>
</view>
<view
class=
"flex f12 grey"
style=
"margin-bottom: 40rpx"
:key=
"index"
v-if=
"orderMsg.ChirdNeedBedNum > 0"
>
<view
class=
"flex f12 grey"
style=
"margin-bottom: 40rpx"
:key=
"index"
v-if=
"orderMsg.ChirdNeedBedNum > 0"
>
<view
style=
"flex: 1"
>
<view
style=
"flex: 1"
>
<text
style=
"margin-right: 30rpx"
>
儿童(占床)
</text>
<text
style=
"margin-right: 30rpx"
>
儿童(占床)
</text>
</view>
</view>
<view
style=
"text-align: right"
>
{{
orderMsg
.
ChirdNeedBedNum
}}
人 × ¥
{{
<view
style=
"text-align: right"
>
{{
orderMsg
.
ChirdNeedBedNum
}}
人 × ¥
(
$utils
.
getretailer
()
<!-- #ifdef MP-DI -->
?
currentPriceInfo
.
b2BPrice
{{
currentPriceInfo
.
b2CPrice
+
(
currentPriceInfo
.
childNeedPrice
?
currentPriceInfo
.
childNeedPrice
:
0
)
}}
:
currentPriceInfo
.
b2CPrice
)
+
<!-- #endif -->
(
currentPriceInfo
.
childNeedPrice
<!-- #ifdef MP-AG -->
?
currentPriceInfo
.
childNeedPrice
{{
currentPriceInfo
.
b2BPrice
+
(
currentPriceInfo
.
childNeedPrice
?
currentPriceInfo
.
childNeedPrice
:
0
)
}}
:
0
)
<!-- #endif -->
}}
</view>
</view>
</view>
</view>
<view
class=
"flex f12 grey"
style=
"margin-bottom: 40rpx"
:key=
"index"
v-if=
"orderMsg.ChirdNoBedNum > 0"
>
<view
class=
"flex f12 grey"
style=
"margin-bottom: 40rpx"
:key=
"index"
v-if=
"orderMsg.ChirdNoBedNum > 0"
>
<view
style=
"flex: 1"
>
<view
style=
"flex: 1"
>
<text
style=
"margin-right: 30rpx"
>
儿童(不占床)
</text>
<text
style=
"margin-right: 30rpx"
>
儿童(不占床)
</text>
</view>
</view>
<view
style=
"text-align: right"
>
{{
orderMsg
.
ChirdNoBedNum
}}
人 × ¥
{{
<view
style=
"text-align: right"
>
{{
orderMsg
.
ChirdNoBedNum
}}
人 × ¥
(
$utils
.
getretailer
()
<!-- #ifdef MP-DI -->
?
currentPriceInfo
.
b2BPrice
{{
currentPriceInfo
.
b2CPrice
-
(
currentPriceInfo
.
childNoNeedPrice
?
currentPriceInfo
.
childNoNeedPrice
:
0
)
}}
:
currentPriceInfo
.
b2CPrice
)
-
<!-- #endif -->
(
currentPriceInfo
.
childNoNeedPrice
<!-- #ifdef MP-AG -->
?
currentPriceInfo
.
childNoNeedPrice
{{
currentPriceInfo
.
b2BPrice
-
(
currentPriceInfo
.
childNoNeedPrice
?
currentPriceInfo
.
childNoNeedPrice
:
0
)
}}
:
0
)
<!-- #endif -->
}}
</view>
</view>
</view>
</view>
<view
class=
"flex f12 grey"
style=
"margin-bottom: 40rpx"
:key=
"index"
v-if=
"orderMsg.BabyNum > 0"
>
<view
class=
"flex f12 grey"
style=
"margin-bottom: 40rpx"
:key=
"index"
v-if=
"orderMsg.BabyNum > 0"
>
<view
style=
"flex: 1"
>
<view
style=
"flex: 1"
>
...
@@ -445,9 +451,15 @@
...
@@ -445,9 +451,15 @@
<text
style=
"color: #6e6e6e; font-size: 24rpx;font-family: microsoft yahei ui light;"
>
共计
{{
total
}}
人
</text>
<text
style=
"color: #6e6e6e; font-size: 24rpx;font-family: microsoft yahei ui light;"
>
共计
{{
total
}}
人
</text>
</view>
</view>
<view
style=
"display: flex; margin-top: -2px"
>
<view
style=
"display: flex; margin-top: -2px"
>
<button
class=
"jz_OrderReNow"
@
click=
"goPay()"
:disabled=
"submit"
:loading=
"submit"
>
<button
class=
"jz_OrderReNow"
@
click=
"goPay()"
:disabled=
"submit"
:loading=
"submit"
>
立即预定
<!-- #ifdef MP-DI -->
</button>
立即支付
<!-- #endif -->
<!-- #ifdef MP-AG -->
立即预定
<!-- #endif -->
</button>
</view>
</view>
</view>
</view>
</view>
</view>
...
@@ -532,6 +544,7 @@
...
@@ -532,6 +544,7 @@
CreateBy
:
0
,
CreateBy
:
0
,
showPz
:
false
,
showPz
:
false
,
pzCoupon
:
null
,
pzCoupon
:
null
,
userInfo
:
{},
};
};
},
},
created
()
{
created
()
{
...
@@ -543,6 +556,7 @@
...
@@ -543,6 +556,7 @@
},
},
onLoad
(
option
)
{
onLoad
(
option
)
{
this
.
customer
=
uni
.
getStorageSync
(
"b2b_user"
);
this
.
customer
=
uni
.
getStorageSync
(
"b2b_user"
);
console
.
log
(
this
.
customer
,
'--------'
);
if
(
option
.
currentPriceInfo
)
{
if
(
option
.
currentPriceInfo
)
{
this
.
currentPriceInfo
=
JSON
.
parse
(
this
.
currentPriceInfo
=
JSON
.
parse
(
decodeURIComponent
(
option
.
currentPriceInfo
)
decodeURIComponent
(
option
.
currentPriceInfo
)
...
@@ -569,6 +583,74 @@
...
@@ -569,6 +583,74 @@
this
.
getUserCouponList
();
this
.
getUserCouponList
();
},
},
methods
:
{
methods
:
{
getUserInfoHandler
()
{
this
.
apipost
(
"GetCustomerInfo_post"
,
{
Id
:
this
.
customer
.
customerId
},
(
res
)
=>
{
if
(
res
.
resultCode
==
1
)
{
this
.
userInfo
=
res
.
data
;
console
.
log
(
this
.
userInfo
,
'----'
);
}
});
},
submitB2COrderHandler
(
orderId
)
{
let
productType
=
0
if
(
this
.
currentPriceInfo
.
teamType
==
"0"
)
{
//跟团游
productType
=
2
;
}
else
if
(
this
.
currentPriceInfo
.
teamType
==
"1"
)
{
//小包团
productType
=
10
;
}
else
if
(
this
.
currentPriceInfo
.
teamType
==
"2"
)
{
//当地游
productType
=
8
;
}
let
guestInfo
=
`成人x
${
this
.
orderMsg
.
ManNum
}
; `
;
if
(
this
.
orderMsg
.
ChirdNeedBedNum
>
0
)
{
guestInfo
+=
`占床儿童
${
this
.
orderMsg
.
ChirdNeedBedNum
}
; `
;
}
if
(
this
.
orderMsg
.
ChirdNoBedNum
>
0
)
{
guestInfo
+=
`不占床儿童x
${
this
.
orderMsg
.
ChirdNoBedNum
}
; `
;
}
if
(
this
.
orderMsg
.
BabyNum
>
0
)
{
guestInfo
+=
`婴儿x
${
this
.
orderMsg
.
BabyNum
}
; `
;
}
let
startCityName
=
this
.
realCurrentPriceInfo
.
priceUnion
&&
this
.
realCurrentPriceInfo
.
priceUnion
.
startCityName
?
this
.
realCurrentPriceInfo
.
priceUnion
.
startCityName
:
this
.
currentPriceInfo
.
startCityName
let
msg
=
{
SurName
:
''
,
Name
:
this
.
customer
.
name
,
ContactNumber
:
this
.
customer
.
contactNumber
,
Mailbox
:
''
,
GoodsId
:
this
.
currentPriceInfo
.
tcid
,
GoodsName
:
this
.
currentPriceInfo
.
title
,
GoodsPic
:
this
.
currentPriceInfo
.
CoverImg
?
this
.
currentPriceInfo
.
CoverImg
:
''
,
GoodsType
:
productType
,
OrderMake
:
`
${
this
.
currentPriceInfo
.
startDate
}
从
${
startCityName
}
出发
${
guestInfo
}
`
,
TotalPrice
:
this
.
price
,
PreferentialPrice
:
this
.
currentCoupon
.
discountMoney
,
ErpOrderId
:
orderId
,
Country
:
''
,
PlatformTax
:
0
,
Income
:
0
,
Refund
:
0
,
};
this
.
apipost
(
"AddOrderInfo_post"
,
msg
,
(
res
)
=>
{
if
(
res
.
resultCode
==
1
)
{
uni
.
showToast
({
icon
:
'none'
,
title
:
'订单创建成功'
})
this
.
goPayHandler
(
res
.
data
);
}
else
{
uni
.
showToast
({
title
:
res
.
message
,
icon
:
'none'
,
duration
:
3000
})
}
});
},
goPayHandler
(
pay
)
{
//pay.OrderNo
},
showCouponHandler
()
{
showCouponHandler
()
{
this
.
showCoupon
=
this
.
couponList
.
length
>
0
;
this
.
showCoupon
=
this
.
couponList
.
length
>
0
;
},
},
...
@@ -761,11 +843,12 @@
...
@@ -761,11 +843,12 @@
//计算价格
//计算价格
calcMoney
()
{
calcMoney
()
{
var
price
=
0
;
var
price
=
0
;
if
(
this
.
$utils
.
getretailer
())
{
// #ifdef MP-DI
price
=
this
.
currentPriceInfo
.
b2BPrice
;
}
else
{
price
=
this
.
currentPriceInfo
.
b2CPrice
;
price
=
this
.
currentPriceInfo
.
b2CPrice
;
}
// #endif
// #ifdef MP-AG
price
=
this
.
currentPriceInfo
.
b2BPrice
;
// #endif
this
.
orderMsg
.
ChirdNum
=
parseInt
(
this
.
orderMsg
.
ChirdNoBedNum
)
+
parseInt
(
this
.
orderMsg
.
ChirdNeedBedNum
);
this
.
orderMsg
.
ChirdNum
=
parseInt
(
this
.
orderMsg
.
ChirdNoBedNum
)
+
parseInt
(
this
.
orderMsg
.
ChirdNeedBedNum
);
//计算总人数
//计算总人数
this
.
total
=
parseInt
(
this
.
orderMsg
.
ManNum
)
+
parseInt
(
this
.
orderMsg
.
ChirdNum
)
+
parseInt
(
this
.
orderMsg
.
BabyNum
);
this
.
total
=
parseInt
(
this
.
orderMsg
.
ManNum
)
+
parseInt
(
this
.
orderMsg
.
ChirdNum
)
+
parseInt
(
this
.
orderMsg
.
BabyNum
);
...
@@ -813,37 +896,6 @@
...
@@ -813,37 +896,6 @@
},
},
//去支付
//去支付
goPay
()
{
goPay
()
{
// for (var i = 0; i
<
this
.
GuestList
.
length
;
i
++
)
{
// if (this.GuestList[i].SurName == "") {
// uni.showToast({
// title: `请输入游客${i + 1}的姓名`,
// icon: "none",
// });
// return;
// }
// if (this.GuestList[i].IdCard == "") {
// uni.showToast({
// title: `请输入游客${i + 1}的身份证`,
// icon: "none",
// });
// return;
// }
// if (this.GuestList[i].MobilePhone == "") {
// uni.showToast({
// title: `请输入游客${i + 1}的联系电话`,
// icon: "none",
// });
// return;
// }
// }
if
(
!
this
.
CreateBy
){
uni
.
showToast
({
title
:
`销售为空,请联系销售人员!`
,
icon
:
"none"
,
});
return
}
this
.
submit
=
true
;
this
.
submit
=
true
;
this
.
userInfo
=
uni
.
getStorageSync
(
"mall_UserInfo"
);
this
.
userInfo
=
uni
.
getStorageSync
(
"mall_UserInfo"
);
this
.
basedataObj
=
uni
.
getStorageSync
(
"basedata"
).
mall
;
this
.
basedataObj
=
uni
.
getStorageSync
(
"basedata"
).
mall
;
...
@@ -866,11 +918,16 @@
...
@@ -866,11 +918,16 @@
var
CustomerType
=
this
.
customer
.
isMember
//4;
var
CustomerType
=
this
.
customer
.
isMember
//4;
var
CustomerCreateBy
=
this
.
customer
.
createBy
;
var
CustomerCreateBy
=
this
.
customer
.
createBy
;
var
price
=
0
;
var
price
=
0
;
if
(
this
.
$utils
.
getretailer
())
{
var
CreateBy
=
0
price
=
this
.
currentPriceInfo
.
b2BPrice
;
var
DirectCustomerId
=
0
}
else
{
// #ifdef MP-DI
price
=
this
.
currentPriceInfo
.
b2CPrice
;
price
=
this
.
currentPriceInfo
.
b2CPrice
;
}
DirectCustomerId
=
this
.
CreateBy
// #endif
// #ifdef MP-AG
price
=
this
.
currentPriceInfo
.
b2BPrice
;
CreateBy
=
this
.
CreateBy
// #endif
let
CouponAllotIds
=
''
let
CouponAllotIds
=
''
if
(
this
.
useCouponIds
.
length
>
0
){
if
(
this
.
useCouponIds
.
length
>
0
){
CouponAllotIds
=
this
.
useCouponIds
.
join
(
','
)
CouponAllotIds
=
this
.
useCouponIds
.
join
(
','
)
...
@@ -926,8 +983,8 @@
...
@@ -926,8 +983,8 @@
CommissionSharePeople
:
0
,
CommissionSharePeople
:
0
,
CommissionShareMoney
:
0
,
CommissionShareMoney
:
0
,
MiniAppUserId
:
MiniAppUserId
,
MiniAppUserId
:
MiniAppUserId
,
CreateBy
:
this
.
CreateBy
,
//同行联系人创建人 CustomerCreateBy
CreateBy
:
CreateBy
,
//同行联系人创建人 CustomerCreateBy
DirectCustomerId
:
0
,
//直客Id
DirectCustomerId
:
DirectCustomerId
,
//直客Id
// #ifdef MP-WEIXIN
// #ifdef MP-WEIXIN
OrderSource
:
5
,
OrderSource
:
5
,
// #endif
// #endif
...
@@ -953,13 +1010,19 @@
...
@@ -953,13 +1010,19 @@
if
(
tempData
.
CounponList
&&
tempData
.
CounponList
.
length
>
0
){
if
(
tempData
.
CounponList
&&
tempData
.
CounponList
.
length
>
0
){
uni
.
setStorageSync
(
'coupons'
,
tempData
.
CounponList
)
uni
.
setStorageSync
(
'coupons'
,
tempData
.
CounponList
)
}
}
uni
.
showToast
({
// #ifdef MP-DI
title
:
'订单创建成功.'
,
this
.
submitB2COrderHandler
(
tempData
.
OrderId
)
icon
:
'none'
// #endif
})
// #ifdef MP-AG
uni
.
redirectTo
({
uni
.
showToast
({
url
:
"/pages/jiuzhai/jz_MyOrder"
,
title
:
'订单创建成功.'
,
});
icon
:
'none'
})
uni
.
redirectTo
({
url
:
"/pages/jiuzhai/jz_MyOrder"
,
});
// #endif
// let data = res.data;
// let data = res.data;
// data.CoverImg = this.currentPriceInfo.CoverImg;
// data.CoverImg = this.currentPriceInfo.CoverImg;
// let myData = JSON.stringify(data);
// let myData = JSON.stringify(data);
...
@@ -979,7 +1042,9 @@
...
@@ -979,7 +1042,9 @@
duration
:
3000
duration
:
3000
})
})
}
}
this
.
submit
=
false
;
// #ifdef MP-AG
this
.
submit
=
false
;
// #endif
},
},
(
e
)
=>
{
(
e
)
=>
{
this
.
submit
=
false
;
this
.
submit
=
false
;
...
...
pages/visa/visaDetail.vue
View file @
6e29e93c
...
@@ -42,24 +42,40 @@
...
@@ -42,24 +42,40 @@
<view
style=
"padding: 33rpx 30rpx 51rpx 38rpx;"
>
<view
style=
"padding: 33rpx 30rpx 51rpx 38rpx;"
>
<view
class=
"jz_LineTitle row items-center"
>
<view
class=
"jz_LineTitle row items-center"
>
<view
class=
"col"
>
<view
class=
"col"
>
<text>
原价:
</text>
<!-- #ifdef MP-AG -->
<text>
原价:
</text>
<!-- #endif -->
<text
class=
"jz_renmin"
>
¥
</text>
<text
class=
"jz_renmin"
>
¥
</text>
<text
class=
"jz_B2bPrice"
>
<text
class=
"jz_B2bPrice"
>
<!--{{ discountPrice }}-->
<!--{{ discountPrice }}-->
{{ $utils.getretailer()?dataList.VisaPrice:dataList.VisaB2CPrice }}
<!-- #ifdef MP-DI -->
{{dataList.VisaB2CPrice}}
<!-- #endif -->
<!-- #ifdef MP-AG -->
{{dataList.VisaPrice}}
<!-- #endif -->
</text>
</text>
<text
style=
"color: #999999; font-size: 28rpx; font-weight: 400"
>
/人
</text>
<!-- #ifdef MP-AG -->
<text
style=
"font-size: 13px;color:#111;margin-left: 10px;"
>
<text
style=
"color: #999999; font-size: 28rpx; font-weight: 400"
>
/人
</text>
直客价:
<text
style=
"font-size: 20rpx;"
>
¥
</text>
{{ dataList.VisaB2CPrice}}
<text
style=
"font-size: 13px;color:#111;margin-left: 10px;"
>
</text>
直客价:
<text
style=
"font-size: 20rpx;"
>
¥
</text>
{{ dataList.VisaB2CPrice}}
</text>
<!-- #endif -->
</view>
</view>
</view>
</view>
<view
class=
"jz_LineDetaYJDKQ"
style=
"padding: 0rpx 0 0 0;"
v-if=
"couponList.length>0||TotalDiscount>0"
>
<view
class=
"jz_LineDetaYJDKQ"
style=
"padding: 0rpx 0 0 0;"
v-if=
"couponList.length>0||TotalDiscount>0"
>
<view
class=
"jz_LineDetaYJ"
v-if=
"TotalDiscount>0"
>
<view
class=
"jz_LineDetaYJ"
v-if=
"TotalDiscount>0"
>
<view
class=
"jz_LineDetaYJL"
>
<view
class=
"jz_LineDetaYJL"
>
<!--
<
template
v-if=
"false"
>
原价 ¥{{ $utils.getretailer()?dataList.VisaPrice:dataList.VisaB2CPrice }}/人
原价 ¥
-->
<!-- #ifdef MP-DI -->
{{
dataList
.
VisaB2CPrice
}}
<!-- #endif -->
<!-- #ifdef MP-AG -->
{{
dataList
.
VisaPrice
}}
<!-- #endif -->
/人
</
template
>
</view>
</view>
<view
class=
"jz_LineDetaYJR"
>
最高可减{{TotalDiscount}}
</view>
<view
class=
"jz_LineDetaYJR"
>
最高可减{{TotalDiscount}}
</view>
</view>
</view>
...
@@ -80,7 +96,7 @@
...
@@ -80,7 +96,7 @@
<view
class=
"line-flex col"
style=
"padding: 30rpx; background: #fff;margin-top: 20rpx"
<view
class=
"line-flex col"
style=
"padding: 30rpx; background: #fff;margin-top: 20rpx"
v-if=
"createBy==0&&SaleList&&SaleList.length>1"
v-if=
"createBy==0&&SaleList&&SaleList.length>1"
@
click=
"showSalePreviwe=true"
>
@
click=
"showSalePreviwe=true"
>
<text
style=
"font-size: 28rpx; color: #111; font-weight: 500"
>
销售
</text>
<text
style=
"font-size: 28rpx; color: #111; font-weight: 500"
>
服务人员
</text>
<text
style=
"
<text
style=
"
font-size: 22rpx;
font-size: 22rpx;
color: #999;
color: #999;
...
@@ -164,7 +180,12 @@
...
@@ -164,7 +180,12 @@
<!-- 原b2b -->
<!-- 原b2b -->
<text
style=
"font-size: 40rpx;font-family: nav-font;"
>
<text
style=
"font-size: 40rpx;font-family: nav-font;"
>
<!-- {{discountPrice}} -->
<!-- {{discountPrice}} -->
{{ $utils.getretailer()?dataList.VisaPrice:dataList.VisaB2CPrice }}
<!-- #ifdef MP-DI -->
{{ dataList.VisaB2CPrice }}
<!-- #endif -->
<!-- #ifdef MP-AG -->
{{ dataList.VisaPrice }}
<!-- #endif -->
</text>
</text>
<text
style=
"font-size: 22rpx"
>
/人
</text>
<text
style=
"font-size: 22rpx"
>
/人
</text>
</view>
</view>
...
@@ -193,7 +214,7 @@
...
@@ -193,7 +214,7 @@
<u-popup
v-model=
"showSalePreviwe"
mode=
"bottom"
border-radius=
"50"
length=
"60%"
:safe-area-inset-bottom=
"true"
>
<u-popup
v-model=
"showSalePreviwe"
mode=
"bottom"
border-radius=
"50"
length=
"60%"
:safe-area-inset-bottom=
"true"
>
<view>
<view>
<view
style=
"font-size: 17px;text-align: center;padding: 20px 0;"
>
<view
style=
"font-size: 17px;text-align: center;padding: 20px 0;"
>
选择
销售
选择
服务人员
</view>
</view>
<scroll-view
scroll-x=
"true"
style=
"width: 100%;height: 43vh;"
>
<scroll-view
scroll-x=
"true"
style=
"width: 100%;height: 43vh;"
>
<view
class=
"SaleBox"
>
<view
class=
"SaleBox"
>
...
@@ -517,11 +538,23 @@
...
@@ -517,11 +538,23 @@
this
.
couponList
.
forEach
(
x
=>
{
this
.
couponList
.
forEach
(
x
=>
{
if
(
x
.
couponsType
==
1
&&
x
.
denomination
>
this
.
maxCouponDiscount
)
this
.
maxCouponDiscount
=
x
.
denomination
if
(
x
.
couponsType
==
1
&&
x
.
denomination
>
this
.
maxCouponDiscount
)
this
.
maxCouponDiscount
=
x
.
denomination
if
(
x
.
couponsType
==
2
){
if
(
x
.
couponsType
==
2
){
const
disMoney
=
this
.
currentPrice
.
b2BPrice
*
(
1
-
x
.
denomination
)
let
disMoney
=
0
// #ifdef MP-DI
disMoney
=
this
.
currentPrice
.
b2CPrice
*
(
1
-
x
.
denomination
)
// #endif
// #ifdef MP-AG
disMoney
=
this
.
currentPrice
.
b2BPrice
*
(
1
-
x
.
denomination
)
// #endif
this
.
maxCouponDiscount
=
this
.
maxCouponDiscount
<
disMoney
?
disMoney
:
this
.
maxCouponDiscount
this
.
maxCouponDiscount
=
this
.
maxCouponDiscount
<
disMoney
?
disMoney
:
this
.
maxCouponDiscount
}
}
})
})
let
money
=
this
.
$utils
.
getretailer
()?
this
.
dataList
.
VisaPrice
:
this
.
dataList
.
VisaB2CPrice
let
money
=
0
// #ifdef MP-DI
money
=
this
.
dataList
.
VisaB2CPrice
// #endif
// #ifdef MP-AG
money
=
this
.
dataList
.
VisaPrice
// #endif
let
maxCouponDiscount
=
this
.
maxCouponDiscount
let
maxCouponDiscount
=
this
.
maxCouponDiscount
this
.
TotalDiscount
=
this
.
maxCouponDiscount
this
.
TotalDiscount
=
this
.
maxCouponDiscount
this
.
discountPrice
=
money
-
maxCouponDiscount
this
.
discountPrice
=
money
-
maxCouponDiscount
...
@@ -675,16 +708,27 @@
...
@@ -675,16 +708,27 @@
this
.
is_show_auth
=
1
;
this
.
is_show_auth
=
1
;
return
;
return
;
}
}
if
(
this
.
SaleList
&&
this
.
SaleList
.
length
>
1
&&
this
.
SaleId
==
0
&&
this
.
createBy
==
0
)
{
uni
.
showToast
({
// #ifdef MP-AG
title
:
"请选择销售"
,
if
(
this
.
SaleList
&&
this
.
SaleList
.
length
>
1
&&
this
.
SaleId
==
0
&&
this
.
createBy
==
0
)
{
icon
:
"none"
,
uni
.
showToast
({
});
title
:
"请选择服务人员"
,
this
.
showSalePreviwe
=
true
;
icon
:
"none"
,
return
;
});
}
this
.
showSalePreviwe
=
true
;
return
;
}
// #endif
let
createBy
=
0
// #ifdef MP-DI
createBy
=
this
.
createBy
>
0
?
this
.
createBy
:
this
.
customer
.
pid
// #endif
// #ifdef MP-AG
if
(
this
.
createBy
>
0
||
this
.
SaleId
)
createBy
=
this
.
createBy
>
0
?
this
.
createBy
:
this
.
SaleId
// #endif
uni
.
navigateTo
({
uni
.
navigateTo
({
url
:
"/pages/visa/visa_Reserve?id="
+
this
.
delMsg
.
Pid
+
'&CreateBy='
+
(
this
.
createBy
?
this
.
createBy
:
this
.
SaleId
)
,
url
:
"/pages/visa/visa_Reserve?id="
+
this
.
delMsg
.
Pid
+
'&CreateBy='
+
createBy
,
});
});
},
},
},
},
...
...
pages/visa/visaList.vue
View file @
6e29e93c
...
@@ -91,7 +91,14 @@
...
@@ -91,7 +91,14 @@
</view>
</view>
<view
class=
"visaListNumR"
>
<view
class=
"visaListNumR"
>
<text
style=
"font-size: 20rpx;"
>
CNY
</text>
<text
style=
"font-size: 20rpx;"
>
CNY
</text>
<text
class=
"price-Num"
>
{{ $utils.getretailer()?item.visaPrice:item.visaB2CPrice }}
</text>
<text
class=
"price-Num"
>
<!-- #ifdef MP-DI -->
{{parseFloat(item.visaB2CPrice).toFixed(2)}}
<!-- #endif -->
<!-- #ifdef MP-AG -->
{{parseFloat(item.visaPrice).toFixed(2)}}
<!-- #endif -->
</text>
<text
class=
"price-stuff"
style=
"font-size: 20rpx;color: rgba(164, 164, 164, 1)"
>
元
</text>
<text
class=
"price-stuff"
style=
"font-size: 20rpx;color: rgba(164, 164, 164, 1)"
>
元
</text>
</view>
</view>
</view>
</view>
...
...
pages/visa/visa_Reserve.vue
View file @
6e29e93c
...
@@ -1105,17 +1105,15 @@
...
@@ -1105,17 +1105,15 @@
//计算价格
//计算价格
calcMoney
()
{
calcMoney
()
{
var
price
=
0
;
var
price
=
0
;
if
(
this
.
$utils
.
getretailer
())
{
// #ifdef MP-DI
price
=
this
.
dataList
.
VisaB2CPrice
;
// #endif
// #ifdef MP-AG
price
=
this
.
dataList
.
VisaPrice
;
price
=
this
.
dataList
.
VisaPrice
;
}
else
{
// #endif
price
=
this
.
dataList
.
VisaB2CPrice
;
}
let
money
=
price
*
this
.
orderMsg
.
AdultPeopleNum
;
let
money
=
price
*
this
.
orderMsg
.
AdultPeopleNum
;
this
.
price
=
money
;
this
.
price
=
money
;
},
},
//去支付
//去支付
goPay
()
{
goPay
()
{
...
@@ -1216,6 +1214,15 @@
...
@@ -1216,6 +1214,15 @@
});
});
return
;
return
;
}
}
// #ifdef MP-AG
if
(
!
this
.
CreateBy
){
uni
.
showToast
({
title
:
`服务人员为空,请联系服务人员!`
,
icon
:
"none"
,
});
return
}
// #endif
this
.
submit
=
true
;
this
.
submit
=
true
;
let
mall_customer
=
uni
.
getStorageSync
(
"mall_customer"
);
let
mall_customer
=
uni
.
getStorageSync
(
"mall_customer"
);
...
...
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