Commit bfc4cc32 authored by netyouli's avatar netyouli

添加删除我的作品和优化loading和优化下拉刷新出现卡死的问题

parent 6de4fa33
...@@ -68,11 +68,12 @@ class NewsAPI { ...@@ -68,11 +68,12 @@ class NewsAPI {
} }
// 生成图片 // 生成图片
static Future<MidJourneyModel> createImageByMidJourney(String question, int conversionId) async { static Future<MidJourneyModel> createImageByMidJourney(String question, int conversionId, String useModel) async {
var response = await HttpUtil().post('/midJourney/createImageByMidJourney', data: { var response = await HttpUtil().post('/midJourney/createImageByMidJourney', data: {
"conversionId": conversionId, "conversionId": conversionId,
"next": 0, "next": 0,
"question": question "question": question,
"useModel": useModel
}); });
return MidJourneyModel.fromJson(response); return MidJourneyModel.fromJson(response);
} }
...@@ -116,7 +117,7 @@ class NewsAPI { ...@@ -116,7 +117,7 @@ class NewsAPI {
return TranslateModel.fromJson(response.data); return TranslateModel.fromJson(response.data);
} }
// 发到广场
static Future<CommonResponse> shareImageSquare(String imgId) async { static Future<CommonResponse> shareImageSquare(String imgId) async {
var response = await HttpUtil().get( var response = await HttpUtil().get(
'/imgInfo/shareSquare/$imgId', '/imgInfo/shareSquare/$imgId',
...@@ -124,6 +125,17 @@ class NewsAPI { ...@@ -124,6 +125,17 @@ class NewsAPI {
return CommonResponse.fromJson(response); return CommonResponse.fromJson(response);
} }
// 删除我的作品图片
static Future<CommonResponse> deleteMyWorkImage(int imgId) async {
var response = await HttpUtil().get(
'/imgInfo/deleteImage',
queryParameters: {
"id": imgId
}
);
return CommonResponse.fromJson(response);
}
// 收藏图片 // 收藏图片
static Future<CommonResponse> updateCollectImg(String imgUrl, int isCancel, String prompt) async { static Future<CommonResponse> updateCollectImg(String imgUrl, int isCancel, String prompt) async {
var response = await HttpUtil().post('/imgInfo/updateCollectImg', data: { var response = await HttpUtil().post('/imgInfo/updateCollectImg', data: {
...@@ -141,16 +153,18 @@ class NewsAPI { ...@@ -141,16 +153,18 @@ class NewsAPI {
// "conversionId": conversionId, // "conversionId": conversionId,
// "next": 0, // "next": 0,
"urls": urls, "urls": urls,
"useModel": ""
// "question": question // "question": question
}); });
return MidJourneyModel.fromJson(response); return MidJourneyModel.fromJson(response);
} }
// 生成图片 v1-v4 u1-u4 // 生成图片 v1-v4 u1-u4
static Future<MidJourneyModel> createImageByButtonMidJourney(String button, String buttonMessageId) async { static Future<MidJourneyModel> createImageByButtonMidJourney(String button, String buttonMessageId, String useModel) async {
var response = await HttpUtil().post('/midJourney/createImageByButton', data: { var response = await HttpUtil().post('/midJourney/createImageByButton', data: {
"buttonMessageId": buttonMessageId, "buttonMessageId": buttonMessageId,
"next": 0, "next": 0,
"useModel": useModel,
"button": button "button": button
}); });
return MidJourneyModel.fromJson(response); return MidJourneyModel.fromJson(response);
......
...@@ -18,6 +18,7 @@ import 'package:get/get.dart'; ...@@ -18,6 +18,7 @@ import 'package:get/get.dart';
// import 'package:social_login_buttons/social_login_buttons.dart'; // import 'package:social_login_buttons/social_login_buttons.dart';
import '../../entity/user_entity.dart'; import '../../entity/user_entity.dart';
import '../utils/loading.dart';
class UserStore extends GetxController { class UserStore extends GetxController {
static UserStore get to => Get.put(UserStore()); static UserStore get to => Get.put(UserStore());
...@@ -63,7 +64,7 @@ class UserStore extends GetxController { ...@@ -63,7 +64,7 @@ class UserStore extends GetxController {
// Get.offAndToNamed(AppRoutes.WILL_COME); // Get.offAndToNamed(AppRoutes.WILL_COME);
} else { } else {
ApplicationController.to.state.isNetWorkErr = false; ApplicationController.to.state.isNetWorkErr = false;
EasyLoading.dismiss(); Loading.dismiss();
// await refreshInfo(); // await refreshInfo();
// Get.offAndToNamed(AppRoutes.Application); // Get.offAndToNamed(AppRoutes.Application);
......
...@@ -12,6 +12,7 @@ class AppColor { ...@@ -12,6 +12,7 @@ class AppColor {
static const Color gray6 = Color.fromARGB(255, 30, 30, 30); static const Color gray6 = Color.fromARGB(255, 30, 30, 30);
static const Color gray7 = Color.fromARGB(255, 50, 50, 50); static const Color gray7 = Color.fromARGB(255, 50, 50, 50);
static const Color gray8 = Color.fromARGB(255, 200, 200, 200); static const Color gray8 = Color.fromARGB(255, 200, 200, 200);
static const Color gray9 = Color.fromARGB(255, 38, 38, 38);
static const Color black1 = Color.fromARGB(255, 20, 20, 20); static const Color black1 = Color.fromARGB(255, 20, 20, 20);
static const Color gradient_back1 = Color.fromARGB(255, 15, 24, 29); static const Color gradient_back1 = Color.fromARGB(255, 15, 24, 29);
......
...@@ -22,7 +22,27 @@ class Loading { ...@@ -22,7 +22,27 @@ class Loading {
static void show([String? text]) { static void show([String? text]) {
EasyLoading.instance.userInteractions = false; EasyLoading.instance.userInteractions = false;
EasyLoading.show(status: text ?? 'Loading...'); final status = text; //?? '正在加载...';
EasyLoading.show(
status: status,
dismissOnTap: false,
maskType: EasyLoadingMaskType.none,
indicator: Image.asset("assets/images/networkLoading.gif", width: 80, height: 80,)
);
/**
* EasyLoading.show(
status: "正在加载我的收藏",
dismissOnTap: false,
maskType: EasyLoadingMaskType.none,
indicator: LoadingAnimationWidget.staggeredDotsWave(
color: Colors.white,
size: 30,
));
*/
}
static void showError(String status) {
EasyLoading.showError(status);
} }
static void toast(String text) { static void toast(String text) {
......
// baidu yapi // baidu yapi
// const SERVER_API_URL = 'https://yapi.baidu.com/mock/41008'; // const SERVER_API_URL = 'https://yapi.baidu.com/mock/41008';
// const SERVER_API_URL = 'http://101.34.153.228:8083/api';//线上 const SERVER_API_URL = 'http://101.34.153.228:8083/api';//线上
// const SERVER_API_URL = 'http://192.168.110.116:8083/api';//内 // const SERVER_API_URL = 'http://192.168.110.116:8083/api';//内
// const SERVER_API_URL = 'http://192.168.110.12:8083/api';//线上 // const SERVER_API_URL = 'http://192.168.110.12:8083/api';//线上
...@@ -11,7 +11,7 @@ ...@@ -11,7 +11,7 @@
// http://192.168.110.127:8083/api/doc.html // http://192.168.110.127:8083/api/doc.html
// http://192.168.110.66:8083/api/doc.html // http://192.168.110.66:8083/api/doc.html
const SERVER_API_URL = 'http://192.168.110.1:8083/api'; // 大黄蜂 // const SERVER_API_URL = 'http://192.168.120.34:8083/api'; // 大黄蜂
// const SERVER_API_URL = 'http://192.168.110.193:8083/api'; // 清 // const SERVER_API_URL = 'http://192.168.110.193:8083/api'; // 清
// http://192.168.110.25:8083/ // http://192.168.110.25:8083/
......
import 'dart:typed_data'; import 'dart:typed_data';
import 'package:chart/common/style/color.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_easyloading/flutter_easyloading.dart'; import 'package:flutter_easyloading/flutter_easyloading.dart';
import 'package:fluwx/fluwx.dart'; import 'package:fluwx/fluwx.dart';
...@@ -10,7 +11,7 @@ import 'package:share_plus/share_plus.dart'; ...@@ -10,7 +11,7 @@ import 'package:share_plus/share_plus.dart';
class WXShare { class WXShare {
static const _dataMap = { static const _dataMap = {
"微信好友": "assets/images/wx_session.png", "微信好友": "assets/images/wx_session.jpg",
"微信朋友圈": "assets/images/wx_timeline.png", "微信朋友圈": "assets/images/wx_timeline.png",
"微信收藏": "assets/images/wx_favorite.png", "微信收藏": "assets/images/wx_favorite.png",
"其他分享": "assets/images/wx_other.png" "其他分享": "assets/images/wx_other.png"
...@@ -59,11 +60,38 @@ class WXShare { ...@@ -59,11 +60,38 @@ class WXShare {
color: Colors.white, color: Colors.white,
borderRadius: BorderRadius.all(Radius.circular(20)) borderRadius: BorderRadius.all(Radius.circular(20))
), ),
padding: const EdgeInsets.fromLTRB(20, 20, 20, 100), padding: const EdgeInsets.fromLTRB(20, 10, 20, 50),
child: Wrap( child: SizedBox(
spacing: 30, height: 160,
children: items, child: Column(
), children: [
Row(
children: [
const SizedBox(
width: 30,
height: 30,
),
const Expanded(child: Align(
alignment: Alignment.center,
child: Text("分享"),
)),
InkWell(
onTap:() {
Get.back();
},
child: Image.asset("assets/images/清空图片.png", width: 30, height: 30,),
)
],
),
const SizedBox(height: 30,),
Wrap(
alignment: WrapAlignment.center,
spacing: 30,
children: items,
)
],
),
),
)); ));
} }
...@@ -98,9 +126,9 @@ class WXShare { ...@@ -98,9 +126,9 @@ class WXShare {
child: Column( child: Column(
mainAxisAlignment: MainAxisAlignment.center, mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[ children: <Widget>[
Image.asset(image, width: 60, height: 60,), Image.asset(image, width: 30, height: 30,),
const SizedBox(height: 8), const SizedBox(height: 8),
Text(title, style: const TextStyle(fontSize: 14, color: Colors.black)), Text(title, style: const TextStyle(fontSize: 14, color: Colors.white)),
], ],
), ),
) )
...@@ -108,13 +136,40 @@ class WXShare { ...@@ -108,13 +136,40 @@ class WXShare {
}); });
Get.bottomSheet(Container( Get.bottomSheet(Container(
decoration: const BoxDecoration( decoration: const BoxDecoration(
color: Colors.white, color: AppColor.gray9,
borderRadius: BorderRadius.all(Radius.circular(20)) borderRadius: BorderRadius.all(Radius.circular(20))
), ),
padding: const EdgeInsets.fromLTRB(20, 20, 20, 100), padding: const EdgeInsets.fromLTRB(20, 10, 20, 50),
child: Wrap( child: SizedBox(
spacing: 30, height: 160,
children: items, child: Column(
children: [
Row(
children: [
const SizedBox(
width: 30,
height: 30,
),
const Expanded(child: Align(
alignment: Alignment.center,
child: Text("分享"),
)),
InkWell(
onTap:() {
Get.back();
},
child: Image.asset("assets/images/清空图片.png", width: 30, height: 30,),
)
],
),
const SizedBox(height: 30,),
Wrap(
alignment: WrapAlignment.center,
spacing: 30,
children: items,
)
],
),
), ),
)); ));
} }
......
import 'dart:io'; import 'dart:io';
import 'package:easy_refresh/easy_refresh.dart';
import 'package:flutter_native_splash/flutter_native_splash.dart'; import 'package:flutter_native_splash/flutter_native_splash.dart';
import 'package:chart/pages/frame/product/bindings.dart'; import 'package:chart/pages/frame/product/bindings.dart';
import 'package:chart/pages/home/index.dart'; import 'package:chart/pages/home/index.dart';
...@@ -16,7 +17,6 @@ import 'package:flutter_screenutil/flutter_screenutil.dart'; ...@@ -16,7 +17,6 @@ import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
import 'package:glassy/glassy.dart'; import 'package:glassy/glassy.dart';
import 'package:glassy/glassy_config.dart'; import 'package:glassy/glassy_config.dart';
import 'package:pull_to_refresh/pull_to_refresh.dart';
import 'package:fluwx/fluwx.dart'; import 'package:fluwx/fluwx.dart';
void main() async { void main() async {
...@@ -25,6 +25,26 @@ void main() async { ...@@ -25,6 +25,26 @@ void main() async {
await Global.init(); await Global.init();
PaintingBinding.instance.imageCache.maximumSize = 1000000; PaintingBinding.instance.imageCache.maximumSize = 1000000;
PaintingBinding.instance.imageCache.maximumSizeBytes = 300 << 20; PaintingBinding.instance.imageCache.maximumSizeBytes = 300 << 20;
EasyRefresh.defaultHeaderBuilder = () => const ClassicHeader(
showMessage: false,
dragText: "下拉刷新",
readyText: "刷新数据中",
armedText: "松开刷新",
failedText: "刷新失败",
noMoreText: "没有更多数据",
processedText: "刷新数据成功",
processingText: "刷新数据中"
);
EasyRefresh.defaultFooterBuilder = () => const ClassicFooter(
showMessage: false,
dragText: "上拉刷新",
readyText: "加载更多数据中",
armedText: "松开加载更多",
failedText: "加载更多失败",
noMoreText: "没有更多数据",
processedText: "加载更多成功",
processingText: "加载更多数据中"
);
Glassy().setConfig(GlassyConfig( Glassy().setConfig(GlassyConfig(
radius: 16, radius: 16,
backgroundColor: Color.fromARGB(255, 217, 217, 217), backgroundColor: Color.fromARGB(255, 217, 217, 217),
......
...@@ -74,6 +74,7 @@ class AIDrawImageResultController extends GetxController { ...@@ -74,6 +74,7 @@ class AIDrawImageResultController extends GetxController {
imageUrls = arguments["imageUrls"] ?? []; imageUrls = arguments["imageUrls"] ?? [];
messageId = arguments["messageId"] ?? ""; messageId = arguments["messageId"] ?? "";
modelType = arguments["modelType"] ?? MakeModelType.MJ; modelType = arguments["modelType"] ?? MakeModelType.MJ;
didCollected.value = arguments["didCollected"] ?? false;
} }
@override @override
...@@ -104,9 +105,9 @@ class AIDrawImageResultController extends GetxController { ...@@ -104,9 +105,9 @@ class AIDrawImageResultController extends GetxController {
} }
void shareToSquare() async { void shareToSquare() async {
EasyLoading.show(status: "分享到广场中..."); Loading.show();
final res = await NewsAPI.shareImageSquare(messageId); final res = await NewsAPI.shareImageSquare(messageId);
EasyLoading.dismiss(); Loading.dismiss();
if (res.status == 401) { if (res.status == 401) {
EasyLoading.showInfo('您还未登录,请登录后体验功能。'); EasyLoading.showInfo('您还未登录,请登录后体验功能。');
Get.toNamed(AppRoutes.SIGN_IN); Get.toNamed(AppRoutes.SIGN_IN);
...@@ -121,9 +122,9 @@ class AIDrawImageResultController extends GetxController { ...@@ -121,9 +122,9 @@ class AIDrawImageResultController extends GetxController {
void doCollect() async { void doCollect() async {
if (didCollected.value) { if (didCollected.value) {
EasyLoading.show(status: "取消收藏中..."); Loading.show();
final res = await NewsAPI.updateCollectImg(resultImageUrl, 0, enText); final res = await NewsAPI.updateCollectImg(resultImageUrl, 0, enText);
EasyLoading.dismiss(); Loading.dismiss();
if (res.status == 401) { if (res.status == 401) {
EasyLoading.showInfo('您还未登录,请登录后体验功能。'); EasyLoading.showInfo('您还未登录,请登录后体验功能。');
Get.toNamed(AppRoutes.SIGN_IN); Get.toNamed(AppRoutes.SIGN_IN);
...@@ -136,9 +137,9 @@ class AIDrawImageResultController extends GetxController { ...@@ -136,9 +137,9 @@ class AIDrawImageResultController extends GetxController {
} }
} }
} else { } else {
EasyLoading.show(status: "收藏中..."); Loading.show();
final res = await NewsAPI.updateCollectImg(resultImageUrl, 1, enText); final res = await NewsAPI.updateCollectImg(resultImageUrl, 1, enText);
EasyLoading.dismiss(); Loading.dismiss();
if (res.status == 401) { if (res.status == 401) {
EasyLoading.showInfo('您还未登录,请登录后体验功能。'); EasyLoading.showInfo('您还未登录,请登录后体验功能。');
Get.toNamed(AppRoutes.SIGN_IN); Get.toNamed(AppRoutes.SIGN_IN);
...@@ -179,7 +180,7 @@ class AIDrawImageResultController extends GetxController { ...@@ -179,7 +180,7 @@ class AIDrawImageResultController extends GetxController {
if (progress == 100) { if (progress == 100) {
showProgressView.value = false; showProgressView.value = false;
_timer?.cancel(); _timer?.cancel();
EasyLoading.dismiss(); Loading.dismiss();
} }
} }
return; return;
...@@ -188,16 +189,16 @@ class AIDrawImageResultController extends GetxController { ...@@ -188,16 +189,16 @@ class AIDrawImageResultController extends GetxController {
// 点击v和u // 点击v和u
void clickBottomButton(String title) async { void clickBottomButton(String title) async {
progress.value = 0; progress.value = 0;
EasyLoading.show(status: "AI正在生成中..."); Loading.show();
try { try {
// state.isLoading = true; // state.isLoading = true;
final res = await NewsAPI.createImageByButtonMidJourney(title, _buttonMessageId); final res = await NewsAPI.createImageByButtonMidJourney(title, _buttonMessageId, s);
if (res.status == 401) { if (res.status == 401) {
EasyLoading.showInfo('您还未登录,请登录后体验功能。'); EasyLoading.showInfo('您还未登录,请登录后体验功能。');
Get.toNamed(AppRoutes.SIGN_IN); Get.toNamed(AppRoutes.SIGN_IN);
// state.isLoading = false; // state.isLoading = false;
} else { } else {
EasyLoading.dismiss(); Loading.dismiss();
showProgressView.value = true; showProgressView.value = true;
startTimer(); startTimer();
await initEventSource(res.data ?? ""); await initEventSource(res.data ?? "");
...@@ -205,7 +206,7 @@ class AIDrawImageResultController extends GetxController { ...@@ -205,7 +206,7 @@ class AIDrawImageResultController extends GetxController {
// state.isLoading = false; // state.isLoading = false;
} catch (e) { } catch (e) {
// state.isLoading = false; // state.isLoading = false;
EasyLoading.dismiss(); Loading.dismiss();
} }
} }
...@@ -239,7 +240,7 @@ class AIDrawImageResultController extends GetxController { ...@@ -239,7 +240,7 @@ class AIDrawImageResultController extends GetxController {
makeBlendImage(); makeBlendImage();
break; break;
case OpearterType.imageResult: { case OpearterType.imageResult: {
EasyLoading.show(status: "正在加载中"); Loading.show();
resultImageUrl = imageUrls.isNotEmpty ? imageUrls.first : ""; resultImageUrl = imageUrls.isNotEmpty ? imageUrls.first : "";
await loadImage(resultImageUrl, 100); await loadImage(resultImageUrl, 100);
} }
...@@ -252,7 +253,7 @@ class AIDrawImageResultController extends GetxController { ...@@ -252,7 +253,7 @@ class AIDrawImageResultController extends GetxController {
progress.value = 0; progress.value = 0;
// final question = '$text --ar $ratio$s'; // final question = '$text --ar $ratio$s';
// Logger.debugPrint("question = $question"); // Logger.debugPrint("question = $question");
EasyLoading.show(status: "AI正在生成中..."); Loading.show();
try { try {
// state.isLoading = true; // state.isLoading = true;
final res = await NewsAPI.blendImageByMidJourney(imageUrls); final res = await NewsAPI.blendImageByMidJourney(imageUrls);
...@@ -261,7 +262,7 @@ class AIDrawImageResultController extends GetxController { ...@@ -261,7 +262,7 @@ class AIDrawImageResultController extends GetxController {
Get.toNamed(AppRoutes.SIGN_IN); Get.toNamed(AppRoutes.SIGN_IN);
// state.isLoading = false; // state.isLoading = false;
} else { } else {
EasyLoading.dismiss(); Loading.dismiss();
if (res.data == null) { if (res.data == null) {
EasyLoading.showToast(res.message ?? "未知错误"); EasyLoading.showToast(res.message ?? "未知错误");
} else { } else {
...@@ -273,7 +274,7 @@ class AIDrawImageResultController extends GetxController { ...@@ -273,7 +274,7 @@ class AIDrawImageResultController extends GetxController {
// state.isLoading = false; // state.isLoading = false;
} catch (e) { } catch (e) {
// state.isLoading = false; // state.isLoading = false;
EasyLoading.dismiss(); Loading.dismiss();
} }
} }
...@@ -292,16 +293,16 @@ class AIDrawImageResultController extends GetxController { ...@@ -292,16 +293,16 @@ class AIDrawImageResultController extends GetxController {
} }
} }
Logger.debugPrint("question = $question"); Logger.debugPrint("question = $question");
EasyLoading.show(status: "AI正在生成中..."); Loading.show();
try { try {
// state.isLoading = true; // state.isLoading = true;
final res = await NewsAPI.createImageByMidJourney(question, conversionId); final res = await NewsAPI.createImageByMidJourney(question, conversionId, s);
if (res.status == 401) { if (res.status == 401) {
EasyLoading.showInfo('您还未登录,请登录后体验功能。'); EasyLoading.showInfo('您还未登录,请登录后体验功能。');
Get.toNamed(AppRoutes.SIGN_IN); Get.toNamed(AppRoutes.SIGN_IN);
// state.isLoading = false; // state.isLoading = false;
} else { } else {
EasyLoading.dismiss(); Loading.dismiss();
if (res.data == null) { if (res.data == null) {
EasyLoading.showToast(res.message ?? "未知错误"); EasyLoading.showToast(res.message ?? "未知错误");
} else { } else {
...@@ -333,7 +334,7 @@ class AIDrawImageResultController extends GetxController { ...@@ -333,7 +334,7 @@ class AIDrawImageResultController extends GetxController {
question = '$enText'; question = '$enText';
} }
Logger.debugPrint("question = $question"); Logger.debugPrint("question = $question");
// EasyLoading.show(status: "AI正在生成中..."); // Loading.show();
try { try {
/* /*
final res = await NewsAPI.createlmageBySdTxtTolmg(question, conversionId); final res = await NewsAPI.createlmageBySdTxtTolmg(question, conversionId);
...@@ -342,7 +343,7 @@ class AIDrawImageResultController extends GetxController { ...@@ -342,7 +343,7 @@ class AIDrawImageResultController extends GetxController {
Get.toNamed(AppRoutes.SIGN_IN); Get.toNamed(AppRoutes.SIGN_IN);
// state.isLoading = false; // state.isLoading = false;
} else { } else {
EasyLoading.dismiss(); Loading.dismiss();
if (res.data == null) { if (res.data == null) {
EasyLoading.showToast(res.message ?? "未知错误"); EasyLoading.showToast(res.message ?? "未知错误");
} else { } else {
......
...@@ -100,26 +100,45 @@ class AIDrawImageResultPage extends GetView<AIDrawImageResultController> { ...@@ -100,26 +100,45 @@ class AIDrawImageResultPage extends GetView<AIDrawImageResultController> {
)); ));
} }
Widget makeBlurView() { Widget makeBackgroundView() {
return Obx(() => Stack( return Obx(() => Visibility(
children: [ visible: controller.imageData.value == null,
Visibility( child: Container(
visible: controller.imageData.value != null, decoration: BoxDecoration(
child: FadeInImage( gradient: LinearGradient(
image: MemoryImage(controller.imageData.value ?? Uint8List(0)), begin: Alignment.topLeft,
placeholder: MemoryImage(controller.placehoderImageData ?? Uint8List(0)), end: Alignment.bottomRight,
fit: BoxFit.fitHeight,width: Get.width, height: Get.height, colors: [
) AppColor.gradient_back1.withOpacity(1.0 - (controller.progress.value.toDouble() / 100.0)),
), AppColor.gradient_back2.withOpacity(1.0 - (controller.progress.value.toDouble() / 100.0)),
BackdropFilter( AppColor.gradient_back3.withOpacity(1.0 - (controller.progress.value.toDouble() / 100.0))],
filter: ImageFilter.blur(sigmaX: 10, sigmaY: 10),
child: Container(
color: Colors.white.withOpacity(0.3),
width: Get.width, height: Get.height,
), ),
), )
], ))
)); );
}
Widget makeBlurView() {
return Obx(() => Visibility(
visible: controller.imageData.value != null,
child: Stack(
children: [
FadeInImage(
image: MemoryImage(controller.imageData.value ?? Uint8List(0)),
placeholder: MemoryImage(controller.placehoderImageData ?? Uint8List(0)),
fit: BoxFit.fitHeight,width: Get.width, height: Get.height,
),
BackdropFilter(
filter: ImageFilter.blur(sigmaX: 10, sigmaY: 10),
child: Container(
color: Colors.white.withOpacity(0.3),
width: Get.width, height: Get.height,
),
)
],
)
),
);
} }
@override @override
...@@ -129,6 +148,7 @@ class AIDrawImageResultPage extends GetView<AIDrawImageResultController> { ...@@ -129,6 +148,7 @@ class AIDrawImageResultPage extends GetView<AIDrawImageResultController> {
init: AIDrawImageResultController(), init: AIDrawImageResultController(),
builder: (_) => Stack( builder: (_) => Stack(
children: [ children: [
makeBackgroundView(),
makeBlurView(), makeBlurView(),
Scaffold( Scaffold(
backgroundColor: Colors.transparent, backgroundColor: Colors.transparent,
...@@ -169,9 +189,9 @@ class AIDrawImageResultPage extends GetView<AIDrawImageResultController> { ...@@ -169,9 +189,9 @@ class AIDrawImageResultPage extends GetView<AIDrawImageResultController> {
color: AppColor.primary, color: AppColor.primary,
borderRadius: BorderRadius.circular(20), borderRadius: BorderRadius.circular(20),
), ),
child: Image(image: AssetImage("assets/images/${controller.didCollected.value ? 'collect_selected_icon.png' : 'collect_normal_icon.png'}"), child: Obx(() => Image(image: AssetImage("assets/images/${controller.didCollected.value ? 'collect_selected_icon.png' : 'collect_normal_icon.png'}"),
width: 20, width: 20,
height: 20,) height: 20,))
), ),
), ),
), ),
...@@ -286,7 +306,7 @@ class AIDrawImageResultPage extends GetView<AIDrawImageResultController> { ...@@ -286,7 +306,7 @@ class AIDrawImageResultPage extends GetView<AIDrawImageResultController> {
borderRadius: BorderRadius.circular(22) borderRadius: BorderRadius.circular(22)
), ),
alignment: Alignment.center, alignment: Alignment.center,
child: const Text("生成同款(2金币)"), child: const Text("生成同款(2积分)"),
), ),
), ),
], ],
......
...@@ -4,6 +4,7 @@ import 'dart:math'; ...@@ -4,6 +4,7 @@ import 'dart:math';
import 'package:chart/common/apis/apis.dart'; import 'package:chart/common/apis/apis.dart';
import 'package:chart/common/utils/utils.dart'; import 'package:chart/common/utils/utils.dart';
import 'package:easy_refresh/easy_refresh.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_easyloading/flutter_easyloading.dart'; import 'package:flutter_easyloading/flutter_easyloading.dart';
import 'package:flutter_keyboard_visibility/flutter_keyboard_visibility.dart'; import 'package:flutter_keyboard_visibility/flutter_keyboard_visibility.dart';
...@@ -111,12 +112,12 @@ class AIDrawImageController extends GetxController { ...@@ -111,12 +112,12 @@ class AIDrawImageController extends GetxController {
} }
onPullRefresh(RefreshController refreshController) { onPullRefresh(EasyRefreshController refreshController) {
page = 1; page = 1;
requestSquareImages(false, refreshController); requestSquareImages(false, refreshController);
} }
onLoadMore(RefreshController refreshController) { onLoadMore(EasyRefreshController refreshController) {
page += 1; page += 1;
requestSquareImages(true, refreshController); requestSquareImages(true, refreshController);
} }
...@@ -148,7 +149,7 @@ class AIDrawImageController extends GetxController { ...@@ -148,7 +149,7 @@ class AIDrawImageController extends GetxController {
if (index >= 0 && index < squareImgaes.value.length) { if (index >= 0 && index < squareImgaes.value.length) {
final item = squareImgaes.value[index]; final item = squareImgaes.value[index];
final conversionId = await UserAPI.createConversion(); final conversionId = await UserAPI.createConversion();
EasyLoading.dismiss(); Loading.dismiss();
if (conversionId == 401) { if (conversionId == 401) {
EasyLoading.showInfo('您还为登录,请登录后体验功能。'); EasyLoading.showInfo('您还为登录,请登录后体验功能。');
Get.toNamed(AppRoutes.SIGN_IN); Get.toNamed(AppRoutes.SIGN_IN);
...@@ -163,30 +164,29 @@ class AIDrawImageController extends GetxController { ...@@ -163,30 +164,29 @@ class AIDrawImageController extends GetxController {
"ratio": "16:9", "ratio": "16:9",
"s": "", "s": "",
"styleName": item.style ?? "--v 5.2", "styleName": item.style ?? "--v 5.2",
"messageId": item.messageId ?? "" "messageId": item.messageId ?? "",
"didCollected": item.isCancel == 1
}); });
} }
} }
} }
requestSquareImages(bool ismore, RefreshController? refreshController) async { requestSquareImages(bool ismore, EasyRefreshController? refreshController) async {
if (!ismore) { if (!ismore) {
EasyLoading.show( Loading.show();
status: "正在加载广场图片",
dismissOnTap: false,
maskType: EasyLoadingMaskType.none,
indicator: LoadingAnimationWidget.staggeredDotsWave(
color: Colors.white,
size: 30,
));
} }
final res = await UserAPI.getSquareImages(page); final res = await UserAPI.getSquareImages(page);
if (ismore) { if (ismore) {
refreshController?.loadComplete(); if (res.data?.isEmpty ?? true) {
refreshController?.finishLoad(IndicatorResult.noMore);
} else {
refreshController?.finishLoad(IndicatorResult.success);
}
} else { } else {
refreshController?.refreshCompleted(); refreshController?.finishRefresh();
refreshController?.resetFooter();
} }
EasyLoading.dismiss(); Loading.dismiss();
if (res.status == 200) { if (res.status == 200) {
if (ismore) { if (ismore) {
squareImgaes.value.addAll(res.data ?? []); squareImgaes.value.addAll(res.data ?? []);
...@@ -217,14 +217,7 @@ class AIDrawImageController extends GetxController { ...@@ -217,14 +217,7 @@ class AIDrawImageController extends GetxController {
blendAssets.add(image); blendAssets.add(image);
} }
} }
EasyLoading.show( Loading.show("正在上传,请稍后...");
status: "正在上传,请稍后",
dismissOnTap: false,
maskType: EasyLoadingMaskType.none,
indicator: LoadingAnimationWidget.staggeredDotsWave(
color: Colors.white,
size: 30,
));
for (var i = 0; i < count; i++) { for (var i = 0; i < count; i++) {
final image = images[i]; final image = images[i];
final res = await NewsAPI.uploadFile([File(image.path)]); final res = await NewsAPI.uploadFile([File(image.path)]);
...@@ -237,7 +230,7 @@ class AIDrawImageController extends GetxController { ...@@ -237,7 +230,7 @@ class AIDrawImageController extends GetxController {
EasyLoading.showToast(res.message ?? "未知错误"); EasyLoading.showToast(res.message ?? "未知错误");
} else { } else {
if (i == count - 1) { if (i == count - 1) {
EasyLoading.dismiss(); Loading.dismiss();
} }
uploadBlendImageUrls.add(res.data ?? ""); uploadBlendImageUrls.add(res.data ?? "");
} }
...@@ -254,14 +247,7 @@ class AIDrawImageController extends GetxController { ...@@ -254,14 +247,7 @@ class AIDrawImageController extends GetxController {
} }
if (image == null) return null; if (image == null) return null;
textAssets.add(image); textAssets.add(image);
EasyLoading.show( Loading.show("正在上传,请稍后");
status: "正在上传,请稍后",
dismissOnTap: false,
maskType: EasyLoadingMaskType.none,
indicator: LoadingAnimationWidget.staggeredDotsWave(
color: Colors.white,
size: 30,
));
final res = await NewsAPI.uploadFile([File(image.path)]); final res = await NewsAPI.uploadFile([File(image.path)]);
if (res.status == 401) { if (res.status == 401) {
EasyLoading.showInfo('您还未登录,请登录后体验功能。'); EasyLoading.showInfo('您还未登录,请登录后体验功能。');
...@@ -271,7 +257,7 @@ class AIDrawImageController extends GetxController { ...@@ -271,7 +257,7 @@ class AIDrawImageController extends GetxController {
if (res.data == null) { if (res.data == null) {
EasyLoading.showToast(res.message ?? "未知错误"); EasyLoading.showToast(res.message ?? "未知错误");
} else { } else {
EasyLoading.dismiss(); Loading.dismiss();
uploadTextImageUrls.add(res.data ?? ""); uploadTextImageUrls.add(res.data ?? "");
} }
} }
...@@ -282,17 +268,10 @@ class AIDrawImageController extends GetxController { ...@@ -282,17 +268,10 @@ class AIDrawImageController extends GetxController {
EasyLoading.showError("请选择2-5张图片"); EasyLoading.showError("请选择2-5张图片");
return; return;
} }
EasyLoading.show( Loading.show();
status: "加载中",
dismissOnTap: false,
maskType: EasyLoadingMaskType.none,
indicator: LoadingAnimationWidget.staggeredDotsWave(
color: Colors.white,
size: 30,
));
Vibrate.feedback(FeedbackType.impact); Vibrate.feedback(FeedbackType.impact);
final conversionId = await UserAPI.createConversion(); final conversionId = await UserAPI.createConversion();
EasyLoading.dismiss(); Loading.dismiss();
if (conversionId == 401) { if (conversionId == 401) {
EasyLoading.showInfo('您还为登录,请登录后体验功能。'); EasyLoading.showInfo('您还为登录,请登录后体验功能。');
Get.toNamed(AppRoutes.SIGN_IN); Get.toNamed(AppRoutes.SIGN_IN);
...@@ -315,18 +294,11 @@ class AIDrawImageController extends GetxController { ...@@ -315,18 +294,11 @@ class AIDrawImageController extends GetxController {
EasyLoading.showInfo('请输入生成图片的描述'); EasyLoading.showInfo('请输入生成图片的描述');
return; return;
} }
EasyLoading.show( Loading.show();
status: "加载中",
dismissOnTap: false,
maskType: EasyLoadingMaskType.none,
indicator: LoadingAnimationWidget.staggeredDotsWave(
color: Colors.white,
size: 30,
));
Vibrate.feedback(FeedbackType.impact); Vibrate.feedback(FeedbackType.impact);
final transformModel = await NewsAPI.translate(textController.text); final transformModel = await NewsAPI.translate(textController.text);
final conversionId = await UserAPI.createConversion(); final conversionId = await UserAPI.createConversion();
EasyLoading.dismiss(); Loading.dismiss();
if (conversionId == 401) { if (conversionId == 401) {
EasyLoading.showInfo('您还为登录,请登录后体验功能。'); EasyLoading.showInfo('您还为登录,请登录后体验功能。');
Get.toNamed(AppRoutes.SIGN_IN); Get.toNamed(AppRoutes.SIGN_IN);
......
import 'package:cached_network_image/cached_network_image.dart'; import 'package:cached_network_image/cached_network_image.dart';
import 'package:easy_refresh/easy_refresh.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
import 'package:flutter_easyrefresh/easy_refresh.dart';
import 'package:flutter_staggered_grid_view/flutter_staggered_grid_view.dart'; import 'package:flutter_staggered_grid_view/flutter_staggered_grid_view.dart';
import 'package:pull_to_refresh/pull_to_refresh.dart';
import 'controller.dart'; import 'controller.dart';
class ImageSquareListView extends StatelessWidget { class ImageSquareListView extends StatelessWidget {
late var refreshController = RefreshController(); EasyRefreshController easyController = EasyRefreshController(
controlFinishLoad: true,
@override controlFinishRefresh: true
Widget build(BuildContext context) { );
// TODO: implement build
Widget makeContent() {
final controller = Get.find<AIDrawImageController>(); final controller = Get.find<AIDrawImageController>();
return Obx(() => SmartRefresher( return Obx(() => EasyRefresh(
enablePullUp: true, controller: easyController,
controller: refreshController, onRefresh: () => controller.onPullRefresh(easyController),
onRefresh: () => controller.onPullRefresh(refreshController), onLoad: () => controller.onLoadMore(easyController),
onLoading: () => controller.onLoadMore(refreshController),
header: const ClassicHeader(
releaseText: "松开刷新",
refreshingText: "刷新数据中",
completeText: "刷新数据成功",
idleText: "下拉刷新"
),
footer: const ClassicFooter(
loadingText: "正在加载中...",
noDataText: '没有更多数据啦'
),
child: MasonryGridView.count( child: MasonryGridView.count(
controller: ScrollController(),
padding: const EdgeInsets.fromLTRB(10, 10, 10, 10), padding: const EdgeInsets.fromLTRB(10, 10, 10, 10),
itemCount: controller.squareImageCount.value, itemCount: controller.squareImageCount.value,
crossAxisCount: 2, crossAxisCount: 2,
...@@ -64,8 +54,15 @@ class ImageSquareListView extends StatelessWidget { ...@@ -64,8 +54,15 @@ class ImageSquareListView extends StatelessWidget {
}, },
mainAxisSpacing: 10.0, mainAxisSpacing: 10.0,
crossAxisSpacing: 10.0, crossAxisSpacing: 10.0,
) ),
)); ));
} }
@override
Widget build(BuildContext context) {
// TODO: implement build
final controller = Get.find<AIDrawImageController>();
return makeContent();
}
} }
\ No newline at end of file
...@@ -45,6 +45,7 @@ Widget makeTabContentView() { ...@@ -45,6 +45,7 @@ Widget makeTabContentView() {
controller: controller.categoryController, controller: controller.categoryController,
children: controller.imageSquareTitles.asMap().map((index, v) { children: controller.imageSquareTitles.asMap().map((index, v) {
final widget = ImageSquareListView(); final widget = ImageSquareListView();
/*
if (index == 0) { if (index == 0) {
return MapEntry<int, Widget>(index, return MapEntry<int, Widget>(index,
Listener( Listener(
...@@ -71,7 +72,7 @@ Widget makeTabContentView() { ...@@ -71,7 +72,7 @@ Widget makeTabContentView() {
child: widget, // 需要处理右滑事件的小部件 child: widget, // 需要处理右滑事件的小部件
) )
); );
} }*/
return MapEntry<int, Widget>(index, widget); return MapEntry<int, Widget>(index, widget);
}).values.toList() as List<Widget> }).values.toList() as List<Widget>
), ),
......
...@@ -362,7 +362,7 @@ import 'controller.dart'; ...@@ -362,7 +362,7 @@ import 'controller.dart';
color: AppColor.primary, color: AppColor.primary,
borderRadius: BorderRadius.circular(25), borderRadius: BorderRadius.circular(25),
), ),
child: Text("立即生成(消耗2金币)"), child: Text("立即生成(消耗2积分)"),
), ),
), ),
), ),
......
...@@ -719,7 +719,7 @@ Widget makeSectionTitleView(String index, String name) { ...@@ -719,7 +719,7 @@ Widget makeSectionTitleView(String index, String name) {
color: AppColor.primary, color: AppColor.primary,
borderRadius: BorderRadius.circular(25), borderRadius: BorderRadius.circular(25),
), ),
child: const Text("立即生成(消耗2金币)"), child: const Text("立即生成(消耗2积分)"),
), ),
), ),
), ),
......
...@@ -4,6 +4,7 @@ import 'package:chart/pages/ai-draw-image/text_to_image_view.dart'; ...@@ -4,6 +4,7 @@ import 'package:chart/pages/ai-draw-image/text_to_image_view.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter/src/widgets/framework.dart'; import 'package:flutter/src/widgets/framework.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
import 'package:pull_to_refresh/pull_to_refresh.dart';
import '../../common/routers/names.dart'; import '../../common/routers/names.dart';
import '../../common/style/color.dart'; import '../../common/style/color.dart';
...@@ -93,12 +94,13 @@ class AIDrawImagePage extends GetView<AIDrawImageController> { ...@@ -93,12 +94,13 @@ class AIDrawImagePage extends GetView<AIDrawImageController> {
child: TabBarView( child: TabBarView(
controller: controller.tabController, controller: controller.tabController,
children: [ children: [
makeTextToImageView(), Scrollbar(child: makeTextToImageView()),
makeImageToImageView(), Scrollbar(child: makeImageToImageView()),
Container( Scrollbar(child: makeImageSquareView())
decoration: const BoxDecoration(color: AppColor.black1), // Container(
child: makeImageSquareView(), // decoration: const BoxDecoration(color: AppColor.black1),
) // child: makeImageSquareView(),
// )
] ]
), ),
); );
...@@ -110,14 +112,12 @@ class AIDrawImagePage extends GetView<AIDrawImageController> { ...@@ -110,14 +112,12 @@ class AIDrawImagePage extends GetView<AIDrawImageController> {
buildCallback: (tabController) { buildCallback: (tabController) {
tabController.addListener(() { tabController.addListener(() {
Get.focusScope?.unfocus(); Get.focusScope?.unfocus();
});
controller.tabController = tabController;
tabController.addListener(() {
if (tabController.index == 2 && controller.currentIndex != tabController.index) { if (tabController.index == 2 && controller.currentIndex != tabController.index) {
controller.requestSquareImages(false, null); controller.requestSquareImages(false, null);
} }
controller.currentIndex = tabController.index; controller.currentIndex = tabController.index;
}); });
controller.tabController = tabController;
return Column( return Column(
children: [ children: [
makeTopTabView(), makeTopTabView(),
......
...@@ -2,6 +2,7 @@ import 'package:chart/common/apis/apis.dart'; ...@@ -2,6 +2,7 @@ import 'package:chart/common/apis/apis.dart';
import 'package:chart/common/entities/scene.dart'; import 'package:chart/common/entities/scene.dart';
import 'package:chart/common/routers/names.dart'; import 'package:chart/common/routers/names.dart';
import 'package:chart/pages/assistant-item/controller.dart'; import 'package:chart/pages/assistant-item/controller.dart';
import 'package:easy_refresh/easy_refresh.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_easyloading/flutter_easyloading.dart'; import 'package:flutter_easyloading/flutter_easyloading.dart';
import 'package:flutter_vibrate/flutter_vibrate.dart'; import 'package:flutter_vibrate/flutter_vibrate.dart';
...@@ -9,14 +10,19 @@ import 'package:get/get.dart'; ...@@ -9,14 +10,19 @@ import 'package:get/get.dart';
import 'package:loading_animation_widget/loading_animation_widget.dart'; import 'package:loading_animation_widget/loading_animation_widget.dart';
import 'package:pull_to_refresh/pull_to_refresh.dart'; import 'package:pull_to_refresh/pull_to_refresh.dart';
import '../../common/utils/loading.dart';
class AssistantController extends GetxController { class AssistantController extends GetxController {
AssistantController(); AssistantController();
final sceneList = [].obs; final sceneList = [].obs;
RxBool enablePullDown = true.obs; RxBool enablePullDown = true.obs;
RxBool enablePullUp = false.obs; RxBool enablePullUp = false.obs;
late RefreshController refreshController = late EasyRefreshController refreshController =
RefreshController(initialRefresh: false); EasyRefreshController(
controlFinishLoad: true,
controlFinishRefresh: true
);
onRefresh() async { onRefresh() async {
try { try {
...@@ -25,11 +31,11 @@ class AssistantController extends GetxController { ...@@ -25,11 +31,11 @@ class AssistantController extends GetxController {
sceneList.clear(); sceneList.clear();
} }
sceneList.addAll(res.data!); sceneList.addAll(res.data!);
refreshController.refreshCompleted();
} catch (e) { } catch (e) {
print("网络异常$e"); print("网络异常$e");
refreshController.refreshCompleted();
} }
refreshController.finishRefresh();
refreshController.resetFooter();
} }
_initData() async { _initData() async {
...@@ -39,18 +45,11 @@ class AssistantController extends GetxController { ...@@ -39,18 +45,11 @@ class AssistantController extends GetxController {
} }
void onTap(item) async { void onTap(item) async {
EasyLoading.show( Loading.show();
status: "加载中",
dismissOnTap: false,
maskType: EasyLoadingMaskType.none,
indicator: LoadingAnimationWidget.staggeredDotsWave(
color: Colors.white,
size: 30,
));
Vibrate.feedback(FeedbackType.impact); Vibrate.feedback(FeedbackType.impact);
final res = await UserAPI.createConversion(); final res = await UserAPI.createConversion();
EasyLoading.dismiss(); Loading.dismiss();
AssistantItemController.to.state.actId = res; AssistantItemController.to.state.actId = res;
AssistantItemController.to.state.selectItem = { AssistantItemController.to.state.selectItem = {
......
import 'dart:math'; import 'dart:math';
import 'package:easy_refresh/easy_refresh.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:chart/common/values/values.dart'; import 'package:chart/common/values/values.dart';
import 'package:flutter_vibrate/flutter_vibrate.dart'; import 'package:flutter_vibrate/flutter_vibrate.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:gradient_widgets/gradient_widgets.dart'; import 'package:gradient_widgets/gradient_widgets.dart';
import 'package:pull_to_refresh/pull_to_refresh.dart';
import '../index.dart'; import '../index.dart';
import 'package:flutter_staggered_grid_view/flutter_staggered_grid_view.dart'; import 'package:flutter_staggered_grid_view/flutter_staggered_grid_view.dart';
...@@ -14,23 +14,11 @@ import 'package:flutter_staggered_grid_view/flutter_staggered_grid_view.dart'; ...@@ -14,23 +14,11 @@ import 'package:flutter_staggered_grid_view/flutter_staggered_grid_view.dart';
class GridWidget extends GetView<AssistantController> { class GridWidget extends GetView<AssistantController> {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return Obx(() => SmartRefresher( return EasyRefresh(
header: ClassicHeader(
releaseText: "松开刷新",
refreshingText: "刷新数据中",
completeText: "刷新数据成功",
idleText: "下拉刷新"),
footer: ClassicFooter(
loadingText: "正在加载中...",
// loadStyle: LoadStyle.ShowWhenLoading,
// completeDuration: Duration(milliseconds: 500),
noDataText: '没有更多数据啦'),
enablePullDown: controller.enablePullDown.value,
enablePullUp: controller.enablePullUp.value,
onRefresh: controller.onRefresh, onRefresh: controller.onRefresh,
controller: controller.refreshController, controller: controller.refreshController,
child: _buildBlankPage(), child: _buildBlankPage(),
)); );
} }
Widget _buildBlankPage() { Widget _buildBlankPage() {
......
...@@ -2,6 +2,7 @@ import 'package:chart/common/apis/apis.dart'; ...@@ -2,6 +2,7 @@ import 'package:chart/common/apis/apis.dart';
import 'package:chart/common/entities/convers.dart'; import 'package:chart/common/entities/convers.dart';
import 'package:chart/common/entities/entities.dart'; import 'package:chart/common/entities/entities.dart';
import 'package:chart/pages/frame/notfound/index.dart'; import 'package:chart/pages/frame/notfound/index.dart';
import 'package:easy_refresh/easy_refresh.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
import 'package:pull_to_refresh/pull_to_refresh.dart'; import 'package:pull_to_refresh/pull_to_refresh.dart';
...@@ -11,8 +12,9 @@ class CategoryController extends GetxController { ...@@ -11,8 +12,9 @@ class CategoryController extends GetxController {
CategoryController(); CategoryController();
/// UI 组件 /// UI 组件
final RefreshController refreshController = RefreshController( final EasyRefreshController refreshController = EasyRefreshController(
initialRefresh: true, controlFinishLoad: true,
controlFinishRefresh: true
); );
/// 响应式成员变量 /// 响应式成员变量
...@@ -28,9 +30,11 @@ class CategoryController extends GetxController { ...@@ -28,9 +30,11 @@ class CategoryController extends GetxController {
void onRefresh() { void onRefresh() {
fetchNewsList(isRefresh: true).then((_) { fetchNewsList(isRefresh: true).then((_) {
refreshController.refreshCompleted(resetFooterState: true); refreshController.finishRefresh();
refreshController.resetFooter();
}).catchError((_) { }).catchError((_) {
refreshController.refreshFailed(); refreshController.finishRefresh(IndicatorResult.fail);
refreshController.resetFooter();
}); });
} }
...@@ -44,12 +48,12 @@ class CategoryController extends GetxController { ...@@ -44,12 +48,12 @@ class CategoryController extends GetxController {
print("${state.newsList.length}-${total}321321312321321"); print("${state.newsList.length}-${total}321321312321321");
if (state.newsList.length < total) { if (state.newsList.length < total) {
fetchNewsList().then((_) { fetchNewsList().then((_) {
refreshController.loadComplete(); refreshController.finishLoad();
}).catchError((_) { }).catchError((_) {
refreshController.loadFailed(); refreshController.finishLoad(IndicatorResult.fail);
}); });
} else { } else {
refreshController.loadNoData(); refreshController.finishLoad(IndicatorResult.noMore);
} }
} }
......
import 'package:easy_refresh/easy_refresh.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
import 'package:pull_to_refresh/pull_to_refresh.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart';
import '../index.dart'; import '../index.dart';
...@@ -25,21 +25,10 @@ class _NewsPageListState extends State<NewsPageList> ...@@ -25,21 +25,10 @@ class _NewsPageListState extends State<NewsPageList>
super.build(context); super.build(context);
return GetX<CategoryController>( return GetX<CategoryController>(
init: controller, init: controller,
builder: (controller) => SmartRefresher( builder: (controller) => EasyRefresh(
enablePullUp: true,
controller: controller.refreshController, controller: controller.refreshController,
onRefresh: controller.onRefresh, onRefresh: controller.onRefresh,
onLoading: controller.onLoading, onLoad: controller.onLoading,
header: ClassicHeader(
releaseText: "松开刷新",
refreshingText: "刷新数据中",
completeText: "刷新数据成功",
idleText: "下拉刷新"),
footer: ClassicFooter(
loadingText: "正在加载中...",
// loadStyle: LoadStyle.ShowWhenLoading,
// completeDuration: Duration(milliseconds: 500),
noDataText: '没有更多数据啦'),
child: CustomScrollView( child: CustomScrollView(
slivers: [ slivers: [
SliverPadding( SliverPadding(
......
...@@ -14,6 +14,7 @@ import 'package:get/get.dart'; ...@@ -14,6 +14,7 @@ import 'package:get/get.dart';
import 'package:highlight/languages/awk.dart'; import 'package:highlight/languages/awk.dart';
import '../../../common/db/db_tool.dart'; import '../../../common/db/db_tool.dart';
import '../../common/utils/loading.dart';
import 'index.dart'; import 'index.dart';
class CreationDetailController extends GetxController { class CreationDetailController extends GetxController {
...@@ -74,7 +75,7 @@ class CreationDetailController extends GetxController { ...@@ -74,7 +75,7 @@ class CreationDetailController extends GetxController {
}); });
hideKeyboard(); hideKeyboard();
EasyLoading.show(status: "AI正在生成中..."); Loading.show();
try { try {
state.isLoading = true; state.isLoading = true;
final res = await NewsAPI.sendMessageByDetailId( final res = await NewsAPI.sendMessageByDetailId(
...@@ -93,9 +94,9 @@ class CreationDetailController extends GetxController { ...@@ -93,9 +94,9 @@ class CreationDetailController extends GetxController {
// state.isLoading = false; // state.isLoading = false;
} catch (e) { } catch (e) {
state.isLoading = false; state.isLoading = false;
// EasyLoading.dismiss(); // Loading.dismiss();
} }
EasyLoading.dismiss(); Loading.dismiss();
} }
} }
......
...@@ -2,12 +2,14 @@ import 'package:chart/common/apis/apis.dart'; ...@@ -2,12 +2,14 @@ import 'package:chart/common/apis/apis.dart';
import 'package:chart/common/entities/selectAllEntity.dart'; import 'package:chart/common/entities/selectAllEntity.dart';
import 'package:chart/common/routers/names.dart'; import 'package:chart/common/routers/names.dart';
import 'package:chart/pages/creation-detail/controller.dart'; import 'package:chart/pages/creation-detail/controller.dart';
import 'package:easy_refresh/easy_refresh.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_easyloading/flutter_easyloading.dart'; import 'package:flutter_easyloading/flutter_easyloading.dart';
import 'package:flutter_vibrate/flutter_vibrate.dart'; import 'package:flutter_vibrate/flutter_vibrate.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
import 'package:loading_animation_widget/loading_animation_widget.dart'; import 'package:loading_animation_widget/loading_animation_widget.dart';
import 'package:pull_to_refresh/pull_to_refresh.dart';
import '../../common/utils/loading.dart';
class CreationController extends GetxController { class CreationController extends GetxController {
CreationController(); CreationController();
...@@ -34,25 +36,22 @@ class CreationController extends GetxController { ...@@ -34,25 +36,22 @@ class CreationController extends GetxController {
list.addAll(entity.data!); list.addAll(entity.data!);
} }
} }
refreshController.refreshCompleted(); refreshController.finishRefresh();
refreshController.resetFooter();
// } // }
} }
final RefreshController refreshController = RefreshController(); final EasyRefreshController refreshController = EasyRefreshController(
controlFinishLoad: true,
controlFinishRefresh: true
);
void onTap(item) async { void onTap(item) async {
EasyLoading.show( Loading.show();
status: "加载中",
dismissOnTap: false,
maskType: EasyLoadingMaskType.none,
indicator: LoadingAnimationWidget.staggeredDotsWave(
color: Colors.white,
size: 30,
));
Vibrate.feedback(FeedbackType.impact); Vibrate.feedback(FeedbackType.impact);
final res = await UserAPI.getDetailParamsByDetailId(item.id); final res = await UserAPI.getDetailParamsByDetailId(item.id);
EasyLoading.dismiss(); Loading.dismiss();
CreationDetailController.to CreationDetailController.to
.updateState('${item.id}', item.detailName, res.data!); .updateState('${item.id}', item.detailName, res.data!);
Get.toNamed(AppRoutes.CREATION_PAGE_DETAIL); Get.toNamed(AppRoutes.CREATION_PAGE_DETAIL);
......
import 'dart:math'; import 'dart:math';
import 'package:easy_refresh/easy_refresh.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:chart/common/values/values.dart'; import 'package:chart/common/values/values.dart';
import 'package:flutter_vibrate/flutter_vibrate.dart'; import 'package:flutter_vibrate/flutter_vibrate.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:gradient_widgets/gradient_widgets.dart'; import 'package:gradient_widgets/gradient_widgets.dart';
import 'package:pull_to_refresh/pull_to_refresh.dart';
import '../index.dart'; import '../index.dart';
import 'package:flutter_staggered_grid_view/flutter_staggered_grid_view.dart'; import 'package:flutter_staggered_grid_view/flutter_staggered_grid_view.dart';
...@@ -223,23 +223,11 @@ class GridWidget extends GetView<CreationController> { ...@@ -223,23 +223,11 @@ class GridWidget extends GetView<CreationController> {
// ) // )
], ],
); );
return Obx(() => SmartRefresher( return EasyRefresh(
header: ClassicHeader(
releaseText: "松开刷新",
refreshingText: "刷新数据中",
completeText: "刷新数据成功",
idleText: "下拉刷新"),
footer: ClassicFooter(
loadingText: "正在加载中...",
// loadStyle: LoadStyle.ShowWhenLoading,
// completeDuration: Duration(milliseconds: 500),
noDataText: '没有更多数据啦'),
enablePullDown: controller.enablePullDown.value,
enablePullUp: controller.enablePullUp.value,
onRefresh: controller.onRefresh, onRefresh: controller.onRefresh,
controller: controller.refreshController, controller: controller.refreshController,
child: customScrollView, child: customScrollView,
)); );
// return Container( // return Container(
// alignment: Alignment.center, // alignment: Alignment.center,
......
...@@ -17,6 +17,7 @@ import 'package:flutter_easyloading/flutter_easyloading.dart'; ...@@ -17,6 +17,7 @@ import 'package:flutter_easyloading/flutter_easyloading.dart';
import 'package:flutter_vibrate/flutter_vibrate.dart'; import 'package:flutter_vibrate/flutter_vibrate.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
import '../../../common/utils/loading.dart';
import 'index.dart'; import 'index.dart';
class AndroidPayListController extends GetxController { class AndroidPayListController extends GetxController {
...@@ -51,15 +52,15 @@ class AndroidPayListController extends GetxController { ...@@ -51,15 +52,15 @@ class AndroidPayListController extends GetxController {
try { try {
await initializedPlugins(); await initializedPlugins();
EasyLoading.show(status: "正在获取套餐中..."); Loading.show("正在获取套餐中...");
await _getProduct(); await _getProduct();
state.loadingList = false; state.loadingList = false;
EasyLoading.dismiss(); Loading.dismiss();
} catch (e) { } catch (e) {
state.loadingList = false; state.loadingList = false;
} }
// EasyLoading.dismiss(); // Loading.dismiss();
// await initializedPlugins(); // await initializedPlugins();
// new 对象 // new 对象
// 初始静态数据 // 初始静态数据
...@@ -111,20 +112,20 @@ class AndroidPayListController extends GetxController { ...@@ -111,20 +112,20 @@ class AndroidPayListController extends GetxController {
} }
Future _getProduct() async { Future _getProduct() async {
EasyLoading.show(status: "正在获取套餐中..."); Loading.show("正在获取套餐中...");
try { try {
List<GoodEntity> goodsList = await NewsAPI.getGoodsList(); List<GoodEntity> goodsList = await NewsAPI.getGoodsList();
final list = goodsList.reversed; final list = goodsList.reversed;
// print(goodsList); // print(goodsList);
state.items.addAll(list); state.items.addAll(list);
EasyLoading.dismiss(); Loading.dismiss();
if (goodsList.isNotEmpty) { if (goodsList.isNotEmpty) {
state.setSelectedItem = goodsList.first; state.setSelectedItem = goodsList.first;
} }
} catch (e) { } catch (e) {
print(e); print(e);
EasyLoading.dismiss(); Loading.dismiss();
} }
// try { // try {
// List<IAPItem> items = // List<IAPItem> items =
...@@ -144,7 +145,7 @@ class AndroidPayListController extends GetxController { ...@@ -144,7 +145,7 @@ class AndroidPayListController extends GetxController {
void requestPurchase() async { void requestPurchase() async {
Vibrate.feedback(FeedbackType.impact); Vibrate.feedback(FeedbackType.impact);
// print("${item.productId}"); // print("${item.productId}");
EasyLoading.show(status: '支付中...'); Loading.show('支付中...');
// List<String> newList = list.where((element) => element.compareTo('b') > 0).toList(); // ['c', 'd'] // List<String> newList = list.where((element) => element.compareTo('b') > 0).toList(); // ['c', 'd']
final actSelected = state.selectedItem; final actSelected = state.selectedItem;
...@@ -157,7 +158,7 @@ class AndroidPayListController extends GetxController { ...@@ -157,7 +158,7 @@ class AndroidPayListController extends GetxController {
AlipayKitPlatform.instance.pay(orderInfo: orderInfo); AlipayKitPlatform.instance.pay(orderInfo: orderInfo);
EasyLoading.dismiss(); Loading.dismiss();
// actSelected // actSelected
// selected // selected
......
...@@ -62,10 +62,10 @@ ...@@ -62,10 +62,10 @@
// if (res?.status == 200) { // if (res?.status == 200) {
// await FlutterInappPurchase.instance.clearTransactionIOS(); // await FlutterInappPurchase.instance.clearTransactionIOS();
// EasyLoading.showSuccess('${res?.message}'); // EasyLoading.showSuccess('${res?.message}');
// EasyLoading.dismiss(); // Loading.dismiss();
// } else { // } else {
// EasyLoading.showError("${res?.message}}"); // EasyLoading.showError("${res?.message}}");
// EasyLoading.dismiss(); // Loading.dismiss();
// } // }
// }); // });
...@@ -73,7 +73,7 @@ ...@@ -73,7 +73,7 @@
// FlutterInappPurchase.purchaseError.listen((purchaseError) { // FlutterInappPurchase.purchaseError.listen((purchaseError) {
// // print('purchase-error: $purchaseError'); // // print('purchase-error: $purchaseError');
// EasyLoading.showError('支付订单失败'); // EasyLoading.showError('支付订单失败');
// EasyLoading.dismiss(); // Loading.dismiss();
// }); // });
// } // }
......
...@@ -18,6 +18,7 @@ import 'package:get/get.dart'; ...@@ -18,6 +18,7 @@ import 'package:get/get.dart';
import 'package:share_plus/share_plus.dart'; import 'package:share_plus/share_plus.dart';
import 'package:uuid/uuid.dart'; import 'package:uuid/uuid.dart';
import 'package:flutter_chat_types/flutter_chat_types.dart' as types; import 'package:flutter_chat_types/flutter_chat_types.dart' as types;
import '../../../common/utils/loading.dart';
import 'index.dart'; import 'index.dart';
import 'package:eventsource/eventsource.dart'; import 'package:eventsource/eventsource.dart';
import 'dart:convert'; import 'dart:convert';
...@@ -105,7 +106,7 @@ class ChatNewController extends GetxController { ...@@ -105,7 +106,7 @@ class ChatNewController extends GetxController {
// "eventSource.isPausedeventSource.isPausedeventSource.isPaused---------------${eventSource.isPaused}"); // "eventSource.isPausedeventSource.isPausedeventSource.isPaused---------------${eventSource.isPaused}");
if (result == 200) { if (result == 200) {
EasyLoading.dismiss(); Loading.dismiss();
Vibrate.feedback(FeedbackType.success); Vibrate.feedback(FeedbackType.success);
UserAPI.getUserInfo().then((value) async { UserAPI.getUserInfo().then((value) async {
await UserStore.to.saveProfile(IntegralEntity( await UserStore.to.saveProfile(IntegralEntity(
...@@ -126,7 +127,7 @@ class ChatNewController extends GetxController { ...@@ -126,7 +127,7 @@ class ChatNewController extends GetxController {
// index.value = state.messageList.length; // index.value = state.messageList.length;
} else { } else {
EasyLoading.showError("网络异常"); EasyLoading.showError("网络异常");
EasyLoading.dismiss(); Loading.dismiss();
state.isLoading = false; state.isLoading = false;
} }
} else { } else {
...@@ -138,7 +139,7 @@ class ChatNewController extends GetxController { ...@@ -138,7 +139,7 @@ class ChatNewController extends GetxController {
); );
state.isLoading = false; state.isLoading = false;
_addMessage(receiveErrorMessage); _addMessage(receiveErrorMessage);
EasyLoading.dismiss(); Loading.dismiss();
Vibrate.feedback(FeedbackType.error); Vibrate.feedback(FeedbackType.error);
Get.toNamed(AppRoutes.SIGN_IN); Get.toNamed(AppRoutes.SIGN_IN);
} }
...@@ -154,7 +155,7 @@ class ChatNewController extends GetxController { ...@@ -154,7 +155,7 @@ class ChatNewController extends GetxController {
); );
_addMessage(receiveErrorMessage); _addMessage(receiveErrorMessage);
EasyLoading.dismiss(); Loading.dismiss();
Vibrate.feedback(FeedbackType.error); Vibrate.feedback(FeedbackType.error);
} }
} }
......
...@@ -12,6 +12,7 @@ import 'package:flutter_inapp_purchase/modules.dart'; ...@@ -12,6 +12,7 @@ import 'package:flutter_inapp_purchase/modules.dart';
import 'package:flutter_vibrate/flutter_vibrate.dart'; import 'package:flutter_vibrate/flutter_vibrate.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
import '../../../common/utils/loading.dart';
import 'index.dart'; import 'index.dart';
class PayListController extends GetxController { class PayListController extends GetxController {
...@@ -65,11 +66,11 @@ class PayListController extends GetxController { ...@@ -65,11 +66,11 @@ class PayListController extends GetxController {
super.onInit(); super.onInit();
try { try {
await initializedPlugins(); await initializedPlugins();
EasyLoading.show(status: "正在获取套餐中..."); Loading.show("正在获取套餐中...");
state.loadingList = true; state.loadingList = true;
await _getProduct(); await _getProduct();
state.loadingList = false; state.loadingList = false;
EasyLoading.dismiss(); Loading.dismiss();
} catch (e) { } catch (e) {
state.loadingList = false; state.loadingList = false;
} }
...@@ -153,7 +154,7 @@ class PayListController extends GetxController { ...@@ -153,7 +154,7 @@ class PayListController extends GetxController {
void restorePurchases() async { void restorePurchases() async {
Vibrate.feedback(FeedbackType.selection); Vibrate.feedback(FeedbackType.selection);
EasyLoading.show(status: '恢复购买中...'); Loading.show('恢复购买中...');
List<PurchasedItem>? purchases = List<PurchasedItem>? purchases =
await FlutterInappPurchase.instance.getAvailablePurchases(); await FlutterInappPurchase.instance.getAvailablePurchases();
...@@ -167,7 +168,7 @@ class PayListController extends GetxController { ...@@ -167,7 +168,7 @@ class PayListController extends GetxController {
EasyLoading.showSuccess("恢复购买成功"); EasyLoading.showSuccess("恢复购买成功");
} else { } else {
EasyLoading.showInfo("没有查询到购买订单"); EasyLoading.showInfo("没有查询到购买订单");
EasyLoading.dismiss(); Loading.dismiss();
} }
// print("${item.productId}"); // print("${item.productId}");
......
...@@ -9,6 +9,7 @@ import 'package:get/get.dart'; ...@@ -9,6 +9,7 @@ import 'package:get/get.dart';
import 'package:glassmorphism/glassmorphism.dart'; import 'package:glassmorphism/glassmorphism.dart';
import '../../../../common/apis/apis.dart'; import '../../../../common/apis/apis.dart';
import '../../../../common/utils/loading.dart';
import '../index.dart'; import '../index.dart';
class PayItemWidget extends StatefulWidget { class PayItemWidget extends StatefulWidget {
...@@ -62,10 +63,10 @@ class GoodsPageState extends State<PayItemWidget> { ...@@ -62,10 +63,10 @@ class GoodsPageState extends State<PayItemWidget> {
if (res?.status == 200) { if (res?.status == 200) {
await FlutterInappPurchase.instance.clearTransactionIOS(); await FlutterInappPurchase.instance.clearTransactionIOS();
EasyLoading.showSuccess('${res?.message}'); EasyLoading.showSuccess('${res?.message}');
EasyLoading.dismiss(); Loading.dismiss();
} else { } else {
EasyLoading.showError("${res?.message}}"); EasyLoading.showError("${res?.message}}");
EasyLoading.dismiss(); Loading.dismiss();
} }
}); });
...@@ -73,7 +74,7 @@ class GoodsPageState extends State<PayItemWidget> { ...@@ -73,7 +74,7 @@ class GoodsPageState extends State<PayItemWidget> {
FlutterInappPurchase.purchaseError.listen((purchaseError) { FlutterInappPurchase.purchaseError.listen((purchaseError) {
// print('purchase-error: $purchaseError'); // print('purchase-error: $purchaseError');
EasyLoading.showError('支付订单失败'); EasyLoading.showError('支付订单失败');
EasyLoading.dismiss(); Loading.dismiss();
}); });
} }
...@@ -182,7 +183,7 @@ class GoodsPageState extends State<PayItemWidget> { ...@@ -182,7 +183,7 @@ class GoodsPageState extends State<PayItemWidget> {
ElevatedButton( ElevatedButton(
// color: Colors.orange, // color: Colors.orange,
onPressed: () { onPressed: () {
EasyLoading.show(status: '提交订单中...'); Loading.show('提交订单中...');
c.requestPurchase(); c.requestPurchase();
// c() // c()
}, },
......
...@@ -15,6 +15,7 @@ import 'package:get/get_connect/http/src/utils/utils.dart'; ...@@ -15,6 +15,7 @@ import 'package:get/get_connect/http/src/utils/utils.dart';
import 'package:share_plus/share_plus.dart'; import 'package:share_plus/share_plus.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
import '../../../common/utils/loading.dart';
import 'index.dart'; import 'index.dart';
class ProductController extends GetxController { class ProductController extends GetxController {
...@@ -73,7 +74,7 @@ class ProductController extends GetxController { ...@@ -73,7 +74,7 @@ class ProductController extends GetxController {
header: {}).listen((event) { header: {}).listen((event) {
try { try {
if (EasyLoading.isShow) { if (EasyLoading.isShow) {
EasyLoading.dismiss(); Loading.dismiss();
} }
if (event.id == "[DONE]") { if (event.id == "[DONE]") {
state.isLoading = false; state.isLoading = false;
...@@ -83,7 +84,7 @@ class ProductController extends GetxController { ...@@ -83,7 +84,7 @@ class ProductController extends GetxController {
Map<String, dynamic> jsonMap = jsonDecode(event.data as String); Map<String, dynamic> jsonMap = jsonDecode(event.data as String);
state.inderText = state.inderText + jsonMap['content']; state.inderText = state.inderText + jsonMap['content'];
} catch (e) { } catch (e) {
EasyLoading.dismiss(); Loading.dismiss();
} }
// //
}); });
...@@ -148,9 +149,9 @@ class ProductController extends GetxController { ...@@ -148,9 +149,9 @@ class ProductController extends GetxController {
"sort": 2, "sort": 2,
} }
], params['detailId']!); ], params['detailId']!);
EasyLoading.show(status: "AI正在生成中..."); Loading.show();
if (result == 200) { if (result == 200) {
// EasyLoading.dismiss(); // Loading.dismiss();
UserAPI.getUserInfo().then((value) async { UserAPI.getUserInfo().then((value) async {
await UserStore.to.saveProfile(IntegralEntity( await UserStore.to.saveProfile(IntegralEntity(
id: UserStore.to.profile.id, id: UserStore.to.profile.id,
...@@ -160,7 +161,7 @@ class ProductController extends GetxController { ...@@ -160,7 +161,7 @@ class ProductController extends GetxController {
integral: value.integral)); integral: value.integral));
}); });
} else { } else {
EasyLoading.dismiss(); Loading.dismiss();
state.isLoading = false; state.isLoading = false;
} }
...@@ -178,10 +179,10 @@ class ProductController extends GetxController { ...@@ -178,10 +179,10 @@ class ProductController extends GetxController {
state.loading = false; state.loading = false;
// Get.snackbar("错误提示", "您的问题还没有填完", colorText: Colors.white); // Get.snackbar("错误提示", "您的问题还没有填完", colorText: Colors.white);
} }
// EasyLoading.dismiss(); // Loading.dismiss();
} catch (e) { } catch (e) {
state.loading = false; state.loading = false;
// EasyLoading.dismiss(); // Loading.dismiss();
} }
print("$str"); print("$str");
...@@ -231,7 +232,7 @@ class ProductController extends GetxController { ...@@ -231,7 +232,7 @@ class ProductController extends GetxController {
String str = a + '\n\n' + "继续"; String str = a + '\n\n' + "继续";
state.loading = true; state.loading = true;
EasyLoading.show(status: "AI正在生成中..."); Loading.show();
String result = await NewsAPI.sendMessage( String result = await NewsAPI.sendMessage(
{"question": str, "id": "${UserStore.to.profile.id}"}); {"question": str, "id": "${UserStore.to.profile.id}"});
state.loading = false; state.loading = false;
...@@ -239,12 +240,12 @@ class ProductController extends GetxController { ...@@ -239,12 +240,12 @@ class ProductController extends GetxController {
state.messageQueenItemQueen.forEach((element) { state.messageQueenItemQueen.forEach((element) {
element.isFinish = false; element.isFinish = false;
}); });
EasyLoading.dismiss(); Loading.dismiss();
state.messageQueenItemQueen.add( state.messageQueenItemQueen.add(
MessageQueenItem(text: result, isFinish: false, isWhiteIng: true)); MessageQueenItem(text: result, isFinish: false, isWhiteIng: true));
} catch (e) { } catch (e) {
EasyLoading.showError("网络异常"); EasyLoading.showError("网络异常");
EasyLoading.dismiss(); Loading.dismiss();
state.loading = false; state.loading = false;
state.isWhite = false; state.isWhite = false;
} }
......
...@@ -88,7 +88,7 @@ class SignInController extends GetxController { ...@@ -88,7 +88,7 @@ class SignInController extends GetxController {
return; return;
} }
EasyLoading.show(status: '登录中...'); Loading.show();
// Map<String, dynamic> routeParams = // Map<String, dynamic> routeParams =
// ModalRoute.of(context)!.settings?.arguments as Map<String, dynamic>; // ModalRoute.of(context)!.settings?.arguments as Map<String, dynamic>;
// final DateTime expireTime; // final DateTime expireTime;
...@@ -102,7 +102,7 @@ class SignInController extends GetxController { ...@@ -102,7 +102,7 @@ class SignInController extends GetxController {
Vibrate.feedback(FeedbackType.success); Vibrate.feedback(FeedbackType.success);
EasyLoading.showSuccess("登录成功"); EasyLoading.showSuccess("登录成功");
EasyLoading.dismiss(); Loading.dismiss();
UserStore.to.handleLogin(IntegralEntity( UserStore.to.handleLogin(IntegralEntity(
id: res.id, id: res.id,
username: res.username, username: res.username,
...@@ -114,7 +114,7 @@ class SignInController extends GetxController { ...@@ -114,7 +114,7 @@ class SignInController extends GetxController {
} catch (e) { } catch (e) {
Vibrate.feedback(FeedbackType.error); Vibrate.feedback(FeedbackType.error);
EasyLoading.showError("登录失败"); EasyLoading.showError("登录失败");
EasyLoading.dismiss(); Loading.dismiss();
} }
// try { // try {
// LoginEntity? res = await UserAPI.login({ // LoginEntity? res = await UserAPI.login({
...@@ -130,10 +130,10 @@ class SignInController extends GetxController { ...@@ -130,10 +130,10 @@ class SignInController extends GetxController {
// } else { // } else {
// EasyLoading.showError("登录失败"); // EasyLoading.showError("登录失败");
// } // }
// EasyLoading.dismiss(); // Loading.dismiss();
// } catch (e) { // } catch (e) {
// EasyLoading.showError("登录失败"); // EasyLoading.showError("登录失败");
// EasyLoading.dismiss(); // Loading.dismiss();
// } // }
// UserLoginRequestEntity params = UserLoginRequestEntity( // UserLoginRequestEntity params = UserLoginRequestEntity(
...@@ -158,7 +158,7 @@ class SignInController extends GetxController { ...@@ -158,7 +158,7 @@ class SignInController extends GetxController {
} }
handleTouristsLogin() async { handleTouristsLogin() async {
EasyLoading.show(status: '登录中...'); Loading.show();
// Map<String, dynamic> routeParams = // Map<String, dynamic> routeParams =
// ModalRoute.of(context)!.settings?.arguments as Map<String, dynamic>; // ModalRoute.of(context)!.settings?.arguments as Map<String, dynamic>;
// final DateTime expireTime; // final DateTime expireTime;
...@@ -178,7 +178,7 @@ class SignInController extends GetxController { ...@@ -178,7 +178,7 @@ class SignInController extends GetxController {
Vibrate.feedback(FeedbackType.success); Vibrate.feedback(FeedbackType.success);
EasyLoading.showSuccess("登录成功"); EasyLoading.showSuccess("登录成功");
EasyLoading.dismiss(); Loading.dismiss();
UserStore.to.handleLogin(IntegralEntity( UserStore.to.handleLogin(IntegralEntity(
id: res.id, id: res.id,
username: res.username, username: res.username,
...@@ -190,7 +190,7 @@ class SignInController extends GetxController { ...@@ -190,7 +190,7 @@ class SignInController extends GetxController {
} catch (e) { } catch (e) {
Vibrate.feedback(FeedbackType.error); Vibrate.feedback(FeedbackType.error);
EasyLoading.showError("登录失败"); EasyLoading.showError("登录失败");
EasyLoading.dismiss(); Loading.dismiss();
} }
} }
...@@ -254,7 +254,7 @@ class SignInController extends GetxController { ...@@ -254,7 +254,7 @@ class SignInController extends GetxController {
// if (codeEnable.value == false) { // if (codeEnable.value == false) {
// EasyLoading.show(status: "验证码发送太过频繁,请稍后再试"); // EasyLoading.show(status: "验证码发送太过频繁,请稍后再试");
// EasyLoading.dismiss(); // Loading.dismiss();
// return; // return;
// } // }
// if (codeEnable.value) { // if (codeEnable.value) {
...@@ -263,7 +263,7 @@ class SignInController extends GetxController { ...@@ -263,7 +263,7 @@ class SignInController extends GetxController {
// smsLoading.value = true; // smsLoading.value = true;
// MsmEntity? res = // MsmEntity? res =
// await UserAPI.sendSms({"phone": mobileMemberController.text}); // await UserAPI.sendSms({"phone": mobileMemberController.text});
// EasyLoading.dismiss(); // Loading.dismiss();
// if (res.status == 200) { // if (res.status == 200) {
// EasyLoading.showToast('验证码发送成功,请注意查收'); // EasyLoading.showToast('验证码发送成功,请注意查收');
...@@ -326,7 +326,7 @@ class SignInController extends GetxController { ...@@ -326,7 +326,7 @@ class SignInController extends GetxController {
AppleIDAuthorizationScopes.fullName, AppleIDAuthorizationScopes.fullName,
], ],
); );
EasyLoading.show(status: "登录中..."); Loading.show();
LoginEntity res = await UserAPI.appLogin({ LoginEntity res = await UserAPI.appLogin({
"authorizationCode": credential?.authorizationCode, "authorizationCode": credential?.authorizationCode,
"email": credential?.email, "email": credential?.email,
...@@ -340,7 +340,7 @@ class SignInController extends GetxController { ...@@ -340,7 +340,7 @@ class SignInController extends GetxController {
Vibrate.feedback(FeedbackType.success); Vibrate.feedback(FeedbackType.success);
EasyLoading.showSuccess("登录成功"); EasyLoading.showSuccess("登录成功");
EasyLoading.dismiss(); Loading.dismiss();
UserStore.to.handleLogin(IntegralEntity( UserStore.to.handleLogin(IntegralEntity(
id: res.id, id: res.id,
username: res.username, username: res.username,
...@@ -352,7 +352,7 @@ class SignInController extends GetxController { ...@@ -352,7 +352,7 @@ class SignInController extends GetxController {
} catch (e) { } catch (e) {
Vibrate.feedback(FeedbackType.error); Vibrate.feedback(FeedbackType.error);
EasyLoading.showError("登录失败"); EasyLoading.showError("登录失败");
EasyLoading.dismiss(); Loading.dismiss();
} }
; ;
} }
......
...@@ -23,6 +23,7 @@ import 'package:highlight/languages/awk.dart'; ...@@ -23,6 +23,7 @@ import 'package:highlight/languages/awk.dart';
import 'package:share_plus/share_plus.dart'; import 'package:share_plus/share_plus.dart';
import 'package:uuid/uuid.dart'; import 'package:uuid/uuid.dart';
import 'package:flutter_chat_types/flutter_chat_types.dart' as types; import 'package:flutter_chat_types/flutter_chat_types.dart' as types;
import '../../common/utils/loading.dart';
import '../../common/widgets/wx_share.dart'; import '../../common/widgets/wx_share.dart';
import 'index.dart'; import 'index.dart';
import 'package:eventsource/eventsource.dart'; import 'package:eventsource/eventsource.dart';
...@@ -195,7 +196,7 @@ class HomeController extends GetxController with SingleGetTickerProviderMixin { ...@@ -195,7 +196,7 @@ class HomeController extends GetxController with SingleGetTickerProviderMixin {
// "eventSource.isPausedeventSource.isPausedeventSource.isPaused---------------${eventSource.isPaused}"); // "eventSource.isPausedeventSource.isPausedeventSource.isPaused---------------${eventSource.isPaused}");
if (result == 200) { if (result == 200) {
EasyLoading.dismiss(); Loading.dismiss();
Vibrate.feedback(FeedbackType.success); Vibrate.feedback(FeedbackType.success);
UserAPI.getUserInfo().then((value) async { UserAPI.getUserInfo().then((value) async {
await UserStore.to.saveProfile(IntegralEntity( await UserStore.to.saveProfile(IntegralEntity(
...@@ -209,7 +210,7 @@ class HomeController extends GetxController with SingleGetTickerProviderMixin { ...@@ -209,7 +210,7 @@ class HomeController extends GetxController with SingleGetTickerProviderMixin {
// index.value = state.messageList.length; // index.value = state.messageList.length;
} else { } else {
// EasyLoading.showError("网络异常"); // EasyLoading.showError("网络异常");
EasyLoading.dismiss(); Loading.dismiss();
state.isLoading = false; state.isLoading = false;
} }
} else { } else {
...@@ -221,7 +222,7 @@ class HomeController extends GetxController with SingleGetTickerProviderMixin { ...@@ -221,7 +222,7 @@ class HomeController extends GetxController with SingleGetTickerProviderMixin {
); );
state.isLoading = false; state.isLoading = false;
_addMessage(receiveErrorMessage); _addMessage(receiveErrorMessage);
EasyLoading.dismiss(); Loading.dismiss();
Vibrate.feedback(FeedbackType.error); Vibrate.feedback(FeedbackType.error);
Get.toNamed(AppRoutes.SIGN_IN); Get.toNamed(AppRoutes.SIGN_IN);
} }
...@@ -239,7 +240,7 @@ class HomeController extends GetxController with SingleGetTickerProviderMixin { ...@@ -239,7 +240,7 @@ class HomeController extends GetxController with SingleGetTickerProviderMixin {
// _addMessage(receiveErrorMessage); // _addMessage(receiveErrorMessage);
_updateMessage("网络错误,请重试!"); _updateMessage("网络错误,请重试!");
EasyLoading.dismiss(); Loading.dismiss();
Vibrate.feedback(FeedbackType.error); Vibrate.feedback(FeedbackType.error);
} }
} }
......
...@@ -3,15 +3,15 @@ import 'dart:io'; ...@@ -3,15 +3,15 @@ import 'dart:io';
import 'package:chart/common/apis/apis.dart'; import 'package:chart/common/apis/apis.dart';
import 'package:chart/common/store/user.dart'; import 'package:chart/common/store/user.dart';
import 'package:chart/common/utils/loading.dart';
import 'package:easy_refresh/easy_refresh.dart';
import 'package:flutter/cupertino.dart'; import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_easyloading/flutter_easyloading.dart'; import 'package:flutter_easyloading/flutter_easyloading.dart';
import 'package:flutter_easyrefresh/easy_refresh.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
import 'package:highlight/languages/awk.dart'; import 'package:highlight/languages/awk.dart';
import 'package:intl/intl.dart'; import 'package:intl/intl.dart';
import 'package:loading_animation_widget/loading_animation_widget.dart'; import 'package:loading_animation_widget/loading_animation_widget.dart';
import 'package:pull_to_refresh/pull_to_refresh.dart';
import 'package:share_plus/share_plus.dart'; import 'package:share_plus/share_plus.dart';
import 'package:in_app_review/in_app_review.dart'; import 'package:in_app_review/in_app_review.dart';
...@@ -21,7 +21,10 @@ import '../ai-draw-image/model.dart'; ...@@ -21,7 +21,10 @@ import '../ai-draw-image/model.dart';
import 'models.dart'; import 'models.dart';
class MyWorkController extends GetxController { class MyWorkController extends GetxController {
late var refreshController = RefreshController(); late var refreshController = EasyRefreshController(
controlFinishLoad: true,
controlFinishRefresh: true
);
var models = AIDrawTextToImageModel(); var models = AIDrawTextToImageModel();
var collectImages = Rx<List<MyCollectData>>([]); var collectImages = Rx<List<MyCollectData>>([]);
var workImages = Rx<List<MyWorkData>>([]); var workImages = Rx<List<MyWorkData>>([]);
...@@ -56,7 +59,7 @@ class MyWorkController extends GetxController { ...@@ -56,7 +59,7 @@ class MyWorkController extends GetxController {
if (index >= 0 && index < collectImages.value.length) { if (index >= 0 && index < collectImages.value.length) {
final item = collectImages.value[index]; final item = collectImages.value[index];
final conversionId = await UserAPI.createConversion(); final conversionId = await UserAPI.createConversion();
EasyLoading.dismiss(); Loading.dismiss();
if (conversionId == 401) { if (conversionId == 401) {
EasyLoading.showInfo('您还为登录,请登录后体验功能。'); EasyLoading.showInfo('您还为登录,请登录后体验功能。');
Get.toNamed(AppRoutes.SIGN_IN); Get.toNamed(AppRoutes.SIGN_IN);
...@@ -66,12 +69,13 @@ class MyWorkController extends GetxController { ...@@ -66,12 +69,13 @@ class MyWorkController extends GetxController {
"opearter": OpearterType.imageResult, "opearter": OpearterType.imageResult,
"conversionId": conversionId, "conversionId": conversionId,
"imageUrls": [item.imgUrl ?? ""], "imageUrls": [item.imgUrl ?? ""],
"enText": "", "enText": item.prompt ?? "",
"text": "", "text": item.prompt ?? "",
"ratio": "16:9", "ratio": "16:9",
"s": "", "s": "",
"styleName": "--v 5.2", "styleName": "--v 5.2",
"messageId": "" "messageId": "",
"didCollected": true
}); });
} }
} }
...@@ -81,7 +85,7 @@ class MyWorkController extends GetxController { ...@@ -81,7 +85,7 @@ class MyWorkController extends GetxController {
if (index >= 0 && index < workImages.value.length) { if (index >= 0 && index < workImages.value.length) {
final item = workImages.value[index]; final item = workImages.value[index];
final conversionId = await UserAPI.createConversion(); final conversionId = await UserAPI.createConversion();
EasyLoading.dismiss(); Loading.dismiss();
if (conversionId == 401) { if (conversionId == 401) {
EasyLoading.showInfo('您还为登录,请登录后体验功能。'); EasyLoading.showInfo('您还为登录,请登录后体验功能。');
Get.toNamed(AppRoutes.SIGN_IN); Get.toNamed(AppRoutes.SIGN_IN);
...@@ -96,30 +100,49 @@ class MyWorkController extends GetxController { ...@@ -96,30 +100,49 @@ class MyWorkController extends GetxController {
"ratio": "16:9", "ratio": "16:9",
"s": "", "s": "",
"styleName": item.style ?? "--v 5.2", "styleName": item.style ?? "--v 5.2",
"messageId": item.messageId ?? "" "messageId": item.messageId ?? "",
"didCollected": item.isCancel == 1
}); });
} }
} }
} }
onDeleteWork(int index) async {
if (index >= 0 && index < workImages.value.length) {
final item = workImages.value[index];
Loading.show();
final res = await NewsAPI.deleteMyWorkImage(item.id ?? 0);
Loading.dismiss();
if (res.status == 401) {
EasyLoading.showInfo('您还为登录,请登录后体验功能。');
Get.toNamed(AppRoutes.SIGN_IN);
} else {
if (res.status == 200) {
EasyLoading.showSuccess('删除成功');
requestMyWorkImages(false);
} else {
EasyLoading.showInfo(res.message ?? "删除失败");
}
}
}
}
requestMyWorkImages(bool ismore) async { requestMyWorkImages(bool ismore) async {
if (!ismore) { if (!ismore) {
EasyLoading.show( Loading.show();
status: "正在加载我的作品",
dismissOnTap: false,
maskType: EasyLoadingMaskType.none,
indicator: LoadingAnimationWidget.staggeredDotsWave(
color: Colors.white,
size: 30,
));
} }
final res = await UserAPI.getMyWorkImages(page); final res = await UserAPI.getMyWorkImages(page);
if (ismore) { if (ismore) {
refreshController.loadComplete(); if (res.data?.isEmpty ?? true) {
refreshController.finishLoad(IndicatorResult.noMore);
} else {
refreshController.finishLoad(IndicatorResult.success);
}
} else { } else {
refreshController.refreshCompleted(); refreshController.finishRefresh();
refreshController.resetFooter();
} }
EasyLoading.dismiss(); Loading.dismiss();
if (res.status == 200) { if (res.status == 200) {
if (ismore) { if (ismore) {
var array = workImages.value; var array = workImages.value;
...@@ -136,18 +159,21 @@ class MyWorkController extends GetxController { ...@@ -136,18 +159,21 @@ class MyWorkController extends GetxController {
requestMyCollectImages(bool ismore) async { requestMyCollectImages(bool ismore) async {
if (!ismore) { if (!ismore) {
EasyLoading.show( // Loading.show();
status: "正在加载我的收藏", EasyLoading.show(status: "我是吴海超450294095-340950349-25");
dismissOnTap: false,
maskType: EasyLoadingMaskType.none,
indicator: LoadingAnimationWidget.staggeredDotsWave(
color: Colors.white,
size: 30,
));
} }
final res = await UserAPI.getMyCollectImages(page); final res = await UserAPI.getMyCollectImages(page);
refreshController.refreshCompleted(); if (ismore) {
EasyLoading.dismiss(); if (res.data?.isEmpty ?? true) {
refreshController.finishLoad(IndicatorResult.noMore);
} else {
refreshController.finishLoad(IndicatorResult.success);
}
} else {
refreshController.finishRefresh();
refreshController.resetFooter();
}
Loading.dismiss();
if (res.status == 200) { if (res.status == 200) {
if (ismore) { if (ismore) {
var array = collectImages.value; var array = collectImages.value;
......
...@@ -37,10 +37,12 @@ class MyWorkData { ...@@ -37,10 +37,12 @@ class MyWorkData {
String? minioUrl; String? minioUrl;
String? createTime; String? createTime;
String? style; String? style;
int? isCancel;
int? showSquare; int? showSquare;
MyWorkData( MyWorkData(
{this.id, {this.id,
this.isCancel,
this.userId, this.userId,
this.content, this.content,
this.imageUrl, this.imageUrl,
...@@ -60,6 +62,7 @@ class MyWorkData { ...@@ -60,6 +62,7 @@ class MyWorkData {
createTime = json['createTime']; createTime = json['createTime'];
style = json['style']; style = json['style'];
showSquare = json['showSquare']; showSquare = json['showSquare'];
isCancel = json['isCancel'];
} }
Map<String, dynamic> toJson() { Map<String, dynamic> toJson() {
...@@ -73,6 +76,7 @@ class MyWorkData { ...@@ -73,6 +76,7 @@ class MyWorkData {
data['createTime'] = this.createTime; data['createTime'] = this.createTime;
data['style'] = this.style; data['style'] = this.style;
data['showSquare'] = this.showSquare; data['showSquare'] = this.showSquare;
data['isCancel'] = isCancel;
return data; return data;
} }
} }
......
...@@ -3,11 +3,11 @@ ...@@ -3,11 +3,11 @@
import 'package:cached_network_image/cached_network_image.dart'; import 'package:cached_network_image/cached_network_image.dart';
import 'package:chart/common/routers/routes.dart'; import 'package:chart/common/routers/routes.dart';
import 'package:easy_refresh/easy_refresh.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_easyrefresh/easy_refresh.dart';
import 'package:flutter_staggered_grid_view/flutter_staggered_grid_view.dart'; import 'package:flutter_staggered_grid_view/flutter_staggered_grid_view.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
import 'package:pull_to_refresh/pull_to_refresh.dart';
import '../../common/style/color.dart'; import '../../common/style/color.dart';
import './controller.dart'; import './controller.dart';
...@@ -17,52 +17,83 @@ class MyWorkPage extends GetView<MyWorkController> { ...@@ -17,52 +17,83 @@ class MyWorkPage extends GetView<MyWorkController> {
Widget makeMyWorkListView() { Widget makeMyWorkListView() {
final controller = Get.find<MyWorkController>(); final controller = Get.find<MyWorkController>();
return Obx(() => SmartRefresher( return Obx(() => EasyRefresh(
enablePullUp: true,
enablePullDown: true,
controller: controller.refreshController, controller: controller.refreshController,
onRefresh: controller.onPullRefresh, onRefresh: controller.onPullRefresh,
onLoading: controller.onLoadMore, onLoad: controller.onLoadMore,
header: const ClassicHeader(
releaseText: "松开刷新",
refreshingText: "刷新数据中",
completeText: "刷新数据成功",
idleText: "下拉刷新"
),
footer: const ClassicFooter(
loadingText: "正在加载中...",
noDataText: '没有更多数据啦'
),
child: MasonryGridView.count( child: MasonryGridView.count(
itemCount: controller.workImageCount.value, itemCount: controller.workImageCount.value,
crossAxisCount: 2, crossAxisCount: 2,
itemBuilder: (BuildContext context, int index) { itemBuilder: (BuildContext context, int index) {
return InkWell( return Stack(
onTap: () { children: [
controller.onClickWorkImage(index); InkWell(
}, highlightColor: Colors.transparent,
child: ClipRRect( splashColor: Colors.transparent,
borderRadius: BorderRadius.circular(10), onTap: () {
child: CachedNetworkImage( controller.onClickWorkImage(index);
fit: BoxFit.cover, },
height: index % 2 == 0 ? 260 : 200, child: Stack(
memCacheHeight: index % 2 == 0 ? 260 * 2 : 200 * 2, children: [
maxHeightDiskCache: index % 2 == 0 ? 260 * 2 : 200 * 2, ClipRRect(
imageUrl: controller.workImages.value[index].minioUrl ?? "", borderRadius: BorderRadius.circular(10),
placeholder: (context, url) => Container( child: CachedNetworkImage(
alignment: Alignment.center, fit: BoxFit.cover,
child: const SizedBox( height: index % 2 == 0 ? 260 : 200,
width: 30, width: (Get.width - 20) / 2.0,
height: 30, memCacheHeight: index % 2 == 0 ? 260 * 2 : 200 * 2,
child: CircularProgressIndicator(), maxHeightDiskCache: index % 2 == 0 ? 260 * 2 : 200 * 2,
), imageUrl: controller.workImages.value[index].minioUrl ?? "",
), placeholder: (context, url) => Container(
errorWidget: (context, url, error) => Container( alignment: Alignment.center,
alignment: Alignment.center, child: const SizedBox(
child: Text(error.toString()), width: 30,
), height: 30,
child: CircularProgressIndicator(),
),
),
errorWidget: (context, url, error) => Container(
alignment: Alignment.center,
child: Text(error.toString()),
),
)
),
],
)
),
Positioned(
right: 10,
top: 5,
child: InkWell(
onTap: () {
showDialog(
context: context,
builder: (BuildContext context) {
return CupertinoAlertDialog(
title: const Text('确定要删除吗?'),
actions: <Widget>[
CupertinoDialogAction(
child: const Text('取消'),
onPressed: () {
Navigator.pop(context); // 关闭弹窗
},
),
CupertinoDialogAction(
child: const Text('确定'),
onPressed: () {
controller.onDeleteWork(index);
Navigator.pop(context); // 关闭弹窗
},
),
],
);
},
);
},
child: Image.asset("assets/images/清空图片.png", width: 30, height: 30,),
)
) )
), ],
); );
}, },
mainAxisSpacing: 10.0, mainAxisSpacing: 10.0,
...@@ -74,26 +105,17 @@ class MyWorkPage extends GetView<MyWorkController> { ...@@ -74,26 +105,17 @@ class MyWorkPage extends GetView<MyWorkController> {
Widget makeMyCollectListView() { Widget makeMyCollectListView() {
// TODO: implement build // TODO: implement build
final controller = Get.find<MyWorkController>(); final controller = Get.find<MyWorkController>();
return Obx(() => SmartRefresher( return Obx(() => EasyRefresh(
enablePullUp: true,
controller: controller.refreshController, controller: controller.refreshController,
onRefresh: controller.onPullRefresh, onRefresh: controller.onPullRefresh,
onLoading: controller.onLoadMore, onLoad: controller.onLoadMore,
header: const ClassicHeader(
releaseText: "松开刷新",
refreshingText: "刷新数据中",
completeText: "刷新数据成功",
idleText: "下拉刷新"
),
footer: const ClassicFooter(
loadingText: "正在加载中...",
noDataText: '没有更多数据啦'
),
child: MasonryGridView.count( child: MasonryGridView.count(
itemCount: controller.collectImageCount.value, itemCount: controller.collectImageCount.value,
crossAxisCount: 2, crossAxisCount: 2,
itemBuilder: (BuildContext context, int index) { itemBuilder: (BuildContext context, int index) {
return InkWell( return InkWell(
highlightColor: Colors.transparent,
splashColor: Colors.transparent,
onTap: () { onTap: () {
controller.onClickCollectImage(index); controller.onClickCollectImage(index);
}, },
......
...@@ -56,7 +56,7 @@ class MyPage extends GetView<MyController> { ...@@ -56,7 +56,7 @@ class MyPage extends GetView<MyController> {
children: const [ children: const [
Image(image: AssetImage("assets/images/jifen1.png", ), width: 20, height: 20,), Image(image: AssetImage("assets/images/jifen1.png", ), width: 20, height: 20,),
SizedBox(width: 5), SizedBox(width: 5),
Text("金币充值"), Text("积分充值"),
], ],
), ),
), ),
......
import 'package:chart/common/apis/apis.dart'; import 'package:chart/common/apis/apis.dart';
import 'package:chart/common/entities/entities.dart'; import 'package:chart/common/entities/entities.dart';
import 'package:easy_refresh/easy_refresh.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
import 'package:pull_to_refresh/pull_to_refresh.dart'; import 'package:pull_to_refresh/pull_to_refresh.dart';
...@@ -9,8 +10,9 @@ class UserDetailController extends GetxController { ...@@ -9,8 +10,9 @@ class UserDetailController extends GetxController {
UserDetailController(); UserDetailController();
/// UI 组件 /// UI 组件
final RefreshController refreshController = RefreshController( final EasyRefreshController refreshController = EasyRefreshController(
initialRefresh: true, controlFinishLoad: true,
controlFinishRefresh: true
); );
/// 响应式成员变量 /// 响应式成员变量
...@@ -26,21 +28,23 @@ class UserDetailController extends GetxController { ...@@ -26,21 +28,23 @@ class UserDetailController extends GetxController {
void onRefresh() { void onRefresh() {
fetchNewsList(isRefresh: true).then((_) { fetchNewsList(isRefresh: true).then((_) {
refreshController.refreshCompleted(resetFooterState: true); refreshController.finishRefresh();
refreshController.resetFooter();
}).catchError((_) { }).catchError((_) {
refreshController.refreshFailed(); refreshController.finishRefresh(IndicatorResult.fail);
refreshController.resetFooter();
}); });
} }
void onLoading() { void onLoading() {
if (state.newsList.length < total) { if (state.newsList.length < total) {
fetchNewsList().then((_) { fetchNewsList().then((_) {
refreshController.loadComplete(); refreshController.finishLoad();
}).catchError((_) { }).catchError((_) {
refreshController.loadFailed(); refreshController.finishLoad(IndicatorResult.fail);
}); });
} else { } else {
refreshController.loadNoData(); refreshController.finishLoad(IndicatorResult.noMore);
} }
} }
......
import 'package:easy_refresh/easy_refresh.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
import 'package:pull_to_refresh/pull_to_refresh.dart'; import 'package:pull_to_refresh/pull_to_refresh.dart';
...@@ -25,21 +26,10 @@ class _NewsPageListState extends State<NewsPageList> ...@@ -25,21 +26,10 @@ class _NewsPageListState extends State<NewsPageList>
super.build(context); super.build(context);
return GetX<UserDetailController>( return GetX<UserDetailController>(
init: controller, init: controller,
builder: (controller) => SmartRefresher( builder: (controller) => EasyRefresh(
header: ClassicHeader(
releaseText: "松开刷新",
refreshingText: "刷新数据中",
completeText: "刷新数据成功",
idleText: "下拉刷新"),
footer: ClassicFooter(
loadingText: "正在加载中...",
// loadStyle: LoadStyle.ShowWhenLoading,
// completeDuration: Duration(milliseconds: 500),
noDataText: '没有更多数据啦'),
enablePullUp: true,
controller: controller.refreshController, controller: controller.refreshController,
onRefresh: controller.onRefresh, onRefresh: controller.onRefresh,
onLoading: controller.onLoading, onLoad: controller.onLoading,
child: CustomScrollView( child: CustomScrollView(
slivers: [ slivers: [
SliverPadding( SliverPadding(
......
...@@ -353,6 +353,14 @@ packages: ...@@ -353,6 +353,14 @@ packages:
url: "https://pub.flutter-io.cn" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "1.0.4+1" version: "1.0.4+1"
easy_refresh:
dependency: "direct main"
description:
name: easy_refresh
sha256: "77b025ea49f27b5ebc5eef40a6678be52564c293bd97ce91a4088d6646478329"
url: "https://pub.flutter-io.cn"
source: hosted
version: "3.3.2+1"
equatable: equatable:
dependency: transitive dependency: transitive
description: description:
...@@ -535,7 +543,7 @@ packages: ...@@ -535,7 +543,7 @@ packages:
source: hosted source: hosted
version: "3.0.5" version: "3.0.5"
flutter_easyrefresh: flutter_easyrefresh:
dependency: "direct main" dependency: transitive
description: description:
name: flutter_easyrefresh name: flutter_easyrefresh
sha256: "5d161ee5dcac34da9065116568147d742dd25fb9bff3b10024d9054b195087ad" sha256: "5d161ee5dcac34da9065116568147d742dd25fb9bff3b10024d9054b195087ad"
......
...@@ -53,7 +53,6 @@ dependencies: ...@@ -53,7 +53,6 @@ dependencies:
provider: ^6.0.3 provider: ^6.0.3
flutter_screenutil: ^5.5.3+2 flutter_screenutil: ^5.5.3+2
flutter_login: ^3.2.0 flutter_login: ^3.2.0
flutter_easyrefresh: ^2.1.8
intl: ^0.17.0 intl: ^0.17.0
flutter_tags: "^0.4.9+1" flutter_tags: "^0.4.9+1"
path_provider: ^2.0.10 path_provider: ^2.0.10
...@@ -134,6 +133,7 @@ dependencies: ...@@ -134,6 +133,7 @@ dependencies:
flutter_native_splash: ^2.2.19 flutter_native_splash: ^2.2.19
image_gallery_saver: '^2.0.2' image_gallery_saver: '^2.0.2'
in_app_review: ^2.0.6 in_app_review: ^2.0.6
easy_refresh: ^3.3.2+1
# package:bubble/bubble.dart # package:bubble/bubble.dart
dev_dependencies: dev_dependencies:
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment