Commit ec39b8b4 authored by cc's avatar cc

rank

parent d529b6b6
export default [ export default [
{ {
url:'/common/visit.do', url: '/zqdn/rankIndex.do',
method: 'get',
response: ({ query }) => {
return {
"code": "sint nisi ex",
"message": "mollit id Excepteur ullamco deserunt",
"success": true,
"data": {
"openTime": 79049724.44126037,
"rankOptions": [
{
"ranking": "1",
"image": "//yun.duiba.com.cn/aurora/assets/3f31b0ab96e23f91cfb020c55eb7633605c168f6.jpeg",
"name": "culpa velitculpa velit"
},
{
"ranking": "1-3",
"image": "//yun.duiba.com.cn/aurora/assets/3f31b0ab96e23f91cfb020c55eb7633605c168f6.jpeg",
"name": "culpa velit"
},
{
"ranking": "4-10",
"image": "//yun.duiba.com.cn/aurora/assets/3f31b0ab96e23f91cfb020c55eb7633605c168f6.jpeg",
"name": "culpa velit"
},
{
"ranking": "11",
"image": "//yun.duiba.com.cn/aurora/assets/3f31b0ab96e23f91cfb020c55eb7633605c168f6.jpeg",
"name": "culpa velit"
},
],
"myRank": {
"index": 100,
"userName": "sunt",
"score": 100,
"avatar": "culpa velit"
},
"rankInfos": [
{
"index": 1,
"userName": "ex",
"score": 100000,
"meFlag": true,
"avatar": "tempor ut ut nisi"
},
{
"index": 2,
"userName": "esse sunt nostrud",
"score": 80000,
"meFlag": false,
"avatar": "in sed aute aliquip"
},
{
"index": 3,
"userName": "in aliquip laborum",
"score": 50000,
"meFlag": false,
"avatar": "deserunt ullamco"
},
{
"index": 4,
"userName": "proident id aute",
"score": 40000,
"meFlag": true,
"avatar": "tempor ullamco"
}
]
}
}
}
},
{
url: '/common/visit.do',
method: 'get', method: 'get',
response: ({ query }) => { response: ({ query }) => {
return { return {
...@@ -8,13 +80,13 @@ export default [ ...@@ -8,13 +80,13 @@ export default [
code: "", code: "",
message: "", message: "",
data: { data: {
code:'111' code: '111'
}, },
} }
} }
}, },
{ {
url:'/game/queryBoundYk.do', url: '/game/queryBoundYk.do',
method: 'get', method: 'get',
response: ({ query }) => { response: ({ query }) => {
return { return {
...@@ -29,7 +101,7 @@ export default [ ...@@ -29,7 +101,7 @@ export default [
} }
}, },
{ {
url:'/home/savePrizeAddress.do', url: '/home/savePrizeAddress.do',
method: 'get', method: 'get',
response: ({ query }) => { response: ({ query }) => {
return { return {
...@@ -72,12 +144,12 @@ export default [ ...@@ -72,12 +144,12 @@ export default [
"bonus": false, "bonus": false,
"title": "a11奖品名称超级长的实物奖品-漫漫测试-不可删除-不可删除-奖品名称超级长", "title": "a11奖品名称超级长的实物奖品-漫漫测试-不可删除-不可删除-奖品名称超级长",
"type": 1, "type": 1,
"drawStatus":'2', "drawStatus": '2',
"orderTypeTitle": "星速台活动获得", "orderTypeTitle": "星速台活动获得",
"recordId": 500727400, "recordId": 500727400,
"new": false, "new": false,
"quantity": 1, "quantity": 1,
"recordInfo":false, "recordInfo": false,
"gmtCreate": "2024-06-18 00:10:38", "gmtCreate": "2024-06-18 00:10:38",
"url": "/aaw/projectx/takePrize?projectOrderNo=500727400", "url": "/aaw/projectx/takePrize?projectOrderNo=500727400",
"statusText": "<span>已中奖</span>", "statusText": "<span>已中奖</span>",
...@@ -88,7 +160,7 @@ export default [ ...@@ -88,7 +160,7 @@ export default [
"img": "//yun.dui88.com/images/202203/unet6gpw1c.jpeg", "img": "//yun.dui88.com/images/202203/unet6gpw1c.jpeg",
"itemType": "object", "itemType": "object",
"bonus": false, "bonus": false,
"drawStatus":'2', "drawStatus": '2',
"title": "b11奖品名称超级长的实物奖品-漫漫测试-不可删除-不可删除-奖品名称超级长", "title": "b11奖品名称超级长的实物奖品-漫漫测试-不可删除-不可删除-奖品名称超级长",
"type": 1, "type": 1,
"orderTypeTitle": "星速台活动获得", "orderTypeTitle": "星速台活动获得",
......
...@@ -19,6 +19,8 @@ import LoadingDemo from "@/pages/LoadingDemo/LoadingDemo.tsx"; ...@@ -19,6 +19,8 @@ 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'; import HomePage from './pages/HomePage/HomePage.tsx';
import AgentSharepage from './pages/agentSharepage/sharepage.jsx';
import SharePage from './pages/sharepage/sharepage.jsx';
@observer @observer
......
...@@ -105,8 +105,7 @@ const API = generateAPI({ ...@@ -105,8 +105,7 @@ const API = generateAPI({
method: "post", method: "post",
withToken: true, withToken: true,
}, },
/**数据推送 */
visit:`common/visit.do`,
// 推送使用 // 推送使用
outside: { outside: {
uri: `inviteAssist_1/outside.do`, uri: `inviteAssist_1/outside.do`,
...@@ -125,8 +124,6 @@ const API = generateAPI({ ...@@ -125,8 +124,6 @@ const API = generateAPI({
showMsg: false, showMsg: false,
}, },
/** 落地页 */
coop_getLoadingInfo: "customInvite1/outside.do",
/** 抽奖首页 */ /** 抽奖首页 */
drawIndex: "draw/index.do", drawIndex: "draw/index.do",
...@@ -166,18 +163,23 @@ const API = generateAPI({ ...@@ -166,18 +163,23 @@ const API = generateAPI({
showMsg: false, showMsg: false,
}, },
/** 绑定友客业务员信息接口 */
bindYk: {
uri: "agent/bindYk.do",
method: "post",
showMsg: false,
},
/** 生成唤端二维码 */ /** 生成唤端二维码 */
getLongLinkQrcode: `/customActivity/qrcode/getQrcode`, getLongLinkQrcode: `/customActivity/qrcode/getQrcode`,
queryInviteRecords: "inviteAssist_1/queryInviteRecords.do", queryInviteRecords: "inviteAssist_1/queryInviteRecords.do",
/**数据推送 */
visit:`common/visit.do`,
/** 绑定友客业务员信息接口 */
bindYk: {
uri: "common/bindYk.do",
method: "post",
showMsg: false,
},
/** 落地页 */
coop_getLoadingInfo: "common/outside.do",
rankInfo:`zqdn/rankIndex.do`,
}) })
// console.log('======', API) // console.log('======', API)
......
This diff is collapsed.
...@@ -40,7 +40,7 @@ class Homepage extends React.Component { ...@@ -40,7 +40,7 @@ class Homepage extends React.Component {
// 0 我的排名 // 0 我的排名
case 0: case 0:
// TODO 换成我的排名页面 记得引用 // TODO 换成我的排名页面 记得引用
// PageCtrl.changePage(); PageCtrl.changePage(RankPage);
break; break;
// 1 抽奖 // 1 抽奖
......
...@@ -157,6 +157,7 @@ ...@@ -157,6 +157,7 @@
} }
&:nth-child(2){ &:nth-child(2){
flex:1.5; flex:1.5;
.lineClamp1();
} }
} }
&:nth-child(1){ &:nth-child(1){
......
...@@ -8,23 +8,51 @@ import HomePage from '../HomePage/HomePage'; ...@@ -8,23 +8,51 @@ import HomePage from '../HomePage/HomePage';
@observer @observer
class RankPage extends React.Component<any, any> { class RankPage extends React.Component<any, any> {
constructor(props) {
super(props);
this.state={
rankList:[],
myRankInfo:{},
prizeList:[]
}
}
componentDidMount(): void {
this.getRankInfo();
}
getRankInfo = async() =>{
const {success, data} = await API.rankInfo()
if(success){
this.setState({
rankList:data.rankInfos,
myRankInfo:data.myRank,
prizeList:data.rankOptions
})
}
}
clickBack = () => { clickBack = () => {
PageCtrl.changePage(HomePage); PageCtrl.changePage(HomePage);
} }
render() { render() {
const {rankList, myRankInfo, prizeList} = this.state;
return <div className="rankPage"> return <div className="rankPage">
<div className="bg"></div> <div className="bg"></div>
<div className="title"></div> <div className="title"></div>
<div className="prizeList"> <div className="prizeList">
<div className="prizeItem"> {
<div className="prizeImg"> (prizeList || []).map((item,index)=>{
<img src="" alt="" /> return(
</div> <div className="prizeItem" key={index}>
<div className="prizeName">奖品奖品奖品奖品奖品</div> <div className="prizeImg">
<div className="rank">第1名</div> <img src={item?.image} alt="" />
</div> </div>
<div className="prizeName">{item?.name}</div>
<div className="rank">{item?.ranking}</div>
</div>
)
})
}
</div> </div>
<div className="rankTitle"> <div className="rankTitle">
...@@ -33,31 +61,25 @@ class RankPage extends React.Component<any, any> { ...@@ -33,31 +61,25 @@ class RankPage extends React.Component<any, any> {
<div className="title3">成功组局数/月</div> <div className="title3">成功组局数/月</div>
</div> </div>
<div className="myRankInfo"> <div className="myRankInfo">
<div className="title1">999+</div> <div className="title1">{myRankInfo?.index}</div>
<div className="title2">用户昵称(我)</div> <div className="title2">{myRankInfo?.userName}(我)</div>
<div className="title3">20</div> <div className="title3">{myRankInfo?.score}</div>
</div> </div>
<div className="rankList"> <div className="rankList">
<div className="rankItem"> {
<div className="rank"><span></span></div> (rankList || []).map((item,index)=>{
<div className="name">11</div> return(
<div className="score">11</div> <div className="rankItem">
</div> <div className="rank">
<div className="rankItem"> {item?.index > 4 ? <span></span> : item?.index}
<div className="rank"><span></span></div> </div>
<div className="name">11</div> <div className="name">{item?.userName}</div>
<div className="score">11</div> <div className="score">{item?.score}</div>
</div> </div>
<div className="rankItem"> )
<div className="rank"><span></span></div> })
<div className="name">11</div> }
<div className="score">11</div>
</div>
<div className="rankItem">
<div className="rank">1</div>
<div className="name">11</div>
<div className="score">11</div>
</div>
</div> </div>
<span className="back" onClick={this.clickBack}></span> <span className="back" onClick={this.clickBack}></span>
</div>; </div>;
......
'use strict';
import React from 'react';
import { observer } from 'mobx-react';
import './sharepage.less';
import { _throttle, getUrlParam, windowJumpUrl } from '@/utils/utils.ts';
// import { accessLog } from 'duiba-utils';
// import store from '@/store';
import API from '@/api';
import { extranceName } from '@/utils/constants.ts';
// import { handleLogClick, handleLogExposure } from '../../../MD';
import shareStore from '@/store/share.ts';
// import { LOG_KEY, MatterShareOpt, MatterViewDuration, MatterViewOpt, sensorLog } from '@src/utils/sensors';
@observer
class AgentSharepage extends React.Component {
constructor(props) {
super(props);
this.state = {
shareInfo: {}
}
this.startTime = +new Date();
this.shareRef = null;
}
async componentDidMount() {
// MatterViewOpt("b13548", {
// page_name: "非遗-落地页",
// });
// sensorLog(LOG_KEY.exposure, "b13548", "d13549", {
// page_name: "非遗-落地页",
// button_name: "分享活动按钮",
// });
// await store.checkBindStatus();
// await this.getShareInfo();
if (getUrlParam("inviteCode")) {
// handleLogExposure(13)
} else {
// handleLogExposure(20)
}
// setTimeout(() => {
// this.shareRef.scrollTo(0, 70)
// }, 50)
}
componentWillUnmount() {
// MatterViewDuration("b13548", +new Date() - this.startTime, {
// page_name: "非遗-落地页",
// });
}
getShareInfo = async () => {
const { success, data } = await API.coop_getLoadingInfo();
if (success && data) {
this.setState({
shareInfo: data
})
}
}
/** 跳转微信端活动 */
toWeActHandle = () => {
if (getUrlParam("inviteCode")) {
// handleLogClick(13)
} else {
// handleLogClick(20)
}
CFG.workerCode = getUrlParam("ykCode");
let url = CFG.domain + CFG.indexUrl + '&channel=' + CFG.channel + `${!!getUrlParam("inviteCode") ? ("&inviteCode=" + getUrlParam("inviteCode")) : ""}` + `${!!CFG.workerCode ? `&ykCode=${CFG.workerCode}` : ""}`
location.href = url
}
handleShareAct = _throttle(() => {
// MatterShareOpt("b13548", "d13549", {
// button_name: "分享活动按钮",
// page_name: "非遗-落地页",
// entrance: extranceName[CFG.channel],
// })
console.log("share")
shareStore.doShare()
})
render() {
// const { actStartTimestamp, actEndTimestamp } = this.state?.shareInfo || {};
return (
<div className="agentsharepage_wrap" ref={r => this.shareRef = r}>
<div className="sharepage modal_center">
<span className="bg"></span>
<span className="normal_btn md53" onClick={this.handleShareAct}></span>
</div>
</div>
);
}
}
export default AgentSharepage;
@import "../../res.less";
.agentsharepage_wrap {
width: 750px;
height: 100vh;
left: 0px;
top: 0px;
position: absolute;
overflow-y: scroll;
.sharepage {
width: 750px;
height: 1624px;
left: 0px;
top: 0;
position: absolute;
.bg {
width: 750px;
height: 1624px;
left: 0px;
top: 0px;
position: absolute;
.sparkBg("sharepages/bg.jpg");
}
.normal_btn {
left: calc(50% - 545px/2);
top: 1344px;
width: 545px;
height: 154px;
position: absolute;
.sparkBg("sharepages/btn3.png");
}
}
}
\ No newline at end of file
"use strict";
import React from "react";
import { observer } from "mobx-react";
import "./sharepage.less";
import { dateFormatter, getUrlParam, isMiniprogram, windowJumpUrl } from "@/utils/utils.ts";
// import { accessLog } from "duiba-utils";
import store from "@/store/store.ts";
import API from "@/api";
// import { PAGE_MAP } from "@src/utils/constants";
// import modalStore from "@src/store/modal";
// import { handleLogClick, handleLogExposure } from "../../../MD";
// import { LOG_KEY, MatterViewDuration, MatterViewOpt, sensorLog } from "@src/utils/sensors";
@observer
class Sharepage extends React.Component {
constructor(props) {
super(props);
this.state = {
shareInfo: {},
};
this.startTime = +new Date();
this.shareRef = null;
}
async componentDidMount() {
// accessLog(506)
// await store.checkBindStatus();
await this.getShareInfo();
// // sensorLog(LOG_KEY.exposure, "b13548", "d13551", {
// page_name: "非遗-落地页",
// button_name: "进入活动按钮",
// });
// // sensorLog(LOG_KEY.exposure, "b13548", "d13550", {
// page_name: "非遗-落地页",
// button_name: "为TA助力按钮",
// });
// MatterViewOpt("b13548", {
// page_name: "非遗-落地页",
// });
if (getUrlParam("inviteCode")) {
// handleLogExposure(13)
} else {
// handleLogExposure(20)
}
// setTimeout(() => {
// this.shareRef.scrollTo(0, 70)
// }, 50)
}
componentWillUnmount() {
}
getShareInfo = async () => {
const { success, data } = await API.coop_getLoadingInfo();
if (success && data) {
this.setState({
shareInfo: data,
});
}
// if (!data?.validUid) {
// modalStore.pushPop("Loginpop")
// }
};
/** 跳转微信端活动 */
toWeActHandle = () => {
console.warn("toWeActHandle")
if (getUrlParam("inviteCode")) {
// handleLogClick(13)
// // sensorLog(LOG_KEY.click, "b13548", "d13550", {
// page_name: "非遗-落地页",
// button_name: "为TA助力按钮",
// });
} else {
// // sensorLog(LOG_KEY.click, "b13548", "d13551", {
// page_name: "非遗-落地页",
// button_name: "进入活动按钮",
// });
// handleLogClick(20)
}
CFG.workerCode = getUrlParam("ykCode");
if (isMiniprogram()) { //小程序域名写死
CFG.domain = "https://96094-activity.dexfu.cn";
} else {
CFG.domain = location.origin
}
let url =
CFG.domain +
CFG.indexUrl +
"&channel=" +
CFG.channel +
`${!!getUrlParam("inviteCode") ? "&inviteCode=" + getUrlParam("inviteCode") : ""}` +
`${!!CFG.workerCode ? `&ykCode=${CFG.workerCode}` : ""}` +
`&agentCode=${CFG.agentCode || ""}&actPlatforms=${CFG.actPlatforms || ""}&actId=${CFG.actId || ""}`;
// alert(url)
// MatterViewDuration("b13548", +new Date() - this.startTime, {
// page_name: "非遗-落地页",
// });
setTimeout(() => {
location.href = url;
}, 500)
};
render() {
const { actStartTimestamp, actEndTimestamp } = this.state?.shareInfo || {};
return (
<div className="sharepage_wrap" ref={(r) => (this.shareRef = r)}>
<div className="sharepage modal_center">
<span className="bg"></span>
{/* <span className="time">
活动时间:{dateFormatter(actStartTimestamp, "yyyy年MM月dd日")}-{dateFormatter(actEndTimestamp, "MM月dd日")}
</span> */}
{
getUrlParam("inviteCode") && <div className="tips"></div>
}
{getUrlParam("inviteCode") ? <span className="assist_btn md55"></span> : <span className="normal_btn md54"></span>}
<span className="click_area" onClick={() => this.toWeActHandle()}></span>
{/* <span className="hand"></span> */}
{/* <span className="logo"></span> */}
</div>
</div>
);
}
}
export default Sharepage;
@import "../../res.less";
.sharepage_wrap {
width: 750px;
height: 100vh;
left: 0px;
top: 0px;
position: absolute;
overflow-y: scroll;
.sharepage {
width: 750px;
height: 1624px;
left: 0px;
top: 0;
position: absolute;
.bg {
width: 750px;
height: 1624px;
left: 0px;
top: 0px;
position: absolute;
.sparkBg("sharepages/bg.jpg");
}
.time {
width: 600px;
height: 40px;
left: calc(50% - 300px);
top: 380px;
position: absolute;
color: #fff;
font-size: 24px;
font-weight: 600;
text-align: center;
}
.title {
left: 93px;
top: 236px;
width: 559px;
height: 198px;
position: absolute;
.sparkBg("homePage/title.png");
}
.enter_btn {
width: 378px;
height: 135px;
left: 200px;
top: 1158px;
position: absolute;
.sparkBg("sharePage/btn.png");
}
.assist_btn {
left: calc(50% - 545px/2);
top: 1344px;
width: 545px;
height: 154px;
position: absolute;
.sparkBg("sharepages/btn1.png");
}
.normal_btn {
left: calc(50% - 545px/2);
top: 1344px;
width: 545px;
height: 154px;
position: absolute;
.sparkBg("sharepages/btn2.png");
}
.tips {
left: 17px;
top: 980px;
width: 390px;
height: 163px;
position: absolute;
.sparkBg("sharepages/tips.png");
}
.click_area {
left: calc(50% - 545px/2);
top: 1344px;
width: 545px;
height: 154px;
position: absolute;
}
.hand {
position: absolute;
left: 557px;
top: 1352px;
width: 121px;
height: 94px;
.sparkBg("sharePage/hand.png");
pointer-events: none;
}
.logo {
width: 318px;
height: 31px;
left: calc(50% - 159px);
top: 190px;
position: absolute;
.sparkBg("homePage/logo.png");
}
}
}
\ No newline at end of file
...@@ -88,6 +88,8 @@ class Store { ...@@ -88,6 +88,8 @@ class Store {
return; return;
} }
this.indexData = data; this.indexData = data;
} }
/** /**
...@@ -164,6 +166,12 @@ class Store { ...@@ -164,6 +166,12 @@ class Store {
history.replaceState({}, '', location.href.replace(new RegExp(`[?&]inviteCode=[^&]*`), '')); history.replaceState({}, '', location.href.replace(new RegExp(`[?&]inviteCode=[^&]*`), ''));
} }
async bindYkCode(code) {
const res = await API.bindYk({
code: code,
});
return res;
}
} }
export default (new Store()); export default (new Store());
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