<template>
|
<InfiniteLoading
|
scrollViewClassName="common-infinite-scroll-list system-message-list"
|
v-bind="infiniteLoadingProps"
|
>
|
<template #renderItem="{ item, index }">
|
<SystemMessageCard
|
:key="item.id"
|
:id="item.id"
|
:messageContent="item.messageContent"
|
:creationTime="item.creationTime"
|
:prevTime="index > 0 ? flattenListData[index - 1].creationTime : 0"
|
></SystemMessageCard>
|
</template>
|
</InfiniteLoading>
|
</template>
|
|
<script setup lang="ts">
|
import { useInfiniteLoading, useSetMessageIsRead } from '@12333/hooks';
|
import * as messageServices from '@12333/services/api/Message';
|
import { OrderInputType, MessageChatTypeEnum } from '@12333/constants';
|
import Taro from '@tarojs/taro';
|
|
defineOptions({
|
name: 'InnerPage',
|
});
|
|
// type Props = {};
|
|
// const props = withDefaults(defineProps<Props>(), {});
|
|
const { infiniteLoadingProps, flattenListData } = useInfiniteLoading(
|
({ pageParam }) => {
|
let params: API.GetMessageInput = {
|
pageModel: {
|
rows: 20,
|
page: pageParam,
|
orderInput: [{ property: 'creationTime', order: OrderInputType.Desc }],
|
},
|
};
|
|
return messageServices.getMySystemMessagePage(params, {
|
showLoading: false,
|
});
|
},
|
{
|
queryKey: ['messageServices/getMySystemMessagePage'],
|
onSuccess(data) {
|
setAllMessageIsReadByChatType(MessageChatTypeEnum.System);
|
},
|
}
|
);
|
|
const { setAllMessageIsReadByChatType } = useSetMessageIsRead();
|
</script>
|
|
<style lang="scss">
|
@import '@/styles/common.scss';
|
|
.system-message-list {
|
padding-top: 24px;
|
}
|
</style>
|