add ticketList page
parent
079afea2e0
commit
1cf16472d2
|
|
@ -9,6 +9,7 @@ export default defineAppConfig({
|
|||
'pages/user/report/report',
|
||||
'pages/user/member/member',
|
||||
'pages/TicketDetail/TicketDetail',
|
||||
'pages/ticketList/ticketList',
|
||||
],
|
||||
window: {
|
||||
backgroundTextStyle: 'light',
|
||||
|
|
|
|||
|
|
@ -0,0 +1,3 @@
|
|||
export default definePageConfig({
|
||||
usingComponents: {},
|
||||
});
|
||||
|
|
@ -0,0 +1,44 @@
|
|||
import { Component, ReactNode } from 'react';
|
||||
import { View } from '@tarojs/components';
|
||||
import { AtList } from 'taro-ui';
|
||||
import Taro from '@tarojs/taro';
|
||||
import moment from 'moment';
|
||||
import pt from '@/plain-text';
|
||||
import { RequestState } from '@/service';
|
||||
import { getTicketList } from '@/service/ticketList';
|
||||
import { TicketListItem } from '@/components/TicketListItem/TicketListItem';
|
||||
import './TicketList.scss';
|
||||
|
||||
interface TicketListState {
|
||||
fixList: Array<TicketListItem>;
|
||||
rs: RequestState;
|
||||
}
|
||||
|
||||
export default class TicketListPage extends Component<{}, TicketListState> {
|
||||
state = {
|
||||
fixList: [new TicketListItem(0, '', '', 1, moment())],
|
||||
rs: new RequestState(),
|
||||
};
|
||||
|
||||
componentDidMount(): void {
|
||||
Taro.setNavigationBarTitle({
|
||||
title: pt.get().navBar.ticketList,
|
||||
});
|
||||
getTicketList(this);
|
||||
}
|
||||
|
||||
render(): ReactNode {
|
||||
if (this.state.rs.loading) {
|
||||
return <View>loading</View>;
|
||||
}
|
||||
if (!this.state.rs.success) {
|
||||
return <View>Failed</View>;
|
||||
}
|
||||
const fixListRenderer = this.state.fixList.map((item) => item.render());
|
||||
return (
|
||||
<View>
|
||||
<AtList>{fixListRenderer}</AtList>
|
||||
</View>
|
||||
);
|
||||
}
|
||||
}
|
||||
|
|
@ -175,7 +175,7 @@ export default class MainPage extends Component<{}, MainPageState> {
|
|||
|
||||
ticketListPage() {
|
||||
Taro.navigateTo({
|
||||
url: '/pages/user/report/report',
|
||||
url: '/pages/ticketList/ticketList',
|
||||
});
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
export interface NavBarTitle {
|
||||
ticketDetail: string;
|
||||
ticketList: string;
|
||||
user: {
|
||||
myTicket: string;
|
||||
report: string;
|
||||
|
|
@ -12,6 +13,7 @@ export interface NavBarTitle {
|
|||
|
||||
export const navBarTitleZhCn: NavBarTitle = {
|
||||
ticketDetail: '工单详情',
|
||||
ticketList: '所有工单',
|
||||
user: {
|
||||
myTicket: '我的工单',
|
||||
report: '意见反馈',
|
||||
|
|
@ -24,6 +26,7 @@ export const navBarTitleZhCn: NavBarTitle = {
|
|||
|
||||
export const navBarTitleEnUs: NavBarTitle = {
|
||||
ticketDetail: 'Ticket Detail',
|
||||
ticketList: 'All Tickets',
|
||||
user: {
|
||||
myTicket: 'My Tickets',
|
||||
report: 'Report',
|
||||
|
|
|
|||
|
|
@ -0,0 +1,52 @@
|
|||
import TicketListPage from '@/pages/TicketList/TicketList';
|
||||
import { TicketListItem } from '@/components/TicketListItem/TicketListItem';
|
||||
import Taro from '@tarojs/taro';
|
||||
import moment from 'moment';
|
||||
import { FixStatus } from '@/common';
|
||||
import wechatUser from '@/wechat';
|
||||
import { getUrl } from '.';
|
||||
|
||||
export function getTicketList(that: TicketListPage) {
|
||||
Taro.request({
|
||||
url: getUrl('/tickets/list'),
|
||||
method: 'GET',
|
||||
data: {
|
||||
token: wechatUser.getToken(),
|
||||
},
|
||||
})
|
||||
.then((res) => {
|
||||
let former = that.state.rs;
|
||||
if (!res.data.success) {
|
||||
that.setState({
|
||||
rs: former.trans(false),
|
||||
});
|
||||
return;
|
||||
}
|
||||
that.setState({
|
||||
rs: former.trans(true),
|
||||
fixList: res.data.data.data.map(
|
||||
(item: {
|
||||
id: number;
|
||||
device: string;
|
||||
deviceModel: string;
|
||||
status: FixStatus;
|
||||
createdTime: moment.MomentInput;
|
||||
}) =>
|
||||
new TicketListItem(
|
||||
item.id,
|
||||
item.device,
|
||||
item.deviceModel,
|
||||
item.status,
|
||||
moment(item.createdTime),
|
||||
),
|
||||
),
|
||||
});
|
||||
})
|
||||
.catch((reason) => {
|
||||
let former = that.state.rs;
|
||||
that.setState({
|
||||
rs: former.trans(false),
|
||||
});
|
||||
console.log(reason);
|
||||
});
|
||||
}
|
||||
Loading…
Reference in New Issue