nili
6 months ago
25 changed files with 929 additions and 17 deletions
@ -1,15 +1,15 @@ |
|||
{ |
|||
"files": { |
|||
"main.css": "/static/css/main.407c2891.css", |
|||
"main.js": "/static/js/main.359cfb57.js", |
|||
"main.css": "/static/css/main.807a88f4.css", |
|||
"main.js": "/static/js/main.b66aa672.js", |
|||
"static/js/453.1d641cba.chunk.js": "/static/js/453.1d641cba.chunk.js", |
|||
"index.html": "/index.html", |
|||
"main.407c2891.css.map": "/static/css/main.407c2891.css.map", |
|||
"main.359cfb57.js.map": "/static/js/main.359cfb57.js.map", |
|||
"main.807a88f4.css.map": "/static/css/main.807a88f4.css.map", |
|||
"main.b66aa672.js.map": "/static/js/main.b66aa672.js.map", |
|||
"453.1d641cba.chunk.js.map": "/static/js/453.1d641cba.chunk.js.map" |
|||
}, |
|||
"entrypoints": [ |
|||
"static/css/main.407c2891.css", |
|||
"static/js/main.359cfb57.js" |
|||
"static/css/main.807a88f4.css", |
|||
"static/js/main.b66aa672.js" |
|||
] |
|||
} |
@ -1 +1 @@ |
|||
<!doctype html><html lang="en"><head><meta charset="utf-8"/><script src="https://g.alicdn.com/jssdk/u-link/index.min.js"></script><link rel="icon" href="/favicon.ico"/><meta name="viewport" content="width=device-width,initial-scale=1"/><meta name="theme-color" content="#000000"/><meta name="description" content="Web site created using create-react-app"/><link rel="apple-touch-icon" href="/logo192.png"/><link rel="manifest" href="/manifest.json"/><title>奇迹畅玩</title><script defer="defer" src="/static/js/main.359cfb57.js"></script><link href="/static/css/main.407c2891.css" rel="stylesheet"></head><body><noscript>You need to enable JavaScript to run this app.</noscript><div id="root"></div></body></html> |
|||
<!doctype html><html lang="en"><head><meta charset="utf-8"/><script src="https://g.alicdn.com/jssdk/u-link/index.min.js"></script><link rel="icon" href="/favicon.ico"/><meta name="viewport" content="width=device-width,initial-scale=1"/><meta name="theme-color" content="#000000"/><meta name="description" content="Web site created using create-react-app"/><link rel="apple-touch-icon" href="/logo192.png"/><link rel="manifest" href="/manifest.json"/><title>奇迹畅玩</title><script defer="defer" src="/static/js/main.b66aa672.js"></script><link href="/static/css/main.807a88f4.css" rel="stylesheet"></head><body><noscript>You need to enable JavaScript to run this app.</noscript><div id="root"></div></body></html> |
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -0,0 +1,117 @@ |
|||
/* tslint:disable */ |
|||
/* eslint-disable */ |
|||
/** |
|||
* matrix后台 |
|||
* 乌啦啦 |
|||
* |
|||
* The version of the OpenAPI document: v1.0.0 |
|||
* |
|||
* |
|||
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
|||
* https://openapi-generator.tech
|
|||
* Do not edit the class manually. |
|||
*/ |
|||
|
|||
|
|||
// May contain unused imports in some cases
|
|||
// @ts-ignore
|
|||
import { DayRate } from './day-rate'; |
|||
|
|||
/** |
|||
* |
|||
* @export |
|||
* @interface AppBasicInfo |
|||
*/ |
|||
export interface AppBasicInfo { |
|||
/** |
|||
* |
|||
* @type {number} |
|||
* @memberof AppBasicInfo |
|||
*/ |
|||
'maxIncomeEachVideo'?: number; |
|||
/** |
|||
* |
|||
* @type {Array<DayRate>} |
|||
* @memberof AppBasicInfo |
|||
*/ |
|||
'dayRates'?: Array<DayRate>; |
|||
/** |
|||
* |
|||
* @type {number} |
|||
* @memberof AppBasicInfo |
|||
*/ |
|||
'defaultRate'?: number; |
|||
/** |
|||
* |
|||
* @type {Array<number>} |
|||
* @memberof AppBasicInfo |
|||
*/ |
|||
'moneyLadder'?: Array<number>; |
|||
/** |
|||
* |
|||
* @type {number} |
|||
* @memberof AppBasicInfo |
|||
*/ |
|||
'noAuditMoney'?: number; |
|||
/** |
|||
* |
|||
* @type {string} |
|||
* @memberof AppBasicInfo |
|||
*/ |
|||
'qqUrl'?: string; |
|||
/** |
|||
* |
|||
* @type {number} |
|||
* @memberof AppBasicInfo |
|||
*/ |
|||
'dayLimit'?: number; |
|||
/** |
|||
* |
|||
* @type {boolean} |
|||
* @memberof AppBasicInfo |
|||
*/ |
|||
'enablePangolin'?: boolean; |
|||
/** |
|||
* |
|||
* @type {number} |
|||
* @memberof AppBasicInfo |
|||
*/ |
|||
'pangolinDailyLimit'?: number; |
|||
/** |
|||
* |
|||
* @type {number} |
|||
* @memberof AppBasicInfo |
|||
*/ |
|||
'tencentDailyLimit'?: number; |
|||
/** |
|||
* |
|||
* @type {string} |
|||
* @memberof AppBasicInfo |
|||
*/ |
|||
'name'?: string; |
|||
/** |
|||
* |
|||
* @type {string} |
|||
* @memberof AppBasicInfo |
|||
*/ |
|||
'code'?: string; |
|||
/** |
|||
* |
|||
* @type {string} |
|||
* @memberof AppBasicInfo |
|||
*/ |
|||
'img'?: string; |
|||
/** |
|||
* |
|||
* @type {string} |
|||
* @memberof AppBasicInfo |
|||
*/ |
|||
'url'?: string; |
|||
/** |
|||
* |
|||
* @type {number} |
|||
* @memberof AppBasicInfo |
|||
*/ |
|||
'version'?: number; |
|||
} |
|||
|
@ -0,0 +1,36 @@ |
|||
/* tslint:disable */ |
|||
/* eslint-disable */ |
|||
/** |
|||
* matrix后台 |
|||
* 乌啦啦 |
|||
* |
|||
* The version of the OpenAPI document: v1.0.0 |
|||
* |
|||
* |
|||
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
|||
* https://openapi-generator.tech
|
|||
* Do not edit the class manually. |
|||
*/ |
|||
|
|||
|
|||
|
|||
/** |
|||
* |
|||
* @export |
|||
* @interface DayRate |
|||
*/ |
|||
export interface DayRate { |
|||
/** |
|||
* |
|||
* @type {number} |
|||
* @memberof DayRate |
|||
*/ |
|||
'day'?: number; |
|||
/** |
|||
* |
|||
* @type {number} |
|||
* @memberof DayRate |
|||
*/ |
|||
'rate'?: number; |
|||
} |
|||
|
@ -1,5 +1,12 @@ |
|||
export * from './app-basic-info'; |
|||
export * from './day-rate'; |
|||
export * from './invite-info'; |
|||
export * from './login-req'; |
|||
export * from './market-bo'; |
|||
export * from './matrix-evil-app'; |
|||
export * from './rapp-basic-info'; |
|||
export * from './rinvite-info'; |
|||
export * from './rlist-matrix-evil-app'; |
|||
export * from './rmarket-bo'; |
|||
export * from './rstring'; |
|||
export * from './rvoid'; |
|||
|
@ -0,0 +1,96 @@ |
|||
/* tslint:disable */ |
|||
/* eslint-disable */ |
|||
/** |
|||
* matrix后台 |
|||
* 乌啦啦 |
|||
* |
|||
* The version of the OpenAPI document: v1.0.0 |
|||
* |
|||
* |
|||
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
|||
* https://openapi-generator.tech
|
|||
* Do not edit the class manually. |
|||
*/ |
|||
|
|||
|
|||
|
|||
/** |
|||
* |
|||
* @export |
|||
* @interface MarketBo |
|||
*/ |
|||
export interface MarketBo { |
|||
/** |
|||
* |
|||
* @type {string} |
|||
* @memberof MarketBo |
|||
*/ |
|||
'name'?: string; |
|||
/** |
|||
* |
|||
* @type {string} |
|||
* @memberof MarketBo |
|||
*/ |
|||
'code'?: string; |
|||
/** |
|||
* |
|||
* @type {string} |
|||
* @memberof MarketBo |
|||
*/ |
|||
'img'?: string; |
|||
/** |
|||
* |
|||
* @type {string} |
|||
* @memberof MarketBo |
|||
*/ |
|||
'url'?: string; |
|||
/** |
|||
* |
|||
* @type {string} |
|||
* @memberof MarketBo |
|||
*/ |
|||
'fileSize'?: string; |
|||
/** |
|||
* |
|||
* @type {number} |
|||
* @memberof MarketBo |
|||
*/ |
|||
'version'?: number; |
|||
/** |
|||
* |
|||
* @type {Array<string>} |
|||
* @memberof MarketBo |
|||
*/ |
|||
'images'?: Array<string>; |
|||
/** |
|||
* |
|||
* @type {string} |
|||
* @memberof MarketBo |
|||
*/ |
|||
'packageName'?: string; |
|||
/** |
|||
* |
|||
* @type {string} |
|||
* @memberof MarketBo |
|||
*/ |
|||
'author'?: string; |
|||
/** |
|||
* |
|||
* @type {number} |
|||
* @memberof MarketBo |
|||
*/ |
|||
'downloadTimes'?: number; |
|||
/** |
|||
* |
|||
* @type {string} |
|||
* @memberof MarketBo |
|||
*/ |
|||
'desc'?: string; |
|||
/** |
|||
* |
|||
* @type {number} |
|||
* @memberof MarketBo |
|||
*/ |
|||
'updatedAt'?: number; |
|||
} |
|||
|
@ -0,0 +1,42 @@ |
|||
/* tslint:disable */ |
|||
/* eslint-disable */ |
|||
/** |
|||
* matrix后台 |
|||
* 乌啦啦 |
|||
* |
|||
* The version of the OpenAPI document: v1.0.0 |
|||
* |
|||
* |
|||
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
|||
* https://openapi-generator.tech
|
|||
* Do not edit the class manually. |
|||
*/ |
|||
|
|||
|
|||
|
|||
/** |
|||
* |
|||
* @export |
|||
* @interface MatrixEvilApp |
|||
*/ |
|||
export interface MatrixEvilApp { |
|||
/** |
|||
* |
|||
* @type {number} |
|||
* @memberof MatrixEvilApp |
|||
*/ |
|||
'id'?: number; |
|||
/** |
|||
* |
|||
* @type {string} |
|||
* @memberof MatrixEvilApp |
|||
*/ |
|||
'name'?: string; |
|||
/** |
|||
* |
|||
* @type {string} |
|||
* @memberof MatrixEvilApp |
|||
*/ |
|||
'packageName'?: string; |
|||
} |
|||
|
@ -0,0 +1,45 @@ |
|||
/* tslint:disable */ |
|||
/* eslint-disable */ |
|||
/** |
|||
* matrix后台 |
|||
* 乌啦啦 |
|||
* |
|||
* The version of the OpenAPI document: v1.0.0 |
|||
* |
|||
* |
|||
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
|||
* https://openapi-generator.tech
|
|||
* Do not edit the class manually. |
|||
*/ |
|||
|
|||
|
|||
// May contain unused imports in some cases
|
|||
// @ts-ignore
|
|||
import { AppBasicInfo } from './app-basic-info'; |
|||
|
|||
/** |
|||
* |
|||
* @export |
|||
* @interface RAppBasicInfo |
|||
*/ |
|||
export interface RAppBasicInfo { |
|||
/** |
|||
* |
|||
* @type {number} |
|||
* @memberof RAppBasicInfo |
|||
*/ |
|||
'code'?: number; |
|||
/** |
|||
* |
|||
* @type {string} |
|||
* @memberof RAppBasicInfo |
|||
*/ |
|||
'message'?: string; |
|||
/** |
|||
* |
|||
* @type {AppBasicInfo} |
|||
* @memberof RAppBasicInfo |
|||
*/ |
|||
'data'?: AppBasicInfo; |
|||
} |
|||
|
@ -0,0 +1,45 @@ |
|||
/* tslint:disable */ |
|||
/* eslint-disable */ |
|||
/** |
|||
* matrix后台 |
|||
* 乌啦啦 |
|||
* |
|||
* The version of the OpenAPI document: v1.0.0 |
|||
* |
|||
* |
|||
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
|||
* https://openapi-generator.tech
|
|||
* Do not edit the class manually. |
|||
*/ |
|||
|
|||
|
|||
// May contain unused imports in some cases
|
|||
// @ts-ignore
|
|||
import { MatrixEvilApp } from './matrix-evil-app'; |
|||
|
|||
/** |
|||
* |
|||
* @export |
|||
* @interface RListMatrixEvilApp |
|||
*/ |
|||
export interface RListMatrixEvilApp { |
|||
/** |
|||
* |
|||
* @type {number} |
|||
* @memberof RListMatrixEvilApp |
|||
*/ |
|||
'code'?: number; |
|||
/** |
|||
* |
|||
* @type {string} |
|||
* @memberof RListMatrixEvilApp |
|||
*/ |
|||
'message'?: string; |
|||
/** |
|||
* |
|||
* @type {Array<MatrixEvilApp>} |
|||
* @memberof RListMatrixEvilApp |
|||
*/ |
|||
'data'?: Array<MatrixEvilApp>; |
|||
} |
|||
|
@ -0,0 +1,45 @@ |
|||
/* tslint:disable */ |
|||
/* eslint-disable */ |
|||
/** |
|||
* matrix后台 |
|||
* 乌啦啦 |
|||
* |
|||
* The version of the OpenAPI document: v1.0.0 |
|||
* |
|||
* |
|||
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
|||
* https://openapi-generator.tech
|
|||
* Do not edit the class manually. |
|||
*/ |
|||
|
|||
|
|||
// May contain unused imports in some cases
|
|||
// @ts-ignore
|
|||
import { MarketBo } from './market-bo'; |
|||
|
|||
/** |
|||
* |
|||
* @export |
|||
* @interface RMarketBo |
|||
*/ |
|||
export interface RMarketBo { |
|||
/** |
|||
* |
|||
* @type {number} |
|||
* @memberof RMarketBo |
|||
*/ |
|||
'code'?: number; |
|||
/** |
|||
* |
|||
* @type {string} |
|||
* @memberof RMarketBo |
|||
*/ |
|||
'message'?: string; |
|||
/** |
|||
* |
|||
* @type {MarketBo} |
|||
* @memberof RMarketBo |
|||
*/ |
|||
'data'?: MarketBo; |
|||
} |
|||
|
@ -0,0 +1,223 @@ |
|||
// MarketPage.js
|
|||
import { Button, Tabs } from "antd-mobile"; |
|||
import React, { useEffect, useState } from "react"; |
|||
import { useParams } from "react-router-dom"; |
|||
|
|||
import { api } from "../api"; |
|||
import { MarketBo } from "../api/generated/model/market-bo"; |
|||
import { formatTimestamp, formatVersion } from "../utils/numberUtils"; |
|||
|
|||
const MarketPage = () => { |
|||
const [info, setInfo] = React.useState<MarketBo>(); |
|||
const { appCode } = useParams(); |
|||
|
|||
useEffect(() => { |
|||
const getApp = async () => { |
|||
if (!appCode) { |
|||
return; |
|||
} |
|||
const res = await api.marketData(appCode); |
|||
setInfo(res.data.data); |
|||
}; |
|||
getApp(); |
|||
}, [appCode]); |
|||
|
|||
const topButtonStyle = { |
|||
padding: "0 15", |
|||
background: "#F0322F", |
|||
border: "none", |
|||
color: "#fff", |
|||
fontSize: 16, |
|||
fontWeight: "bold", |
|||
height: 48, |
|||
}; |
|||
|
|||
const blueTag = { |
|||
border: "1px solid #00bfff", |
|||
margin: "auto 5px 5px 5px", |
|||
fontSize: 14, |
|||
color: "#00bfff", |
|||
borderRadius: 5, |
|||
padding: "2px 8px", |
|||
}; |
|||
|
|||
const latestVersion = () => { |
|||
let arr = []; |
|||
for (let i = 0; i <= 5; i++) { |
|||
arr.push((info?.version || 1000) - i); |
|||
} |
|||
return arr; |
|||
}; |
|||
|
|||
return ( |
|||
<div style={{ paddingLeft: 40, paddingRight: 40 }}> |
|||
<div |
|||
style={{ |
|||
position: "fixed", |
|||
overflow: "scroll", |
|||
top: 0, |
|||
left: 0, |
|||
right: 0, |
|||
height: 48, |
|||
background: "#F0322F", |
|||
zIndex: 1, |
|||
}} |
|||
> |
|||
<Button style={{ ...topButtonStyle, marginLeft: 50 }}>首页</Button> |
|||
<Button style={topButtonStyle}>{info?.name}玩法</Button> |
|||
<Button style={topButtonStyle}>{info?.name}更新</Button> |
|||
<Button style={topButtonStyle}>{info?.name}合集</Button> |
|||
<Button style={topButtonStyle}>{info?.name}资讯</Button> |
|||
</div> |
|||
<div |
|||
style={{ |
|||
marginTop: 48, |
|||
marginBottom: 6, |
|||
display: "flex", |
|||
color: "#666", |
|||
fontSize: 14, |
|||
whiteSpace: "pre-wrap", |
|||
}} |
|||
> |
|||
<p style={{ fontWeight: "bold" }}>当前位置:</p> |
|||
<p>首页 </p> |
|||
<p style={{ color: "#5a5a5a" }}> |
|||
{"> " + info?.name} {formatVersion(info?.version)} |
|||
</p> |
|||
</div> |
|||
<div |
|||
style={{ |
|||
marginBottom: 20, |
|||
color: "#3a3b3c", |
|||
fontWeight: "bold", |
|||
fontSize: 22, |
|||
display: "flex", |
|||
alignItems: "center", |
|||
borderBottom: "1px #e7e7e7 solid", |
|||
}} |
|||
> |
|||
{info?.name}{" "} |
|||
<p |
|||
style={{ |
|||
marginLeft: 10, |
|||
fontSize: 18, |
|||
color: "#888", |
|||
fontWeight: "normal", |
|||
}} |
|||
> |
|||
{formatVersion(info?.version)} |
|||
</p> |
|||
</div> |
|||
<div style={{ marginTop: 20 }}> |
|||
<div |
|||
style={{ |
|||
float: "left", |
|||
display: "flex", |
|||
flexDirection: "column", |
|||
alignItems: "center", |
|||
width: 186, |
|||
marginRight: 15, |
|||
}} |
|||
> |
|||
<img |
|||
style={{ width: 150, borderRadius: 18, margin: "0, auto" }} |
|||
src={info?.img} |
|||
alt="" |
|||
/> |
|||
<Button |
|||
onClick={() => { |
|||
window.open(info?.url || "", "_blank"); |
|||
setInfo({ |
|||
...info, |
|||
downloadTimes: (info?.downloadTimes || 0) + 1, |
|||
}); |
|||
}} |
|||
style={{ |
|||
marginTop: 47, |
|||
background: "#fe6265", |
|||
height: 34, |
|||
width: 120, |
|||
borderRadius: 5, |
|||
marginLeft: "auto", |
|||
marginRight: "auto", |
|||
color: "#333", |
|||
fontSize: 12, |
|||
}} |
|||
> |
|||
下载 ({info?.downloadTimes}) |
|||
</Button> |
|||
</div> |
|||
<div style={{ fontSize: 14, color: "#303030" }}> |
|||
<p>版本:{formatVersion(info?.version)}</p> |
|||
<p>类型:手机游戏</p> |
|||
<p>作者:{info?.author}</p> |
|||
<p>包名:{info?.packageName}</p> |
|||
<p>更新:{formatTimestamp(info?.updatedAt)}</p> |
|||
<p>大小:{info?.fileSize}</p> |
|||
<p> |
|||
标签: |
|||
<Button style={blueTag}>经营</Button> |
|||
<Button style={blueTag}>休闲</Button> |
|||
<Button style={blueTag}>探索</Button> |
|||
<Button style={blueTag}>合作</Button> |
|||
<Button style={blueTag}>对抗</Button> |
|||
</p> |
|||
</div> |
|||
</div> |
|||
<Tabs style={{ marginTop: 20 }} defaultActiveKey="1"> |
|||
<Tabs.Tab title="游戏介绍" key="1"> |
|||
<p |
|||
style={{ |
|||
whiteSpace: "break-spaces", |
|||
color: "#656565", |
|||
fontSize: 14, |
|||
lineHeight: "26px", |
|||
}} |
|||
> |
|||
{info?.desc} |
|||
</p> |
|||
</Tabs.Tab> |
|||
<Tabs.Tab title="游戏截图" key="2"> |
|||
<div> |
|||
{info?.images?.map((x) => ( |
|||
<img style={{ width: 150, marginRight: 12 }} src={x} alt="" /> |
|||
))} |
|||
</div> |
|||
</Tabs.Tab> |
|||
<Tabs.Tab title="相关版本" key="3"> |
|||
<div |
|||
style={{ |
|||
display: "flex", |
|||
lineHeight: "26px", |
|||
width: "60%", |
|||
justifyContent: "space-evenly", |
|||
}} |
|||
> |
|||
{latestVersion().map((x: number) => ( |
|||
<a href={info?.url}>{formatVersion(x)}</a> |
|||
))} |
|||
</div> |
|||
</Tabs.Tab> |
|||
</Tabs> |
|||
|
|||
<div style={{ marginBottom: 20 }}> |
|||
<h1>热门标签</h1> |
|||
<Button style={blueTag}>像素</Button> |
|||
<Button style={blueTag}>写实</Button> |
|||
<Button style={blueTag}>收集</Button> |
|||
<Button style={blueTag}>征战</Button> |
|||
<Button style={blueTag}>策略</Button> |
|||
<Button style={blueTag}>3D</Button> |
|||
<Button style={blueTag}>回合制</Button> |
|||
<Button style={blueTag}>三国</Button> |
|||
<Button style={blueTag}>放置</Button> |
|||
<Button style={blueTag}>挂机</Button> |
|||
<Button style={blueTag}>Q版</Button> |
|||
<Button style={blueTag}>角色扮演</Button> |
|||
<Button style={blueTag}>中国风</Button> |
|||
</div> |
|||
</div> |
|||
); |
|||
}; |
|||
|
|||
export default MarketPage; |
Loading…
Reference in new issue