From 40b6eb2c0d3731c8bbbdaed2e2e8d2274bea0d17 Mon Sep 17 00:00:00 2001 From: jinyaqiu Date: Thu, 24 Jul 2025 16:45:29 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=9D=83=E7=9B=8A=E9=A1=B5=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/(tabs)/_layout.tsx | 11 ++ app/(tabs)/owner.tsx | 12 +- app/(tabs)/rights.tsx | 223 ++++++++++++++++++++++++++ assets/icons/svg/blackStar.svg | 3 + assets/icons/svg/get.svg | 3 + assets/icons/svg/proCard.svg | 62 +++++++ assets/icons/svg/rightCard.svg | 47 ++++++ assets/icons/svg/whiteStart.svg | 3 + assets/images/png/placeholder.png | Bin 96 -> 35052 bytes components/owner/rights/normal.tsx | 72 +++++++++ components/owner/rights/premium.tsx | 139 ++++++++++++++++ components/owner/rights/proRights.tsx | 47 ++++++ components/owner/rights/utils.ts | 12 ++ 13 files changed, 631 insertions(+), 3 deletions(-) create mode 100644 app/(tabs)/rights.tsx create mode 100644 assets/icons/svg/blackStar.svg create mode 100644 assets/icons/svg/get.svg create mode 100644 assets/icons/svg/proCard.svg create mode 100644 assets/icons/svg/rightCard.svg create mode 100644 assets/icons/svg/whiteStart.svg create mode 100644 components/owner/rights/normal.tsx create mode 100644 components/owner/rights/premium.tsx create mode 100644 components/owner/rights/proRights.tsx create mode 100644 components/owner/rights/utils.ts diff --git a/app/(tabs)/_layout.tsx b/app/(tabs)/_layout.tsx index aaed35a..b5b2871 100644 --- a/app/(tabs)/_layout.tsx +++ b/app/(tabs)/_layout.tsx @@ -328,6 +328,17 @@ export default function TabLayout() { tabBarStyle: { display: 'none' } // 确保在标签栏中不显示 }} /> + + {/* 购买权益页面 */} + null, // 隐藏底部标签栏 + headerShown: false, // 隐藏导航栏 + tabBarStyle: { display: 'none' } // 确保在标签栏中不显示 + }} + /> ); } diff --git a/app/(tabs)/owner.tsx b/app/(tabs)/owner.tsx index 9b6a75f..b1d34cc 100644 --- a/app/(tabs)/owner.tsx +++ b/app/(tabs)/owner.tsx @@ -15,7 +15,7 @@ import { CountData, UserInfoDetails } from '@/types/user'; import { useRouter } from 'expo-router'; import { useEffect, useState } from 'react'; import { useTranslation } from 'react-i18next'; -import { FlatList, StyleSheet, View } from 'react-native'; +import { FlatList, StyleSheet, TouchableOpacity, View } from 'react-native'; import { useSafeAreaInsets } from "react-native-safe-area-context"; export default function OwnerPage() { @@ -86,13 +86,19 @@ export default function OwnerPage() { {/* 资源数据 */} - + router.push({ + pathname: '/rights', + params: { credit: userInfoDetails?.remain_points } + })} + style={styles.resourceContainer} + > {t("generalSetting.premium", { ns: "personal" })} {t("generalSetting.unlock", { ns: "personal" })} - + {/* 分类 */} diff --git a/app/(tabs)/rights.tsx b/app/(tabs)/rights.tsx new file mode 100644 index 0000000..73241a8 --- /dev/null +++ b/app/(tabs)/rights.tsx @@ -0,0 +1,223 @@ +import ProCardSvg from '@/assets/icons/svg/proCard.svg'; +import ReturnArrowSvg from '@/assets/icons/svg/returnArrow.svg'; +import RightsCardSvg from '@/assets/icons/svg/rightCard.svg'; +import StarSvg from '@/assets/icons/svg/whiteStart.svg'; +import PrivacyModal from '@/components/owner/qualification/privacy'; +import Normal from '@/components/owner/rights/normal'; +import Premium, { PayItem } from '@/components/owner/rights/premium'; +import ProRights from '@/components/owner/rights/proRights'; +import { maxDiscountProduct } from '@/components/owner/rights/utils'; +import { ThemedText } from '@/components/ThemedText'; +import { fetchApi } from '@/lib/server-api-util'; +import { useLocalSearchParams, useRouter } from "expo-router"; +import { useEffect, useState } from 'react'; +import { StyleSheet, TouchableOpacity, View } from 'react-native'; +import { useSafeAreaInsets } from "react-native-safe-area-context"; + +export default function Rights() { + const insets = useSafeAreaInsets(); + const router = useRouter(); + // 获取路由参数 + const { credit } = useLocalSearchParams<{ + credit: string; + }>(); + // 普通用户,会员 + const [userType, setUserType] = useState<'normal' | 'premium'>('normal'); + // 选择权益方式 + const [payType, setPayType] = useState(''); + + // 用户协议弹窗打开 + const [showTerms, setShowTerms] = useState(false); + + // 调接口获取支付信息 + const [premiumPay, setPremiumPay] = useState(); + const [loading, setLoading] = useState(false); + const getPAy = async () => { + setLoading(true); + const payInfo = await fetchApi(`/order/product-items?product_type=Membership`) + let bestValue = maxDiscountProduct(payInfo) + setPayType(bestValue?.product_code) + setPremiumPay([bestValue, ...payInfo?.filter((item) => item.product_code !== bestValue?.product_code)]); + setLoading(false); + } + useEffect(() => { + getPAy(); + }, []); + + return ( + + {/* 导航栏 */} + + { router.push('/owner') }} style={{ padding: 16 }}> + + + + Subscription + + 123 + + {/* 会员卡 */} + + {userType === 'normal' ? ( + + ) : ( + + )} + + + + Purchase + + + + {credit} + + + + + + {/* 会员信息 */} + + {/* 切换按钮 */} + + { setUserType("normal") }} style={[styles.switchButtonItem, { backgroundColor: userType === 'normal' ? "#FFB645" : "#fff", borderColor: userType === 'normal' ? "#FFB645" : "#E2793F" }]}> + Free + + { setUserType("premium") }} style={[styles.switchButtonItem, { backgroundColor: userType === 'premium' ? "#E2793F" : "#fff", borderColor: userType === 'premium' ? "#E2793F" : "#E2793F" }]}> + Pro + + + {/* 普通权益 */} + + {/* 会员权益 */} + + + {/* 会员权益信息 */} + + {/* 付费按钮 */} + + { + setUserType('premium'); + }} + activeOpacity={0.8} + > + + Subscribe Yearly + + + { + setShowTerms(true); + }} + activeOpacity={0.8} + > + + Terms • Privacy + + + + {/* 协议弹窗 */} + + + ); +} + +const styles = StyleSheet.create({ + goPay: { + backgroundColor: '#E2793F', + borderRadius: 24, + paddingVertical: 10, + display: "flex", + alignItems: "center", + width: "100%", + }, + switchButton: { + flexDirection: 'row', + justifyContent: 'space-between', + alignItems: 'center', + gap: 16, + marginBottom: 16 + }, + switchButtonItem: { + width: "48%", + borderRadius: 24, + paddingVertical: 6, + display: "flex", + alignItems: "center", + borderWidth: 1 + }, + info: { + marginHorizontal: 16, + marginVertical: 16, + padding: 16, + borderRadius: 12, + shadowColor: "#000", + shadowOffset: { + width: 0, + height: 2, + }, + shadowOpacity: 0.25, + shadowRadius: 3.84, + elevation: 5, + }, + container: { + flex: 1, + backgroundColor: 'white', + }, + header: { + display: 'flex', + flexDirection: 'row', + justifyContent: 'space-between', + alignItems: 'center', + marginVertical: 16, + }, + headerTitle: { + fontSize: 20, + fontWeight: '700', + color: '#4C320C', + }, + card: { + marginHorizontal: 16, + marginVertical: 16, + backgroundColor: '#FFB645', + borderRadius: 12, + }, + cardContent: { + position: 'absolute', + top: 0, + right: 0, + bottom: 0, + left: 0, + padding: 16, + justifyContent: 'space-between' + }, + cardinfo: { + alignItems: 'flex-end', + }, + cardTitle: { + fontSize: 12, + fontWeight: '700', + color: '#E2793F', + backgroundColor: '#fff', + paddingHorizontal: 8, + paddingVertical: 2, + borderRadius: 20, + textAlign: 'center', + marginBottom: 24 + }, + cardPoints: { + display: 'flex', + flexDirection: 'row', + alignItems: 'center', + gap: 4 + }, + cardPointsText: { + fontSize: 32, + fontWeight: '700', + color: '#4C320C' + } +}); diff --git a/assets/icons/svg/blackStar.svg b/assets/icons/svg/blackStar.svg new file mode 100644 index 0000000..c2c076f --- /dev/null +++ b/assets/icons/svg/blackStar.svg @@ -0,0 +1,3 @@ + + + diff --git a/assets/icons/svg/get.svg b/assets/icons/svg/get.svg new file mode 100644 index 0000000..1fd3a95 --- /dev/null +++ b/assets/icons/svg/get.svg @@ -0,0 +1,3 @@ + + + diff --git a/assets/icons/svg/proCard.svg b/assets/icons/svg/proCard.svg new file mode 100644 index 0000000..834fb22 --- /dev/null +++ b/assets/icons/svg/proCard.svg @@ -0,0 +1,62 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/icons/svg/rightCard.svg b/assets/icons/svg/rightCard.svg new file mode 100644 index 0000000..80ed82e --- /dev/null +++ b/assets/icons/svg/rightCard.svg @@ -0,0 +1,47 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/icons/svg/whiteStart.svg b/assets/icons/svg/whiteStart.svg new file mode 100644 index 0000000..17fc045 --- /dev/null +++ b/assets/icons/svg/whiteStart.svg @@ -0,0 +1,3 @@ + + + diff --git a/assets/images/png/placeholder.png b/assets/images/png/placeholder.png index 5371d4acf952a8e64948edf54baedb385d51e8cc..0565ebd2be2e6c3f88161d649f404e9108997b4d 100644 GIT binary patch literal 35052 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

I1?!GP3|-({hjhef@yswdc{pfz(!2hI6AV> zwUH4+^ldPC(VvBwMbWy(#zxDdtgI{}{U~YnYtly;|Nrm*$rZ?j+)KQ8FZ5$;M$YQr P1V78F$W%(1{P%wV>fFYz literal 96 zcmc}{bMg-=H}G~(&vyg@zu?de*U)qj(-lNGIXgyz=rp(FU@s8EB{au1Ff7Q#C^x`D m-&8xpBi+#>J>5$`AUVU+yd0#$$tx(-)U_zvD?L5k))oMA`W)f_ diff --git a/components/owner/rights/normal.tsx b/components/owner/rights/normal.tsx new file mode 100644 index 0000000..8179dae --- /dev/null +++ b/components/owner/rights/normal.tsx @@ -0,0 +1,72 @@ +import GetSvg from "@/assets/icons/svg/get.svg"; +import { ThemedText } from "@/components/ThemedText"; +import { StyleProp, StyleSheet, TouchableOpacity, View, ViewStyle } from "react-native"; + +interface Props { + setUserType: (type: 'normal' | 'premium') => void; + style?: StyleProp; +} + +const Normal = (props: Props) => { + const { setUserType } = props; + + return ( + + + + + + Enjoy 100 Bonus Credits Every Month + + Generate more memory pictures & videos and explore your past. + + + + + 10GB of Cloud Storage + + Safely store your cherished photos, videos, and generated memories. + + + { + setUserType('premium'); + }} + activeOpacity={0.8} + > + + Go Premium + + + + ); +} + +export default Normal; +const styles = StyleSheet.create({ + goPro: { + backgroundColor: '#E2793F', + borderRadius: 24, + paddingVertical: 6, + display: "flex", + alignItems: "center", + width: "100%", + }, + normalInfo: { + display: "flex", + flexDirection: "column", + alignItems: "center", + gap: 16 + }, + normalItem: { + display: "flex", + flexDirection: "column", + alignItems: "flex-start", + gap: 16 + }, + normalItemContent: { + display: "flex", + flexDirection: "column", + } +}); \ No newline at end of file diff --git a/components/owner/rights/premium.tsx b/components/owner/rights/premium.tsx new file mode 100644 index 0000000..2485d10 --- /dev/null +++ b/components/owner/rights/premium.tsx @@ -0,0 +1,139 @@ +import BlackStarSvg from '@/assets/icons/svg/blackStar.svg'; +import { ThemedText } from "@/components/ThemedText"; +import { StyleProp, StyleSheet, TouchableOpacity, View, ViewStyle } from "react-native"; +import { ScrollView } from 'react-native-gesture-handler'; +import { maxDiscountProduct } from './utils'; + +interface Props { + style?: StyleProp; + payType: string; + setPayType: (type: string) => void; + premiumPay: any; + loading: boolean; + setShowTerms: (visible: boolean) => void; +} + +export interface PayItem { + id: number; + product_id: number; + product_type: string; + product_code: string; + product_name: string; + unit_price: { + amount: string; + currency: string; + }, + discount_amount: { + amount: string; + currency: string; + } + +} +const Premium = (props: Props) => { + const { style, payType, setPayType, premiumPay, loading, setShowTerms } = props; + const bestValue = maxDiscountProduct(premiumPay)?.product_code + + return ( + + + {loading + ? + + Loading... + + : + premiumPay?.map((item: PayItem) => { + return { + setPayType(item?.product_code); + }} + style={[styles.yearly, { borderColor: payType === item?.product_code ? '#FFB645' : '#E1E1E1', opacity: payType === item?.product_code ? 1 : 0.5 }]} + activeOpacity={0.8} + > + + + + Best Value + + + + + {item.product_code?.split('_')[item.product_code?.split('_')?.length - 1]} + + + $ {item.unit_price.amount} + + + + $ {item.discount_amount.amount} + + + + }) + } + + + + Cancel anytime before renewal. Learn more + + setShowTerms(true)}> + Terms & Conditions + + + + ); +} + +export default Premium; +const styles = StyleSheet.create({ + proInfo: { + borderRadius: 24, + display: "flex", + width: "100%", + }, + yearly: { + display: "flex", + flexDirection: "column", + alignItems: "center", + gap: 16, + borderColor: "#FFB645", + borderWidth: 2, + borderRadius: 24, + width: "48%", + paddingBottom: 16 + }, + quarterly: { + display: "flex", + flexDirection: "column", + alignItems: "center", + justifyContent: "center", + gap: 20, + borderColor: "#FAF9F6", + borderWidth: 2, + borderRadius: 24, + width: "48%", + paddingBottom: 16, + height: "100%", + }, + title: { + display: "flex", + flexDirection: "row", + alignItems: "center", + justifyContent: "center", + gap: 8, + backgroundColor: "#FFB645", + borderTopLeftRadius: 20, + borderTopRightRadius: 20, + padding: 4, + width: "100%" + }, + titleText: { + color: '#4C320C', + fontWeight: '700' + } +}); \ No newline at end of file diff --git a/components/owner/rights/proRights.tsx b/components/owner/rights/proRights.tsx new file mode 100644 index 0000000..11a5210 --- /dev/null +++ b/components/owner/rights/proRights.tsx @@ -0,0 +1,47 @@ +import GetSvg from "@/assets/icons/svg/get.svg"; +import { ThemedText } from "@/components/ThemedText"; +import { StyleProp, StyleSheet, View, ViewStyle } from "react-native"; +const ProRights = (props: { style?: StyleProp }) => { + const { style } = props; + return ( + + + Enjoy MemoWake Pro Benefits + + + + + no advertisement + + There are no advertisements, so you can use the product with peace of mind. + + + + + Enjoy 1000 Bonus Credits Every Month + + Generate more memory pictures & videos and explore your past. + + + + + 100GB of Cloud Storage + + Safely store your cherished photos, videos, and generated memories. + + + ); +} + +const styles = StyleSheet.create({ + proRights: { + padding: 16, + gap: 8 + }, + itemContent: { + display: "flex", + flexDirection: "column", + } +}) + +export default ProRights; diff --git a/components/owner/rights/utils.ts b/components/owner/rights/utils.ts new file mode 100644 index 0000000..b7e16c8 --- /dev/null +++ b/components/owner/rights/utils.ts @@ -0,0 +1,12 @@ +import { PayItem } from "./premium"; + +// 使用 reduce 方法获取 discount_amount 的 amount 值最大的对象 +export const maxDiscountProduct = (products: PayItem[]) => { + return products?.reduce((max, current) => { + // 将 amount 转换为数字进行比较 + const maxAmount = parseFloat(max.discount_amount.amount); + const currentAmount = parseFloat(current.discount_amount.amount); + + return currentAmount > maxAmount ? current : max; + }); +} \ No newline at end of file