🐞 fix:

修改部分文案
This commit is contained in:
john 2024-06-27 18:29:40 +08:00
parent 007af1f625
commit f6cd16f1c6
15 changed files with 90 additions and 50 deletions

View File

@ -1,10 +1,10 @@
### ###
# @LastEditors: John # @LastEditors: John
# @Date: 2024-06-18 10:12:21 # @Date: 2024-06-18 10:12:21
# @LastEditTime: 2024-06-25 14:04:33 # @LastEditTime: 2024-06-27 15:35:23
# @Author: John # @Author: John
### ###
VITE_BASE_URL=http://192.168.10.167:5173/ VITE_BASE_URL=
VITE_BASE_API_URL=/dev VITE_BASE_API_URL=/dev
VITE_PARTICIPATE_CHAIN_ID=97 VITE_PARTICIPATE_CHAIN_ID=97
VITE_PURCHASED_CONTRACT_ADDRESS=0x7aAe4f2CA23482B58D6f9e8d1fBb5e413e7013c8 VITE_PURCHASED_CONTRACT_ADDRESS=0x7aAe4f2CA23482B58D6f9e8d1fBb5e413e7013c8

View File

@ -57,7 +57,7 @@ export default function () {
<div className={classes.header}> <div className={classes.header}>
<div className={classes.header_top}> <div className={classes.header_top}>
<img className={classes.header_logo} src={logo} alt="" /> <img className={classes.header_logo} src={logo} alt="" />
<span className={classes.header_title}>{t("红魔NFT")}</span> <span className={classes.header_title}>{t("红魔股权NFT")}</span>
<Popover.Menu <Popover.Menu
mode="dark" mode="dark"
actions={langColums} actions={langColums}

View File

@ -1,7 +1,7 @@
/* /*
* @LastEditors: John * @LastEditors: John
* @Date: 2024-06-19 15:48:57 * @Date: 2024-06-19 15:48:57
* @LastEditTime: 2024-06-25 15:28:36 * @LastEditTime: 2024-06-27 18:00:07
* @Author: John * @Author: John
*/ */
import { config } from "@/components/WalletProvider"; import { config } from "@/components/WalletProvider";
@ -200,7 +200,8 @@ export async function payByContract(
}); });
} catch (err) { } catch (err) {
console.log("pay By Contract catch err", err); console.log("pay By Contract catch err", err);
reject(new BaseError(`${err}`)); if (typeof err == "string") return reject(new BaseError(`${err}`));
return reject(err);
} }
}); });
} }

View File

@ -1,6 +1,6 @@
{ {
"AppName": "红魔", "AppName": "红魔",
"红魔NFT": "红魔NFT", "红魔股权NFT": "红魔股权NFT",
"铸造 NFT": "铸造 NFT", "铸造 NFT": "铸造 NFT",
"级别提升": "级别提升", "级别提升": "级别提升",
"收益记录": "收益记录", "收益记录": "收益记录",
@ -103,5 +103,6 @@
"无级别提升": "无级别提升", "无级别提升": "无级别提升",
"没有更多数据了": "没有更多数据了", "没有更多数据了": "没有更多数据了",
"升级中": "升级中", "升级中": "升级中",
"无等级": "无等级" "无等级": "无等级",
"无效的邀请链接": "无效的邀请链接"
} }

View File

@ -1,6 +1,6 @@
{ {
"AppName": "Der Rote Teufel", "AppName": "Der Rote Teufel",
"红魔NFT": "Der Rote Teufel NFT", "红魔股权NFT": "Red Devils Equity NFT",
"铸造 NFT": "NFT Prägen", "铸造 NFT": "NFT Prägen",
"级别提升": "Stufenaufstieg", "级别提升": "Stufenaufstieg",
"收益记录": "Ergebnisrekord", "收益记录": "Ergebnisrekord",
@ -103,5 +103,6 @@
"无级别提升": "Beförderung ohne Rang", "无级别提升": "Beförderung ohne Rang",
"没有更多数据了": "Keine weiteren Daten", "没有更多数据了": "Keine weiteren Daten",
"升级中": "Wird aktualisiert", "升级中": "Wird aktualisiert",
"无等级": "Keine Bewertung" "无等级": "Keine Bewertung",
"无效的邀请链接": "Ungültiger Einladungslink"
} }

View File

@ -1,6 +1,6 @@
{ {
"AppName": "Red Devils", "AppName": "Red Devils",
"红魔NFT": "Red Devils NFT", "红魔股权NFT": "Red Devil Equity NFT",
"铸造 NFT": "Mint NFT", "铸造 NFT": "Mint NFT",
"级别提升": "Level Up", "级别提升": "Level Up",
"收益记录": "Revenue Record", "收益记录": "Revenue Record",
@ -103,5 +103,6 @@
"无级别提升": "Promotion without rank", "无级别提升": "Promotion without rank",
"没有更多数据了": "No more data", "没有更多数据了": "No more data",
"升级中": "Upgrading", "升级中": "Upgrading",
"无等级": "No Grade" "无等级": "No Grade",
"无效的邀请链接": "Invalid invitation link"
} }

View File

@ -1,6 +1,6 @@
{ {
"AppName": "紅魔", "AppName": "紅魔",
"红魔NFT": "紅魔NFT", "红魔股权NFT": "レッドデビルズ株式NFT",
"铸造 NFT": "NFT 鋳造", "铸造 NFT": "NFT 鋳造",
"级别提升": "レベルアップ", "级别提升": "レベルアップ",
"收益记录": "収益実績", "收益记录": "収益実績",
@ -103,5 +103,6 @@
"无级别提升": "階級なしの昇進", "无级别提升": "階級なしの昇進",
"没有更多数据了": "これ以上のデータはありません", "没有更多数据了": "これ以上のデータはありません",
"升级中": "アップグレード中", "升级中": "アップグレード中",
"无等级": "グレードなし" "无等级": "グレードなし",
"无效的邀请链接": "無効な招待リンクです"
} }

View File

@ -1,6 +1,6 @@
{ {
"AppName": "紅魔", "AppName": "紅魔",
"红魔NFT": "紅魔NFT", "红魔股权NFT": "紅魔鬼股權NFT",
"铸造 NFT": "鑄造 NFT", "铸造 NFT": "鑄造 NFT",
"级别提升": "級別提升", "级别提升": "級別提升",
"收益记录": "收益記錄", "收益记录": "收益記錄",
@ -103,5 +103,6 @@
"无级别提升": "無級別提升", "无级别提升": "無級別提升",
"没有更多数据了": "沒有更多數據了", "没有更多数据了": "沒有更多數據了",
"升级中": "升級中", "升级中": "升級中",
"无等级": "無等級" "无等级": "無等級",
"无效的邀请链接": "無效的邀請連結"
} }

View File

@ -33,7 +33,7 @@ export default function () {
const userInviteLink = useMemo( const userInviteLink = useMemo(
() => () =>
`${import.meta.env.VITE_BASE_URL}#/?${UrlQueryParamsKey.INVITE_CODE}=${ `${location.origin}/#/?${UrlQueryParamsKey.INVITE_CODE}=${
userData?.invitationCode || "" userData?.invitationCode || ""
}`, }`,
[userData] [userData]
@ -87,8 +87,6 @@ export default function () {
<span>{shortenString(address, 6, 4)}</span> <span>{shortenString(address, 6, 4)}</span>
<IconFont <IconFont
onClick={async () => { onClick={async () => {
const { connector } = getAccount(config);
await disconnect(config, { connector });
loginOut(); loginOut();
}} }}
name="tuichu" name="tuichu"
@ -433,7 +431,7 @@ function ReceiveCom({
{tokenName} {tokenName}
</span> </span>
<span className={classes.nftToken_content_token_item_tokenNum}> <span className={classes.nftToken_content_token_item_tokenNum}>
{tokenNum} {tokenNum + toReceive}
</span> </span>
<span <span
className={classes.nftToken_content_token_item_AssetRecords} className={classes.nftToken_content_token_item_AssetRecords}
@ -449,7 +447,7 @@ function ReceiveCom({
<div> <div>
<div className={classes.nftToken_content_token_item_tokenWaiting}> <div className={classes.nftToken_content_token_item_tokenWaiting}>
<span>{t("待领取")}</span> <span>{t("待领取")}</span>
<span>{tokenNum + toReceive}</span> <span>{toReceive}</span>
</div> </div>
<Button <Button
className={classes.nftToken_content_token_item_tokenReceive} className={classes.nftToken_content_token_item_tokenReceive}

View File

@ -1,7 +1,7 @@
/* /*
* @LastEditors: John * @LastEditors: John
* @Date: 2024-06-19 11:03:01 * @Date: 2024-06-19 11:03:01
* @LastEditTime: 2024-06-25 18:17:18 * @LastEditTime: 2024-06-26 15:21:27
* @Author: John * @Author: John
*/ */
import { api_preprelion_list } from "@/server/api"; import { api_preprelion_list } from "@/server/api";
@ -25,7 +25,7 @@ export default function () {
name: t("级别"), name: t("级别"),
grow: 4, grow: 4,
cell(row, rowIndex, column, id) { cell(row, rowIndex, column, id) {
return <div>{getLevelName(row.level)}</div>; return <div>{getLevelName(row.level, row.userType)}</div>;
}, },
}, },
{ {

View File

@ -95,7 +95,12 @@ export default function () {
<div className={classes.content_box}> <div className={classes.content_box}>
<div className={classes.box_item}> <div className={classes.box_item}>
<span>{t("当前级别")}</span> <span>{t("当前级别")}</span>
<span>{getLevelName(userUpgradeInfo?.level || 0)}</span> <span>
{getLevelName(
userUpgradeInfo?.level || 0,
userUpgradeInfo?.active
)}
</span>
</div> </div>
<IconFont <IconFont
className={classes.box_arrow} className={classes.box_arrow}

View File

@ -43,6 +43,7 @@ export interface UserUpgradeInformation {
proportion: string; proportion: string;
status: 1 | 0; //1=可升级 0=不可升级 status: 1 | 0; //1=可升级 0=不可升级
upgradeFees: string; upgradeFees: string;
active: 0 | 1; // "0=非活跃 1=活跃用户"
} }
export interface NftConfigurationData { export interface NftConfigurationData {
@ -110,7 +111,7 @@ export interface PreprelionListItem {
address: string; address: string;
level: 0 | 1 | 2 | 3; // 0=无等级 1=会员 2=社长 3=基金会 level: 0 | 1 | 2 | 3; // 0=无等级 1=会员 2=社长 3=基金会
mintNumber: number; mintNumber: number;
userType: number; userType: 0 | 1; // 0=非活跃 1=活跃用户
} }
export interface UpgradeOrder { export interface UpgradeOrder {

View File

@ -256,3 +256,41 @@
} }
} }
} }
.adm-dialog {
.adm-center-popup-body {
box-sizing: border-box !important;
border: 1px solid #fc872b !important;
border-radius: 10px !important;
background-color: transparent !important;
backdrop-filter: blur(10px);
.adm-dialog-content {
.adm-auto-center-content {
opacity: 1;
font-family: Space Grotesk;
font-size: 14px;
font-weight: 500;
line-height: normal;
letter-spacing: 0px;
font-variation-settings: "opsz" auto;
color: #ffffff;
z-index: 0;
}
}
.adm-dialog-footer {
.adm-dialog-action-row {
border-top: 1px solid #fc872b !important;
.adm-dialog-button {
span {
color: #fc872b;
}
}
}
}
}
}

View File

@ -8,7 +8,7 @@ import { type ClassValue, clsx } from "clsx";
import { twMerge } from "tailwind-merge"; import { twMerge } from "tailwind-merge";
import Toast from "antd-mobile/es/components/toast"; import Toast from "antd-mobile/es/components/toast";
import i18next from "i18next"; import i18next from "i18next";
import { Level } from "@/server/module"; import { Level, UserHomeData } from "@/server/module";
export const ua = navigator.userAgent; export const ua = navigator.userAgent;
export const isIOS = /iphone|ipad|ipod|ios/i.test(ua); export const isIOS = /iphone|ipad|ipod|ios/i.test(ua);
@ -84,12 +84,16 @@ export function cn(...inputs: ClassValue[]) {
return twMerge(clsx(inputs)); return twMerge(clsx(inputs));
} }
export function getLevelName(level: Level) { export function getLevelName(level: Level, active?: UserHomeData["active"]) {
switch (level) { switch (level) {
case 0: case 0:
return i18next.t("普通非活跃"); return i18next.t("无等级");
case 1: case 1:
return i18next.t("普通活跃"); if (active == 1) {
return i18next.t("普通活跃");
} else {
return i18next.t("普通非活跃");
}
case 2: case 2:
return i18next.t("社长"); return i18next.t("社长");
case 3: case 3:

View File

@ -1,7 +1,7 @@
/* /*
* @LastEditors: John * @LastEditors: John
* @Date: 2024-06-19 15:55:07 * @Date: 2024-06-19 15:55:07
* @LastEditTime: 2024-06-25 14:47:58 * @LastEditTime: 2024-06-26 15:18:22
* @Author: John * @Author: John
*/ */
import { config } from "@/components/WalletProvider"; import { config } from "@/components/WalletProvider";
@ -106,8 +106,6 @@ export async function signAndLogin(address?: `0x${string}`): Promise<void> {
}); });
} catch (error) { } catch (error) {
// 用户拒绝签名或者遇到错误,断开链接 // 用户拒绝签名或者遇到错误,断开链接
const { connector } = getAccount(config);
await disconnect(config, { connector });
loadingToast.close(); loadingToast.close();
loginOut(); loginOut();
throw new Error("用户拒绝签名或者遇到错误,断开链接"); throw new Error("用户拒绝签名或者遇到错误,断开链接");
@ -127,33 +125,21 @@ export async function signAndLogin(address?: `0x${string}`): Promise<void> {
useUserStore.setState((state) => { useUserStore.setState((state) => {
return { ...state, Token: loginInfoData.data?.token }; return { ...state, Token: loginInfoData.data?.token };
}); });
// TODO 判断用户是否绑定关系✔
const { data } =
await api_query_whether_the_user_is_binding_relationship().send({});
if (
typeof data?.data.result == "boolean" &&
data?.data.result === false
) {
const inviteCode = getUrlQueryParam(UrlQueryParamsKey.INVITE_CODE);
if (inviteCode) {
const { data } = await api_binding_invitation_relationship().send({
data: {
shareCode: inviteCode,
},
});
}
}
reslove(); reslove();
loadingToast.close(); loadingToast.close();
} }
} else { } else {
const inviteCode = getUrlQueryParam(UrlQueryParamsKey.INVITE_CODE);
if (!inviteCode) {
Toast.show({ icon: "fail", content: i18next.t("无效的邀请链接") });
return loginOut();
}
// 注册 // 注册
await api_signUp().send({ await api_signUp().send({
data: { data: {
account: address, account: address,
publicKey, publicKey,
shareCode: "", shareCode: inviteCode,
chainType: 2, chainType: 2,
}, },
}); });
@ -164,7 +150,9 @@ export async function signAndLogin(address?: `0x${string}`): Promise<void> {
}); });
} }
export function loginOut() { export async function loginOut() {
const { connector } = getAccount(config);
await disconnect(config, { connector });
useUserStore.setState((state) => { useUserStore.setState((state) => {
return { ...state, Address: "", Token: "" }; return { ...state, Address: "", Token: "" };
}); });