重写全部应用功能

hmxc
小赖 4 years ago
parent 3fe6b31e18
commit e63cc4a05f

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

@ -3,6 +3,106 @@
class R { class R {
const R._(); const R._();
/// ![preview](file:///Users/akufe/Documents/akuCommunity/assets/applications/advice.png)
static const String ASSETS_APPLICATIONS_ADVICE_PNG =
'assets/applications/advice.png';
/// ![preview](file:///Users/akufe/Documents/akuCommunity/assets/applications/all_app.png)
static const String ASSETS_APPLICATIONS_ALL_APP_PNG =
'assets/applications/all_app.png';
/// ![preview](file:///Users/akufe/Documents/akuCommunity/assets/applications/borrow.png)
static const String ASSETS_APPLICATIONS_BORROW_PNG =
'assets/applications/borrow.png';
/// ![preview](file:///Users/akufe/Documents/akuCommunity/assets/applications/box.png)
static const String ASSETS_APPLICATIONS_BOX_PNG =
'assets/applications/box.png';
/// ![preview](file:///Users/akufe/Documents/akuCommunity/assets/applications/committee.png)
static const String ASSETS_APPLICATIONS_COMMITTEE_PNG =
'assets/applications/committee.png';
/// ![preview](file:///Users/akufe/Documents/akuCommunity/assets/applications/community_phone.png)
static const String ASSETS_APPLICATIONS_COMMUNITY_PHONE_PNG =
'assets/applications/community_phone.png';
/// ![preview](file:///Users/akufe/Documents/akuCommunity/assets/applications/complaint.png)
static const String ASSETS_APPLICATIONS_COMPLAINT_PNG =
'assets/applications/complaint.png';
/// ![preview](file:///Users/akufe/Documents/akuCommunity/assets/applications/decoration.png)
static const String ASSETS_APPLICATIONS_DECORATION_PNG =
'assets/applications/decoration.png';
/// ![preview](file:///Users/akufe/Documents/akuCommunity/assets/applications/digital.png)
static const String ASSETS_APPLICATIONS_DIGITAL_PNG =
'assets/applications/digital.png';
/// ![preview](file:///Users/akufe/Documents/akuCommunity/assets/applications/door_code.png)
static const String ASSETS_APPLICATIONS_DOOR_CODE_PNG =
'assets/applications/door_code.png';
/// ![preview](file:///Users/akufe/Documents/akuCommunity/assets/applications/fix.png)
static const String ASSETS_APPLICATIONS_FIX_PNG =
'assets/applications/fix.png';
/// ![preview](file:///Users/akufe/Documents/akuCommunity/assets/applications/goods_out.png)
static const String ASSETS_APPLICATIONS_GOODS_OUT_PNG =
'assets/applications/goods_out.png';
/// ![preview](file:///Users/akufe/Documents/akuCommunity/assets/applications/home_live.png)
static const String ASSETS_APPLICATIONS_HOME_LIVE_PNG =
'assets/applications/home_live.png';
/// ![preview](file:///Users/akufe/Documents/akuCommunity/assets/applications/hospital.png)
static const String ASSETS_APPLICATIONS_HOSPITAL_PNG =
'assets/applications/hospital.png';
/// ![preview](file:///Users/akufe/Documents/akuCommunity/assets/applications/makeup.png)
static const String ASSETS_APPLICATIONS_MAKEUP_PNG =
'assets/applications/makeup.png';
/// ![preview](file:///Users/akufe/Documents/akuCommunity/assets/applications/oepn_door.png)
static const String ASSETS_APPLICATIONS_OEPN_DOOR_PNG =
'assets/applications/oepn_door.png';
/// ![preview](file:///Users/akufe/Documents/akuCommunity/assets/applications/payment.png)
static const String ASSETS_APPLICATIONS_PAYMENT_PNG =
'assets/applications/payment.png';
/// ![preview](file:///Users/akufe/Documents/akuCommunity/assets/applications/police.png)
static const String ASSETS_APPLICATIONS_POLICE_PNG =
'assets/applications/police.png';
/// ![preview](file:///Users/akufe/Documents/akuCommunity/assets/applications/question.png)
static const String ASSETS_APPLICATIONS_QUESTION_PNG =
'assets/applications/question.png';
/// ![preview](file:///Users/akufe/Documents/akuCommunity/assets/applications/snack.png)
static const String ASSETS_APPLICATIONS_SNACK_PNG =
'assets/applications/snack.png';
/// ![preview](file:///Users/akufe/Documents/akuCommunity/assets/applications/tool_bmts.png)
static const String ASSETS_APPLICATIONS_TOOL_BMTS_PNG =
'assets/applications/tool_bmts.png';
/// ![preview](file:///Users/akufe/Documents/akuCommunity/assets/applications/toy.png)
static const String ASSETS_APPLICATIONS_TOY_PNG =
'assets/applications/toy.png';
/// ![preview](file:///Users/akufe/Documents/akuCommunity/assets/applications/visitor_invite.png)
static const String ASSETS_APPLICATIONS_VISITOR_INVITE_PNG =
'assets/applications/visitor_invite.png';
/// ![preview](file:///Users/akufe/Documents/akuCommunity/assets/applications/vote.png)
static const String ASSETS_APPLICATIONS_VOTE_PNG =
'assets/applications/vote.png';
/// ![preview](file:///Users/akufe/Documents/akuCommunity/assets/applications/wine.png)
static const String ASSETS_APPLICATIONS_WINE_PNG =
'assets/applications/wine.png';
/// ![preview](file:///Users/akufe/Documents/akuCommunity/assets/example/QR_code.png) /// ![preview](file:///Users/akufe/Documents/akuCommunity/assets/example/QR_code.png)
static const String ASSETS_EXAMPLE_QR_CODE_PNG = 'assets/example/QR_code.png'; static const String ASSETS_EXAMPLE_QR_CODE_PNG = 'assets/example/QR_code.png';

@ -0,0 +1,69 @@
import 'package:akuCommunity/const/resource.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/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_details_page/questionnaire_details_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/ui/home/application/all_application.dart';
import 'package:akuCommunity/ui/manager/advice/advice_page.dart';
import 'package:flutter/material.dart';
import 'package:flutter/widgets.dart';
///
///Application Object
class AO {
String title = '';
String path = '';
Widget page = Scaffold();
AO(
this.title,
this.path,
this.page,
);
AO.fromRaw(String raw) {
appObjects.forEach((element) {
if (element.title == raw) {
this.title = element.title;
this.path = element.path;
this.page = element.page;
}
});
}
@override
bool operator ==(Object other) =>
identical(this, other) ||
other is AO && runtimeType == other.runtimeType && title == other.title;
@override
int get hashCode => title.hashCode;
}
List<AO> appObjects = [
AO('一键开门', R.ASSETS_APPLICATIONS_OEPN_DOOR_PNG, OpenDoorPage()),
AO('开门码', R.ASSETS_APPLICATIONS_DOOR_CODE_PNG, OpeningCodePage()),
AO('访客邀请', R.ASSETS_APPLICATIONS_VISITOR_INVITE_PNG, VisitorAccessPage()),
AO('报事报修', R.ASSETS_APPLICATIONS_FIX_PNG, FixedSubmitPage()),
AO('生活缴费', R.ASSETS_APPLICATIONS_PAYMENT_PNG, LifePayPage()),
AO('业委会', R.ASSETS_APPLICATIONS_COMMITTEE_PNG, IndustryCommitteePage()),
AO('建议咨询', R.ASSETS_APPLICATIONS_ADVICE_PNG,
AdvicePage(type: AdviceType.SUGGESTION)),
AO('便民电话', R.ASSETS_APPLICATIONS_COMMUNITY_PHONE_PNG, ConvenientPhonePage()),
AO('活动投票', R.ASSETS_APPLICATIONS_VOTE_PNG, SizedBox()),
AO('物品出门', R.ASSETS_APPLICATIONS_GOODS_OUT_PNG, GoodsDetoPage()),
AO('投诉表扬', R.ASSETS_APPLICATIONS_COMPLAINT_PNG,
AdvicePage(type: AdviceType.COMPLAIN)),
AO('问卷调查', R.ASSETS_APPLICATIONS_QUESTION_PNG, QuestionnaireDetailsPage()),
AO('装修管理', R.ASSETS_APPLICATIONS_DECORATION_PNG, FitupManagePage()),
AO('借还管理', R.ASSETS_APPLICATIONS_BORROW_PNG, GoodsManagePage()),
];
AO allApp = AO('全部应用', R.ASSETS_APPLICATIONS_ALL_APP_PNG, AllApplicationPage());

@ -1,4 +1,5 @@
// Flutter imports: // Flutter imports:
import 'package:akuCommunity/provider/app_provider.dart';
import 'package:flutter/cupertino.dart'; import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
@ -44,6 +45,7 @@ class _MyAppState extends State<MyApp> {
providers: [ providers: [
ChangeNotifierProvider(create: (context) => CartProvidde()), ChangeNotifierProvider(create: (context) => CartProvidde()),
ChangeNotifierProvider(create: (context) => UserProvider()), ChangeNotifierProvider(create: (context) => UserProvider()),
ChangeNotifierProvider(create: (context) => AppProvider()),
ChangeNotifierProvider(create: (context) => SignUpProvider()), ChangeNotifierProvider(create: (context) => SignUpProvider()),
], ],
child: GestureDetector( child: GestureDetector(

@ -4,6 +4,8 @@ import 'dart:convert';
// Flutter imports: // Flutter imports:
import 'package:akuCommunity/model/community/board_model.dart'; import 'package:akuCommunity/model/community/board_model.dart';
import 'package:akuCommunity/ui/home/application/all_application.dart';
import 'package:akuCommunity/widget/views/application_view.dart';
import 'package:flutter/cupertino.dart'; import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
@ -74,8 +76,7 @@ class _HomePageState extends State<HomePage>
GridButton('建议咨询', R.ASSETS_ICONS_TOOL_JYTS_PNG, GridButton('建议咨询', R.ASSETS_ICONS_TOOL_JYTS_PNG,
AdvicePage(type: AdviceType.SUGGESTION).to), AdvicePage(type: AdviceType.SUGGESTION).to),
GridButton('便民电话', R.ASSETS_ICONS_TOOL_BMDH_PNG, ConvenientPhonePage().to), GridButton('便民电话', R.ASSETS_ICONS_TOOL_BMDH_PNG, ConvenientPhonePage().to),
GridButton( GridButton('全部应用', R.ASSETS_ICONS_TOOL_QBYY_PNG, AllApplicationPage().to),
'全部应用', R.ASSETS_ICONS_TOOL_QBYY_PNG, TotalApplicationsPage().to),
]; ];
@override @override
@ -158,6 +159,10 @@ class _HomePageState extends State<HomePage>
HomeSearch(), HomeSearch(),
HomeSwiper(), HomeSwiper(),
SizedBox(height: 100.w), SizedBox(height: 100.w),
ContainerComment(
radius: 8,
customWidget: ApplicationView(),
),
ContainerComment( ContainerComment(
radius: 8, radius: 8,
customWidget: GridButtons( customWidget: GridButtons(

@ -1,4 +1,5 @@
// Flutter imports: // Flutter imports:
import 'package:akuCommunity/provider/app_provider.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
// Package imports: // Package imports:

@ -0,0 +1,42 @@
import 'package:akuCommunity/constants/application_objects.dart';
import 'package:flutter/material.dart';
class AppProvider extends ChangeNotifier {
///
///
///```
///'一键开门',
/// '访客邀请',
/// '报事报修',
/// '生活缴费',
/// '业委会',
/// '建议投诉',
/// '便民电话',
///```
List<AO> _myApplications = [
'一键开门',
'访客邀请',
'报事报修',
'生活缴费',
'业委会',
'建议咨询',
'便民电话',
].map((e) => AO.fromRaw(e)).toList();
///
List<AO> get myApplications {
return _myApplications;
}
///
insertApplication(AO app) {
if (!_myApplications.contains(app) && _myApplications.length < 7)
_myApplications.insert(0, app);
notifyListeners();
}
///
removeApplication(AO obj) {
if (_myApplications.remove(obj)) notifyListeners();
}
}

@ -0,0 +1,52 @@
import 'package:akuCommunity/base/base_style.dart';
import 'package:akuCommunity/utils/headers.dart';
import 'package:akuCommunity/widget/bee_back_button.dart';
import 'package:flutter/material.dart';
import 'package:velocity_x/velocity_x.dart';
class AllApplicationPage extends StatefulWidget {
AllApplicationPage({Key key}) : super(key: key);
@override
_AllApplicationPageState createState() => _AllApplicationPageState();
}
class _AllApplicationPageState extends State<AllApplicationPage> {
@override
Widget build(BuildContext context) {
return Scaffold(
backgroundColor: Color(0xFFF4F4F4),
appBar: AppBar(
backgroundColor: Colors.white,
elevation: 0,
leading: BeeBackButton(),
title: MaterialButton(
materialTapTargetSize: MaterialTapTargetSize.shrinkWrap,
height: 72.w,
shape: StadiumBorder(),
elevation: 0,
minWidth: double.infinity,
color: Color(0xFFF3F3F3),
onPressed: () {},
child: Row(
children: [
Icon(
Icons.search,
size: 32.w,
color: Color(0xFF666666),
),
10.wb,
'搜索商品、活动、帖子、应用'
.text
.size(28.sp)
.color(ktextSubColor)
.make()
.expand(),
],
),
),
),
// body: ,
);
}
}

@ -3,6 +3,7 @@ export 'package:akuCommunity/extensions/page_router.dart';
export 'package:akuCommunity/extensions/num_ext.dart'; export 'package:akuCommunity/extensions/num_ext.dart';
export 'package:akuCommunity/extensions/widget_list_ext.dart'; export 'package:akuCommunity/extensions/widget_list_ext.dart';
export 'package:velocity_x/velocity_x.dart'; export 'package:velocity_x/velocity_x.dart';
export 'package:akuCommunity/const/resource.dart';
// class Screenutil { // class Screenutil {
// static double length(double lengthNum) => ScreenUtil().setWidth(lengthNum); // static double length(double lengthNum) => ScreenUtil().setWidth(lengthNum);

@ -5,6 +5,8 @@ import 'package:flutter/material.dart';
// Package imports: // Package imports:
import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart';
//TODO CLEAN BOTTOM CODES.
@Deprecated("sh*t container_comment need to be cleaned.")
class ContainerComment extends StatelessWidget { class ContainerComment extends StatelessWidget {
final Widget customWidget; final Widget customWidget;
final double radius; final double radius;

@ -4,6 +4,8 @@ import 'package:flutter/material.dart';
// Package imports: // Package imports:
import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart';
//TODO CLEAN BOTTOM CODES.
@Deprecated("sh*t grid_buttons need to be cleaned.")
class GridButtons extends StatefulWidget { class GridButtons extends StatefulWidget {
final List<GridButton> gridList; final List<GridButton> gridList;
final int crossCount; final int crossCount;
@ -21,7 +23,6 @@ class GridButton {
} }
class _GridButtonsState extends State<GridButtons> { class _GridButtonsState extends State<GridButtons> {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return GridView.builder( return GridView.builder(
@ -55,9 +56,10 @@ class _GridButtonsState extends State<GridButtons> {
); );
}, },
gridDelegate: SliverGridDelegateWithFixedCrossAxisCount( gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(
crossAxisCount: widget.crossCount, crossAxisCount: widget.crossCount,
mainAxisSpacing: 6.0, mainAxisSpacing: 6.0,
childAspectRatio: 1.0), childAspectRatio: 1.0,
),
); );
} }
} }

@ -0,0 +1,53 @@
import 'package:akuCommunity/utils/headers.dart';
import 'package:akuCommunity/constants/application_objects.dart';
import 'package:akuCommunity/provider/app_provider.dart';
import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'package:provider/provider.dart';
import 'package:velocity_x/velocity_x.dart';
class ApplicationView extends StatefulWidget {
ApplicationView({Key key}) : super(key: key);
@override
_ApplicationViewState createState() => _ApplicationViewState();
}
class _ApplicationViewState extends State<ApplicationView> {
_buildTile(AO object) {
return MaterialButton(
shape: StadiumBorder(),
padding: EdgeInsets.zero,
onPressed: () => Get.to(object.page),
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Image.asset(
object.path,
height: 75.w,
width: 75.w,
),
8.hb,
object.title.text.size(24.sp).make(),
],
),
);
}
@override
Widget build(BuildContext context) {
final appProvider = Provider.of<AppProvider>(context);
return GridView.builder(
padding: EdgeInsets.zero,
gridDelegate:
SliverGridDelegateWithFixedCrossAxisCount(crossAxisCount: 4),
itemBuilder: (context, index) {
if (index == appProvider.myApplications.length)
return _buildTile(allApp);
return _buildTile(appProvider.myApplications[index]);
},
itemCount: appProvider.myApplications.length + 1,
shrinkWrap: true,
);
}
}

@ -115,3 +115,4 @@ flutter:
- assets/example/ - assets/example/
- assets/tab/ - assets/tab/
- assets/json/ - assets/json/
- assets/applications/

Loading…
Cancel
Save