管家端登陆界面

app名称
master
戴余标 3 years ago
parent 7d15816676
commit 48597010bb

@ -4,7 +4,7 @@
In most cases you can leave this as-is, but you if you want to provide In most cases you can leave this as-is, but you if you want to provide
additional functionality it is fine to subclass or reimplement additional functionality it is fine to subclass or reimplement
FlutterApplication and put your custom class here. --> FlutterApplication and put your custom class here. -->
<application android:name="io.flutter.app.FlutterApplication" android:label="小蜜蜂管家" <application android:label="小蜜蜂管家"
android:icon="@mipmap/ic_launcher" android:usesCleartextTraffic="true"> android:icon="@mipmap/ic_launcher" android:usesCleartextTraffic="true">
<service android:name="com.amap.api.location.APSService"/> <service android:name="com.amap.api.location.APSService"/>
<meta-data android:name="com.amap.api.v2.apikey" android:value="0c11d9ba47089d971dc4d889b66593ab"/> <meta-data android:name="com.amap.api.v2.apikey" android:value="0c11d9ba47089d971dc4d889b66593ab"/>

@ -5,7 +5,7 @@
<key>CFBundleDevelopmentRegion</key> <key>CFBundleDevelopmentRegion</key>
<string>$(DEVELOPMENT_LANGUAGE)</string> <string>$(DEVELOPMENT_LANGUAGE)</string>
<key>CFBundleDisplayName</key> <key>CFBundleDisplayName</key>
<string>小蜜蜂管家</string> <string>小蜜蜂管家</string>
<key>CFBundleExecutable</key> <key>CFBundleExecutable</key>
<string>$(EXECUTABLE_NAME)</string> <string>$(EXECUTABLE_NAME)</string>
<key>CFBundleIdentifier</key> <key>CFBundleIdentifier</key>

@ -0,0 +1,9 @@
import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
extension NumExt on num {
Widget get wb => SizedBox(width: this.w);
Widget get hb => SizedBox(height: this.w);
}

@ -10,6 +10,7 @@ import 'package:common_utils/common_utils.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
import 'package:power_logger/power_logger.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
import 'package:velocity_x/velocity_x.dart'; import 'package:velocity_x/velocity_x.dart';
@ -26,7 +27,7 @@ class OtherLoginPage extends StatefulWidget {
class _OtherLoginPageState extends State<OtherLoginPage> { class _OtherLoginPageState extends State<OtherLoginPage> {
PageController _controller = PageController(); PageController _controller = PageController();
List<String> _tabs = ['账号登录', '验证码登录']; List<String> _tabs = ['验证码登录', '账号登录'];
int _currentIndex = 0; int _currentIndex = 0;
TextEditingController _tel = TextEditingController(); TextEditingController _tel = TextEditingController();
TextEditingController _psd = TextEditingController(); TextEditingController _psd = TextEditingController();
@ -66,7 +67,7 @@ class _OtherLoginPageState extends State<OtherLoginPage> {
Flexible( Flexible(
child: PageView( child: PageView(
controller: _controller, controller: _controller,
children: [_accountView(), _verificationView()], children: [_verificationView(), _accountView()],
), ),
), ),
BottomTip(), BottomTip(),
@ -99,16 +100,21 @@ class _OtherLoginPageState extends State<OtherLoginPage> {
return; return;
} }
var cancel = BotToast.showLoading(); var cancel = BotToast.showLoading();
var response = await SignFunc.login( try {
_tel.text, var response = await SignFunc.login(
_psd.text, _tel.text,
UserTool _psd.text,
.appProvider.pickedCityAndCommunity!.communityModel!.id); UserTool.appProvider.pickedCityAndCommunity!.communityModel!
if (response.data['success']) { .id);
await UserTool.userProvider.setLogin(response.data['data']); if (response.data['success']) {
await UserTool.dataProvider.addHistories(); await UserTool.userProvider.setLogin(response.data['data']);
} else { await UserTool.dataProvider.addHistories();
BotToast.showText(text: response.data['msg']); } else {
BotToast.showText(text: response.data['msg']);
}
} catch (e) {
print(e.toString());
LoggerData.addData(e.toString());
} }
cancel(); cancel();
}, },
@ -132,7 +138,7 @@ class _OtherLoginPageState extends State<OtherLoginPage> {
BotToast.showText(text: '请先选择小区!'); BotToast.showText(text: '请先选择小区!');
return false; return false;
} }
if (_currentIndex == 0 && _psd.text.isEmpty) { if (_currentIndex == 1 && _psd.text.isEmpty) {
BotToast.showText(text: '密码不能为空'); BotToast.showText(text: '密码不能为空');
return false; return false;
} }

@ -1,4 +1,5 @@
import 'package:aku_new_community_manager/const/saas_api.dart'; import 'package:aku_new_community_manager/const/saas_api.dart';
import 'package:aku_new_community_manager/extensions/num_ext.dart';
import 'package:aku_new_community_manager/saas_models/login/community_model.dart'; import 'package:aku_new_community_manager/saas_models/login/community_model.dart';
import 'package:aku_new_community_manager/saas_models/login/history_login_model.dart'; import 'package:aku_new_community_manager/saas_models/login/history_login_model.dart';
import 'package:aku_new_community_manager/tools/user_tool.dart'; import 'package:aku_new_community_manager/tools/user_tool.dart';
@ -12,6 +13,8 @@ import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:velocity_x/velocity_x.dart'; import 'package:velocity_x/velocity_x.dart';
import '../../style/app_style.dart';
class SelectCommunity extends StatefulWidget { class SelectCommunity extends StatefulWidget {
const SelectCommunity({ const SelectCommunity({
Key? key, Key? key,
@ -159,6 +162,25 @@ class _SelectCommunityState extends State<SelectCommunity> {
}, },
child: AkuScaffold( child: AkuScaffold(
title: '选择登录小区', title: '选择登录小区',
actions: [
Hero(
tag: 'event_add',
child: MaterialButton(
elevation: 0,
minWidth: 116.w,
padding: EdgeInsets.zero,
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(4.w),
),
color: kPrimaryColor,
onPressed: () {
Navigator.pop(context);
},
child: '提交'.text.size(34.sp).make(),
).centered(),
),
32.wb
],
body: ListView( body: ListView(
children: [ children: [
selectCity, selectCity,
@ -172,22 +194,32 @@ class _SelectCommunityState extends State<SelectCommunity> {
} }
Widget _historyTile(HistoryLoginModel model) { Widget _historyTile(HistoryLoginModel model) {
return Container( return GestureDetector(
padding: EdgeInsets.symmetric(horizontal: 32.w, vertical: 24.w), onTap: () {
child: Row( UserTool.appProvider.setPickedCity(
children: [ city: model.cityModel, community: model.communityModel);
Icon( setState(() {});
CupertinoIcons.search, },
size: 30.w, child: Material(
color: Colors.black.withOpacity(0.2), color: Colors.transparent,
child: Container(
padding: EdgeInsets.symmetric(horizontal: 32.w, vertical: 24.w),
child: Row(
children: [
Icon(
CupertinoIcons.search,
size: 30.w,
color: Colors.black.withOpacity(0.2),
),
24.w.widthBox,
'${model.communityModel!.name}(${model.cityModel.province.name}·${model.cityModel.city.name}·${model.cityModel.district.name})'
.text
.size(28.sp)
.color(Colors.black.withOpacity(0.2))
.make(),
],
), ),
24.w.widthBox, ),
'${model.communityModel!.name}(${model.cityModel.province.name}·${model.cityModel.city.name}·${model.cityModel.district.name})'
.text
.size(28.sp)
.color(Colors.black.withOpacity(0.2))
.make(),
],
), ),
); );
} }

@ -1,3 +1,4 @@
import 'package:aku_new_community_manager/gen/assets.gen.dart'; import 'package:aku_new_community_manager/gen/assets.gen.dart';
import 'package:aku_new_community_manager/new_ui/household_audit/household_audit_page.dart'; import 'package:aku_new_community_manager/new_ui/household_audit/household_audit_page.dart';
import 'package:aku_new_community_manager/new_ui/work_order/distributor/work_order_distributor_page.dart'; import 'package:aku_new_community_manager/new_ui/work_order/distributor/work_order_distributor_page.dart';
@ -6,6 +7,7 @@ import 'package:aku_new_community_manager/tools/user_tool.dart';
import 'package:aku_new_community_manager/ui/manage_pages/inspection_manage/inspection_manage_page.dart'; import 'package:aku_new_community_manager/ui/manage_pages/inspection_manage/inspection_manage_page.dart';
import 'package:dio/dio.dart'; import 'package:dio/dio.dart';
import 'package:equatable/equatable.dart'; import 'package:equatable/equatable.dart';
import 'package:flutter/material.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
class ApplicationUtil { class ApplicationUtil {

@ -1,3 +1,4 @@
import 'package:aku_new_community_manager/const/saas_api.dart'; import 'package:aku_new_community_manager/const/saas_api.dart';
import 'package:aku_new_community_manager/saas_models/net_model/base_model.dart'; import 'package:aku_new_community_manager/saas_models/net_model/base_model.dart';
import 'package:aku_new_community_manager/saas_models/work_order/work_order_bill_model.dart'; import 'package:aku_new_community_manager/saas_models/work_order/work_order_bill_model.dart';
@ -6,6 +7,7 @@ import 'package:aku_new_community_manager/saas_models/work_order/work_order_subm
import 'package:aku_new_community_manager/utils/network/net_util.dart'; import 'package:aku_new_community_manager/utils/network/net_util.dart';
import 'package:bot_toast/bot_toast.dart'; import 'package:bot_toast/bot_toast.dart';
import 'package:dio/dio.dart'; import 'package:dio/dio.dart';
import 'package:flutter/material.dart';
import 'package:get/get_core/src/get_main.dart'; import 'package:get/get_core/src/get_main.dart';
import 'package:get/get_navigation/src/extension_navigation.dart'; import 'package:get/get_navigation/src/extension_navigation.dart';

@ -43,10 +43,13 @@ class DataProvider extends ChangeNotifier {
List<HistoryLoginModel> get loginHistories => _loginHistories; List<HistoryLoginModel> get loginHistories => _loginHistories;
Future addHistories() async { Future addHistories() async {
_loginHistories.insert(0, UserTool.appProvider.pickedCityAndCommunity!); if (!_loginHistories
if (_loginHistories.length > 4) { .contains(UserTool.appProvider.pickedCityAndCommunity!)) {
_loginHistories.removeAt(_loginHistories.length - 1); _loginHistories.insert(0, UserTool.appProvider.pickedCityAndCommunity!);
if (_loginHistories.length > 4) {
_loginHistories.removeAt(_loginHistories.length - 1);
}
HiveStore.dataBox!.put('historyLogin', _loginHistories);
} }
HiveStore.dataBox!.put('historyLogin', _loginHistories);
} }
} }

@ -88,7 +88,7 @@ class _BeeCityPickerState extends State<BeeCityPicker> {
children: [ children: [
Expanded( Expanded(
child: CupertinoPicker( child: CupertinoPicker(
itemExtent: 60.w, itemExtent: 80.w,
magnification: 1.0, magnification: 1.0,
// offAxisFraction: -0.6, // offAxisFraction: -0.6,
looping: true, looping: true,
@ -110,7 +110,7 @@ class _BeeCityPickerState extends State<BeeCityPicker> {
), ),
Expanded( Expanded(
child: CupertinoPicker( child: CupertinoPicker(
itemExtent: 60.w, itemExtent: 80.w,
magnification: 1.0, magnification: 1.0,
looping: true, looping: true,
scrollController: _cityController, scrollController: _cityController,
@ -131,7 +131,7 @@ class _BeeCityPickerState extends State<BeeCityPicker> {
), ),
Expanded( Expanded(
child: CupertinoPicker( child: CupertinoPicker(
itemExtent: 60.w, itemExtent: 80.w,
magnification: 1.0, magnification: 1.0,
// offAxisFraction: 0.6, // offAxisFraction: 0.6,
looping: true, looping: true,
@ -145,7 +145,10 @@ class _BeeCityPickerState extends State<BeeCityPicker> {
: districts : districts
.map((e) => Center( .map((e) => Center(
child: Padding( child: Padding(
padding: EdgeInsets.only(left: 20.w, right: 20.w), padding: EdgeInsets.only(left: 20.w,
right: 20.w,
top: 10.w,
bottom: 10.w),
child: Text(e.name, textAlign: TextAlign.center), child: Text(e.name, textAlign: TextAlign.center),
), ),
)) ))

File diff suppressed because it is too large Load Diff

@ -52,7 +52,7 @@ dependencies:
amap_flutter_base: ^3.0.0 amap_flutter_base: ^3.0.0
permission_handler: ^6.1.1 permission_handler: ^6.1.1
velocity_x: ^2.6.0 velocity_x: ^3.4.0
dotted_border: ^2.0.0-nullsafety.0 dotted_border: ^2.0.0-nullsafety.0
dio: ^4.0.0 dio: ^4.0.0
# #谷歌崩溃分析 # #谷歌崩溃分析

Loading…
Cancel
Save