From afdedea34471e251f38c62900f5a3c0f162e501a Mon Sep 17 00:00:00 2001 From: Dawn_Ocean <1785590531@qq.com> Date: Mon, 11 Mar 2024 19:22:51 +0800 Subject: [PATCH] add member page & tabbar item --- src/app.config.ts | 5 +++ src/app.ts | 3 ++ src/custom-tab-bar/index.tsx | 52 ++++++++++++++++++------- src/pages/member/member.config.ts | 3 ++ src/pages/member/member.scss | 0 src/pages/member/member.tsx | 23 +++++++++++ src/pages/user/inform/inform.tsx | 65 ++++++++++++++++--------------- src/pages/user/user.tsx | 4 +- src/plain-text/TabBar.ts | 3 ++ src/wechat/index.ts | 32 +++++++++++++++ 10 files changed, 144 insertions(+), 46 deletions(-) create mode 100644 src/pages/member/member.config.ts create mode 100644 src/pages/member/member.scss create mode 100644 src/pages/member/member.tsx create mode 100644 src/wechat/index.ts diff --git a/src/app.config.ts b/src/app.config.ts index e371740..0f19d97 100644 --- a/src/app.config.ts +++ b/src/app.config.ts @@ -2,6 +2,7 @@ export default defineAppConfig({ pages: [ 'pages/index/index', 'pages/repair/repair', + 'pages/member/member', 'pages/user/user', 'pages/user/myTicket/myTicket', 'pages/user/inform/inform', @@ -26,6 +27,10 @@ export default defineAppConfig({ pagePath: 'pages/repair/repair', text: '维修', }, + { + pagePath: 'pages/member/member', + text: '管理', + }, { pagePath: 'pages/user/user', text: '我的', diff --git a/src/app.ts b/src/app.ts index 2a58440..6a55898 100644 --- a/src/app.ts +++ b/src/app.ts @@ -17,6 +17,9 @@ function App({ children }: PropsWithChildren) { }).then(res => { console.log(res.data); pt.setLang(res.data.data.lang); + Taro.reLaunch({ + url: '/pages/index/index', + }); }); }); diff --git a/src/custom-tab-bar/index.tsx b/src/custom-tab-bar/index.tsx index 07fa1be..8001521 100644 --- a/src/custom-tab-bar/index.tsx +++ b/src/custom-tab-bar/index.tsx @@ -2,6 +2,7 @@ import { Component, ReactNode } from 'react'; import { AtTabBar } from 'taro-ui'; import Taro from '@tarojs/taro'; import pt from '@/plain-text'; +import wechatUser from '@/wechat'; import 'taro-ui/dist/style/index.scss'; import './index.scss'; @@ -14,6 +15,10 @@ const navList: Array = [ pagePath: '/pages/repair/repair', text: pt.get().tabBar.repairText, }, + { + pagePath: '/pages/member/member', + text: pt.get().tabBar.memberText, + }, { pagePath: '/pages/user/user', text: pt.get().tabBar.userText, @@ -23,20 +28,39 @@ const navList: Array = [ export default class Index extends Component { state = { selected: 0, - tabList: [ - { - title: pt.get().tabBar.indexText, - iconType: 'home', - }, - { - title: pt.get().tabBar.repairText, - iconType: 'settings', - }, - { - title: pt.get().tabBar.userText, - iconType: 'user', - }, - ], + tabList: wechatUser.getAccess() + ? [ + { + title: pt.get().tabBar.indexText, + iconType: 'home', + }, + { + title: pt.get().tabBar.repairText, + iconType: 'settings', + }, + { + title: pt.get().tabBar.memberText, + iconType: 'sketch', + }, + { + title: pt.get().tabBar.userText, + iconType: 'user', + }, + ] + : [ + { + title: pt.get().tabBar.indexText, + iconType: 'home', + }, + { + title: pt.get().tabBar.repairText, + iconType: 'settings', + }, + { + title: pt.get().tabBar.userText, + iconType: 'user', + }, + ], }; handleClick(idx: number) { diff --git a/src/pages/member/member.config.ts b/src/pages/member/member.config.ts new file mode 100644 index 0000000..a9ca517 --- /dev/null +++ b/src/pages/member/member.config.ts @@ -0,0 +1,3 @@ +export default definePageConfig({ + usingComponents: {}, +}); diff --git a/src/pages/member/member.scss b/src/pages/member/member.scss new file mode 100644 index 0000000..e69de29 diff --git a/src/pages/member/member.tsx b/src/pages/member/member.tsx new file mode 100644 index 0000000..712b9ee --- /dev/null +++ b/src/pages/member/member.tsx @@ -0,0 +1,23 @@ +import { View, Text } from '@tarojs/components'; +import { Component, ReactNode } from 'react'; +import Taro from '@tarojs/taro'; +import type CustomTabBar from '../../custom-tab-bar'; +import './member.scss'; + +export default class MemberPage extends Component { + // 以下是TabBar相关 + pageCtx = Taro.getCurrentInstance().page; + componentDidShow() { + const tabbar = Taro.getTabBar(this.pageCtx); + tabbar?.setSelected(2); + } + // 以上是TabBar相关 + + render(): ReactNode { + return ( + + Member Page + + ); + } +} diff --git a/src/pages/user/inform/inform.tsx b/src/pages/user/inform/inform.tsx index ea6445d..4897103 100644 --- a/src/pages/user/inform/inform.tsx +++ b/src/pages/user/inform/inform.tsx @@ -1,5 +1,6 @@ import { Component, ReactNode } from 'react'; import { AtForm, AtInput, AtButton, AtMessage } from 'taro-ui'; +import { View } from '@tarojs/components'; import { getUrl } from '@/service'; import Taro from '@tarojs/taro'; import pt from '@/plain-text'; @@ -67,37 +68,39 @@ export default class InformPage extends Component { render(): ReactNode { return ( - - - - - - {pt.get().button.buttonText.submit} - - + + + + + + + {pt.get().button.buttonText.submit} + + + ); } } diff --git a/src/pages/user/user.tsx b/src/pages/user/user.tsx index 95c4468..1b42ca8 100644 --- a/src/pages/user/user.tsx +++ b/src/pages/user/user.tsx @@ -7,6 +7,7 @@ import type CustomTabBar from '@/custom-tab-bar'; import PageFooter from '@/components/PageFooter/PageFooter'; import aboutIcon from '@/assets/icons/AboutPage/about.svg'; import pt, { Lang } from '@/plain-text'; +import wechatUser from '@/wechat'; import logo from '@/assets/images/UserPage/logo.png'; import './user.scss'; @@ -23,13 +24,14 @@ export default class UserPage extends Component { clicks: memberClickTimes, isToastOpen: false, toastText: '', + haveAccess: wechatUser.getAccess(), }; // 以下是TabBar相关 pageCtx = Taro.getCurrentInstance().page; componentDidShow() { const tabbar = Taro.getTabBar(this.pageCtx); - tabbar?.setSelected(2); + tabbar?.setSelected(this.state.haveAccess ? 3 : 2); } // 以上是TabBar相关 diff --git a/src/plain-text/TabBar.ts b/src/plain-text/TabBar.ts index 6947afd..229b8b9 100644 --- a/src/plain-text/TabBar.ts +++ b/src/plain-text/TabBar.ts @@ -2,16 +2,19 @@ export interface TabBarText { indexText: string; repairText: string; userText: string; + memberText: string; } export const tabBarZhCn: TabBarText = { indexText: '主页', repairText: '维修', userText: '我的', + memberText: '管理', }; export const tabBarEnUs: TabBarText = { indexText: 'Home', repairText: 'Repair', userText: 'Account', + memberText: 'Member', }; diff --git a/src/wechat/index.ts b/src/wechat/index.ts new file mode 100644 index 0000000..b78d136 --- /dev/null +++ b/src/wechat/index.ts @@ -0,0 +1,32 @@ +class WechatUser { + private userInfo: any; + private isMember: boolean; + hasUserInfo: boolean; + + constructor() { + this.userInfo = ''; + this.hasUserInfo = false; + this.isMember = true; + } + + getAccess() { + return this.isMember; + } + + getInfo() { + return this.userInfo; + } + + setInfo(userInfo: any) { + this.userInfo = userInfo; + this.hasUserInfo = true; + } + + setAccess(isMember: boolean) { + this.isMember = isMember; + } +} + +const wechatUser = new WechatUser(); + +export default wechatUser;