shenwu 1 månad sedan
förälder
incheckning
e28bcf3c51
2 ändrade filer med 48 tillägg och 6 borttagningar
  1. 24 5
      src/pages/ldPage/index.tsx
  2. 24 1
      src/server/index/index.ts

+ 24 - 5
src/pages/ldPage/index.tsx

@@ -1,16 +1,18 @@
 import { View, Text, Image } from "@tarojs/components";
 import Taro, { useRouter } from "@tarojs/taro";
-import { getPage } from "@src/server/index/index";
+import { getPage, report } from "@src/server/index/index";
 import { useEffect, useState } from "react";
 
 function LdPage() {
     let systemInfo = Taro.getSystemInfoSync();
     let [data, setDate] = useState<any>(null)
+    let [pageId, setPageId] = useState<any>(null)
+    let [randomId, setRandomId] = useState<any>(null)
     const router = useRouter()
     useEffect(() => {
         let params = router.params
-        console.log("router", router.params)
         if (params.pageId) {
+            setPageId(params.pageId)
             Taro.showLoading({
                 title: '加载中',
             })
@@ -24,7 +26,6 @@ function LdPage() {
                     }
                     let obj = {
                     }
-                    console.log("content", content)
                     content?.elementsSpecList?.map((item, index) => {
                         if (item.elementType === "QR_CODE") {
                             let url = res.data.data.qrCodeList.find(q => q.siteId == item.id)?.urlList[0]
@@ -42,6 +43,9 @@ function LdPage() {
                         obj["bgColor"] = content["bgColor"]
                         obj["pageName"] = content["pageName"]
                     })
+                    let randomId = Math.random().toString(36).substr(2) + "_" + params.pageId + "_" + Math.random().toString(36).substr(2);
+                    setRandomId(randomId)
+                    submitReport({ event: "pageLoad", pageId:params.pageId, randomId })
                     setDate({ ...res.data.data, ...obj })
                 }
                 Taro.hideLoading()
@@ -50,8 +54,23 @@ function LdPage() {
     }, [])
     const onLongPress = (str) => {
         console.log("用户长按了二维码:", str)
+        submitReport({ event: "longPress", elementType: str, pageId, randomId })
     }
-    console.log("data", data)
+    const submitReport = (extra: any) => {
+        let userInfo = Taro.getStorageSync("userInfo")
+        let data = {
+            "eventName": extra.event,
+            "ts": Date.now(),
+            "userId": userInfo.userInfo.openId,
+            "extra": { ...extra }
+        }
+        report(data).then(() => {
+            console.log("上报成功")
+        }).catch(() => {
+            console.log("上报失败")
+        })
+    }
+    console.log("randomId", randomId)
     return <View >
         {data && <>
             <View style={{ marginTop: (systemInfo.statusBarHeight as any) + 10 }}></View>
@@ -97,7 +116,7 @@ function LdPage() {
                 })}
                 {/* 二维码 */}
                 {data["QR_CODE"] && data["QR_CODE"].map((qrObj) => {
-                   return <Image src={qrObj.url} onLongPress={() => { onLongPress("QR_CODE") }} mode="widthFix" showMenuByLongpress style={{ height: "auto", width: "70vw", display: 'block', margin: '0 auto', order: qrObj.eq }} />
+                    return <Image src={qrObj.url} onLongPress={() => { onLongPress("QR_CODE") }} mode="widthFix" showMenuByLongpress style={{ height: "auto", width: "70vw", display: 'block', margin: '0 auto', order: qrObj.eq }} />
                 })}
                 {/* 动图 */}
                 {/* <Image src={"https://app-cloud-images.oss-cn-hangzhou.aliyuncs.com/1768559009681.gif"} mode="widthFix" style={{ height: "auto", width: "100vw", marginTop: -30, paddingBottom: 70 }} /> */}

+ 24 - 1
src/server/index/index.ts

@@ -317,4 +317,27 @@ export function getPage(id) {
             reject(error);
         }
     })
-} 
+}
+/**
+ * 埋点上报
+ * */
+export function report(data) {
+    return new Promise(async (resolve, reject) => {
+        try {
+            // 获取页面
+            Taro.request({
+                url: 'https://api.zanxiangwl.com/corpOperation/api/landing/event/submit',
+                method: 'POST',
+                data,
+                success: (res) => {
+                    resolve(res)
+                },
+                fail: (err) => {
+                    reject(err);
+                }
+            })
+        } catch (error) {
+            reject(error);
+        }
+    })
+}