猫妈狗爸伴宠师小程序前端代码
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

101 lines
2.2 KiB

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()
},
}