Commit 42557cba authored by 王勇霞's avatar 王勇霞

feat: 增加实盘埋点

parent dc170315
......@@ -6,16 +6,12 @@ const appId = CFG.appID;
const dcm = "202." + CFG.projectId + ".0.0";
const domain = "";
const channel = getUrlParam("channel");
const dom = `${channel}.0.0.0`;
const MDList: IAutoMdData[] = new Array(36).fill("").map((_, i) => {
const MDList: IAutoMdData[] = new Array(13).fill("").map((_, i) => {
return {
ele: `.md${i + 1}`,
data: {
dpm: `${appId}.110.${i + 1}.1`,
dcm,
dom,
domain,
appId,
},
......@@ -33,7 +29,6 @@ export function handleLogExposure(id: number | string, id2: number | string = 1)
logExposure({
dpm: `${appId}.110.${id}.${id2}`,
dcm,
dom,
domain,
appId,
});
......@@ -43,7 +38,6 @@ export function handleLogClick(id: number | string, id2: number | string = 1) {
logClick({
dpm: `${appId}.110.${id}.${id2}`,
dcm,
dom,
domain,
appId,
});
......@@ -54,7 +48,6 @@ export function handleTaskLogClick(id, id2 = 1, btnStatus) {
logClick({
dpm: `${appId}.110.${id}.${id2}`,
dcm: `202.${CFG.projectId}.0.${btnStatus}'`,
dom,
domain,
appId,
});
......@@ -63,7 +56,6 @@ export function handleTaskLogExposure(id, id2 = 1, btnStatus) {
logExposure({
dpm: `${appId}.110.${id}.${id2}`,
dcm: `202.${CFG.projectId}.0.${btnStatus}'`,
dom,
domain,
appId,
});
......
......@@ -7,7 +7,6 @@
top: 0px;
position: relative;
background-color: #e86a3c;
// padding-top: 700px;
padding-top: 576px;
padding-bottom: 85px;
box-sizing: border-box;
......@@ -22,227 +21,6 @@
background-size: 750px 779px;
}
.title {
width: 705px;
height: 316px;
left: 45px;
top: 0px;
position: absolute;
// .sparkBg("homePage/title.png");
}
.virtual_assets {
width: 712px;
height: 513px;
left: 19px;
position: relative;
margin-top: 18px;
.sparkBg("homePage/virtual_assets_bg_new.png");
&.short_height {
height: 412px;
.sparkBg("homePage/virtual_assets_bg_short.png");
}
.time_box {
width: 100%;
height: 40px;
position: absolute;
top: 20px;
left: 0;
display: flex;
align-items: center;
justify-content: flex-end;
color: rgb(153, 108, 0);
padding-right: 32px;
box-sizing: border-box;
font-size: 22px;
line-height: 40px;
.time_item {
width: 40px;
height: 40px;
border: 1px solid rgb(255, 255, 255);
box-sizing: border-box;
border-radius: 10px;
background-image: linear-gradient(0deg, rgb(237, 88, 29) 0%, rgb(255, 144, 65) 100%);
.flex_center();
color: rgb(255, 255, 255);
margin: 0 4px;
}
}
.time_box_over {
position: absolute;
right: 29px;
top: 26px;
width: 223px;
height: 40px;
.sparkBg("homePage/time_box_over_bg.png");
font-size: 22px;
color: rgb(255, 255, 255);
letter-spacing: 2px;
.flex_center();
}
.yesterday_label {
width: 153px;
height: 27px;
left: 30px;
top: 116px;
position: absolute;
opacity: 0.6;
font-size: 26px;
line-height: 27px;
padding-left: 20px;
color: rgba(0, 0, 0, 1);
}
.yesterday_amount {
width: 228px;
height: 56px;
left: 29px;
top: 171px;
position: absolute;
font-size: 66px;
line-height: 56px;
padding-left: 20px;
color: rgb(237, 10, 10);
font-weight: bold;
}
.record_btn {
width: 176px;
height: 24px;
left: 490px;
top: 116px;
position: absolute;
.sparkBg("homePage/record_list_btn.png");
// .record_btn_text {
// width: 162px;
// height: 24px;
// left: 0px;
// top: 0px;
// position: absolute;
// opacity: 0.6;
// font-size: 26px;
// line-height: 24px;
// color: rgba(24, 24, 24, 1);
// }
// .arrow_right {
// width: 13px;
// height: 24px;
// left: 163px;
// top: 0px;
// position: absolute;
// opacity: 0.6;
// .sparkBg("homePage/arrow_right.png");
// }
}
.other_assets {
width: 666px;
height: 70px;
left: 23px;
top: 268px;
position: absolute;
.other_assets1 {
width: 195px;
height: 70px;
left: 0;
top: 0px;
position: absolute;
}
.other_assets2 {
width: 195px;
height: 70px;
left: 236px;
top: 0px;
position: absolute;
}
.other_assets3 {
width: 195px;
height: 69px;
left: 471px;
top: 1px;
position: absolute;
}
.other_assets_label {
width: 100%;
height: 25px;
left: 0px;
top: 0px;
position: absolute;
opacity: 0.6;
font-size: 26px;
line-height: 25px;
color: rgba(0, 0, 0, 1);
text-align: center;
}
.other_assets_value {
width: 100%;
height: 26px;
left: 0;
top: 44px;
position: absolute;
font-size: 30px;
line-height: 26px;
color: rgb(28, 28, 28);
text-align: center;
font-weight: bold;
}
}
.canuse_popover {
width: 157px;
height: 39px;
left: 360px;
top: 221px;
position: absolute;
.canuse_popover_bg {
width: 157px;
height: 39px;
left: 0px;
top: 0px;
position: absolute;
opacity: 0.5;
// .sparkBg("homePage/canuse_popover_bg.png");
.sparkBg("homePage/canuse_popover_bg_left.png");
}
.canuse_popover_text {
width: 100%;
height: 21px;
left: 0px;
top: 9px;
position: absolute;
font-size: 22px;
line-height: 22px;
color: rgba(135, 76, 8, 1);
text-align: center;
}
}
.realbuy_btn {
width: 327px;
height: 83px;
left: 193px;
top: 380px;
position: absolute;
font-size: 35px;
line-height: 34px;
color: rgba(255, 255, 255, 1);
.sparkBg("homePage/realbuy_btn_bg.png");
.flex_center();
}
}
.ranking_list{
width: 732px;
height: 1071px;
......
......@@ -61,27 +61,12 @@ class HomePage extends React.Component<any, any> {
}
}
/** 跳转模拟交易记录 */
// recordHadnle = _asyncThrottle(() => {
// if (!store.judgeActTime()) return
// PageCtrl.changePage(NewRecordPage, { tab: 1 });
// })
/** 跳转“模拟”产品详情页 */
jumpVirtualDetailHandle = _asyncThrottle((item) => {
if (!store.judgeActTime()) return
PageCtrl.changePage(DetailPage, item)
})
/** 跳转“真实”产品详情页 */
// jumpRealDetailHandle = _asyncThrottle((item) => {
// if (!store.judgeActTime()) return
// const { curTab } = this.state
// if (curTab != 2) return false
// // 我的持仓才可以跳转
// diffJump(item.realBuyJumpUrl)
// })
/** 规则 */
ruleHandle = _asyncThrottle(() => {
if (!store.judgeActTime(true, false)) return
......@@ -150,38 +135,6 @@ class HomePage extends React.Component<any, any> {
componentWillUnmount(): void {
}
/*
getRedCountDown(redRainConfig) {
const now = new Date().getTime();
const today = dateFormatter(new Date(), 'yyyy-MM-dd');
const timeArr = redRainConfig.map(el => {
return {
...el,
start: new Date(today + " " + el.startTime).getTime(),
end: new Date(today + " " + el.endTime).getTime(),
}
})
// 按照开始时间排序
timeArr.sort((a, b) => {
return a.start - b.start;
})
const el = timeArr.find(el => {
return now >= el.start && now <= el.end;
})
if (el && !el.joinStatus) {
return 0;
} else {
const next = timeArr.find(el => {
return now < el.start;
});
if (!next) {
return 0
} else {
return next.start - now
}
}
}
*/
render() {
const { curTab, rankingTab, rankOptions, rankInfos, myRank } = this.state;
const { virtualAssets, recommendProductConfig, giftPop, bannerInfo, lcGradeIcon } = store.indexData
......@@ -192,55 +145,9 @@ class HomePage extends React.Component<any, any> {
return (
<div className="com_Container" ref={(el) => this.root = store.homeRoot = el}>
<div className="homePage">
<div className="homePage md4">
<span className="bg"></span>
{/* {productEnd && <div className="prize_banner">
<span className="prize_btn" onClick={this.prizeHandle}></span>
</div>} */}
{/* 模拟资产 */}
{/* <div className="virtual_assets short_height">
{
endPoint > currentTime
? <Countdown
leftT={endPoint - currentTime}
renderText={data => {
const { day, hour, minute, second } = data
return <div className="time_box">
<span className="time_item">{day}</span>天
<span className="time_item">{hour}</span>时
<span className="time_item">{minute}</span>分
<span className="time_item">{second}</span>秒后失效
</div>
}}
countdownOver={() => store.updateIndex()}
/>
: <div className="time_box_over">理财体验金已失效</div>
}
<span className="yesterday_label">累计收益(元)</span>
<span className="yesterday_amount">{this.settleMoney(virtualAssets?.totalIncome || 0)}</span>
<div className="record_btn" onClick={this.recordHadnle}>
</div>
<div className="other_assets">
<div className="other_assets1">
<span className="other_assets_label">总资产</span>
<span className="other_assets_value">{this.settleMoney(virtualAssets?.totalMoney || 0)}</span>
</div>
<div className="other_assets2">
<span className="other_assets_label">可用资金</span>
<span className="other_assets_value">{this.settleMoney(virtualAssets?.availableFunds || 0)}</span>
</div>
<div className="other_assets3">
<span className="other_assets_label">昨日收益</span>
<span className="other_assets_value">{this.settleMoney(virtualAssets?.preDayIncome || 0)}</span>
</div>
</div>
<div className="canuse_popover">
<span className="canuse_popover_bg"></span>
<span className="canuse_popover_text"></span>
</div>
</div> */}
{/* 理财排行榜 */}
<div className={`ranking_list ${this.state.isExpand ? 'expandSty1' : ''}`}>
<div className="ranking_list_title">
......@@ -438,11 +345,11 @@ class HomePage extends React.Component<any, any> {
{!curTabProductList?.length && curTab == 2 && <div className="empty">暂无持仓产品哦</div>}
</div>
<Button className="rule_btn" onClick={this.ruleHandle} />
<Button className="prize_btn" onClick={this.reallyPrizeHandle} />
<Button className="rule_btn md5" onClick={this.ruleHandle} />
<Button className="prize_btn md6" onClick={this.reallyPrizeHandle} />
{/* 其他icon */}
{giftPop?.show && <Button className="new-user-gift-icon" onClick={this.newUserFun}></Button>}
{lcGradeIcon &&<Button className="finance-achievement-icon" onClick={this.prizeHandle}></Button>}
{giftPop?.show && <Button className="new-user-gift-icon md7" onClick={this.newUserFun}></Button>}
{lcGradeIcon &&<Button className="finance-achievement-icon md8" onClick={this.prizeHandle}></Button>}
</div>
</div>
);
......
......@@ -98,7 +98,7 @@ class Myqradespage extends React.Component {
<span className="jiangPinMingCheng">{this.state.info.prizeInfo?.prizeName}</span>
{
this.state.info.drawStatus == 0 && (
<span className="btn1" onClick={() => this.clickClaim()}></span>
<span className="btn1 md13" onClick={() => this.clickClaim()}></span>
)
}
{
......
......@@ -26,7 +26,7 @@ class BlackPop extends React.Component {
return (
<div className="blackPop modal_center">
<span className="bg"></span>
<Button className="know_btn" onClick={this.handleClose} />
<Button className="know_btn md1" onClick={this.handleClose} />
{/* <Button className="close" onClick={this.handleClose} /> */}
</div>
);
......
......@@ -27,7 +27,7 @@ class Endpop extends React.Component {
<span className="bg"></span>
<span className="titlebg"></span>
<span className="btnbg"></span>
<span className="liJiChaKan" onClick = { ()=> this.viewClick()} >立即查看</span>
<span className="liJiChaKan md12" onClick = { ()=> this.viewClick()} >立即查看</span>
<span className="kuaiQuChaKanLiCaiChengJiCanYuChouJiangBa">快去查看理财成绩,参与抽奖吧!</span>
<span className="close" onClick = { ()=> this.closeClick()}></span>
</div>
......
'use strict';
import React from 'react';
import { observer } from 'mobx-react';
import './firstPop.less';
import { ModalCtrl } from '@/core/ctrls/ModalCtrl';
import { Button, Toast } from '@grace/ui';
import { _asyncThrottle, formatThousand } from '@/utils/utils';
/* 电话号码验证规则 **/
export const REG_TEL = /^1[0-9]{10}$/;
@observer
class FirstPop extends React.Component {
constructor(props) {
super(props);
this.state = {
privacyChecked: false
}
}
// 确认提交
handleSubmit = _asyncThrottle(() => {
const { notifyText } = this.props || {};
if (!!notifyText && !this.state.privacyChecked) { // 未勾选隐私协议
// Toast.show(`请先勾选${notifyText}`)
Toast.show(`请先勾选模拟投资提示`)
return false
}
ModalCtrl.closeModal()
})
close = () => {
ModalCtrl.closeModal()
}
render() {
const { privacyChecked } = this.state;
const { experienceNum, notifyText } = this.props || {};
return (<>
<div className="firstPop modal_center">
<span className="bg"></span>
<span className="title">理财体验金</span>
<div className="amount">{formatThousand(experienceNum)}<span className="unit"></span></div>
{!!notifyText && <div className="check_box">
<div className={`check_icon ${privacyChecked ? 'checked' : ''}`} onClick={() => this.setState({ privacyChecked: !this.state.privacyChecked })}></div>
<div className="check_text" dangerouslySetInnerHTML={{ __html: notifyText }}></div>
</div>}
<Button className="happy_btn" onClick={this.handleSubmit}></Button>
<Button className="close" onClick={this.close}></Button>
</div>
</>);
}
}
export default FirstPop;
@import "../../res.less";
.firstPop {
width: 750px;
height: 1624px;
left: 0;
top: 0;
position: absolute;
.bg {
left: 82px;
top: 320px;
width: 585px;
height: 861px;
position: absolute;
.sparkBg("firstPop/bg.png");
background-size: 585px 611px;
background-color: #ffffff;
border-radius: 36px;
}
.title {
width: 585px;
position: absolute;
left: 82px;
top: 460px;
font-size: 36px;
color: rgba(1, 1, 1, 0.6);
text-align: center;
}
.amount {
width: 585px;
position: absolute;
left: 82px;
top: 520px;
font-size: 90px;
color: rgb(211, 26, 25);
font-weight: bold;
text-align: center;
line-height: 90px;
.unit {
font-size: 40px;
}
}
.happy_btn {
left: 120px;
top: 1010px;
width: 510px;
height: 138px;
position: absolute;
.sparkBg("firstPop/happy_btn.png");
}
.check_box {
position: absolute;
left: 159px;
top: 640px;
line-height: 35px;
font-size: 24px;
color: rgb(155, 155, 155);
margin-bottom: 28px;
font-weight: bold;
display: flex;
align-items: start;
.check_icon {
flex-shrink: 0;
position: relative;
width: 34px;
height: 34px;
.sparkBg("firstPop/check_bg.png");
margin-right: 14px;
&.checked::after {
content: "";
position: absolute;
left: 4px;
top: 3px;
width: 33px;
height: 24px;
.sparkBg("firstPop/checked.png");
}
}
.check_text {
width: 400px;
height: 380px;
line-height: 30px;
overflow-y: auto;
font-weight: normal;
font-size: 22px;
}
}
.close {
left: 346px;
top: 1240px;
width: 58px;
height: 58px;
position: absolute;
.sparkBg("common/close.png");
}
}
......@@ -38,7 +38,7 @@ class SetupPop extends React.Component {
return (
<div className="setupPop modal_center">
<span className="bg"></span>
<Button className="know_btn" onClick={this.handleSetup} />
<Button className="know_btn md2" onClick={this.handleSetup} />
{/* <Button className="close" onClick={this.handleClose} /> */}
</div>
);
......
......@@ -89,7 +89,7 @@ class SetupSuccessPop extends React.Component {
didStop={this.onStop}
/>
</div>
<Button className="know_btn" onClick={this.drawHandle}/>
<Button className="know_btn md3" onClick={this.drawHandle}/>
<Button className="close" onClick={this.handleClose} />
</div>
);
......
......@@ -117,7 +117,7 @@ class SignCom extends React.Component {
))
}
</div>
{signInfo?.todaySign ? <div className="sign_btn sign_btn_yes"></div> : <Button className="sign_btn" onClick={this.signHandle}></Button>}
{signInfo?.todaySign ? <div className="sign_btn sign_btn_yes"></div> : <Button className="sign_btn md9" onClick={this.signHandle}></Button>}
</div>
</div>
);
......
......@@ -25,7 +25,7 @@ class SignSuccessPop extends React.Component {
<span className="bg"></span>
<div className='prize_title'>恭喜获得{prizeInfo?.optionName}</div>
<div className='prize_name'>{prizeInfo?.optionName}</div>
<Button className="know_btn" onClick={this.handleClose} />
<Button className="know_btn md11" onClick={this.handleClose} />
<Button className="close" onClick={this.handleClose} />
</div>
</div>
......
......@@ -29,7 +29,7 @@ class SignTaskPop extends React.Component {
<div className='center-box'>
<span className="bg"></span>
<div className='prize_remark'>浏览“{otherPrizeInfo?.productName}”产品,再得{otherPrizeInfo?.prizeName}</div>
<Button className="know_btn" onClick={this.handleToLink} />
<Button className="know_btn md10" onClick={this.handleToLink} />
{/* <Button className="close" onClick={this.handleClose} /> */}
</div>
</div>
......
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