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 (
+
+ );
+}
+
+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
+};