find.js 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152
  1. import * as SocketHandle from '../../utils/socket-handle'
  2. import { getQueryString } from './../../utils/tools'
  3. import ImSend from './../../utils/imSend'
  4. import ImApi from './../../apis/im'
  5. import CompanyApi from './../../apis/company'
  6. // pages/web/web.js
  7. const app = getApp()
  8. function randomString(e) {
  9. for (var t = "", i = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789", n = 0; n < e; n++)
  10. t += i.charAt(Math.floor(Math.random() * i.length));
  11. return t
  12. }
  13. Page({
  14. /**
  15. * 页面的初始数据
  16. */
  17. data: {
  18. url: "",
  19. pullUrl: [],
  20. pushUrl: '',
  21. live_base_url: "rtmp://120.24.85.77:1935/hls",
  22. socketOpts: {},
  23. room_id: '',
  24. hasBeLogin: false,
  25. vr_link: '',
  26. showWebView: true
  27. },
  28. /**
  29. * 生命周期函数--监听页面加载
  30. */
  31. onLoad: async function (options) {
  32. let vr_link = 'https://test.4dkankan.com/shipin.html?'
  33. this.vrLink = vr_link
  34. this.companyDetail = {}
  35. this.role = this.companyDetail.guideId === (getApp().globalData.userinfo ? getApp().globalData.userinfo.viewerId : null) ? 'agent' : 'customer'
  36. let opts = {
  37. roomId: randomString(18),
  38. userId: getApp().globalData.userinfo.viewerId,
  39. role: 'customer',
  40. scene_num: getQueryString(vr_link, 'm') || ''
  41. }
  42. this.originUrl = `${vr_link}&room_id=${opts.roomId}${options.is_auto? `&vr=1` : ''}`
  43. this.setData({
  44. socketOpts: opts,
  45. url: this.originUrl,
  46. room_id: opts.roomId,
  47. house_id: options.house_id || '',
  48. vr_link: vr_link
  49. })
  50. this.socket = SocketHandle.initSocket(this, opts)
  51. if (app.globalData.token && !getQueryString(this.data.url, 'user_id') && this.role) {
  52. this.setData({
  53. url: `${this.originUrl}&user_id=${app.globalData.userinfo.viewerId}${this.data.hasBeLogin ? `&vr=1` : ''}`
  54. })
  55. }
  56. },
  57. onShow() {
  58. if (app.globalData.token && !getQueryString(this.data.url, 'user_id') && this.role) {
  59. this.setData({
  60. url: `${this.originUrl}&role=${this.role}&user_id=${app.globalData.userinfo.viewerId}${this.data.hasBeLogin ? `&vr=1` : ''}`
  61. })
  62. }
  63. },
  64. onUnload () {
  65. this.socket.disconnect()
  66. },
  67. countLiveUrl(user_id) {
  68. return `${this.data.live_base_url}/${this.data.room_id}_${user_id}`
  69. },
  70. startPlay(data) {
  71. console.log(data)
  72. if (!app.globalData.token) {
  73. wx.showToast({
  74. title: '未登录',
  75. })
  76. this.setData({
  77. hasBeLogin: true,
  78. showLogin: true
  79. })
  80. return
  81. }
  82. if (!this.hasSend) {
  83. // this.scene = data.user.scene_num
  84. this.sendVrCard()
  85. this.hasSend = true
  86. }
  87. this.setData({
  88. pushUrl: this.countLiveUrl(getApp().globalData.userinfo.user_id)
  89. })
  90. },
  91. createLivePull({persons, roomId}) {
  92. let arr = []
  93. persons.forEach(item => {
  94. arr.push(this.countLiveUrl(item.userId))
  95. })
  96. this.setData({
  97. pullUrl: arr
  98. })
  99. },
  100. someoneLeave() {
  101. this.setData({
  102. pullUrl: [],
  103. pushUrl: ''
  104. })
  105. },
  106. sendVrCard () {
  107. if (this.companyDetail.guideId === getApp().globalData.userinfo.viewerId) {
  108. return
  109. }
  110. ImApi.addFriend(this.companyDetail.guideId).finally(() => {
  111. ImSend.sendVrMsg({title: '带看', detail_images: [this.companyDetail.vrImg], vrLink: encodeURIComponent(this.vrLink)}, this.data.room_id, this.companyDetail.guideId, true)
  112. })
  113. },
  114. getHouseDetail (scene) {
  115. return CompanyApi.getCompanyDetailByScene(scene).then(res => {
  116. res.data.vrImg = JSON.parse(res.data.introduceImage)[0].img
  117. this.companyDetail = res.data
  118. // house.detail_images = JSON.parse(house.detail_images)
  119. // this.setData({
  120. // house
  121. // })
  122. // return res
  123. })
  124. },
  125. onShareAppMessage: function (res) {
  126. var path = '/pages/find/find'
  127. return {
  128. title: '三维数字化技术助力内循环',
  129. path: path,
  130. imageUrl: 'https://houseoss.4dkankan.com/domain/exhibition/demo/hwzff.jpg', // 分享的封面图
  131. }
  132. },
  133. bindmessage (e) {
  134. const img_url = e.detail.data[0]
  135. getApp().globalData.shared_img = img_url
  136. },
  137. loginSuccess () {
  138. this.onShow()
  139. this.hideLogin()
  140. },
  141. hideLogin () {
  142. this.setData({
  143. showLogin: false
  144. })
  145. },
  146. })