subscribe.js 2.38 KB
// component/menu/addDelete.js
import util from '../../utils/util';
import App from '../../utils/api';
const subscribe=[
  'ZwAkHfP8xUvBZKJn4VXsjRxUDTuCMjWqd8lTsdCPdks',//包厢预订通知	状态、预订门店、包厢名称、备注
]
Component({
  /**
   * 组件的属性列表
   */
  properties: {
    ids:{
      type:Array,
      value:subscribe.keys()
    }
  },

  /**
   * 组件的初始数据
   */
  data: {

  },
  attached(){

  },
  ready () {

  },
  detached(){

  },
  observers: {
    ids:function(){
      console.log('this.data.ids',this.data.ids)
      this.subscribeIds=[];
      this.data.ids.forEach(i=>{
        this.subscribeIds.push(subscribe[i])
      })
    },
  },
  /**
   * 组件的方法列表
   */
  methods: {
    subscribe(){
      console.log('subscribe',this.subscribeIds)
      wx.requestSubscribeMessage({
        tmplIds:this.subscribeIds,
        success:res=>{
          console.log('wx.requestSubscribeMessage.success',res)
          if(res.errMsg!='requestSubscribeMessage:ok'){
            wx.showModal({
              title: '授权提示',
              content: '请点击确定打开订阅授权',
              confirmColor: '#199095',
              cancelColor: '#999',
              success: function (res) {
                if (res.confirm) {
                  util.setting();
                }
              }
            })
            return;
          }
          let accept=[]
          this.subscribeIds.forEach(id=>{
            if(res[id]=='accept'){
              accept.push(id)
            }
          })
          if(accept.length>0){
            util.toast('订阅成功','none')
            setTimeout(()=>{
              App.Wechat.Subscribe({
                tplid:accept.toString()
              })
            },800)
          }else{
            util.toast('订阅失败,请在设置中打开','none')
          }
        },
        fail:(efail)=>{
          console.log('wx.requestSubscribeMessage.fail',efail)
          if(efail.errMsg.indexOf('not ended')) return;
          wx.showModal({
            title: '授权提示',
            content: '您拒绝了订阅消息,请点击确定打开授权',
            confirmColor: '#199095',
            cancelColor: '#999',
            success: function (res) {
              if (res.confirm) {
                util.setting();
              }
            }
          })
        },
      })
    },
  }
})