Merge branch 'yhy' into dev

yhy
FrozenArcher 2024-03-11 21:29:56 +08:00
commit d5b8af7d7b
12 changed files with 106 additions and 2 deletions

View File

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

View File

@ -9,6 +9,7 @@ export default defineAppConfig({
'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',

View File

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

View File

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

@ -1,8 +1,15 @@
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

@ -15,6 +15,13 @@ 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,

View File

@ -14,6 +14,11 @@ 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,6 +14,7 @@ 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;
@ -21,11 +22,13 @@ 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;
@ -48,6 +51,11 @@ 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,
});
}}
/> />
); );
} }
@ -57,10 +65,13 @@ export default class SettingsPage extends Component {
state = { state = {
loading: true, loading: true,
success: false, success: false,
fixList: [new TicketListItem('华硕', '天选3', 3, moment())], fixList: [new TicketListItem(0, '', '', 1, 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',
@ -82,6 +93,7 @@ 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,6 +13,13 @@ 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

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

@ -8,6 +8,7 @@ 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;
@ -20,6 +21,7 @@ interface TextRecord {
button: ButtonText; button: ButtonText;
memberPage: MemberPageText; memberPage: MemberPageText;
ticketList: TicketListText; ticketList: TicketListText;
navBar: NavBarTitle;
} }
const textZhCn: TextRecord = { const textZhCn: TextRecord = {
@ -33,6 +35,7 @@ const textZhCn: TextRecord = {
button: buttonZhCn, button: buttonZhCn,
memberPage: memberPageZhCn, memberPage: memberPageZhCn,
ticketList: ticketListZhCn, ticketList: ticketListZhCn,
navBar: navBarTitleZhCh,
}; };
const textEnUs: TextRecord = { const textEnUs: TextRecord = {
@ -46,6 +49,7 @@ 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' | ...;