Commit de4aca11 authored by haiyoucuv's avatar haiyoucuv

init

parent 70aebb7a
<!doctype html> <!doctype html>
<html lang="en"> <html lang="en">
<head> <head>
<meta charset="UTF-8" /> <meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="theme-color" content="#000000"> <meta name="theme-color" content="#000000">
<link rel="dns-prefetch" href="//yun.duiba.com.cn" /> <link rel="dns-prefetch" href="//yun.duiba.com.cn" />
<link rel="preconnect" href="//embedlog.duiba.com.cn"> <link rel="preconnect" href="//embedlog.duiba.com.cn">
<title>天天领积分</title> <title>天天领积分</title>
<script type="text/javascript"> <script type="text/javascript">
if (localStorage && localStorage.isWebp) { if (localStorage && localStorage.isWebp) {
document document
.getElementsByTagName('html')[0] .getElementsByTagName('html')[0]
.setAttribute('duiba-webp', 'true'); .setAttribute('duiba-webp', 'true');
} }
</script> </script>
<script src="//yun.duiba.com.cn/js-libs/rem/1.1.3/rem.min.js"></script> <script src="//yun.duiba.com.cn/js-libs/rem/1.1.3/rem.min.js"></script>
<script src="https://res.wx.qq.com/open/js/jweixin-1.6.0.js"></script> <script src="https://res.wx.qq.com/open/js/jweixin-1.6.0.js"></script>
<script src="//res.wx.qq.com/open/js/jweixin-1.6.0.js"></script> <script src="//res.wx.qq.com/open/js/jweixin-1.6.0.js"></script>
<script> <script>
var CFG = CFG || {}; var CFG = CFG || {};
CFG.projectId = location.pathname.split('/')[2] || '1'; CFG.projectId = location.pathname.split('/')[2] || '1';
function getUrlParam(name) { function getUrlParam(name) {
var search = window.location.search; var search = window.location.search;
var matched = search var matched = search
.slice(1) .slice(1)
.match(new RegExp('(^|&)' + name + '=([^&]*)(&|$)', 'i')); .match(new RegExp('(^|&)' + name + '=([^&]*)(&|$)', 'i'));
return search.length ? matched && matched[2] : null; return search.length ? matched && matched[2] : null;
} }
CFG.appID = '${APPID}'; CFG.appID = '${APPID}';
// 新小程序会传version=hg 旧小程序不会传 // 新小程序会传version=hg 旧小程序不会传
CFG.version = getUrlParam('version') || sessionStorage.getItem('version'); CFG.version = getUrlParam('version') || sessionStorage.getItem('version');
CFG.version && sessionStorage.setItem("version", CFG.version); CFG.version && sessionStorage.setItem("version", CFG.version);
CFG.isNewMiniVersion = CFG.version == 'hg'; CFG.isNewMiniVersion = CFG.version == 'hg';
CFG.subUrl = (CFG.isNewMiniVersion ? `/packages/activityCenter/subscibe` : `/pagesNews/subscribeMiddlePage/subscribeNews`) + CFG.subUrl = (CFG.isNewMiniVersion ? `/packages/activityCenter/subscibe` : `/pagesNews/subscribeMiddlePage/subscribeNews`) +
"?source=duiba&subId=1922853657613651969&activeNo=" + CFG.projectId + "&activityUrl=" + encodeURI(location.href) "?source=duiba&subId=1922853657613651969&activeNo=" + CFG.projectId + "&activityUrl=" + encodeURI(location.href)
CFG.index = '/projectx/' + CFG.projectId + '/index.html?appID=' + CFG.appID; CFG.index = '/projectx/' + CFG.projectId + '/index.html?appID=' + CFG.appID;
// 免登中间页id // 免登中间页id
CFG.loginMidId = "Did1NjAwMDc"; // 线上正式 CFG.loginMidId = "Did1NjAwMDc"; // 线上正式
if (location.href.indexOf("duibatest") > -1) { if (location.href.indexOf("duibatest") > -1) {
CFG.loginMidId = "Did1MTM2NTU"; // 测试 CFG.loginMidId = "Did1MTM2NTU"; // 测试
} else if (CFG.projectId == 'p555448e6') { // TODO 线上测试id } else if (CFG.projectId == 'p555448e6') { // TODO 线上测试id
CFG.loginMidId = "Did1NTk5OTk"; // 线上测试 CFG.loginMidId = "Did1NTk5OTk"; // 线上测试
} }
// 免登中间页 // 免登中间页
CFG.loginMidUrl = "/customShare/share?id=" + CFG.loginMidId + "&source=duiba&projectId=" + CFG.projectId + "&redirectUrl="; CFG.loginMidUrl = "/customShare/share?id=" + CFG.loginMidId + "&source=duiba&projectId=" + CFG.projectId + "&redirectUrl=";
if (!getUrlParam("appID")) { if (!getUrlParam("appID")) {
// alert("【警告】检测到活动url中没有appID参数\n缺少该参数会导致埋点、分享、app信息获取错误。") // alert("【警告】检测到活动url中没有appID参数\n缺少该参数会导致埋点、分享、app信息获取错误。")
} }
</script> </script>
<script type="module" crossorigin src="https://yun.duiba.com.cn/db_games/spark/v3/1747707139818/assets/index-DDlnoCrt.js"></script> <script type="module" crossorigin src="https://yun.duiba.com.cn/db_games/spark/v3/1747708184873/assets/index-DmuXnlMZ.js"></script>
<link rel="modulepreload" crossorigin href="https://yun.duiba.com.cn/db_games/spark/v3/1747707139818/assets/vendor-DlvOOccp.js"> <link rel="modulepreload" crossorigin href="https://yun.duiba.com.cn/db_games/spark/v3/1747708184873/assets/vendor-joUOD3q4.js">
<link rel="stylesheet" crossorigin href="https://yun.duiba.com.cn/db_games/spark/v3/1747707139818/assets/vendor-BQh5NVNk.css"> <link rel="stylesheet" crossorigin href="https://yun.duiba.com.cn/db_games/spark/v3/1747708184873/assets/vendor-BQh5NVNk.css">
<link rel="stylesheet" crossorigin href="https://yun.duiba.com.cn/db_games/spark/v3/1747707139818/assets/index-C4ncAaIM.css"> <link rel="stylesheet" crossorigin href="https://yun.duiba.com.cn/db_games/spark/v3/1747708184873/assets/index-E7XHChdj.css">
<script type="module">import.meta.url;import("_").catch(()=>1);(async function*(){})().next();if(location.protocol!="file:"){window.__vite_is_modern_browser=true}</script> <script type="module">import.meta.url;import("_").catch(()=>1);(async function*(){})().next();if(location.protocol!="file:"){window.__vite_is_modern_browser=true}</script>
<script type="module">!function(){if(window.__vite_is_modern_browser)return;console.warn("vite: loading legacy chunks, syntax error above and the same error below should be ignored");var e=document.getElementById("vite-legacy-polyfill"),n=document.createElement("script");n.src=e.src,n.onload=function(){System.import(document.getElementById('vite-legacy-entry').getAttribute('data-src'))},document.body.appendChild(n)}();</script> <script type="module">!function(){if(window.__vite_is_modern_browser)return;console.warn("vite: loading legacy chunks, syntax error above and the same error below should be ignored");var e=document.getElementById("vite-legacy-polyfill"),n=document.createElement("script");n.src=e.src,n.onload=function(){System.import(document.getElementById('vite-legacy-entry').getAttribute('data-src'))},document.body.appendChild(n)}();</script>
</head> </head>
<body> <body>
<div id="root"></div> <div id="root"></div>
<script nomodule>!function(){var e=document,t=e.createElement("script");if(!("noModule"in t)&&"onbeforeload"in t){var n=!1;e.addEventListener("beforeload",(function(e){if(e.target===t)n=!0;else if(!e.target.hasAttribute("nomodule")||!n)return;e.preventDefault()}),!0),t.type="module",t.src=".",e.head.appendChild(t),t.remove()}}();</script> <script nomodule>!function(){var e=document,t=e.createElement("script");if(!("noModule"in t)&&"onbeforeload"in t){var n=!1;e.addEventListener("beforeload",(function(e){if(e.target===t)n=!0;else if(!e.target.hasAttribute("nomodule")||!n)return;e.preventDefault()}),!0),t.type="module",t.src=".",e.head.appendChild(t),t.remove()}}();</script>
<script nomodule crossorigin id="vite-legacy-polyfill" src="https://yun.duiba.com.cn/db_games/spark/v3/1747707139818/assets/polyfills-legacy-arANKBzQ.js"></script> <script nomodule crossorigin id="vite-legacy-polyfill" src="https://yun.duiba.com.cn/db_games/spark/v3/1747708184873/assets/polyfills-legacy-arANKBzQ.js"></script>
<script nomodule crossorigin id="vite-legacy-entry" data-src="https://yun.duiba.com.cn/db_games/spark/v3/1747707139818/assets/index-legacy-ujAL9jhq.js">System.import(document.getElementById('vite-legacy-entry').getAttribute('data-src'))</script> <script nomodule crossorigin id="vite-legacy-entry" data-src="https://yun.duiba.com.cn/db_games/spark/v3/1747708184873/assets/index-legacy-Z8WMcaC8.js">System.import(document.getElementById('vite-legacy-entry').getAttribute('data-src'))</script>
</body> </body>
</html> </html>
\ No newline at end of file
...@@ -23,6 +23,31 @@ const MDList: IAutoMdData[] = new Array(20).fill("").map((_, i) => { ...@@ -23,6 +23,31 @@ const MDList: IAutoMdData[] = new Array(20).fill("").map((_, i) => {
}; };
}); });
MDList.push({
ele: ".md10_0",
data: {
dpm: `${appId}.110.10.0`,
dcm,
dom,
domain,
appId,
},
once: true,
});
MDList.push({
ele: ".md10_1",
data: {
dpm: `${appId}.110.10.1`,
dcm,
dom,
domain,
appId,
},
once: true,
});
MDAuto({ MDAuto({
show: MDList, // 曝光 show: MDList, // 曝光
......
...@@ -72,7 +72,7 @@ class Sign extends React.Component<any, any> { ...@@ -72,7 +72,7 @@ class Sign extends React.Component<any, any> {
transform: `translateX(${signProgress * 0.99}rem)`, transform: `translateX(${signProgress * 0.99}rem)`,
}}/> }}/>
<Button className={classNames(styles.btn, { [styles.btnSigned]: todaySignFlag })} onClick={this.clickSign}/> <Button className={classNames(styles.btn, "md1", { [styles.btnSigned]: todaySignFlag })} onClick={this.clickSign}/>
</div>; </div>;
} }
} }
......
...@@ -6,6 +6,7 @@ import { _asyncThrottle, prefixInteger } from "@/utils/utils.ts"; ...@@ -6,6 +6,7 @@ import { _asyncThrottle, prefixInteger } from "@/utils/utils.ts";
import API from "@/api"; import API from "@/api";
import { GameEvent, globalEvent } from "@/pages/HomePage/Top/GameEvent.ts"; import { GameEvent, globalEvent } from "@/pages/HomePage/Top/GameEvent.ts";
import { BubbleMgr } from "@/pages/HomePage/Top/Components/BubbleMgr.ts"; import { BubbleMgr } from "@/pages/HomePage/Top/Components/BubbleMgr.ts";
import { handleLogClick, handleLogExposure } from "@/MD.ts";
export interface IBubbleInfo { export interface IBubbleInfo {
id: string; id: string;
...@@ -54,6 +55,7 @@ export class Bubble extends Container implements IBase { ...@@ -54,6 +55,7 @@ export class Bubble extends Container implements IBase {
} }
onPointerUp = _asyncThrottle(async () => { onPointerUp = _asyncThrottle(async () => {
handleLogClick(3);
const { x, y, parent } = this; const { x, y, parent } = this;
const { bubbleArr, bubbleMap } = parent as BubbleMgr; const { bubbleArr, bubbleMap } = parent as BubbleMgr;
......
...@@ -3,6 +3,7 @@ import { observer, reactor } from "@/pages/HomePage/Top/mobx/decorators.ts"; ...@@ -3,6 +3,7 @@ import { observer, reactor } from "@/pages/HomePage/Top/mobx/decorators.ts";
import store from "@/store/store.ts"; import store from "@/store/store.ts";
import { Bubble, IBubbleInfo } from "@/pages/HomePage/Top/Components/Bubble.ts"; import { Bubble, IBubbleInfo } from "@/pages/HomePage/Top/Components/Bubble.ts";
import { OverflowBubble } from "@/pages/HomePage/Top/Components/OverflowBubble.ts"; import { OverflowBubble } from "@/pages/HomePage/Top/Components/OverflowBubble.ts";
import { handleLogExposure } from "@/MD.ts";
const posArr = [ const posArr = [
{ x: 570, y: 250 }, { x: 570, y: 250 },
...@@ -49,6 +50,7 @@ export class BubbleMgr extends Base { ...@@ -49,6 +50,7 @@ export class BubbleMgr extends Base {
if (!bubble) { if (!bubble) {
bubble = this.addChild(new Bubble()); bubble = this.addChild(new Bubble());
handleLogExposure(3);
// 找到bubbleArr第一个空的位置 // 找到bubbleArr第一个空的位置
let emptyPos = -1; let emptyPos = -1;
......
...@@ -7,6 +7,7 @@ import { reactor, observer } from "@/pages/HomePage/Top/mobx/decorators.ts"; ...@@ -7,6 +7,7 @@ import { reactor, observer } from "@/pages/HomePage/Top/mobx/decorators.ts";
import { BubbleMgr } from "@/pages/HomePage/Top/Components/BubbleMgr.ts"; import { BubbleMgr } from "@/pages/HomePage/Top/Components/BubbleMgr.ts";
import API from "@/api"; import API from "@/api";
import { GameEvent, globalEvent } from "@/pages/HomePage/Top/GameEvent.ts"; import { GameEvent, globalEvent } from "@/pages/HomePage/Top/GameEvent.ts";
import { handleLogClick, handleLogExposure } from "@/MD.ts";
export interface IOverflowBubbleInfo { export interface IOverflowBubbleInfo {
id: string; id: string;
...@@ -64,6 +65,7 @@ export class OverflowBubble extends Container implements IBase { ...@@ -64,6 +65,7 @@ export class OverflowBubble extends Container implements IBase {
} }
onPointerUp = _asyncThrottle(async () => { onPointerUp = _asyncThrottle(async () => {
handleLogClick(2);
wx.miniProgram.switchTab({ url: "/pages/scan" }); wx.miniProgram.switchTab({ url: "/pages/scan" });
}); });
...@@ -91,6 +93,11 @@ export class OverflowBubble extends Container implements IBase { ...@@ -91,6 +93,11 @@ export class OverflowBubble extends Container implements IBase {
return; return;
} }
if (!this.visible) {
handleLogExposure(2);
}
this.visible = true;
this.id = id; this.id = id;
this.text.text = creditsNum; this.text.text = creditsNum;
......
...@@ -36,7 +36,7 @@ class NewcomerPanel extends React.Component<INewcomerPanelProps> { ...@@ -36,7 +36,7 @@ class NewcomerPanel extends React.Component<INewcomerPanelProps> {
<div className={styles.bg}/> <div className={styles.bg}/>
<div className={styles.tip}>恭喜获得{creditNum}积分</div> <div className={styles.tip}>恭喜获得{creditNum}积分</div>
<div className="com_banner"/> <div className="com_banner"/>
<Button className={styles.ok} onClick={this.clickGet}/> <Button className={classNames(styles.ok, "md20")} onClick={this.clickGet}/>
<Button className={styles.close} onClick={this.close}/> <Button className={styles.close} onClick={this.close}/>
</div>; </div>;
} }
......
...@@ -44,7 +44,7 @@ class ObtainPanel extends React.Component<IObtainPanelProps> { ...@@ -44,7 +44,7 @@ class ObtainPanel extends React.Component<IObtainPanelProps> {
<div className="com_banner"/> <div className="com_banner"/>
<Button className={styles.ok} onClick={this.clickGet}/> <Button className={classNames(styles.ok, isExp?"md9": "md13")} onClick={this.clickGet}/>
<Button className={styles.close} onClick={this.close}/> <Button className={styles.close} onClick={this.close}/>
</div>; </div>;
} }
......
...@@ -36,7 +36,7 @@ class ReturnAwardPanel extends React.Component<IReturnAwardPanelProps> { ...@@ -36,7 +36,7 @@ class ReturnAwardPanel extends React.Component<IReturnAwardPanelProps> {
<div className={styles.bg}/> <div className={styles.bg}/>
<div className={styles.tip}>恭喜获得{creditNum}积分</div> <div className={styles.tip}>恭喜获得{creditNum}积分</div>
<div className="com_banner"/> <div className="com_banner"/>
<Button className={styles.ok} onClick={this.clickGet}/> <Button className={classNames(styles.ok, "md14")} onClick={this.clickGet}/>
<Button className={styles.close} onClick={this.close}/> <Button className={styles.close} onClick={this.close}/>
</div>; </div>;
} }
......
...@@ -60,7 +60,7 @@ class SkyFullGoldPanel extends React.Component<ISkyFullGoldPanelProps> { ...@@ -60,7 +60,7 @@ class SkyFullGoldPanel extends React.Component<ISkyFullGoldPanelProps> {
<div className="com_banner"/> <div className="com_banner"/>
<Button className="btn" onClick={this.clickVideo}/> <Button className="btn md11" onClick={this.clickVideo}/>
<Button className="close" onClick={this.clickClose}/> <Button className="close" onClick={this.clickClose}/>
</div>; </div>;
} }
......
...@@ -71,10 +71,10 @@ class VideoPanel extends React.Component<IVideoPanelProps> { ...@@ -71,10 +71,10 @@ class VideoPanel extends React.Component<IVideoPanelProps> {
}; };
render() { render() {
const { url } = this.props; const { url, isExp } = this.props;
const { cd } = this.state; const { cd } = this.state;
return <div className={classNames(styles.VideoPanel, "modal_center")}> return <div className={classNames(styles.VideoPanel, "modal_center", isExp ? "md10_0" : "md10_1")}>
<video <video
ref={(el) => this.video = el} ref={(el) => this.video = el}
id="my-player" id="my-player"
......
...@@ -8,6 +8,7 @@ import { SvgaPlayer } from "@grace/svgaplayer"; ...@@ -8,6 +8,7 @@ import { SvgaPlayer } from "@grace/svgaplayer";
import bgEffectSvga from "@/assets/svga/2输出签到成功弹窗.svga"; import bgEffectSvga from "@/assets/svga/2输出签到成功弹窗.svga";
import VideoPanel from "@/panels/VideoPanel/VideoPanel.tsx"; import VideoPanel from "@/panels/VideoPanel/VideoPanel.tsx";
import classNames from "classnames";
export interface IWedExpPanelProps { export interface IWedExpPanelProps {
signCredits: number; signCredits: number;
...@@ -40,6 +41,8 @@ class WedExpPanel extends React.Component<IWedExpPanelProps> { ...@@ -40,6 +41,8 @@ class WedExpPanel extends React.Component<IWedExpPanelProps> {
const { signCredits, extraCredits, multipleValue } = this.props; const { signCredits, extraCredits, multipleValue } = this.props;
const isVip = !!extraCredits;
return <div className="WedExpPanel modal_center"> return <div className="WedExpPanel modal_center">
<SvgaPlayer className="bgEffect" src={bgEffectSvga}/> <SvgaPlayer className="bgEffect" src={bgEffectSvga}/>
<div className="bg"/> <div className="bg"/>
...@@ -49,7 +52,7 @@ class WedExpPanel extends React.Component<IWedExpPanelProps> { ...@@ -49,7 +52,7 @@ class WedExpPanel extends React.Component<IWedExpPanelProps> {
解锁周三限时奖励 解锁周三限时奖励
</div> </div>
{ {
!!extraCredits isVip
? <div className="vip"> ? <div className="vip">
<div className="img"/> <div className="img"/>
<div className="multuple">{multipleValue}x</div> <div className="multuple">{multipleValue}x</div>
...@@ -69,7 +72,7 @@ class WedExpPanel extends React.Component<IWedExpPanelProps> { ...@@ -69,7 +72,7 @@ class WedExpPanel extends React.Component<IWedExpPanelProps> {
<div className="com_banner"/> <div className="com_banner"/>
<Button className="btn" onClick={this.clickVideo}/> <Button className={classNames("btn", isVip ? "md8" : "md7")} onClick={this.clickVideo}/>
<Button className="close" onClick={this.clickClose}/> <Button className="close" onClick={this.clickClose}/>
</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