diff --git a/src/pages/user/myTicket/myTicket.tsx b/src/pages/user/myTicket/myTicket.tsx index ecdb920..6f2385c 100644 --- a/src/pages/user/myTicket/myTicket.tsx +++ b/src/pages/user/myTicket/myTicket.tsx @@ -1,12 +1,14 @@ import { Component, ReactNode } from 'react'; import { View } from '@tarojs/components'; import { AtList, AtListItem } from 'taro-ui'; +import Taro from '@tarojs/taro'; import moment from 'moment'; 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 { getUrl } from '@/service'; import './myTicket.scss'; type FixStatus = 1 | 2 | 3 | 4 | 5; @@ -53,12 +55,57 @@ class TicketListItem { export default class SettingsPage extends Component { state = { - fixList: [ - new TicketListItem('华硕', '天选3', 3, moment()), - new TicketListItem('联想', '拯救者', 5, moment()), - ], + loading: true, + success: false, + fixList: [new TicketListItem('华硕', '天选3', 3, moment())], }; + + componentDidMount(): void { + Taro.request({ + url: getUrl('/user/mytickets'), + method: 'GET', + data: { + token: 'token_test', + }, + }) + .then(res => { + if (!res.data.success) { + this.setState({ + loading: false, + success: false, + }); + return; + } + this.setState({ + loading: false, + success: true, + fixList: res.data.data.list.map( + item => + new TicketListItem( + item.device, + item.deviceModel, + item.status, + moment(), + ), + ), + }); + }) + .catch(reason => { + this.setState({ + loading: false, + success: false, + }); + console.log(reason); + }); + } + render(): ReactNode { + if (this.state.loading) { + return loading; + } + if (!this.state.success) { + return Failed; + } const fixListRenderer = this.state.fixList.map(item => item.render()); return (