mixin.js 6.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113
  1. export const commonMixin = {
  2. data() {
  3. return {
  4. appid: 'wx123456789abcdefg',
  5. roomId: [], // 填写具体的房间号
  6. roomList: []
  7. }
  8. },
  9. props: {
  10. terminal: {
  11. type: Number,
  12. default: 4
  13. },
  14. typeId: {
  15. type: Number,
  16. default: 1
  17. },
  18. shopId: {
  19. type: Number,
  20. default: 0
  21. },
  22. componentContent: {
  23. type: Object
  24. }
  25. },
  26. created() {
  27. this.getLiveRooms()
  28. },
  29. methods: {
  30. // 获取直播间列表
  31. getLiveRooms () {
  32. // Net.request('https://api.weixin.qq.com/wxa/business/getliveinfo?access_token=').then(res => {})
  33. const response = {
  34. "errcode": 0, // 错误码,0代表成功,1代表未创建直播间
  35. "errmsg": "ok", // 错误信息
  36. "total":1,
  37. "room_info":[{
  38. "name":"直播房间名",
  39. "roomid": 1,
  40. "cover_img":"https://www.baidu.com/img/flexible/logo/pc/result@2.png",
  41. "share_img":"https://www.tencent.com/img/banners/brief-1-1.jpg",
  42. "live_status": 101,
  43. // "live_status": 101, // 直播间状态。101:直播中,102:未开始,103已结束,104禁播,105:暂停,106:异常,107:已过期
  44. "start_time": 1568128900, // 直播间开始时间,列表按照start_time降序排列
  45. "end_time": 1568131200, // 直播计划结束时间
  46. "anchor_name":"里斯",
  47. "goods":[{
  48. "cover_img":"https://static.www.tencent.com/img/banner/wxpay-banner.jpg",
  49. "url":"pages/index/index.html",
  50. "name":"茶杯",
  51. "price": 1889, // 价格(分)
  52. "price2": 0,
  53. "price_type": 1, // 价格类型,1:一口价(只需要传入price,price2不传) 2:价格区间(price字段为左边界,price2字段为右边界,price和price2必传) 3:显示折扣价(price字段为原价,price2字段为现价, price和price2必传)
  54. "goods_id": 256, // 商品id
  55. "third_party_appid": "wx123456789aaaaaaa" //第三方商品appid ,当前小程序商品则为空
  56. }],
  57. "live_type": 0, // 直播类型,1 推流 0 手机直播
  58. "close_like": 0, // 是否关闭点赞 【0:开启,1:关闭】(若关闭,观众端将隐藏点赞按钮,直播开始后不允许开启)
  59. "close_goods": 0, // 是否关闭货架 【0:开启,1:关闭】(若关闭,观众端将隐藏商品货架,直播开始后不允许开启)
  60. "close_comment": 0, // 是否关闭评论 【0:开启,1:关闭】(若关闭,观众端将隐藏评论入口,直播开始后不允许开启)
  61. "close_kf": 1, // 是否关闭客服 【0:开启,1:关闭】 默认关闭客服(直播开始后允许开启)
  62. "close_replay": 1, // 是否关闭回放 【0:开启,1:关闭】默认关闭回放(直播开始后允许开启)
  63. "is_feeds_public": 0, // 是否开启官方收录,1 开启,0 关闭
  64. "creater_openid": "aaaaAbbbbB0ccccC0ddddDeeeeE0", // 创建者openid
  65. "feeds_img": "XXX" // 官方收录封面
  66. },{
  67. "name":"直播房间名",
  68. "roomid": 2,
  69. "cover_img":"https://www.baidu.com/img/flexible/logo/pc/result@2.png",
  70. "share_img":"https://www.tencent.com/img/banners/brief-1-1.jpg",
  71. "live_status": 102,
  72. // "live_status": 101, // 直播间状态。101:直播中,102:未开始,103已结束,104禁播,105:暂停,106:异常,107:已过期
  73. "start_time": 1639223017, // 直播间开始时间,列表按照start_time降序排列
  74. "end_time": 1639200008, // 直播计划结束时间
  75. "anchor_name":"里斯",
  76. "goods":[{
  77. "cover_img":"https://static.www.tencent.com/img/banner/wxpay-banner.jpg",
  78. "url":"pages/index/index.html",
  79. "name":"茶杯",
  80. "price": 1889, // 价格(分)
  81. "price2": 0,
  82. "price_type": 1, // 价格类型,1:一口价(只需要传入price,price2不传) 2:价格区间(price字段为左边界,price2字段为右边界,price和price2必传) 3:显示折扣价(price字段为原价,price2字段为现价, price和price2必传)
  83. "goods_id": 256, // 商品id
  84. "third_party_appid": "wx123456789aaaaaaa" //第三方商品appid ,当前小程序商品则为空
  85. }],
  86. "live_type": 0, // 直播类型,1 推流 0 手机直播
  87. "close_like": 0, // 是否关闭点赞 【0:开启,1:关闭】(若关闭,观众端将隐藏点赞按钮,直播开始后不允许开启)
  88. "close_goods": 0, // 是否关闭货架 【0:开启,1:关闭】(若关闭,观众端将隐藏商品货架,直播开始后不允许开启)
  89. "close_comment": 0, // 是否关闭评论 【0:开启,1:关闭】(若关闭,观众端将隐藏评论入口,直播开始后不允许开启)
  90. "close_kf": 1, // 是否关闭客服 【0:开启,1:关闭】 默认关闭客服(直播开始后允许开启)
  91. "close_replay": 1, // 是否关闭回放 【0:开启,1:关闭】默认关闭回放(直播开始后允许开启)
  92. "is_feeds_public": 0, // 是否开启官方收录,1 开启,0 关闭
  93. "creater_openid": "aaaaAbbbbB0ccccC0ddddDeeeeE0", // 创建者openid
  94. "feeds_img": "XXX" // 官方收录封面
  95. }]
  96. }
  97. this.roomList = response.room_info
  98. },
  99. toLiveRoom (item) {
  100. this.roomId.push(item.roomid)
  101. if (!this.appid || !this.roomId.length) { return }
  102. // 路由参数
  103. let customParams = encodeURIComponent(JSON.stringify({ path: 'livePage/index', pid: 1 }))
  104. // let customParams
  105. // 开发者在直播间页面路径上携带自定义参数(如示例中的path和pid参数),后续可以在分享卡片链接和跳转至商详页时获取,详见【获取自定义参数】、【直播间到商详页面携带参数】章节(上限600个字符,超过部分会被截断)
  106. // #ifdef MP-WEIXIN
  107. wx.navigateTo({
  108. url: `plugin-private://${this.appid}/pages/live-player-plugin?room_id=${this.roomId}&custom_params=${customParams}`
  109. })
  110. // #endif
  111. }
  112. }
  113. }