动态发布
This commit is contained in:
BIN
assets/backgrounds/moment_1.jpg
Normal file
BIN
assets/backgrounds/moment_1.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 153 KiB |
BIN
assets/backgrounds/moment_2.jpg
Normal file
BIN
assets/backgrounds/moment_2.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 310 KiB |
BIN
assets/backgrounds/moment_3.jpg
Normal file
BIN
assets/backgrounds/moment_3.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 165 KiB |
BIN
assets/backgrounds/moment_4.jpg
Normal file
BIN
assets/backgrounds/moment_4.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 131 KiB |
@@ -51,6 +51,9 @@ class MomentController extends GetxController {
|
||||
}
|
||||
|
||||
Future<void> loadMoreList() async {
|
||||
if (momentData.value == null || momentData.value!.data!.isEmpty) {
|
||||
return;
|
||||
}
|
||||
final res = await MomentProvider.fetchMomentList(
|
||||
momentData.value?.data?.last.createdAt,
|
||||
);
|
||||
|
||||
@@ -52,9 +52,9 @@ class PublishController extends GetxController {
|
||||
);
|
||||
EasyLoading.dismiss();
|
||||
if (res != null) {
|
||||
UiTools.toast('发表成功');
|
||||
Get.back();
|
||||
UiTools.toast('动态发布成功');
|
||||
MomentController.to.refreshList();
|
||||
Get.back();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -16,7 +16,7 @@ class MomentProvider {
|
||||
);
|
||||
return MomentModel.fromJson(result);
|
||||
} catch (e) {
|
||||
UiTools.toast('获取发现列表失败');
|
||||
UiTools.toast(e.toString());
|
||||
}
|
||||
return null;
|
||||
}
|
||||
@@ -25,10 +25,10 @@ class MomentProvider {
|
||||
/// [dynamicId]
|
||||
static Future<bool?> likeMoment(int dynamicId) async {
|
||||
try {
|
||||
final result = await Http.post('user/dynamics/$dynamicId/like');
|
||||
final result = await Http.post('dynamics/$dynamicId/like');
|
||||
return result['is_like'];
|
||||
} catch (e) {
|
||||
UiTools.toast('点赞失败');
|
||||
UiTools.toast(e.toString());
|
||||
}
|
||||
return null;
|
||||
}
|
||||
@@ -37,10 +37,10 @@ class MomentProvider {
|
||||
/// [dynamicId]
|
||||
static Future<bool?> delMoment(int dynamicId) async {
|
||||
try {
|
||||
final result = await Http.delete('user/dynamics/$dynamicId');
|
||||
final result = await Http.delete('dynamics/$dynamicId');
|
||||
return result;
|
||||
} catch (e) {
|
||||
UiTools.toast('删除失败');
|
||||
UiTools.toast(e.toString());
|
||||
}
|
||||
return null;
|
||||
}
|
||||
@@ -56,7 +56,7 @@ class MomentProvider {
|
||||
]) async {
|
||||
try {
|
||||
final result = await Http.post(
|
||||
'user/dynamics/$dynamicId/comment',
|
||||
'dynamics/$dynamicId/comment',
|
||||
data: {
|
||||
'content': content,
|
||||
'parent_id': parentId,
|
||||
@@ -78,7 +78,7 @@ class MomentProvider {
|
||||
]) async {
|
||||
try {
|
||||
final result = await Http.delete(
|
||||
'user/dynamics/$dynamicId/comment/$commentId',
|
||||
'dynamics/$dynamicId/comment/$commentId',
|
||||
);
|
||||
return result;
|
||||
} catch (e) {
|
||||
@@ -107,13 +107,13 @@ class MomentProvider {
|
||||
required List<String> pictures,
|
||||
}) async {
|
||||
try {
|
||||
final result = await Http.post('user/dynamics', data: {
|
||||
final result = await Http.post('dynamics', data: {
|
||||
'description': description,
|
||||
'pictures': pictures,
|
||||
});
|
||||
return result;
|
||||
} catch (e) {
|
||||
UiTools.toast('发布失败');
|
||||
UiTools.toast(e.toString());
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
@@ -2,6 +2,7 @@ import 'package:chat/routes/app_routes.dart';
|
||||
import 'package:chat/routes/auth_routes.dart';
|
||||
import 'package:chat/routes/contact_routes.dart';
|
||||
import 'package:chat/routes/conversation_routes.dart';
|
||||
import 'package:chat/routes/moments_routes.dart';
|
||||
import 'package:chat/routes/user_routes.dart';
|
||||
import 'package:get/get.dart';
|
||||
|
||||
@@ -12,6 +13,7 @@ class AppRouter {
|
||||
AppRoutes.router,
|
||||
ConversationRoutes.router,
|
||||
ContactRoutes.router,
|
||||
MomentsRoutes.router,
|
||||
UserRoutes.router,
|
||||
];
|
||||
}
|
||||
|
||||
@@ -2,7 +2,7 @@ import 'package:chat/middleware/auth_middleware.dart';
|
||||
import 'package:chat/views/moments/detail/detail_page.dart';
|
||||
import 'package:chat/views/moments/index/index_page.dart';
|
||||
import 'package:chat/views/moments/publish/preview_page.dart';
|
||||
import 'package:chat/views/moments/publish/publish_page.dart';
|
||||
import 'package:chat/views/moments/publish/index_page.dart';
|
||||
import 'package:chat/views/moments/user/index_page.dart';
|
||||
import 'package:get/get.dart';
|
||||
|
||||
|
||||
@@ -15,8 +15,9 @@ class MomentsPage extends StatelessWidget {
|
||||
final ctrl = MomentController.to;
|
||||
return Scaffold(
|
||||
body: Padding(
|
||||
padding:
|
||||
EdgeInsets.only(bottom: MediaQuery.of(context).viewPadding.bottom),
|
||||
padding: EdgeInsets.only(
|
||||
bottom: MediaQuery.of(context).viewPadding.bottom,
|
||||
),
|
||||
child: EasyRefresh.custom(
|
||||
scrollController: ctrl.scrollController,
|
||||
controller: ctrl.refreshController,
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
import 'package:chat/configs/app_colors.dart';
|
||||
import 'package:chat/controllers/private_controller.dart';
|
||||
import 'package:chat/routes/contact_routes.dart';
|
||||
import 'package:chat/routes/moments_routes.dart';
|
||||
import 'package:chat/services/auth_service.dart';
|
||||
import 'package:chat/services/tabbar_service.dart';
|
||||
import 'package:chat/widgets/custom_avatar.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter/services.dart';
|
||||
@@ -80,7 +81,7 @@ class _HeaderBackground extends StatelessWidget {
|
||||
bottom: 32,
|
||||
child: GestureDetector(
|
||||
child: Image.asset(
|
||||
'assets/images/login_bg.png',
|
||||
'assets/backgrounds/moment_2.jpg',
|
||||
fit: BoxFit.cover,
|
||||
),
|
||||
),
|
||||
@@ -108,7 +109,12 @@ class _HeaderBackground extends StatelessWidget {
|
||||
const SizedBox(width: 8),
|
||||
Obx(() {
|
||||
return GestureDetector(
|
||||
onTap: () => TabbarService.to.index = 4,
|
||||
onTap: () async {
|
||||
await PrivateController.to.setCurrentFriend(
|
||||
AuthService.to.userId,
|
||||
);
|
||||
Get.toNamed(ContactRoutes.friendProfile);
|
||||
},
|
||||
child: CustomAvatar(
|
||||
AuthService.to.userInfo.value.avatar,
|
||||
size: 64,
|
||||
|
||||
@@ -60,6 +60,7 @@ dev_dependencies:
|
||||
flutter:
|
||||
uses-material-design: true
|
||||
assets:
|
||||
- assets/backgrounds/
|
||||
- assets/chats/
|
||||
- assets/icons/
|
||||
- assets/images/
|
||||
|
||||
Reference in New Issue
Block a user