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
0bb0f389
Commit
0bb0f389
authored
Aug 03, 2023
by
renjie
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
修改相册首页进入逻辑
parent
7f8864fd
Changes
2
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
111 additions
and
99 deletions
+111
-99
albumIndex.vue
pages/album/albumIndex.vue
+82
-8
chooseFavorite.vue
pages/album/chooseFavorite.vue
+29
-91
No files found.
pages/album/albumIndex.vue
View file @
0bb0f389
<
template
>
<view
class=
"big-box"
:style=
"
{'padding-top': statusBarHeight + 'px'}">
<view
class=
"big-box"
:style=
"
{'padding-top': statusBarHeight + 'px'}"
v-show="show"
>
<view
class=
"nav-bar"
:style=
"
{'top': statusBarHeight + 'px', 'height': navHeight + 'px','line-height': navHeight + 'px'}">
摄影/旅拍
</view>
...
...
@@ -92,6 +92,7 @@ export default {
statusBarHeight
:
0
,
capsule
:
0
,
navHeight
:
0
,
show
:
false
,
//是否显示首页
list
:
[
{
title
:
'精彩瞬间'
,
...
...
@@ -129,14 +130,15 @@ export default {
image
:
'./static/album/customPic.png'
,
color
:
'#D48D46'
}
]
],
options
:
{}
//路由参数
}
},
methods
:
{
jumpToScanFaceClick
()
{
//---跳转扫脸页面
const
openid
=
uni
.
getStorageSync
(
'openid'
)
this
.
$request
(
'wechatUser/pdFace/checkScanFace'
,{
openid
}).
then
(
res
=>
{
//创建任务
this
.
$request
(
'wechatUser/pdFace/checkScanFace'
,{
openid
}).
then
(
res
=>
{
if
(
res
.
code
===
'00'
)
{
if
(
res
.
data
.
isScanFace
===
0
)
{
//未扫脸
uni
.
navigateTo
({
...
...
@@ -156,7 +158,6 @@ export default {
})
},
jumptoVlog
()
{
//---跳转到vlog页面
console
.
log
(
'fdsa'
)
uni
.
redirectTo
({
url
:
'/pages/vlog/vlogIndex/vlogIndex'
})
...
...
@@ -166,15 +167,88 @@ export default {
this
.
jumpToScanFaceClick
()
}
},
judgeWhether
(
url
,
data
)
{
//---判断是否成功的封装函数
return
new
Promise
((
resolve
,
reject
)
=>
{
this
.
$request
(
url
,
data
).
then
(
res
=>
{
if
(
res
.
code
===
'00'
)
{
resolve
(
res
.
data
)
}
else
{
reject
(
false
)
}
})
})
},
async
handleWhetherToVotePage
()
{
//---判断是否跳转投票页面
// 1.获取调查列表
const
surveyQueryData
=
{
pageCode
:
'albumIndex'
,
//默认前端写死
channelId
:
this
.
options
.
channelId
//游客扫码携带的channelId或者是胖丁登录时的公司id
}
const
surveyList
=
await
this
.
judgeWhether
(
'scenic/market/findPageMarket'
,
surveyQueryData
)
// 2.判断商店是否在做投票活动
let
surveyIds
let
surveyResult
=
[]
if
(
surveyList
.
length
)
{
surveyIds
=
surveyList
.
map
(
item
=>
item
.
surveyId
)
surveyResult
=
await
this
.
judgeWhether
(
'scenic/albumConfig/getSurveyConfig'
,
{
surveyIds
})
}
// 3.判断用户是否已经投过票
let
voteObj
=
{}
// 用户投票信息
if
(
surveyResult
.
length
)
{
// 默认保存第一个商店id到缓存
uni
.
setStorageSync
(
'merchantId'
,
surveyResult
[
0
].
merchantId
)
const
votedQueryData
=
{
merchantId
:
surveyResult
[
0
].
merchantId
,
openid
:
uni
.
getStorageSync
(
'openid'
)
}
voteObj
=
await
this
.
judgeWhether
(
'wechatUser/pdAlbum/checkVisitorSurvey'
,
votedQueryData
)
}
// 4.判断是否跳转投票页面
if
(
voteObj
.
alreadySurvey
===
0
)
{
// 未投过票
uni
.
navigateTo
({
url
:
`./chooseFavorite?surveyConfig=
${
JSON
.
stringify
(
surveyResult
)}
`
})
}
else
if
(
voteObj
.
alreadySurvey
===
1
)
{
// 已投票
this
.
show
=
true
}
},
recordDeviceInfo
()
{
//---记录设备信息
this
.
statusBarHeight
=
uni
.
getSystemInfoSync
().
statusBarHeight
// 状态栏高度
this
.
capsule
=
uni
.
getMenuButtonBoundingClientRect
()
// 胶囊大小、位置数据
this
.
navHeight
=
(
this
.
capsule
.
top
-
this
.
statusBarHeight
)
*
2
+
this
.
capsule
.
height
// 导航栏高度
}
},
onLoad
(
option
)
{
if
(
option
.
tip
===
'true'
)
this
.
showtip
=
true
onLoad
(
options
)
{
this
.
recordDeviceInfo
()
this
.
options
=
options
if
(
this
.
options
.
tip
===
'true'
)
{
this
.
show
=
true
this
.
showtip
=
true
}
else
{
this
.
handleWhetherToVotePage
()
}
if
(
uni
.
getStorageSync
(
'location'
))
return
uni
.
getLocation
({
//获取定位
type
:
'wgs84'
,
success
:
res
=>
{
uni
.
setStorageSync
(
'location'
,
JSON
.
stringify
(
res
))
},
fail
()
{
uni
.
showToast
({
title
:
'获取经纬度失败'
,
icon
:
'none'
})
}
})
}
}
</
script
>
...
...
pages/album/chooseFavorite.vue
View file @
0bb0f389
<
template
>
<view
class=
"big-box"
:style=
"
{'padding-top': statusBarHeight + 'px'}">
<view
class=
"nav-bar"
:style=
"
{'height': navHeight + 'px'}">
<picker
mode=
"selector"
@
change=
"companyChage"
:value=
"index"
:range=
"companyArr"
range-key=
"
n
ame"
>
<view
class=
"company"
>
{{
companyArr
[
index
]
?
companyArr
[
index
].
n
ame
:
'请选择公司'
}}
</view>
<picker
mode=
"selector"
@
change=
"companyChage"
:value=
"index"
:range=
"companyArr"
range-key=
"
merchantN
ame"
>
<view
class=
"company"
>
{{
companyArr
[
index
]
?
companyArr
[
index
].
merchantN
ame
:
'请选择公司'
}}
</view>
</picker>
<u-icon
name=
"arrow-down"
></u-icon>
</view>
...
...
@@ -13,8 +13,8 @@
<image
class=
"start"
src=
"./static/album/star.png"
></image>
</view>
<view
class=
"img-box"
>
<view
class=
"item"
@
click=
"imageChange(item)"
v-for=
"(item, index) in imgArr"
:key=
"item.
i
d"
>
<image
class=
"img"
:src=
"item.
u
rl"
mode=
"aspectFill"
></image>
<view
class=
"item"
@
click=
"imageChange(item)"
v-for=
"(item, index) in imgArr"
:key=
"item.
templateI
d"
>
<image
class=
"img"
:src=
"item.
templateU
rl"
mode=
"aspectFill"
></image>
<u-checkbox
class=
"checkbox"
v-model=
"item.value"
shape=
"circle"
></u-checkbox>
</view>
</view>
...
...
@@ -39,20 +39,27 @@ export default {
index
:
0
,
// 选中的公司索引-默认选中第一个
companyArr
:
[],
// 公司枚举
imgArr
:
[],
//图片
value
:
true
,
location
:
{},
//位置信息
option
:
{},
//路由传参
}
},
methods
:
{
saveClick
()
{
//---提交
const
selectedPic
=
this
.
imgArr
.
filter
(
item
=>
item
.
value
)
const
templateIds
=
this
.
imgArr
.
map
(
item
=>
{
if
(
item
.
value
)
return
item
.
templateId
})
||
[]
if
(
!
templateIds
.
length
)
return
uni
.
showToast
({
title
:
'您还没有选择模板哟!'
,
icon
:
'none'
})
const
data
=
{
id
:
selectedPic
[
0
].
id
,
// 图片id
merchantId
:
selectedPic
[
0
].
merchantId
merchantId
:
this
.
companyArr
[
this
.
index
].
merchantId
,
//商店id
openid
:
uni
.
getStorageSync
(
'openid'
),
//openid
templateIds
//模板Id
}
uni
.
setStorageSync
(
'merchantId'
,
data
.
merchantId
)
this
.
$request
(
'
scenic/V2merchant/submitChoose'
,
data
).
then
(
res
=>
{
//创建任务
this
.
$request
(
'
wechatUser/pdAlbum/saveVisitorSurvey'
,
data
).
then
(
res
=>
{
if
(
res
.
code
===
'00'
)
{
uni
.
showToast
({
title
:
'提交成功'
,
...
...
@@ -71,99 +78,30 @@ export default {
},
companyChage
(
e
)
{
//---公司变化
this
.
index
=
Number
(
e
.
detail
.
value
)
const
merchantId
=
this
.
companyArr
[
this
.
index
].
id
this
.
getPic
(
merchantId
)
this
.
imgArr
=
this
.
companyArr
[
this
.
index
].
templateDetailList
},
imageChange
(
item
)
{
//---图片选择
this
.
imgArr
.
forEach
(
item
=>
item
.
value
=
false
)
item
.
value
=
true
this
.
$set
(
item
,
'value'
,
!
item
.
value
)
this
.
$forceUpdate
()
// item.value = !item.value
},
recordDeviceInfo
()
{
//---记录设备信息
this
.
statusBarHeight
=
uni
.
getSystemInfoSync
().
statusBarHeight
// 状态栏高度
this
.
capsule
=
uni
.
getMenuButtonBoundingClientRect
()
// 胶囊大小、位置数据
this
.
navHeight
=
(
this
.
capsule
.
top
-
this
.
statusBarHeight
)
*
2
+
this
.
capsule
.
height
// 导航栏高度
},
getCompany
(
nearbyId
)
{
//---获取景区列表
this
.
$request
(
'scenic/newMerchant/findAllMerchant'
).
then
(
res
=>
{
//创建任务
if
(
res
.
code
===
'00'
)
{
if
(
!
res
.
data
.
length
)
return
const
id
=
this
.
option
.
merchantId
||
nearbyId
let
index
=
res
.
data
.
findIndex
(
item
=>
item
.
id
===
id
)
this
.
index
=
index
===
-
1
?
0
:
index
this
.
companyArr
=
res
.
data
this
.
getPic
(
this
.
companyArr
[
this
.
index
].
id
)
}
else
{
uni
.
showToast
({
title
:
res
.
message
,
icon
:
'none'
})
}
})
},
getPic
(
merchantId
)
{
//---获取景区图片
this
.
$request
(
'scenic/V2merchant/getImgList'
,{
merchantId
}).
then
(
res
=>
{
//创建任务
if
(
res
.
code
===
'00'
)
{
res
.
data
.
forEach
(
item
=>
item
.
value
=
false
)
this
.
imgArr
=
res
.
data
}
else
{
uni
.
showToast
({
title
:
res
.
message
,
icon
:
'none'
})
}
})
},
getNearByCompany
()
{
//---获取最近的景区
const
data
=
{
merchantType
:
1
,
userlatitude
:
this
.
location
.
latitude
,
//纬度
userlongitude
:
this
.
location
.
longitude
//经度
}
this
.
$request
(
'scenic/newMerchant/findAllMerchant'
,
data
).
then
(
res
=>
{
//创建任务
if
(
res
.
code
===
'00'
)
{
if
(
!
res
.
data
.
length
)
{
this
.
getCompany
()
return
uni
.
showToast
({
title
:
'获取最近景点失败'
,
icon
:
'none'
})
}
this
.
getCompany
(
res
.
data
[
0
].
id
)
}
else
{
uni
.
showToast
({
title
:
res
.
message
,
icon
:
'none'
})
}
})
}
},
onLoad
(
option
)
{
this
.
option
=
option
this
.
recordDeviceInfo
()
uni
.
getLocation
({
//获取定位
type
:
'wgs84'
,
success
:
res
=>
{
this
.
location
=
res
uni
.
setStorageSync
(
'location'
,
JSON
.
stringify
(
res
))
this
.
option
=
option
if
(
this
.
option
.
merchantId
)
{
//扫码进入则直接加载景区列表,默认显示传入的景区
this
.
getCompany
()
}
else
{
//否则获取并显示距离最近的景点
this
.
getNearByCompany
()
}
},
fail
()
{
this
.
getCompany
()
uni
.
showToast
({
title
:
'获取经纬度失败'
,
icon
:
'none'
})
}
this
.
companyArr
=
JSON
.
parse
(
option
.
surveyConfig
)
const
imgArr
=
[]
this
.
companyArr
.
forEach
(
item
=>
{
imgArr
.
push
(...
item
.
templateDetailList
)
})
imgArr
.
forEach
(
item
=>
this
.
$set
(
item
,
'value'
,
false
))
this
.
imgArr
=
this
.
companyArr
[
0
].
templateDetailList
}
}
</
script
>
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment