Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Sign in / Register
Toggle navigation
U
uni-pdtravel
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
panyongping
uni-pdtravel
Commits
3cbcf4c1
Commit
3cbcf4c1
authored
Mar 14, 2024
by
潘永坪
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
小程序优化
parent
0396f0b8
Changes
6
Show whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
268 additions
and
186 deletions
+268
-186
App.vue
App.vue
+0
-2
merchantDetail.vue
components/merchantDetail.vue
+3
-3
distributionCombiChoose.vue
...ation/distributionCombiChoose/distributionCombiChoose.vue
+4
-0
scenicProduct - 副本.vue
pages/scenic/scenicProduct/scenicProduct - 副本.vue
+0
-61
scenicProduct-new.vue
pages/scenic/scenicProduct/scenicProduct-new.vue
+221
-0
scenicProduct.vue
pages/scenic/scenicProduct/scenicProduct.vue
+40
-120
No files found.
App.vue
View file @
3cbcf4c1
...
@@ -70,10 +70,8 @@ export default {
...
@@ -70,10 +70,8 @@ export default {
})
})
},
},
onShow
:
function
()
{
onShow
:
function
()
{
},
},
onHide
:
function
()
{
onHide
:
function
()
{
}
}
}
}
</
script
>
</
script
>
...
...
components/merchantDetail.vue
View file @
3cbcf4c1
...
@@ -79,7 +79,6 @@
...
@@ -79,7 +79,6 @@
<text
class=
"travel-left"
>
<text
class=
"travel-left"
>
{{
item
.
childTitle
}}
{{
item
.
childTitle
}}
</text>
</text>
<view
class=
"travel-right"
>
<view
class=
"travel-right"
>
<text
v-for=
"(items,b) of item.contentList"
:key=
"b"
>
<text
v-for=
"(items,b) of item.contentList"
:key=
"b"
>
{{
items
.
content
}}
{{
items
.
content
}}
...
@@ -89,7 +88,6 @@
...
@@ -89,7 +88,6 @@
</view>
</view>
</view>
</view>
</view>
</view>
</view>
</view>
</u-popup>
</u-popup>
</
template
>
</
template
>
...
@@ -158,6 +156,8 @@ export default {
...
@@ -158,6 +156,8 @@ export default {
uni
.
openLocation
({
uni
.
openLocation
({
latitude
:
this
.
detailData
.
latitude
,
latitude
:
this
.
detailData
.
latitude
,
longitude
:
this
.
detailData
.
longitude
,
longitude
:
this
.
detailData
.
longitude
,
name
:
this
.
detailData
.
name
,
address
:
this
.
detailData
.
address
,
success
:
function
()
{
success
:
function
()
{
}
}
...
...
pages/combination/distributionCombiChoose/distributionCombiChoose.vue
View file @
3cbcf4c1
...
@@ -340,6 +340,10 @@ export default {
...
@@ -340,6 +340,10 @@ export default {
//清空之前选中的数据以及状态
//清空之前选中的数据以及状态
this
.
detailData
=
''
this
.
detailData
=
''
this
.
chooseProduct
=
[]
this
.
chooseProduct
=
[]
if
(
this
.
$refs
.
merchantDetail
){
//解决支付宝小程序报错问题
this
.
$refs
.
merchantDetail
.
showPop
=
false
}
if
(
this
.
$refs
.
detail
){
if
(
this
.
$refs
.
detail
){
//解决支付宝小程序报错问题
//解决支付宝小程序报错问题
this
.
$refs
.
detail
.
showPop
=
false
this
.
$refs
.
detail
.
showPop
=
false
...
...
pages/scenic/scenicProduct/scenicProduct - 副本.vue
deleted
100644 → 0
View file @
0396f0b8
<
template
>
<view>
<web-view
:src=
"outUrl"
></web-view>
</view>
</
template
>
<
script
>
export
default
{
data
()
{
return
{
enterUrl
:
''
,
//进入页面路由
outUrl
:
''
,
//跳出页面路由
}
},
onLoad
(
option
)
{
//#ifdef MP-WEIXIN
this
.
enterUrl
=
option
.
q
//#endif
//#ifdef MP-ALIPAY
this
.
enterUrl
=
uni
.
getStorageSync
(
'alipayQrCode'
)
//#endif
if
(
this
.
enterUrl
){
//普通二维码扫码进入
let
merchantId
=
this
.
getUrlKey
(
'merchantId'
)
let
companyId
=
this
.
getUrlKey
(
'companyId'
)
let
channelType
=
this
.
getUrlKey
(
'channelType'
)
let
pdOpenid
=
uni
.
getStorageSync
(
'openid'
)
//胖丁小程序openid,临时用,当公众号授权做好之后可以删除
let
pdToken
=
uni
.
getStorageSync
(
'token'
)
let
pdCreateUserId
=
uni
.
getStorageSync
(
'createUserId'
)
let
pdUserId
=
uni
.
getStorageSync
(
'userId'
)
let
baseUrl
=
this
.
$wxurl
+
'scenicProduct?pdOpenid='
+
pdOpenid
+
'&pdToken='
+
pdToken
+
'&pdCreateUserId='
+
pdCreateUserId
+
'&pdUserId='
+
pdUserId
let
url
=
'&merchantId='
+
merchantId
+
'&companyId='
+
companyId
+
'&channelType='
+
channelType
this
.
outUrl
=
baseUrl
+
url
}
else
{
//小程序页面跳转进入
let
merchantId
=
option
.
merchantId
||
''
let
companyId
=
option
.
companyId
||
''
let
channelType
=
option
.
channelType
||
0
let
ifyukuaiCode
=
option
.
ifyukuaiCode
||
''
//是否是渝快码跳入,渝快码跳入需要在H5端另外走流程
let
pdOpenid
=
uni
.
getStorageSync
(
'openid'
)
//胖丁小程序openid,临时用,当公众号授权做好之后可以删除
let
pdToken
=
uni
.
getStorageSync
(
'token'
)
let
pdCreateUserId
=
uni
.
getStorageSync
(
'createUserId'
)
let
pdUserId
=
uni
.
getStorageSync
(
'userId'
)
let
baseUrl
=
this
.
$wxurl
+
'scenicProduct?pdOpenid='
+
pdOpenid
+
'&pdToken='
+
pdToken
+
'&pdCreateUserId='
+
pdCreateUserId
+
'&pdUserId='
+
pdUserId
let
url
=
'&merchantId='
+
merchantId
+
'&companyId='
+
companyId
+
'&ifyukuaiCode='
+
ifyukuaiCode
+
'&channelType='
+
channelType
this
.
outUrl
=
baseUrl
+
url
}
},
methods
:
{
getUrlKey
(
name
){
//---------------------------------------------------------------获取url
return
(
new
RegExp
(
'[?|&]'
+
name
+
'='
+
'([^&;]+?)(&|#|;|$)'
).
exec
(
decodeURIComponent
(
this
.
enterUrl
))
||
[,
''
])[
1
].
replace
(
/
\+
/g
,
'%20'
)
||
''
},
}
}
</
script
>
<
style
>
</
style
>
\ No newline at end of file
pages/scenic/scenicProduct/scenicProduct-new.vue
0 → 100644
View file @
3cbcf4c1
<
template
>
<view>
<view
class=
"banner"
v-if=
"detailData"
>
<u-swiper
:list=
"detailData.imgList"
@
change=
"e => currentNum = e.current"
indicatorStyle=
"right: 20px;bottom:25px"
height=
"400"
circular
>
<view
slot=
"indicator"
class=
"indicator-num"
>
<text
class=
"indicator-num__text"
>
{{
currentNum
+
1
}}
/
{{
detailData
.
imgList
.
length
}}
</text>
</view>
</u-swiper>
</view>
<view
class=
"middle"
>
<view
class=
"middle-introduce"
>
<view
class=
"introduce-one"
>
<view
class=
"merchantname"
>
重庆湖广会馆
</view>
<view
class=
"businesstime"
>
<view
style=
"font-size: 24rpx;"
>
<text
style=
"color: #3688ff;margin-right: 20rpx;"
>
开园中
</text>
<text
style=
"color: #999;"
>
09:00~18:30
</text>
</view>
<view
style=
"display: flex;"
>
<text>
详情
</text>
<u-icon
name=
'arrow-right'
></u-icon>
</view>
</view>
</view>
<view
class=
'introduce-two'
>
<text>
5分
</text>
<text>
0条好评
</text>
</view>
<view
class=
"introduce-three"
>
<view
style=
"flex: 1;margin-right: 20rpx;"
>
重庆市市辖区渝中区联合国际大厦
</view>
<view
class=
"introduce-icon"
>
<u-icon
name=
'map-fill'
color=
'#3688ff'
size=
'44'
></u-icon>
<text></text>
<u-icon
name=
'phone-fill'
color=
'#3688ff'
size=
'44'
></u-icon>
</view>
</view>
</view>
<view
class=
"middle-list"
>
<view>
<view>
景区门票
</view>
<view>
<text>
无需换票
</text>
<text></text>
<text>
随时可退
</text>
</view>
</view>
<view>
</view>
</view>
</view>
</view>
</
template
>
<
script
>
export
default
{
data
()
{
return
{
ticketList
:[],
//门票列表
detailData
:
''
,
//详情数据
currentNum
:
0
,
//轮播图下标
}
},
onLoad
(
option
)
{
this
.
nowTime
=
parseInt
(
new
Date
().
Format
(
'hhmm'
))
this
.
companyId
=
this
.
$commonjs
.
getCompanyId
(
option
)
||
''
this
.
merchantId
=
this
.
$commonjs
.
getKey
(
option
,
'merchantId'
)
||
''
this
.
channelType
=
this
.
$commonjs
.
getKey
(
option
,
'channelType'
)
||
0
this
.
initProduct
()
this
.
initDetail
()
},
methods
:
{
//---产品加载
initProduct
(){
this
.
ticketList
=
[]
let
data
=
{
merchantId
:
this
.
merchantId
,
//商户id
type
:
1
,
//类型:1景区、2酒店、3餐饮
channelType
:
this
.
channelType
,
//渠道Id
}
this
.
$request
(
'scenic/user/product/findProductList'
,
data
).
then
((
res
)
=>
{
if
(
res
.
code
==
'00'
){
let
list
=
res
.
data
.
list
||
[]
list
.
forEach
((
item
,
index
)
=>
{
//营业时间重新组成
if
(
item
.
businessTime
){
item
.
businessTime
=
item
.
businessTime
.
split
(
';'
)
}
//等于7为特价
if
(
item
.
channelType
!=
7
){
this
.
ticketList
.
push
(
item
)
}
})
}
else
{
uni
.
showToast
({
title
:
res
.
message
,
icon
:
'none'
})
}
})
},
//---详情加载
initDetail
(){
let
data
=
{
userId
:
uni
.
getStorageSync
(
'userId'
)
||
''
,
openid
:
uni
.
getStorageSync
(
'openid'
)
||
''
,
id
:
this
.
merchantId
,
//商户id
isDetail
:
1
,
//商户详情
}
this
.
$request
(
'scenic/user/merchant/findDetailInfo'
,
data
).
then
((
res
)
=>
{
if
(
res
.
code
==
'00'
){
this
.
detailData
=
res
.
data
if
(
this
.
detailData
.
tag
){
this
.
tagArr
=
this
.
detailData
.
tag
.
split
(
','
)
}
let
start
=
''
let
end
=
''
if
(
this
.
detailData
.
businessStart
){
start
=
parseInt
(
this
.
$commonjs
.
changeTime
(
this
.
detailData
.
businessStart
.
substr
(
0
,
5
)))
}
if
(
this
.
detailData
.
businessEnd
){
end
=
parseInt
(
this
.
$commonjs
.
changeTime
(
this
.
detailData
.
businessEnd
.
substr
(
0
,
5
)))
}
if
(
start
<
this
.
nowTime
<
end
){
this
.
status
=
'开园中'
}
else
{
this
.
status
=
'闭园中'
}
}
else
{
uni
.
showToast
({
title
:
res
.
message
,
icon
:
'none'
})
}
})
},
}
}
</
script
>
<
style
scoped
lang=
"scss"
>
.middle
{
position
:
relative
;
top
:
-40rpx
;
}
.middle-introduce
{
background
:
#FFFFFF
;
padding
:
30rpx
20rpx
0
20rpx
;
border-radius
:
24rpx
24rpx
0
0
;
}
.introduce-one
{
border-bottom
:
1px
solid
#e5e5e5
;
padding-bottom
:
20rpx
;
}
.merchantname
{
font-size
:
30rpx
;
font-weight
:
bold
;
}
.businesstime
{
display
:
flex
;
justify-content
:
space-between
;
margin-top
:
10rpx
;
}
.introduce-two
{
border-bottom
:
1px
solid
#e5e5e5
;
padding
:
20rpx
0
;
font-size
:
24rpx
;
}
.introduce-two
text
:first-child
{
color
:
$red
;
font-weight
:
bold
}
.introduce-two
text
:first-child::after
{
display
:
inline-block
;
width
:
2rpx
;
height
:
20rpx
;
background
:
#999999
;
content
:
''
;
margin
:
0
10rpx
;
}
.introduce-two
text
:last-child
{
color
:
#999999
;
}
.introduce-three
{
display
:
flex
;
justify-content
:
space-between
;
padding
:
20rpx
0
;
color
:
#666666
;
font-size
:
24rpx
;
align-items
:
center
;
}
.introduce-icon
{
display
:
flex
;
align-items
:
center
;
}
.introduce-icon
text
{
display
:
inline-block
;
margin
:
0
12rpx
;
width
:
1px
;
background
:
#e5e5e5
;
height
:
30rpx
;
}
.middle-list
{
background
:
#FFFFFF
;
margin-top
:
20rpx
;
}
</
style
>
\ No newline at end of file
pages/scenic/scenicProduct/scenicProduct.vue
View file @
3cbcf4c1
<
template
>
<
template
>
<view>
<view>
<view
class=
"banner"
v-if=
"detailData"
>
<web-view
:src=
"outUrl"
></web-view>
<u-swiper
:list=
"detailData.imgList"
@
change=
"e => currentNum = e.current"
indicatorStyle=
"right: 20px;bottom:25px"
height=
"400"
circular
>
<view
slot=
"indicator"
class=
"indicator-num"
>
<text
class=
"indicator-num__text"
>
{{
currentNum
+
1
}}
/
{{
detailData
.
imgList
.
length
}}
</text>
</view>
</u-swiper>
</view>
<view
class=
"middle"
>
<view
class=
"middle-introduce"
>
<view>
<view>
重庆湖广会馆
</view>
<view>
<view>
<text>
开园中
</text>
<text>
09:00~18:30
</text>
</view>
<view>
<text>
详情
</text>
<u-icon
name=
'arrow-right'
></u-icon>
</view>
</view>
</view>
<view>
</view>
<view>
</view>
</view>
<view
class=
"middle-list"
>
</view>
</view>
</view>
</view>
</
template
>
</
template
>
...
@@ -44,97 +8,53 @@
...
@@ -44,97 +8,53 @@
export
default
{
export
default
{
data
()
{
data
()
{
return
{
return
{
ticketList
:[],
//门票列表
enterUrl
:
''
,
//进入页面路由
detailData
:
''
,
//详情数据
outUrl
:
''
,
//跳出页面路由
currentNum
:
0
,
//轮播图下标
}
}
},
},
onLoad
(
option
)
{
onLoad
(
option
)
{
this
.
nowTime
=
parseInt
(
new
Date
().
Format
(
'hhmm'
))
//#ifdef MP-WEIXIN
this
.
companyId
=
this
.
$commonjs
.
getCompanyId
(
option
)
||
''
this
.
enterUrl
=
option
.
q
this
.
merchantId
=
this
.
$commonjs
.
getKey
(
option
,
'merchantId'
)
||
''
//#endif
this
.
channelType
=
this
.
$commonjs
.
getKey
(
option
,
'channelType'
)
||
0
this
.
initProduct
()
//#ifdef MP-ALIPAY
this
.
initDetail
()
this
.
enterUrl
=
uni
.
getStorageSync
(
'alipayQrCode'
)
},
//#endif
methods
:
{
//---产品加载
if
(
this
.
enterUrl
){
//普通二维码扫码进入
initProduct
(){
let
merchantId
=
this
.
getUrlKey
(
'merchantId'
)
this
.
ticketList
=
[]
let
companyId
=
this
.
getUrlKey
(
'companyId'
)
let
data
=
{
let
channelType
=
this
.
getUrlKey
(
'channelType'
)
merchantId
:
this
.
merchantId
,
//商户id
let
pdOpenid
=
uni
.
getStorageSync
(
'openid'
)
//胖丁小程序openid,临时用,当公众号授权做好之后可以删除
type
:
1
,
//类型:1景区、2酒店、3餐饮
let
pdToken
=
uni
.
getStorageSync
(
'token'
)
channelType
:
this
.
channelType
,
//渠道Id
let
pdCreateUserId
=
uni
.
getStorageSync
(
'createUserId'
)
}
let
pdUserId
=
uni
.
getStorageSync
(
'userId'
)
this
.
$request
(
'scenic/user/product/findProductList'
,
data
).
then
((
res
)
=>
{
let
baseUrl
=
this
.
$wxurl
+
'scenicProduct?pdOpenid='
+
pdOpenid
+
'&pdToken='
+
pdToken
+
'&pdCreateUserId='
+
pdCreateUserId
+
'&pdUserId='
+
pdUserId
if
(
res
.
code
==
'00'
){
let
url
=
'&merchantId='
+
merchantId
+
'&companyId='
+
companyId
+
'&channelType='
+
channelType
let
list
=
res
.
data
.
list
||
[]
this
.
outUrl
=
baseUrl
+
url
list
.
forEach
((
item
,
index
)
=>
{
//营业时间重新组成
}
else
{
//小程序页面跳转进入
if
(
item
.
businessTime
){
let
merchantId
=
option
.
merchantId
||
''
item
.
businessTime
=
item
.
businessTime
.
split
(
';'
)
let
companyId
=
option
.
companyId
||
''
}
let
channelType
=
option
.
channelType
||
0
//等于7为特价
let
ifyukuaiCode
=
option
.
ifyukuaiCode
||
''
//是否是渝快码跳入,渝快码跳入需要在H5端另外走流程
if
(
item
.
channelType
!=
7
){
let
pdOpenid
=
uni
.
getStorageSync
(
'openid'
)
//胖丁小程序openid,临时用,当公众号授权做好之后可以删除
this
.
ticketList
.
push
(
item
)
let
pdToken
=
uni
.
getStorageSync
(
'token'
)
let
pdCreateUserId
=
uni
.
getStorageSync
(
'createUserId'
)
let
pdUserId
=
uni
.
getStorageSync
(
'userId'
)
let
baseUrl
=
this
.
$wxurl
+
'scenicProduct?pdOpenid='
+
pdOpenid
+
'&pdToken='
+
pdToken
+
'&pdCreateUserId='
+
pdCreateUserId
+
'&pdUserId='
+
pdUserId
let
url
=
'&merchantId='
+
merchantId
+
'&companyId='
+
companyId
+
'&ifyukuaiCode='
+
ifyukuaiCode
+
'&channelType='
+
channelType
this
.
outUrl
=
baseUrl
+
url
}
}
})
}
else
{
uni
.
showToast
({
title
:
res
.
message
,
icon
:
'none'
})
}
})
},
},
//---详情加载
methods
:
{
initDetail
(){
getUrlKey
(
name
){
//---------------------------------------------------------------获取url
let
data
=
{
return
(
new
RegExp
(
'[?|&]'
+
name
+
'='
+
'([^&;]+?)(&|#|;|$)'
).
exec
(
decodeURIComponent
(
this
.
enterUrl
))
||
[,
''
])[
1
].
replace
(
/
\+
/g
,
'%20'
)
||
''
userId
:
uni
.
getStorageSync
(
'userId'
)
||
''
,
openid
:
uni
.
getStorageSync
(
'openid'
)
||
''
,
id
:
this
.
merchantId
,
//商户id
isDetail
:
1
,
//商户详情
}
this
.
$request
(
'scenic/user/merchant/findDetailInfo'
,
data
).
then
((
res
)
=>
{
if
(
res
.
code
==
'00'
){
this
.
detailData
=
res
.
data
if
(
this
.
detailData
.
tag
){
this
.
tagArr
=
this
.
detailData
.
tag
.
split
(
','
)
}
let
start
=
''
let
end
=
''
if
(
this
.
detailData
.
businessStart
){
start
=
parseInt
(
this
.
$commonjs
.
changeTime
(
this
.
detailData
.
businessStart
.
substr
(
0
,
5
)))
}
if
(
this
.
detailData
.
businessEnd
){
end
=
parseInt
(
this
.
$commonjs
.
changeTime
(
this
.
detailData
.
businessEnd
.
substr
(
0
,
5
)))
}
if
(
start
<
this
.
nowTime
<
end
){
this
.
status
=
'开园中'
}
else
{
this
.
status
=
'闭园中'
}
}
else
{
uni
.
showToast
({
title
:
res
.
message
,
icon
:
'none'
})
}
})
},
},
}
}
}
}
</
script
>
</
script
>
<
style
scoped
lang=
"scss"
>
<
style
>
.middle
{
position
:
relative
;
top
:
-60rpx
;
}
.middle-introduce
{
background
:
#FFFFFF
;
padding
:
30rpx
20rpx
0
20rpx
;
border-radius
:
24rpx
24rpx
0
0
;
}
</
style
>
</
style
>
\ No newline at end of file
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