|
|
- import { useStore } from 'vuex'
- import { computed } from 'vue'
-
- export default {
- data() {
- return {
- shareConfig: {
- // 默认分享配置
- title: '',
- desc: '',
- imageUrl: '',
- path: '',
- query: ''
- }
- }
- },
-
- async onLoad(options) {
- // 构建当前页面路径,包含参数
- const pages = getCurrentPages()
- const currentPage = pages[pages.length - 1]
- let path = currentPage.route
-
- // 构建查询参数
- if (options && Object.keys(options).length > 0) {
- const queryString = Object.keys(options)
- .map(key => `${key}=${options[key]}`)
- .join('&')
- path = `${path}?${queryString}`
- }
-
- this.shareConfig.path = path
- this.shareConfig.query = options || {}
-
- // 设置默认分享内容
- this.setDefaultShareConfig()
- },
-
- methods: {
- // 设置默认分享配置
- setDefaultShareConfig() {
- try {
- const store = useStore()
- const configList = computed(() => store.getters.configList)
-
- // 从全局配置中获取默认分享信息
- this.shareConfig.title = configList.value?.applet_info?.paramValueText || '猫妈狗爸伴宠师'
- this.shareConfig.imageUrl = configList.value?.applet_info?.paramValueImage || ''
- } catch (error) {
- console.log('获取分享配置失败:', error)
- // 设置默认值
- this.shareConfig.title = '猫妈狗爸伴宠师'
- this.shareConfig.imageUrl = ''
- }
- },
-
- // 自定义分享配置
- setShareConfig(config = {}) {
- this.shareConfig = {
- ...this.shareConfig,
- ...config
- }
- },
-
- // 获取分享配置
- getShareConfig() {
- return {
- title: this.shareConfig.title,
- desc: this.shareConfig.desc,
- imageUrl: this.shareConfig.imageUrl,
- path: this.shareConfig.path,
- query: this.shareConfig.query
- }
- },
-
- // 显示分享菜单
- showShareMenu() {
- // #ifdef MP-WEIXIN
- uni.showShareMenu({
- withShareTicket: true,
- success: () => {
- console.log('显示分享菜单成功')
- },
- fail: (error) => {
- console.error('显示分享菜单失败:', error)
- }
- })
- // #endif
- },
- },
-
- // 微信小程序分享给朋友
- onShareAppMessage(res) {
- return this.getShareConfig()
- },
-
- // 微信小程序分享到朋友圈
- onShareTimeline(res) {
- return this.getShareConfig()
- },
- }
|