Browse Source

Merge remote-tracking branch 'origin/new_revision_app' into new_revision_app

zyh
fmk 3 years ago
parent
commit
dc3b76f320
  1. 225
      lib/community/community_child_page.dart
  2. 3
      lib/main_page.dart
  3. 2
      lib/utils/flutter_utils.dart
  4. 56
      lib/view_widget/update_dialog.dart
  5. 2
      pubspec.yaml

225
lib/community/community_child_page.dart

@ -20,7 +20,8 @@ class CommunityChildPage extends StatefulWidget {
final Function onScroll; final Function onScroll;
final Function toRelease; final Function toRelease;
CommunityChildPage(Key key, this.typeStr,this.onScroll,this.toRelease): super(key: key); CommunityChildPage(Key key, this.typeStr, this.onScroll, this.toRelease)
: super(key: key);
@override @override
State<StatefulWidget> createState() { State<StatefulWidget> createState() {
@ -28,7 +29,8 @@ class CommunityChildPage extends StatefulWidget {
} }
} }
class CommunityChildPageState extends State<CommunityChildPage> with AutomaticKeepAliveClientMixin { class CommunityChildPageState extends State<CommunityChildPage>
with AutomaticKeepAliveClientMixin {
RefreshController refreshController = RefreshController(); RefreshController refreshController = RefreshController();
ApiService apiService; ApiService apiService;
int pageNum = 1; int pageNum = 1;
@ -54,68 +56,64 @@ class CommunityChildPageState extends State<CommunityChildPage> with AutomaticKe
/// ///
queryCommunity(String searchKey) async { queryCommunity(String searchKey) async {
if(!isRefresh){ if (!isRefresh) {
isRefresh = true; isRefresh = true;
return; return;
} }
if(isLoadingData){ if (isLoadingData) {
return; return;
} }
isLoadingData = true; isLoadingData = true;
if (apiService == null) { if (apiService == null) {
SharedPreferences value = await SharedPreferences.getInstance(); SharedPreferences value = await SharedPreferences.getInstance();
userId = value.getString('userId'); userId = value.getString('userId');
apiService = ApiService( apiService = ApiService(Dio(),
Dio(), context: context,
context: context, token: value.getString("token"),
token: value.getString("token"), showLoading: false);
showLoading: false
);
} }
if(isLoadMore){ if (isLoadMore) {
pageNum += 1; pageNum += 1;
isLoadMore = false; isLoadMore = false;
} } else if (searchKey == null) pageNum = 1;
else if(searchKey == null)pageNum = 1;
BaseData<PageInfo<ComunityComment>> baseData = await apiService.trendList({ BaseData<PageInfo<ComunityComment>> baseData = await apiService.trendList({
"mid":"", "mid": "",
"onlyFollow": widget.typeStr == "关注" ? true : false, "onlyFollow": widget.typeStr == "关注" ? true : false,
"onlyMe": false, "onlyMe": false,
"pageNum": searchKey == null?pageNum:1, "pageNum": searchKey == null ? pageNum : 1,
"pageSize": 10, "pageSize": 10,
"searchKey": searchKey??"" "searchKey": searchKey ?? ""
}).catchError((error) { }).catchError((error) {
if(searchKey == null) { if (searchKey == null) {
refreshController.refreshFailed(); refreshController.refreshFailed();
refreshController.loadFailed(); refreshController.loadFailed();
} }
}); });
if(searchKey == null) { if (searchKey == null) {
refreshController.refreshCompleted(); refreshController.refreshCompleted();
refreshController.loadComplete(); refreshController.loadComplete();
} }
if (baseData.isSuccess) { if (baseData.isSuccess) {
if(searchKey != null){ if (searchKey != null) {
if(baseData?.data?.list != null && baseData.data.list.isNotEmpty) if (baseData?.data?.list != null && baseData.data.list.isNotEmpty)
articles.forEach((element) { articles.forEach((element) {
if(element.id == searchKey){ if (element.id == searchKey) {
element.content = jsonEncode(baseData.data.list[0].subjectInfo); element.content = jsonEncode(baseData.data.list[0].subjectInfo);
element.mainTitle =baseData.data.list[0].subject; element.mainTitle = baseData.data.list[0].subject;
element.followed = baseData.data.list[0].selfFollow; element.followed = baseData.data.list[0].selfFollow;
element.authorHeadImg = baseData.data.list[0].memberInfo?.avatar; element.authorHeadImg = baseData.data.list[0].memberInfo?.avatar;
element.authorName = baseData.data.list[0].memberInfo?.nickname; element.authorName = baseData.data.list[0].memberInfo?.nickname;
element.location = baseData.data.list[0].location; element.location = baseData.data.list[0].location;
element.createTime = baseData.data.list[0].createTime; element.createTime = baseData.data.list[0].createTime;
element.author = baseData.data.list[0].memberInfo?.mid; element.author = baseData.data.list[0].memberInfo?.mid;
element.viewers = baseData.data.list[0]?.viewers; element.viewers = baseData.data.list[0]?.viewers;
element.likes = baseData.data.list[0]?.likes; element.likes = baseData.data.list[0]?.likes;
element.comments = baseData.data.list[0]?.comments; element.comments = baseData.data.list[0]?.comments;
this.isRefresh = false; this.isRefresh = false;
setState(() { setState(() {});
}); }
} });
}); } else {
}else{
if (pageNum == 1) { if (pageNum == 1) {
articles.clear(); articles.clear();
} }
@ -123,7 +121,7 @@ class CommunityChildPageState extends State<CommunityChildPage> with AutomaticKe
var article = Article(); var article = Article();
article.id = element.id; article.id = element.id;
article.content = jsonEncode(element.subjectInfo); article.content = jsonEncode(element.subjectInfo);
article.mainTitle =element.subject; article.mainTitle = element.subject;
article.followed = element.selfFollow; article.followed = element.selfFollow;
article.authorHeadImg = element.memberInfo?.avatar; article.authorHeadImg = element.memberInfo?.avatar;
article.authorName = element.memberInfo?.nickname; article.authorName = element.memberInfo?.nickname;
@ -152,81 +150,82 @@ class CommunityChildPageState extends State<CommunityChildPage> with AutomaticKe
return FutureBuilder( return FutureBuilder(
future: queryCommunity(null), future: queryCommunity(null),
builder: (context, position) { builder: (context, position) {
return SmartRefresher( return Stack(
controller: refreshController, alignment: Alignment.bottomRight,
enablePullDown: true, children: [
enablePullUp: true, SmartRefresher(
physics: BouncingScrollPhysics(), controller: refreshController,
header: MyHeader(), enablePullDown: true,
footer: CustomFooter( enablePullUp: true,
builder: (context, mode) { physics: BouncingScrollPhysics(),
return MyFooter(mode); header: MyHeader(),
}, footer: CustomFooter(
), builder: (context, mode) {
onRefresh: onRefresh, return MyFooter(mode);
onLoading: () {
isLoadMore = true;
setState(() {});
},
child: Stack(
alignment: Alignment.bottomRight,
children: [
(articles == null || articles.length == 0)? NoDataView(
src: "assets/image/guan_zhu.webp",
isShowBtn: false,
text: "目前暂无添加关注,可在推荐中关注自己喜欢的人哦~",
fontSize: 16.sp,
margin: EdgeInsets.only(top: 120.h,left: 60.w,right: 60.w),
)
:
ListView.builder(
controller: sc,
shrinkWrap: true,
itemBuilder: (context, position) {
return InkWell(
child: CommunityDynamic(
articles[position],
0,
userId: userId,
isList: true,
exitFull: () {
setState(() {
onRefresh();
});
},
),
onTap: () {
Navigator.of(context).pushNamed(
'/router/community_details',
arguments: {
"businessId": articles[position].id,
"userId": userId,
},
).then((value) {
onRefresh();
setState(() {});
});
setState(() {});
},
);
}, },
itemCount: articles.length,
), ),
GestureDetector( onRefresh: onRefresh,
onTap: (){ onLoading: () {
widget.toRelease(); isLoadMore = true;
}, setState(() {});
child: Container( },
margin: EdgeInsets.only(bottom:31,right: 14), child: (articles == null || articles.length == 0)
child: Image.asset( ? NoDataView(
"assets/image/fa_bu.webp", src: "assets/image/guan_zhu.webp",
width: 55, isShowBtn: false,
height: 55, text: "目前暂无添加关注,可在推荐中关注自己喜欢的人哦~",
), fontSize: 16.sp,
margin:
EdgeInsets.only(top: 120.h, left: 60.w, right: 60.w),
)
: ListView.builder(
controller: sc,
shrinkWrap: true,
itemBuilder: (context, position) {
return InkWell(
child: CommunityDynamic(
articles[position],
0,
userId: userId,
isList: true,
exitFull: () {
setState(() {
onRefresh();
});
},
),
onTap: () {
Navigator.of(context).pushNamed(
'/router/community_details',
arguments: {
"businessId": articles[position].id,
"userId": userId,
},
).then((value) {
onRefresh();
setState(() {});
});
setState(() {});
},
);
},
itemCount: articles.length,
),
),
GestureDetector(
onTap: () {
widget.toRelease();
},
child: Container(
margin: EdgeInsets.only(bottom: 31, right: 14),
child: Image.asset(
"assets/image/fa_bu.webp",
width: 55,
height: 55,
), ),
) ),
], )
), ],
); );
}, },
); );

3
lib/main_page.dart

@ -129,6 +129,7 @@ class _MainPage extends State<MainPage> with WidgetsBindingObserver {
UnionPage(unionPageKey,0), UnionPage(unionPageKey,0),
// (Theme.of(context).platform == TargetPlatform.android) ? OrderPage() :CommunityPage(), // (Theme.of(context).platform == TargetPlatform.android) ? OrderPage() :CommunityPage(),
CommunityPage(), CommunityPage(),
// OrderPage(),
MinePage(minePageKey), MinePage(minePageKey),
]; ];
@ -353,7 +354,7 @@ class _MainPage extends State<MainPage> with WidgetsBindingObserver {
PackageInfo packageInfo = await PackageInfo.fromPlatform(); PackageInfo packageInfo = await PackageInfo.fromPlatform();
BaseData<AppUpdate> baseData = await apiService.appVersion().catchError((onError) {}); BaseData<AppUpdate> baseData = await apiService.appVersion().catchError((onError) {});
if (baseData != null && baseData.isSuccess) { if (baseData != null && baseData.isSuccess) {
// baseData.data.appLastVersion = "1.0.4"; // baseData.data.appLastVersion = "2.0.11";
// baseData.data.appLastVersionUp = "1.0.1"; // baseData.data.appLastVersionUp = "1.0.1";
if(AppUtils.versionCompare(packageInfo.version,baseData.data?.appLastVersion) if(AppUtils.versionCompare(packageInfo.version,baseData.data?.appLastVersion)
&& AppUtils.versionCompare(value.getString("appLastVersion")??"1.0.0",baseData.data?.appLastVersion)){ && AppUtils.versionCompare(value.getString("appLastVersion")??"1.0.0",baseData.data?.appLastVersion)){

2
lib/utils/flutter_utils.dart

@ -26,7 +26,7 @@ class AppUtils {
return false; return false;
if (int.tryParse(localVersionArr[1]) > int.tryParse(serverVersionArr[1])) if (int.tryParse(localVersionArr[1]) > int.tryParse(serverVersionArr[1]))
return false; return false;
if (int.tryParse(localVersionArr[2]) > int.tryParse(serverVersionArr[2])) if (int.tryParse(localVersionArr[2]) >= int.tryParse(serverVersionArr[2]))
return false; return false;
} catch (ex) {} } catch (ex) {}
return true; return true;

56
lib/view_widget/update_dialog.dart

@ -30,46 +30,48 @@ class _UpdateDialog extends State<UpdateDialog> {
child: Center( child: Center(
child: Container( child: Container(
width: MediaQuery.of(context).size.width - 80.w, width: MediaQuery.of(context).size.width - 80.w,
height: 165.h, // height: 216.h,
decoration: BoxDecoration( decoration: BoxDecoration(
color: Colors.white, color: Colors.white,
borderRadius: BorderRadius.circular(8.r), borderRadius: BorderRadius.circular(8.r),
), ),
child: Column( child: Column(
mainAxisSize: MainAxisSize.min,
children: [ children: [
Container( Container(
width: double.infinity, width: double.infinity,
// height: 110.h, // height: 110.h,
alignment: Alignment.center, alignment: Alignment.center,
padding: EdgeInsets.all(20), padding: EdgeInsets.all(20),
child: Column( child: Column(
children: [ children: [
Text( Text(
"检测到新版本 v${widget.appUpdate.appLastVersion}", "发现新版本 v${widget.appUpdate.appLastVersion}",
style: TextStyle( style: TextStyle(
fontSize: 17.sp, fontSize: 17.sp,
fontWeight: MyFontWeight.semi_bold, fontWeight: MyFontWeight.semi_bold,
color: Color(0xFF000000), color: Color(0xFF000000),
),
), ),
), SizedBox(height: 12.h,),
SizedBox(height: 12.h,), Text(
Text( widget.appUpdate.appLastVersionExplain ?? "",
"是否需要更新到最新版本?", textAlign: TextAlign.center,
style: TextStyle( style: TextStyle(
fontSize: 17.sp, fontSize: 17.sp,
fontWeight: MyFontWeight.regular, fontWeight: MyFontWeight.regular,
color: Color(0xFF333333), color: Color(0xFF333333),
),
), ),
), ],
], )
)
), ),
Container( Container(
color: Color(0x1A000000), color: Color(0x1A000000),
height: 1.h, height: 1.h,
), ),
Container( Container(
height: 69.h, height:55.h,
child: Row( child: Row(
mainAxisSize: MainAxisSize.max, mainAxisSize: MainAxisSize.max,
children: [ children: [
@ -81,7 +83,7 @@ class _UpdateDialog extends State<UpdateDialog> {
}, },
child: Container( child: Container(
width: double.infinity, width: double.infinity,
height: 90.h, // height: 90.h,
alignment: Alignment.center, alignment: Alignment.center,
child: Text( child: Text(
"下次再说", "下次再说",
@ -107,7 +109,7 @@ class _UpdateDialog extends State<UpdateDialog> {
}, },
child: Container( child: Container(
width: double.infinity, width: double.infinity,
height: 90.h, // height: 90.h,
alignment: Alignment.center, alignment: Alignment.center,
child: Text( child: Text(
"立即更新", "立即更新",

2
pubspec.yaml

@ -3,7 +3,7 @@ description: 一心回乡.
publish_to: 'none' # Remove this line if you wish to publish to pub.dev publish_to: 'none' # Remove this line if you wish to publish to pub.dev
version: 2.0.12+9 version: 2.0.14+9
environment: environment:
sdk: ">=2.7.0 <3.0.0" sdk: ">=2.7.0 <3.0.0"

Loading…
Cancel
Save