diff --git a/src/pages/TicketList/TicketList.tsx b/src/pages/TicketList/TicketList.tsx index cb4bd9f..5f172e6 100644 --- a/src/pages/TicketList/TicketList.tsx +++ b/src/pages/TicketList/TicketList.tsx @@ -1,12 +1,12 @@ import { Component, ReactNode } from 'react'; import { View } from '@tarojs/components'; -import { AtList, AtPagination } from 'taro-ui'; +import { AtList, AtPagination, AtSearchBar } from 'taro-ui'; import Taro from '@tarojs/taro'; import moment from 'moment'; import pt from '@/plain-text'; import PageFooter from '@/components/PageFooter/PageFooter'; import { RequestState } from '@/service'; -import { getTicketList } from '@/service/ticketList'; +import { getTicketList, searchTicketList } from '@/service/ticketList'; import { TicketListItem } from '@/components/TicketListItem/TicketListItem'; import './TicketList.scss'; @@ -16,6 +16,7 @@ interface TicketListState { currentPage: number; totalPage: number; pageSize: number; + search: string; } export default class TicketListPage extends Component<{}, TicketListState> { @@ -25,6 +26,7 @@ export default class TicketListPage extends Component<{}, TicketListState> { currentPage: 1, totalPage: 1, pageSize: 8, + search: '', }; componentDidMount(): void { @@ -41,6 +43,20 @@ export default class TicketListPage extends Component<{}, TicketListState> { getTicketList(this); } + onSearchChange(search): void { + this.setState({ + search: search, + }); + return search; + } + + onActionClick(): void { + this.setState({ + rs: new RequestState(), + }); + searchTicketList(this); + } + render(): ReactNode { if (this.state.rs.loading) { return loading; @@ -51,9 +67,15 @@ export default class TicketListPage extends Component<{}, TicketListState> { const fixListRenderer = this.state.fixList.map((item) => item.render()); return ( - - {fixListRenderer} + + + {fixListRenderer} ; + search: string; } export const ticketListZhCn: TicketListText = { @@ -19,6 +20,7 @@ export const ticketListZhCn: TicketListText = { [6, '维修翻车待取回'], [7, '维修翻车已取回'], ]), + search: '搜索', }; export const ticketListEnUs: TicketListText = { @@ -35,4 +37,5 @@ export const ticketListEnUs: TicketListText = { [6, 'Pending Retrieval (Failed)'], [7, 'Retrieved (Failed)'], ]), + search: 'search', }; diff --git a/src/service/ticketList.ts b/src/service/ticketList.ts index ff0489e..6a36541 100644 --- a/src/service/ticketList.ts +++ b/src/service/ticketList.ts @@ -57,3 +57,56 @@ export function getTicketList(that: TicketListPage) { console.log(reason); }); } + +export function searchTicketList(that: TicketListPage) { + Taro.request({ + url: getUrl('/tickets/search'), + method: 'GET', + data: { + token: wechatUser.getToken(), + pageId: that.state.currentPage, + count: that.state.pageSize, + value: that.state.search, + querytype: 0, + }, + }) + .then((res) => { + let former = that.state.rs; + const data = res.data.data; + if (!res.data.success) { + that.setState({ + rs: former.trans(false), + }); + return; + } + that.setState({ + rs: former.trans(true), + fixList: 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), + ), + ), + currentPage: data.pageIndex, + pageSize: data.size, + totalPage: data.pageCount, + }); + }) + .catch((reason) => { + let former = that.state.rs; + that.setState({ + rs: former.trans(false), + }); + console.log(reason); + }); +}