Commit fee7592e authored by 徐士卿's avatar 徐士卿

Merge branch 'master' of gitlab2.dui88.com:sparkprojects/rb_strongestbrain_250520

parents ab1eebf3 8af6d082
...@@ -14,8 +14,8 @@ export default [ ...@@ -14,8 +14,8 @@ export default [
"uid": "laboris Lorem sit officia aliqua", "uid": "laboris Lorem sit officia aliqua",
"currentTimestamp": 99790918.1204935, "currentTimestamp": 99790918.1204935,
"actEndTimestamp": 42625488.007563084, "actEndTimestamp": 42625488.007563084,
"rankPop": { "rankPop1": {
"prizeName": "名字是啥", "prizeName": null,
"prizeImg": "//yun.duiba.com.cn/polaris/045CCBB8-F6C7-43DB-9F81-45F52430A878.441c8f13daf61c48b85fe383e764d9089f1d4a66.png", "prizeImg": "//yun.duiba.com.cn/polaris/045CCBB8-F6C7-43DB-9F81-45F52430A878.441c8f13daf61c48b85fe383e764d9089f1d4a66.png",
"rank": 825844, "rank": 825844,
}, },
......
...@@ -4460,7 +4460,7 @@ packages: ...@@ -4460,7 +4460,7 @@ packages:
typescript: '>=4.8.4' typescript: '>=4.8.4'
tslib@2.8.1: tslib@2.8.1:
resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==, tarball: http://npm.dui88.com:80/tslib/-/tslib-2.8.1.tgz}
tweedle.js@2.1.0: tweedle.js@2.1.0:
resolution: {integrity: sha512-0ReQgVjepoZkE6t0upWNgCRbplHkQJQYk1LStXugwSR728GLFmGDRuaQJlxeC/iBlxud6+P1RdODjaO25vHAqw==} resolution: {integrity: sha512-0ReQgVjepoZkE6t0upWNgCRbplHkQJQYk1LStXugwSR728GLFmGDRuaQJlxeC/iBlxud6+P1RdODjaO25vHAqw==}
......
...@@ -32,13 +32,10 @@ export class Game extends Base { ...@@ -32,13 +32,10 @@ export class Game extends Base {
const qsBg = this.addChild(new Sprite(Assets.get("问题.png"))); const qsBg = this.addChild(new Sprite(Assets.get("问题.png")));
qsBg.position.set(49, 316); qsBg.position.set(49, 316);
this.level = this.addChild(new Level21()); // this.level = this.addChild(new Level21());
gameStore.start();
globalEvent.on(GameEvent.NextLevel, this.nextLevel, this); globalEvent.on(GameEvent.NextLevel, this.nextLevel, this);
// this.nextLevel(); this.nextLevel();
} }
......
...@@ -114,17 +114,17 @@ class GamePage extends React.Component<any, any> { ...@@ -114,17 +114,17 @@ class GamePage extends React.Component<any, any> {
const {} = store.indexData; const {} = store.indexData;
const { levelIndex, levelIdxArr } = gameStore.gameInfo; const { levelIndex, levelIdxArr } = gameStore.gameInfo;
const titleIdx = levelIdxArr[levelIndex] + 1; const titleSrc = new URL(
`../../assets/GamePage/title/title${(levelIndex + 1) || 1}.png?x-oss-process=image/format,webp`,
import.meta.url
).href;
return <div className={styles.root} ref={(el) => this.gameDiv = el}> return <div className={styles.root} ref={(el) => this.gameDiv = el}>
<canvas className={styles.gameCanvas} ref={(el) => this.gameCanvas = el}/> <canvas className={styles.gameCanvas} ref={(el) => this.gameCanvas = el}/>
<div className={styles.cd}>180s</div> <div className={styles.cd}>180s</div>
<img <img src={titleSrc} className={styles.title}/>
src={new URL(`../../assets/GamePage/title/title${levelIndex+1}.png?x-oss-process=image/format,webp`, import.meta.url).href}
className={styles.title}
/>
<Button className={styles.tipBtn} onClick={this.clickTip}/> <Button className={styles.tipBtn} onClick={this.clickTip}/>
<Button className={styles.backBtn} onClick={this.clickBack}/> <Button className={styles.backBtn} onClick={this.clickBack}/>
</div>; </div>;
......
...@@ -16,6 +16,8 @@ import MyPrize from '../MyPrize/MyPrize.js'; ...@@ -16,6 +16,8 @@ import MyPrize from '../MyPrize/MyPrize.js';
import shareStore from '@/store/share.js'; import shareStore from '@/store/share.js';
import { LOG_KEY, MatterShareOpt, MatterViewDuration, MatterViewOpt, pageView, sensorLog } from "@/utils/sensors.js"; import { LOG_KEY, MatterShareOpt, MatterViewDuration, MatterViewOpt, pageView, sensorLog } from "@/utils/sensors.js";
import { CHANNEL_PARAMS, extranceName } from '@/utils/constants.js'; import { CHANNEL_PARAMS, extranceName } from '@/utils/constants.js';
import gameStore from "@/store/gameStore.ts";
import GamePage from "@/pages/GamePage/GamePage.tsx";
import CodePop from "../../components/CodePop/CodePop.jsx" import CodePop from "../../components/CodePop/CodePop.jsx"
import NoPrizeCard from "../../components/NoPrizeCard/NoPrizeCard.jsx" import NoPrizeCard from "../../components/NoPrizeCard/NoPrizeCard.jsx"
...@@ -29,9 +31,10 @@ class Homepage extends React.Component { ...@@ -29,9 +31,10 @@ class Homepage extends React.Component {
} }
async componentDidMount() { async componentDidMount() {
await store.updateIndex() await store.updateIndex();
await shareStore.doAssist(); await shareStore.doAssist();
this.initSensor(); this.initSensor();
} }
handleButtonClick = _asyncThrottle(async (number) => { handleButtonClick = _asyncThrottle(async (number) => {
...@@ -51,7 +54,7 @@ class Homepage extends React.Component { ...@@ -51,7 +54,7 @@ class Homepage extends React.Component {
page_name: "活动首页", page_name: "活动首页",
button_name: "我的排名按钮", button_name: "我的排名按钮",
}); });
PageCtrl.changePage(RankPage); PageCtrl.changePage(RankPage);
break; break;
// 1 抽奖 // 1 抽奖
...@@ -80,7 +83,12 @@ class Homepage extends React.Component { ...@@ -80,7 +83,12 @@ class Homepage extends React.Component {
page_name: "活动首页", page_name: "活动首页",
button_name: "开始答题按钮", button_name: "开始答题按钮",
}); });
const suc = await gameStore.start();
if (suc) {
PageCtrl.changePage(GamePage);
}
break; break;
// 4 我的奖品 // 4 我的奖品
...@@ -211,4 +219,4 @@ class Homepage extends React.Component { ...@@ -211,4 +219,4 @@ class Homepage extends React.Component {
); );
} }
} }
export default Homepage; export default Homepage;
\ No newline at end of file
@import "../../res.less";
.rankPrizePop {
width: 750px;
height: 100%;
left: 0px;
top: 0px;
position: absolute;
overflow-y: auto;
overflow-x: hidden;
.bg {
width: 750px;
height: 4882px;
left: 0px;
top: 0px;
position: absolute;
// .sparkBg("rulePage/bg.png");
}
.back {
left: 20px;
top: 60px;
width: 28px;
height: 43px;
position: absolute;
.webpBg("MyPrize/返回.png");
}
}
\ No newline at end of file
import React from 'react';
import { observer } from 'mobx-react';
import './RankPrizePop.less';
import API from "@/api";
import { PageCtrl } from "@/core/ctrls/PageCtrl.tsx";
import store from "@/store/store.ts";
import HomePage from '../HomePage/HomePage';
@observer
class RankPrizePop extends React.Component<any, any> {
clickBack = () => {
PageCtrl.changePage(HomePage);
}
render() {
const { ruleImg } = store.frontVariable;
return <div className="rankPrizePop">
<img className="bg"
src={ruleImg}
/>
<span className="back" onClick={this.clickBack}></span>
</div>;
}
}
export default RankPrizePop;
\ No newline at end of file
@import "../../res.less";
.rankNoPrizePop {
width: 750px;
height: 100%;
left: 0px;
top: 0px;
position: absolute;
overflow-y: auto;
overflow-x: hidden;
.bg {
width: 593px;
height: 475px;
left: 105px;
top: 390px;
position: absolute;
.sparkBg("ranknoprizepop/bg.png");
}
.btn{
width:263px;
height: 92px;
position: absolute;
top:670px;
left:230px;
.sparkBg("ranknoprizepop/okbtn.png");
}
.text{
width:400px;
position: absolute;
top:600px;
font-size: 30px;
color: #99391b;
text-align: center;
left:160px;
.lineClamp1();
}
.back {
left: 320px;
top: 930px;
width: 65px;
height: 65px;
position: absolute;
.webpBg("ranknoprizepop/close.png");
}
}
\ No newline at end of file
import React from 'react';
import { observer } from 'mobx-react';
import './RankNoPrizePop.less';
import API from "@/api";
import { PageCtrl } from "@/core/ctrls/PageCtrl.tsx";
import store from "@/store/store.ts";
import HomePage from '../../pages/HomePage/HomePage.js';
import { ModalCtrl } from '@/core/ctrls/ModalCtrl';
import { LOG_KEY, MatterShareOpt, MatterViewOpt, pageView, sensorLog,MatterViewDuration } from '../../utils/sensors.js';
@observer
class RankNoPrizePop extends React.Component<any, any> {
componentDidMount(): void {
pageView("b14290", {
page_name: "排行榜未中奖弹窗",
});
sensorLog(LOG_KEY.exposure, "b14290", "d14291", {
page_name: "排行榜未中奖弹窗",
button_name: "我知道了按钮",
});
}
clickBack = () => {
ModalCtrl.closeModal();
}
clickBack2 = () => {
sensorLog(LOG_KEY.click, "b14290", "d14291", {
page_name: "排行榜未中奖弹窗",
button_name: "我知道了按钮",
});
ModalCtrl.closeModal();
}
render() {
const { prize } = this.props;
return <div className="rankNoPrizePop">
<div className="bg"></div>
<div className="text">最终排名为{prize?.rank == -1 ? '3000+' : prize?.rank}</div>
<div className="btn" onClick={this.clickBack2}></div>
<span className="back" onClick={this.clickBack}></span>
</div>;
}
}
export default RankNoPrizePop;
\ No newline at end of file
@import "../../res.less";
.rankPrizePop {
width: 750px;
height: 100%;
left: 0px;
top: 0px;
position: absolute;
overflow-y: auto;
overflow-x: hidden;
.bg {
width: 646px;
height: 852px;
left: 35px;
top: 260px;
position: absolute;
.sparkBg("ranknoprizepop/bg2.png");
}
.light {
width: 750px;
height: 1006px;
left: 0px;
top: 260px;
position: absolute;
.sparkBg("ranknoprizepop/light.png");
}
.prizeImg{
width:217px;
height: 217px;
position: absolute;
background-color: #ffd271;
border-radius: 20px;
top:540px;
left:255px;
img{
width: 100%;
height: 100%;
border-radius: 20px;
}
}
.prizename{
width:400px;
position: absolute;
top:780px;
font-size: 30px;
color: #99391b;
text-align: center;
left:160px;
.lineClamp1();
}
.btn{
width:263px;
height: 92px;
position: absolute;
top:850px;
left:230px;
.sparkBg("ranknoprizepop/kaixinshouxia.png");
}
.back {
left: 320px;
top: 1150px;
width: 65px;
height: 65px;
position: absolute;
.webpBg("ranknoprizepop/close.png");
}
}
\ No newline at end of file
import React from 'react';
import { observer } from 'mobx-react';
import './RankPrizePop.less';
import API from "@/api";
import { PageCtrl } from "@/core/ctrls/PageCtrl.tsx";
import store from "@/store/store.ts";
import HomePage from '../../pages/HomePage/HomePage';
import { ModalCtrl } from '@/core/ctrls/ModalCtrl';
import { LOG_KEY, MatterShareOpt, MatterViewOpt, pageView, sensorLog,MatterViewDuration } from '../../utils/sensors.js';
@observer
class RankPrizePop extends React.Component<any, any> {
componentDidMount(): void {
pageView("b14288", {
page_name: "排行榜中奖弹窗",
});
sensorLog(LOG_KEY.exposure, "b14288", "d14289", {
page_name: "排行榜中奖弹窗",
button_name: "开心收下按钮",
});
}
clickBack = () => {
ModalCtrl.closeModal();
}
clickBack2 = () => {
sensorLog(LOG_KEY.click, "b14288", "d14289", {
page_name: "排行榜中奖弹窗",
button_name: "开心收下按钮",
});
ModalCtrl.closeModal();
}
render() {
const { prize } = this.props;
return <div className="rankPrizePop">
<div className="light"></div>
<div className="bg"></div>
<div className="prizeImg">
<img src={prize?.prizeImg} alt="" />
</div>
<div className="prizename">{prize?.prizeName}</div>
<div className="btn" onClick={this.clickBack2}></div>
<span className="back" onClick={this.clickBack}></span>
</div>;
}
}
export default RankPrizePop;
\ No newline at end of file
...@@ -7,6 +7,9 @@ import { _asyncThrottle, _debounce, getUrlParam } from '@/utils/utils'; ...@@ -7,6 +7,9 @@ import { _asyncThrottle, _debounce, getUrlParam } from '@/utils/utils';
// import { IOverflowBubbleInfo } from "@/pages/HomePage/Top/Components/OverflowBubble.ts"; // import { IOverflowBubbleInfo } from "@/pages/HomePage/Top/Components/OverflowBubble.ts";
import { getDomain } from '@spark/dbdomain'; import { getDomain } from '@spark/dbdomain';
import { showShareGuide } from '@spark/share'; import { showShareGuide } from '@spark/share';
import { ModalCtrl } from '@/core/ctrls/ModalCtrl';
import RankPrizePop from '@/panels/RankPrizePop/RankPrizePop';
import RankNoPrizePop from '@/panels/RankNoPrizePop/RankNoPrizePop';
class Store { class Store {
...@@ -110,6 +113,18 @@ class Store { ...@@ -110,6 +113,18 @@ class Store {
API.visit() API.visit()
this.firstIn = false this.firstIn = false
} }
if(data?.rankPop){
if(data?.rankPop?.prizeName){
ModalCtrl.showModal(RankPrizePop,{
prize:data?.rankPop
})
}else{
ModalCtrl.showModal(RankNoPrizePop,{
prize:data?.rankPop
})
}
}
} }
/** /**
......
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