From 7988725223d07c68e93a7ec0c76d395957e43b75 Mon Sep 17 00:00:00 2001 From: "eleanor.mao" Date: Mon, 21 Apr 2025 22:13:54 +0800 Subject: [PATCH] feat: partner enrty --- src/components/partner-entry/index.less | 115 ++++++++++++++++++++++++ src/components/partner-entry/index.tsx | 60 +++++++++++++ src/constants/app.ts | 1 + src/hooks/use-config.tsx | 1 + src/pages/partner/index.config.ts | 3 + src/pages/partner/index.less | 10 +++ src/pages/partner/index.tsx | 23 +++++ src/pages/user/index.tsx | 2 + src/statics/svg/caret-right.svg | 3 + src/utils/company.ts | 7 +- 10 files changed, 221 insertions(+), 4 deletions(-) create mode 100644 src/components/partner-entry/index.less create mode 100644 src/components/partner-entry/index.tsx create mode 100644 src/pages/partner/index.config.ts create mode 100644 src/pages/partner/index.less create mode 100644 src/pages/partner/index.tsx create mode 100644 src/statics/svg/caret-right.svg diff --git a/src/components/partner-entry/index.less b/src/components/partner-entry/index.less new file mode 100644 index 0000000..c9e4311 --- /dev/null +++ b/src/components/partner-entry/index.less @@ -0,0 +1,115 @@ +@import '@/styles/variables.less'; +@import '@/styles/common.less'; + +.partner-fragment-entry { + &__join { + .flex-column(); + text-align: center; + min-height: 280px; + padding: 32px 40px; + box-sizing: border-box; + background: linear-gradient(2.75deg, #ffffff 7.9%, #f2edff 97.24%); + border-radius: 16px; + margin-bottom: 24px; + + &-title { + font-family: 'Alimama ShuHeiTi'; + font-style: normal; + font-weight: 700; + font-size: 32px; + line-height: 40px; + color: @blColor; + margin-bottom: 16px; + .flex-row(); + + .highlight { + color: @blHighlightColor; + font-family: 'DIN Alternate'; + font-weight: 700; + font-size: 50px; + line-height: 56px; + padding: 0 8px; + } + } + &-desc { + font-size: 26px; + line-height: 32px; + color: @blColorG1; + margin-bottom: 32px; + } + &-button { + .button(@width: 273px, @height: 72px, @fontSize: 28px, @fontWeight: 400, @borderRadius: 43px); + background: rgba(109, 61, 245, 0.12); + text-align: center; + color: @blHighlightColor; + } + } + + &__kanban { + min-height: 280px; + box-sizing: border-box; + border-radius: 16px; + margin-bottom: 24px; + padding: 36px 40px; + position: relative; + background: #6d3df5; + color: #fff; + &-button { + position: absolute; + top: 44px; + right: 56px; + font-size: 24px; + line-height: 24px; + &__image { + width: 20px; + height: 20px; + display: inline-block; + margin-left: 4px; + } + } + &-title { + font-style: normal; + font-weight: 400; + letter-spacing: 0.02em; + opacity: 0.7; + } + &-money { + font-family: 'Helvetica Neue'; + font-style: normal; + font-weight: 700; + } + &-total { + margin-bottom: 24px; + .partner-fragment-entry__kanban { + &-title { + font-size: 26px; + line-height: 40px; + margin-bottom: 12px; + } + &-money { + font-size: 48px; + line-height: 42px; + } + } + } + &-details { + .flex-row(); + &-part { + flex: 1; + + .partner-fragment-entry__kanban { + &-title { + font-size: 24px; + line-height: 36px; + margin-bottom: 4px; + } + &-money { + font-size: 32px; + line-height: 42px; + } + } + + } + } + } +} diff --git a/src/components/partner-entry/index.tsx b/src/components/partner-entry/index.tsx new file mode 100644 index 0000000..6f0d6fe --- /dev/null +++ b/src/components/partner-entry/index.tsx @@ -0,0 +1,60 @@ +import { Button, Image } from '@tarojs/components'; + +import { useState } from 'react'; +import './index.less'; + +const PREFIX = 'partner-fragment-entry'; + +function JoinEntry() { + return ( +
+
+ 加入播络合伙人,高达75%分成 +
+
模式简单,分成比例高,欢迎各位群主、经纪人或机构
+ +
+ ); +} + +function PartnerKanban() { + return ( +
+
+ 查看详情 + +
+
+
总收益(元)
+
1666.66
+
+
+
+
可提现(元)
+
666.23
+
+
+
提现中(元)
+
666.23
+
+
+
待分账(元)
+
666.23
+
+
+
+ ); +} + +export default function PartnerEntry() { + const [state] = useState(1); + + if (state === 0) { + return ; + } + return ; +} diff --git a/src/constants/app.ts b/src/constants/app.ts index 00f2495..5ebf71c 100644 --- a/src/constants/app.ts +++ b/src/constants/app.ts @@ -71,6 +71,7 @@ export enum PageUrl { CertificationManage = 'pages/certification-manage/index', ProtocolWebview = 'pages/protocol-webview/index', PrivacyWebview = 'pages/privacy-webview/index', + Partner = 'pages/partner/index', } export enum PluginUrl { diff --git a/src/hooks/use-config.tsx b/src/hooks/use-config.tsx index 64d41a1..b1984cc 100644 --- a/src/hooks/use-config.tsx +++ b/src/hooks/use-config.tsx @@ -94,6 +94,7 @@ export const APP_CONFIG: AppConfigType = { PageUrl.CertificationManage, PageUrl.ProtocolWebview, PageUrl.PrivacyWebview, + PageUrl.Partner, // PageUrl.DevDebug, ], window: { diff --git a/src/pages/partner/index.config.ts b/src/pages/partner/index.config.ts new file mode 100644 index 0000000..c3ade05 --- /dev/null +++ b/src/pages/partner/index.config.ts @@ -0,0 +1,3 @@ +export default definePageConfig({ + navigationBarTitleText: '合伙人', +}); diff --git a/src/pages/partner/index.less b/src/pages/partner/index.less new file mode 100644 index 0000000..eee325d --- /dev/null +++ b/src/pages/partner/index.less @@ -0,0 +1,10 @@ +@import '@/styles/common.less'; +@import '@/styles/variables.less'; + +.partner { + &__tabs { + --tabs-active-color: @blHighlightColor; + --tabs-nav-background-color: #fff; + --tabs-wrap-height: 98px; + } +} diff --git a/src/pages/partner/index.tsx b/src/pages/partner/index.tsx new file mode 100644 index 0000000..41c07df --- /dev/null +++ b/src/pages/partner/index.tsx @@ -0,0 +1,23 @@ +import { Tabs } from '@taroify/core'; + +import './index.less'; + +const PREFIX = 'partner'; + +export default function Partner() { + return ( +
+ + + 简介 + + + 邀请名单 + + + 我的收益 + + +
+ ); +} diff --git a/src/pages/user/index.tsx b/src/pages/user/index.tsx index e5e525d..d2b3d99 100644 --- a/src/pages/user/index.tsx +++ b/src/pages/user/index.tsx @@ -6,6 +6,7 @@ import { useCallback } from 'react'; import CustomNavigationBar from '@/components/custom-navigation-bar'; import HomePage from '@/components/home-page'; import LoginButton from '@/components/login-button'; +import PartnerEntry from '@/components/partner-entry'; import Slogan from '@/components/slogan'; import SwitchBar from '@/components/switch-bar'; import { RoleType, PageUrl } from '@/constants/app'; @@ -68,6 +69,7 @@ export default function User() { /> + {roleType === RoleType.Anchor && } {roleType === RoleType.Company && } diff --git a/src/statics/svg/caret-right.svg b/src/statics/svg/caret-right.svg new file mode 100644 index 0000000..cbd0712 --- /dev/null +++ b/src/statics/svg/caret-right.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/utils/company.ts b/src/utils/company.ts index 3a7712f..c4f46ab 100644 --- a/src/utils/company.ts +++ b/src/utils/company.ts @@ -9,8 +9,7 @@ export const postCertification = async (data: ICertificationRequest) => { return result; }; -export const getPhone = async(code: string): Promise<{phoneNumber: string}> => { - const result = await http.post<{ code :string }>(API.GET_PHONE, { data: {code} }); +export const getPhone = async (code: string): Promise<{ code: string }> => { + const result = await http.post<{ code: string }>(API.GET_PHONE, { data: { code } }); return result; - -} \ No newline at end of file +};