12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- // 分享
- import { mapMutations } from 'vuex'
- const shareEntry = {
- data() {
- return {
- // 分享链接携带的数据
- shareData: {
- type: '',
- inviteUserId: '',
- activityId: '',
- productId: '',
- userId: '',
- keyWord: '',
- jumpState: ''
- }
- }
- },
- methods: {
- ...mapMutations('user', ['setInviteUserId']),
- // 处理分享参数
- shareHandle(option) {
- let state_str = option.state_str
- if (!state_str) return
- state_str = decodeURIComponent(state_str)
- try {
- const decrypt = this.$crypto.decrypt(state_str)
- // 解密参数
- this.shareData = {
- ...this.shareData,
- ...JSON.parse(decrypt)
- }
- // 保存分享者的用户id
- this.setInviteUserId(this.shareData.inviteUserId)
- this.jumpTopSharePage()
- } catch (e) {
- console.log(e)
- return
- }
- },
- // 跳转到对应的分享页面
- jumpTopSharePage() {
- if (!this.shareData.type || this.shareData.type === 0) return
- const path = {
- 0: '/pages/tabBar/index/index', //首页
- 1: `/pages/goods/product-detail?productId=${this.shareData.productId}&jumpState=${this.shareData.jumpState}`, //商品详情
- 2: `/pages/goods/search?type=share&keyWord=${this.shareData.keyWord}`, // 搜索页面
- 3: `/pages/user/activity/activity?type=share&activityId=${this.shareData.activityId}&userId=${this.shareData.userId}` //活动商品列表
- }
- // 1000 ms后跳转
- setTimeout(() => {
- this.$api.navigateTo(path[this.shareData.type])
- }, 1000)
- }
- }
- }
- export default shareEntry
|