|
@@ -7,8 +7,14 @@ import Padding, { EdgeInsets } from "@/component/padding";
|
|
|
import SizeBox from "@/component/sizeBox";
|
|
|
import AppContext from "@/context/appContext";
|
|
|
import ImageUtil from "@/utils/imgUtils";
|
|
|
-import { Image, View, Text ,Input, Button as TaroButton } from "@tarojs/components";
|
|
|
-import { PropsWithChildren, useContext ,useRef} from "react";
|
|
|
+import {
|
|
|
+ Image,
|
|
|
+ View,
|
|
|
+ Text,
|
|
|
+ Input,
|
|
|
+ Button as TaroButton,
|
|
|
+} from "@tarojs/components";
|
|
|
+import { PropsWithChildren, useContext, useRef } from "react";
|
|
|
import useStore from "@/hooks/useRedux";
|
|
|
import RouteUtil from "@/utils/routeUtil";
|
|
|
import UserHelper from "@/helper/userHelper";
|
|
@@ -23,7 +29,7 @@ const Mine = (props: PropsWithChildren<IMineProps>) => {
|
|
|
const { screenSize } = useContext(AppContext);
|
|
|
const { statusBarHeight } = appContext.systemInfo!;
|
|
|
const userInfo = useStore((p) => p.userInfo);
|
|
|
- const isUserLogin = UserHelper.isLogin()
|
|
|
+ const isUserLogin = UserHelper.isLogin();
|
|
|
|
|
|
const indexInfoResult = useRequest(() => {
|
|
|
return UserApi.getIndexInfoUsingPost({
|
|
@@ -31,100 +37,106 @@ const Mine = (props: PropsWithChildren<IMineProps>) => {
|
|
|
}).toData();
|
|
|
});
|
|
|
|
|
|
- const childRef:any = useRef()
|
|
|
+ const childRef: any = useRef();
|
|
|
const handleOpen = () => {
|
|
|
- childRef.current.handleOpen()
|
|
|
- }
|
|
|
+ childRef.current.handleOpen();
|
|
|
+ };
|
|
|
const postJumpUrlResult = () => {
|
|
|
- const params = parseQueryParams(indexInfoResult.data.link)
|
|
|
+ const params = parseQueryParams(indexInfoResult.data.link);
|
|
|
return UserApi.getJumpUrlPost({
|
|
|
loading: true,
|
|
|
- data: { appId: APPConfig.APPID, channelCode: params.channelCode, productId: params.productId }
|
|
|
- }).toData().then(res => {
|
|
|
- console.log("获取跳转链接结果", res)
|
|
|
- RouteUtil.toWebViewPage({ url: res?.adJumpLink })
|
|
|
+ data: {
|
|
|
+ appId: APPConfig.APPID,
|
|
|
+ channelCode: params.channelCode,
|
|
|
+ productId: params.productId,
|
|
|
+ },
|
|
|
})
|
|
|
- }
|
|
|
+ .toData()
|
|
|
+ .then((res) => {
|
|
|
+ console.log("获取跳转链接结果", res);
|
|
|
+ RouteUtil.toWebViewPage({ url: res?.adJumpLink });
|
|
|
+ });
|
|
|
+ };
|
|
|
|
|
|
const loginFlowHandler = () => {
|
|
|
- UserHelper.UpdateOpenId()
|
|
|
+ UserHelper.UpdateOpenId();
|
|
|
if (isOuterLink(indexInfoResult.data.link)) {
|
|
|
- postJumpUrlResult()
|
|
|
+ postJumpUrlResult();
|
|
|
} else {
|
|
|
- RouteUtil.toWebViewPage({ url: indexInfoResult.data.link })
|
|
|
+ RouteUtil.toWebViewPage({ url: indexInfoResult.data.link });
|
|
|
}
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
+ };
|
|
|
|
|
|
const ApplyButton = ({ isLogin }) => {
|
|
|
return (
|
|
|
<>
|
|
|
- {
|
|
|
- isLogin ? (<Button className='mine-apply-panel-button' onClick={() => {
|
|
|
- UserHelper.afterLogin({
|
|
|
- pop: false,
|
|
|
- callback: async () => {
|
|
|
- indexInfoResult.data && loginFlowHandler()
|
|
|
- },
|
|
|
- });
|
|
|
- }}
|
|
|
- >立即申请</Button>) : (<Button onClick={handleOpen}
|
|
|
- className='mine-apply-panel-button'
|
|
|
- >立即申请</Button>)
|
|
|
- }
|
|
|
+ {isLogin ? (
|
|
|
+ <Button
|
|
|
+ className="mine-apply-panel-button"
|
|
|
+ onClick={() => {
|
|
|
+ UserHelper.afterLogin({
|
|
|
+ pop: false,
|
|
|
+ callback: async () => {
|
|
|
+ indexInfoResult.data && loginFlowHandler();
|
|
|
+ },
|
|
|
+ });
|
|
|
+ }}
|
|
|
+ >
|
|
|
+ 立即申请
|
|
|
+ </Button>
|
|
|
+ ) : (
|
|
|
+ <Button onClick={handleOpen} className="mine-apply-panel-button">
|
|
|
+ 立即申请
|
|
|
+ </Button>
|
|
|
+ )}
|
|
|
</>
|
|
|
- )
|
|
|
- }
|
|
|
- const LoginBoxs = ({ isLogin ,userName}) => {
|
|
|
- return(
|
|
|
+ );
|
|
|
+ };
|
|
|
+ const LoginBoxs = ({ isLogin, userName }) => {
|
|
|
+ return (
|
|
|
<>
|
|
|
- { isLogin?
|
|
|
- <View
|
|
|
- className="mine-info"
|
|
|
- >
|
|
|
- <Padding padding={EdgeInsets.symmetric({ horizontal: 20 })}>
|
|
|
- <Image
|
|
|
- src={require("../../../assets/icon_head.png")}
|
|
|
- className='avatar-image-head'
|
|
|
- />
|
|
|
- </Padding>
|
|
|
- <View className="mine-box">
|
|
|
- <Text className='mine-login'>{userName}</Text>
|
|
|
- <Text className='mine-text'>欢迎来到惠融钱包~</Text>
|
|
|
+ {isLogin ? (
|
|
|
+ <View className="mine-info">
|
|
|
+ <Padding padding={EdgeInsets.symmetric({ horizontal: 20 })}>
|
|
|
+ <Image
|
|
|
+ src={require("../../../assets/icon_head.png")}
|
|
|
+ className="avatar-image-head"
|
|
|
+ />
|
|
|
+ </Padding>
|
|
|
+ <View className="mine-box">
|
|
|
+ <Text className="mine-login">{userName}</Text>
|
|
|
+ <Text className="mine-text">欢迎来到惠融钱包~</Text>
|
|
|
+ </View>
|
|
|
</View>
|
|
|
- </View> :
|
|
|
- <View
|
|
|
- className="mine-info"
|
|
|
- onClick={handleOpen}
|
|
|
- >
|
|
|
- <Padding padding={EdgeInsets.symmetric({ horizontal: 20 })}>
|
|
|
- <Image
|
|
|
- src={require("../../../assets/icon_head.png")}
|
|
|
- className='avatar-image-head'
|
|
|
- />
|
|
|
- </Padding>
|
|
|
- <View className="mine-box">
|
|
|
- <Text className='mine-login'>登录/注册</Text>
|
|
|
- <Text className='mine-text'>欢迎来到惠融钱包~</Text>
|
|
|
+ ) : (
|
|
|
+ <View className="mine-info" onClick={handleOpen}>
|
|
|
+ <Padding padding={EdgeInsets.symmetric({ horizontal: 20 })}>
|
|
|
+ <Image
|
|
|
+ src={require("../../../assets/icon_head.png")}
|
|
|
+ className="avatar-image-head"
|
|
|
+ />
|
|
|
+ </Padding>
|
|
|
+ <View className="mine-box">
|
|
|
+ <Text className="mine-login">登录/注册</Text>
|
|
|
+ <Text className="mine-text">欢迎来到惠融钱包~</Text>
|
|
|
+ </View>
|
|
|
</View>
|
|
|
- </View>
|
|
|
- }
|
|
|
+ )}
|
|
|
</>
|
|
|
- )
|
|
|
- }
|
|
|
- const maskPhone = (phone:string) => {
|
|
|
+ );
|
|
|
+ };
|
|
|
+ const maskPhone = (phone: string) => {
|
|
|
if (!phone || phone.length !== 11) return phone; // 确保电话号码有效且长度为11位
|
|
|
- return phone.replace(/(\d{3})\d{4}(\d{4})/, '$1***$2');
|
|
|
- }
|
|
|
+ return phone.replace(/(\d{3})\d{4}(\d{4})/, "$1***$2");
|
|
|
+ };
|
|
|
const userName = maskPhone(userInfo.userMobile);
|
|
|
return (
|
|
|
- <Layout className='mine' bottomBarIndex={1}>
|
|
|
+ <Layout className="mine" bottomBarIndex={1}>
|
|
|
<SizeBox height={statusBarHeight}></SizeBox>
|
|
|
<SizeBox height={36}></SizeBox>
|
|
|
<LoginBoxs isLogin={isUserLogin} userName={userName}></LoginBoxs>
|
|
|
<View
|
|
|
- className='mine-apply-panel'
|
|
|
+ className="mine-apply-panel"
|
|
|
style={{
|
|
|
...ImageUtil.calculationHeight(
|
|
|
750 / 324,
|
|
@@ -133,9 +145,9 @@ const Mine = (props: PropsWithChildren<IMineProps>) => {
|
|
|
position: "relative",
|
|
|
}}
|
|
|
>
|
|
|
- <Text className='mine-apply-panel-title'>最高可申请(元)</Text>
|
|
|
- <Flex justifyContent='space-between' alignItem='center' direction='row'>
|
|
|
- <Text className='mine-apply-panel-money'>200,000</Text>
|
|
|
+ <Text className="mine-apply-panel-title">最高可申请(元)</Text>
|
|
|
+ <Flex justifyContent="space-between" alignItem="center" direction="row">
|
|
|
+ <Text className="mine-apply-panel-money">200,000</Text>
|
|
|
{/* <Button
|
|
|
className='mine-apply-panel-button'
|
|
|
onClick={() => {
|
|
@@ -155,23 +167,25 @@ const Mine = (props: PropsWithChildren<IMineProps>) => {
|
|
|
<ApplyButton isLogin={isUserLogin}></ApplyButton>
|
|
|
</Flex>
|
|
|
<Flex
|
|
|
- justifyContent='flex-start'
|
|
|
- alignItem='center'
|
|
|
- direction='row'
|
|
|
+ justifyContent="flex-start"
|
|
|
+ alignItem="center"
|
|
|
+ direction="row"
|
|
|
columnGap={12}
|
|
|
- className='mine-apply-panel-tip'
|
|
|
+ className="mine-apply-panel-tip"
|
|
|
>
|
|
|
<Text>年化利率7.2-24%(单利)</Text>
|
|
|
- <View className='split-char'></View>
|
|
|
+ <View className="split-char"></View>
|
|
|
<Text>期限3-36个月</Text>
|
|
|
</Flex>
|
|
|
</View>
|
|
|
|
|
|
- <View className='mine-apply-panel-warn'>
|
|
|
- <Image src={require('@/assets/new-edition/icon-info.png')} className='icon-info' />
|
|
|
- <Text>具体额度以资金方审批为准</Text>
|
|
|
- </View>
|
|
|
-
|
|
|
+ <View className="mine-apply-panel-warn">
|
|
|
+ <Image
|
|
|
+ src={require("@/assets/new-edition/icon-info.png")}
|
|
|
+ className="icon-info"
|
|
|
+ />
|
|
|
+ <Text>具体额度以资金方审批为准</Text>
|
|
|
+ </View>
|
|
|
|
|
|
{/* <View
|
|
|
style={{
|
|
@@ -201,37 +215,37 @@ const Mine = (props: PropsWithChildren<IMineProps>) => {
|
|
|
</View> */}
|
|
|
<SizeBox height={16} />
|
|
|
<Padding padding={EdgeInsets.symmetric({ horizontal: 32 })}>
|
|
|
- <View className='mine-tools-panel-title'>我的工具</View>
|
|
|
- <View className='mine-tools-panel'>
|
|
|
+ <View className="mine-tools-panel-title">我的工具</View>
|
|
|
+ <View className="mine-tools-panel">
|
|
|
<TaroButton
|
|
|
- open-type='contact'
|
|
|
- session-from='sessionFrom'
|
|
|
- className='mine-tools-item'
|
|
|
+ open-type="contact"
|
|
|
+ session-from="sessionFrom"
|
|
|
+ className="mine-tools-item"
|
|
|
>
|
|
|
<Image
|
|
|
src={require("@/assets/new-edition/icon-service.svg")}
|
|
|
- className='mine-tools-item-icon'
|
|
|
+ className="mine-tools-item-icon"
|
|
|
/>
|
|
|
- <Text className='mine-tools-item-title'>在线客服</Text>
|
|
|
+ <Text className="mine-tools-item-title">在线客服</Text>
|
|
|
<Image
|
|
|
src={require("@/assets/new-edition/icon-arrow-right.svg")}
|
|
|
- className='icon-arrow'
|
|
|
+ className="icon-arrow"
|
|
|
/>
|
|
|
</TaroButton>
|
|
|
<View
|
|
|
- className='mine-tools-item'
|
|
|
+ className="mine-tools-item"
|
|
|
onClick={() => {
|
|
|
RouteUtil.push("/pages/user/setting/index");
|
|
|
}}
|
|
|
>
|
|
|
<Image
|
|
|
src={require("@/assets/new-edition/icon-setting.svg")}
|
|
|
- className='mine-tools-item-icon'
|
|
|
+ className="mine-tools-item-icon"
|
|
|
/>
|
|
|
- <View className='mine-tools-item-title'>系统设置</View>
|
|
|
+ <View className="mine-tools-item-title">系统设置</View>
|
|
|
<Image
|
|
|
src={require("@/assets/new-edition/icon-arrow-right.svg")}
|
|
|
- className='icon-arrow'
|
|
|
+ className="icon-arrow"
|
|
|
/>
|
|
|
</View>
|
|
|
</View>
|
|
@@ -247,7 +261,7 @@ const Mine = (props: PropsWithChildren<IMineProps>) => {
|
|
|
});
|
|
|
}}
|
|
|
src={require("@/assets/new-edition/wechat-official.png")}
|
|
|
- className='mine-image-wechat-official'
|
|
|
+ className="mine-image-wechat-official"
|
|
|
/>
|
|
|
</Padding>
|
|
|
{/* <Flex direction="row" className="mine-menu">
|