add pagination in ticketlist

This commit is contained in:
Dawn1Ocean
2024-03-25 23:33:23 +08:00
parent 1cf16472d2
commit ff317c1cd2
5 changed files with 39 additions and 29 deletions
+1 -1
View File
@@ -9,7 +9,7 @@ export default defineAppConfig({
'pages/user/report/report',
'pages/user/member/member',
'pages/TicketDetail/TicketDetail',
'pages/ticketList/ticketList',
'pages/TicketList/TicketList',
],
window: {
backgroundTextStyle: 'light',
+27 -2
View File
@@ -1,9 +1,10 @@
import { Component, ReactNode } from 'react';
import { View } from '@tarojs/components';
import { AtList } from 'taro-ui';
import { AtList, AtPagination } 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 { TicketListItem } from '@/components/TicketListItem/TicketListItem';
@@ -12,12 +13,18 @@ import './TicketList.scss';
interface TicketListState {
fixList: Array<TicketListItem>;
rs: RequestState;
currentPage: number;
totalPage: number;
pageSize: number;
}
export default class TicketListPage extends Component<{}, TicketListState> {
state = {
fixList: [new TicketListItem(0, '', '', 1, moment())],
rs: new RequestState(),
currentPage: 1,
totalPage: 1,
pageSize: 8,
};
componentDidMount(): void {
@@ -27,6 +34,13 @@ export default class TicketListPage extends Component<{}, TicketListState> {
getTicketList(this);
}
onPageChange(): void {
this.setState({
rs: new RequestState(),
});
getTicketList(this);
}
render(): ReactNode {
if (this.state.rs.loading) {
return <View>loading</View>;
@@ -37,7 +51,18 @@ export default class TicketListPage extends Component<{}, TicketListState> {
const fixListRenderer = this.state.fixList.map((item) => item.render());
return (
<View>
<AtList>{fixListRenderer}</AtList>
<View style={{ marginTop: '40rpx' }}>
<AtList>{fixListRenderer}</AtList>
</View>
<View style={{ marginTop: '40rpx' }}>
<AtPagination
total={this.state.totalPage}
pageSize={this.state.pageSize}
current={this.state.currentPage}
onPageChange={this.onPageChange.bind(this)}
></AtPagination>
</View>
<PageFooter />
</View>
);
}
+1 -1
View File
@@ -175,7 +175,7 @@ export default class MainPage extends Component<{}, MainPageState> {
ticketListPage() {
Taro.navigateTo({
url: '/pages/ticketList/ticketList',
url: '/pages/TicketList/TicketList',
});
}
+8 -1
View File
@@ -12,10 +12,14 @@ export function getTicketList(that: TicketListPage) {
method: 'GET',
data: {
token: wechatUser.getToken(),
pageId: that.state.currentPage,
count: that.state.pageSize,
querytype: 0,
},
})
.then((res) => {
let former = that.state.rs;
const data = res.data.data;
if (!res.data.success) {
that.setState({
rs: former.trans(false),
@@ -24,7 +28,7 @@ export function getTicketList(that: TicketListPage) {
}
that.setState({
rs: former.trans(true),
fixList: res.data.data.data.map(
fixList: data.data.map(
(item: {
id: number;
device: string;
@@ -40,6 +44,9 @@ export function getTicketList(that: TicketListPage) {
moment(item.createdTime),
),
),
currentPage: data.pageIndex,
pageSize: data.size,
totalPage: data.pageCount,
});
})
.catch((reason) => {