小程序中这怎么写收藏、分享、客服功能

小程序中这怎么写收藏、分享、客服功能?

 

一、收藏:①先进入详情页,需要获取本地存储收藏的数据,

           ②之后拿这个数据和当前获取到详情页的id进行对比,如果有相同的id,就把一个变量变为true,再把收藏的图片的类名根据这个变量的true或false来改变。在。wxml中写

<text class="iconfont  {{flag?'icon-Collection cor':'icon-shoucang1'}} "></text> 
// 使用三元运算符,如果这个变量为true,就加第一个,如果为false,就加第二个类名
// 字体图标来自 案例巴巴矢量图标库
    .js中写

page({
    onLoad: function (options) { // 页面加载执行
    let arr = wx.getStorageSync('collect') || [];        // 获取本地存储种的数据
    app.http.category.getGoodsDetail({ goods_id: options.id }).then(res => {
     // 封装好的wx.request
    // 请求详情页数据
      let data = res.data.message;
      this.setData({
        flag: arr.some(item => { // 判断一个数组中有没有符合条件的,如果有返回true,否则返回flase
          return item.id == data.goods_id
        }),
        obj: data,
      })
    })
 
  },
})
在我们点击的时候,获取一下本地存储的数据,之后可以使用findIndex方法来判断,如果每一项的id等于我们当前页的id,就会返回当前项的下标,我们可以根据这个下标进行判断,如果下标不等于-1,就是本地存储有,就删除。否则就没有就添加。在判断下那个变量取反值。最后把我们的数据存一下本地存储。

page({
     collect() { // 单击触发的函数
    let title = '收藏成功' // 用于提示信息
     let arr = wx.getStorageSync('collect') || []; //获取一下本地存储中的数据
    let index = arr.findIndex(item => { // 从数据中找有没有id相同的
      return item.id == this.data.obj.goods_id
    })
    
    if (index != -1) { // 不等于-1表示有
      title = '取消收藏';  // 提示信息改为 取消收藏
      arr.splice(index, 1);  // 删除这一项
    } else {  // 否则就是没有
      arr.push({  // pushi进一个对象
        id: this.data.obj.goods_id,
        image: this.data.obj.goods_small_logo,
        name: this.data.obj.goods_name,
        price: this.data.obj.goods_price,
      });
    }
    wx.showToast({ // 微信封装的轻提示
      title:title  // 提示信息
    })
    this.setData({  // 这个变量取自身反
      flag: !this.data.flag,
    })
    wx.setStorageSync('collect', arr); // 在存进本地存储中
  },
})
 

二、分享:是在小程序中封装好的,直接使用。

 <button open-type="share"> 分享</button>
三、客服:是小程序中封装好的,直接使用。

 <button open-type="contact"> 联系客服</button> 
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值