Commit 6baf441a authored by cc's avatar cc

update

parents f9b52c3b 0733d350
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
<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
......
{"proName":"未命名项目","proDesc":"","proPath":"D:\\Duiba\\口味王\\天天领积分\\kww_dayDayGetCredits_250512","createTime":1729847802806} {"proName":"未命名项目","proDesc":"","proPath":"/Users/duibagroup/Documents/RB——最强大脑/rb_strongestbrain_250520","createTime":1729847802806}
...@@ -18,6 +18,7 @@ import MyPrize from "@/pages/MyPrize/MyPrize.tsx"; ...@@ -18,6 +18,7 @@ import MyPrize from "@/pages/MyPrize/MyPrize.tsx";
import LoadingDemo from "@/pages/LoadingDemo/LoadingDemo.tsx"; import LoadingDemo from "@/pages/LoadingDemo/LoadingDemo.tsx";
import GamePage from "@/pages/GamePage/GamePage.tsx"; import GamePage from "@/pages/GamePage/GamePage.tsx";
import HomePage from './pages/HomePage/HomePage.tsx';
@observer @observer
...@@ -28,7 +29,7 @@ class App extends Component { ...@@ -28,7 +29,7 @@ class App extends Component {
const defaultPage = { const defaultPage = {
myPrize: MyPrize, // TODO 举例子 新宿台奖品页 myPrize: MyPrize, // TODO 举例子 新宿台奖品页
index: LoadingDemo, index: LoadingDemo,
}[skinId] || LoadingDemo; }[skinId] || HomePage;
PageCtrl.changePage(defaultPage); PageCtrl.changePage(defaultPage);
} }
......
This diff is collapsed.
@import "../../res.less"; @import "../../res.less";
.homepage { .homepage {
width: 750px; width: 750px;
height: 100%; height: 1624px;
left: 0; left: 0px;
top: 0; top: 0px;
position: absolute; position: absolute;
overflow-y: scroll; .bg {
overflow-x: hidden; width: 750px;
height: 1624px;
.homeRoot { left: 0px;
position: relative; top: 0px;
width: 100%; position: absolute;
padding-top: 961px; .sparkBg("homePage/bg.png");
padding-bottom: 120px; }
.webpBg("HomePage/bg.jpg"); .equipment {
background-size: 750px 977px; width: 615px;
background-repeat: no-repeat; height: 850px;
background-position: top center; left: 60px;
background-color: #fff2e4; top: 499px;
position: absolute;
.homeSvga{ .sparkBg("homePage/equipment.png");
}
.icon {
width: 270px;
height: 356px;
left: 400px;
top: 987px;
position: absolute;
.sparkBg("homePage/icon.png");
}
.book {
width: 180px;
height: 144px;
left: 60px;
top: 1192px;
position: absolute;
.sparkBg("homePage/book.png");
}
.brain {
width: 356px;
height: 313px;
left: 179px;
top: 573px;
position: absolute;
.sparkBg("homePage/brain.png");
}
.wenhao {
width: 81px;
height: 123px;
left: 326px;
top: 644px;
position: absolute;
.sparkBg("homePage/wenhao.png");
}
.title {
width: 703px;
height: 181px;
left: 29px;
top: 131px;
position: absolute;
.sparkBg("homePage/title.png");
}
.draw {
width: 153px;
height: 192px;
left: 5px;
top: 1344px;
position: absolute;
.sparkBg("homePage/draw.png");
}
.task {
width: 154px;
height: 217px;
left: 591px;
top: 1344px;
position: absolute;
.sparkBg("homePage/task.png");
}
.matter {
width: 422px;
height: 154px;
left: 168px;
top: 1356px;
position: absolute;
.m_bg {
width: 422px;
height: 154px;
left: 0px;
top: 0px;
position: absolute; position: absolute;
left: 53px; .sparkBg("homePage/m_bg.png");
top: 78px;
width: 644px;
height: 665px;
pointer-events: none;
} }
.answer {
.credits { width: 219px;
height: 53px;
left: 109px;
top: 32px;
position: absolute; position: absolute;
left: 37px; .sparkBg("homePage/answer.png");
top: 78px;
width: 232px;
height: 58px;
.webpBg("HomePage/积分背景.png");
color: rgb(255, 255, 255);
line-height: 1.7;
text-align: center;
font-size: 32px;
} }
.remain {
.cash { width: 125px;
height: 21px;
left: 161px;
top: 94px;
position: absolute; position: absolute;
left: 302px; font-size: 21px;
top: 78px; line-height: 21px;
width: 220px; color: rgba(170, 64, 0, 1);
height: 58px;
.webpBg("HomePage/红包背景.png");
color: rgb(255, 255, 255);
line-height: 1.7;
text-align: center;
font-size: 32px;
span {
font-size: 19px;
color: #fff;
}
} }
}
.rule { .rank {
width: 638px;
height: 160px;
left: 58px;
top: 320px;
position: absolute;
.r_bg {
width: 638px;
height: 160px;
left: 0px;
top: 0px;
position: absolute; position: absolute;
right: 0; .sparkBg("homePage/r_bg.png");
top: 78px;
width: 71px;
height: 40px;
transform-origin: center right !important;
.webpBg("HomePage/规则.png");
} }
.name {
.prize { width: 233px;
height: 29px;
left: 145px;
top: 67px;
position: absolute; position: absolute;
right: 0; font-size: 30px;
top: 136px; line-height: 29px;
width: 71px; color: rgba(30, 76, 169, 1);
height: 40px;
transform-origin: center right !important;
.webpBg("HomePage/奖品.png");
} }
.head {
width: 95px;
height: 96px;
left: 37px;
top: 34px;
position: absolute;
.sparkBg("homePage/head.png");
}
.myrank {
width: 104px;
height: 20px;
left: 477px;
top: 103px;
position: absolute;
.sparkBg("homePage/myRank.png");
}
.number {
width: 125px;
height: 52px;
left: 469px;
top: 39px;
position: absolute;
font-size: 68px;
line-height: 52px;
color: rgba(30, 76, 169, 1);
}
}
.prize {
width: 114px;
height: 53px;
left: 636px;
top: 510px;
position: absolute;
.sparkBg("homePage/prize.png");
}
.rule {
width: 113px;
height: 53px;
left: 0px;
top: 510px;
position: absolute;
.sparkBg("homePage/rule.png");
}
.visit {
width: 184px;
height: 232px;
left: 566px;
top: 616px;
position: absolute;
.sparkBg("homePage/visit.png");
}
.share {
width: 198px;
height: 232px;
left: 552px;
top: 817px;
position: absolute;
.sparkBg("homePage/share.png");
}
.logo {
width: 290px;
height: 28px;
left: 232px;
top: 85px;
position: absolute;
.sparkBg("homePage/logo.png");
} }
}
} \ No newline at end of file
'use strict';
import React from 'react'; import React from 'react';
import { observer } from 'mobx-react'; import { observer } from 'mobx-react';
import './HomePage.less'; import './homepage.less';
import { getUrlParam } from "@/utils/utils.ts";
import store from "@/store/store.ts";
import { Button } from "@grace/ui";
import MyPrize from '../MyPrize/MyPrize';
import Rule from '../RulePage/RulePage';
import Rank from '../RankPage/RankPage';
import { PageCtrl } from '@/core/ctrls/PageCtrl'; import { PageCtrl } from '@/core/ctrls/PageCtrl';
import RankPage from '../RankPage/RankPage';
import { SvgaPlayer } from "@grace/svgaplayer";
import lightSvga from "@/assets/svga/5光点飘散.svga";
@observer @observer
class HomePage extends React.Component<any, any> { class Homepage extends React.Component {
constructor(props) {
root: HTMLDivElement; super(props);
async componentDidMount () {
await store.doAssist();
store.updateIndex();
PageCtrl.changePage(Rank);
}
clickPrize = () => {
PageCtrl.changePage(MyPrize);
} }
componentDidMount(): void {
clickRule = () => {
PageCtrl.changePage(Rule);
} }
showRank = () => {
clickCredits = () => { PageCtrl.changePage(RankPage);
wx.miniProgram.navigateTo({ url: "/packages/user/points?source=duiba" });
} }
render() { render() {
const { creditsNum, guideFlag } = store.indexData return (
return <> <div className="homepage modal_center">
<div className="homepage" ref={(el) => this.root = el}> <span className="bg"></span>
<div className="homeRoot"> <span className="equipment"></span>
<SvgaPlayer className="homeSvga" src={lightSvga} /> <span className="icon"></span>
<span className="book"></span>
<Button className="credits" <span className="brain"></span>
onClick={this.clickCredits}>{creditsNum > 999999 ? "999999+" : creditsNum}</Button> <span className="wenhao"></span>
{/*<Button className="cash"><span>¥</span>32.88</Button>*/} <span className="title"></span>
<span className="draw"></span>
<Button className="rule" onClick={this.clickRule} /> <span className="task"></span>
<Button className="prize" onClick={this.clickPrize} /> <div className="matter">
<span className="m_bg"></span>
<span className="answer"></span>
<span className="remain">剩余次数:3</span>
</div> </div>
<div className="rank">
<span className="r_bg"></span>
<span className="name">用户uid:132802</span>
<span className="head"></span>
<span className="myrank"></span>
<span className="number">000</span>
</div>
<span className="prize"></span>
<span className="rule"></span>
<span className="visit"></span>
<span className="share"></span>
<span className="logo"></span>
</div> </div>
{/*{!guideFlag && <GuidePanel />}*/} );
</>;
} }
} }
export default Homepage;
export default HomePage; \ No newline at end of file
...@@ -27,15 +27,29 @@ class LoadingDemo extends React.Component { ...@@ -27,15 +27,29 @@ class LoadingDemo extends React.Component {
// eager: true, // eager: true,
// }); // });
const files = import.meta.glob([ // 安全加载资源,明确列出需要加载的文件
"../../assets/common/**/*", const assetFiles = [
"../../assets/HomePage/**/*", // Common assets
], { "../../assets/common/banner.png",
import: "default", "../../assets/common/close.png",
eager: true, "../../assets/common/music_close.png",
}); "../../assets/common/music_open.png",
"../../assets/common/返回.png",
// HomePage assets (排除有问题的?.png文件)
"../../assets/HomePage/Qg.png",
"../../assets/HomePage/answer.png",
"../../assets/HomePage/assist.png",
// 添加其他确需加载的HomePage资源
"../../assets/HomePage/bg.jpg",
"../../assets/HomePage/bg.png",
"../../assets/HomePage/book.png",
// 继续添加其他必要的资源路径...
];
const urls = Object.values(files) as string[]; const urls = await Promise.all(
assetFiles.map(path => import(path).then(m => m.default))
);
await preload(urls, (progress, loaded, total) => { await preload(urls, (progress, loaded, total) => {
const percentage = progress; const percentage = progress;
......
...@@ -3,6 +3,8 @@ import API from '../api/index'; ...@@ -3,6 +3,8 @@ import API from '../api/index';
import { Toast } from "@grace/ui"; import { Toast } from "@grace/ui";
import { initWx, IWxShareInfo } from "@/built-in/share/weixin/weixin.ts"; import { initWx, IWxShareInfo } from "@/built-in/share/weixin/weixin.ts";
import { _asyncThrottle, _debounce, getUrlParam } from '@/utils/utils'; import { _asyncThrottle, _debounce, getUrlParam } from '@/utils/utils';
// import { IBubbleInfo } from "@/pages/HomePage/Top/Components/Bubble.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';
...@@ -65,6 +67,10 @@ class Store { ...@@ -65,6 +67,10 @@ class Store {
boolSign: boolean, boolSign: boolean,
}[], }[],
// overflowBubble?: IOverflowBubbleInfo,
// bubbleRecords?: IBubbleInfo[],
returnAwardCreditsNum?: number, returnAwardCreditsNum?: number,
downGoldVo?: { downGoldVo?: {
...@@ -91,6 +97,9 @@ class Store { ...@@ -91,6 +97,9 @@ class Store {
return await this.updateIndex(); return await this.updateIndex();
}, 500); }, 500);
// 活动时间拦截
// 结束不拦截 brakeEnd为false
// 规则奖品始终可以点击 不用调方法 其余两个参数均传true即可 todo
judgeActTime(brakeStart = true, brakeEnd = true) { judgeActTime(brakeStart = true, brakeEnd = true) {
if (brakeStart && this.indexData.currentTime < this.indexData.actStartTime) { if (brakeStart && this.indexData.currentTime < this.indexData.actStartTime) {
Toast.show("活动未开始"); Toast.show("活动未开始");
......
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