add ticket detail data

This commit is contained in:
2024-03-12 02:23:11 +08:00
parent 32ce506764
commit 388814f9d9
3 changed files with 109 additions and 1 deletions
+43
View File
@@ -4,15 +4,43 @@ import { getCurrentInstance } from '@tarojs/runtime';
import Taro from '@tarojs/taro';
import pt from '@/plain-text';
import { AtSteps } from 'taro-ui';
import moment from 'moment';
import { RequestState } from '@/service';
import { getTicketInfo } from '@/service/ticketsInfo';
interface StepItemData {
title: string;
}
export class TicketInfo {
id: number;
type: 0 | 1;
device: string;
deviceModel: string;
description: string;
createdTime: moment.Moment;
status: 1 | 2 | 3 | 4 | 5;
}
export class TicketNote {
id: number;
op: string;
type: 0 | 1 | 2;
content: string;
createdTime: moment.Moment;
}
function renderNote(n: TicketNote): JSX.Element {
return <View>{n.id}</View>;
}
interface TicketDetailState {
id: number;
current: number;
items: Array<StepItemData>;
ticketInfo: TicketInfo;
notes: Array<TicketNote>;
rs: RequestState;
}
export default class TicketDetail extends Component<{}, TicketDetailState> {
@@ -20,7 +48,11 @@ export default class TicketDetail extends Component<{}, TicketDetailState> {
id: 0,
current: 0,
items: [],
ticketInfo: new TicketInfo(),
notes: [new TicketNote()],
rs: new RequestState(),
};
componentDidMount(): void {
const navBar = pt.get().navBar;
Taro.setNavigationBarTitle({
@@ -33,16 +65,27 @@ export default class TicketDetail extends Component<{}, TicketDetailState> {
id: id,
items: items,
});
getTicketInfo(this);
}
render(): ReactNode {
if (this.state.rs.loading) {
return <View>Loading</View>;
} else if (!this.state.rs.success) {
return <View>Request failed</View>;
}
return (
<View>
<View>{this.state.ticketInfo.deviceModel}</View>
<AtSteps
items={this.state.items}
current={this.state.current}
onChange={() => {}}
/>
<View>TicketDetail: {this.state.id}</View>
<View>{this.state.notes.map(item => renderNote(item))}</View>
</View>
);
}