Commit 3f49b6b5 authored by wangzhujun's avatar wangzhujun

首页

parent 4306ec45
......@@ -2,7 +2,7 @@ import { AESDecrypt, AESEncrypt } from "./Crypto";
export default [
{
url: '/home/index.do',
url: '/tcs/index.do',
response: ({query}) => {
return {
"success": true,
......
......@@ -27,7 +27,8 @@ export default [
"title": '守护权益对对碰',
"desc": '2025年“3·15”金融消费者权益保护教育宣传活动',
"imgUrl": 'https://yun.duiba.com.cn/polaris/shareImg.721503d9417b09af6346ae018493aec558ca31af.png'
}
},
shopUrl:'https://'
}
}
},
......
import {generateAPI} from "./utils"
import { generateAPI } from "./utils"
const API = generateAPI({
/** 获取活动规则 */
......@@ -38,6 +38,26 @@ const API = generateAPI({
withToken: true,
},
guide: "tcs/guide.do",
rankInfo: 'tcs/rankIndex.do',
drawIndex: 'draw/index.do',
doDraw: {
uri: 'draw/draw.do',
withToken: true,
},
queryTasks: 'task_1/queryTasks.do',
sendPrize: {
uri: 'task_1/sendPrize.do',
withToken: true,
},
getInviteCode: {
uri: 'inviteAssist_1/getInviteCode.do',
withToken: true,
},
doAssist: {
uri: 'inviteAssist_1/doAssist.do',
withToken: true,
},
})
......
......@@ -62,6 +62,13 @@
top: 0px;
position: absolute;
.sparkBg("homePage/prizeimg.png");
img {
width: 80px;
height: 65px;
left: 0px;
top: 0px;
position: absolute;
}
}
}
.rankinfo {
......@@ -155,14 +162,15 @@
.sparkBg("homePage/mainimg.png");
}
.mainnum {
width: 182px;
width: 474px;
height: 24px;
left: 151px;
left: 0px;
top: 80px;
text-align: center;
position: absolute;
font-size: 25px;
line-height: 24px;
color: rgba(240, 35, 96, 1);
color: #fffffa;
}
}
.shopbtn {
......@@ -202,10 +210,11 @@
.sparkBg("homePage/drawNumbg.png");
}
.drawnumlab {
width: 20px;
width: 28px;
height: 16px;
left: 9px;
left: 0px;
top: 6px;
text-align: center;
position: absolute;
font-size: 21px;
line-height: 16px;
......
......@@ -2,7 +2,7 @@ import React from 'react';
import { observer } from 'mobx-react';
import './HomePage.less';
import { Button } from "@grace/ui";
import { _asyncThrottle } from "@/utils/utils.ts";
import { _asyncThrottle, miniGoUrl } from "@/utils/utils.ts";
import store from "@/store/store.ts";
import { SvgaPlayer } from "@grace/svgaplayer";
import homeSvga from "@/assets/svga/1输出首页氛围.svga";
......@@ -14,6 +14,7 @@ import RulePanel from "@/panels/RulePanel/RulePanel.tsx";
import { PageCtrl } from "@/core/ctrls/PageCtrl.tsx";
import GamePage from "@/pages/GamePage/GamePage.tsx";
import musicStore from '@/store/musicStore';
import Drawpop from '@/components/drawpop/drawpop';
@observer
class HomePage extends React.Component<any, any> {
......@@ -46,23 +47,30 @@ class HomePage extends React.Component<any, any> {
clickRule = () => {
ModalCtrl.showModal(RulePanel);
}
clickDraw = () => {
ModalCtrl.showModal(Drawpop, {});
}
clickShop = () => {
miniGoUrl(store.frontVariable.shopUrl)
}
render() {
const { remainTimes } = store.indexData
const { remainTimes, remainDrawTimes, rank } = store.indexData
return <div className="homepage" ref={(el) => this.root = el}>
<span className="bg"></span>
<div className="infobox">
<span className="infobg"></span>
<div className="prizeingo">
<span className="prizename">奖品名称文案占位</span>
<span className="prizename">{rank?.prizeName}</span>
<span className="prizerank">前50名可得</span>
<span className="prizeimg"></span>
<span className="prizeimg">
<img src={rank?.prizeImg}></img>
</span>
</div>
<div className="rankinfo">
<span className="rankarr"></span>
<span className="ranklab">我的排名</span>
<span className="ranknum">86名</span>
<span className="ranknum">{rank?.rank == -1 ? "未上榜" : rank?.rank + "名"}</span>
</div>
</div>
<span className="title"></span>
......@@ -71,18 +79,18 @@ class HomePage extends React.Component<any, any> {
{/* <span className="musicon"></span>
<span className="musicf"></span> */}
<MusicBtn className={`${musicStore.mute ? 'musicf' : 'musicon'}`}></MusicBtn>
<div className="mainbtn">
<Button className="mainbtn" onClick={this.startGame}>
<span className="mainimg"></span>
<span className="mainnum">剩余次数:3</span>
</div>
<span className="shopbtn"></span>
<div className="drawbtn">
<span className="mainnum">剩余次数:{remainTimes || 0}</span>
</Button>
<Button className="shopbtn" onClick={this.clickShop}></Button>
<Button className="drawbtn" onClick={this.clickDraw}>
<span className="drawimg"></span>
<div className="drawnum">
<span className="drawnumbg"></span>
<span className="drawnumlab">1</span>
<span className="drawnumlab">{remainDrawTimes || 0}</span>
</div>
</div>
</Button>
<div className="tasklist">
<div className="taskitem">
<span className="taskbg"></span>
......
......@@ -14,16 +14,17 @@ class Store {
privacyTxt: string,
prizeInfoAuthTxt: string,
shareInfo: IWxShareInfo,
shopUrl?: string,
} = {
privacyTxt: "",
prizeInfoAuthTxt: "",
shareInfo: {
title: "",
desc: "",
link: "",
imgUrl: "",
},
};
privacyTxt: "",
prizeInfoAuthTxt: "",
shareInfo: {
title: "",
desc: "",
link: "",
imgUrl: "",
},
};
ruleInfo = '';
......@@ -45,9 +46,22 @@ class Store {
indexData: {
remainTimes?: number,
uid?: string,
endTime?: number,
actEndTimestamp?: number,
timeStamp?: number,
startTime?: number,
actStartTimestamp?: number,
remainDrawTimes?: number,
newAssist?: number,
rankPopInfo?: {
sendPrize: boolean,
prizeName: string,
prizeImg: string,
rank: number
},
rank?: {
rank: number,
prizeName: string,
prizeImg: string,
}
} = {};
async updateIndex() {
......@@ -60,10 +74,10 @@ class Store {
}
judgeActTime(brakeStart = true, brakeEnd = true) {
if (brakeStart && this.indexData.timeStamp < this.indexData.startTime) {
Toast.show("活动未开始,敬请期待");
if (brakeStart && this.indexData.timeStamp < this.indexData.actStartTimestamp) {
Toast.show("活动未开始");
return false
} else if (brakeEnd && this.indexData.timeStamp > this.indexData.endTime) {
} else if (brakeEnd && this.indexData.timeStamp > this.indexData.actEndTimestamp) {
Toast.show("活动已结束");
return false
}
......
......@@ -418,3 +418,11 @@ export const getCustomShareId = () => {
export function prefixInteger(num: number, length: number) {
return (Array(length).join('0') + num).slice(-length);
}
/**
* @description: 小程序跳转
* @param {*}
* @return {*}
*/
export const miniGoUrl = (url) => {
wx.miniProgram.navigateTo({ url: url });
}
\ No newline at end of file
......@@ -13,6 +13,9 @@ import cssnano from 'cssnano';
// https://vitejs.dev/config/
export default defineConfig(({mode}): UserConfig => {
console.log(mode);
dotenv.config({path: [`./config/.env.global`, `./config/.env.${mode}`]});
const {
......
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