Merge branch 'laiiihz'

* laiiihz:
  remove unused import
  完成我的动态页面
  重写物业Tab 公告页面
  remove sh*t code again.
hmxc
小赖 4 years ago
commit c1acbf9a46

@ -184,6 +184,9 @@ class _Community {
///4
String get hotTopic => '/user/gambit/findActivityGambit';
///
String get myEvent => '/user/gambit/myTidings';
}
class _Upload {

@ -0,0 +1,43 @@
import 'package:akuCommunity/model/common/img_model.dart';
import 'package:flustars/flustars.dart';
class MyEventItemModel {
int id;
String content;
List<ImgModel> imgUrl;
String createDate;
String get firstImg {
String img = '';
if (imgUrl.isNotEmpty) img = imgUrl.first.url;
return img;
}
DateTime get date => DateUtil.getDateTime(createDate);
MyEventItemModel({this.id, this.content, this.imgUrl, this.createDate});
MyEventItemModel.fromJson(Map<String, dynamic> json) {
id = json['id'];
content = json['content'];
if (json['imgUrl'] != null) {
imgUrl = new List<ImgModel>();
json['imgUrl'].forEach((v) {
imgUrl.add(new ImgModel.fromJson(v));
});
} else
imgUrl = [];
createDate = json['createDate'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['id'] = this.id;
data['content'] = this.content;
if (this.imgUrl != null) {
data['imgUrl'] = this.imgUrl.map((v) => v.toJson()).toList();
}
data['createDate'] = this.createDate;
return data;
}
}

@ -3,7 +3,6 @@ import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
// Package imports:
import 'package:flutter_datetime_picker/flutter_datetime_picker.dart';
import 'package:flutter_icons/flutter_icons.dart';
import 'package:flutter_picker/flutter_picker.dart';

@ -13,7 +13,6 @@ import 'package:provider/provider.dart';
import 'package:velocity_x/velocity_x.dart';
// Project imports:
import 'package:akuCommunity/base/base_style.dart';
import 'package:akuCommunity/constants/api.dart';
import 'package:akuCommunity/model/manager/goods_out_model.dart';
import 'package:akuCommunity/pages/goods_deto_page/deto_create_page/deto_create_page.dart';

@ -9,7 +9,6 @@ import 'package:flutter/material.dart';
// Project imports:
import 'package:akuCommunity/utils/headers.dart';
import 'goods_info_card_button.dart';
import 'image_horizontal_list.dart';
class GoodsInfoCard extends StatelessWidget {
final GoodsOutModel model;

@ -1,7 +1,6 @@
// Flutter imports:
import 'package:akuCommunity/model/manager/article_QR_code_model.dart';
import 'package:akuCommunity/pages/manager_func.dart';
import 'package:akuCommunity/utils/network/base_model.dart';
import 'package:bot_toast/bot_toast.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';

@ -4,7 +4,6 @@ import 'dart:convert';
// Flutter imports:
import 'package:akuCommunity/model/community/board_model.dart';
import 'package:akuCommunity/ui/home/application/all_application.dart';
import 'package:akuCommunity/widget/buttons/column_action_button.dart';
import 'package:akuCommunity/widget/views/application_view.dart';
import 'package:flutter/cupertino.dart';
@ -12,35 +11,24 @@ import 'package:flutter/material.dart';
// Package imports:
import 'package:flutter_easyrefresh/easy_refresh.dart';
import 'package:flutter_icons/flutter_icons.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:velocity_x/velocity_x.dart';
// Project imports:
import 'package:akuCommunity/const/resource.dart';
import 'package:akuCommunity/extensions/num_ext.dart';
import 'package:akuCommunity/extensions/page_router.dart';
import 'package:akuCommunity/model/aku_shop_model.dart';
import 'package:akuCommunity/model/community/activity_item_model.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/industry_committee/industry_committee_page.dart';
import 'package:akuCommunity/pages/life_pay/life_pay_page.dart';
import 'package:akuCommunity/pages/message_center_page/message_center_page.dart';
import 'package:akuCommunity/pages/open_door_page/open_door_page.dart';
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/visitor_access_page/visitor_access_page.dart';
import 'package:akuCommunity/service/base_model.dart';
import 'package:akuCommunity/ui/community/activity/activity_card.dart';
import 'package:akuCommunity/ui/community/activity/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/utils/headers.dart';
import 'package:akuCommunity/widget/container_comment.dart';
import 'package:akuCommunity/widget/grid_buttons.dart';
import 'widget/home_search.dart';
import 'widget/home_swiper.dart';
@ -68,18 +56,6 @@ class _HomePageState extends State<HomePage>
ActivityItemModel _activityItemModel;
List<BoardItemModel> _boardItemModels = [];
List<GridButton> _gridList = [
GridButton('一键开门', R.ASSETS_ICONS_TOOL_YJKM_PNG, OpenDoorPage().to),
GridButton('访客通行', R.ASSETS_ICONS_TOOL_FKYQ_PNG, VisitorAccessPage().to),
GridButton('报事报修', R.ASSETS_ICONS_TOOL_BSBX_PNG, FixedSubmitPage().to),
GridButton('生活缴费', R.ASSETS_ICONS_TOOL_SHJF_PNG, LifePayPage().to),
GridButton('业委会', R.ASSETS_ICONS_TOOL_YWH_PNG, IndustryCommitteePage().to),
GridButton('建议咨询', R.ASSETS_ICONS_TOOL_JYTS_PNG,
AdvicePage(type: AdviceType.SUGGESTION).to),
GridButton('便民电话', R.ASSETS_ICONS_TOOL_BMDH_PNG, ConvenientPhonePage().to),
GridButton('全部应用', R.ASSETS_ICONS_TOOL_QBYY_PNG, AllApplicationPage().to),
];
@override
void initState() {
super.initState();

@ -9,8 +9,6 @@ import 'package:flutter_screenutil/flutter_screenutil.dart';
// Project imports:
import 'package:akuCommunity/utils/headers.dart';
import 'package:akuCommunity/widget/app_bar_action.dart';
import 'package:akuCommunity/widget/container_comment.dart';
import 'package:akuCommunity/widget/grid_buttons.dart';
import 'package:akuCommunity/widget/search_bar_delegate.dart';
import 'package:akuCommunity/widget/single_ad_space.dart';
import 'widget/market_list.dart';

@ -9,7 +9,6 @@ import 'package:flutter/material.dart';
import 'package:bot_toast/bot_toast.dart';
import 'package:common_utils/common_utils.dart';
import 'package:get/get.dart';
import 'package:image_picker/image_picker.dart';
import 'package:provider/provider.dart';
import 'package:velocity_x/velocity_x.dart';

@ -1,37 +1,16 @@
// Flutter imports:
import 'package:akuCommunity/constants/api.dart';
import 'package:akuCommunity/constants/application_objects.dart';
import 'package:akuCommunity/ui/community/notice/notice_page.dart';
import 'package:akuCommunity/model/community/board_model.dart';
import 'package:akuCommunity/ui/community/notice/notice_card.dart';
import 'package:akuCommunity/utils/network/base_list_model.dart';
import 'package:akuCommunity/utils/network/net_util.dart';
import 'package:akuCommunity/widget/views/application_view.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
// Package imports:
import 'package:get/get.dart';
import 'package:pull_to_refresh/pull_to_refresh.dart';
// Project imports:
import 'package:akuCommunity/const/resource.dart';
import 'package:akuCommunity/pages/activities_page/activities_details_page/activities_details_page.dart';
import 'package:akuCommunity/pages/activities_page/activities_page.dart';
import 'package:akuCommunity/pages/convenient_phone/convenient_phone_page.dart';
import 'package:akuCommunity/pages/fitup_manage/fitup_manage_page.dart';
import 'package:akuCommunity/pages/goods_deto_page/goods_deto_page.dart';
import 'package:akuCommunity/pages/industry_committee/industry_committee_page.dart';
import 'package:akuCommunity/pages/life_pay/life_pay_page.dart';
import 'package:akuCommunity/pages/open_door_page/open_door_page.dart';
import 'package:akuCommunity/pages/opening_code_page/opening_code_page.dart';
import 'package:akuCommunity/pages/questionnaire_page/questionnaire_page.dart';
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/visitor_access_page/visitor_access_page.dart';
import 'package:akuCommunity/routers/page_routers.dart';
import 'package:akuCommunity/ui/manager/advice/advice_page.dart';
import 'package:flutter_easyrefresh/easy_refresh.dart';
import 'package:akuCommunity/utils/headers.dart';
import 'package:akuCommunity/widget/bee_scaffold.dart';
import 'package:akuCommunity/widget/circle_trend.dart';
import 'package:akuCommunity/widget/container_comment.dart';
import 'package:akuCommunity/widget/grid_buttons.dart';
import 'package:akuCommunity/widget/single_ad_space.dart';
import 'widget/property_card.dart';
//TODO CLEAN BOTTOM CODES.
@ -47,131 +26,23 @@ class PropertyIndex extends StatefulWidget {
@Deprecated("sh*t property_index need to be cleaned.")
class _PropertyIndexState extends State<PropertyIndex>
with AutomaticKeepAliveClientMixin, SingleTickerProviderStateMixin {
List<GridButton> _gridList = [
GridButton('一键开门', R.ASSETS_ICONS_TOOL_YJKM_PNG, () {
OpenDoorPage().to();
}),
GridButton('开门码', R.ASSETS_ICONS_TOOL_KMM_PNG, () {
OpeningCodePage().to();
}),
GridButton('访客通行', R.ASSETS_ICONS_TOOL_FKYQ_PNG, () {
VisitorAccessPage().to();
}),
GridButton('报事报修', R.ASSETS_ICONS_TOOL_BSBX_PNG, () {
FixedSubmitPage().to();
}),
GridButton('生活缴费', R.ASSETS_ICONS_TOOL_SHJF_PNG, () {
LifePayPage().to();
}),
GridButton('业委会', R.ASSETS_ICONS_TOOL_YWH_PNG, () {
IndustryCommitteePage().to();
}),
GridButton('建议咨询', R.ASSETS_ICONS_TOOL_JYTS_PNG,
AdvicePage(type: AdviceType.SUGGESTION).to),
GridButton('便民电话', R.ASSETS_ICONS_TOOL_BMDH_PNG, () {
ConvenientPhonePage().to();
}),
GridButton('活动投票', R.ASSETS_ICONS_TOOL_HDTP_PNG, () {
Get.to(ActivitiesPage());
}),
GridButton('物品出户', R.ASSETS_ICONS_TOOL_WPCM_PNG, () {
GoodsDetoPage().to();
}),
GridButton('投诉表扬', R.ASSETS_ICONS_TOOL_TSBY_PNG,
AdvicePage(type: AdviceType.COMPLAIN).to),
GridButton('问卷调查', R.ASSETS_ICONS_TOOL_WJDC_PNG, () {
QuestionnairePage().to();
}),
GridButton('装修管理', R.ASSETS_ICONS_TOOL_ZXGL_PNG, () {
FitupManagePage().to();
}),
GridButton('全部应用', R.ASSETS_ICONS_TOOL_QBYY_PNG, () {
TotalApplicationsPage().to();
}),
];
@override
bool get wantKeepAlive => true;
List<Map<String, dynamic>> _listView = [
{
'title': '今天',
'contentList': <Map<String, dynamic>>[
{
'subtitle': '小区环境秩序管理局物业执法简讯',
'imagePath':
'https://ss0.bdstatic.com/70cFvHSh_Q1YnxGkpoWK1HF6hhy/it/u=486282784,967147496&fm=26&gp=0.jpg'
},
{
'subtitle': '小区健身房已经修缮完毕',
'imagePath':
'https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1600342657805&di=e47b51d9359495ee90488f7244afa85b&imgtype=0&src=http%3A%2F%2Fimage.cnpp.cn%2Fupload%2Fimages%2F20190122%2F14340317774_1200x800.jpg'
}
]
},
{
'title': '118月',
'contentList': <Map<String, dynamic>>[
{
'subtitle': '小区有了狗狗专用便桶',
'imagePath':
'https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1600342731226&di=2223958ede406daa9fa85f3ea908e601&imgtype=0&src=http%3A%2F%2F5b0988e595225.cdn.sohucs.com%2Fimages%2F20180505%2F570fe33aab56409fa62f0626ab78f4cd.jpeg'
},
]
},
{
'title': '217月',
'contentList': <Map<String, dynamic>>[
{
'subtitle': '小区开展保安员业务培训暨消防技能演练',
'imagePath':
'https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1600342893169&di=9f2fcf7e3b967ac99f0a2b22e59869d8&imgtype=0&src=http%3A%2F%2Fwww.nbbaxh.net%2FUploadFiles%2Fcontent%2F2018731649142.jpg'
},
]
},
];
RefreshController _refreshController =
RefreshController(initialRefresh: false);
ScrollController _controller;
@override
void initState() {
super.initState();
}
void _onRefresh() async {
await Future.delayed(Duration(milliseconds: 1500));
_refreshController.refreshCompleted();
}
void _onLoading() async {
await Future.delayed(Duration(milliseconds: 1500));
if (mounted) setState(() {});
_refreshController.loadComplete();
}
void activityRouter() {
ActivitiesPage().to;
}
void activityDetailsRouter(String imagePath, title, bool isOver, isVote,
isVoteOver, List<String> memberList) {
ActivitiesDetailsPage(
bundle: Bundle()
..putMap('details', {
'title': title,
'imagePath': imagePath,
'isOver': isOver,
'isVote': isVote,
'isVoteOver': isVoteOver,
'memberList': memberList
}),
).to;
}
void noticeRouter(String theme, imagePath) {
NoticePage().to;
EasyRefreshController _refreshController = EasyRefreshController();
int _page = 1;
int _pageCount = 0;
List<BoardItemModel> _models = [];
Future<List<BoardItemModel>> _getItems() async {
BaseListModel model = await NetUtil().getList(
API.community.boardList,
params: {
'pageNum': _page,
'size': 10,
},
);
_pageCount = model.pageCount;
return model.tableList.map((e) => BoardItemModel.fromJson(e)).toList();
}
@override
@ -185,22 +56,24 @@ class _PropertyIndexState extends State<PropertyIndex>
super.build(context);
return BeeScaffold(
title: '物业',
body: SmartRefresher(
body: EasyRefresh(
controller: _refreshController,
header: WaterDropHeader(),
footer: ClassicFooter(),
onRefresh: _onRefresh,
onLoading: _onLoading,
enablePullUp: true,
firstRefresh: true,
header: MaterialHeader(),
footer: MaterialFooter(),
onRefresh: () async {
_page = 1;
_models = await _getItems();
setState(() {});
},
onLoad: () async {
_page++;
_models.addAll(await _getItems());
if (_page >= _pageCount) _refreshController.finishLoad(noMore: true);
setState(() {});
},
child: CustomScrollView(
controller: _controller,
slivers: [
SliverToBoxAdapter(
child: SingleAdSpace(
imagePath: 'assets/example/guanggao5.png',
radius: 16,
),
),
SliverToBoxAdapter(
child: ContainerComment(
radius: 8,
@ -227,14 +100,23 @@ class _PropertyIndexState extends State<PropertyIndex>
child: ListView.builder(
shrinkWrap: true,
physics: NeverScrollableScrollPhysics(),
itemBuilder: (context, index) => CircleTrend(
title: _listView[index]['title'],
contentList: _listView[index]['contentList'],
fun: noticeRouter,
),
itemBuilder: (context, index) => SizedBox(),
itemCount: 3,
),
),
SliverList(
delegate: SliverChildBuilderDelegate(
(context, index) {
final BoardItemModel model = _models[index];
BoardItemModel preModel;
if (index >= 1) preModel = _models[index - 1];
return Padding(
padding: EdgeInsets.only(bottom: 8.w),
child: NoticeCard(model: model, preModel: preModel),
);
},
childCount: _models.length,
)),
],
),
),

@ -7,9 +7,7 @@ import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
// Project imports:
import 'package:akuCommunity/base/assets_image.dart';
import 'package:akuCommunity/const/resource.dart';
import 'community/community_index.dart';
import 'home/home_page.dart';
import 'personal/personal_page.dart';
import 'property/property_index.dart';

@ -1,5 +1,4 @@
// Flutter imports:
import 'package:akuCommunity/widget/buttons/radio_button.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';

@ -1,338 +0,0 @@
// Flutter imports:
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
// Project imports:
import 'package:akuCommunity/base/assets_image.dart';
import 'package:akuCommunity/pages/activities_page/activities_page.dart';
import 'package:akuCommunity/pages/convenient_phone/convenient_phone_page.dart';
import 'package:akuCommunity/pages/fitup_manage/fitup_manage_page.dart';
import 'package:akuCommunity/pages/goods_deto_page/goods_deto_page.dart';
import 'package:akuCommunity/pages/goods_manage_page/goods_manage_page.dart';
import 'package:akuCommunity/pages/industry_committee/industry_committee_page.dart';
import 'package:akuCommunity/pages/life_pay/life_pay_page.dart';
import 'package:akuCommunity/pages/market/market_detail_page/market_detail_page.dart';
import 'package:akuCommunity/pages/one_alarm/widget/alarm_page.dart';
import 'package:akuCommunity/pages/open_door_page/open_door_page.dart';
import 'package:akuCommunity/pages/opening_code_page/opening_code_page.dart';
import 'package:akuCommunity/pages/questionnaire_page/questionnaire_page.dart';
import 'package:akuCommunity/pages/things_page/fixed_submit_page.dart';
import 'package:akuCommunity/pages/visitor_access_page/visitor_access_page.dart';
import 'package:akuCommunity/routers/page_routers.dart';
import 'package:akuCommunity/ui/manager/advice/advice_page.dart';
import 'package:akuCommunity/utils/headers.dart';
import 'widget/applications_bar.dart';
class TotalApplicationsPage extends StatefulWidget {
TotalApplicationsPage({Key key}) : super(key: key);
@override
_TotalApplicationsPageState createState() => _TotalApplicationsPageState();
}
class _TotalApplicationsPageState extends State<TotalApplicationsPage> {
int _currentIndex = 0;
bool isEdit = false;
List<String> _leftNav = ['为您推荐', '智慧管家'];
Widget _myApp() {
return Container(
margin: EdgeInsets.only(
top: 32.w,
left: 32.w,
right: 32.w,
),
padding: EdgeInsets.only(bottom: 16.w),
decoration: BoxDecoration(
border:
Border(bottom: BorderSide(color: Color(0xffd8d8d8), width: 0.5)),
),
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Text(
'我的应用',
style: TextStyle(
fontSize: 28.sp,
color: Color(0xff333333),
),
),
InkWell(
onTap: () {
setState(() {
isEdit = !isEdit;
});
},
child: Container(
alignment: Alignment.center,
width: 90.w,
padding: EdgeInsets.symmetric(vertical: 6.w),
decoration: BoxDecoration(
color: Color(0xffffd000),
borderRadius: BorderRadius.all(Radius.circular(2)),
),
child: Text(
isEdit ? '完成' : '编辑',
style: TextStyle(
fontWeight: FontWeight.w600,
fontSize: 28.sp,
color: Color(0xff333333),
),
),
),
),
],
),
);
}
Widget _myAppGrid(List<Map<String, dynamic>> gridList, int count) {
return Container(
child: GridView.builder(
padding: EdgeInsets.zero,
shrinkWrap: true,
physics: NeverScrollableScrollPhysics(),
itemCount: gridList.length,
itemBuilder: (BuildContext context, int index) {
return InkWell(
onTap: isEdit
? () {
setState(() {
switch (count) {
case 3:
if ((!AssetsImage.mineAppList.any((item) =>
item['title'] == gridList[index]['title'])) &&
AssetsImage.mineAppList.length < 8) {
AssetsImage.mineAppList.add(gridList[index]);
}
break;
case 4:
gridList.removeAt(index);
break;
default:
}
});
}
: () {
switch (gridList[index]['title']) {
case '居家生活':
case '数码家电':
case '休闲副食':
case '滋补保健':
case '彩妆香水':
case '服饰箱包':
case '母婴玩具':
case '饮料酒水':
MarketDetailPage(
bundle: Bundle()
..putString('title', gridList[index]['title']),
).to;
break;
case '一键开门':
OpenDoorPage().to();
break;
case '开门码':
OpeningCodePage().to();
break;
case '访客通行':
case '我的访客':
VisitorAccessPage().to();
break;
case '报事报修':
FixedSubmitPage().to();
break;
case '生活缴费':
case '我的缴费':
LifePayPage().to();
break;
case '业委会':
IndustryCommitteePage().to();
break;
case '建议咨询':
AdvicePage(type: AdviceType.SUGGESTION).to();
break;
case '便民电话':
ConvenientPhonePage().to();
break;
case '活动投票':
ActivitiesPage().to();
break;
case '社区活动':
ActivitiesPage().to();
break;
case '物品出户':
GoodsDetoPage().to();
break;
case '投诉表扬':
AdvicePage(type: AdviceType.COMPLAIN).to();
break;
case '问卷调查':
QuestionnairePage().to();
break;
case '装修管理':
FitupManagePage().to();
break;
case '借还管理':
GoodsManagePage().to();
break;
case '一键报警':
AlarmPage().to();
break;
default:
break;
}
},
child: Container(
alignment: Alignment.center,
child: Stack(
children: [
Column(
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.center,
children: <Widget>[
Image.asset(
gridList[index]['imagePath'],
height: 75.w,
width: 75.w,
fit: BoxFit.cover,
),
SizedBox(height: 8.w),
Text(
gridList[index]['title'],
style: TextStyle(
fontSize: 24.sp,
color: Color(0xff4a4b51),
),
)
],
),
isEdit
? Positioned(
right: 0,
top: 24.w,
child: Image.asset(
count == 3
? AssetsImage.APPADD
: AssetsImage.APPREDUCE,
height: 24.w,
width: 24.w,
),
)
: SizedBox(),
],
),
),
);
},
gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(
crossAxisCount: count,
childAspectRatio: 1.0,
),
),
);
}
Widget _leftInkWellNav(int index) {
return InkWell(
child: Stack(
children: [
Container(
height: 88.w,
alignment: Alignment.center,
color: _currentIndex == index ? Colors.white : Colors.transparent,
padding: EdgeInsets.symmetric(vertical: 24.w),
child: Text(
_leftNav[index],
style: TextStyle(
fontSize: 28.sp,
color: Color(0xff333333),
),
),
),
_currentIndex == index
? Positioned(
top: 24.w,
left: 1,
child: SizedBox(
width: 4.w,
height: 40.w,
child: DecoratedBox(
decoration: BoxDecoration(color: Color(0xffffd000)),
),
),
)
: SizedBox(),
],
),
onTap: () {
setState(() {
_currentIndex = index;
});
},
);
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: PreferredSize(
child: ApplicationsBar(),
preferredSize: Size.fromHeight(kToolbarHeight),
),
body: ListView(
children: [
Container(
color: Colors.white,
child: _myApp(),
),
Container(
color: Colors.white,
child: _myAppGrid(AssetsImage.mineAppList, 4),
),
Container(
margin: EdgeInsets.only(top: 32.w),
child: Row(
mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
Container(
width: 172.w,
child: ListView.builder(
shrinkWrap: true,
itemCount: _leftNav.length,
itemBuilder: (BuildContext context, int index) {
return _leftInkWellNav(index);
}),
),
Container(
width: 578.w,
color: Colors.white,
child: ListView(
shrinkWrap: true,
children: [
Builder(builder: (_) {
switch (_currentIndex) {
case 0:
return _myAppGrid(AssetsImage.recommendGridList, 3);
break;
case 1:
return _myAppGrid(AssetsImage.propertyGridList, 3);
break;
case 2:
return _myAppGrid(AssetsImage.shopGridList, 3);
break;
default:
return SizedBox();
}
}),
],
),
),
],
),
),
],
),
);
}
}

@ -1,66 +0,0 @@
// Flutter imports:
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
// Package imports:
import 'package:flutter_icons/flutter_icons.dart';
import 'package:get/get.dart';
// Project imports:
import 'package:akuCommunity/utils/headers.dart';
import 'package:akuCommunity/widget/search_bar_delegate.dart';
class ApplicationsBar extends StatelessWidget {
const ApplicationsBar({Key key}) : super(key: key);
@override
Widget build(BuildContext context) {
return Container(
child: AppBar(
elevation: 0,
titleSpacing: 0,
backgroundColor: Colors.white,
leading: InkWell(
onTap: () => Get.back(),
child: Icon(
AntDesign.left,
size: 45.sp,
color: Color(0xff333333),
),
),
centerTitle: true,
title: InkWell(
onTap: () {
showSearch(context: context, delegate: SearchBarDelegate());
},
child: Container(
margin: EdgeInsets.only(right: 32.w),
padding: EdgeInsets.only(
left: 40.w,
top: 15.w,
bottom: 15.w),
decoration: BoxDecoration(
color: Color(0xfff3f3f3),
borderRadius: BorderRadius.all(Radius.circular(36)),
),
child: Row(children: [
Icon(
AntDesign.search1,
size: 28.sp,
color: Color(0xff999999),
),
SizedBox(width: 5),
Text(
'搜索商品、活动、帖子、应用',
style: TextStyle(
fontSize: 28.sp,
color: Color(0xff999999),
),
)
]),
),
),
),
);
}
}

@ -3,7 +3,6 @@ import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
// Package imports:
import 'package:flutter_datetime_picker/flutter_datetime_picker.dart';
import 'package:flutter_icons/flutter_icons.dart';
import 'package:get/get.dart';
import 'package:provider/provider.dart';

@ -8,7 +8,6 @@ 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/activity_detail_page.dart';
import 'package:akuCommunity/utils/headers.dart';

@ -11,7 +11,6 @@ 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;

@ -1,4 +1,10 @@
import 'package:akuCommunity/ui/community/community_views/widgets/my_event_card.dart';
import 'package:akuCommunity/utils/headers.dart';
import 'package:akuCommunity/constants/api.dart';
import 'package:akuCommunity/model/community/my_event_item_model.dart';
import 'package:akuCommunity/pages/things_page/widget/bee_list_view.dart';
import 'package:flutter/material.dart';
import 'package:flutter_easyrefresh/easy_refresh.dart';
class MyCommunityView extends StatefulWidget {
MyCommunityView({Key key}) : super(key: key);
@ -9,10 +15,31 @@ class MyCommunityView extends StatefulWidget {
class _MyCommunityViewState extends State<MyCommunityView>
with AutomaticKeepAliveClientMixin {
EasyRefreshController _refreshController = EasyRefreshController();
@override
Widget build(BuildContext context) {
super.build(context);
return Container();
return BeeListView(
path: API.community.myEvent,
controller: _refreshController,
convert: (model) {
return model.tableList
.map((e) => MyEventItemModel.fromJson(e))
.toList();
},
builder: (items) {
return ListView.separated(
itemBuilder: (context, index) {
final MyEventItemModel model = items[index];
MyEventItemModel preModel;
if (index >= 1) preModel = items[index - 1];
return MyEventCard(model: model, preModel: preModel);
},
separatorBuilder: (_, __) => 8.hb,
itemCount: items.length,
);
},
);
}
@override

@ -0,0 +1,100 @@
import 'package:akuCommunity/const/resource.dart';
import 'package:akuCommunity/constants/api.dart';
import 'package:akuCommunity/model/community/my_event_item_model.dart';
import 'package:akuCommunity/utils/bee_date_util.dart';
import 'package:akuCommunity/utils/headers.dart';
import 'package:akuCommunity/widget/picker/bee_image_preview.dart';
import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'package:velocity_x/velocity_x.dart';
class MyEventCard extends StatelessWidget {
final MyEventItemModel model;
final MyEventItemModel preModel;
const MyEventCard({
Key key,
@required this.model,
@required this.preModel,
}) : super(key: key);
bool get isFirst => preModel == null;
bool get notSameYear => model.date.year != (preModel?.date?.year ?? 0);
BeeDateUtil get beeDate => BeeDateUtil(model.date);
Widget title() {
if (beeDate.sameDay) return '今天'.text.size(52.sp).bold.make();
if (beeDate.isYesterday)
return '昨天'.text.size(52.sp).bold.make();
else
return Row(
mainAxisSize: MainAxisSize.min,
children: [
model.date.day.toString().text.size(52.sp).bold.make(),
'${model.date.month}'.text.size(36.sp).make(),
],
);
}
@override
Widget build(BuildContext context) {
return Column(
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisSize: MainAxisSize.min,
children: [
(notSameYear && model.date.year != DateTime.now().year)
? '${model.date.year}'
.text
.bold
.size(52.sp)
.make()
.paddingOnly(left: 32.w, top: isFirst ? 0 : 64.w, bottom: 32.w)
: SizedBox(),
MaterialButton(
onPressed: () {},
child: Row(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Container(
width: 200.w,
padding: EdgeInsets.only(left: 32.w),
alignment: Alignment.topLeft,
child: beeDate.sameDay ? SizedBox() : title(),
),
model.imgUrl.length == 0
? SizedBox(height: 152.w)
: GestureDetector(
onTap: () {
Get.to(
BeeImagePreview.path(path: model.imgUrl.first.url),
opaque: false,
);
},
child: Hero(
tag: model.imgUrl.first.url,
child: Container(
clipBehavior: Clip.antiAlias,
decoration: BoxDecoration(
color: Colors.black12,
borderRadius: BorderRadius.circular(8.w),
),
child: FadeInImage.assetNetwork(
placeholder: R.ASSETS_IMAGES_PLACEHOLDER_WEBP,
image: API.image(model.imgUrl.first.url),
width: 152.w,
height: 152.w,
fit: BoxFit.cover,
),
),
),
),
10.wb,
model.content.text.make().expand(),
],
),
),
],
);
}
}

@ -52,6 +52,7 @@ class _ApplicationViewState extends State<ApplicationView> {
Widget build(BuildContext context) {
return GridView.builder(
padding: EdgeInsets.zero,
physics: NeverScrollableScrollPhysics(),
gridDelegate:
SliverGridDelegateWithFixedCrossAxisCount(crossAxisCount: 4),
itemBuilder: (context, index) {

Loading…
Cancel
Save