Commit 2df13986 authored by 俞嘉婷's avatar 俞嘉婷

feat: 神策埋点

parent 1376a784
......@@ -63,7 +63,7 @@ module.exports = {
prizeType: 0,
},
],
leftDrawTimes: 0,
leftDrawTimes: 10,
},
message: null,
success: true,
......@@ -79,7 +79,7 @@ module.exports = {
optionId: "ccccdddd",
optionName: "华为手环",
optionImg: "https://www.baidu.com/hw1.png",
prizeId: "sss_3",
prizeId: "thanks",
prizeType: 2,
position: 1,
userRecordId: 666,
......
......@@ -7,7 +7,7 @@
<meta name="theme-color" content="#000000">
<link rel="dns-prefetch" href="//yun.duiba.com.cn" />
<link rel="preconnect" href="//embedlog.duiba.com.cn">
<title>粽意测试局</title>
<title>守护人生实验</title>
<script type="text/javascript">
if (localStorage && localStorage.isWebp) {
document
......@@ -34,7 +34,7 @@
CFG.appID = '${APPID}';
CFG.activityName = "官微-25端午节活动";
CFG.activityName = "官微-25年守护人生活动";
CFG.channel = getUrlParam("channel") || sessionStorage.getItem("channel")
CFG.empno = getUrlParam('empno') || sessionStorage.getItem("empno")
CFG.empname = getUrlParam('empname') || sessionStorage.getItem("empname")
......
......@@ -7,14 +7,23 @@ import {Button} from "@src/components/Button";
import store from "@src/store";
import {PAGE_MAP} from "@src/utils/constants";
import modalStore from "@src/store/modal";
import { sensorMdClick, sensorMdExpouse } from "@src/utils/sensorMd";
@observer
class FundsPanel extends React.Component {
componentDidMount() {
sensorMdExpouse("PopupExpouse", { pageName: "守护人生活动-人生资金弹窗" });
}
clickNext = () => {
sensorMdClick("PopupClick", { pageName: "守护人生活动-人生资金弹窗", buttonName: "去配置" });
modalStore.closePop();
store.changePage(PAGE_MAP.QUES_PAGE, {funds: this.props.popData.funds});
}
clickClose = () => {
sensorMdClick("PopupClick", { pageName: "守护人生活动-人生资金弹窗", buttonName: "关闭" });
modalStore.closePop();
store.changePage(PAGE_MAP.QUES_PAGE, {funds: this.props.popData.funds});
}
......@@ -28,7 +37,7 @@ class FundsPanel extends React.Component {
<div className="bg"/>
<div className="funds">{funds}万元</div>
<Button className="next" onClick={this.clickNext}/>
<Button className="close" onClick={this.clickNext}/>
<Button className="close" onClick={this.clickClose}/>
</div>;
}
}
......
......@@ -14,11 +14,11 @@ class Drawchancepop extends React.Component {
}
componentDidMount() {
sensorMdExpouse("PopupExpouse", { pageName: "提示获取抽奖机会弹窗" });
// sensorMdExpouse("PopupExpouse", { pageName: "提示获取抽奖机会弹窗" });
}
handleClick = () => {
sensorMdClick("PopupClick", { pageName: "提示获取抽奖机会弹窗点击", buttonName: "去做任务" });
// sensorMdClick("PopupClick", { pageName: "提示获取抽奖机会弹窗点击", buttonName: "去做任务" });
modalStore.closePop("Drawchancepop");
modalStore.pushPop("Taskpop", { refresh: this.props.popData.refresh })
}
......
......@@ -15,11 +15,11 @@ class Drawfailpop extends React.Component {
}
componentDidMount() {
sensorMdExpouse("PopupExpouse", { pageName: "未中奖弹窗" });
sensorMdExpouse("PopupExpouse", { pageName: "守护人生活动-未中奖弹窗" });
}
knowHandle = _throttle(() => {
sensorMdClick("PopupClick", { pageName: "未中奖弹窗点击", buttonName: "我知道啦" });
sensorMdClick("PopupClick", { pageName: "守护人生活动-未中奖弹窗", buttonName: "我知道了" });
modalStore.closePop();
});
......@@ -32,6 +32,7 @@ class Drawfailpop extends React.Component {
<span
className="close"
onClick={() => {
sensorMdClick("PopupClick", { pageName: "守护人生活动-未中奖弹窗", buttonName: "关闭" });
modalStore.closePop();
}}></span>
</div>
......
......@@ -17,18 +17,17 @@ class Drawsucpop extends React.Component {
}
componentDidMount() {
sensorMdExpouse("PopupExpouse", { pageName: "中奖弹窗", prize: this.props?.popData?.prizeName });
sensorMdExpouse("PopupExpouse", { pageName: "守护人生活动-中奖弹窗" });
}
/** 进入【奖品】页 */
jumpPrize = _throttle(() => {
sensorMdClick("PopupClick", {
pageName: "中奖弹窗点击",
pageName: "守护人生活动-中奖弹窗",
buttonName: "开心收下",
prize: this.props?.popData?.prizeName,
});
modalStore.closePop();
location.href = CFG.prize;
// location.href = CFG.prize;
});
render() {
const { optionName, optionImg } = this.props.popData?.prize || {};
......
......@@ -15,12 +15,12 @@ class Rulepop extends React.Component {
super(props);
}
async componentDidMount() {
sensorMdExpouse("PopupExpouse", { pageName: "活动规则弹窗" });
sensorMdExpouse("PopupExpouse", { pageName: "守护人生活动-规则弹窗" });
await store.initRule();
}
closeHandle = _throttle(() => {
sensorMdClick("PopupClick", { pageName: "活动规则弹窗点击", buttonName: "关闭" });
sensorMdClick("PopupClick", { pageName: "守护人生活动-规则弹窗", buttonName: "关闭" });
modalStore.closePop();
});
......
......@@ -27,7 +27,7 @@ class Taskpop extends React.Component {
};
}
async componentDidMount() {
sensorMdExpouse("PopupExpouse", { pageName: "任务弹窗" });
sensorMdExpouse("PopupExpouse", { pageName: "任务" });
this.getTaskList();
}
......@@ -58,6 +58,7 @@ class Taskpop extends React.Component {
// 按钮点击事件
completeHandle = _throttle(async (item) => {
handleLogClick(23);
sensorMdClick("PopupClick", { pageName: "任务页", buttonName: "去完成" });
const { userId } = store.homeInfo || {};
const { code, jumpUrl } = item || {};
const systemTime = Date.now();
......@@ -68,12 +69,12 @@ class Taskpop extends React.Component {
timestamp: systemTime,
};
if (code.indexOf(TASK_CODE.THIRD_RETAIN) > -1) {
sensorMdClick("PopupClick", { pageName: "任务弹窗点击", buttonName: "留资咨询" });
// sensorMdClick("PopupClick", { pageName: "任务页", buttonName: "留资咨询" });
setTimeout(() => {
windowJumpUrl(jumpUrl);
}, 300);
} else if (code.indexOf(TASK_CODE.BROWSE_PRODUCT) > -1) {
sensorMdClick("PopupClick", { pageName: "任务弹窗点击", buttonName: "浏览产品" });
// sensorMdClick("PopupClick", { pageName: "任务页", buttonName: "浏览产品" });
modalStore.pushPop("LongImgPop", {
imgUrl: jumpUrl,
taskSucCb: async () => {
......@@ -81,7 +82,7 @@ class Taskpop extends React.Component {
},
});
} else if (code.indexOf(TASK_CODE.SIGN) > -1) {
sensorMdClick("PopupClick", { pageName: "任务弹窗点击", buttonName: "每日签到" });
// sensorMdClick("PopupClick", { pageName: "任务页", buttonName: "每日签到" });
} else if (code.indexOf(TASK_CODE.BROWSE_MINI) > -1) {
await API.doCompleted(params);
watchPageVisibility(this.pageVChange);
......@@ -93,7 +94,7 @@ class Taskpop extends React.Component {
miniGoUrl(jumpUrl);
}
} else if (code.indexOf(TASK_CODE.BROWSE_VIDEO) > -1) {
sensorMdClick("PopupClick", { pageName: "任务弹窗点击", buttonName: "浏览视频" });
// sensorMdClick("PopupClick", { pageName: "任务页", buttonName: "浏览视频" });
modalStore.pushPop("Videopop", {
url: jumpUrl,
taskSucCb: async () => {
......@@ -106,6 +107,7 @@ class Taskpop extends React.Component {
/** 任务领奖 */
receiveHandle = _asyncThrottle(async (task) => {
handleLogClick(23);
sensorMdClick("PopupClick", { pageName: "任务页", buttonName: "去领取" });
const { success, data } = await API.sendPrize({
// taskId: task.id,
taskCode: task.code,
......@@ -119,7 +121,6 @@ class Taskpop extends React.Component {
/* 关闭弹窗*/
closeHandle = () => {
sensorMdClick("PopupClick", { pageName: "任务弹窗点击", buttonName: "关闭" });
this.props.popData?.refresh && this.props.popData?.refresh();
modalStore.closePop();
};
......
......@@ -9,6 +9,7 @@ import store from "@src/store";
import {PAGE_MAP} from "@src/utils/constants";
import {Toast} from "@spark/ui";
import modalStore from "@src/store/modal";
import { sensorMdClick, sensorMdExpouse } from "@src/utils/sensorMd";
@observer
class LifeSettingPage extends React.Component {
......@@ -22,6 +23,7 @@ class LifeSettingPage extends React.Component {
settingParams = [];
componentDidMount() {
sensorMdExpouse("activityPage", { pageName: "人生参数设定页" });
}
clickItem(index) {
......@@ -32,18 +34,19 @@ class LifeSettingPage extends React.Component {
clickNext = () => {
const {chooseIndex, quesIndex} = this.state;
if (chooseIndex === null || chooseIndex === undefined) {
return Toast("请完成参数选择");
}
const {radio} = SettingCfg[quesIndex].answer[chooseIndex];
this.funds *= radio;
this.settingParams.push(chooseIndex);
if (quesIndex == 2) {
sensorMdClick("activityClick", { pageName: "人生参数设定页", buttonName: "开始测试" });
modalStore.pushPop("FundsPanel", {
funds: this.funds,
settingParams: this.settingParams.map((item) => item + 1),
......
......@@ -7,6 +7,7 @@ import {QuestionCfg} from "@src/pages/answerpage/QuestionCfg";
import classNames from "classnames";
import modalStore from "@src/store/modal";
import store from "@src/store";
import { sensorMdClick, sensorMdExpouse } from "@src/utils/sensorMd";
@observer
class Answerpage extends React.Component {
......@@ -23,6 +24,7 @@ class Answerpage extends React.Component {
this.setState({
funds: this.props.funds,
})
sensorMdExpouse("activityPage", { pageName: "测试选择页" });
}
clickItem(index) {
......@@ -32,6 +34,7 @@ class Answerpage extends React.Component {
}
clickNext = () => {
sensorMdClick("activityClick", { pageName: "测试选择页", buttonName: "确认" });
const {quesIndex, chooseIndex, funds} = this.state;
if (chooseIndex == null) return;
......
......@@ -51,7 +51,7 @@ class Drawpage extends React.Component {
// 开始抽奖
lotteryHandle = _asyncThrottle(async () => {
const { optionInfoList, leftDrawTimes } = this.state.drawInfo;
sensorMdClick("activityClick", { pageName: "抽奖页点击", buttonName: "开始抽奖" });
sensorMdClick("activityClick", { pageName: "抽奖页", buttonName: "立即抽奖" });
// 无抽奖次数
if (!leftDrawTimes) {
// return modalStore.pushPop("Drawchancepop", {
......@@ -83,8 +83,9 @@ class Drawpage extends React.Component {
// 转盘停止处理
stopOkHandle = () => {
this.btnStarting = false;
console.info("this.drawResultInfo", this.drawResultInfo);
if (this.drawResultInfo?.prizeId == "thanks") {
if (this.drawResultInfo?.prize?.prizeId == "thanks") {
modalStore.pushPop("Drawfailpop");
} else {
modalStore.pushPop("Drawsucpop", { ...this.drawResultInfo });
......@@ -102,7 +103,7 @@ class Drawpage extends React.Component {
prizeHandle = _throttle(async () => {
if (this.btnStarting) return false;
if (!store.checkActStatus(true)) return;
sensorMdClick("activityClick", { pageName: "抽奖页点击", buttonName: "奖品" });
sensorMdClick("activityClick", { pageName: "抽奖页", buttonName: "奖品" });
location.href = CFG.prize;
});
......@@ -110,14 +111,14 @@ class Drawpage extends React.Component {
ruleHandle = _throttle(async () => {
if (this.btnStarting) return false;
if (!store.checkActStatus(true)) return;
sensorMdClick("activityClick", { pageName: "抽奖页点击", buttonName: "规则" });
sensorMdClick("activityClick", { pageName: "抽奖页", buttonName: "规则" });
modalStore.pushPop("Rulepop");
});
/** 任务 */
taskHandle = _throttle(() => {
if (this.btnStarting) return false;
if (!store.checkActStatus()) return;
sensorMdClick("activityClick", { pageName: "抽奖页点击", buttonName: "做任务" });
sensorMdClick("activityClick", { pageName: "抽奖页", buttonName: "做任务" });
modalStore.pushPop("Taskpop", {
refresh: () => this.getDrawInfo(),
});
......@@ -129,10 +130,6 @@ class Drawpage extends React.Component {
<span className="beiJing"></span>
<div className="rule_prize"></div>
<span className="title"></span>
{/* <div className="subtitle">
<span className="subtitle_bg"></span>
<span className="subtitle_text">测一测你的端午专属人设</span>
</div> */}
<div className="turntable">
<span className="turntable_box_bg"></span>
<CircleTurntable
......
......@@ -83,32 +83,6 @@
position: absolute;
.sparkBg("drawPage/title.png");
}
.subtitle {
width: 545px;
height: 44px;
left: 99px;
top: 363px;
position: absolute;
.subtitle_bg {
width: 545px;
height: 44px;
left: 0px;
top: 0px;
position: absolute;
.sparkBg("drawPage/subtitle_bg.png");
}
.subtitle_text {
width: 411px;
height: 26px;
left: 68px;
top: 8px;
position: absolute;
font-size: 26px;
line-height: 26px;
color: rgba(255, 255, 255, 1);
text-align: center;
}
}
.turntable {
width: 750px;
height: 843px;
......
......@@ -30,34 +30,34 @@ class Homepage extends React.Component {
// 初始化首页分享信息
shareStore.initShareInfo();
sensorMdExpouse("activityPage", { pageName: "端午活动首页", follow_action: 1 });
pageLeave("端午节活动首页点击", 5);
sensorMdExpouse("activityPage", { pageName: "守护人生活动首页", follow_action: 1 });
pageLeave("守护人生活动首页", 5);
}
// 我的奖品
goPrize = _throttle(() => {
if (!store.checkActStatus(true)) return;
sensorMdClick("activityClick", { pageName: "端午节活动首页点击", buttonName: "奖品" });
sensorMdClick("activityClick", { pageName: "守护人生活动首页", buttonName: "奖品" });
// store.changePage(PAGE_MAP.PRIZE_PAGE);
location.href = CFG.prize;
});
doShare = _throttle(() => {
if (!store.checkActStatus()) return;
sensorMdClick("activityClick", { pageName: "端午节活动首页点击", buttonName: "分享" });
sensorMdClick("activityClick", { pageName: "守护人生活动首页", buttonName: "分享" });
shareStore.doShare();
});
openRule = _throttle(() => {
if (!store.checkActStatus(true)) return;
sensorMdClick("activityClick", { pageName: "端午节活动首页点击", buttonName: "规则" });
sensorMdClick("activityClick", { pageName: "守护人生活动首页", buttonName: "规则" });
modalStore.pushPop("Rulepop");
});
goDraw = _throttle(() => {
if (!store.checkActStatus()) return;
sensorMdClick("activityClick", { pageName: "端午节活动首页点击", buttonName: "抽奖" });
sensorMdClick("activityClick", { pageName: "守护人生活动首页", buttonName: "抽奖" });
store.changePage(PAGE_MAP.DRAW_PAGE);
});
openTask = _throttle(() => {
if (!store.checkActStatus()) return;
sensorMdClick("activityClick", { pageName: "端午节活动首页点击", buttonName: "做任务" });
sensorMdClick("activityClick", { pageName: "守护人生活动首页", buttonName: "做任务" });
modalStore.pushPop("Taskpop", {
refresh: () => store.getHomeInfo(),
});
......@@ -67,7 +67,7 @@ class Homepage extends React.Component {
return;
}
const { leftGameTimes, rewardDailyFreeGameTimes } = store.homeInfo || {};
sensorMdClick("activityClick", { pageName: "端午节活动首页点击", buttonName: "开始测试" });
sensorMdClick("activityClick", { pageName: "守护人生活动首页", buttonName: "开始测试" });
if ((Number(leftGameTimes) || 0) + (Number(rewardDailyFreeGameTimes) || 0) > 0) {
// 进入测试页
store.startTest();
......@@ -92,10 +92,6 @@ class Homepage extends React.Component {
<span className="test_times">剩余次数:{(Number(leftGameTimes) || 0) + (Number(rewardDailyFreeGameTimes) || 0)}</span>
{/* <span className="title"></span> */}
<SvgaPlayer className="home_svga" src={RES_PATH + "svga/home.svga"} />
{/* <div className="subtitle">
<span className="subtitle_bg"></span>
<span className="subtitle_text">测一测你的端午专属人设</span>
</div> */}
</div>
);
}
......
......@@ -85,32 +85,6 @@
position: absolute;
pointer-events: none;
}
.subtitle {
width: 545px;
height: 44px;
left: 99px;
top: 363px;
position: absolute;
.subtitle_bg {
width: 545px;
height: 44px;
left: 0px;
top: 0px;
position: absolute;
.sparkBg("homePage/subtitle_bg.png");
}
.subtitle_text {
width: 100%;
height: 26px;
left: 0;
top: 8px;
position: absolute;
font-size: 26px;
line-height: 26px;
color: rgba(255, 255, 255, 1);
text-align: center;
}
}
.task_btn {
left: 603px;
top: 1260px;
......
......@@ -54,7 +54,7 @@ class Prizepage extends React.Component {
navigateToPrize = (item) => {
return _asyncThrottle(async () => {
sensorMdClick("activityClick", { pageName: "我的奖品页点击", activityName: CFG.activityName, buttonName: `点击奖品` });
sensorMdClick("activityClick", { pageName: "我的奖品页", activityName: CFG.activityName, buttonName: `奖品详情` });
// sensorMdClick("activityClick", { pageName: "我的奖品页", buttonName: `去看看-${item.prizeName}` });
const {
focusStatus, // 是否关注公众号(true-关注,false-未关注)
......@@ -94,7 +94,7 @@ class Prizepage extends React.Component {
});
}
backHome() {
sensorMdClick("activityClick", { pageName: "我的奖品页点击", buttonName: "返回", activityName: CFG.activityName })
sensorMdClick("activityClick", { pageName: "我的奖品页", buttonName: "返回", activityName: CFG.activityName })
const fromPage = getUrlParam('fromPage')
if (fromPage == 'home') {
history.go(-1)
......
......@@ -41,21 +41,20 @@ class Resultpage extends React.Component {
doShare = _throttle(() => {
sensorMdClick("activityClick", {pageName: "结果页", buttonName: "分享人设"});
sensorMdClick("activityClick", {pageName: "结果页", buttonName: "去分享"});
shareStore.doShare();
})
goDraw = _throttle(() => {
sensorMdClick("activityClick", {pageName: "结果页", buttonName: "立即抽奖"});
sensorMdClick("activityClick", {pageName: "结果页", buttonName: "抽奖"});
store.changePage(PAGE_MAP.DRAW_PAGE, {is_from: 'result'});
})
// 查看产品详情
openProduct = _throttle((link) => {
sensorMdClick("activityClick", {pageName: "结果页", buttonName: "点击查看"});
sensorMdClick("activityClick", {pageName: "结果页", buttonName: "查看"});
modalStore.pushPop("LongImgPop2", {imgUrl: link})
})
backHandle = _throttle(() => {
sensorMdClick("activityClick", {pageName: "结果页", buttonName: "返回"});
store.changePage(PAGE_MAP.HOME_PAGE)
})
......
import { ACT_STATUS, ACT_STATUS_TOAST, PAGE_MAP, TOPIC_LIST } from "@src/utils/constants";
import { ACT_STATUS, ACT_STATUS_TOAST, PAGE_MAP } from "@src/utils/constants";
import { makeAutoObservable } from "mobx";
import API from "../api/index";
import { GetCurrSkinId, getCustomShareId } from "@src/utils/utils";
......@@ -24,7 +24,7 @@ const store = makeAutoObservable({
Did1NjA4NjM: PAGE_MAP.MID_PAGE,
// 免登中间页-线上正式
Did1NjA4NzE: PAGE_MAP.MID_PAGE,
}[skinId] || PAGE_MAP.LIFE_SETTING_PAGE,
}[skinId] || PAGE_MAP.HOME_PAGE,
pageData: {},
......@@ -138,7 +138,7 @@ const store = makeAutoObservable({
store.setUserInfo(res.data || {});
const { unionId, openId, friendEmpNo, friendOpenId, newEmpNo } = res.data || {};
// initSensors(unionId, openId, friendEmpNo, friendOpenId);
initSensors(unionId, openId, newEmpNo);
initSensors(unionId, openId, newEmpNo, res.data);
}
},
});
......
......@@ -174,227 +174,6 @@ export const TASK_CODE = {
BROWSE_MINI: 'browse_view_mini',
}
/**
* 答题配置 共5组 每组5道题
*/
export const TOPIC_LIST = [
// 第一组
[
{
topic: "端午节必吃粽子,你更偏爱哪种口味?",
options: [
"甜粽派(豆沙、蜜枣)$$$a",
"咸粽派(蛋黄肉粽、火腿)$$$a",
"冰粽等创新粽子$$$c",
]
},
{
topic: "端午节时,你希望收到什么样的祝福?",
options: [
"创意满满的搞笑段子",
"传统又温馨的话语",
"简单一句“端午快乐”"
]
},
{
topic: "如果粽子有性格,你希望它是?",
options: [
"粽子怎么可能有性格",
"热情似火的小太阳",
"古灵精怪的小精灵"
]
},
{
topic: "假如端午假期和朋友约饭,你选?",
options: [
"亲自为朋友做粽子盛情款待$$$e",
"找家网红餐厅尝鲜",
"在家等朋友投喂"
]
},
{
topic: "端午节一些地方会举办爬龙舟比赛,你想?",
options: [
"亲自下场,感受速度激情$$$b",
"岸边助威,当最强气氛组",
"线上围观,不想出门凑热闹$$$d"
]
},
],
// 第二组
[
{
topic: "当听说有的地方端午用雄黄酒在小孩额头写“王”字,你?",
options: [
"觉得很有趣,想给孩子试试$$$c",
"新奇,但不会轻易尝试",
"这操作有点迷,不太理解"
]
},
{
topic: "端午期间,你愿意花时间学编五彩绳吗?",
options: [
"必须的,编好送亲友多有面$$$a",
"可以试试,毕竟是传统文化$$$a",
"太麻烦了,直接买现成的$$$d"
]
},
{
topic: "端午节你会邀请朋友来家里吗?",
options: [
"肯定会,组织一场热闹的聚会$$$b",
"看情况,有时间就邀请$$$a",
"不会,喜欢自己过节"
]
},
{
topic: " 假如粽子会上网,它发的第一条动态会是?",
options: [
"“家人们谁懂啊,被包得好紧”",
"“今天和隔壁月饼battle了一下人气”",
"“谁来尝尝我的新馅料,绝了”"
]
},
{
topic: "对于粽子的搭配,你有研究吗?",
options: [
"会研究各种新奇搭配和茶点$$$e",
"随便搭配,能吃就行",
"没有,就正常吃粽子"
]
},
],
// 第三组
[
{
topic: "你觉得端午节吃粽子,什么最重要?",
options: [
"必须是独特的口味",
"精致好看的外形",
"亲手制作的心意"
]
},
{
topic: "端午节公司搞活动,你希望是?",
options: [
"包粽子大赛,展示自己的手艺$$$e",
"粽子创意摆盘比赛,看谁脑洞大",
"放假一天,在家躺平"
]
},
{
topic: "有些地方端午节有“躲午”的习俗,你怎么看?",
options: [
"很有意思,想了解更多",
"不太理解,感觉没必要",
"尊重习俗,但不参与"
]
},
{
topic: "假如有个粽子博物馆,你觉得里面会有?",
options: [
"从古至今各种传统粽子模具,展示历史$$$a",
"世界各地奇葩粽子的标本,大开眼界$$$c",
"休息区,逛累了可以吃粽子$$$d"
]
},
{
topic: "朋友邀请你参加端午节户外活动,你会?",
options: [
"马上答应,还主动帮忙策划$$$b",
"犹豫一下,看自己的安排",
"找借口拒绝,想在家休息"
]
},
],
// 第四组
[
{
topic: "端午节一些地区有“送时节”的习俗,你知道是指?",
options: [
"送应季礼品走亲访友",
"给亲朋好友送祝福",
"不太清楚,没听说过"
]
},
{
topic: "假如端午节有专属宠物装扮,你会给宠物?",
options: [
"精心打扮,拍照发圈$$$c",
"偶尔试试,图个乐呵",
"算了,感觉很麻烦"
]
},
{
topic: "假如粽子会唱歌,你觉得它会唱?",
options: [
"《最炫民族风》,经典永不褪色",
"《卡路里》,吃了不怕胖",
"《无所谓》,和自己的心态一样"
]
},
{
topic: "端午当天,你会选择什么活动?",
options: [
"观看传统的龙舟比赛,感受古老的竞技氛围$$$a",
"看看电视里的端午节目,轻松度过$$$d",
"参加粽子品鉴会,品尝各地特色粽子$$$e"
]
},
{
topic: "端午节在社交平台,你:",
options: [
"频繁发动态,邀请大家线下玩$$$b",
"偶尔发一条祝福动态",
"基本不看也不发动态"
]
},
],
// 第五组
[
{
topic: "端午节时,你会选择哪种方式放松?",
options: [
"泡个艾草澡,舒缓身心",
"DIY端午美食,招待好友$$$e",
"和朋友逛街喝咖啡"
]
},
{
topic: "你觉得端午节的龙舟竞渡,最吸引人的是?",
options: [
"紧张刺激的比赛氛围",
"独特的龙舟造型和装饰",
"大家齐心协力的团队精神"
]
},
{
topic: "看到商家推出的端午限定产品,你会?",
options: [
"选择具有传统特色的产品,支持传统文化$$$a",
"买一些和朋友分享,增加节日氛围$$$b",
"购买最有创意、最新奇的限定产品$$$c"
]
},
{
topic: "假如粽子拥有超能力,你希望它具备什么神奇技能?",
options: [
"能自己包自己,还能变出各种馅料",
"能瞬间变成各种新奇口味,永远吃不腻",
"不需要什么技能,随遇而安就好$$$d"
]
},
{
topic: "如果你穿越成屈原,你会?",
options: [
"举办第一届粽子品鉴大会",
"把离骚改编成说唱,宣传端午",
"先找个地方好好睡一觉,太操心了"
]
},
],
]
/**
* 人设信息
*/
......
......@@ -4,7 +4,7 @@ import sensors from 'sa-sdk-javascript';
import { ACTIVITY_SOURCE_CHANNEL, SYS_SOURCE_CHANNEL } from './constants';
import pageleave from './pageleave';
export const initSensors = (uid, openId, newEmpNo, friendOpenId) => {
export const initSensors = (uid, openId, newEmpNo, userInfo) => {
sensors.init({
server_url: CFG.sensorUrl,
is_track_single_page: true,
......@@ -31,13 +31,15 @@ export const initSensors = (uid, openId, newEmpNo, friendOpenId) => {
const publicObjec = objectAssign({
currentUrl: location.href,
referrer: document.referrer,
activityId: "25DragonBoat",
activityId: "25GuardingLife",
unionid: uid,
openid: openId,
source: CFG.channel,
systemName: '寿险2013版微信公众平台',
userSource: null,
userAccount: CFG.channel == 'taihaodian' ? '太好店小程序' : '太平洋寿险小程序',
activityName: CFG.activityName,
c_date: "2025/5/19-2025/6/13",
c_date: "2025/08/01-2025/08/24",
empNp: newEmpNo, // 用户实际绑定业务员工号(与转发无关)
activitySource: ACTIVITY_SOURCE_CHANNEL[CFG.channel] || "",
sysSourceName: SYS_SOURCE_CHANNEL[CFG.channel] || "",
......@@ -45,8 +47,25 @@ export const initSensors = (uid, openId, newEmpNo, friendOpenId) => {
shareMark: !!getUrlParam("uid") ? "是" : "否",
shareType: shareType,
friendEmpNo: getUrlParam("shareNewEmpNo"), // 邀请人的业务员工号(A转发给B,传A的业务员工号)
friendOpenId: getUrlParam("shareOpenId"), // 邀请人的openId
empno: CFG.empno
friendOpenId: getUrlParam("shareOpenId"), // 邀请人的openId
empno: CFG.empno,
miniopenid: userInfo?.miniopenid || '',
phone: userInfo?.phone || '',
wxNickName: userInfo?.nickname || '',
sex: userInfo?.sex || '',
age: userInfo?.age || '',
userLevel: userInfo?.userLevel || '',
subscribeFlg: userInfo?.subscribeFlg || false,
subscribeFlg2: userInfo?.subscribeFlg2 || false,
officerOrEmp: userInfo?.officerOrEmp || '',
programLogin: userInfo?.programLogin || '',
province: userInfo?.province || '',
memberAttribution: userInfo?.memberAttribution || '',
memberType: userInfo?.memberType || '',
memberLevel: userInfo?.customLevel || '',
}, window['__tbSensorsObj__']);
sensors.registerPage(publicObjec);
sensors.quick('autoTrack');
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment