add member page & tabbar item
parent
2920059ffa
commit
afdedea344
|
|
@ -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: '我的',
|
||||
|
|
|
|||
|
|
@ -17,6 +17,9 @@ function App({ children }: PropsWithChildren<any>) {
|
|||
}).then(res => {
|
||||
console.log(res.data);
|
||||
pt.setLang(res.data.data.lang);
|
||||
Taro.reLaunch({
|
||||
url: '/pages/index/index',
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
|
|
|
|||
|
|
@ -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<Taro.TabBarItem> = [
|
|||
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<Taro.TabBarItem> = [
|
|||
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) {
|
||||
|
|
|
|||
|
|
@ -0,0 +1,3 @@
|
|||
export default definePageConfig({
|
||||
usingComponents: {},
|
||||
});
|
||||
|
|
@ -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<CustomTabBar>(this.pageCtx);
|
||||
tabbar?.setSelected(2);
|
||||
}
|
||||
// 以上是TabBar相关
|
||||
|
||||
render(): ReactNode {
|
||||
return (
|
||||
<View>
|
||||
<Text>Member Page</Text>
|
||||
</View>
|
||||
);
|
||||
}
|
||||
}
|
||||
|
|
@ -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 (
|
||||
<AtForm onSubmit={this.onSubmit.bind(this)}>
|
||||
<AtMessage />
|
||||
<AtInput
|
||||
clear
|
||||
required
|
||||
name='phone'
|
||||
title={pt.get().informPage.phoneText.title}
|
||||
type='number'
|
||||
placeholder={pt.get().informPage.phoneText.placeholder}
|
||||
value={this.state.phone}
|
||||
onChange={this.handleChangePhone.bind(this)}
|
||||
/>
|
||||
<AtInput
|
||||
required
|
||||
clear
|
||||
name='name'
|
||||
title={pt.get().informPage.nameText.title}
|
||||
type='text'
|
||||
placeholder={pt.get().informPage.nameText.placeholder}
|
||||
value={this.state.name}
|
||||
onChange={this.handleChangeName.bind(this)}
|
||||
/>
|
||||
<AtButton
|
||||
loading={this.state.isLoading}
|
||||
formType='submit'
|
||||
type='primary'
|
||||
disabled={this.state.isDisable}
|
||||
>
|
||||
{pt.get().button.buttonText.submit}
|
||||
</AtButton>
|
||||
</AtForm>
|
||||
<View>
|
||||
<AtForm onSubmit={this.onSubmit.bind(this)}>
|
||||
<AtMessage />
|
||||
<AtInput
|
||||
clear
|
||||
required
|
||||
name='phone'
|
||||
title={pt.get().informPage.phoneText.title}
|
||||
type='number'
|
||||
placeholder={pt.get().informPage.phoneText.placeholder}
|
||||
value={this.state.phone}
|
||||
onChange={this.handleChangePhone.bind(this)}
|
||||
/>
|
||||
<AtInput
|
||||
required
|
||||
clear
|
||||
name='name'
|
||||
title={pt.get().informPage.nameText.title}
|
||||
type='text'
|
||||
placeholder={pt.get().informPage.nameText.placeholder}
|
||||
value={this.state.name}
|
||||
onChange={this.handleChangeName.bind(this)}
|
||||
/>
|
||||
<AtButton
|
||||
loading={this.state.isLoading}
|
||||
formType='submit'
|
||||
type='primary'
|
||||
disabled={this.state.isDisable}
|
||||
>
|
||||
{pt.get().button.buttonText.submit}
|
||||
</AtButton>
|
||||
</AtForm>
|
||||
</View>
|
||||
);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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<CustomTabBar>(this.pageCtx);
|
||||
tabbar?.setSelected(2);
|
||||
tabbar?.setSelected(this.state.haveAccess ? 3 : 2);
|
||||
}
|
||||
// 以上是TabBar相关
|
||||
|
||||
|
|
|
|||
|
|
@ -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',
|
||||
};
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
Loading…
Reference in New Issue