Compare commits

..

No commits in common. "d5b8af7d7b162d327dce67e61edc983dfba2e27b" and "2920059ffa5276e7aebaf81c111adb613b782bed" have entirely different histories.

21 changed files with 48 additions and 291 deletions

View File

@ -3,7 +3,6 @@
"projectname": "EVA-Notify", "projectname": "EVA-Notify",
"setting": { "setting": {
"compileHotReLoad": true, "compileHotReLoad": true,
"urlCheck": false, "urlCheck": false
"bigPackageSizeSupport": true
} }
} }

View File

@ -2,14 +2,12 @@ export default defineAppConfig({
pages: [ pages: [
'pages/index/index', 'pages/index/index',
'pages/repair/repair', 'pages/repair/repair',
'pages/member/member',
'pages/user/user', 'pages/user/user',
'pages/user/myTicket/myTicket', 'pages/user/myTicket/myTicket',
'pages/user/inform/inform', 'pages/user/inform/inform',
'pages/user/about/about', 'pages/user/about/about',
'pages/user/report/report', 'pages/user/report/report',
'pages/user/member/member', 'pages/user/member/member',
'pages/TicketDetail/TicketDetail',
], ],
window: { window: {
backgroundTextStyle: 'light', backgroundTextStyle: 'light',
@ -28,10 +26,6 @@ export default defineAppConfig({
pagePath: 'pages/repair/repair', pagePath: 'pages/repair/repair',
text: '维修', text: '维修',
}, },
{
pagePath: 'pages/member/member',
text: '管理',
},
{ {
pagePath: 'pages/user/user', pagePath: 'pages/user/user',
text: '我的', text: '我的',

View File

@ -17,9 +17,6 @@ function App({ children }: PropsWithChildren<any>) {
}).then(res => { }).then(res => {
console.log(res.data); console.log(res.data);
pt.setLang(res.data.data.lang); pt.setLang(res.data.data.lang);
Taro.reLaunch({
url: '/pages/index/index',
});
}); });
}); });

View File

@ -2,7 +2,6 @@ import { Component, ReactNode } from 'react';
import { AtTabBar } from 'taro-ui'; import { AtTabBar } from 'taro-ui';
import Taro from '@tarojs/taro'; import Taro from '@tarojs/taro';
import pt from '@/plain-text'; import pt from '@/plain-text';
import wechatUser from '@/wechat';
import 'taro-ui/dist/style/index.scss'; import 'taro-ui/dist/style/index.scss';
import './index.scss'; import './index.scss';
@ -15,10 +14,6 @@ const navList: Array<Taro.TabBarItem> = [
pagePath: '/pages/repair/repair', pagePath: '/pages/repair/repair',
text: pt.get().tabBar.repairText, text: pt.get().tabBar.repairText,
}, },
{
pagePath: '/pages/member/member',
text: pt.get().tabBar.memberText,
},
{ {
pagePath: '/pages/user/user', pagePath: '/pages/user/user',
text: pt.get().tabBar.userText, text: pt.get().tabBar.userText,
@ -28,39 +23,20 @@ const navList: Array<Taro.TabBarItem> = [
export default class Index extends Component { export default class Index extends Component {
state = { state = {
selected: 0, selected: 0,
tabList: wechatUser.getAccess() tabList: [
? [ {
{ title: pt.get().tabBar.indexText,
title: pt.get().tabBar.indexText, iconType: 'home',
iconType: 'home', },
}, {
{ title: pt.get().tabBar.repairText,
title: pt.get().tabBar.repairText, iconType: 'settings',
iconType: 'settings', },
}, {
{ title: pt.get().tabBar.userText,
title: pt.get().tabBar.memberText, iconType: 'user',
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) { handleClick(idx: number) {

View File

@ -1,3 +0,0 @@
export default definePageConfig({
usingComponents: {},
});

View File

@ -1,25 +0,0 @@
import { Component, ReactNode } from 'react';
import { View } from '@tarojs/components';
import { getCurrentInstance } from '@tarojs/runtime';
import Taro from '@tarojs/taro';
import pt from '@/plain-text';
export default class TicketDetail extends Component {
state = {
id: 0,
};
componentDidMount(): void {
const navBar = pt.get().navBar;
Taro.setNavigationBarTitle({
title: navBar.ticketDetail,
});
const { router } = getCurrentInstance();
const id = router?.params.id;
this.setState({
id: id,
});
}
render(): ReactNode {
return <View>TicketDetail: {this.state.id}</View>;
}
}

View File

@ -5,7 +5,6 @@ import { AtCard, AtAccordion } from 'taro-ui';
import type CustomTabBar from '@/custom-tab-bar'; import type CustomTabBar from '@/custom-tab-bar';
import PageFooter from '@/components/PageFooter/PageFooter'; import PageFooter from '@/components/PageFooter/PageFooter';
import pt from '@/plain-text'; import pt from '@/plain-text';
import { getUrl } from '@/service';
import './index.scss'; import './index.scss';
import TitleCard from './TitleCard'; import TitleCard from './TitleCard';
import { DutyInfo, DutyData } from './DutyInfo'; import { DutyInfo, DutyData } from './DutyInfo';
@ -79,46 +78,6 @@ export default class Index extends Component {
}, },
}; };
componentDidMount(): void {
Taro.request({
url: getUrl('/dutyinfo'),
method: 'GET',
data: {
token: 'token_test',
},
})
.then(res => {
const data = res.data.data;
if (data.isInDuty) {
this.setState({
dutyData: {
isInDuty: data.isInDuty,
inDutyCnt: data.inDutyCnt,
currentDuty: data.currentDuty,
},
});
} else {
this.setState({
dutyData: {
isInDuty: data.isInDuty,
offDutyReason: data.offDutyReason,
dutyRecoverTime: data.dutyRecoverTime,
},
});
}
})
.catch(err => {
console.log(err);
this.setState({
dutyData: {
isInDuty: false,
offDutyReason: '获取失败Network Error!',
dutyRecoverTime: '获取失败Network Error!',
},
});
});
}
// 以下是TabBar相关 // 以下是TabBar相关
pageCtx = Taro.getCurrentInstance().page; pageCtx = Taro.getCurrentInstance().page;
componentDidShow() { componentDidShow() {

View File

@ -1,3 +0,0 @@
export default definePageConfig({
usingComponents: {},
});

View File

@ -1,23 +0,0 @@
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>
);
}
}

View File

@ -1,15 +1,8 @@
import { Component, ReactNode } from 'react'; import { Component, ReactNode } from 'react';
import { View } from '@tarojs/components'; import { View } from '@tarojs/components';
import Taro from '@tarojs/taro';
import pt from '@/plain-text';
import './about.scss'; import './about.scss';
export default class SettingsPage extends Component { export default class SettingsPage extends Component {
componentDidMount(): void {
Taro.setNavigationBarTitle({
title: pt.get().navBar.user.about,
});
}
render(): ReactNode { render(): ReactNode {
return <View></View>; return <View></View>;
} }

View File

@ -1,6 +1,5 @@
import { Component, ReactNode } from 'react'; import { Component, ReactNode } from 'react';
import { AtForm, AtInput, AtButton, AtMessage } from 'taro-ui'; import { AtForm, AtInput, AtButton, AtMessage } from 'taro-ui';
import { View } from '@tarojs/components';
import { getUrl } from '@/service'; import { getUrl } from '@/service';
import Taro from '@tarojs/taro'; import Taro from '@tarojs/taro';
import pt from '@/plain-text'; import pt from '@/plain-text';
@ -15,13 +14,6 @@ export default class InformPage extends Component {
isLoading: false, isLoading: false,
isDisable: false, isDisable: false,
}; };
componentDidMount(): void {
Taro.setNavigationBarTitle({
title: pt.get().navBar.user.inform,
});
}
handleChangePhone(phone: string) { handleChangePhone(phone: string) {
this.setState({ this.setState({
phone: phone, phone: phone,
@ -75,39 +67,37 @@ export default class InformPage extends Component {
render(): ReactNode { render(): ReactNode {
return ( return (
<View> <AtForm onSubmit={this.onSubmit.bind(this)}>
<AtForm onSubmit={this.onSubmit.bind(this)}> <AtMessage />
<AtMessage /> <AtInput
<AtInput clear
clear required
required name='phone'
name='phone' title={pt.get().informPage.phoneText.title}
title={pt.get().informPage.phoneText.title} type='number'
type='number' placeholder={pt.get().informPage.phoneText.placeholder}
placeholder={pt.get().informPage.phoneText.placeholder} value={this.state.phone}
value={this.state.phone} onChange={this.handleChangePhone.bind(this)}
onChange={this.handleChangePhone.bind(this)} />
/> <AtInput
<AtInput required
required clear
clear name='name'
name='name' title={pt.get().informPage.nameText.title}
title={pt.get().informPage.nameText.title} type='text'
type='text' placeholder={pt.get().informPage.nameText.placeholder}
placeholder={pt.get().informPage.nameText.placeholder} value={this.state.name}
value={this.state.name} onChange={this.handleChangeName.bind(this)}
onChange={this.handleChangeName.bind(this)} />
/> <AtButton
<AtButton loading={this.state.isLoading}
loading={this.state.isLoading} formType='submit'
formType='submit' type='primary'
type='primary' disabled={this.state.isDisable}
disabled={this.state.isDisable} >
> {pt.get().button.buttonText.submit}
{pt.get().button.buttonText.submit} </AtButton>
</AtButton> </AtForm>
</AtForm>
</View>
); );
} }
} }

View File

@ -14,11 +14,6 @@ export default class MemberPage extends Component {
isLoading: false, isLoading: false,
isDisable: false, isDisable: false,
}; };
componentDidMount(): void {
Taro.setNavigationBarTitle({
title: pt.get().navBar.user.member,
});
}
handleChangeStuid(stuid: string) { handleChangeStuid(stuid: string) {
this.setState({ this.setState({
stuid: stuid, stuid: stuid,

View File

@ -14,7 +14,6 @@ import './myTicket.scss';
type FixStatus = 1 | 2 | 3 | 4 | 5; type FixStatus = 1 | 2 | 3 | 4 | 5;
class TicketListItem { class TicketListItem {
id: number;
brand: string; brand: string;
model: string; model: string;
status: FixStatus; status: FixStatus;
@ -22,13 +21,11 @@ class TicketListItem {
iconMap: Map<FixStatus, string>; iconMap: Map<FixStatus, string>;
constructor( constructor(
id: number,
brand: string, brand: string,
model: string, model: string,
status: FixStatus, status: FixStatus,
createAt: moment.Moment, createAt: moment.Moment,
) { ) {
this.id = id;
this.brand = brand; this.brand = brand;
this.model = model; this.model = model;
this.status = status; this.status = status;
@ -51,11 +48,6 @@ class TicketListItem {
extraText={tl.statusMap.get(this.status)} extraText={tl.statusMap.get(this.status)}
arrow='right' arrow='right'
thumb={this.iconMap.get(this.status)} thumb={this.iconMap.get(this.status)}
onClick={() => {
Taro.navigateTo({
url: '/pages/TicketDetail/TicketDetail?id=' + this.id,
});
}}
/> />
); );
} }
@ -65,13 +57,10 @@ export default class SettingsPage extends Component {
state = { state = {
loading: true, loading: true,
success: false, success: false,
fixList: [new TicketListItem(0, '', '', 1, moment())], fixList: [new TicketListItem('华硕', '天选3', 3, moment())],
}; };
componentDidMount(): void { componentDidMount(): void {
Taro.setNavigationBarTitle({
title: pt.get().navBar.user.myTicket,
});
Taro.request({ Taro.request({
url: getUrl('/user/mytickets'), url: getUrl('/user/mytickets'),
method: 'GET', method: 'GET',
@ -93,7 +82,6 @@ export default class SettingsPage extends Component {
fixList: res.data.data.list.map( fixList: res.data.data.list.map(
item => item =>
new TicketListItem( new TicketListItem(
item.id,
item.device, item.device,
item.deviceModel, item.deviceModel,
item.status, item.status,

View File

@ -13,13 +13,6 @@ export default class SettingsPage extends Component {
isLoading: false, isLoading: false,
isDisable: false, isDisable: false,
}; };
componentDidMount(): void {
Taro.setNavigationBarTitle({
title: pt.get().navBar.user.report,
});
}
handleChange(report: string) { handleChange(report: string) {
this.setState({ this.setState({
report, report,

View File

@ -7,7 +7,6 @@ import type CustomTabBar from '@/custom-tab-bar';
import PageFooter from '@/components/PageFooter/PageFooter'; import PageFooter from '@/components/PageFooter/PageFooter';
import aboutIcon from '@/assets/icons/AboutPage/about.svg'; import aboutIcon from '@/assets/icons/AboutPage/about.svg';
import pt, { Lang } from '@/plain-text'; import pt, { Lang } from '@/plain-text';
import wechatUser from '@/wechat';
import logo from '@/assets/images/UserPage/logo.png'; import logo from '@/assets/images/UserPage/logo.png';
import './user.scss'; import './user.scss';
@ -24,14 +23,13 @@ export default class UserPage extends Component {
clicks: memberClickTimes, clicks: memberClickTimes,
isToastOpen: false, isToastOpen: false,
toastText: '', toastText: '',
haveAccess: wechatUser.getAccess(),
}; };
// 以下是TabBar相关 // 以下是TabBar相关
pageCtx = Taro.getCurrentInstance().page; pageCtx = Taro.getCurrentInstance().page;
componentDidShow() { componentDidShow() {
const tabbar = Taro.getTabBar<CustomTabBar>(this.pageCtx); const tabbar = Taro.getTabBar<CustomTabBar>(this.pageCtx);
tabbar?.setSelected(this.state.haveAccess ? 3 : 2); tabbar?.setSelected(2);
} }
// 以上是TabBar相关 // 以上是TabBar相关

View File

@ -1,32 +0,0 @@
export interface NavBarTitle {
ticketDetail: string;
user: {
myTicket: string;
report: string;
member: string;
inform: string;
about: string;
};
}
export const navBarTitleZhCh: NavBarTitle = {
ticketDetail: '工单详情',
user: {
myTicket: '我的工单',
report: '意见反馈',
inform: '我的信息',
about: '关于我们',
member: '协会成员登录',
},
};
export const navBarTitleEnUs: NavBarTitle = {
ticketDetail: 'Ticket Detail',
user: {
myTicket: 'My Tickets',
report: 'Report',
inform: 'Information',
about: 'About us',
member: 'Member login',
},
};

View File

@ -2,19 +2,16 @@ export interface TabBarText {
indexText: string; indexText: string;
repairText: string; repairText: string;
userText: string; userText: string;
memberText: string;
} }
export const tabBarZhCn: TabBarText = { export const tabBarZhCn: TabBarText = {
indexText: '主页', indexText: '主页',
repairText: '维修', repairText: '维修',
userText: '我的', userText: '我的',
memberText: '管理',
}; };
export const tabBarEnUs: TabBarText = { export const tabBarEnUs: TabBarText = {
indexText: 'Home', indexText: 'Home',
repairText: 'Repair', repairText: 'Repair',
userText: 'Account', userText: 'Account',
memberText: 'Member',
}; };

View File

@ -8,7 +8,6 @@ import { AboutPageText, aboutPageEnUs, aboutPageZhCn } from './AboutPage';
import { ButtonText, buttonEnUs, buttonZhCn } from './Button'; import { ButtonText, buttonEnUs, buttonZhCn } from './Button';
import { MemberPageText, memberPageEnUs, memberPageZhCn } from './MemberPage'; import { MemberPageText, memberPageEnUs, memberPageZhCn } from './MemberPage';
import { TicketListText, ticketListEnUs, ticketListZhCn } from './TicketList'; import { TicketListText, ticketListEnUs, ticketListZhCn } from './TicketList';
import { NavBarTitle, navBarTitleEnUs, navBarTitleZhCh } from './NavBarTitle';
interface TextRecord { interface TextRecord {
pageFooter: PageFooterText; pageFooter: PageFooterText;
@ -21,7 +20,6 @@ interface TextRecord {
button: ButtonText; button: ButtonText;
memberPage: MemberPageText; memberPage: MemberPageText;
ticketList: TicketListText; ticketList: TicketListText;
navBar: NavBarTitle;
} }
const textZhCn: TextRecord = { const textZhCn: TextRecord = {
@ -35,7 +33,6 @@ const textZhCn: TextRecord = {
button: buttonZhCn, button: buttonZhCn,
memberPage: memberPageZhCn, memberPage: memberPageZhCn,
ticketList: ticketListZhCn, ticketList: ticketListZhCn,
navBar: navBarTitleZhCh,
}; };
const textEnUs: TextRecord = { const textEnUs: TextRecord = {
@ -49,7 +46,6 @@ const textEnUs: TextRecord = {
button: buttonEnUs, button: buttonEnUs,
memberPage: memberPageEnUs, memberPage: memberPageEnUs,
ticketList: ticketListEnUs, ticketList: ticketListEnUs,
navBar: navBarTitleEnUs,
}; };
// type Lang = 'zh_CN' | 'en_US' | ...; // type Lang = 'zh_CN' | 'en_US' | ...;

View File

@ -1,32 +0,0 @@
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;