Your Name před 3 roky
rodič
revize
14f51efad3

+ 1
- 0
src/constants/api.js Zobrazit soubor

@@ -95,6 +95,7 @@ export const API_SALES_BATCH = resolvePath('taSalesBatch')
95 95
 export const API_ADDLIVE_NUM = resolvePath('addVisitNum')
96 96
 export const API_LIVE_LIST = resolvePath('taLiveActivity')
97 97
 export const API_VIDEO_LIST = resolvePath('videoActiveList')
98
+export const API_LIVING_CODE = resolvePath('taLiveActivity/work/livingCode')
98 99
 
99 100
 
100 101
 //sign

+ 29
- 4
src/pages/video/liveDetail/index.jsx Zobrazit soubor

@@ -1,4 +1,4 @@
1
-import { useState, useEffect } from "react";
1
+import { useState, useEffect, useRef } from "react";
2 2
 import Taro, { useDidShow, useReady } from "@tarojs/taro";
3 3
 import withLayout from "@/layout";
4 4
 import { Image } from "@tarojs/components";
@@ -6,6 +6,7 @@ import { queryLiveDetail } from "@/services/item";
6 6
 import useParams from "@/utils/hooks/useParams";
7 7
 import useShare from "@/utils/hooks/useShare";
8 8
 import { getImgURL } from "@/utils/image";
9
+import { getLivingCode } from '@/services/activity'
9 10
 import "@/assets/css/iconfont.css";
10 11
 import "./index.scss";
11 12
 
@@ -14,15 +15,17 @@ export default withLayout((props) => {
14 15
   const { id } = router.params;
15 16
 
16 17
   const [data,setData] = useState({})
18
+  // 直播间凭证
19
+  const livingCodeRef = useRef()
17 20
   
18 21
   // 本页面分享或者海报参数
19 22
   const paramsRef = useParams({
20 23
     id,
21
-    buildingId: data.buildingId,
24
+    buildingId: data?.buildingId,
22 25
     person,
23 26
     from: `${page.type}_share`,
24 27
   });
25
-  const fullTrackData = { ...trackData, buildingId: data.buildingId };
28
+  const fullTrackData = { ...trackData, buildingId: data?.buildingId };
26 29
   
27 30
   useShare(
28 31
     {
@@ -36,9 +39,31 @@ export default withLayout((props) => {
36 39
   const getData = () => {
37 40
     queryLiveDetail(id).then(res=>{
38 41
         setData(res)
42
+        if (res?.liveRoomParam) {
43
+          getLivingCode(res.liveRoomParam).then((r) => {
44
+            livingCodeRef.current = r
45
+          })
46
+        }
39 47
     })
40 48
   };
41 49
 
50
+  const handleLive = () => {
51
+    if (!livingCodeRef.current) {
52
+      Taro.showToast({
53
+        title: '查询直播凭证失败, 请退出重试',
54
+        icon: 'none',
55
+      })
56
+      return;
57
+    }
58
+
59
+    // 跳转到直播
60
+    Taro.navigateToMiniProgram({
61
+      // 固定跳转到微信企业直播
62
+      appId: 'wx7424030d69bde86e',
63
+      path: `pages/watch/index?living_code=${livingCodeRef.current}`,
64
+    })
65
+  }
66
+
42 67
   useEffect(() => {
43 68
     if (id) {
44 69
       getData(id);
@@ -49,7 +74,7 @@ export default withLayout((props) => {
49 74
        {data.liveActivityId&&<><Image mode='aspectFill' src={getImgURL(data.detailTypeImg)} className='liveImg'></Image>
50 75
        <view className='liveDetail-menu'>
51 76
            <view onClick={()=>{Taro.navigateTo({ url: `/pages/index/buildingDetail/index?id=${data.buildingId}` })}}><text className="iconfont icon-fenxiang"></text><text>查看楼盘</text></view>
52
-           <view><text className="iconfont icon-camera"></text><text>观看直播</text></view>
77
+           <view onClick={handleLive}><text className="iconfont icon-camera"></text><text>观看直播</text></view>
53 78
            <button openType="share"><text className="iconfont icon-fenxiang"></text><text>分享好友</text></button>
54 79
        </view></>}
55 80
   </view>;

+ 2
- 2
src/pages/video/videoDetail/index.jsx Zobrazit soubor

@@ -19,11 +19,11 @@ export default withLayout((props) => {
19 19
   // 本页面分享或者海报参数
20 20
   const paramsRef = useParams({
21 21
     id,
22
-    buildingId: data.buildingId,
22
+    buildingId: data?.buildingId,
23 23
     person,
24 24
     from: `${page.type}_share`,
25 25
   });
26
-  const fullTrackData = { ...trackData, buildingId: data.buildingId };
26
+  const fullTrackData = { ...trackData, buildingId: data?.buildingId };
27 27
   
28 28
   useShare(
29 29
     {

+ 3
- 0
src/services/activity.js Zobrazit soubor

@@ -19,6 +19,7 @@ import {
19 19
   API_GROUP_DETAIL,
20 20
   API_GROUP_JOIN,
21 21
   API_GROUP_CREATE,
22
+  API_LIVING_CODE,
22 23
 } from '@/constants/api'
23 24
 
24 25
 /**
@@ -110,3 +111,5 @@ export const giveFriendHelp = payload => fetch({ url: API_HELP_FRIEND, method: '
110 111
 export const getGroupDetail = (id, recordId, payload, header) => fetch({ url: `${API_GROUP_DETAIL}/${id}${recordId ? '?recordId=' + recordId : ''}`, payload, method: 'GET', header })
111 112
 export const createGroupActivity = payload => fetch({ url: API_GROUP_CREATE, method: 'POST', payload })
112 113
 export const joinGroupBuy = payload => fetch({ url: API_GROUP_JOIN, method: 'POST', payload })
114
+
115
+export const getLivingCode = livingid => fetch({ url: `${API_LIVING_CODE}?livingid=${livingid}` })