You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
121 lines
2.6 KiB
Vue
121 lines
2.6 KiB
Vue
<template>
|
|
<view class="container">
|
|
<!-- 店铺页面组件 -->
|
|
<Page :items="items" />
|
|
</view>
|
|
</template>
|
|
|
|
<script>
|
|
import * as Api from '@/api/page'
|
|
import Page from '@/components/page'
|
|
|
|
const App = getApp()
|
|
|
|
export default {
|
|
components: {
|
|
Page
|
|
},
|
|
data() {
|
|
return {
|
|
// 页面参数
|
|
options: {},
|
|
// 页面属性
|
|
page: {},
|
|
// 页面元素
|
|
items: []
|
|
}
|
|
},
|
|
|
|
/**
|
|
* 生命周期函数--监听页面加载
|
|
*/
|
|
onLoad(options) {
|
|
// 当前页面参数
|
|
this.options = options
|
|
// 加载页面数据
|
|
this.getPageData()
|
|
},
|
|
methods: {
|
|
|
|
/**
|
|
* 加载页面数据
|
|
* @param {Object} callback
|
|
*/
|
|
getPageData(callback) {
|
|
const app = this
|
|
const pageId = app.options.pageId || 0
|
|
Api.detail(pageId)
|
|
.then(result => {
|
|
// 设置页面数据
|
|
const { data: { pageData } } = result
|
|
app.page = pageData.page
|
|
app.items = pageData.items
|
|
// 设置顶部导航栏栏
|
|
app.setPageBar();
|
|
})
|
|
.finally(() => callback && callback())
|
|
},
|
|
|
|
/**
|
|
* 设置顶部导航栏
|
|
*/
|
|
setPageBar() {
|
|
const { page } = this
|
|
// 设置页面标题
|
|
uni.setNavigationBarTitle({
|
|
title: page.params.title
|
|
})
|
|
// 设置navbar标题、颜色
|
|
uni.setNavigationBarColor({
|
|
frontColor: page.style.titleTextColor === 'white' ? '#ffffff' : '#000000',
|
|
backgroundColor: page.style.titleBackgroundColor
|
|
})
|
|
}
|
|
|
|
},
|
|
|
|
/**
|
|
* 下拉刷新
|
|
*/
|
|
onPullDownRefresh() {
|
|
// 获取首页数据
|
|
this.getPageData(() => {
|
|
uni.stopPullDownRefresh()
|
|
})
|
|
},
|
|
|
|
/**
|
|
* 分享当前页面
|
|
*/
|
|
onShareAppMessage() {
|
|
const app = this
|
|
const { page } = app
|
|
return {
|
|
title: page.params.share_title,
|
|
path: "/pages/index/index?" + app.$getShareUrlParams()
|
|
}
|
|
},
|
|
|
|
/**
|
|
* 分享到朋友圈
|
|
* 本接口为 Beta 版本,暂只在 Android 平台支持,详见分享到朋友圈 (Beta)
|
|
* https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/share-timeline.html
|
|
*/
|
|
onShareTimeline() {
|
|
const app = this
|
|
const { page } = app
|
|
return {
|
|
title: page.params.share_title,
|
|
path: "/pages/index/index?" + app.$getShareUrlParams()
|
|
}
|
|
}
|
|
|
|
}
|
|
</script>
|
|
|
|
<style lang="scss" scoped>
|
|
.container {
|
|
background: #fff;
|
|
}
|
|
</style>
|