refactor ticketListItem
This commit is contained in:
@@ -16,6 +16,7 @@ import { submitTicket } from '@/service/submitTicket';
|
||||
import type CustomTabBar from '@/custom-tab-bar';
|
||||
import repairLogo from '@/assets/icons/RepairPage/repair.svg';
|
||||
import DetailFramework from '@/components/DetailFramework/DetailFramework';
|
||||
import { TicketListItem } from '@/components/TicketListItem/TicketListItem';
|
||||
import './repair.scss';
|
||||
|
||||
interface RepairPageState {
|
||||
@@ -28,6 +29,7 @@ interface RepairPageState {
|
||||
isLoading: boolean;
|
||||
isDisable: boolean;
|
||||
checkedList: Array<number>;
|
||||
currentTicket: Array<TicketListItem>;
|
||||
}
|
||||
|
||||
const submitInterval = 5000;
|
||||
@@ -43,6 +45,7 @@ export default class RepairPage extends Component<{}, RepairPageState> {
|
||||
isLoading: false,
|
||||
isDisable: true,
|
||||
checkedList: [0],
|
||||
currentTicket: [],
|
||||
};
|
||||
|
||||
componentDidMount(): void {
|
||||
|
||||
@@ -1,57 +0,0 @@
|
||||
import { AtListItem } from 'taro-ui';
|
||||
import repair from '@/assets/icons/MyTickets/repair.svg';
|
||||
import finished from '@/assets/icons/MyTickets/finished.svg';
|
||||
import tick from '@/assets/icons/MyTickets/tick.svg';
|
||||
import fail from '@/assets/icons/MyTickets/fail.svg';
|
||||
import pt from '@/plain-text';
|
||||
import Taro from '@tarojs/taro';
|
||||
|
||||
type FixStatus = 1 | 2 | 3 | 4 | 5;
|
||||
|
||||
export class TicketListItem {
|
||||
id: number;
|
||||
brand: string;
|
||||
model: string;
|
||||
status: FixStatus;
|
||||
createAt: moment.Moment;
|
||||
iconMap: Map<FixStatus, string>;
|
||||
|
||||
constructor(
|
||||
id: number,
|
||||
brand: string,
|
||||
model: string,
|
||||
status: FixStatus,
|
||||
createAt: moment.Moment,
|
||||
) {
|
||||
this.id = id;
|
||||
this.brand = brand;
|
||||
this.model = model;
|
||||
this.status = status;
|
||||
this.createAt = createAt;
|
||||
this.iconMap = new Map<FixStatus, string>([
|
||||
[1, repair],
|
||||
[2, repair],
|
||||
[3, finished],
|
||||
[4, tick],
|
||||
[5, fail],
|
||||
]);
|
||||
}
|
||||
|
||||
render(): JSX.Element {
|
||||
const tl = pt.get().ticketList;
|
||||
return (
|
||||
<AtListItem
|
||||
title={this.brand + ' ' + this.model}
|
||||
note={tl.createdAt(this.createAt.format('YYYY-MM-DD HH:mm'))}
|
||||
extraText={tl.statusMap.get(this.status)}
|
||||
arrow='right'
|
||||
thumb={this.iconMap.get(this.status)}
|
||||
onClick={() => {
|
||||
Taro.navigateTo({
|
||||
url: '/pages/TicketDetail/TicketDetail?id=' + this.id,
|
||||
});
|
||||
}}
|
||||
/>
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -6,8 +6,8 @@ import moment from 'moment';
|
||||
import pt from '@/plain-text';
|
||||
import { RequestState } from '@/service';
|
||||
import { getMyTicketList } from '@/service/myTicket';
|
||||
import { TicketListItem } from '@/components/TicketListItem/TicketListItem';
|
||||
import './myTicket.scss';
|
||||
import { TicketListItem } from './TicketListItem';
|
||||
|
||||
interface MyTicketState {
|
||||
fixList: Array<TicketListItem>;
|
||||
|
||||
Reference in New Issue
Block a user