1,新增部分图片

2,新增授权管理员模块UI
3,新增锁分组模块UI
4,新增锁用户管理模块UI
5,新增转移智能锁模块UI
This commit is contained in:
Daisy 2023-07-25 15:48:40 +08:00
parent 4e03e1c007
commit b1e2cf4ebd
19 changed files with 709 additions and 34 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB

View File

@ -199,9 +199,12 @@
"touchUnlock":"Touch Unlock",
"pushNotification":"Push Notification",
"lockUserManagement":"Lock User Management",
"aboutToExpire":"About to expire",
"authorizedAdmin":"Authorized Admin",
"lockGroup":"Lock Group",
"transferSmartLock":"Transfer Smart Lock",
"selectiveLock":"Selective lock",
"recipientInformation":"recipientInformation",
"transferGateway":"Transfer Gateway",
"multiLanguage":"Multi Language",
"lockScreen":"Lock Screen",
@ -236,7 +239,6 @@
"problemTwo":"Problem Two",
"problemThree":"Problem Three",
"pleaseEnterYourAnswer":"Please Enter Your Answer",
"aboutToExpire":"About to expire",
"designation": "designation",
"state": "State",

View File

@ -202,6 +202,8 @@
"authorizedAdmin":"authorizedAdmin",
"lockGroup":"lockGroup",
"transferSmartLock":"transferSmartLock",
"selectiveLock":"selectiveLock",
"recipientInformation":"recipientInformation",
"transferGateway":"transferGateway",
"multiLanguage":"multiLanguage",
"lockScreen":"lockScreen",
@ -236,7 +238,7 @@
"problemTwo":"problemTwo",
"problemThree":"problemThree",
"pleaseEnterYourAnswer":"pleaseEnterYourAnswer",
"aboutToExpire":"About to expire",
"aboutToExpire":"aboutToExpire",
"designation": "designation",
"state": "state",

View File

@ -202,6 +202,8 @@
"authorizedAdmin":"授权管理员",
"lockGroup":"锁分组",
"transferSmartLock":"转移智能锁",
"selectiveLock":"选择锁",
"recipientInformation":"接收人信息",
"transferGateway":"转移网关",
"multiLanguage":"多语言",
"lockScreen":"锁屏",

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

View File

@ -1,7 +1,11 @@
import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'package:star_lock/mine/mineSet/lockUserManage/lockUserManageListPage.dart';
import 'package:star_lock/mine/mineSet/lockGroup/lockGroupList_page.dart';
import 'package:star_lock/mine/mineSet/lockUserManage/lockUserManageList_page.dart';
import 'package:star_lock/mine/mineSet/mineSet_page.dart';
import 'package:star_lock/mine/mineSet/transferSmartLock/recipientInformation_page.dart';
import 'package:star_lock/mine/mineSet/transferSmartLock/selectBranch_page.dart';
import 'package:star_lock/mine/mineSet/transferSmartLock/transferSmartLock_page.dart';
import 'login/forgetPassword/starLock_forgetPassword_page.dart';
import 'login/login/starLock_login_page.dart';
@ -86,6 +90,7 @@ import 'mine/minePersonInfo/minePersonInfoResetPassword/minePersonInfoResetPassw
import 'mine/minePersonInfo/minePersonInfoSetSafetyProblem/minePersonInfoSetSafetyProblem_page.dart';
import 'mine/mineSet/appUnlockNeedMobileNetworkingLock/appUnlockNeedMobileNetworkingLock_page.dart';
import 'mine/mineSet/hideInvalidUnlockPermissions/hideInvalidUnlockPermissions_page.dart';
import 'mine/mineSet/lockGroup/lockItemList_page.dart';
import 'mine/mineSet/lockScreen/lockScreen_page.dart';
import 'mine/mine_page.dart';
import 'mine/supportStaff/supportStaff_page.dart';
@ -99,7 +104,7 @@ import 'mine/valueAddedServices/valueAddedServicesNoteAndEmailDetail/valueAddedS
import 'mine/valueAddedServices/valueAddedServicesRealName/valueAddedServicesRealName_page.dart';
import 'mine/valueAddedServices/valueAddedServicesSMSTemplate/valueAddedServicesAddSMSTemplate/valueAddedServicesAddSMSTemplate_page.dart';
import 'mine/valueAddedServices/valueAddedServicesSMSTemplate/valueAddedServicesListSMSTemplate/valueAddedServicesListSMSTemplate_page.dart';
import 'mine/mineSet/authorizedAdministrator/authorizedAdministratorListPage.dart';
import 'mine/mineSet/authorizedAdministrator/authorizedAdministratorList_page.dart';
import 'starLockApplication.dart';
abstract class Routers {
@ -241,6 +246,11 @@ abstract class Routers {
static const lockUserManageLisPage = '/LockUserManageLisPage'; //-
static const authorizedAdministratorListPage =
'/AuthorizedAdministratorListPage'; //-
static const lockGroupListPage = '/LockGroupListPage'; //-
static const lockItemListPage = '/LockItemListPage'; //-
static const transferSmartLockPage = '/transferSmartLockPage'; //
static const recipientInformationPage = '/recipientInformationPage'; //
static const selectBranchPage = '/SelectBranchPage'; //
static const starLockLoginPage = '/StarLockLoginPage'; //
static const starLockRegisterPage = '/StarLockRegisterPage'; //
@ -648,6 +658,18 @@ abstract class AppRouters {
page: () => const AuthorizedAdministratorListPage()),
GetPage(
name: Routers.lockUserManageLisPage,
page: () => const LockUserManageListListPage())
page: () => const LockUserManageListListPage()),
GetPage(
name: Routers.lockGroupListPage, page: () => const LockGroupListPage()),
GetPage(
name: Routers.lockItemListPage, page: () => const LockItemListPage()),
GetPage(
name: Routers.transferSmartLockPage,
page: () => const TransferSmartLockPage()),
GetPage(
name: Routers.recipientInformationPage,
page: () => const RecipientInformationPage()),
GetPage(
name: Routers.selectBranchPage, page: () => const SelectBranchPage())
];
}

View File

@ -116,4 +116,6 @@ class AppColors {
static Color progressValueColor = const Color(0xFF0093E5);
static const greyLineColor = Color.fromRGBO(240, 240, 240, 1); //线
static const darkGrayTextColor = Color.fromRGBO(65, 65, 65, 1); //
static const placeholderTextColor = Color.fromRGBO(128, 128, 128, 1); //
}

View File

@ -23,19 +23,18 @@ void main() async {
}
class MyApp extends StatefulWidget {
const MyApp({GlobalKey? key}):super(key: key);
const MyApp({GlobalKey? key}) : super(key: key);
@override
State<MyApp> createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> with WidgetsBindingObserver, BaseWidget {
@override
Widget build(BuildContext context) {
return ScreenUtilInit(
designSize: const Size(750, 1334),
builder: (w, a) => _initMaterialApp());
builder: (w, a) => _initMaterialApp());
}
GetMaterialApp _initMaterialApp() => GetMaterialApp(
@ -47,17 +46,19 @@ class _MyAppState extends State<MyApp> with WidgetsBindingObserver, BaseWidget {
GlobalCupertinoLocalizations.delegate,
GlobalWidgetsLocalizations.delegate,
],
localeResolutionCallback: (locale,supportedLocales){
if(!supportedLocales.contains(locale)) {
int idx = appSupportedLocales.indexWhere((element) => element.languageCode == locale!.languageCode);
if(idx != -1) {
localeResolutionCallback: (locale, supportedLocales) {
if (!supportedLocales.contains(locale)) {
int idx = appSupportedLocales.indexWhere(
(element) => element.languageCode == locale!.languageCode);
if (idx != -1) {
locale = appSupportedLocales[idx];
}else {
} else {
locale = const Locale('zh', 'CN');
}
}
// print("localelocalelocalelocalelocale locale:${locale} locale.languageCode:${locale.languageCode} locale.countryCode:${locale.countryCode} supportedLocales:${supportedLocales}");
AppManager().setLanCode(code: '${locale!.languageCode}_${locale.countryCode}');
AppManager()
.setLanCode(code: '${locale!.languageCode}_${locale.countryCode}');
return locale;
},
// locale: StoreService.to.getLanguageCode().isNotEmpty ? appDept.deptSupportedLocales.where((element) => element.languageCode == StoreService.to.getLanguageCode()).first : Get.deviceLocale,
@ -68,21 +69,19 @@ class _MyAppState extends State<MyApp> with WidgetsBindingObserver, BaseWidget {
backgroundColor: const Color(0xFFF6F6F6),
primaryColor: const Color(0xFFFFFFFF),
textTheme: TextTheme(
//Material组件上的文字显示,
bodyText1: TextStyle(
fontSize: 28.sp, color: const Color(0xff2E2B2B)),
//Material组件上的文字显示,
bodyText1:
TextStyle(fontSize: 28.sp, color: const Color(0xff2E2B2B)),
//Material组件上的文字显示
bodyText2: TextStyle(
fontSize: 28.sp, color: const Color(0xff2E2B2B)),
bodyText2:
TextStyle(fontSize: 28.sp, color: const Color(0xff2E2B2B)),
button: TextStyle(fontSize: 28.sp)),
iconTheme:
IconThemeData(size: 28.sp, color: const Color(0xff2E2B2B)),
iconTheme: IconThemeData(size: 28.sp, color: const Color(0xff2E2B2B)),
appBarTheme: AppBarTheme(
backgroundColor: const Color(0xFFFFFFFF),
elevation: 0,
centerTitle: true,
iconTheme:
IconThemeData(color: const Color(0xff333333), size: 36.sp),
iconTheme: IconThemeData(color: const Color(0xff333333), size: 36.sp),
titleTextStyle: TextStyle(
color: const Color(0xff333333),
fontWeight: FontWeight.w400,
@ -93,8 +92,7 @@ class _MyAppState extends State<MyApp> with WidgetsBindingObserver, BaseWidget {
),
debugShowCheckedModeBanner: false,
getPages: AppRouters.routePages,
initialRoute: '/'
);
initialRoute: '/');
@override
void initState() {
@ -117,15 +115,14 @@ class _MyAppState extends State<MyApp> with WidgetsBindingObserver, BaseWidget {
print("应用进入后台");
}
}
}
//
Future _initTranslation() async => TranslationLoader.loadTranslation(
zhSource: "images/lan/lan_zh.json",
enSource: "images/lan/lan_en.json",
keySource: "images/lan/lan_keys.json",
);
zhSource: "images/lan/lan_zh.json",
enSource: "images/lan/lan_en.json",
keySource: "images/lan/lan_keys.json",
);
//
Future _setCommonServices() async {

View File

@ -27,7 +27,7 @@ class _AuthorizedAdministratorListPageState
backgroundColor: AppColors.mainColor,
actionsList: [
IconButton(
icon: const Icon(Icons.add),
icon: Image.asset('images/icon_add_white.png'),
onPressed: () {
//
Navigator.pushNamed(context, Routers.authorizedAdminManagePage);

View File

@ -0,0 +1,71 @@
import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:get/get.dart';
import '../../../../../appRouters.dart';
import '../../../../../app_settings/app_colors.dart';
import '../../../../../tools/commonItem.dart';
import '../../../../../tools/submitBtn.dart';
import '../../../../../tools/titleAppBar.dart';
import '../../../../../translations/trans_lib.dart';
class LockGroupListPage extends StatefulWidget {
const LockGroupListPage({Key? key}) : super(key: key);
@override
State<LockGroupListPage> createState() => _LockGroupListPageState();
}
class _LockGroupListPageState extends State<LockGroupListPage> {
@override
Widget build(BuildContext context) {
return Scaffold(
backgroundColor: AppColors.mainBackgroundColor,
appBar: TitleAppBar(
barTitle: TranslationLoader.lanKeys!.basicInformation!.tr,
haveBack: true,
actionsList: [
IconButton(
icon: Image.asset('images/icon_add_white.png'),
onPressed: () {
// -
},
),
],
backgroundColor: AppColors.mainColor),
body: Column(
children: [
Expanded(child: _buildMainUI()),
],
),
);
}
Widget _buildMainUI() {
return ListView.builder(
itemCount: 2,
itemBuilder: (c, index) {
if (index == 1) {
return Center(
child: SizedBox(
height: 40.h,
child: const Text(
'锁数量1',
style: TextStyle(
color: AppColors.darkGrayTextColor, fontSize: 14),
),
),
);
} else {
return CommonItem(
leftTitel: "未分组1",
rightTitle: "",
allHeight: 70.h,
isHaveLine: true,
action: () {
Navigator.pushNamed(context, Routers.lockItemListPage);
});
}
});
}
}

View File

@ -0,0 +1,66 @@
import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:get/get.dart';
import '../../../../../app_settings/app_colors.dart';
import '../../../../../tools/commonItem.dart';
import '../../../../../tools/titleAppBar.dart';
import '../../../../../translations/trans_lib.dart';
class LockItemListPage extends StatefulWidget {
const LockItemListPage({Key? key}) : super(key: key);
@override
State<LockItemListPage> createState() => _LockItemListPageState();
}
class _LockItemListPageState extends State<LockItemListPage> {
@override
Widget build(BuildContext context) {
return Scaffold(
backgroundColor: AppColors.mainBackgroundColor,
appBar: TitleAppBar(
barTitle: TranslationLoader.lanKeys!.basicInformation!.tr,
haveBack: true,
backgroundColor: AppColors.mainColor),
body: ListView.builder(
itemBuilder: (context, index) {
return _listItemView();
},
itemCount: 2,
),
);
}
Widget _listItemView() {
return GestureDetector(
child: Container(
color: Colors.white,
height: 70.h,
child: Row(
mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.center,
children: [
SizedBox(
width: 20.w,
),
Image.asset(
'images/icon_lockGroup_item.png',
width: 30,
height: 30,
fit: BoxFit.fill,
),
SizedBox(
width: 8.w,
),
const Text(
'Daisy',
style: TextStyle(fontSize: 14),
)
],
),
),
onTap: () {},
);
}
}

View File

@ -23,7 +23,7 @@ class _LockUserManageListListPageState
return Scaffold(
backgroundColor: AppColors.mainBackgroundColor,
appBar: TitleAppBar(
barTitle: TranslationLoader.lanKeys!.authorizedAdmin!.tr,
barTitle: TranslationLoader.lanKeys!.lockUserManagement!.tr,
haveBack: true,
backgroundColor: AppColors.mainColor,
actionsList: [

View File

@ -81,14 +81,19 @@ class _MineSetPageState extends State<MineSetPage> {
rightTitle: "",
isHaveLine: true,
isHaveDirection: true,
action: () {}),
action: () {
Navigator.pushNamed(context, Routers.lockGroupListPage);
}),
CommonItem(
leftTitel:
TranslationLoader.lanKeys!.transferSmartLock!.tr,
rightTitle: "",
isHaveLine: true,
isHaveDirection: true,
action: () {}),
action: () {
Navigator.pushNamed(
context, Routers.transferSmartLockPage);
}),
CommonItem(
leftTitel: TranslationLoader.lanKeys!.transferGateway!.tr,
rightTitle: "",

View File

@ -0,0 +1,198 @@
import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:get/get.dart';
import '../../../../appRouters.dart';
import '../../../../app_settings/app_colors.dart';
import '../../../../tools/titleAppBar.dart';
import '../../../../translations/trans_lib.dart';
class RecipientInformationPage extends StatefulWidget {
const RecipientInformationPage({Key? key}) : super(key: key);
@override
State<RecipientInformationPage> createState() =>
_RecipientInformationPageState();
}
class _RecipientInformationPageState extends State<RecipientInformationPage> {
@override
Widget build(BuildContext context) {
return Scaffold(
backgroundColor: AppColors.mainBackgroundColor,
appBar: TitleAppBar(
barTitle: TranslationLoader.lanKeys!.recipientInformation!.tr,
haveBack: true,
backgroundColor: AppColors.mainColor,
),
body: Column(
children: [
SizedBox(height: 150.h, child: _buildMainUI()),
SizedBox(
height: 20.h,
),
_buildAccoutRow(),
_buildBottomText(),
_buildNextBtn(),
Expanded(
child: SizedBox(
height: 64.h,
)),
_buildRemoveBadLockBtn(),
SizedBox(
height: 64.h,
)
],
),
);
}
Widget _buildMainUI() {
return ListView.separated(
itemCount: 2,
separatorBuilder: (context, index) {
return Divider(
height: 1,
indent: 20.w,
endIndent: 20.w,
color: AppColors.greyLineColor,
);
},
itemBuilder: (c, index) {
if (index == 0) {
return _electronicKeyItem(
'images/select_circle.png', "个人用户", () {});
} else {
return _electronicKeyItem(
'images/normal_circle.png', "好房管家", () {});
}
});
}
Widget _electronicKeyItem(
String leftIcon, String leftTitle, Function() action) {
return GestureDetector(
child: Container(
color: Colors.white,
height: 70.h,
child: Row(
mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.center,
children: [
SizedBox(
width: 40.w,
),
GestureDetector(
child: Image.asset(
leftIcon,
width: 16,
height: 16,
),
),
SizedBox(
width: 16.w,
),
Text(
leftTitle,
style: TextStyle(fontSize: 28.sp),
)
],
),
),
onTap: () {},
);
}
Widget _buildAccoutRow() {
return Container(
height: 60.h,
color: Colors.white,
child: Row(
children: [
SizedBox(
width: 40.w,
),
Text(
'账号',
style:
TextStyle(color: AppColors.darkGrayTextColor, fontSize: 24.sp),
),
Expanded(
child: TextField(
textAlign: TextAlign.right,
keyboardType: TextInputType.text,
onChanged: (value) {},
decoration: InputDecoration(
border: InputBorder.none,
hintText: '请输入手机号或email',
hintStyle: TextStyle(
color: AppColors.placeholderTextColor,
fontSize: ScreenUtil().setSp(24),
textBaseline: TextBaseline.alphabetic),
),
)),
SizedBox(
width: 20.w,
),
Image.asset(
'images/icon_addressBook.png',
width: 28.w,
height: 28.h,
),
SizedBox(
width: 40.w,
)
],
),
);
}
Widget _buildBottomText() {
return Padding(
padding: EdgeInsets.only(top: 20.h, bottom: 80.h),
child: Text(
'选中的智能锁将会转移到您输入的账号中,您将失去锁的管理权',
style:
TextStyle(fontSize: 20.sp, color: AppColors.placeholderTextColor),
textAlign: TextAlign.left,
),
);
}
Widget _buildNextBtn() {
return GestureDetector(
child: Container(
color: Colors.grey,
width: ScreenUtil().screenWidth - 80.w,
height: 64.h,
child: TextButton(
onPressed: () {
Navigator.pushNamed(context, Routers.selectBranchPage);
},
child: Text(
'下一步',
style: TextStyle(fontSize: 28.sp, color: Colors.white),
)),
),
);
}
Widget _buildRemoveBadLockBtn() {
return Row(
children: [
const Expanded(child: SizedBox()),
TextButton(
onPressed: () {},
child: Text(
'移除坏锁',
style: TextStyle(
fontSize: 28.sp, color: AppColors.darkGrayTextColor),
textAlign: TextAlign.end,
)),
SizedBox(
width: 10.h,
)
],
);
}
}

View File

@ -0,0 +1,134 @@
import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:get/get.dart';
import '../../../../appRouters.dart';
import '../../../../app_settings/app_colors.dart';
import '../../../../tools/titleAppBar.dart';
import '../../../../translations/trans_lib.dart';
class SelectBranchPage extends StatefulWidget {
const SelectBranchPage({Key? key}) : super(key: key);
@override
State<SelectBranchPage> createState() => _SelectBranchPageState();
}
class _SelectBranchPageState extends State<SelectBranchPage> {
@override
Widget build(BuildContext context) {
return Scaffold(
backgroundColor: AppColors.mainBackgroundColor,
appBar: TitleAppBar(
barTitle: TranslationLoader.lanKeys!.recipientInformation!.tr,
haveBack: true,
backgroundColor: AppColors.mainColor,
),
body: Column(
children: [
_buildTopView(),
SizedBox(
height: 20.h,
),
Expanded(child: _buildMainUI()),
_buildNextBtn(),
SizedBox(
height: 64.h,
)
],
),
);
}
Widget _buildTopView() {
return Container(
height: 120.h,
width: ScreenUtil().screenWidth,
color: Colors.white,
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Padding(
padding: EdgeInsets.only(left: 40.w, top: 20.h, bottom: 16.h),
child: Text(
'公寓',
style: TextStyle(fontSize: 28.sp),
),
),
Padding(
padding: EdgeInsets.only(left: 40.w),
child: Text('管理员18682150237',
style: TextStyle(
color: AppColors.darkGrayTextColor, fontSize: 24.sp)),
)
],
),
);
}
Widget _buildMainUI() {
return ListView.separated(
itemCount: 5,
separatorBuilder: (context, index) {
return Divider(
height: 1,
indent: 20.w,
endIndent: 20.w,
color: AppColors.greyLineColor,
);
},
itemBuilder: (c, index) {
return _electronicKeyItem('images/select_circle.png', "分组一", () {});
});
}
Widget _electronicKeyItem(
String leftIcon, String leftTitle, Function() action) {
return GestureDetector(
child: Container(
color: Colors.white,
height: 70.h,
child: Row(
mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.center,
children: [
SizedBox(
width: 40.w,
),
GestureDetector(
child: Image.asset(
leftIcon,
width: 16,
height: 16,
),
),
SizedBox(
width: 16.w,
),
Text(
leftTitle,
style: TextStyle(fontSize: 28.sp),
)
],
),
),
onTap: () {},
);
}
Widget _buildNextBtn() {
return GestureDetector(
child: Container(
color: AppColors.mainColor,
width: ScreenUtil().screenWidth,
height: 64.h,
child: TextButton(
onPressed: () {},
child: Text(
'下一步',
style: TextStyle(fontSize: 28.sp, color: Colors.white),
)),
),
);
}
}

View File

@ -0,0 +1,166 @@
import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:get/get.dart';
import '../../../../appRouters.dart';
import '../../../../app_settings/app_colors.dart';
import '../../../../tools/titleAppBar.dart';
import '../../../../translations/trans_lib.dart';
class TransferSmartLockPage extends StatefulWidget {
const TransferSmartLockPage({Key? key}) : super(key: key);
@override
State<TransferSmartLockPage> createState() => _TransferSmartLockPageState();
}
class _TransferSmartLockPageState extends State<TransferSmartLockPage> {
@override
Widget build(BuildContext context) {
return Scaffold(
backgroundColor: AppColors.mainBackgroundColor,
appBar: TitleAppBar(
barTitle: TranslationLoader.lanKeys!.selectiveLock!.tr,
haveBack: true,
backgroundColor: AppColors.mainColor,
actionsList: [
TextButton(
onPressed: () {},
child: Text(
'全选',
style: TextStyle(color: Colors.white, fontSize: 28.sp),
))
],
),
body: Column(
children: [
_searchWidget(),
SizedBox(
height: 10.h,
),
Expanded(child: _buildMainUI()),
SizedBox(
height: 20.h,
),
_buildNextBtn(),
SizedBox(
height: 64.h,
)
],
),
);
}
Widget _searchWidget() {
return Container(
height: 60.h,
margin: EdgeInsets.only(top: 20.w, left: 20.w, right: 20.w),
decoration: BoxDecoration(
color: Colors.white, borderRadius: BorderRadius.circular(5)),
child: TextField(
//
maxLines: 1,
// controller: _controller,
autofocus: false,
decoration: InputDecoration(
//
contentPadding: const EdgeInsets.only(
top: 12.0, left: -19.0, right: -15.0, bottom: 8.0),
hintText: TranslationLoader.lanKeys!.pleaseEnter!.tr,
//线
border: InputBorder.none,
//
icon: Padding(
padding: EdgeInsets.only(
top: 30.w, bottom: 20.w, right: 20.w, left: 20.w),
child: Image.asset(
'images/main/icon_main_search.png',
width: 40.w,
height: 40.w,
),
),
),
),
);
}
Widget _buildMainUI() {
return ListView.separated(
itemCount: 10,
separatorBuilder: (context, index) {
return Divider(
height: 1,
indent: 20.w,
endIndent: 20.w,
color: AppColors.greyLineColor,
);
},
itemBuilder: (c, index) {
return _electronicKeyItem('images/icon_lock.png', "张三",
"2023.6.21 11.15", "2023.6.21 11.15", () {
Navigator.pushNamed(context, Routers.authorizedAdminDetailPage);
});
});
}
Widget _electronicKeyItem(String lockTypeIcon, String lockTypeTitle,
String beginTime, String endTime, Function() action) {
return GestureDetector(
child: Container(
color: Colors.white,
height: 70.h,
child: Row(
mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.center,
children: [
SizedBox(
width: 20.w,
),
GestureDetector(
child: Image.asset(
'images/icon_round_unSelet.png',
width: 16,
height: 16,
),
),
SizedBox(
width: 16.w,
),
Image.asset(
'images/icon_lockGroup_item.png',
width: 30,
height: 30,
fit: BoxFit.fill,
),
SizedBox(
width: 8.w,
),
const Text(
'Daisy',
style: TextStyle(fontSize: 14),
)
],
),
),
onTap: () {},
);
}
Widget _buildNextBtn() {
return GestureDetector(
child: Container(
color: Colors.grey,
width: ScreenUtil().screenWidth,
height: 64.h,
child: TextButton(
onPressed: () {
Navigator.pushNamed(context, Routers.recipientInformationPage);
},
child: Text(
'下一步',
style: TextStyle(fontSize: 28.sp, color: Colors.white),
)),
),
);
}
}

View File

@ -198,6 +198,8 @@ class LanKeyEntity {
this.authorizedAdmin,
this.lockGroup,
this.transferSmartLock,
this.selectiveLock,
this.recipientInformation,
this.transferGateway,
this.multiLanguage,
this.lockScreen,
@ -564,6 +566,8 @@ class LanKeyEntity {
authorizedAdmin = json['authorizedAdmin'];
lockGroup = json['lockGroup'];
transferSmartLock = json['transferSmartLock'];
selectiveLock = json['selectiveLock'];
recipientInformation = json['recipientInformation'];
transferGateway = json['transferGateway'];
multiLanguage = json['multiLanguage'];
@ -946,6 +950,8 @@ class LanKeyEntity {
String? authorizedAdmin;
String? lockGroup;
String? transferSmartLock;
String? selectiveLock;
String? recipientInformation;
String? transferGateway;
String? multiLanguage;
@ -1324,6 +1330,8 @@ class LanKeyEntity {
map['authorizedAdmin'] = authorizedAdmin;
map['lockGroup'] = lockGroup;
map['transferSmartLock'] = transferSmartLock;
map['selectiveLock'] = selectiveLock;
map['recipientInformation'] = recipientInformation;
map['transferGateway'] = transferGateway;
map['multiLanguage'] = multiLanguage;