# Conflicts:
#	lib/pages/personal/personal_page.dart
#	lib/pages/things_page/widget/add_fixed_submit_page.dart
hmxc
张萌 4 years ago
commit 0897efe0ef

@ -1 +1 @@
1639ba717cd75e55d448599066f95969 08772c882ade7695c518fdf7d64d7a30

@ -45,7 +45,8 @@ PODS:
- FMDB/standard (2.7.5) - FMDB/standard (2.7.5)
- foundation_fluttify (0.0.1): - foundation_fluttify (0.0.1):
- Flutter - Flutter
- MTBBarcodeScanner (5.0.11) - image_picker (0.0.1):
- Flutter
- multi_image_picker (4.7.14): - multi_image_picker (4.7.14):
- BSImagePicker (~> 2.10.3) - BSImagePicker (~> 2.10.3)
- Flutter - Flutter
@ -55,16 +56,11 @@ PODS:
- Flutter - Flutter
- "permission_handler (5.0.1+1)": - "permission_handler (5.0.1+1)":
- Flutter - Flutter
- qr_code_scanner (0.2.0):
- Flutter
- MTBBarcodeScanner
- screen (0.0.1):
- Flutter
- shared_preferences (0.0.1): - shared_preferences (0.0.1):
- Flutter - Flutter
- sqflite (0.0.1): - sqflite (0.0.2):
- Flutter - Flutter
- FMDB (~> 2.7.2) - FMDB (>= 2.7.5)
- url_launcher (0.0.1): - url_launcher (0.0.1):
- Flutter - Flutter
- video_player (0.0.1): - video_player (0.0.1):
@ -84,12 +80,11 @@ DEPENDENCIES:
- Flutter (from `Flutter`) - Flutter (from `Flutter`)
- fluwx (from `.symlinks/plugins/fluwx/ios`) - fluwx (from `.symlinks/plugins/fluwx/ios`)
- foundation_fluttify (from `.symlinks/plugins/foundation_fluttify/ios`) - foundation_fluttify (from `.symlinks/plugins/foundation_fluttify/ios`)
- image_picker (from `.symlinks/plugins/image_picker/ios`)
- multi_image_picker (from `.symlinks/plugins/multi_image_picker/ios`) - multi_image_picker (from `.symlinks/plugins/multi_image_picker/ios`)
- package_info (from `.symlinks/plugins/package_info/ios`) - package_info (from `.symlinks/plugins/package_info/ios`)
- path_provider (from `.symlinks/plugins/path_provider/ios`) - path_provider (from `.symlinks/plugins/path_provider/ios`)
- permission_handler (from `.symlinks/plugins/permission_handler/ios`) - permission_handler (from `.symlinks/plugins/permission_handler/ios`)
- qr_code_scanner (from `.symlinks/plugins/qr_code_scanner/ios`)
- screen (from `.symlinks/plugins/screen/ios`)
- shared_preferences (from `.symlinks/plugins/shared_preferences/ios`) - shared_preferences (from `.symlinks/plugins/shared_preferences/ios`)
- sqflite (from `.symlinks/plugins/sqflite/ios`) - sqflite (from `.symlinks/plugins/sqflite/ios`)
- url_launcher (from `.symlinks/plugins/url_launcher/ios`) - url_launcher (from `.symlinks/plugins/url_launcher/ios`)
@ -107,7 +102,6 @@ SPEC REPOS:
- BSImagePicker - BSImagePicker
- BSImageView - BSImageView
- FMDB - FMDB
- MTBBarcodeScanner
- WechatOpenSDK - WechatOpenSDK
EXTERNAL SOURCES: EXTERNAL SOURCES:
@ -127,6 +121,8 @@ EXTERNAL SOURCES:
:path: ".symlinks/plugins/fluwx/ios" :path: ".symlinks/plugins/fluwx/ios"
foundation_fluttify: foundation_fluttify:
:path: ".symlinks/plugins/foundation_fluttify/ios" :path: ".symlinks/plugins/foundation_fluttify/ios"
image_picker:
:path: ".symlinks/plugins/image_picker/ios"
multi_image_picker: multi_image_picker:
:path: ".symlinks/plugins/multi_image_picker/ios" :path: ".symlinks/plugins/multi_image_picker/ios"
package_info: package_info:
@ -135,10 +131,6 @@ EXTERNAL SOURCES:
:path: ".symlinks/plugins/path_provider/ios" :path: ".symlinks/plugins/path_provider/ios"
permission_handler: permission_handler:
:path: ".symlinks/plugins/permission_handler/ios" :path: ".symlinks/plugins/permission_handler/ios"
qr_code_scanner:
:path: ".symlinks/plugins/qr_code_scanner/ios"
screen:
:path: ".symlinks/plugins/screen/ios"
shared_preferences: shared_preferences:
:path: ".symlinks/plugins/shared_preferences/ios" :path: ".symlinks/plugins/shared_preferences/ios"
sqflite: sqflite:
@ -169,21 +161,19 @@ SPEC CHECKSUMS:
fluwx: 07a55ed66bf3a4961e836a2a411b02dcada32902 fluwx: 07a55ed66bf3a4961e836a2a411b02dcada32902
FMDB: 2ce00b547f966261cd18927a3ddb07cb6f3db82a FMDB: 2ce00b547f966261cd18927a3ddb07cb6f3db82a
foundation_fluttify: 0c45145e3fad1fb99188e4979daed5b24cd9b278 foundation_fluttify: 0c45145e3fad1fb99188e4979daed5b24cd9b278
MTBBarcodeScanner: f453b33c4b7dfe545d8c6484ed744d55671788cb image_picker: 9c3312491f862b28d21ecd8fdf0ee14e601b3f09
multi_image_picker: c068931d08240565e0615fb01437d16984909183 multi_image_picker: c068931d08240565e0615fb01437d16984909183
package_info: 873975fc26034f0b863a300ad47e7f1ac6c7ec62 package_info: 873975fc26034f0b863a300ad47e7f1ac6c7ec62
path_provider: abfe2b5c733d04e238b0d8691db0cfd63a27a93c path_provider: abfe2b5c733d04e238b0d8691db0cfd63a27a93c
permission_handler: eac8e15b4a1a3fba55b761d19f3f4e6b005d15b6 permission_handler: eac8e15b4a1a3fba55b761d19f3f4e6b005d15b6
qr_code_scanner: bb67d64904c3b9658ada8c402e8b4d406d5d796e
screen: abd91ca7bf3426e1cc3646d27e9b2358d6bf07b0
shared_preferences: af6bfa751691cdc24be3045c43ec037377ada40d shared_preferences: af6bfa751691cdc24be3045c43ec037377ada40d
sqflite: 4001a31ff81d210346b500c55b17f4d6c7589dd0 sqflite: 6d358c025f5b867b29ed92fc697fd34924e11904
url_launcher: 6fef411d543ceb26efce54b05a0a40bfd74cbbef url_launcher: 6fef411d543ceb26efce54b05a0a40bfd74cbbef
video_player: 9cc823b1d9da7e8427ee591e8438bfbcde500e6e video_player: 9cc823b1d9da7e8427ee591e8438bfbcde500e6e
wakelock: 0d4a70faf8950410735e3f61fb15d517c8a6efc4 wakelock: bfc7955c418d0db797614075aabbc58a39ab5107
webview_flutter: d2b4d6c66968ad042ad94cbb791f5b72b4678a96 webview_flutter: d2b4d6c66968ad042ad94cbb791f5b72b4678a96
WechatOpenSDK: 6a4d1436c15b3b5fe2a0bd383f3046010186da44 WechatOpenSDK: 6a4d1436c15b3b5fe2a0bd383f3046010186da44
PODFILE CHECKSUM: a75497545d4391e2d394c3668e20cfb1c2bbd4aa PODFILE CHECKSUM: a75497545d4391e2d394c3668e20cfb1c2bbd4aa
COCOAPODS: 1.9.1 COCOAPODS: 1.10.1

@ -15,6 +15,7 @@ class API {
static _User user = _User(); static _User user = _User();
static _Manager manager = _Manager(); static _Manager manager = _Manager();
static _Upload upload = _Upload(); static _Upload upload = _Upload();
static _Community community = _Community();
} }
class _Login { class _Login {
@ -122,6 +123,17 @@ class _Manager {
String get getMovingCompanyTel => '/user/articleOut/getMovingCompanyTel'; String get getMovingCompanyTel => '/user/articleOut/getMovingCompanyTel';
} }
class _Community {
///
String get activityList => '/user/activity/list';
///id
String get activityDetail => '/user/activity/findById';
///
String get activityPeopleList => '/user/activity/participantsList';
}
class _Upload { class _Upload {
/// ///
String get uploadArticle => '/user/upload/uploadArticle'; String get uploadArticle => '/user/upload/uploadArticle';

@ -0,0 +1,27 @@
class ImgModel {
String url;
String size;
int longs;
int paragraph;
int sort;
ImgModel({this.url, this.size, this.longs, this.paragraph, this.sort});
ImgModel.fromJson(Map<String, dynamic> json) {
url = json['url'];
size = json['size'];
longs = json['longs'];
paragraph = json['paragraph'];
sort = json['sort'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['url'] = this.url;
data['size'] = this.size;
data['longs'] = this.longs;
data['paragraph'] = this.paragraph;
data['sort'] = this.sort;
return data;
}
}

@ -0,0 +1,78 @@
// Package imports:
import 'package:common_utils/common_utils.dart';
// Project imports:
import 'package:akuCommunity/model/common/img_model.dart';
class ActivityDetailModel {
int id;
String title;
String content;
String location;
String activityStartTime;
String activityEndTime;
String registrationEndTime;
int countRegistration;
List<ImgModel> imgUrls;
List<ImgModel> headImgURls;
DateTime get startDate => DateUtil.getDateTime(activityStartTime);
DateTime get endDate => DateUtil.getDateTime(activityEndTime);
DateTime get registEndDate => DateUtil.getDateTime(registrationEndTime);
ActivityDetailModel(
{this.id,
this.title,
this.content,
this.location,
this.activityStartTime,
this.activityEndTime,
this.registrationEndTime,
this.countRegistration,
this.imgUrls,
this.headImgURls});
ActivityDetailModel.fromJson(Map<String, dynamic> json) {
id = json['id'];
title = json['title'];
content = json['content'];
location = json['location'];
activityStartTime = json['activityStartTime'];
activityEndTime = json['activityEndTime'];
registrationEndTime = json['registrationEndTime'];
countRegistration = json['countRegistration'];
if (json['imgUrls'] != null) {
imgUrls = new List<ImgModel>();
json['imgUrls'].forEach((v) {
imgUrls.add(new ImgModel.fromJson(v));
});
} else
imgUrls = [];
if (json['headImgURls'] != null) {
headImgURls = new List<ImgModel>();
json['headImgURls'].forEach((v) {
headImgURls.add(new ImgModel.fromJson(v));
});
} else
headImgURls = [];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['id'] = this.id;
data['title'] = this.title;
data['content'] = this.content;
data['location'] = this.location;
data['activityStartTime'] = this.activityStartTime;
data['activityEndTime'] = this.activityEndTime;
data['registrationEndTime'] = this.registrationEndTime;
data['countRegistration'] = this.countRegistration;
if (this.imgUrls != null) {
data['imgUrls'] = this.imgUrls.map((v) => v.toJson()).toList();
}
if (this.headImgURls != null) {
data['headImgURls'] = this.headImgURls.map((v) => v.toJson()).toList();
}
return data;
}
}

@ -0,0 +1,71 @@
// Package imports:
import 'package:common_utils/common_utils.dart';
// Project imports:
import 'package:akuCommunity/model/common/img_model.dart';
class ActivityItemModel {
int id;
String title;
String location;
int status;
String registrationStartTime;
String registrationEndTime;
List<ImgModel> imgUrls;
List<ImgModel> headImgURls;
DateTime get begin => DateUtil.getDateTime(registrationStartTime);
DateTime get end => DateUtil.getDateTime(registrationEndTime);
ActivityItemModel(
{this.id,
this.title,
this.location,
this.status,
this.registrationStartTime,
this.registrationEndTime,
this.imgUrls,
this.headImgURls});
ActivityItemModel.fromJson(Map<String, dynamic> json) {
id = json['id'];
title = json['title'];
location = json['location'];
status = json['status'];
registrationStartTime = json['registrationStartTime'];
registrationEndTime = json['registrationEndTime'];
if (json['imgUrls'] != null) {
imgUrls = new List<ImgModel>();
json['imgUrls'].forEach((v) {
imgUrls.add(new ImgModel.fromJson(v));
});
} else {
imgUrls = [];
}
if (json['headImgURls'] != null) {
headImgURls = new List<ImgModel>();
json['headImgURls'].forEach((v) {
headImgURls.add(new ImgModel.fromJson(v));
});
} else {
headImgURls = [];
}
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['id'] = this.id;
data['title'] = this.title;
data['location'] = this.location;
data['status'] = this.status;
data['registrationStartTime'] = this.registrationStartTime;
data['registrationEndTime'] = this.registrationEndTime;
if (this.imgUrls != null) {
data['imgUrls'] = this.imgUrls.map((v) => v.toJson()).toList();
}
if (this.headImgURls != null) {
data['headImgURls'] = this.headImgURls.map((v) => v.toJson()).toList();
}
return data;
}
}

@ -0,0 +1,59 @@
class ActivityPeopleModel {
int id;
String name;
String tel;
List<ImgUrl> imgUrl;
ActivityPeopleModel({this.id, this.name, this.tel, this.imgUrl});
ActivityPeopleModel.fromJson(Map<String, dynamic> json) {
id = json['id'];
name = json['name'];
tel = json['tel'];
if (json['imgUrl'] != null) {
imgUrl = new List<ImgUrl>();
json['imgUrl'].forEach((v) {
imgUrl.add(new ImgUrl.fromJson(v));
});
}
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['id'] = this.id;
data['name'] = this.name;
data['tel'] = this.tel;
if (this.imgUrl != null) {
data['imgUrl'] = this.imgUrl.map((v) => v.toJson()).toList();
}
return data;
}
}
class ImgUrl {
String url;
String size;
int longs;
int paragraph;
int sort;
ImgUrl({this.url, this.size, this.longs, this.paragraph, this.sort});
ImgUrl.fromJson(Map<String, dynamic> json) {
url = json['url'];
size = json['size'];
longs = json['longs'];
paragraph = json['paragraph'];
sort = json['sort'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['url'] = this.url;
data['size'] = this.size;
data['longs'] = this.longs;
data['paragraph'] = this.paragraph;
data['sort'] = this.sort;
return data;
}
}

@ -1,6 +1,9 @@
// Package imports: // Package imports:
import 'package:common_utils/common_utils.dart'; import 'package:common_utils/common_utils.dart';
// Project imports:
import 'package:akuCommunity/model/common/img_model.dart';
class AdviceDetailModel { class AdviceDetailModel {
AppAdviceDetailVo appAdviceDetailVo; AppAdviceDetailVo appAdviceDetailVo;
@ -58,7 +61,7 @@ class AppAdviceVo {
int status; int status;
String content; String content;
String createDate; String createDate;
List<ImgUrls> imgUrls; List<ImgModel> imgUrls;
DateTime get date => DateUtil.getDateTime(createDate); DateTime get date => DateUtil.getDateTime(createDate);
@ -77,9 +80,9 @@ class AppAdviceVo {
content = json['content']; content = json['content'];
createDate = json['createDate']; createDate = json['createDate'];
if (json['imgUrls'] != null) { if (json['imgUrls'] != null) {
imgUrls = new List<ImgUrls>(); imgUrls = new List<ImgModel>();
json['imgUrls'].forEach((v) { json['imgUrls'].forEach((v) {
imgUrls.add(new ImgUrls.fromJson(v)); imgUrls.add(new ImgModel.fromJson(v));
}); });
} }
} }
@ -98,34 +101,6 @@ class AppAdviceVo {
} }
} }
class ImgUrls {
String url;
String size;
int longs;
int paragraph;
int sort;
ImgUrls({this.url, this.size, this.longs, this.paragraph, this.sort});
ImgUrls.fromJson(Map<String, dynamic> json) {
url = json['url'];
size = json['size'];
longs = json['longs'];
paragraph = json['paragraph'];
sort = json['sort'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['url'] = this.url;
data['size'] = this.size;
data['longs'] = this.longs;
data['paragraph'] = this.paragraph;
data['sort'] = this.sort;
return data;
}
}
class AppAdviceContentVos { class AppAdviceContentVos {
int id; int id;
int createUserType; int createUserType;

@ -1,3 +1,6 @@
// Project imports:
import 'package:akuCommunity/model/common/img_model.dart';
class FixedDetailModel { class FixedDetailModel {
AppReportRepairVo appReportRepairVo; AppReportRepairVo appReportRepairVo;
List<AppProcessRecordVo> appProcessRecordVo; List<AppProcessRecordVo> appProcessRecordVo;
@ -48,7 +51,7 @@ class AppReportRepairVo {
int type; int type;
int status; int status;
String reportDetail; String reportDetail;
List<ImgUrls> imgUrls; List<ImgModel> imgUrls;
AppReportRepairVo( AppReportRepairVo(
{this.id, this.type, this.status, this.reportDetail, this.imgUrls}); {this.id, this.type, this.status, this.reportDetail, this.imgUrls});
@ -59,9 +62,9 @@ class AppReportRepairVo {
status = json['status']; status = json['status'];
reportDetail = json['reportDetail']; reportDetail = json['reportDetail'];
if (json['imgUrls'] != null) { if (json['imgUrls'] != null) {
imgUrls = new List<ImgUrls>(); imgUrls = new List<ImgModel>();
json['imgUrls'].forEach((v) { json['imgUrls'].forEach((v) {
imgUrls.add(new ImgUrls.fromJson(v)); imgUrls.add(new ImgModel.fromJson(v));
}); });
} }
} }
@ -79,34 +82,6 @@ class AppReportRepairVo {
} }
} }
class ImgUrls {
String url;
String size;
int longs;
int paragraph;
int sort;
ImgUrls({this.url, this.size, this.longs, this.paragraph, this.sort});
ImgUrls.fromJson(Map<String, dynamic> json) {
url = json['url'];
size = json['size'];
longs = json['longs'];
paragraph = json['paragraph'];
sort = json['sort'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['url'] = this.url;
data['size'] = this.size;
data['longs'] = this.longs;
data['paragraph'] = this.paragraph;
data['sort'] = this.sort;
return data;
}
}
class AppProcessRecordVo { class AppProcessRecordVo {
String operationDate; String operationDate;
int operationType; int operationType;

@ -1,6 +1,9 @@
// Package imports: // Package imports:
import 'package:common_utils/common_utils.dart'; import 'package:common_utils/common_utils.dart';
// Project imports:
import 'package:akuCommunity/model/common/img_model.dart';
class SuggestionOrComplainModel { class SuggestionOrComplainModel {
int id; int id;
int type; int type;
@ -8,7 +11,7 @@ class SuggestionOrComplainModel {
String content; String content;
int score; int score;
DateTime createDate; DateTime createDate;
List<ImgUrls> imgUrls; List<ImgModel> imgUrls;
SuggestionOrComplainModel( SuggestionOrComplainModel(
{this.id, {this.id,
@ -27,9 +30,9 @@ class SuggestionOrComplainModel {
score = json['score']; score = json['score'];
createDate = DateUtil.getDateTime(json['createDate']); createDate = DateUtil.getDateTime(json['createDate']);
if (json['imgUrls'] != null) { if (json['imgUrls'] != null) {
imgUrls = new List<ImgUrls>(); imgUrls = new List<ImgModel>();
json['imgUrls'].forEach((v) { json['imgUrls'].forEach((v) {
imgUrls.add(new ImgUrls.fromJson(v)); imgUrls.add(new ImgModel.fromJson(v));
}); });
} }
} }

@ -1,9 +1,12 @@
// Project imports:
import 'package:akuCommunity/model/common/img_model.dart';
class FixedSubmitModel { class FixedSubmitModel {
int id; int id;
int type; int type;
int status; int status;
String reportDetail; String reportDetail;
List<ImgUrls> imgUrls; List<ImgModel> imgUrls;
FixedSubmitModel( FixedSubmitModel(
{this.id, this.type, this.status, this.reportDetail, this.imgUrls}); {this.id, this.type, this.status, this.reportDetail, this.imgUrls});
@ -14,9 +17,9 @@ class FixedSubmitModel {
status = json['status']; status = json['status'];
reportDetail = json['reportDetail']; reportDetail = json['reportDetail'];
if (json['imgUrls'] != null) { if (json['imgUrls'] != null) {
imgUrls = new List<ImgUrls>(); imgUrls = new List<ImgModel>();
json['imgUrls'].forEach((v) { json['imgUrls'].forEach((v) {
imgUrls.add(new ImgUrls.fromJson(v)); imgUrls.add(new ImgModel.fromJson(v));
}); });
} }
} }
@ -33,31 +36,3 @@ class FixedSubmitModel {
return data; return data;
} }
} }
class ImgUrls {
String url;
String size;
int longs;
int paragraph;
int sort;
ImgUrls({this.url, this.size, this.longs, this.paragraph, this.sort});
ImgUrls.fromJson(Map<String, dynamic> json) {
url = json['url'];
size = json['size'];
longs = json['longs'];
paragraph = json['paragraph'];
sort = json['sort'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['url'] = this.url;
data['size'] = this.size;
data['longs'] = this.longs;
data['paragraph'] = this.paragraph;
data['sort'] = this.sort;
return data;
}
}

@ -7,9 +7,9 @@ import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
// Package imports: // Package imports:
import 'package:flutter_easyrefresh/easy_refresh.dart';
import 'package:flutter_icons/flutter_icons.dart'; import 'package:flutter_icons/flutter_icons.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:pull_to_refresh/pull_to_refresh.dart';
import 'package:velocity_x/velocity_x.dart'; import 'package:velocity_x/velocity_x.dart';
// Project imports: // Project imports:
@ -17,7 +17,7 @@ import 'package:akuCommunity/const/resource.dart';
import 'package:akuCommunity/extensions/num_ext.dart'; import 'package:akuCommunity/extensions/num_ext.dart';
import 'package:akuCommunity/extensions/page_router.dart'; import 'package:akuCommunity/extensions/page_router.dart';
import 'package:akuCommunity/model/aku_shop_model.dart'; import 'package:akuCommunity/model/aku_shop_model.dart';
import 'package:akuCommunity/pages/activities_page/activities_page.dart'; import 'package:akuCommunity/model/community/activity_item_model.dart';
import 'package:akuCommunity/pages/convenient_phone/convenient_phone_page.dart'; import 'package:akuCommunity/pages/convenient_phone/convenient_phone_page.dart';
import 'package:akuCommunity/pages/home/widget/animate_app_bar.dart'; import 'package:akuCommunity/pages/home/widget/animate_app_bar.dart';
import 'package:akuCommunity/pages/industry_committee/industry_committee_page.dart'; import 'package:akuCommunity/pages/industry_committee/industry_committee_page.dart';
@ -28,14 +28,17 @@ import 'package:akuCommunity/pages/things_page/fixed_submit_page.dart';
import 'package:akuCommunity/pages/total_application_page/total_applications_page.dart'; import 'package:akuCommunity/pages/total_application_page/total_applications_page.dart';
import 'package:akuCommunity/pages/visitor_access_page/visitor_access_page.dart'; import 'package:akuCommunity/pages/visitor_access_page/visitor_access_page.dart';
import 'package:akuCommunity/service/base_model.dart'; import 'package:akuCommunity/service/base_model.dart';
import 'package:akuCommunity/ui/community/activity_card.dart';
import 'package:akuCommunity/ui/community/activity_list_page.dart';
import 'package:akuCommunity/ui/community/community_func.dart';
import 'package:akuCommunity/ui/home/home_notification.dart';
import 'package:akuCommunity/ui/home/home_title.dart';
import 'package:akuCommunity/ui/manager/advice/advice_page.dart'; import 'package:akuCommunity/ui/manager/advice/advice_page.dart';
import 'package:akuCommunity/utils/headers.dart'; import 'package:akuCommunity/utils/headers.dart';
import 'package:akuCommunity/widget/container_comment.dart'; import 'package:akuCommunity/widget/container_comment.dart';
import 'package:akuCommunity/widget/grid_buttons.dart'; import 'package:akuCommunity/widget/grid_buttons.dart';
import 'widget/home_card.dart';
import 'widget/home_search.dart'; import 'widget/home_search.dart';
import 'widget/home_swiper.dart'; import 'widget/home_swiper.dart';
import 'widget/home_tag_bar.dart';
class HomePage extends StatefulWidget { class HomePage extends StatefulWidget {
HomePage({Key key}) : super(key: key); HomePage({Key key}) : super(key: key);
@ -54,11 +57,12 @@ class _HomePageState extends State<HomePage>
List<AkuShopModel> _shopList = []; List<AkuShopModel> _shopList = [];
List<dynamic> data; List<dynamic> data;
RefreshController _refreshController = EasyRefreshController _refreshController = EasyRefreshController();
RefreshController(initialRefresh: false);
int page = 1; int page = 1;
ActivityItemModel model;
List<GridButton> _gridList = [ List<GridButton> _gridList = [
GridButton('一键开门', R.ASSETS_ICONS_TOOL_YJKM_PNG, OpenDoorPage().to), GridButton('一键开门', R.ASSETS_ICONS_TOOL_YJKM_PNG, OpenDoorPage().to),
GridButton('访客通行', R.ASSETS_ICONS_TOOL_FKYQ_PNG, VisitorAccessPage().to), GridButton('访客通行', R.ASSETS_ICONS_TOOL_FKYQ_PNG, VisitorAccessPage().to),
@ -98,14 +102,6 @@ class _HomePageState extends State<HomePage>
}); });
} }
void _onLoading() async {
await Future.delayed(Duration(milliseconds: 1500));
page++;
// akuShop(page);
if (mounted) setState(() {});
_refreshController.loadComplete();
}
_buildColButton({IconData icon, String title, VoidCallback onTap}) { _buildColButton({IconData icon, String title, VoidCallback onTap}) {
return MaterialButton( return MaterialButton(
onPressed: onTap, onPressed: onTap,
@ -141,106 +137,101 @@ class _HomePageState extends State<HomePage>
16.wb, 16.wb,
], ],
), ),
body: RefreshConfiguration( body: EasyRefresh(
child: SmartRefresher( controller: _refreshController,
controller: _refreshController, header: MaterialHeader(),
header: WaterDropHeader(), firstRefresh: true,
footer: ClassicFooter(), onRefresh: () async {
onLoading: _onLoading, model = await CommunityFunc.activity();
enablePullUp: true, setState(() {});
enablePullDown: false, },
child: CustomScrollView( child: CustomScrollView(
controller: _scrollController, controller: _scrollController,
slivers: [ slivers: [
SliverToBoxAdapter( SliverToBoxAdapter(
child: Column( child: Column(
mainAxisSize: MainAxisSize.min, mainAxisSize: MainAxisSize.min,
children: [ children: [
HomeSearch(), HomeSearch(),
HomeSwiper(), HomeSwiper(),
SizedBox(height: 100.w), SizedBox(height: 100.w),
ContainerComment( ContainerComment(
radius: 8, radius: 8,
customWidget: GridButtons( customWidget: GridButtons(
gridList: _gridList, gridList: _gridList,
crossCount: 4, crossCount: 4,
),
), ),
// SingleAdSpace( ),
// imagePath: R.ASSETS_EXAMPLE_GUANGGAO2_PNG, // SingleAdSpace(
// ), // imagePath: R.ASSETS_EXAMPLE_GUANGGAO2_PNG,
HomeTagBar( // ),
title: '物业收费标准请查收~', // Column(
tag: '公告', // children: [
isShowImage: true, // HomeTagBar(
), // title: '社区团购',
Column( // tag: '团购',
children: [ // isShowImage: false,
HomeTagBar( // ),
title: '社区活动', // HomeCard(
tag: '活动', // isActivity: false,
isShowImage: false, // title: '新疆库尔阿勒4.5斤,仙人蕉 香甜可口',
fun: () { // subtitleOne: '中国新疆',
ActivitiesPage().to; // subtitleTwo: '2020年07月03日',
}, // imagePath:
), // 'http://news.eastday.com/d/file/tga/2013-02-17/c2e7bd7fca1ed2ecf5d50dc9fb30275d.jpg',
HomeCard( // ),
isActivity: true, // HomeCard(
title: '22日上午10点,阳光小镇在二期乒乓球场地举行了小区乒乓比赛', // isActivity: false,
subtitleOne: '活动时二楼', // title: '刚果柠檬大果4盒 鲜果新鲜采摘15斤',
subtitleTwo: '06月17日 12:00至06月17日 18:30', // subtitleOne: '非洲刚果',
imagePath: // subtitleTwo: '2020年08月09日',
'https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1601275745883&di=e7b2a1afdb8812f8a9acd9742ea7e1a7&imgtype=0&src=http%3A%2F%2Fy3.ifengimg.com%2Fcmpp%2F2013%2F12%2F27%2F03%2F459f46cb-c07f-4083-9a65-27b90cb4562f.jpg', // imagePath:
), // 'http://5b0988e595225.cdn.sohucs.com/images/20180203/328e145f84c54dd08d1b11b890109862.jpeg',
], // ),
), // ],
SizedBox(height: 24.w), // ),
// Column( // SizedBox(height: 30.w),
// children: [ // HomeTagBar(
// HomeTagBar( // title: '社区商城',
// title: '社区团购', // tag: '团购',
// tag: '团购', // isShowImage: false,
// isShowImage: false, // isShowTitle: true,
// ), // ),
// HomeCard( ],
// isActivity: false,
// title: '新疆库尔阿勒4.5斤,仙人蕉 香甜可口',
// subtitleOne: '中国新疆',
// subtitleTwo: '2020年07月03日',
// imagePath:
// 'http://news.eastday.com/d/file/tga/2013-02-17/c2e7bd7fca1ed2ecf5d50dc9fb30275d.jpg',
// ),
// HomeCard(
// isActivity: false,
// title: '刚果柠檬大果4盒 鲜果新鲜采摘15斤',
// subtitleOne: '非洲刚果',
// subtitleTwo: '2020年08月09日',
// imagePath:
// 'http://5b0988e595225.cdn.sohucs.com/images/20180203/328e145f84c54dd08d1b11b890109862.jpeg',
// ),
// ],
// ),
// SizedBox(height: 30.w),
// HomeTagBar(
// title: '社区商城',
// tag: '团购',
// isShowImage: false,
// isShowTitle: true,
// ),
],
),
), ),
// SliverPadding( ),
// padding: EdgeInsets.only(
// top: 30.w, SliverToBoxAdapter(
// left: 32.w, child: Column(
// right: 32.w, children: [
// ), HomeNotification(),
// sliver: _shopList.length == 0 HomeTitle(
// ? SliverToBoxAdapter(child: GoodsCardSkeleton()) title: '社区活动',
// : SliverGoodsCard(shoplist: _shopList)), suffixTitle: '更多活动',
], onTap: ActivityListPage().to,
), ),
model == null
? SizedBox()
: ActivityCard(model: model).pSymmetric(h: 24.w, v: 24.w),
],
)
.box
.white
.withRounded(value: 8.w)
.clip(Clip.antiAlias)
.margin(EdgeInsets.symmetric(horizontal: 32.w))
.make(),
),
// SliverPadding(
// padding: EdgeInsets.only(
// top: 30.w,
// left: 32.w,
// right: 32.w,
// ),
// sliver: _shopList.length == 0
// ? SliverToBoxAdapter(child: GoodsCardSkeleton())
// : SliverGoodsCard(shoplist: _shopList)),
],
), ),
), ),
); );

@ -1,83 +0,0 @@
// Flutter imports:
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
// Package imports:
import 'package:flutter_icons/flutter_icons.dart';
// Project imports:
import 'package:akuCommunity/utils/headers.dart';
import 'package:akuCommunity/widget/app_bar_action.dart';
class HomeAppBar extends StatefulWidget {
HomeAppBar({Key key}) : super(key: key);
@override
_HomeAppBarState createState() => _HomeAppBarState();
}
class _HomeAppBarState extends State<HomeAppBar> {
List<Map<String, dynamic>> _actionsList = [
{'title': '扫一扫', 'icon': AntDesign.scan1, 'funtion': null},
{'title': '消息', 'icon': AntDesign.bells, 'funtion': null}
];
List<Widget> _actions() {
return _actionsList
.map((item) => AppBarAction(
title: item['title'],
icon: item['icon'],
))
.toList();
}
@override
Widget build(BuildContext context) {
return Container(
decoration: BoxDecoration(
gradient: LinearGradient(
begin: Alignment.centerLeft,
end: Alignment.centerRight,
colors: [Color(0xffffd000), Color(0xffffbd00)],
),
),
child: AppBar(
elevation: 0,
title: Text(
'皇冠花园二期',
style: TextStyle(
fontWeight: FontWeight.w600,
fontSize: 36.sp,
color: Color(0xff333333),
),
),
centerTitle: true,
backgroundColor: Colors.transparent,
leading: Container(
margin: EdgeInsets.only(left: 32.w),
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text(
'深圳',
style: TextStyle(
fontWeight: FontWeight.w600,
fontSize: 24.sp,
color: Color(0xff333333),
),
),
Text(
'阴 27℃',
style: TextStyle(
fontSize: 20.sp,
color: Color(0xff333333),
),
)
]),
),
actions: _actions(),
),
);
}
}

@ -1,229 +0,0 @@
// Dart imports:
import 'dart:convert';
// Flutter imports:
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
// Package imports:
import 'package:image_stack/image_stack.dart';
// Project imports:
import 'package:akuCommunity/pages/activities_page/activities_details_page/activities_details_page.dart';
import 'package:akuCommunity/pages/goods_details/goods_details_page.dart';
import 'package:akuCommunity/routers/page_routers.dart';
import 'package:akuCommunity/utils/headers.dart';
import 'package:akuCommunity/widget/cached_image_wrapper.dart';
class HomeCard extends StatefulWidget {
final String title;
final String subtitleOne;
final String subtitleTwo;
final bool isActivity;
final String imagePath;
HomeCard(
{this.title,
this.subtitleOne,
this.subtitleTwo,
this.imagePath,
this.isActivity,
Key key})
: super(key: key);
@override
_HomeCardState createState() => _HomeCardState();
}
class _HomeCardState extends State<HomeCard> {
List<String> images = [
"https://ss3.bdstatic.com/70cFv8Sh_Q1YnxGkpoWK1HF6hhy/it/u=1151143562,4115642159&fm=26&gp=0.jpg",
"https://ss3.bdstatic.com/70cFv8Sh_Q1YnxGkpoWK1HF6hhy/it/u=2551412680,857245643&fm=26&gp=0.jpg",
"https://ss3.bdstatic.com/70cFv8Sh_Q1YnxGkpoWK1HF6hhy/it/u=3604827221,1047385274&fm=26&gp=0.jpg",
];
Widget _button(String buttonName) {
return InkWell(
onTap: () {
switch (widget.isActivity) {
case true:
ActivitiesDetailsPage(
bundle: Bundle()
..putMap('details', {
'title': widget.title,
'imagePath': widget.imagePath,
'isOver': false,
'isVoteOver': false,
'isVote': false,
'memberList': images
}),
).to;
break;
case false:
var shopInfo;
shopInfo = {
'itemid': '1',
'itemtitle': widget.title,
'taobao_image': "${widget.imagePath},${widget.imagePath}",
'itemprice': '69.9',
'itemshorttitle': widget.title,
'itempic_copy': widget.imagePath,
'itemdesc': widget.title,
'itempic': widget.imagePath
};
GoodsDetailsPage(
bundle: Bundle()
..putString('shoplist', json.encode(shopInfo).toString()),
).to;
break;
default:
}
},
child: Container(
height: 44.w,
width: 120.w,
alignment: Alignment.center,
decoration: BoxDecoration(
color: Color(0xffffc40c),
borderRadius: BorderRadius.all(Radius.circular(22.w)),
),
padding: EdgeInsets.symmetric(vertical: 8.w),
child: Text(
buttonName,
style: TextStyle(
fontWeight: FontWeight.w600,
color: Color(0xff4a4b51),
fontSize: 20.sp),
),
),
);
}
@override
Widget build(BuildContext context) {
return Container(
color: Colors.white,
margin: EdgeInsets.symmetric(
horizontal: 32.w,
),
padding: EdgeInsets.only(
left: 24.w,
right: 24.w,
bottom: 40.w,
),
child: Container(
decoration: BoxDecoration(
color: Colors.white,
borderRadius: BorderRadius.all(Radius.circular(8.w)),
border: Border.all(color: Color(0xffe8e8e8), width: 2.w),
),
padding: EdgeInsets.only(bottom: 24.w),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Stack(
children: [
Container(
child: ClipRRect(
borderRadius: BorderRadius.only(
topLeft: Radius.circular(8.w),
topRight: Radius.circular(8.w),
),
child: CachedImageWrapper(
url: widget.imagePath,
width: 638.w,
height: 210.w,
),
),
),
],
),
Container(
margin: EdgeInsets.only(
top: 16.w,
left: 24.w,
),
child: Text(
widget.title,
style: TextStyle(
fontWeight: FontWeight.w600,
color: Color(0xff4a4b51),
fontSize: 28.sp),
),
),
Container(
margin: EdgeInsets.only(
top: 16.w,
left: 24.w,
right: 24.w,
),
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
RichText(
text: TextSpan(
style: TextStyle(fontSize: 24.sp),
children: <InlineSpan>[
TextSpan(
text: widget.isActivity ? '地点:' : '原产地区:',
style: TextStyle(color: Color(0xff999999))),
TextSpan(
text: widget.subtitleOne,
style: TextStyle(color: Color(0xff4a4b51))),
],
),
),
Container(
margin: EdgeInsets.only(top: 8.w),
child: RichText(
text: TextSpan(
style: TextStyle(fontSize: 24.sp),
children: <InlineSpan>[
TextSpan(
text: widget.isActivity ? '活动时间:' : '预计到货:',
style: TextStyle(color: Color(0xff999999))),
TextSpan(
text: widget.subtitleTwo,
style: TextStyle(color: Color(0xff4a4b51))),
],
),
),
),
],
),
widget.isActivity ? SizedBox() : _button('去团购')
],
),
),
widget.isActivity
? Container(
margin: EdgeInsets.only(
top: 16.w,
right: 24.w,
),
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Container(
margin: EdgeInsets.only(left: 80.w),
child: ImageStack(
imageList: images,
imageRadius: 44.sp,
imageCount: 3,
imageBorderWidth: 1,
totalCount: 3,
),
),
_button('去看看'),
],
),
)
: SizedBox(),
],
),
),
);
}
}

@ -1,106 +0,0 @@
// Flutter imports:
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
// Package imports:
import 'package:flutter_icons/flutter_icons.dart';
// Project imports:
import 'package:akuCommunity/base/assets_image.dart';
import 'package:akuCommunity/utils/headers.dart';
class HomeTagBar extends StatefulWidget {
final String title;
final String tag;
final bool isShowImage,isShowTitle;
final Function fun;
HomeTagBar({Key key, this.title, this.tag, this.isShowImage,this.isShowTitle = false,this.fun})
: super(key: key);
@override
_HomeTagBarState createState() => _HomeTagBarState();
}
class _HomeTagBarState extends State<HomeTagBar> {
@override
Widget build(BuildContext context) {
return Container(
color: widget.isShowTitle ? Colors.transparent : Colors.white,
margin: EdgeInsets.symmetric(
horizontal: 32.w,
),
padding: EdgeInsets.all(24.w),
child: Stack(
children: <Widget>[
Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Row(
children: [
widget.isShowImage
? Container(
margin: EdgeInsets.only(right: 24.w),
child: Image.asset(
AssetsImage.NOTIFICATION,
height: 38.w,
width: 38.w,
),
)
: SizedBox(),
Text(
widget.title,
style: TextStyle(
fontSize: widget.isShowImage
? 28.sp
: 32.sp,
fontWeight: widget.isShowImage
? FontWeight.normal
: FontWeight.w600,
color: Color(0xff4a4b51)),
),
],
),
widget.isShowTitle ? SizedBox() : InkWell(
onTap: () {
widget.fun();
},
child: Row(children: [
Text(
'更多${widget.tag}',
style: TextStyle(
color: Color(0xff999999),
fontSize: 20.sp),
),
SizedBox(width: 8.w),
Icon(
AntDesign.right,
color: Color(0xff999999),
size: 20.sp,
),
]),
),
],
),
widget.isShowImage
? SizedBox()
: Positioned(
top: 30.w,
left: 0,
child: Container(
decoration: BoxDecoration(
color: Color(0xffffc40c).withOpacity(0.4),
boxShadow: <BoxShadow>[
BoxShadow(
color: Colors.grey.withOpacity(0.1),
offset: Offset(1.1, 1.1),
blurRadius: 10.0),
],
),
width: 126.w,
height: 8.w),
)
],
),
);
}
}

@ -28,9 +28,7 @@ import 'package:akuCommunity/painters/user_bottom_bar_painter.dart';
import 'package:akuCommunity/provider/user_provider.dart'; import 'package:akuCommunity/provider/user_provider.dart';
import 'package:akuCommunity/routers/page_routers.dart'; import 'package:akuCommunity/routers/page_routers.dart';
import 'package:akuCommunity/utils/headers.dart'; import 'package:akuCommunity/utils/headers.dart';
import 'package:akuCommunity/widget/cached_image_wrapper.dart';
import 'package:akuCommunity/widget/grid_buttons.dart'; import 'package:akuCommunity/widget/grid_buttons.dart';
import 'package:akuCommunity/widget/single_ad_space.dart';
class PersonalIndex extends StatefulWidget { class PersonalIndex extends StatefulWidget {
final bool isSign; final bool isSign;
@ -128,8 +126,8 @@ class _PersonalIndexState extends State<PersonalIndex>
child: FadeInImage.assetNetwork( child: FadeInImage.assetNetwork(
//TODO PLACEHOLDER //TODO PLACEHOLDER
placeholder: R.ASSETS_ICONS_PROPOSAL_PNG, placeholder: R.ASSETS_ICONS_PROPOSAL_PNG,
image: API image: API.image(
.image(userProvider?.userInfoModel?.imgUrl), userProvider?.userInfoModel?.imgUrl ?? ''),
height: 106.w, height: 106.w,
width: 106.w, width: 106.w,
), ),

@ -2,6 +2,7 @@
import 'dart:io'; import 'dart:io';
// Flutter imports: // Flutter imports:
import 'package:akuCommunity/widget/buttons/bottom_button.dart';
import 'package:flutter/cupertino.dart'; import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
@ -249,6 +250,23 @@ class _AddFixedSubmitPageState extends State<AddFixedSubmitPage> {
.make() .make()
], ],
), ),
bottomNavi: BottomButton(
onPressed: _canSubmit(_selectType, _textEditingController.text)
? () async {
List<String> urls = await NetUtil()
.uploadFiles(_files, API.upload.uploadRepair);
BaseModel baseModel = await ManagerFunc.reportRepairInsert(
_selectType + 1, _textEditingController.text, urls);
if (baseModel.status) {
FinishFixedSubmitPage().to();
} else
BotToast.showText(text: baseModel.message);
}
: () {
BotToast.showText(text: '请填写完整报修信息!');
},
child: '确认提交'.text.black.bold.size(32.sp).make(),
),
); );
} }
} }

@ -0,0 +1,99 @@
// Flutter imports:
import 'package:flutter/material.dart';
// Package imports:
import 'package:common_utils/common_utils.dart';
import 'package:velocity_x/velocity_x.dart';
// Project imports:
import 'package:akuCommunity/const/resource.dart';
import 'package:akuCommunity/constants/api.dart';
import 'package:akuCommunity/model/common/img_model.dart';
import 'package:akuCommunity/model/community/activity_item_model.dart';
import 'package:akuCommunity/ui/community/activity_detail_page.dart';
import 'package:akuCommunity/utils/headers.dart';
import 'package:akuCommunity/widget/others/stack_avatar.dart';
class ActivityCard extends StatelessWidget {
final ActivityItemModel model;
const ActivityCard({
Key key,
@required this.model,
}) : super(key: key);
String get firstPath =>
(model.imgUrls?.isEmpty ?? true) ? null : model.imgUrls.first.url;
Widget build(BuildContext context) {
return MaterialButton(
clipBehavior: Clip.antiAlias,
color: Colors.white,
padding: EdgeInsets.zero,
onPressed: ActivityDetailPage(id: model.id).to,
elevation: 0,
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(8.w),
side: BorderSide(
color: Colors.grey,
),
),
materialTapTargetSize: MaterialTapTargetSize.shrinkWrap,
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
firstPath == null
? SizedBox()
: Hero(
tag: API.image(firstPath),
child: Material(
color: Colors.grey,
child: FadeInImage.assetNetwork(
placeholder: R.ASSETS_IMAGES_LOGO_PNG,
image: API.image(firstPath),
height: 210.w,
width: double.infinity,
),
),
),
model.title.text
.size(28.sp)
.black
.make()
.pSymmetric(h: 24.w, v: 16.w),
[
'地 点:'.text.size(24.sp).color(Color(0xFF999999)).make(),
model.location.text.size(24.sp).make(),
].row().pSymmetric(h: 24.w),
6.hb,
[
'活动时间:'.text.size(24.sp).color(Color(0xFF999999)).make(),
'${DateUtil.formatDate(
model.begin,
format: 'MM月dd日 HH:mm',
)}${DateUtil.formatDate(
model.end,
format: 'MM月dd日 HH:mm',
)}'
.text
.size(24.sp)
.make(),
].row().pSymmetric(h: 24.w),
[
StackAvatar(avatars: model.headImgURls.map((e) => e.url).toList()),
Spacer(),
MaterialButton(
elevation: 0,
materialTapTargetSize: MaterialTapTargetSize.shrinkWrap,
color: Color(0xFFFFC40C),
shape: StadiumBorder(),
height: 44.w,
minWidth: 120.w,
onPressed: () {},
child: '去看看'.text.size(20.sp).bold.make(),
),
].row().p(24.w),
],
),
);
}
}

@ -0,0 +1,189 @@
// Flutter imports:
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
// Package imports:
import 'package:common_utils/common_utils.dart';
import 'package:flutter_easyrefresh/easy_refresh.dart';
import 'package:get/get.dart';
import 'package:shimmer/shimmer.dart';
// Project imports:
import 'package:akuCommunity/const/resource.dart';
import 'package:akuCommunity/constants/api.dart';
import 'package:akuCommunity/model/community/activity_detail_model.dart';
import 'package:akuCommunity/ui/community/activity_people_list_page.dart';
import 'package:akuCommunity/utils/headers.dart';
import 'package:akuCommunity/utils/network/base_model.dart';
import 'package:akuCommunity/utils/network/net_util.dart';
import 'package:akuCommunity/widget/bee_scaffold.dart';
import 'package:akuCommunity/widget/others/stack_avatar.dart';
import 'package:akuCommunity/widget/picker/bee_image_preview.dart';
class ActivityDetailPage extends StatefulWidget {
final int id;
ActivityDetailPage({Key key, @required this.id}) : super(key: key);
@override
_ActivityDetailPageState createState() => _ActivityDetailPageState();
}
class _ActivityDetailPageState extends State<ActivityDetailPage> {
ActivityDetailModel model;
EasyRefreshController _refreshController = EasyRefreshController();
Widget get emptyWidget => Shimmer.fromColors(
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
VxBox().white.height(45.w).width(544.w).make(),
48.hb,
VxBox()
.white
.height(228.w)
.width(double.infinity)
.withRounded(value: 8.w)
.make(),
44.hb,
...List.generate(
3,
(index) => VxBox()
.white
.height(45.w)
.width(544.w)
.margin(EdgeInsets.symmetric(vertical: 5.w))
.make(),
),
],
).pSymmetric(h: 32.w, v: 24.w),
baseColor: Colors.black12,
highlightColor: Colors.white,
);
@override
void dispose() {
_refreshController?.dispose();
super.dispose();
}
_buildTile(String title, String subTitle) {
return Row(
children: [
title.text.size(28.sp).make().box.width(136.w).make(),
subTitle.text.size(28.sp).make().expand(),
],
).pSymmetric(h: 32.w);
}
@override
Widget build(BuildContext context) {
return BeeScaffold(
title: '活动详情',
body: EasyRefresh(
header: MaterialHeader(),
onRefresh: () async {
BaseModel baseModel = await NetUtil().get(
API.community.activityDetail,
params: {'activityId': widget.id},
);
model = ActivityDetailModel.fromJson(baseModel.data);
setState(() {});
},
controller: _refreshController,
firstRefresh: true,
emptyWidget: model == null ? emptyWidget : null,
child: model == null
? SizedBox()
: ListView(
children: [
model.title.text
.size(32.sp)
.bold
.make()
.pSymmetric(h: 32.w, v: 24.w),
48.hb,
...model.imgUrls
.map((e) => GestureDetector(
onTap: () {
Get.to(
BeeImagePreview.path(path: API.image(e.url)),
opaque: false,
);
},
child: Hero(
tag: API.image(e.url),
child: Container(
height: 228.w,
decoration: BoxDecoration(
color: Colors.black12,
borderRadius: BorderRadius.circular(8.w),
),
clipBehavior: Clip.antiAlias,
child: FadeInImage.assetNetwork(
placeholder: R.ASSETS_IMAGES_LOGO_PNG,
image: e.url,
),
),
),
).pSymmetric(h: 32.w))
.toList(),
44.hb,
model.content.text.size(28.sp).make().pSymmetric(h: 32.w),
44.hb,
_buildTile(
'开始时间',
DateUtil.formatDate(
model.startDate,
format: 'yyyy年MM月dd日 HH:mm',
),
),
_buildTile(
'结束时间',
DateUtil.formatDate(
model.endDate,
format: 'yyyy年MM月dd日 HH:mm',
),
),
_buildTile('地 点', model.location),
_buildTile('参与人数', '不限'),
_buildTile(
'报名截止',
DateUtil.formatDate(
model.registEndDate,
format: 'yyyy年MM月dd日 HH:mm',
),
),
115.hb,
Container(
height: 24.w,
color: Color(0xFFF9F9F9),
),
MaterialButton(
height: 92.w,
onPressed: () =>
Get.to(ActivityPeopleListPage(id: widget.id)),
child: Row(
children: [
StackAvatar(
avatars: model.headImgURls.map((e) => e.url).toList(),
),
Spacer(),
'已有${model.countRegistration}人参加'
.text
.size(28.sp)
.make(),
16.wb,
Icon(
CupertinoIcons.chevron_forward,
size: 30.w,
color: Color(0xFFD8D8D8),
),
],
),
),
Divider(height: 1.w, indent: 32.w, endIndent: 32.w),
],
),
).material(color: Colors.white),
);
}
}

@ -0,0 +1,53 @@
// Flutter imports:
import 'package:flutter/material.dart';
// Package imports:
import 'package:flutter_easyrefresh/easy_refresh.dart';
// Project imports:
import 'package:akuCommunity/constants/api.dart';
import 'package:akuCommunity/model/community/activity_item_model.dart';
import 'package:akuCommunity/pages/things_page/widget/bee_list_view.dart';
import 'package:akuCommunity/ui/community/activity_card.dart';
import 'package:akuCommunity/utils/headers.dart';
import 'package:akuCommunity/widget/bee_scaffold.dart';
class ActivityListPage extends StatefulWidget {
ActivityListPage({Key key}) : super(key: key);
@override
_ActivityListPageState createState() => _ActivityListPageState();
}
class _ActivityListPageState extends State<ActivityListPage> {
EasyRefreshController _refreshController = EasyRefreshController();
@override
void dispose() {
_refreshController?.dispose();
super.dispose();
}
@override
Widget build(BuildContext context) {
return BeeScaffold(
title: '往期精彩',
body: BeeListView(
controller: _refreshController,
path: API.community.activityList,
convert: (model) =>
model.tableList.map((e) => ActivityItemModel.fromJson(e)).toList(),
builder: (items) {
return ListView.separated(
padding: EdgeInsets.symmetric(horizontal: 32.w, vertical: 20.w),
itemBuilder: (context, index) {
final ActivityItemModel model = items[index];
return ActivityCard(model: model);
},
separatorBuilder: (_, __) => 20.hb,
itemCount: items.length,
);
},
),
);
}
}

@ -0,0 +1,72 @@
// Flutter imports:
import 'package:flutter/material.dart';
// Package imports:
import 'package:flutter_easyrefresh/easy_refresh.dart';
// Project imports:
import 'package:akuCommunity/const/resource.dart';
import 'package:akuCommunity/constants/api.dart';
import 'package:akuCommunity/model/community/activity_people_model.dart';
import 'package:akuCommunity/pages/things_page/widget/bee_list_view.dart';
import 'package:akuCommunity/utils/headers.dart';
import 'package:akuCommunity/widget/bee_scaffold.dart';
import 'package:akuCommunity/widget/others/stack_avatar.dart';
class ActivityPeopleListPage extends StatefulWidget {
final int id;
ActivityPeopleListPage({Key key, @required this.id}) : super(key: key);
@override
_ActivityPeopleListPageState createState() => _ActivityPeopleListPageState();
}
class _ActivityPeopleListPageState extends State<ActivityPeopleListPage> {
EasyRefreshController _refreshController = EasyRefreshController();
@override
void dispose() {
_refreshController?.dispose();
super.dispose();
}
@override
Widget build(BuildContext context) {
return BeeScaffold(
title: '参与人员',
body: BeeListView(
controller: _refreshController,
path: API.community.activityPeopleList,
extraParams: {'activityId': widget.id},
convert: (model) => model.tableList
.map((e) => ActivityPeopleModel.fromJson(e))
.toList(),
builder: (items) {
return ListView.separated(
padding: EdgeInsets.all(32.w),
itemBuilder: (context, index) {
final ActivityPeopleModel model = items[index];
return Row(
children: [
96.hb,
20.wb,
FadeInImage.assetNetwork(
placeholder: R.ASSETS_IMAGES_LOGO_PNG,
image: API.image(model.imgUrl.first.url),
height: 60.w,
width: 60.w,
),
18.wb,
model.name.text.size(28.sp).make(),
Spacer(),
model.tel.text.size(28.sp).make(),
],
);
},
separatorBuilder: (_, __) => Divider(height: 1.w),
itemCount: items.length,
);
},
).material(color: Colors.white),
);
}
}

@ -0,0 +1,16 @@
// Project imports:
import 'package:akuCommunity/constants/api.dart';
import 'package:akuCommunity/model/community/activity_item_model.dart';
import 'package:akuCommunity/utils/network/base_list_model.dart';
import 'package:akuCommunity/utils/network/net_util.dart';
class CommunityFunc {
static Future<ActivityItemModel> activity() async {
BaseListModel model = await NetUtil().getList(
API.community.activityList,
params: {'pageNum': 1, 'size': 1},
);
if (model.tableList.length == 0) return null;
return ActivityItemModel.fromJson(model.tableList.first);
}
}

@ -0,0 +1,54 @@
// Flutter imports:
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
// Package imports:
import 'package:velocity_x/velocity_x.dart';
// Project imports:
import 'package:akuCommunity/const/resource.dart';
import 'package:akuCommunity/utils/headers.dart';
class HomeNotification extends StatefulWidget {
HomeNotification({Key key}) : super(key: key);
@override
_HomeNotificationState createState() => _HomeNotificationState();
}
class _HomeNotificationState extends State<HomeNotification> {
@override
Widget build(BuildContext context) {
return Row(
children: [
85.hb,
24.wb,
Image.asset(
R.ASSETS_ICONS_ICON_NOTIFICATION_PNG,
height: 40.w,
width: 40.w,
),
24.wb,
'TTTTTTTTT'.text.size(28.sp).make(),
Spacer(),
MaterialButton(
shape: StadiumBorder(),
padding: EdgeInsets.symmetric(horizontal: 12.w),
onPressed: () {},
child: Row(
children: [
'更多公告'.text.size(20.sp).color(Color(0xFF999999)).make(),
8.wb,
Icon(
CupertinoIcons.chevron_forward,
size: 24.w,
color: Color(0xFF999999),
),
],
),
),
12.wb,
],
);
}
}

@ -0,0 +1,65 @@
// Flutter imports:
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
// Package imports:
import 'package:velocity_x/velocity_x.dart';
// Project imports:
import 'package:akuCommunity/base/base_style.dart';
import 'package:akuCommunity/utils/headers.dart';
class HomeTitle extends StatelessWidget {
final String title;
final String suffixTitle;
final VoidCallback onTap;
const HomeTitle({
Key key,
@required this.title,
@required this.suffixTitle,
@required this.onTap,
}) : super(key: key);
@override
Widget build(BuildContext context) {
return Row(
children: [
85.hb,
24.wb,
Stack(
children: [
Positioned(
left: 0,
right: 0,
bottom: 4.w,
child: Container(
color: kPrimaryColor,
height: 8.w,
),
),
title.text.size(32.sp).bold.make(),
],
),
Spacer(),
MaterialButton(
shape: StadiumBorder(),
padding: EdgeInsets.symmetric(horizontal: 12.w),
onPressed: onTap,
child: Row(
children: [
suffixTitle.text.size(20.sp).color(Color(0xFF999999)).make(),
8.wb,
Icon(
CupertinoIcons.chevron_forward,
size: 24.w,
color: Color(0xFF999999),
),
],
),
),
12.wb,
],
);
}
}

@ -113,13 +113,6 @@ class NetUtil {
}) async { }) async {
try { try {
Response res = await _dio.get(path, queryParameters: params); Response res = await _dio.get(path, queryParameters: params);
_logger.v({
'path': res.request.path,
'header': res.request.headers,
'params': res.request.queryParameters,
'data': res.data,
});
LoggerData.addData(res);
BaseListModel baseListModel = BaseListModel.fromJson(res.data); BaseListModel baseListModel = BaseListModel.fromJson(res.data);
return baseListModel; return baseListModel;
} on DioError catch (e) { } on DioError catch (e) {

@ -0,0 +1,44 @@
// Flutter imports:
import 'package:flutter/material.dart';
// Project imports:
import 'package:akuCommunity/const/resource.dart';
import 'package:akuCommunity/constants/api.dart';
import 'package:akuCommunity/utils/headers.dart';
class StackAvatar extends StatelessWidget {
final List<String> avatars;
const StackAvatar({Key key, @required this.avatars}) : super(key: key);
double get offset => 35.w;
int get length => avatars?.length ?? 0;
@override
Widget build(BuildContext context) {
return Stack(
children: [
SizedBox(
width: 44.w * 2 + 26.w,
height: 44.w + 6.w,
),
...List.generate(length, (index) {
return Positioned(
left: index * offset,
child: Container(
decoration: BoxDecoration(
color: Colors.white,
borderRadius: BorderRadius.circular(22.w + 2.w),
border: Border.all(color: Color(0xFF999999)),
),
clipBehavior: Clip.antiAlias,
child: FadeInImage.assetNetwork(
height: 44.w,
width: 44.w,
placeholder: R.ASSETS_IMAGES_LOGO_PNG,
image: API.image(avatars[index]),
),
),
);
}),
],
);
}
}

@ -14,28 +14,28 @@ packages:
name: amap_core_fluttify name: amap_core_fluttify
url: "https://pub.flutter-io.cn" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "0.14.0" version: "0.12.0"
amap_location_fluttify: amap_location_fluttify:
dependency: "direct main" dependency: "direct main"
description: description:
name: amap_location_fluttify name: amap_location_fluttify
url: "https://pub.flutter-io.cn" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "0.20.0" version: "0.18.0"
amap_map_fluttify: amap_map_fluttify:
dependency: "direct main" dependency: "direct main"
description: description:
name: amap_map_fluttify name: amap_map_fluttify
url: "https://pub.flutter-io.cn" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "0.30.1" version: "0.29.0"
amap_search_fluttify: amap_search_fluttify:
dependency: transitive dependency: transitive
description: description:
name: amap_search_fluttify name: amap_search_fluttify
url: "https://pub.flutter-io.cn" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "0.16.2" version: "0.14.0"
analyzer: analyzer:
dependency: transitive dependency: transitive
description: description:
@ -56,7 +56,7 @@ packages:
name: ansicolor name: ansicolor
url: "https://pub.flutter-io.cn" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "1.0.5" version: "1.1.1"
archive: archive:
dependency: transitive dependency: transitive
description: description:
@ -105,7 +105,7 @@ packages:
name: cached_network_image name: cached_network_image
url: "https://pub.flutter-io.cn" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "2.3.1" version: "2.5.0"
characters: characters:
dependency: transitive dependency: transitive
description: description:
@ -126,14 +126,14 @@ packages:
name: chewie name: chewie
url: "https://pub.flutter-io.cn" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "0.9.10" version: "0.12.2"
chewie_audio: chewie_audio:
dependency: transitive dependency: transitive
description: description:
name: chewie_audio name: chewie_audio
url: "https://pub.flutter-io.cn" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "1.0.0+1" version: "1.1.1"
cli_util: cli_util:
dependency: transitive dependency: transitive
description: description:
@ -189,14 +189,14 @@ packages:
name: core_location_fluttify name: core_location_fluttify
url: "https://pub.flutter-io.cn" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "0.6.0" version: "0.4.1"
crypto: crypto:
dependency: transitive dependency: transitive
description: description:
name: crypto name: crypto
url: "https://pub.flutter-io.cn" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "2.1.4" version: "2.1.5"
css_colors: css_colors:
dependency: transitive dependency: transitive
description: description:
@ -308,7 +308,7 @@ packages:
name: fluro name: fluro
url: "https://pub.flutter-io.cn" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "1.6.3" version: "1.7.8"
flustars: flustars:
dependency: "direct main" dependency: "direct main"
description: description:
@ -348,14 +348,14 @@ packages:
name: flutter_cache_manager name: flutter_cache_manager
url: "https://pub.flutter-io.cn" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "1.4.1" version: "2.1.1"
flutter_datetime_picker: flutter_datetime_picker:
dependency: "direct main" dependency: "direct main"
description: description:
name: flutter_datetime_picker name: flutter_datetime_picker
url: "https://pub.flutter-io.cn" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "1.4.0" version: "1.5.0"
flutter_easyrefresh: flutter_easyrefresh:
dependency: "direct main" dependency: "direct main"
description: description:
@ -376,7 +376,7 @@ packages:
name: flutter_html name: flutter_html
url: "https://pub.flutter-io.cn" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "1.0.2" version: "1.2.0"
flutter_icons: flutter_icons:
dependency: "direct main" dependency: "direct main"
description: description:
@ -384,6 +384,13 @@ packages:
url: "https://pub.flutter-io.cn" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "1.1.0" version: "1.1.0"
flutter_layout_grid:
dependency: transitive
description:
name: flutter_layout_grid
url: "https://pub.flutter-io.cn"
source: hosted
version: "0.10.3"
flutter_localizations: flutter_localizations:
dependency: "direct main" dependency: "direct main"
description: flutter description: flutter
@ -444,7 +451,7 @@ packages:
name: flutter_svg name: flutter_svg
url: "https://pub.flutter-io.cn" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "0.18.1" version: "0.19.1"
flutter_swiper: flutter_swiper:
dependency: "direct main" dependency: "direct main"
description: description:
@ -475,14 +482,14 @@ packages:
name: font_awesome_flutter name: font_awesome_flutter
url: "https://pub.flutter-io.cn" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "8.8.1" version: "8.11.0"
foundation_fluttify: foundation_fluttify:
dependency: transitive dependency: transitive
description: description:
name: foundation_fluttify name: foundation_fluttify
url: "https://pub.flutter-io.cn" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "0.11.1" version: "0.9.10+1"
get: get:
dependency: "direct main" dependency: "direct main"
description: description:
@ -497,6 +504,13 @@ packages:
url: "https://pub.flutter-io.cn" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "1.2.0" version: "1.2.0"
grinder:
dependency: "direct dev"
description:
name: grinder
url: "https://pub.flutter-io.cn"
source: hosted
version: "0.8.6"
highlight: highlight:
dependency: transitive dependency: transitive
description: description:
@ -524,7 +538,7 @@ packages:
name: html name: html
url: "https://pub.flutter-io.cn" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "0.14.0+3" version: "0.14.0+4"
http: http:
dependency: transitive dependency: transitive
description: description:
@ -552,7 +566,7 @@ packages:
name: image name: image
url: "https://pub.flutter-io.cn" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "2.1.14" version: "2.1.19"
image_picker: image_picker:
dependency: "direct main" dependency: "direct main"
description: description:
@ -574,6 +588,13 @@ packages:
url: "https://pub.flutter-io.cn" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "1.1.0" version: "1.1.0"
import_js_library:
dependency: transitive
description:
name: import_js_library
url: "https://pub.flutter-io.cn"
source: hosted
version: "1.0.2"
import_sorter: import_sorter:
dependency: "direct dev" dependency: "direct dev"
description: description:
@ -608,7 +629,7 @@ packages:
name: json_annotation name: json_annotation
url: "https://pub.flutter-io.cn" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "3.0.1" version: "3.1.1"
latlong: latlong:
dependency: "direct main" dependency: "direct main"
description: description:
@ -664,27 +685,20 @@ packages:
name: node_interop name: node_interop
url: "https://pub.flutter-io.cn" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "1.1.1" version: "1.2.1"
node_io: node_io:
dependency: transitive dependency: transitive
description: description:
name: node_io name: node_io
url: "https://pub.flutter-io.cn" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "1.1.1" version: "1.2.0"
octo_image: octo_image:
dependency: transitive dependency: transitive
description: description:
name: octo_image name: octo_image
url: "https://pub.flutter-io.cn" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "0.2.1"
open_iconic_flutter:
dependency: transitive
description:
name: open_iconic_flutter
url: "https://pub.flutter-io.cn"
source: hosted
version: "0.3.0" version: "0.3.0"
package_config: package_config:
dependency: transitive dependency: transitive
@ -727,7 +741,7 @@ packages:
name: path_provider name: path_provider
url: "https://pub.flutter-io.cn" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "1.6.18" version: "1.6.27"
path_provider_linux: path_provider_linux:
dependency: transitive dependency: transitive
description: description:
@ -741,28 +755,28 @@ packages:
name: path_provider_macos name: path_provider_macos
url: "https://pub.flutter-io.cn" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "0.0.4+3" version: "0.0.4+8"
path_provider_platform_interface: path_provider_platform_interface:
dependency: transitive dependency: transitive
description: description:
name: path_provider_platform_interface name: path_provider_platform_interface
url: "https://pub.flutter-io.cn" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "1.0.3" version: "1.0.4"
path_provider_windows: path_provider_windows:
dependency: transitive dependency: transitive
description: description:
name: path_provider_windows name: path_provider_windows
url: "https://pub.flutter-io.cn" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "0.0.4+1" version: "0.0.4+3"
pedantic: pedantic:
dependency: transitive dependency: transitive
description: description:
name: pedantic name: pedantic
url: "https://pub.flutter-io.cn" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "1.9.0" version: "1.9.2"
permission_handler: permission_handler:
dependency: "direct main" dependency: "direct main"
description: description:
@ -783,14 +797,14 @@ packages:
name: petitparser name: petitparser
url: "https://pub.flutter-io.cn" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "3.0.4" version: "3.1.0"
photo_view: photo_view:
dependency: "direct main" dependency: "direct main"
description: description:
name: photo_view name: photo_view
url: "https://pub.flutter-io.cn" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "0.10.2" version: "0.10.3"
platform: platform:
dependency: transitive dependency: transitive
description: description:
@ -798,26 +812,19 @@ packages:
url: "https://pub.flutter-io.cn" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "2.2.1" version: "2.2.1"
platform_detect:
dependency: transitive
description:
name: platform_detect
url: "https://pub.flutter-io.cn"
source: hosted
version: "1.4.0"
plugin_platform_interface: plugin_platform_interface:
dependency: transitive dependency: transitive
description: description:
name: plugin_platform_interface name: plugin_platform_interface
url: "https://pub.flutter-io.cn" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "1.0.2" version: "1.0.3"
power_logger: power_logger:
dependency: "direct main" dependency: "direct main"
description: description:
path: "." path: "."
ref: HEAD ref: HEAD
resolved-ref: "38c7b0431c56f2357b6ef1298009b9b4ff0586c0" resolved-ref: "1469b68b32bb5a7d02e6c89c5a9933ef77f738ad"
url: "http://192.168.2.201:8099/aku_fe/power_logger.git" url: "http://192.168.2.201:8099/aku_fe/power_logger.git"
source: git source: git
version: "0.0.1" version: "0.0.1"
@ -841,7 +848,7 @@ packages:
name: provider name: provider
url: "https://pub.flutter-io.cn" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "4.3.2+1" version: "4.3.3"
pub_semver: pub_semver:
dependency: transitive dependency: transitive
description: description:
@ -870,6 +877,13 @@ packages:
url: "https://pub.flutter-io.cn" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "3.2.0" version: "3.2.0"
quiver:
dependency: transitive
description:
name: quiver
url: "https://pub.flutter-io.cn"
source: hosted
version: "2.1.5"
random_character: random_character:
dependency: "direct main" dependency: "direct main"
description: description:
@ -899,35 +913,28 @@ packages:
name: rxdart name: rxdart
url: "https://pub.flutter-io.cn" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "0.24.1" version: "0.25.0"
screen:
dependency: transitive
description:
name: screen
url: "https://pub.flutter-io.cn"
source: hosted
version: "0.0.5"
shared_preferences: shared_preferences:
dependency: transitive dependency: transitive
description: description:
name: shared_preferences name: shared_preferences
url: "https://pub.flutter-io.cn" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "0.5.10" version: "0.5.12+4"
shared_preferences_linux: shared_preferences_linux:
dependency: transitive dependency: transitive
description: description:
name: shared_preferences_linux name: shared_preferences_linux
url: "https://pub.flutter-io.cn" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "0.0.2+2" version: "0.0.2+4"
shared_preferences_macos: shared_preferences_macos:
dependency: transitive dependency: transitive
description: description:
name: shared_preferences_macos name: shared_preferences_macos
url: "https://pub.flutter-io.cn" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "0.0.1+10" version: "0.0.1+11"
shared_preferences_platform_interface: shared_preferences_platform_interface:
dependency: transitive dependency: transitive
description: description:
@ -942,6 +949,13 @@ packages:
url: "https://pub.flutter-io.cn" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "0.1.2+7" version: "0.1.2+7"
shared_preferences_windows:
dependency: transitive
description:
name: shared_preferences_windows
url: "https://pub.flutter-io.cn"
source: hosted
version: "0.0.2+2"
shimmer: shimmer:
dependency: "direct main" dependency: "direct main"
description: description:
@ -981,14 +995,14 @@ packages:
name: sqflite name: sqflite
url: "https://pub.flutter-io.cn" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "1.3.1+1" version: "1.3.2+2"
sqflite_common: sqflite_common:
dependency: transitive dependency: transitive
description: description:
name: sqflite_common name: sqflite_common
url: "https://pub.flutter-io.cn" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "1.0.2+1" version: "1.0.3"
stack_trace: stack_trace:
dependency: transitive dependency: transitive
description: description:
@ -1052,13 +1066,6 @@ packages:
url: "https://pub.flutter-io.cn" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "1.3.0-nullsafety.3" version: "1.3.0-nullsafety.3"
uni_map_platform_interface:
dependency: transitive
description:
name: uni_map_platform_interface
url: "https://pub.flutter-io.cn"
source: hosted
version: "0.0.13"
url_launcher: url_launcher:
dependency: "direct main" dependency: "direct main"
description: description:
@ -1072,28 +1079,28 @@ packages:
name: url_launcher_linux name: url_launcher_linux
url: "https://pub.flutter-io.cn" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "0.0.1+1" version: "0.0.1+4"
url_launcher_macos: url_launcher_macos:
dependency: transitive dependency: transitive
description: description:
name: url_launcher_macos name: url_launcher_macos
url: "https://pub.flutter-io.cn" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "0.0.1+7" version: "0.0.1+9"
url_launcher_platform_interface: url_launcher_platform_interface:
dependency: transitive dependency: transitive
description: description:
name: url_launcher_platform_interface name: url_launcher_platform_interface
url: "https://pub.flutter-io.cn" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "1.0.8" version: "1.0.9"
url_launcher_web: url_launcher_web:
dependency: transitive dependency: transitive
description: description:
name: url_launcher_web name: url_launcher_web
url: "https://pub.flutter-io.cn" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "0.1.3+1" version: "0.1.5+1"
uuid: uuid:
dependency: transitive dependency: transitive
description: description:
@ -1128,28 +1135,42 @@ packages:
name: video_player name: video_player
url: "https://pub.flutter-io.cn" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "0.10.12+2" version: "1.0.1"
video_player_platform_interface: video_player_platform_interface:
dependency: transitive dependency: transitive
description: description:
name: video_player_platform_interface name: video_player_platform_interface
url: "https://pub.flutter-io.cn" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "2.1.1" version: "2.2.0"
video_player_web: video_player_web:
dependency: transitive dependency: transitive
description: description:
name: video_player_web name: video_player_web
url: "https://pub.flutter-io.cn" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "0.1.3+2" version: "0.1.4+1"
wakelock: wakelock:
dependency: transitive dependency: transitive
description: description:
name: wakelock name: wakelock
url: "https://pub.flutter-io.cn" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "0.1.4+2" version: "0.2.1+1"
wakelock_platform_interface:
dependency: transitive
description:
name: wakelock_platform_interface
url: "https://pub.flutter-io.cn"
source: hosted
version: "0.1.0+1"
wakelock_web:
dependency: transitive
description:
name: wakelock_web
url: "https://pub.flutter-io.cn"
source: hosted
version: "0.1.0+3"
watcher: watcher:
dependency: transitive dependency: transitive
description: description:
@ -1170,28 +1191,28 @@ packages:
name: webview_flutter name: webview_flutter
url: "https://pub.flutter-io.cn" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "0.3.22+1" version: "1.0.7"
win32: win32:
dependency: transitive dependency: transitive
description: description:
name: win32 name: win32
url: "https://pub.flutter-io.cn" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "1.7.3" version: "1.7.4"
xdg_directories: xdg_directories:
dependency: transitive dependency: transitive
description: description:
name: xdg_directories name: xdg_directories
url: "https://pub.flutter-io.cn" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "0.1.0" version: "0.1.2"
xml: xml:
dependency: transitive dependency: transitive
description: description:
name: xml name: xml
url: "https://pub.flutter-io.cn" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "4.2.0" version: "4.5.1"
yaml: yaml:
dependency: transitive dependency: transitive
description: description:
@ -1200,5 +1221,5 @@ packages:
source: hosted source: hosted
version: "2.2.1" version: "2.2.1"
sdks: sdks:
dart: ">=2.10.0 <2.11.0" dart: ">=2.10.2 <2.11.0"
flutter: ">=1.20.0 <2.0.0" flutter: ">=1.22.2 <2.0.0"

@ -2,7 +2,7 @@ name: akuCommunity
description: A new Flutter project. description: A new Flutter project.
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: 1.0.8+9 version: 1.0.9-dev+10
environment: environment:
sdk: ">=2.7.0 <3.0.0" sdk: ">=2.7.0 <3.0.0"
@ -76,7 +76,7 @@ dependencies:
flutter_picker: ^1.1.5 flutter_picker: ^1.1.5
#高德地图 #高德地图
amap_map_fluttify: amap_map_fluttify:
amap_location_fluttify: amap_location_fluttify: 0.18.0
#用户存储路径 #用户存储路径
path_provider: ^1.6.18 path_provider: ^1.6.18
@ -103,6 +103,7 @@ dev_dependencies:
sdk: flutter sdk: flutter
import_sorter: ^4.4.1 import_sorter: ^4.4.1
flutter_asset_generator: ^0.6.1 flutter_asset_generator: ^0.6.1
grinder:
flutter: flutter:
uses-material-design: true uses-material-design: true

@ -0,0 +1,15 @@
import 'package:grinder/grinder.dart';
main(args) => grind(args);
@Task()
test() => new TestRunner().testAsync();
@DefaultTask()
@Depends(test)
build() {
Pub.build();
}
@Task()
clean() => defaultClean();
Loading…
Cancel
Save