add ticketList page
parent
079afea2e0
commit
1cf16472d2
|
|
@ -9,6 +9,7 @@ export default defineAppConfig({
|
||||||
'pages/user/report/report',
|
'pages/user/report/report',
|
||||||
'pages/user/member/member',
|
'pages/user/member/member',
|
||||||
'pages/TicketDetail/TicketDetail',
|
'pages/TicketDetail/TicketDetail',
|
||||||
|
'pages/ticketList/ticketList',
|
||||||
],
|
],
|
||||||
window: {
|
window: {
|
||||||
backgroundTextStyle: 'light',
|
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() {
|
ticketListPage() {
|
||||||
Taro.navigateTo({
|
Taro.navigateTo({
|
||||||
url: '/pages/user/report/report',
|
url: '/pages/ticketList/ticketList',
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,6 @@
|
||||||
export interface NavBarTitle {
|
export interface NavBarTitle {
|
||||||
ticketDetail: string;
|
ticketDetail: string;
|
||||||
|
ticketList: string;
|
||||||
user: {
|
user: {
|
||||||
myTicket: string;
|
myTicket: string;
|
||||||
report: string;
|
report: string;
|
||||||
|
|
@ -12,6 +13,7 @@ export interface NavBarTitle {
|
||||||
|
|
||||||
export const navBarTitleZhCn: NavBarTitle = {
|
export const navBarTitleZhCn: NavBarTitle = {
|
||||||
ticketDetail: '工单详情',
|
ticketDetail: '工单详情',
|
||||||
|
ticketList: '所有工单',
|
||||||
user: {
|
user: {
|
||||||
myTicket: '我的工单',
|
myTicket: '我的工单',
|
||||||
report: '意见反馈',
|
report: '意见反馈',
|
||||||
|
|
@ -24,6 +26,7 @@ export const navBarTitleZhCn: NavBarTitle = {
|
||||||
|
|
||||||
export const navBarTitleEnUs: NavBarTitle = {
|
export const navBarTitleEnUs: NavBarTitle = {
|
||||||
ticketDetail: 'Ticket Detail',
|
ticketDetail: 'Ticket Detail',
|
||||||
|
ticketList: 'All Tickets',
|
||||||
user: {
|
user: {
|
||||||
myTicket: 'My Tickets',
|
myTicket: 'My Tickets',
|
||||||
report: 'Report',
|
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