feat: add new assets, optimize list layout and重构个人中心页面

1. 新增fork/star/close等多个业务图标并配置到静态资源路径
2. 新增静态资源CDN配置常量
3. 优化帖子列表加载更多UI,无更多数据时显示提示文本
4. 重构我的页面布局,对齐Vue端实现,替换图标为CDN资源
5. 统一退出登录弹窗为公共组件,调整代码格式与缩进
This commit is contained in:
崔宝新
2026-09-07 17:53:32 +08:00
parent ebde2ae977
commit 3a2b589e37
14 changed files with 264 additions and 155 deletions
+24 -20
View File
@@ -47,6 +47,7 @@ class _MyInteractPageState extends State<MyInteractPage> {
backgroundColor: const Color(0xFFF5F8FA),
appBar: AppBar(
backgroundColor: const Color(0xFFF5F8FA),
surfaceTintColor: Colors.transparent, // 滚动时不叠加半透明色,背景保持不变
elevation: 0,
title: const Text(
'我的互动',
@@ -127,13 +128,14 @@ class _UpdateTab extends StatelessWidget {
@override
Widget build(BuildContext context) {
return PostListBody(
fetchPage: ({required pageIndex, required pageSize, required prevPageId}) =>
ClassApi.instance.getUserClassPost(
queryType: 0,
pageIndex: pageIndex,
pageSize: pageSize,
prevPageId: prevPageId,
),
fetchPage:
({required pageIndex, required pageSize, required prevPageId}) =>
ClassApi.instance.getUserClassPost(
queryType: 0,
pageIndex: pageIndex,
pageSize: pageSize,
prevPageId: prevPageId,
),
emptyText: '暂无动态',
onTapPost: onTapPost,
);
@@ -147,12 +149,13 @@ class _LikeTab extends StatelessWidget {
@override
Widget build(BuildContext context) {
return PostListBody(
fetchPage: ({required pageIndex, required pageSize, required prevPageId}) =>
ClassApi.instance.getMyLikePage(
pageIndex: pageIndex,
pageSize: pageSize,
prevPageId: prevPageId,
),
fetchPage:
({required pageIndex, required pageSize, required prevPageId}) =>
ClassApi.instance.getMyLikePage(
pageIndex: pageIndex,
pageSize: pageSize,
prevPageId: prevPageId,
),
emptyText: '暂无点赞',
removeOnUnlike: true,
onTapPost: onTapPost,
@@ -167,14 +170,15 @@ class _CommentTab extends StatelessWidget {
@override
Widget build(BuildContext context) {
return PostListBody(
fetchPage: ({required pageIndex, required pageSize, required prevPageId}) =>
ClassApi.instance.getMyCommentPage(
pageIndex: pageIndex,
pageSize: pageSize,
prevPageId: prevPageId,
),
fetchPage:
({required pageIndex, required pageSize, required prevPageId}) =>
ClassApi.instance.getMyCommentPage(
pageIndex: pageIndex,
pageSize: pageSize,
prevPageId: prevPageId,
),
emptyText: '暂无留言',
onTapPost: onTapPost,
);
}
}
}
+24 -9
View File
@@ -34,7 +34,8 @@ class PostListBody extends ConsumerStatefulWidget {
required int pageIndex,
required int pageSize,
required int prevPageId,
}) fetchPage;
})
fetchPage;
final String emptyText;
final bool removeOnUnlike;
@@ -233,16 +234,30 @@ class _PostListBodyState extends ConsumerState<PostListBody> {
controller: _scrollController,
physics: const AlwaysScrollableScrollPhysics(),
padding: EdgeInsets.symmetric(horizontal: 14.w),
itemCount: _posts.length + (_hasMore ? 1 : 0),
itemCount: _posts.length + 1,
itemBuilder: (context, index) {
if (index >= _posts.length) {
if (_hasMore) {
return Padding(
padding: EdgeInsets.symmetric(vertical: 16.h),
child: const Center(
child: SizedBox(
width: 22,
height: 22,
child: CircularProgressIndicator(strokeWidth: 2.5),
),
),
);
}
return Padding(
padding: EdgeInsets.symmetric(vertical: 16.h),
child: const Center(
child: SizedBox(
width: 22,
height: 22,
child: CircularProgressIndicator(strokeWidth: 2.5),
padding: EdgeInsets.symmetric(vertical: 20.h),
child: Center(
child: Text(
'没有更多了',
style: TextStyle(
fontSize: 12.sp,
color: const Color(0xFFB4C2E0),
),
),
),
);
@@ -262,4 +277,4 @@ class _PostListBodyState extends ConsumerState<PostListBody> {
),
);
}
}
}