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