refactor ticketListItem

This commit is contained in:
Dawn_Ocean
2024-03-14 12:09:51 +08:00
parent 802d008767
commit 84507f7214
7 changed files with 18 additions and 2 deletions
+3
View File
@@ -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,
});
}}
/>
);
}
}
+1 -1
View File
@@ -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>;